/*******************************************************************************
  Deze website draait op het IPROX-platform van InfoProjects bv., IPROX is een
  state-of-the-art Content Management Systeem voor omvangrijke webomgevingen.
  Voor meer informatie, zie: http://www.infoprojects.nl en http://www.iprox.nl.

  @author : Jelle de Jong
            InfoProjects B.V.
            jelle.de.jong@infoprojects.nl
*******************************************************************************/
function inithighlights(classname){

  var highlightitems = getElementsByClassName(classname);
  for (var i=0; i<highlightitems.length; i++) {
    var anchors = highlightitems[i].getElementsByTagName("a");
    if (anchors.length > 0) {
      var anchor = anchors[anchors.length-1];
      highlightitems[i].setAttribute("title",anchor.getAttribute("title"));

      highlightitems[i].ref = anchor.getAttribute("href");
      if (anchor.className.indexOf("extern") != -1) {
        anchor.ref = anchor.getAttribute("href");
        anchor.href = "javascript:void(0);";
        anchor.onmouseover = function() {
          window.status = this.ref;
        }
        anchor.onmouseout = function() {
          window.status = "";
        }
        addClass(highlightitems[i],"extern");
      }

      highlightitems[i].onclick = function() {
        document.location.href = this.ref;
      }
/*
			var divs = highlightitems[i].getElementsByTagName("div");
			for (var j=0; j<divs.length; j++) {
			
			divs[j].onmouseover = function() {
				window.status = this.ref;
				if (classname=="itemoranje") { 
					addClass(highlightitems[i],"overoranje");
				}
				else if (classname=="itemblauw") {
						addClass(highlightitems[i],"overblauw");
				}
				else if (classname=="itempaars") {
					addClass(highlightitems[i],"overpaars");
				}
				else {
					addClass(highlightitems[i],"over");
				}
      }

			divs[j].onmouseout = function() {
				window.status = "";
				if (classname=="itemoranje") {
					removeClass(highlightitems[i],"overoranje");
				}
				else if (classname=="itemblauw") {
					removeClass(highlightitems[i],"overblauw");
				}
				else if (classname=="itempaars") {
					removeClass(highlightitems[i],"overpaars");
				}
				else {
					removeClass(highlightitems[i],"over");
				}
			}
    }*/

      highlightitems[i].onmouseover = function() {
        window.status = this.ref;
      if (classname=="itemoranje")
      {
          addClass(this,"overoranje");
      }
      else if (classname=="itemblauw")
      {
          addClass(this,"overblauw");
      }
      else if (classname=="itempaars")
      {
          addClass(this,"overpaars");
      }
      else
        {
            addClass(this,"over");
      }

      }
      highlightitems[i].onmouseout = function() {
				window.status = "";
				if (classname=="itemoranje"){
						removeClass(this,"overoranje");
				}
				else if (classname=="itemblauw"){
						removeClass(this,"overblauw");
				}
				else if (classname=="itempaars"){
						removeClass(this,"overpaars");
				}
				else{
							removeClass(this,"over");
				}
			}
		}
	}
}

function checkBirthday() {
  if (today_is_birthday==true)
  {
    var futuredate=new cdtime('jarig', 'September 15, 2008 15:15:00')
    futuredate.displaycountdown('days', formatresults)
  }
}

// returns array of elements with class classname
function getElementsByClassName(classname) {
  var a = [];
  var re = new RegExp('\\b' + classname + '\\b');
  var els = document.all?document.all:document.getElementsByTagName("*");
  for(var i=0,j=els.length; i<j; i++)
    if(re.test(els[i].className))a.push(els[i]);
  return a;
}

// add & remove css classes
function addClass(el,clName) {
  if (el) {
    if (el.className.indexOf(clName) < 0)
      el.className += " "+clName;
  }
}
function removeClass(el,clName) {
  if (el)
    el.className = el.className.replace(clName,"");
}

var formMessage = "Sometingsrotten";

