// functies om een beetje overal te gebruiken :

function getclassname(arg){
	var temparray=new Array();
	var x=document.getElementsByTagName('*');
	xtemp=x.length;
	for (var i=0;i<xtemp;i++){
		if (x[i].className==arg){
			temparray.push(x[i]);
		};
	}
	return temparray;
}
document.getElementsByClassName=getclassname;

function LTrim(str)
{
  var whitespace = new String(" \t\n\r");

  var s = new String(str);

  if (whitespace.indexOf(s.charAt(0)) != -1) {
	var j=0, i = s.length;

	while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
	j++;
	s = s.substring(j, i);
  }

  return s;
}

function RTrim(str)
{
  var whitespace = new String(" \t\n\r");

  var s = new String(str);

  if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
	var i = s.length - 1;
	while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
	  i--;
	s = s.substring(0, i+1);
  }

  return s;
}

function Trim(str)
{
	return RTrim(LTrim(str));
}

function makeAscii(str)
{
	var lLen, c, newStr, OldStr, cChar, charOk, charAscii;
	newStr = "";
	oldStr = new String(str);
	lLen = oldStr.length;

	for(c=0;c<lLen;c++){
		charOk = false;
		cChar = oldStr.charAt(c);
		charAscii = oldStr.charCodeAt(c);
		if(charAscii >= 48 && charAscii <= 57){
			charOk = true;
		}
		if(charAscii >= 65 && charAscii <= 90){
			charOk = true;
		}
		if(charAscii >= 97 && charAscii <= 122){
			charOk = true;
		}
		if(charOk){
			newStr += cChar;
		}
	}
	return newStr;
}



function datePicker(URL,w,h,x,y){
	poppy = window.open(URL, "datepicker", "width=" + w + ", height=" + h + ", location=no, menubar=no, status=no, toolbar=no, scrollbars=no, resizable=yes");
	poppy.moveTo(x,y)
}

function selectInput(inp){
	// zorgt ervoor dat tekst geselecteerd staat als men een veldje aanklikt
	inp.focus();
	inp.select();
}

function selectFirst(frmName){
	// geeft de focus aan het eerste input veldje
	var frm = document.forms[frmName];
	if(frm){
		var inputs = frm.getElementsByTagName("input");
		for(i=0;i<inputs.length;i++){
			if(inputs.item(i).type == "text") {
				selectInput(inputs.item(i));
				i = inputs.length + 1;
			}
		}
	}
}

function getStyleold(el,styleProp)
{
	// functie om een effectieve stylkenmerk te gaan ophalen van een bepaald element
	var x = document.getElementById(el);
	if (x.currentStyle)
		var y = x.currentStyle[styleProp];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
	return y;
}

function getStyle(sNodeId,sProperty)
{
	try{
		var oNode = document.getElementById(sNodeId);

		if(document.defaultView)
		{
			return document.defaultView.getComputedStyle(oNode, null).getPropertyValue(sProperty);
		}
		else if(oNode.currentStyle)
		{
			var sProperty = sProperty.replace(/-\D/gi, function(sMatch)
			{
				return sMatch.charAt(sMatch.length - 1).toUpperCase();
			});

			return oNode.currentStyle[sProperty];
		}
		else return null;
	} catch(e){
		return "";
	}
}

function getStyleDom(elId, prop_css, prop_dom, prop_offset) {
	el = document.getElementById(elId);
	if (el.style[prop_dom]) {
		return el.style[prop_dom]
	}
	if (document.defaultView) {
		return document.defaultView.getComputedStyle(el, "").getPropertyValue(prop_css)
	}
	if (el.currentStyle) {
		if (!isNaN(el.currentStyle[prop_dom])) {
			return el.currentStyle[prop_dom]
		}
	}
	return el["offset" + prop_offset]
}

function validEmail(email)
{
	invalidChars = " /:,;"
	if (email == "")
	{
		return true;
	}

	for (i=0; i<invalidChars.length; i++)  		// does it contain any invalid characters?
	{
		badChar = invalidChars.charAt(i)
		if (email.indexOf(badChar,0) > -1)
		{
			return false
		}
	}

	atPos = email.indexOf("@",1)                    // there must be one "@" symbol
	if (atPos == -1)
	{
		return false
	}
	if (email.indexOf("@",atPos+1) != -1) 			// and only one "@" symbol
	{
		return false
	}

	periodPos = email.indexOf(".",atPos)
	if (periodPos == -1)                         	// and at least one "." after the "@"
	{
		return false
	}

	if (periodPos+3 > email.length)					// must be at least 2 characters after the "."
	{
		return false
	}

	 return true
}

function validGeboortedatum(geboortedatum){
	var ret = false;
	if(Trim(geboortedatum) != ""){
		// geen fout bij lege geboortedatum
		// opsplitsen van datum
		datumSplitted = geboortedatum.split("/");
		var dag = Number(datumSplitted[0]);
		var maand = Number(datumSplitted[1]);
		var jaar = Number(datumSplitted[2]);

		if(!isNaN(dag) && !isNaN(maand) && !isNaN(jaar) && dag!=0 && maand!=0 && jaar!=0){
			ret = isValidDate(dag, maand, jaar);
		}
	} else {
		ret = true;
	}
	return ret;
}

