
//library nuttig.js nodig





//****************************************	
function insertVandaagPHP(tveld){
//voegt de datum van vandaag in in een frmveld in de MySql/php format YYYY-MM-DD

	var vandaag=new Date();
	var jaar=vandaag.getFullYear();
	var maand = vandaag.getUTCMonth()+1;
	var dag=vandaag.getUTCDate();
	var phpdatum = jaar+"-"+maand+"-"+dag;
	tveld.value=phpdatum;
	
	}
//****************************************	
function isMySqlDatum(tveld){
//controleert het datumformaat voor MySql: YYYY-MM-DD

var resultaat = false;
var strDatum = trim(tveld.value); // lib nuttig.js
var l= strDatum.length;

alert("waarde: "+strDatum);
alert("lengte: "+l);
if(l==10){

	var strJaar=strDatum.substr(0,4);
	var streep1=strDatum.substr(4,1);
	var strMaand = strDatum.substr(5,2);
	var streep2 = strDatum.substr(7,1);
	var strDag = strDatum.substr(8);
	
	//alert(strJaar+streep1+strMaand+streep2+strDag);
	
	if((!isNaN(strJaar))&&(!isNaN(strMaand))&&(!isNaN(strDag))&&(streep1=='-')&&(streep2=='-')){
		//format ziet er goed uit, maar is het een geldige datum?
		//maak er een Date object van en vergelijk
		//houdt rekening met schrikkeljaren
		jaar=parseInt(strJaar);
		maand=parseInt(strMaand)-1;
		dag=parseInt(strDag);
		
		alert("ingelezen datum": +jaar + " "+maand+ " "+dag);
		
		var testDatum=new Date();
		
		testDatum.setFullYear(jaar);
		testDatum.setMonth(maand);
		testDatum.setDate(dag);
		
		alert("aangemaakte datum": +testDatum.getFullYear()+ " "+testDatum.getMonth()+ " "+testDatum.getDate() );
		
		
		if((testDatum.getFullYear()==jaar)&&(testDatum.getMonth()==maand)&&(testDatum.getDate()==dag)){
			
			//alert("OK");
			resultaat=true;
		}
				
	}
	else{
		//alert("vgl niet goed");
	}
}

if(resultaat===false){
	tveld.focus();
	//alert("slecht");
	genereerWaarschuwing(tveld,"datumformaat fout of datum ongeldig");
	
	
	}
return resultaat;
}


//*********************************************

function toonObjectViaCheckBox(chkbx,strId){
//toggled de visbility van een element met een ID via een toggle van een checkbox
// chkbx = de checkbox
//strId = het id van het te berbergen/tonen element

if (document.getElementById && document.getElementById(strId)){
	var teTonen = document.getElementById(strId)
	//set inline style afhankelijk van checked waarde	
	teTonen.style.visibility=(chkbx.checked)?'visible':'hidden';
	/* display geeft betere resultaten maar er moet gewerkt worden met 'table-row-group' of 'table-row' 
	en IE6 ondersteunt dit niet (FF wel, IE7? ). 
	Alternatief is natuurlijk geen table gebruiken maar een div of zo. 
	indien je dit doet, pas ook de stylesheet aan
	*/
	
	//teTonen.style.display=(obj.checked)?'table-row-group':'none';
}
}

//****************************************

function zetDisplay(obj,strDisplay){
//toggled de display van een elementNode tussen 'block' en 'none'
// obj =elementNode
//inline style van obj

obj.style.display = strDisplay

}


//****************************************

function checkTekstVeld(tveld){
//controleert of een tekstveld leeg is
window.status="controleer " + tveld.name;
if (tveld.value == ""){
			tveld.focus();
			genereerWaarschuwing(tveld,"invullen verplicht");
			return false;
		}
else {return true}
}

//****************************************

function genereerWaarschuwing(obj,tekst){
//genereert een waarschuwingstekstje onmiddellijk na een element zoals een formuliertekstveld
// basically komt het er op neer een tekstNode aan de parent te koppelen
// daarbij geven we het een klasse mee: zorg voor de css .waarschuwing
// we gebruiken geen appendChild omdat twee tekstvelden met dezzelfde parent
var pappie = obj.parentNode ;//container waarin label, input zitten
var baby = document.createElement('div'); 
baby.setAttribute('class','waarschuwing');
baby.appendChild(document.createTextNode(tekst));
pappie.insertBefore(baby,pappie.firstChild);
}

//****************************************

function verwijderWaarschuwingen(startNode){
var berichten = getElementsWithClass(startNode, 'div', 'waarschuwing')
//alert(berichten.length)
for (var i=0;i<berichten.length;i++){
berichten[i].parentNode.removeChild(berichten[i])
}
}    

//****************************************

function waardeTest(tveld, minimum, maximum){
//controleert de ingegeven waarde voor numeriek en toets tegen min en max
// voor interview niveau en testen
var output=false;

var strNummer = tveld.value

if (!isNaN(strNummer)) {
		var getal =parseInt(strNummer);
		if ((getal>=minimum)&&(getal<=maximum)){
			output=true;
		}
	}


if (output==false){
	tveld.focus();
	genereerWaarschuwing(tveld,"getal ts"+minimum+ " en " +maximum);}

return output;
}

//****************************************

function checkRadios(rveld){
// deze functie returned de gekozen waarde 
// indien niets geselecteerd is de waarde null
var output=null;
for (var i=0;i<rveld.length;i++) { 
		if (rveld[i].checked) {
			output=rveld[i].value
			break;
		}
	}
	
if (output==null){
	rveld[0].focus();
	//	hier even oppassen: de laatste radiobutton van de set is rveld[rveld.length-1]
	// dus waarschuwing op dit obj
	genereerWaarschuwing(rveld[rveld.length-1],"maak een keuze");
	}
return output;

}