function checkFormold(name) {
  obj = getForm(name);
  invalidFields = new Array();
  invalidNames = new Array();
  for (var i=0; i<requiredFields[name].length; i++) {
    if (obj.elements[requiredFields[name][i]].length) {
      optionChecked = false;
      for (var j=0; j<obj.elements[requiredFields[name][i]].length; j++) {
        if (obj.elements[requiredFields[name][i]][j].checked) {
          optionChecked = true;
        }
      }
      if (!optionChecked) {
        invalidFields[invalidFields.length] = obj.elements[requiredFields[name][i]][0];
        invalidNames[invalidNames.length] = requiredLabels[name][i];
      }
    }
    else if (requiredFields[name][i].indexOf(".$")== -1 && getElt(requiredFields[name][i]) &&
         getElt(requiredFields[name][i]).type != "hidden" &&
        (getElt(requiredFields[name][i]).value == "" ||
        (getElt(requiredFields[name][i]).name.indexOf("Tab.Src") != -1) && (
        (""+getElt(requiredFields[name][i]).value).indexOf("@")<0 ||
        (""+getElt(requiredFields[name][i]).value).indexOf(".")<0))) {
      invalidFields[invalidFields.length] = getElt(requiredFields[name][i]);
      invalidNames[invalidNames.length] = requiredLabels[name][i];
    }
   else if (obj.elements[requiredFields[name][i]].type != "hidden" &&
        (obj.elements[requiredFields[name][i]].value == "" ||
        (obj.elements[i].name.indexOf("Tab.Src") != -1) && (
        (""+obj.elements[i].value).indexOf("@")<0 ||
        (""+obj.elements[i].value).indexOf(".")<0))) {
      invalidFields[invalidFields.length] = obj.elements[requiredFields[name][i]];
      invalidNames[invalidNames.length] = requiredLabels[name][i];
    }
  }
  if (invalidFields.length > 0) {
    msg = formMessage;
    for (var i=0; i<invalidFields.length; i++) {
      if (document.all && invalidFields[i].type == "input") {
        invalidFields[i].style.borderColor = "#ff6600";
        invalidFields[i].style.backgroundColor = "#ffeecc";
      }
      msg += (i==0?'':'\n') + '- ' + invalidNames[i];
    }
    alert(msg);
    return false;
  }
 return (invalidFields.length == 0);
}

// method to subscribe or unsubscribe the mailinglist
function submitMailinglist(formName,subscribe) {
  if(subscribe) {
    // subscribe
    getElt("mode_mail").value = "subscribe";
    getElt("MllTab_Action").value = "make";
  }
  else {
    // unsubscribe
    getElt("mode_mail").value = "confirm";
    getElt("Eml").value = getElt("MllTab_Id").value;
  }
  // find the form
  var form = getElt(formName);
  // submit it
  submitForm(form,formName);
}

// method to submit the form
function submitFormold(elt,formName) {
  if(checkForm(formName)) {
    formRef = getForm(formName,elt);
    formRef.submit();
  }
}

// Methode om te kijken of een node open is.
function isNodeOpen(id) {
  var node = getElt(id);

  if(getEltDisplay(node) != 'none' && getEltVisibility(node) != 'hidden') {
    // node is dicht.
    return false;
  } else {
    // node is open.
    return true;
  }
}

// Methode om een node te openen
function openNode(id) {
  var node = getElt(id);

  // is de node al open?
  if(isNodeOpen(id)) {
    // node moet open, dus geef weer
    setEltDisplay(node,'block');
    setEltVisibility(node,'visible');
  } else {
    // node moet dicht, dus geef niet weer
    setEltDisplay(node,'none');
    setEltVisibility(node,'hidden');
  }
}

function changePlus(plusId,nodeId) {
  var elt = getElt(plusId);
  // is de node al open?
  if(isNodeOpen(nodeId)) {
    // node is open, dus geef minnetje weer
    setEltInnerHtml(elt,'-');
  } else {
    // node is dicht, dus geef plusje weer
    setEltInnerHtml(elt,'+');
  }
}
function fixDate(name,source,target) {
  var y = document.forms[name].elements[source+"_y"];
  var m = document.forms[name].elements[source+"_m"];
  var d = document.forms[name].elements[source+"_d"];

  var yVal = y.options[y.selectedIndex].value+"";
  var mVal = m.options[m.selectedIndex].value+"";
  var dVal = d.options[d.selectedIndex].value+"";

  var dateVal = yVal+mVal+dVal;

  document.forms[name].elements[target].value = (dateVal.length == 8)?dateVal:"";
}

/* Functie om een popup-window te openen. */
function openPopup(url,name,attr) {
  popup = window.open(url,name,attr);
  window[name].focus();
  return false;
}

function showFaqItem(id) {
  var obj = getElt(id);
  if (obj.style.display == 'block') {
    obj.style.display = 'none';
  }
  else obj.style.display = 'block';
}

/* gekopieerd uit aamaas_beheer */