function geldigeDatum(datum){
	var ret = false;
	if(Trim(datum) != ""){
		// geen fout bij lege datum
		// opsplitsen van datum
		datumSplitted = datum.split("/");
		var dag = Number(datumSplitted[0]);
		var maand = Number(datumSplitted[1]);
		var jaar = Number(datumSplitted[2]);

		if(!isNaN(dag) && !isNaN(maand) && !isNaN(jaar) && dag!=0 && maand!=0 && jaar!=0){
			ret = isValidDate(dag, maand, jaar);
		}
		if(jaar < 1900 || jaar > 3000){
			ret = false;
		}
	} else {
		ret = true;
	}
	return ret;
}

function geldigGetal(get){
	// eerst de kommas naar punt omzetten om te kunnen valideren in js
	get.value = get.value.replace(",", ".");
	getal = get.value;
	var ret = false;
	if(getal == ""){
		ret = true;
	} else {
		if(isNaN(getal)){
			ret = false;
		} else{
			ret = true;
		}
	}

	// punten terug naar komma om te kunnen saven in db
	get.value = get.value.replace(".", ",");
	return ret;
}

function geldigInteger(get){
	var ret = false;
	if(get.value == ""){
		ret = true;
	} else {
		if(geldigGetal(get)){
			val= parseInt(get.value);
			if(val == get.value){
				ret = true;
			} else {
				ret = false;
			}
		} else {
			ret = false;
		}
	}
	return ret;
}

function isValidDate(day, month, year) {
	if (month < 1 || month > 12) {
		return false;
	}
	if (day < 1 || day > 31) {
		return false;
	}
	if ((month == 4 || month == 6 || month == 9 || month == 11) &&
		(day == 31)) {
		return false;
	}
	if (month == 2) {
		var leap = (year % 4 == 0 &&
		   (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day == 29 && !leap)) {
			return false;
		}
	}

	if(year < 1850){
		return false;
	}

	return true;
}

function isValidDateWithYears(day, month, year, startYear, endYear) {
	if (month < 1 || month > 12) {
		return false;
	}
	if (day < 1 || day > 31) {
		return false;
	}
	if ((month == 4 || month == 6 || month == 9 || month == 11) &&
		(day == 31)) {
		return false;
	}
	if (month == 2) {
		var leap = (year % 4 == 0 &&
		   (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day == 29 && !leap)) {
			return false;
		}
	}

	if(year < startYear){
		datumBuitenGrenzen = true;
		return false;
	}

	if(year > endYear){
		datumBuitenGrenzen = true;
		return false;
	}

	return true;
}

function checkRadioButtons(radios){
	var selectedRadio = "";
	for (i=0;i<radios.length;i++)
	{
		if (radios[i].checked)
		{
			selectedRadio = radios[i].value;
		}
	}
	return selectedRadio;
}

function getFormValue(frm, field){
	var ret = "";
	try{
		ret = eval("frm." + field + ".value");
	}
	catch(e){
		//alert(e);
	}
	return ret;
}

function setFoutOld(veld, fout, originalTitleColor, checkEmpty){
	if(fout){
		foutVerplicht = true;
		try{
			document.getElementById("id_" + veld).style.backgroundColor = "red";
		}
		catch(e){
		}
		if(eersteFout == ""){
			eersteFout = veld;
		}
	}else {
		if(checkEmpty){
			var val = getFormValue(frm, veld);
			if(val) {
				try{
					document.getElementById("id_" + veld).style.backgroundColor = originalTitleColor;
				}
				catch(e){
					//alert(e);
				}
			}
		} else{
			try{
				document.getElementById("id_" + veld).style.backgroundColor = originalTitleColor;
			}
			catch(e){
				//alert(e);
			}
		}
	}
}

function setFout(veld, fout){
	if(fout){
		try{
			document.getElementById("id_" + veld).style.color = "#d72c90";
			document.getElementById("id_" + veld).style.fontWeight = "bold";
			document.getElementById("star_" + veld).style.display = "none";
			document.getElementById("icon_" + veld).style.display = "block";
		}
		catch(e){
		}
	}else {
		try{
			document.getElementById("id_" + veld).style.color = "#000000";
			document.getElementById("id_" + veld).style.fontWeight = "normal";
			document.getElementById("star_" + veld).style.display = "block";
			document.getElementById("icon_" + veld).style.display = "none";
		}
		catch(e){
		}
	}
}

function setFout2(veld, blokTeller, fout){
	if(fout){
		try{
			document.getElementById("id_" + veld + "_" + blokTeller).style.color = "#d72c90";
			document.getElementById("id_" + veld + "_" + blokTeller).style.fontWeight = "bold";
			document.getElementById("star_" + veld + "_" + blokTeller).style.display = "none";
			document.getElementById("icon_" + veld + "_" + blokTeller).style.display = "block";
		}
		catch(e){
		}
	}else {
		try{
			document.getElementById("id_" + veld + "_" + blokTeller).style.color = "#000000";
			document.getElementById("id_" + veld + "_" + blokTeller).style.fontWeight = "normal";
			document.getElementById("star_" + veld + "_" + blokTeller).style.display = "block";
			document.getElementById("icon_" + veld + "_" + blokTeller).style.display = "none";
		}
		catch(e){
		}
	}
}


