function validate(form) {
	if (document.getElementById('email').value=="") {
		alert("Vul aub een e-mailadres in");
		document.getElementById('email').focus();
		return false;
	} else if (!emailValidator(document.getElementById('email'))) {
		alert('"' + document.getElementById('email').value + '" is geen geldig e-mailadres.');
		return false;
	}
	if (document.getElementById('boodschap').value=="") {
		alert("Je hebt nog geen boodschap ingevuld.");
		document.getElementById('boodschap').focus();
		return false;	
	}
}

function stripHTML(v) {
	var re= /<\S[^><]*>/g
	while (v.indexOf("<")>=0) { //match(re)) {
		v = v.replace("<", "[");
	}
	while (v.indexOf(">")>=0) {
		v = v.replace(">", "]");
	}
	while (v.indexOf("&lt;")>=0) {
		v = v.replace("&lt;", "[");
	}
	 while (v.indexOf("&st;")>=0) {
		v = v.replace("&st;", "]");
	}
	return v;	
}


//input is een array met als elementen: [formveldnaam. soort validatie]
function formValidator(elems) {
	i=0;
	while (i<elems.length) {
		elem = elems[i];
		
		field = document.getElementById(elem[0]);
		validType = elem[1];

		// Check each input in the order that it appears in the form!
		switch(validType) {
			case 'verplicht':
				return !isEmpty(field, '%1 is een verplicht veld.');
				break;
			case 'tekst':
				return !isAlphabet(field, "%1: je kunt hier alleen letters (a-z / A-Z) invullen.");
				break;
			case 'alfanumeriek':
				return !isAlphanumeric(field, "%1: je kunt hier alleen letters en cijfers (a-z / A-Z / 0-9) invullen.");
				break;
			case 'numeriek':
				return !isNumeric(field, "%1: je kunt hier alleen cijfers (0-9) invoeren.");
				break;
			case 'selecteer':
				return !madeSelection(field, "%1: maak een keuze.");
				break;
			case 'lengte':
				return !lengthRestriction(field, 6, 8);
				break;
			case 'email':
				return !emailValidator(field, "%1 is geen geldig e-mailadres.");
				break;
			default:
				return false;
				break;
		}
		i++;
	}
}

function msg(v, t) {
	if (t.indexOf("%2")>=0) {
		while (t.indexOf("%2")>0)
			t = t.replace("%2", v.value);
	}
	while (t.indexOf("%1")>=0) {
		name = v.name;
		name = name.substring(0,1).toUpperCase() + name.substring(1);
		t = t.replace("%1", "'"+name+"'");
	}
	document.getElementById("div_"+v.name).style.color="red";
	document.getElementById("div_"+v.name).innerHTML="<i>"+document.getElementById("div_"+v.name).innerHTML+"</i>";
	alert(t);
}

function isEmpty(elem, helperMsg){
	if(elem.value.length == 0){
		msg(elem, helperMsg);
		elem.focus(); // set the focus to this input
		return true;
	}
	return false;
}

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		msg(elem, helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		msg(elem, helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		msg(elem, helperMsg);
		elem.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		msg(elem, helperMsg);
		elem.focus();
		return false;
	}
}

function madeSelection(elem, helperMsg){
	if(elem.value == "Please Choose"){
		msg(elem, helperMsg);
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		if (helperMsg) msg(elem, helperMsg);
		elem.focus();
		return false;
	}
} 