function checkForm(name) {
  var form = document.forms[name];
  var valid = true;
  var msg = formMessage+"\n\r";;

  for (var i=0; i<requiredFields[name].length; i++) {
    var field=requiredFields[name][i];
    var label=requiredLabels[name][i];
    if (form.elements[field].type == "text" || 
        form.elements[field].type == "hidden" ||
        form.elements[field].type == "textarea" ||
        form.elements[field].type == "file") {
      if (form.elements[field].value == "") {
        msg += "- "+label + "\n\r";
        valid = false;
      }
    }
    else if ((form.elements[field].type == "select-one")||(form.elements[field].type == "select-multi")) { // select
      rvalid = false;
      for (var j=1; j<form.elements[field].length; j++) {
        if (form.elements[field][j].selected) {
          rvalid = true;
        }
      }
      if (!rvalid) {
        valid = false;
        msg += "- "+label + "\n\r";
      }
    }
    else if (form.elements[field].length) { // radio
      rvalid = false;
      for (var j=0; j<form.elements[field].length; j++) {
        if (form.elements[field][j].checked) {
          rvalid = true;
        }
      }
      if (!rvalid) {
        valid = false;
        msg += "- "+label + "\n\r";
      }
    }
  }

  if (valid) {
    return true;
  }
  else {
    alert (msg);
    return false;
  }
}

function submitForm() {
  var submitArray = submitForm.arguments;
  var name = submitArray[submitArray.length-1];
  var form = document.forms[name];
  var valid = true;
  
  var delaction = false;
  var action=false;
  for (var i=0; i<submitArray.length-2; i+=2) {
    if (submitArray[i].indexOf("$action",0) != -1 && (submitArray[i+1] == "delete" || submitArray[i+1] == "edit")) action = true;
  }  

  if (submitArray.length > 1 && (action || checkForm(name))) {
    for (var i=0; i<submitArray.length-2; i+=2) {
      if (form.elements[submitArray[i]]) form.elements[submitArray[i]].value = submitArray[i+1];
    }
    form.submit();
    return true;
  }
  else {
    return false;
  }
}

function submitNamedForm(name) {
  if(checkForm(name)) {
    document.forms[name].submit();
  }
}

function transferName(formName,uploadEltName,pathPefix) {
  var file_name = document.forms[formName].elements["File."+uploadEltName+".Name"].value;
  file_name = file_name.substring(file_name.lastIndexOf("\\")+1,file_name.length);
  file_name = file_name.substring(file_name.lastIndexOf("/")+1,file_name.length);
  file_name = regExReplaceIcase(file_name,"[^a-z0-9_.-]","");
  document.forms[formName].elements["Mail.$attach"].value = "/contents/users/"+pathPefix+file_name;
}

function transferNameGeneric(formName,from,to,pathPefix) {
  var file_name = document.forms[formName].elements[from].value;
  file_name = file_name.substring(file_name.lastIndexOf("\\")+1,file_name.length);
  file_name = file_name.substring(file_name.lastIndexOf("/")+1,file_name.length);
  file_name = regExReplaceIcase(file_name,"[^a-z0-9_.-]","");
  document.forms[formName].elements[to].value = "/contents/users/"+pathPefix+file_name;
  
}

function transferNameUsrItm(formName,uploadEltName,pathPefix) {
  var file_name = document.forms[formName].elements["uFile."+uploadEltName].value;
  file_name = file_name.substring(file_name.lastIndexOf("\\")+1,file_name.length);
  file_name = file_name.substring(file_name.lastIndexOf("/")+1,file_name.length);
  file_name = regExReplaceIcase(file_name,"[^a-z0-9_.-]","");
  document.forms[formName].elements["File."+uploadEltName+".Name"].value = file_name;
  document.forms[formName].elements["UsrItmTab."+uploadEltName+".Wrd"].value = pathPefix+file_name;
}

function updateTopButton() {

  if(getElt("top_button")) {
    var topButton = getElt("top_button");
    
    if(getWindowScrollTop() > 0) {
      setEltVisibility(topButton,'visible');
      setEltDisplay(topButton,'block');
      setEltPosition(topButton,'absolute');

      /*if(getWindowWidth() >= tableWidth) {
        start = (getWindowWidth() - tableWidth)/2;
      }
      var difR = start + 50;*/
      //setEltRight(topButton,difR);
			valX = (parseInt(getWindowWidth()/2) + 295);
			setEltLeft(topButton,valX)

      var valY = (parseInt(getWindowHeight()) - 100 + parseInt(getWindowScrollTop()));
      setEltTop(topButton,valY);
    } else {
      setEltVisibility(topButton,'hidden');
      setEltDisplay(topButton,'none');
    }
  }
}

