/*************************************************************************
 * FORM VALIDATOR v0.3
 *************************************************************************
 * Reinier van Grieken / Scheepens Reclame Adviseurs
 *************************************************************************
 * Laatste wijziging: 18 augustus 2008
 *************************************************************************/

/*************************************************************************
 * Element checks
 */

function isTextElement(element) {
	if ((element.type) &&
		((element.type.toLowerCase() == "text") || (element.type.toLowerCase() == "textarea") || (element.type.toLowerCase() == "file"))) return true; else return false;
}

/*************************************************************************
 * Element value tests
 */

function inputValueTest(element, required, validRegEx) {
	elementType = element.nodeName?(element.nodeName.toLowerCase()=="input"?(element.type?element.type.toLowerCase():"unknown"):(element.nodeName.toLowerCase().search(/^(textarea|select)$/i)>=0?element.nodeName.toLowerCase():"unknown")):(element[0]?(element[0].type?(element[0].type.toLowerCase()=="radio"?"radio":"unknown"):"unknown"):"unknown");
	switch (elementType) {
		case "text" :
		case "textarea" :
			var value = element.value;
			value = value.replace(/^\s+|\s+$/, '');		// strip leading & trailing spaces
			value = value.replace(/\s+/, ' ');			// strip subsequent spaces
			if ((value == '') && (!required)) return true;
			if (validRegEx.test(value)) { element.value = value; return true; } else { if(!element.disabled) { element.focus(); } return false; }
			break;
		case "select" :
			var value = element.value;
			if (!required) return true;
			if (validRegEx.test(value)) return true; else { element.focus; return false; }
			break;
		case "file" :
		case "password" :
			var value = element.value;
			if ((value == '') && (!required)) return true;
			if (validRegEx.test(value)) return true; else { element.focus(); return false; }
			break;
		case "checkbox" :
			if (!required) return true; else return element.checked;
			break;
		case "radio" :
			if (!required) return true;
			for (var i=0; i<element.length; i++) if ((element[i].checked) && (validRegEx.test(element[i].value))) { return true; break; }
			return false;
			break;
	}
}

function inputArrayTest(form, arrName, minCount, maxCount) {
	var cBoxes = form.elements[arrName];
	var checkCount = 0; for (var i=0; i<cBoxes.length; i++) if (cBoxes[i].checked) checkCount++;
	if (checkCount < minCount) return false;
	if (maxCount) if (checkCount > maxCount) return false;
	return true;
}

/*************************************************************************
 * Preformatting functions
 */

// preFormatInitials: zet ingevulde waarden om in hoofdletters met punten ertussen
function preFormatInitials(element) {
	var value=""; var newvalue="";
	if (isTextElement(element)) value = element.value;
	value = value.replace(/[^a-zA-Z]/g,"");
	for (var i=0;i<value.length;i++)
		newvalue+=(value.charAt(i).toUpperCase()+".");
	element.value = newvalue;
}

// preFormatNumeric: verwijdert alle tekens dat geen cijfer is uit de ingevulde waarden
function preFormatNumeric(element) {
	var value=""; var newvalue="";
	if (isTextElement(element)) value = element.value;
	newvalue=value.replace(/\D/g,"");
	element.value = newvalue;
}

// preFormatUcfirst: zet de ingevulde waarden om in 1e teken hoofdletter, de rest kleine letters
function preFormatUcfirst(element) {
	var value=""; var newvalue="";
	if (isTextElement(element)) value = element.value;
	newvalue=value.substring(0,1).toUpperCase() + value.substring(1).toLowerCase();
	element.value = newvalue;
}

// preFormatUcwords: zet alle woorden in het ingevulde veld om in 1e teken hoofdletter, de rest kleine letters
function preFormatUcwords(element) {
	var value=""; var newvalue="";
	if (isTextElement(element)) value = element.value;
	var words=value.split(/\s/g);
	for (var i=0;i<words.length;i++) {
		if (i>0) newvalue+=" ";
		newvalue+=words[i].substring(0,1).toUpperCase() + words[i].substring(1).toLowerCase();
	}
	element.value = newvalue;
}

