required = '';
kolom = '';
firstField = '';
kolomLength = 0;
function initFormValidation(formId){
	//verplichte velden
	required = ''; 
	kolom = '';
	if(document.forms[formId]['required'])required = document.forms[formId]['required'].value.split (/\s*,\s*/);
	//uitzonderingsvelden kolommen
	if(document.forms[formId]['kolom'])kolom = document.forms[formId]['kolom'].value.split (/\s*,\s*/);
	var theField;
	for (x = 0; x < document.forms[formId].length; x++) {
		if (document.forms[formId][x].type == 'text' || document.forms[formId][x].type == 'textarea')
		{
			theField = document.forms[formId][x]
			if (theField) theField.value = cleanInputClientside(theField.value);
		}
	}
}

var testenCV = ""

function validateForm(formId){
	var i;
	var melding = '';
	var oldTemp;
	var temp;
	if(document.forms[formId]['melding']){
		startMelding = document.forms[formId]['melding'].value;
	}
	else{
		startMelding = 'U heeft de volgende velden nog niet ingevuld:';
	}
	initFormValidation(formId);
	
	for(i = 0; i < document.forms[formId].elements.length;i++){
		if(document.forms[formId].elements[i]){
			temp = document.forms[formId].elements[i].name;			
			var waarde
			
			waarde = document.forms[formId].elements[i].value
			if (waarde && temp == "CV")
			{
				waarde = waarde.toLowerCase();
				if (waarde.indexOf(".doc") == -1 && waarde.indexOf(".pdf") == -1 && waarde.indexOf(".txt") == -1 ) {
					testenCV = "CV (geen .doc, .pdf of .txt bestand)"
				} else {
					testenCV = ""
				}
			}
			//if (temp == "CV" && waarde != "") {
				//if (waarde.indexOf(".doc") == -1 && waarde.indexOf(".pdf") == -1 && waarde.indexOf(".txt") == -1 )
				//{
					
				//}
			//}
			if ((checkIfRequired(temp)) && ((document.forms[formId].elements[i].value == '') || ((temp == 'E-mail') && ((document.forms[formId].elements[i].value.indexOf("@") == -1) || (document.forms[formId].elements[i].value.indexOf(".") == -1)) )) ){

				if (melding == '') firstField = i;
				//postcode uitzondering
				if (temp == 'postcode_letter' || temp == 'postcode_cijfer') temp = 'postcode';
				if (temp == 'CV') temp = 'CV (geen .doc, .pdf of .txt bestand)'
				if(document.getElementById)if(document.getElementById(temp + 'title'))document.getElementById(temp + 'title').className = 'error';
								
				if(oldTemp != temp) {
					if (melding == '') melding = startMelding + '\n\n';
					melding += '- ' +temp +'\n';
				}
				oldTemp = temp;
			}
			else if (checkIfKolom(temp) && document.forms[formId].elements[i].value == ''){
					if (melding == '') firstField = i
					if (melding == '') melding = 'U heeft de volgende velden nog niet ingevuld: \n\n';
					melding += '- ' +temp +'\n';
					temp = temp.substr(0, kolomLength);
					if(document.getElementById)if(document.getElementById(temp + 'KolomTitle'))document.getElementById(temp + 'KolomTitle').className = 'error';
			}
			else{
				if(document.getElementById)if(document.getElementById(temp + 'title'))document.getElementById(temp + 'title').className = '';
			}
		}
	}
	if (testenCV != "")
	{
		if (melding == "") melding = 'U heeft de volgende velden nog niet ingevuld: \n\n';
		melding += '- ' +testenCV +'\n';
	}

	if (melding != '') {
		
		alert(melding);
		if(firstField !='')document.forms[formId].elements[firstField].focus();
		return false;
	}
	return true;

}

function checkIfRequired(fieldname){
	var i;
	if(required.length > 0) {
		for (i=0; i<required.length; i++){
			if (required[i] == fieldname) return true;
		}
	}
	return false;
}

function checkIfKolom(fieldname){
	var i;
	if(kolom.length > 0) {
		for (i=0; i<kolom.length; i++){
			kolomLength = kolom[i].length;
			if (kolom[i] == fieldname.substr(0,kolom[i].length)) return true;  //lengte van kolom gebruiken!!
		}
	}
	return false;
}

function validate(id, formId){
	var i = 1;
	var j;
	var temp = id.name;
	initFormValidation(formId);
	if(checkIfRequired(temp)){
		if(document.forms[formId][temp].value != ''){
			if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = '';
		}
		else{
			if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = 'error';
		}
	}
	else if(checkIfKolom(temp)){
		if (document.forms[formId][temp].value != ''){
			temp = temp.substr(0, kolomLength);
			//controleer alle inputs van dit kolomtype
			temp2 = temp + ' ' + i;
			while (typeof(document.forms[formId][temp2]) == 'object' ){
				if(document.forms[formId][temp2].value == '') return;
				i += 1; 
				temp2 = temp + ' ' + i;
			}
				
			if(document.getElementById)if(document.getElementById(temp + 'KolomTitle'))document.getElementById(temp + 'KolomTitle').className = '';
		}
		else{
			temp = temp.substr(0, kolomLength);	
			if(document.getElementById)if(document.getElementById(temp + 'KolomTitle'))document.getElementById(temp + 'KolomTitle').className = 'error';
		}		
		
	}
}


function resetForm(formId){
		for(i = 0; i <document.forms[formId].elements.length;i++){
			if(document.forms[formId].elements[i]){
				temp = document.forms[formId].elements[i].name;					
				if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = '';
			}
		}
}

function cleanInputClientside(value) {
		var re = new RegExp("<[^>]*?>", "g");
		return value.replace(re, "");
	}