var validationPerformed = false;

//if validation has been performed earlier, trigger the onsubmit of the element's form
function blurValidationHandler(element) {
	if (validationPerformed == true) {
		element.form.onsubmit();
	}
}

function validateAanvragenForm() {
	
	validationElements = new Array(
								["bedrijfsnaam","blank","Vul alstublieft uw bedrijfsnaam in"],
								["voornaam","blank","Vul alstublieft uw voornaam in"],
								["achternaam","blank","Vul alstublieft uw achternaam in"],
								["email","email","Vul alstublieft een geldig e-mailadres in"],
								["postcode","blank","Vul alstublieft uw postcode in"],
								["adres","blank","Vul alstublieft uw adres in"],
								["huisnummer","blank","Vul alstublieft uw huisnummer in"],
								["woonplaats","blank","Vul alstublieft uw woonplaats in"],
								["telefoonnummer","blank","Vul alstublieft uw telefoonnummer in"]
		)
	
	
	//add special elements
	if (document.getElementById("tussenpersoon_keuze_ja").checked) {
		validationElements.push(["uwtussenpersoon", "blank", "Vul alstublieft de naam van uw tussenpersoon in"]);
		validationElements.push(["tussenpersoonplaats", "blank", "Vul alstublieft de plaats van uw tussenpersoon in"]);
	}

	return validateElements(validationElements);

}

function validateVraagForm() {

	validationElements = new Array(
								["voornaam","blank","Vul alstublieft uw voornaam in"],
								["achternaam","blank","Vul alstublieft uw achternaam in"],
								["email","email","Vul alstublieft een geldig e-mailadres in"],
								["vraag","blank","Vul alstublieft uw vraag in"]
		)

	return validateElements(validationElements);

}

function validateSendtoFriendForm() {

	validationElements = new Array(
								["naam","blank","Vul alstublieft uw naam in"],
								["email","email","Vul alstublieft een geldig e-mailadres in"],
								["naam1","blank","Vul alstublieft de naam in"],
								["email1","email","Vul alstublieft een geldig e-mailadres in"]
		)

	return validateElements(validationElements);

}







function validateElements(array) {
				
	//set validated
	validationPerformed = true;
	
	errorCount = 0;
	
	//reset all
	resetErrors();
	
	for (i in array) {
		element = document.getElementById(array[i][0]);
	
		if (validateElement(element, array[i][1])==false) {
			//not validated
			errorCount++;
			enableError(element, array[i][2]);
		}	
	}
	
	if (errorCount > 0) {
		//showSummary();
		return false;
	} else {
		//hideSummary();
		return true;
	}
}


function validateElement(element, type) {
	
	switch(type) {
		case "blank":
			if(element.value=="" || trim(element.value)=="") {
				return false;
			}
		break;
		case "email":
			var regpattern = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/i;
			if (!regpattern.test(element.value) || validateElement(element, "blank") == false) {
				return false;
			}
		break;
		case "checkbox":
			if (!element.checked) {
				return false;
			}
		
		break;		
	}
	return true;
}


function enableError(element, errormessage) {
	
	containerDiv = element.parentNode.parentNode;
	
	//alert(containerDiv.tagName);
	if (containerDiv.className == "formContent") {
		containerDiv.className = "formContent formError";
		span = containerDiv.getElementsByTagName("span")[0];
		if (span != undefined) span.innerHTML = errormessage;
	}
	//add to summary
	addSummaryError(errormessage);
}


function disableError(element) {
	//disable if not disabled
	containerDiv = element
	if (containerDiv.className == "formContent formError") {
		containerDiv.className = "formContent";
		span = containerDiv.getElementsByTagName("span")[0];
		if (span != undefined) span.innerHTML = "";
	}
}


function resetErrors() {
	
	//1) reset the form errors
	errorDivs = document.getElementsByClassName("formContent");
	for(i=0; i<errorDivs.length; i++) {
		disableError(errorDivs[i]);
	}
	
	//2) reset summary
	clearSummaryErrors();
}


function clearSummaryErrors() {

	//clear
	summaryDiv = document.getElementById("errors");
	ul = summaryDiv.getElementsByTagName("ul")[0];
	if (ul != undefined) ul.innerHTML = "";
}

function addSummaryError(errormessage) {
	summaryDiv = document.getElementById("errors");
	ul = summaryDiv.getElementsByTagName("ul")[0];
	if (ul != undefined) ul.innerHTML += "<li>" + errormessage + "</li>";
}


function showSummary() {
	summaryDiv = document.getElementById("errors");
	if (summaryDiv.style.display != "block") {
		summaryDiv.style.display = "block";
	}
}

function hideSummary() {
	summaryDiv = document.getElementById("errors");
	if (summaryDiv.style.display == "block") {
		summaryDiv.style.display = "";
	}
}