// preFormatStripWhitespaces: haalt alle whitespaces uit de ingevulde waarden
function preFormatStripWhitespaces(element) {
	var value=""; var newvalue="";
	if (isTextElement(element)) value = element.value;
	newvalue=value.replace(/\s/g,"");
	element.value = newvalue;
}

// preFormatToUpperCase: zet de ingevulde waarden om in alles hoofdletters
function preFormatToUpperCase(element) {
	var value=""; var newvalue="";
	if (isTextElement(element)) value = element.value;
	newvalue=value.toUpperCase();
	element.value = newvalue;
}

// preFormatToLowerCase: zet de ingevulde waarden om in alles kleine letters
function preFormatToLowerCase(element) {
	var value=""; var newvalue="";
	if (isTextElement(element)) value = element.value;
	newvalue=value.toLowerCase();
	element.value = newvalue;
}

// preFormatReplace: Voer een search&replace uit in de ingevulde waarden
function preFormatReplace(element, regEx, replaceWith) {
	var value=""; var newvalue="";
	if (isTextElement(element)) value = element.value;
	newvalue=value.replace(regEx,replaceWith);
	element.value = newvalue;
}

// filterCharacters: Filter characters of substrings uit de ingevulde waarden
function filterCharacters(element, regEx) {
	var value=""; var newvalue="";
	if (isTextElement(element)) value = element.value;
	newvalue=value.replace(regEx,"");
	element.value = newvalue;
}

/*************************************************************************
 * Custom
 */

