function CheckVerplicht(formId, verplicht, email) {

	var formulier = document.forms[formId];
	var errors = new Array();
	
	// Check eerst op lege velden	
	for (veld in verplicht){
		var waarde = formulier.elements[veld];
		if(waarde.type == "select-one" && !waarde.selectedIndex && !waarde.disabled){
			if(waarde.value == "" || waarde.value == " " || waarde.value == "-") {
				errors[errors.length] = verplicht[veld];
			}
		}
		else if(!waarde.value && waarde.length > 0){
			// radiobuttons
			ok = false;
			for (radio = 0; radio < waarde.length; radio ++){
				if(waarde[radio].checked) ok = true;
			}
			if(!ok) errors[errors.length] = verplicht[veld];
		}
		else if(!waarde.value){
			errors[errors.length] = verplicht[veld];
		}
		else if(waarde.name == "telefoon"){
			aantalCijfers = 0;
			testWaarde = waarde.value;
			for(i=0; i<waarde.value.length; i++) {
				if(testWaarde.charAt(i) > 0 || testWaarde.charAt(i) == "0") aantalCijfers ++;
			}
			if(aantalCijfers < 10) alert("Uw telefoonnummer is ongeldig \(" + formulier.elements['telefoon'].value + "\)!\nVul aub een geldig telefoonnummer in.");	
		}
	}
	// Is e-mail OK?	
	if (email && formulier.elements[email].value != "") 
	{		
		if ((formulier.elements[email].value.indexOf("@")==-1)||(formulier.elements[email].value.indexOf(".")==-1)) {
			alert("Uw e-mail adres is ongeldig \(" + formulier.elements[email].value + "\)!\nVul aub een geldig e-mail adres in.");			
			return;		
		}	
	}		
	// Verstuur form of geef alert	
	if(errors.length) {
	var errorString = "U moet de volgende velden nog invullen:";		
	for (j = 0; j < errors.length; j++) {
			errorString += ("\n- " + errors[j]);
		}
		alert(errorString);
		return false;
	} 
	else {	
		// formulier.submit();	
		return true;
	}	
}

function CheckEmail(formId, email, label) {
	var formulier = document.forms[formId];
	// Is e-mail OK?	
	if (email && formulier.elements[email].value != "") 
	{		
		if ((formulier.elements[email].value.indexOf("@")==-1)||(formulier.elements[email].value.indexOf(".")==-1)) {
			alert("'" + label + "' is ongeldig \(" + formulier.elements[email].value + "\)!\nVul aub een geldig e-mail adres in.");			
			return false;		
		}	
	}
	return true;
}

function CheckBoxen(formId, naam, melding){
	var boxen = new Array();
	boxen = document.forms[formId].elements[naam];
	
	// Check eerst op lege velden	
	for (i = 0; i < boxen.length; i++){	
		if(boxen[i].checked){
			melding = false;
			break;
		}
	}		

	// Verstuur form of geef alert	
	if(melding) {
		alert(melding);
	} 
	else {		
		document.forms[formId].submit();	
	}	
}