function showEdit(layerId){
	document.getElementById(layerId).style.display = "block";
	var imgIdMin = layerId + "Min"
	var imgIdPlus = layerId + "Plus"
	if(document.getElementById(imgIdMin)){
		document.getElementById(imgIdMin).style.display = "inline";
		document.getElementById(imgIdPlus).style.display = "none";
	}
}

function hideEdit(layerId){
	document.getElementById(layerId).style.display = "none";
	var imgIdMin = layerId + "Min"
	var imgIdPlus = layerId + "Plus"
	if(document.getElementById(imgIdMin)){
		document.getElementById(imgIdMin).style.display = "none";
		document.getElementById(imgIdPlus).style.display = "inline";
	}
}


function showLayer(div){
	//alle divs weer in zwart zetten
	var alleDivs = document.getElementById("idTableFases").getElementsByTagName("div");
	for(i=0;i<alleDivs.length;i++){
		alleDivs.item(i).style.color = "#545454";
	}

	//deze div in juiste roos zetten
	document.getElementById(div.id).style.color = "#d72e91";

	//alle popups verbergen
	var allePopups = document.getElementById("idTdPopups").getElementsByTagName("div");
	for(i=0;i<allePopups.length;i++){
		allePopups.item(i).style.display = "none";
	}

	//toon de juiste popup
	document.getElementById(div.id + "Popup").style.display = "block";
}

function hideLayer(div){
	//deze div in juiste zwart zetten
	document.getElementById(div.id).style.color = "#545454";

	//verberg deze popup
	document.getElementById(div.id + "Popup").style.display = "none";
}

var datumBuitenGrenzen;
function checkDatum(inp, oldGeboorteDatum, typeControle, startYear, endYear){
	datumBuitenGrenzen = false;
	var foutGeboorteDatumToekomst = false;

	// controle geboortedatum
	var ret = true;
	geboorteDatum = inp.value;
	
	if(geboorteDatum == ""){
		return true;
	}

	// controle syntax
	var arrDate = new Array();
	arrDate = geboorteDatum.split('/');
	if(arrDate.length != 3){
		ret = false;
	}

	if(ret){
		geboorteDatumDD = arrDate[0];
		geboorteDatumMM = arrDate[1];
		geboorteDatumJJJJ = arrDate[2];

		if(isNaN(geboorteDatumDD) || isNaN(geboorteDatumMM) || isNaN(geboorteDatumJJJJ)){
			ret = false;
		}

		//controle geldige datum
		if(!isValidDateWithYears(geboorteDatumDD, geboorteDatumMM, geboorteDatumJJJJ, startYear, endYear)){
			ret = false;
		}

		if(typeControle == "geboortedatm"){
			//controle geen datum in toekomst
			var today = new Date();
			var dateGeboorteDatum = new Date(geboorteDatumJJJJ, geboorteDatumMM-1, geboorteDatumDD); //Month is 0-11 in JavaScript
			if(dateGeboorteDatum >= today){
				ret = false;
				foutGeboorteDatumToekomst =  true;
			}
		}
	}

	if(ret == false){
		msg = "";
		msg += "Gelieve een geldige datum op te geven.";
		if(datumBuitenGrenzen){
			msg += "\nDe datum moet liggen tussen de jaartallen " + startYear + " en " + endYear + ".";	
		}
		if(foutGeboorteDatumToekomst){
			msg += "\nDe datum moet voor vandaag zijn.";
		}
		alert(msg);

		//oude datum terugzetten
		inp.value = oldGeboorteDatum;
	}
	datumBuitenGrenzen = false;
}

//opgepast function deleteItem(...) bestaat al ergens in een pagina [manager_profiel.asp]
function deleteItem2(id, item, blokTeller){
	var del = confirm("Bent u zeker dat u " + item + " wil verwijderen?");
	if(del){
		document.getElementById(id + "Verwijder_" + blokTeller).value = "1";
		document.getElementById(id + "_" + blokTeller).style.display = "none";
		document.getElementById(id + "File_" + blokTeller).style.display = "block";
	}
}
		
function setRowDisplay(RowType, newDisplay){
	var rijen = document.getElementsByTagName("tr");
	if(rijen != null){
		for(i=0; i<rijen.length;i++){
			if(rijen.item(i).className == RowType){						
				if(newDisplay == "table-row"){
					// voor ie moet het "block" zijn, voor FF moet het "table-row" zijn
					try {
						rijen.item(i).style.display = "table-row";
					}
					catch(e) {
						rijen.item(i).style.display = "block";							
					}								
				} else {
					rijen.item(i).style.display = "none";
				}
			}
		}
	}
}