function validateRoute(formid) {
	var myForm = document.getElementById(formid);

	// common field patterns:
	var regEx_any           = /^.+$/;							// elke mogelijke tekenreeks
	var regEx_digits        = /^\d+$/;							// alleen cijfers
	var regEx_nodigits      = /^\D+$/;							// alles behalve cijfers
	var regEx_enum          = /^(xxx|yyy|zzz)$/;				// valideert alleen op "xxx", "yyy" of "zzz"
	var regEx_email         = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;

	// custom field patterns:
	var regEx_pc            = /^[0-9]{4}$/;
	var regEx_pl            = /^[A-Za-z]{2}$/;

	preFormatUcwords(myForm.straat);
	filterCharacters(myForm.huisnummer, /\D+/g);
	preFormatUcwords(myForm.woonplaats);
	filterCharacters(myForm.postcode_c, /\D+/g);
	preFormatToUpperCase(myForm.postcode_l);

	if (!inputValueTest(myForm.straat, true, regEx_any)) { alert("Heeft u uw straat wel (juist) aangegeven?"); return false; }
	if (!inputValueTest(myForm.huisnummer, true, regEx_digits)) { alert("Heeft u uw huisnummer wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.toevoeging, false, regEx_any)) { alert("Heeft u uw huisnummer toevoeging wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.woonplaats, true, regEx_nodigits)) { alert("Heeft u uw woonplaats wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_c, true, regEx_pc)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_l, true, regEx_pl)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }

	return true;
}

function validateServicedesk(formid, section) {
	var myForm = document.getElementById(formid);

	// common field patterns:
	var regEx_any           = /^.+$/;							// elke mogelijke tekenreeks
	var regEx_digits        = /^\d+$/;							// alleen cijfers
	var regEx_nodigits      = /^\D+$/;							// alles behalve cijfers
	var regEx_enum          = /^(xxx|yyy|zzz)$/;				// valideert alleen op "xxx", "yyy" of "zzz"
	var regEx_email         = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;

	// custom field patterns:
	var regEx_initials      = /^[A-Za-z\.]+$/;
	var regEx_telefoon      = /^0[0-9]{9}$/;
	var regEx_ordernummer   = /^.+$/;
	var regEx_pc            = /^[0-9]{4}$/;
	var regEx_pl            = /^[A-Za-z]{2}$/;

	preFormatInitials(myForm.voorletters);
	preFormatToLowerCase(myForm.tussenvoegsels);
	preFormatUcwords(myForm.achternaam);
	filterCharacters(myForm.telefoon_dag, /\D+/g);
	filterCharacters(myForm.telefoon_avond, /\D+/g);

	filterCharacters(myForm.postcode_nummers, /\D+/g);
	filterCharacters(myForm.postcode_letters, /[^a-zA-Z]+/g);

	preFormatUcwords(myForm.straat);
	filterCharacters(myForm.huisnummer, /\D+/g);
	preFormatToUpperCase(myForm.huisnummer_t);
	filterCharacters(myForm.postcode_nr, /\D+/g);
	filterCharacters(myForm.postcode_lt, /[^a-zA-Z]+/g);
	preFormatUcwords(myForm.woonplaats);

	if (!inputValueTest(myForm.voorletters, true, regEx_initials)) { alert("Heeft u uw voorletters wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.tussenvoegsels, false, regEx_nodigits)) { alert("Heeft u uw tussenvoegsel wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.achternaam, true, regEx_nodigits)) { alert("Heeft u uw achternaam wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.telefoon_dag, false, regEx_telefoon)) { alert("Heeft u uw telefoon overdag wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.telefoon_avond, false, regEx_telefoon)) { alert("Heeft u uw telefoon 's avonds wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.emailadres, true, regEx_email)) { alert("Heeft u uw email wel (juist) ingevuld?"); return false; }

	if ((section==1)||(section==2)) {
		if (!inputValueTest(myForm.ordernummer, true, regEx_ordernummer)) { alert("Heeft u uw ordernummer wel (juist) ingevuld?"); return false; }
		if (!inputValueTest(myForm.postcode_nummers, true, regEx_pc)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
		if (!inputValueTest(myForm.postcode_letters, true, regEx_pl)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	}
	if (section==4) {
		if (!inputValueTest(myForm.straat, true, regEx_any)) { alert("Heeft u uw straat wel (juist) ingevuld?"); return false; }
		if (!inputValueTest(myForm.huisnummer, true, regEx_digits)) { alert("Heeft u uw huisnummer wel (juist) ingevuld?"); return false; }
		if (!inputValueTest(myForm.huisnummer_t, false, regEx_any)) { alert("Heeft u uw huisnummer toevoeging wel (juist) ingevuld?"); return false; }
		if (!inputValueTest(myForm.postcode_nr, true, regEx_pc)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
		if (!inputValueTest(myForm.postcode_lt, true, regEx_pl)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
		if (!inputValueTest(myForm.woonplaats, true, regEx_nodigits)) { alert("Heeft u uw woonplaats wel (juist) ingevuld?"); return false; }
	}

	return true;
}

function validateVraagOverProduct(formid) {
	var myForm = document.getElementById(formid);

	// common field patterns:
	var regEx_any           = /^.+$/;							// elke mogelijke tekenreeks
	var regEx_digits        = /^\d+$/;							// alleen cijfers
	var regEx_nodigits      = /^\D+$/;							// alles behalve cijfers
	var regEx_enum          = /^(xxx|yyy|zzz)$/;				// valideert alleen op "xxx", "yyy" of "zzz"
	var regEx_email         = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;

	// custom field patterns:
	var regEx_initials      = /^[A-Za-z\.]+$/;
	var regEx_telefoon      = /^0[0-9]{9}$/;
	var regEx_pc            = /^[0-9]{4}$/;
	var regEx_pl            = /^[A-Za-z]{2}$/;

	preFormatInitials(myForm.voorletters);
	preFormatToLowerCase(myForm.tussenvoegsels);
	preFormatUcwords(myForm.achternaam);
	preFormatUcwords(myForm.straat);
	filterCharacters(myForm.huisnummer, /\D+/g);
	preFormatToUpperCase(myForm.toevoeging);
	filterCharacters(myForm.postcode_nr, /\D+/g);
	filterCharacters(myForm.postcode_lt, /[^a-zA-Z]+/g);
	preFormatUcwords(myForm.woonplaats);
	filterCharacters(myForm.telefoon, /\D+/g);

	if (!inputValueTest(myForm.voorletters, true, regEx_initials)) { alert("Heeft u uw voorletters wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.tussenvoegsels, false, regEx_nodigits)) { alert("Heeft u uw tussenvoegsel wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.achternaam, true, regEx_nodigits)) { alert("Heeft u uw achternaam wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.straat, true, regEx_any)) { alert("Heeft u uw straat wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.huisnummer, true, regEx_digits)) { alert("Heeft u uw huisnummer wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.toevoeging, false, regEx_any)) { alert("Heeft u uw huisnummer toevoeging wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_nr, true, regEx_pc)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_lt, true, regEx_pl)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.woonplaats, true, regEx_nodigits)) { alert("Heeft u uw woonplaats wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.telefoon, true, regEx_telefoon)) { alert("Heeft u uw telefoon wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.emailadres, true, regEx_email)) { alert("Heeft u uw email wel (juist) ingevuld?"); return false; }
    if (!inputValueTest(myForm.opmerking, false, regEx_any)) { alert("Heeft u uw opmerking wel (juist) ingevuld?"); return false; }
	return true;
}

function validateAfspraakMaken(formid) {
	var myForm = document.getElementById(formid);

	// common field patterns:
	var regEx_any           = /^.+$/;							// elke mogelijke tekenreeks
	var regEx_digits        = /^\d+$/;							// alleen cijfers
	var regEx_nodigits      = /^\D+$/;							// alles behalve cijfers
	var regEx_enum          = /^(xxx|yyy|zzz)$/;				// valideert alleen op "xxx", "yyy" of "zzz"
	var regEx_email         = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;

	// custom field patterns:
	var regEx_initials      = /^[A-Za-z\.]+$/;
	var regEx_telefoon      = /^0[0-9]{9}$/;
	var regEx_pc            = /^[0-9]{4}$/;
	var regEx_pl            = /^[A-Za-z]{2}$/;

	preFormatInitials(myForm.voorletters);
	preFormatToLowerCase(myForm.tussenvoegsels);
	preFormatUcwords(myForm.achternaam);
	preFormatUcwords(myForm.straat);
	filterCharacters(myForm.huisnummer, /\D+/g);
	preFormatToUpperCase(myForm.toevoeging);
	filterCharacters(myForm.postcode_nr, /\D+/g);
	filterCharacters(myForm.postcode_lt, /[^a-zA-Z]+/g);
	preFormatUcwords(myForm.woonplaats);
	filterCharacters(myForm.telefoon, /\D+/g);

	if (!inputValueTest(myForm.voorletters, true, regEx_initials)) { alert("Heeft u uw voorletters wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.tussenvoegsels, false, regEx_nodigits)) { alert("Heeft u uw tussenvoegsel wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.achternaam, true, regEx_nodigits)) { alert("Heeft u uw achternaam wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.straat, true, regEx_any)) { alert("Heeft u uw straat wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.huisnummer, true, regEx_digits)) { alert("Heeft u uw huisnummer wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.toevoeging, false, regEx_any)) { alert("Heeft u uw huisnummer toevoeging wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_nr, true, regEx_pc)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_lt, true, regEx_pl)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.woonplaats, true, regEx_nodigits)) { alert("Heeft u uw woonplaats wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.telefoon, true, regEx_telefoon)) { alert("Heeft u uw telefoon wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.emailadres, true, regEx_email)) { alert("Heeft u uw email wel (juist) ingevuld?"); return false; }

	return true;
}

function validateMagazine(formid) {
	var myForm = document.getElementById(formid);

	// common field patterns:
	var regEx_any           = /^.+$/;							// elke mogelijke tekenreeks
	var regEx_digits        = /^\d+$/;							// alleen cijfers
	var regEx_nodigits      = /^\D+$/;							// alles behalve cijfers
	var regEx_enum          = /^(xxx|yyy|zzz)$/;				// valideert alleen op "xxx", "yyy" of "zzz"
	var regEx_email         = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;

	// custom field patterns:
	var regEx_initials      = /^[A-Za-z\.]+$/;
	var regEx_telefoon      = /^0[0-9]{9}$/;
	var regEx_pc            = /^[0-9]{4}$/;
	var regEx_pl            = /^[A-Za-z]{2}$/;

	preFormatInitials(myForm.voorletters);
	preFormatToLowerCase(myForm.tussenvoegsels);
	preFormatUcwords(myForm.achternaam);
	preFormatUcwords(myForm.straat);
	filterCharacters(myForm.huisnummer, /\D+/g);
	preFormatToUpperCase(myForm.toevoeging);
	filterCharacters(myForm.postcode_nr, /\D+/g);
	filterCharacters(myForm.postcode_lt, /[^a-zA-Z]+/g);
	preFormatUcwords(myForm.woonplaats);
	filterCharacters(myForm.telefoon, /\D+/g);

	if (!inputValueTest(myForm.voorletters, true, regEx_initials)) { alert("Heeft u uw voorletters wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.tussenvoegsels, false, regEx_nodigits)) { alert("Heeft u uw tussenvoegsel wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.achternaam, true, regEx_nodigits)) { alert("Heeft u uw achternaam wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.straat, true, regEx_any)) { alert("Heeft u uw straat wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.huisnummer, true, regEx_digits)) { alert("Heeft u uw huisnummer wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.toevoeging, false, regEx_any)) { alert("Heeft u uw huisnummer toevoeging wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_nr, true, regEx_pc)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_lt, true, regEx_pl)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.woonplaats, true, regEx_nodigits)) { alert("Heeft u uw woonplaats wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.telefoon, true, regEx_telefoon)) { alert("Heeft u uw telefoon wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.emailadres, true, regEx_email)) { alert("Heeft u uw email wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.omgeving, true, regEx_any)) { alert("Kies a.u.b. welk magazine u wilt ontvangen."); return false; }

	return true;
}

function validateAriadne(formid) {
	var myForm = document.getElementById(formid);

	// common field patterns:
	var regEx_any           = /^.+$/;							// elke mogelijke tekenreeks
	var regEx_digits        = /^\d+$/;							// alleen cijfers
	var regEx_nodigits      = /^\D+$/;							// alles behalve cijfers
	var regEx_enum          = /^(xxx|yyy|zzz)$/;				// valideert alleen op "xxx", "yyy" of "zzz"
	var regEx_email         = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;

	// custom field patterns:
	var regEx_initials      = /^[A-Za-z\.]+$/;
	var regEx_telefoon      = /^0[0-9]{9}$/;
	var regEx_pc            = /^[0-9]{4}$/;
	var regEx_pl            = /^[A-Za-z]{2}$/;

	preFormatInitials(myForm.voorletters);
	preFormatToLowerCase(myForm.tussenvoegsels);
	preFormatUcwords(myForm.achternaam);
	preFormatUcwords(myForm.straat);
	filterCharacters(myForm.huisnummer, /\D+/g);
	preFormatToUpperCase(myForm.toevoeging);
	filterCharacters(myForm.postcode_nr, /\D+/g);
	filterCharacters(myForm.postcode_lt, /[^a-zA-Z]+/g);
	preFormatUcwords(myForm.woonplaats);
	filterCharacters(myForm.telefoon, /\D+/g);

	if (!inputValueTest(myForm.voorletters, true, regEx_initials)) { alert("Heeft u uw voorletters wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.tussenvoegsels, false, regEx_nodigits)) { alert("Heeft u uw tussenvoegsel wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.achternaam, true, regEx_nodigits)) { alert("Heeft u uw achternaam wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.straat, true, regEx_any)) { alert("Heeft u uw straat wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.huisnummer, true, regEx_digits)) { alert("Heeft u uw huisnummer wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.toevoeging, false, regEx_any)) { alert("Heeft u uw huisnummer toevoeging wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_nr, true, regEx_pc)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_lt, true, regEx_pl)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.woonplaats, true, regEx_nodigits)) { alert("Heeft u uw woonplaats wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.telefoon, true, regEx_telefoon)) { alert("Heeft u uw telefoon wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.emailadres, true, regEx_email)) { alert("Heeft u uw email wel (juist) ingevuld?"); return false; }

	return true;
}

function validateKookworkshop(formid) {
	var myForm = document.getElementById(formid);

	// common field patterns:
	var regEx_any           = /^.+$/;							// elke mogelijke tekenreeks
	var regEx_digits        = /^\d+$/;							// alleen cijfers
	var regEx_nodigits      = /^\D+$/;							// alles behalve cijfers
	var regEx_enum          = /^(xxx|yyy|zzz)$/;				// valideert alleen op "xxx", "yyy" of "zzz"
	var regEx_email         = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;

	// custom field patterns:
	var regEx_initials      = /^[A-Za-z\.]+$/;
	var regEx_telefoon      = /^0[0-9]{9}$/;
	var regEx_pc            = /^[0-9]{4}$/;
	var regEx_pl            = /^[A-Za-z]{2}$/;

	preFormatInitials(myForm.voorletters);
	preFormatToLowerCase(myForm.tussenvoegsels);
	preFormatUcwords(myForm.achternaam);
	preFormatUcwords(myForm.straat);
	filterCharacters(myForm.huisnummer, /\D+/g);
	preFormatToUpperCase(myForm.toevoeging);
	filterCharacters(myForm.postcode_nr, /\D+/g);
	filterCharacters(myForm.postcode_lt, /[^a-zA-Z]+/g);
	preFormatUcwords(myForm.woonplaats);
	filterCharacters(myForm.telefoon, /\D+/g);

	if (!inputValueTest(myForm.voorletters, true, regEx_initials)) { alert("Heeft u uw voorletters wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.tussenvoegsels, false, regEx_nodigits)) { alert("Heeft u uw tussenvoegsel wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.achternaam, true, regEx_nodigits)) { alert("Heeft u uw achternaam wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.straat, true, regEx_any)) { alert("Heeft u uw straat wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.huisnummer, true, regEx_digits)) { alert("Heeft u uw huisnummer wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.toevoeging, false, regEx_any)) { alert("Heeft u uw huisnummer toevoeging wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_nr, true, regEx_pc)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_lt, true, regEx_pl)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.woonplaats, true, regEx_nodigits)) { alert("Heeft u uw woonplaats wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.telefoon, true, regEx_telefoon)) { alert("Heeft u uw telefoon wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.emailadres, true, regEx_email)) { alert("Heeft u uw email wel (juist) ingevuld?"); return false; }

	return true;
}