function CheckDatum(elem, lengte){
	var datum = new String (elem.value);
	var geldig = true;
	
	// Vervang scheidingstekens
	datum = datum.replace(/[ \-,\.\:\;\/]/g, "-");
	var delen = datum.split("-");
	if(!lengte) {
		lengte = delen.length;
	}
	else if(delen.length < lengte){
		geldig = false;
	}
	
	delen.reverse();
	
	// Jaar checken
	var jaar = delen[0];
	switch (jaar.length){
		case 2:
			if(jaar > 50){
				jaar = "19" + jaar;
			}
			else {
				jaar = "20" + jaar;
			}
			break;
		case 4:
			break;
		default:
			geldig = false;
	}
	
	// Maand checken
	if(lengte > 1 && geldig){
		var maand = delen[1];
		maand = maand.toLowerCase();
		maand = maand.substr(0,3);
		num = parseInt(maand, 10);
		if(!num.NaN && num < 13){
			maand = num;
		}
		else {
			switch (maand){
				case "jan":
					maand = 1;
					break;
				case "feb":
					maand = 2;
					break;
				case "maa":
					maand = 3;
					break;
				case "mrt":
					maand = 3;
					break;
				case "apr":
					maand = 4;
					break;
				case "mei":
					maand = 5;
					break;
				case "jun":
					maand = 6;
					break;
				case "jul":
					maand = 7;
					break;
				case "aug":
					maand = 8;
					break;
				case "sep":
					maand = 9;
					break;
				case "okt":
					maand = 10;
					break;
				case "oct":
					maand = 10;
					break;
				case "nov":
					maand = 11;
					break;
				case "dec":
					maand = 12;
					break;
				default:
					geldig = false;
			}
		}
	}
	
	// Dag 
	if(lengte == 3 && geldig){
		var dag = delen[2];
		dag = parseInt(dag);
		
		if((dag == 0) || (dag > 31) || (dag > 29 && maand == 2) || ((dag > 30) && (maand == 4 || maand == 6 || maand == 9 || maand == 11))){
			geldig = false;
		}			
	}
	if(geldig){
		if(lengte > 1){
			elem.value = maand + "-" + jaar;
			if(lengte == 3){
				elem.value = dag + "-" + elem.value;
			}
		}
		else {
			elem.value = jaar;
		}
		return true;
	}
	else {
		alert("Ongeldige datum!");
		elem.focus();
		elem.select();
		return false;
	}
}


function TelefoonNr(elem){
	var telnr = new String (elem.value);
	var geldig = true;
	var mobiel = false;
	
	// Test wat voor soort nummer
	if(telnr.indexOf("06") == 0){
		mobiel = true;
	}
	
	// Vervang scheidingstekens
	telnr = telnr.replace(/[ \-,\.\:\;\/]/g, "");
	if(telnr.length != 10){
		alert("Ongeldig telefoonnummer!");
		return false;
	}
	else if(mobiel){
		elem.value = telnr.substring(0,2) + " " + telnr.substring(2,6) + " " + telnr.substring(6,10);
		return true;
	}
	else {
		elem.value = telnr.substring(0,3) + " " + telnr.substring(3,6) + " " + telnr.substring(6,10);
		return true;
	}
}

function PostcodePlaats(elem){
	var myRegExp = /[0-9]{4} *[A-Za-z]{2} +[a-zA-Z \-\'\"]+/;  //"'
	var codePlaats = new String(elem.value);
	if(!codePlaats.match(myRegExp)){
		alert("Ongeldige postcode en/of plaatsnaam.");
		return false;
	}
	else {
		return true;
	}
}

function Adres(elem){
	var myRegExp = /[a-zA-Z \-\'\"]+/;  //"'
	var yourRegExp = /[0-9]+/;  
	var adres = new String(elem.value);
	if(!adres.match(myRegExp) || !adres.match(yourRegExp)){
		alert("Ongeldig adres.");
		return false;
	}
	else {
		return true;
	}
}

function Email(elem){
	var myRegExp = /[a-z0-9\-\_\.]+@[a-z0-9\-\_\.]{2,}\.[a-z0-9\-\_\.]{2,}/i;
	var email = new String(elem.value);
	if(!email.length) {
		return false;
	}
	if(!email.match(myRegExp)){
		alert("Ongeldig emailadres.");
		return false;
	}
	else {
		return true;
	}
}

function CheckCijfer(elem){
	var cijfer = new String (elem.value);
	cijfer.replace(/\./, ",");
	var myRegExp = /[0-9,\+\-]+/;
	if(!cijfer.match(myRegExp) || parseInt(cijfer) > 10){
		alert("Ongeldig cijfer.");
		return false;
	}
	else {
		return true;
	}
}
