/* Script lib voor het valideren van velden en de waarden daarin- isValidDate- isValidEmail- isValidNumber	- allowNumbers- isValidPostalCode*///=== Geeft de datumwaarde van het veldfunction getDate( theField){	var strCheck = theField.value;	var strPattern = /([1-9]{1}|[0-3]{1}[0-9]{1})-([1-9]{1}|[0-1]{1}[0-9]{1})-(19|20)[0-9]{2}/;	// date pattern d-m-yyyy, like 30-12-2001, 3-4-2001 or 03-04-2001	var IsValid = ( strCheck.search( strPattern) != -1 );	if( IsValid == false) return null;	var DMYarray = strCheck.split( "-");	var theDate = new Date( DMYarray[2], DMYarray[1] - 1, DMYarray[0] );	var theYear = theDate.getFullYear();	var theMonth = theDate.getMonth() + 1;	var theDay = theDate.getDate();	if ( isNaN(theYear)) return null;	if ( DMYarray[2] != theYear ) return null;	if ( DMYarray[1] != theMonth) return null;	if ( DMYarray[0] != theDay ) return null;	if ( theYear < 1900 || theYear > 2100) return null;	return theDate;}//=== Controleert of een veld een geldige datum waarde bevatfunction isValidDate( theField){	var theDate = getDate(theField);	if (theDate == null)	return false;	return true;}//=== Controleert of een datum is ingevuld (indien verplicht) en of dit dan een geldige datum isfunction isValidDateField( theField, isVerplicht){	//Leeg veld?	if (theField.value == "")	{		if (isVerplicht == true)		{			alert("U dient een datum in te vullen.");			doFocus(theField);			return false;		}		return true;	}	//Controleer datum formaat	if (isValidDate(theField) ) return true;	alert("Veld bevat onjuiste datum. Gebruik het formaat dd-mm-jjjj\nVoorbeeld: 24-10-2004");	doFocus(theField);	return false;}//=== Bepaalt of een input-element een waarde bevatfunction isEmptyField( theField, strMsg){	if (theField.value == "")	{		alert(strMsg);		doFocus(theField);					return true;	}	return false;}//=== Bepaalt of een input-element checkbox een waarde bevatfunction isEmptyCheckbox( theField, strMsg){	var isEmptyFlag = true	//dit is een lege waarde zoeken. Zodra 1 waarde gevuld is, wordt true true gegeven	for(j=0;j<theField.length;++j)	{		if(theField[j].checked==true)		{			isEmptyFlag = false					}	}	if(isEmptyFlag == true )	{		alert(strMsg)		return false;	}	else	{		//de checkbox is niet leeg		return true;		}}//=== Leest de waarde(n) van een radiobutton of checkbox uit//=== Meerdere waarden worden met een ; gescheiden.function getCheckedValue( theField){	var strReturn = "";			// Checkbox met maar \u00E9\u00E9n keuze	if ( typeof(theField.length) == "undefined")	{		if (theField.checked) strReturn = theField.value					return strReturn;	}		// Checkbox met meerdere keuzes	for ( var i = 0; i < theField.length; i++ )	{		if ( theField[i].checked)			strReturn += ( strReturn == "" ? "" : "; ") + theField[i].value;	}		return strReturn;}//=== Bepaalt of een waarde een geldig e-mail adres kan zijnfunction isValidEmail(strEmail){	var strPattern = /^\w[-_a-z~.0-9]*@\w[-_a-z~.0-9]+\.[a-z]{2}[a-z]*$/i;		return ( strPattern.test(strEmail) );}//=== Controleert of een e-mail adres is ingevuld (indien verplicht) en of dit dan een geldige kan zijnfunction isValidEmailField(theField, isVerplicht, strMsg){	var strValue	= theField.value;	//Leeg veld?	if (strValue == "")	{		if (isVerplicht == true)		{			alert(strMsg);			doFocus(theField);			return false;		}		return true;	}	//Controleer e-mail adres	if ( isValidEmail(strValue) ) return true;	alert(strMsg);	doFocus(theField);	return false;}//=== Bepaalt de numerieke waarde uit een veldfunction getNumber(theField){	var strValue	= theField.value;	var intNum	= parseInt(strValue);	if (strValue == "")		return "";	if ( isNaN(intNum) || (strValue != intNum) )		return NaN;	else		return intNum;}//=== Controleert of getal is ingevuld (indien verplicht) en of dit dan een geldig getal isfunction isValidNumberField( theField, isVerplicht, strMsg){	var intNum	= getNumber(theField);		//=== Leeg veld?	if (intNum == "")	{		if (isVerplicht == true)		{			alert(strMsg);			doFocus(theField);			return false;		}		return true;	}	//=== Geldig getal ingevuld?	if ( isNaN(intNum) )	{		alert(strMsg);		doFocus(theField);		return false;	}	return true;}var commaUsed = false;//=== Regelt dat alleen cijfers in een veld kunnen worden ingetypt.//=== Use in onKeyPress eventhandler: return allowNumbers(event)function allowNumbers(e) {		var keyNum = (typeof(e.which) == "undefined" ? e.keyCode : e.which);	var keyChar = String.fromCharCode(keyNum);	var keyList = "0123456789,";	//twee komma's achter elkaar is niet toegestaan	// (nog beter zou zijn: slechts \u00E9\u00E9n komma toestaan, maar daar kijken we nog wel es naar)   	if ( keyChar=="," && commaUsed) 		return false;	else if (keyChar==",")		commaUsed = true		else		commaUsed = false			   	if ( keyNum == 0 || keyNum == 8 ) return true;      // Allow BS, DEL, TAB, arrows	if ( keyList.indexOf( keyChar) < 0 ) return false;	return true;}//=== Geeft aan of een postcode het formaat "1234 AB" heeftfunction isValidPostalCode(strPC){	return  typeof strPC=='string' ? /[1-9][0-9]{3} [A-Z]{2}/.test(strPC) && strPC.length==7 : false}//=== Focus op het input-element (indien mogelijk)function doFocus(theField){	if (theField.focus)		theField.focus();	else		theField[0].focus();}