function validateActieRoute(formid) {
	var myForm = document.getElementById(formid);

	// common field patterns:
	var regEx_any           = /^.+$/;							// elke mogelijke tekenreeks
	var regEx_digits        = /^\d+$/;							// alleen cijfers
	var regEx_nodigits      = /^\D+$/;							// alles behalve cijfers
	var regEx_enum          = /^(xxx|yyy|zzz)$/;				// valideert alleen op "xxx", "yyy" of "zzz"
	var regEx_email         = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;

	// custom field patterns:
	var regEx_pc            = /^[0-9]{4}$/;
	var regEx_pl            = /^[A-Za-z]{2}$/;

	preFormatUcwords(myForm.straat);
	filterCharacters(myForm.huisnummer, /\D+/g);
	preFormatToUpperCase(myForm.toevoeging);
	preFormatUcwords(myForm.woonplaats);
	filterCharacters(myForm.postcode_c, /\D+/g);
	filterCharacters(myForm.postcode_l, /[^a-zA-Z]+/g);

	if (inputValueTest(myForm.showroom, true, /showroom/i)) { alert("Kies een showroom"); return false; }
	if (!inputValueTest(myForm.straat, true, regEx_any)) { alert("Heeft u uw straat wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.huisnummer, true, regEx_digits)) { alert("Heeft u uw huisnummer wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.toevoeging, false, regEx_any)) { alert("Heeft u uw huisnummer toevoeging wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.woonplaats, true, regEx_nodigits)) { alert("Heeft u uw woonplaats wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_c, true, regEx_pc)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_l, true, regEx_pl)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }

	myForm.submit();
}

