function validateform(form2validate) {
	var showError = false;

	/* required fields */
	var reqfields = form2validate.validateRequired.value.split(',');	
	for(var x=0;x<reqfields.length;x=x+1)
	{
		var currentfield = $(reqfields[x]);
		if(!currentfield.value.length)
			showError = showMsg(currentfield,'Gelieve dit veld in te vullen.');
		else
			hideMsg(currentfield);
	}
	
	/* check email */
	var emailfields = form2validate.validateEmail.value.split(',');
	for(var x=0;x<emailfields.length;x=x+1)
	{
		var currentfield = $(emailfields[x]);
		var currentStyle = currentfield.parentNode.className;
		
		var regex = new RegExp("^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$");
		if(!regex.test(currentfield.value))
			showError = showMsg(currentfield,'Gelieve een geldig e-mail adres op te geven.');
		else
			hideMsg(currentfield);
	}
	
	/* required selection
	var reqselectfield = form2validate.validateSelection.value.split(',');
	for(var x=0;x<reqselectfield.length;x=x+1)
	{
		var currentfield = document.getElementById(reqselectfield[x]);
		var currentStyle = currentfield.className;
		var radiolength = document.nafraShop[reqselectfield[x]].length;
		var nrChecked = 0;
		
		for (i=0;i<radiolength;i++) {
			if(document.nafraShop[reqselectfield[x]][i].checked)
				nrChecked = nrChecked+1;
		}
		if(nrChecked == 0){
			showError = true;
			if(currentfield.className.indexOf('f_error') == -1)
				currentfield.className = currentStyle+' f_error';
		} else {
			if(currentfield.className.indexOf('f_error') != -1)
				currentfield.className = currentStyle.substring(0,currentStyle.indexOf('f_error'));
		}
	} */

	/* if any of the fields is incorrect, show the message */
	if(showError)
		return false;
	else
		return true;
}

/* private functions */

function showMsg(currfield,errortext){
	var pField = currfield.parentNode;
	var pStyle = pField.className;

	if(pField.className.indexOf('f_error') == -1) {
		pField.className = pStyle+' f_error';
		if(pField.childNodes[pField.childNodes.length-1].id != 'errortext')
			pField.innerHTML=pField.innerHTML+'<span id="errortext" class=f_errortext>'+errortext+'</span>';
	}
	return true;
}

function hideMsg(currfield){
	var pField = currfield.parentNode;
	var pStyle = pField.className;
	
	if(pField.className.indexOf('f_error') != -1) {
		pField.className = pStyle.substring(0,pStyle.indexOf('f_error'));
		if(pField.childNodes[pField.childNodes.length-1].id == 'errortext')
			pField.removeChild(pField.childNodes[pField.childNodes.length-1]);
	}
}