function validateActie(formid) {
	var myForm = document.getElementById(formid);

	// common field patterns:
	var regEx_any           = /^.+$/;							// elke mogelijke tekenreeks
	var regEx_digits        = /^\d+$/;							// alleen cijfers
	var regEx_nodigits      = /^\D+$/;							// alles behalve cijfers
	var regEx_enum          = /^(xxx|yyy|zzz)$/;				// valideert alleen op "xxx", "yyy" of "zzz"
	var regEx_email         = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;

	// custom field patterns:
	var regEx_initials      = /^[A-Za-z\.]+$/;
	var regEx_telefoon      = /^0[0-9]{9}$/;
	var regEx_pc            = /^[0-9]{4}$/;
	var regEx_pl            = /^[A-Za-z]{2}$/;

	preFormatInitials(myForm.voorletters);
	preFormatToLowerCase(myForm.tussenvoegsels);
	preFormatUcwords(myForm.achternaam);
	preFormatUcwords(myForm.straat);
	filterCharacters(myForm.huisnummer, /\D+/g);
	preFormatToUpperCase(myForm.toevoeging);
	filterCharacters(myForm.postcode_nr, /\D+/g);
	filterCharacters(myForm.postcode_lt, /[^a-zA-Z]+/g);
	preFormatUcwords(myForm.woonplaats);
	filterCharacters(myForm.telefoon, /\D+/g);

	if (!inputValueTest(myForm.voorletters, true, regEx_initials)) { alert("Heeft u uw voorletters wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.tussenvoegsels, false, regEx_nodigits)) { alert("Heeft u uw tussenvoegsel wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.achternaam, true, regEx_nodigits)) { alert("Heeft u uw achternaam wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.straat, true, regEx_any)) { alert("Heeft u uw straat wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.huisnummer, true, regEx_digits)) { alert("Heeft u uw huisnummer wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.toevoeging, false, regEx_any)) { alert("Heeft u uw huisnummer toevoeging wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_nr, true, regEx_pc)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.postcode_lt, true, regEx_pl)) { alert("Heeft u uw postcode wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.woonplaats, true, regEx_nodigits)) { alert("Heeft u uw woonplaats wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.telefoon, true, regEx_telefoon)) { alert("Heeft u uw telefoon wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.emailadres, true, regEx_email)) { alert("Heeft u uw email wel (juist) ingevuld?"); return false; }

	myForm.submit();
}
function validateAfspraak(formid) {
	var myForm = document.getElementById(formid);
	
	// common field patterns:
	var regEx_nodigits      = /^\D+$/;	// alles behalve cijfers
	var regEx_email         = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;
	// custom field patterns:
	var regEx_initials      = /^[A-Za-z\.]+$/;
	var regEx_telefoon      = /^0[0-9]{9}$/;
	
	preFormatInitials(myForm.voorletters);
	preFormatToLowerCase(myForm.tussenvoegsels);
	preFormatUcwords(myForm.achternaam);
	filterCharacters(myForm.telefoon, /\D+/g);
	
	if (!inputValueTest(myForm.voorletters, true, regEx_initials)) { alert("Heeft u uw voorletters wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.tussenvoegsels, false, regEx_nodigits)) { alert("Heeft u uw tussenvoegsel wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.achternaam, true, regEx_nodigits)) { alert("Heeft u uw achternaam wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.telefoon, true, regEx_telefoon)) { alert("Heeft u uw telefoon wel (juist) ingevuld?"); return false; }
	if (!inputValueTest(myForm.emailadres, true, regEx_email)) { alert("Heeft u uw email wel (juist) ingevuld?"); return false; }
	
	myForm.submit();
}	

