function checkForm(formobj)
{
	var i = 0, j = 0;
	var returnCheckValue = true;

	var patternObjs = $(formobj).find('*[pattern]');
	patternObjs.each(function() {
		pat = $(this).attr('pattern'); 							//get element pattern
		patcond = $(this).attr('patterncond');			// get condition for primairy pattern
		altpat = $(this).attr('altpattern') ;				// alternative pattern if conditions for primairy pattern are not met

		// Value ophalen; kan bij een multiple selectbox niet met de .val() methode
		if( this.tagName == 'SELECT' ) {
			val = $('select[name=' + $(this).attr('name') + '] option:selected').val();
		}	else {
			val = $(this).val().trim();
		}
		
		applyPrimairyPattern = true;
		
		if(patcond !== undefined && patcond != '') {
			try {
				applyPrimairyPattern = eval(patcond);
			} catch(err) {
				applyPrimairyPattern = true;
			}
		} else {
			applyPrimairyPattern = true;
		}


		if(altpat === undefined) {
			altpat = "";
		}

		// Is dit veld verplicht?
		fieldcorrect = true;
		if ((applyPrimairyPattern) ? pat.search('VERPLICHT') >= 0 : altpat.search('VERPLICHT') >= 0)
		{
			//radio input?
			if ($(this).attr('type') == 'radio')
			{
				//radio element: controleren of er minimaal eentje is gechecked
				if ( $('input[type=radio][name="' + $(this).attr('name') + '"]:checked').size() <= 0){
					fieldcorrect = false;
					debug( $(this) );
				}
			}
			else if(this.tagName == 'SELECT')
			{
				if( $('select[name=' + $(this).attr('name') + '] option:selected').size() <= 0 || $(this).val() == '') {
					fieldcorrect = false;
					debug( $(this) );
				}
			}
			else
			{
				//standaard element
				if (val==''){
					fieldcorrect = false;
					debug( $(this) );
				}
			}
		}

		// Controle op lengte van veld
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('MINLENGTE') >= 0 : altpat.search('MINLENGTE') >= 0 )) {
			/* zoek max lengte van veld uit pattern */
			var naarRechts, patternLength
			
			if(applyPrimairyPattern) {
				naarRechts = pat.substring(pat.search('MINLENGTE')+10, 1000);
			} else {
				naarRechts = altpat.substring(altpat.search('MINLENGTE')+10, 1000);
			}
			patternLength = naarRechts.substring(0, naarRechts.search(']') );

			if (val != "")
				if (val.length < patternLength){
					fieldcorrect = false;
					debug( $(this) );
				}
		}

		// Is dit een datum veld?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('DATUM') >= 0 : altpat.search('DATUM') >= 0) && !checkDate(val) ) {
			fieldcorrect = false;
			debug( $(this) );
		}

		// Is dit een man/vrouw veld?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('MV') >= 0 : altpat.search('MV') >= 0) && (val != 'm') && (val != 'v') && (val != '') && (val != ' ') ) {
			fieldcorrect = false;
			debug( $(this) );
		}

		// Is dit een numeriek veld?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('NUMERIEK') >= 0 : altpat.search('NUMERIEK') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isGeldigDecimaalGetal(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}
		
		// Is dit een numeriek veld?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('HEELGETAL') >= 0 : altpat.search('HEELGETAL') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isDecimaalGetal(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}
		
		// Is dit een "Kamer van Koophandel nummer" veld?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('KVKNR') >= 0 : altpat.search('KVKNR') >= 0 ) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidKvKnr(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}
		
		// Is dit een kenteken veld voor Nederland?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('KENTEKEN-NL') >= 0 : altpat.search('KENTEKEN-NL') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidKenteken_NL(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit een tijd veld?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('TIJD-HHMM') >= 0 : altpat.search('TIJD-HHMM') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidTijdHHMM(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit een BTW nummer veld voor Nederland?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('BTWNUMMER-NL') >= 0 : altpat.search('BTWNUMMER-NL') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidBTWnummer_NL(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit veld een telefoonnummer?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('TELEFOONNUMMER') >= 0 : altpat.search('TELEFOONNUMMER') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidTelefoonnummer(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit veld een Nederlandse postcode ?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('POSTCODE-NL') >= 0 : altpat.search('POSTCODE-NL') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidPostcode_NL(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit veld een geldig emailadres ?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('EMAIL') >= 0 : altpat.search('EMAIL') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidEmail(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}
		
		// Is dit veld geldig voor emailadres ?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('EMAIL') >= 0 : altpat.search('EMAIL') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidEmail(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}
		
		// Is dit veld geldig voor 1 of meer emailadressen ?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('E-MAILADRESSES') >= 0 : altpat.search('E-MAILADRESSES') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidMultipleEmail(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit veld een geldig emailadres ?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('URL-WEBSITE') >= 0 : altpat.search('URL-WEBSITE') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidWebsiteURL(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit veld een geldig sofinummer ?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('SOFINUMMER') >= 0 : altpat.search('SOFINUMMER') >= 0 ) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidSofinummer(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit veld een geldig geldbedrag ?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('GELDBEDRAG') >= 0 : altpat.search('GELDBEDRAG') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!isValidGeldbedrag(val)){
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit veld een geldig opmerkingen veld ?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('TEXTAREA') >= 0 : altpat.search('TEXTAREA') >= 0)) {
			var maxLength = ((applyPrimairyPattern) ? pat.substr( pat.indexOf('MAXLENGTH-') + 10, pat.length - 1) : altpat.substr( altpat.indexOf('MAXLENGTH-') + 10, altpat.length - 1));

			if (val.length > maxLength){
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit een jaar veld?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('JAAR') >= 0 : altpat.search('JAAR') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!(val>1900 && val<2030)) {
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is dit een weeknummer veld?
		if (fieldcorrect && ((applyPrimairyPattern) ? pat.search('WEEK-NR') >= 0 : altpat.search('WEEK-NR') >= 0) && val !== '') {
			// Veld is NIET leeg --> waarde moet geldig zijn...
			if (!(val > 0 && val < 54)) {
				fieldcorrect = false;
				debug( $(this) );
			}
		}

		// Is het veld correct ingevuld?
		if (fieldcorrect == true) {
			if ( ($(this).attr('type') == 'radio') || ($(this).attr('type') == 'checkbox') ) {
				$(this).css({'backgroundColor':'#e2e2e2', 'color':'#000000'});
				$(this).focus(function() {});
			} else {
				$(this).css({'backgroundColor':'#FFFFFF', 'color':'#000000'});
				$(this).focus(function() {});
			}
		} else {
			// Maak de achtergrondkleur rood...
			if ( ($(this).attr('type') == 'radio') || ($(this).attr('type') == 'checkbox') ) {
				$(this).parent().css({'backgroundColor':'#FF0000', 'color':'#FFFFFF'});
				$(this).focus(function () { $(this).parent().css({'backgroundColor':'inherit', 'color':'#000000'}); });
			} else {
				$(this).css({'backgroundColor':'#FF0000', 'color':'#FFFFFF'});
				$(this).focus(function () { $(this).css({'backgroundColor':'transparent', 'color':'#000000'}); });
			}

			returnCheckValue = false;
		}
	});

	//return value
	if (!returnCheckValue)
		alert('Het formulier is niet juist ingevuld. Herstel de rode velden.');

	return returnCheckValue;
}


function debug( obj ){
	if (window.console) {
		console.error( "veld invalid: (id: " + $(obj).attr('id') + ")" );
	}
}

function checkDate(d) {
	if (d=='') {
		// return ok als veld leeg is
		return true;
	} else {
		//zoek eerste '-'
		p1 = d.search('-');
		if (p1==-1) {
			return false
		} else {
			//zoek tweede '-'
			rest = d.substr(p1+1);
			p2 = rest.search('-');
			if (p2==-1) {
				return false;
			} else {
				
				//get day month year
				a = d.split('-');
				day = parseInt(a[0].replace('0',''));
				month = parseInt(a[1].replace('0',''));
				year = parseInt(a[2]);
				
				//check domain of day, month and year
				if (day>0 && day<32 && month>0 && month<13 && year>1900 && year<2030) {
					var no_of_days_in_month = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
					
					// afhandeling februari, i.v.m. schrikkeljaren.
					// Schrikkeljaar: 
					// Volgens de Gregoriaanse kalender is dit een jaar met 366 dagen.
					// Elk vierde jaar is een schrikkeljaar, behalve de eeuwjaren, die niet door 400 deelbaar zijn.
					if (month == 2) {
						if ( (year%4==0 && year%100 != 0) || year%400 == 0 ) {
							// Dit is een schrikkeljaar, dus 29 februari bestaat!
							no_of_days_in_month[month]=29;
						}
					}
					
					// Geldige dag ingevoerd?
					if (day >= 1 && day <= no_of_days_in_month[month]) {
						// JA!
						return true;
					} else {
						// NEE!
						return false;
					}
				} else {
					return false;
				}
			}
		}
	}
}			 



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : prototypes voor string trim functies.
'--------------------------------------------------------------------------------------------------
*/
String.prototype.trim  = function () { return this.ltrim().rtrim() }
String.prototype.ltrim = function () { return this.replace(/^\s+/g, "") }
String.prototype.rtrim = function () { return this.replace(/\s+$/g, "") }



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer Kamer van Koophandel (KvK) nummer.
'#  Voorwaarden : - niet leeg
'#								- numeriek
'#								- lengte 8
'#  Arg				 : strInput ::= String met KvKnr.
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isValidKvKnr(strInput) {

	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// niet numeriek?
  if (isNaN(strInput)) {
		return false;
	}

	// lengte niet 8 ?
  if (strInput.length != 8) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer NEDERLANDS kenteken
'#  Voorwaarden : - niet leeg
'#								- format XX-XX-XX
'#  Arg				 : strInput ::= String met kenteken.
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isValidKenteken_NL(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// lengte niet 8 ?
  if (strInput.length != 8) {
		return false;
	}
	
	// Streepjes op de goede plaats?
	if ( (strInput.charAt(2) != '-') 
		|| (strInput.charAt(5) != '-') ) {
		return false;
	}
	
	// Rest van de tekens is een character?
	if (	(!isChar(strInput.charAt(0)))
		 ||	(!isChar(strInput.charAt(1)))
		 ||	(!isChar(strInput.charAt(3)))
		 ||	(!isChar(strInput.charAt(4)))
		 ||	(!isChar(strInput.charAt(6)))
		 ||	(!isChar(strInput.charAt(7))) ) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer BTW nummer
'#  Voorwaarden : - niet leeg
'#								- voorbeeld: NL8099.07.410.B01
'#  Arg				 : strInput ::= String met BTW nummer.
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isValidBTWnummer_NL(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// lengte niet goed ?
  if (strInput.length != 17) {
		return false;
	}
	
	// Alle tekens correct?
	if (	( (strInput.charAt(0) != 'N') && (strInput.charAt(0) != 'n') )
		 ||	( (strInput.charAt(1) != 'L') && (strInput.charAt(1) != 'l') )
		 ||	(isNaN(strInput.charAt(2)))
		 ||	(isNaN(strInput.charAt(3)))
		 ||	(isNaN(strInput.charAt(4)))
		 ||	(isNaN(strInput.charAt(5)))
		 ||	(strInput.charAt(6) != '.')
		 ||	(isNaN(strInput.charAt(7)))
		 ||	(isNaN(strInput.charAt(8)))
		 ||	(strInput.charAt(9) != '.')
		 ||	(isNaN(strInput.charAt(10)))
		 ||	(isNaN(strInput.charAt(11)))
		 ||	(isNaN(strInput.charAt(12)))
		 ||	(strInput.charAt(13) != '.')
		 ||	( (strInput.charAt(14) != 'B') && (strInput.charAt(14) != 'b') )
		 ||	(isNaN(strInput.charAt(15)))
		 ||	(isNaN(strInput.charAt(16))) ) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer sofinummer
'#  Voorwaarden : - niet leeg
'#								- voorbeeld: 1111.11.111
'#  Arg				 : strInput ::= String met sofinummer.
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isValidSofinummer(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// lengte niet goed ?
  if (strInput.length != 11) {
		return false;
	}
	
	// Alle tekens correct?
	if (	(strInput.charAt(4) != '.')
		 ||	(strInput.charAt(7) != '.')
		 ||	(isNaN(strInput.charAt(0)))
		 ||	(isNaN(strInput.charAt(1)))
		 ||	(isNaN(strInput.charAt(2)))
		 ||	(isNaN(strInput.charAt(3)))
		 ||	(isNaN(strInput.charAt(5)))
		 ||	(isNaN(strInput.charAt(6)))
		 ||	(isNaN(strInput.charAt(8)))
		 ||	(isNaN(strInput.charAt(9)))
		 ||	(isNaN(strInput.charAt(10))) ) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : Is het argument een letter [a-z,A-Z]?
'#  Arg				 : sChar ::= character dat moet worden gecontroleerd
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isLetter(sChar) {
	if ( (sChar>="a" && sChar<="z") || (sChar>="A" && sChar<="Z") ) {
		return true;
	} else {
		return false;
	}
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : Is het argument character [a-z,A-Z,0-9]?
'#  Arg				 : sChar ::= character dat moet worden gecontroleerd
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isChar(sChar) {
	if ((sChar>="a" && sChar<="z") || (sChar>="A" && sChar<="Z") || (sChar>="0" && sChar <="9")) {
		return true;
	} else {
		return false;
	}
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer telefoonnummer
'#  Arg				 : strInput ::= String met telefoonnummer.
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isValidTelefoonnummer(strInput) {

	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// leeg?
	if (strInput == '') {
		return false;
	}

	// te kort?
	if (strInput.length < 10) {
		return false;
	}

	for( iCounter=0 ; iCounter<strInput.length ; iCounter++) {
		if (
			(!isDecimaalGetal(strInput.charAt(iCounter))) &&
			(strInput.charAt(iCounter) != '+') &&
			(strInput.charAt(iCounter) != '-') &&
			(strInput.charAt(iCounter) != ' ') &&
			(strInput.charAt(iCounter) != '(') &&
			(strInput.charAt(iCounter) != ')')
		) {
			return false;
		}
	}

	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer Nederlandse postcode
'#  Arg				 : strInput ::= String met postcode.
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isValidPostcode_NL(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// lengte niet goed ?
  if (strInput.length != 7 && strInput.length != 6) {
		return false;
	}
	
	// Eerst 4 cijfer?
	if (	(isNaN(strInput.charAt(0)))
		 ||	(isNaN(strInput.charAt(1)))
		 ||	(isNaN(strInput.charAt(2)))
		 ||	(isNaN(strInput.charAt(3))) ) {
		return false;
	}

	if (strInput.length == 6)
	{
		// Dan 2 letters?
		if (	(!isLetter(strInput.charAt(4)))
			||	(!isLetter(strInput.charAt(5))) ) {
			return false;
		}
	}
	else
	{
		// Dan een spatie?
		if (strInput.charAt(4) != " ") {
			return false;
		}
		// Dan 2 letters?
		if (	(!isLetter(strInput.charAt(5)))
			||	(!isLetter(strInput.charAt(6))) ) {
			return false;
		}		
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer emailadres
'#  Arg				 : strInput ::= String met emailadres.
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isValidEmail(strInput)
{
	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// Maak reguliere expressie voor emailadres...
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
	if (!filter.test(strInput)) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer emailadres
'#  Arg				 : strInput ::= String met emailadres.
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isValidMultipleEmail(strInput)
{
	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// Maak reguliere expressie voor emailadres...
	var filter  = /^((([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+)(\s*;\s*|$))+$/;
	if (!filter.test(strInput)) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer URL voor website
'#  Arg				 : strInput ::= String met URL
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isValidWebsiteURL(strInput)
{

	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// Maak reguliere expressie voor emailadres...
	var filter  = /(http|https)(:\/{2}[\w]+)([\/|\.]?)([\S]*)/i;
	if (!filter.test(strInput)) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer tijd in format HH:MM
'#  Arg				 : strInput ::= String met tijdsbepaling.
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isValidTijdHHMM(strInput) {

	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();
	
	// lengte niet goed ?
	if (strInput.length != 5) {
		return false;
	}
	
	if(strInput.charAt(2) == ':') {
		arrTijd = strInput.split(':');
	} else if(strInput.charAt(2) == '.') {
			arrTijd = strInput.split('.');
	} else {
		return false;
	}

	// split in uren en minuten
	intUren			=	arrTijd[0].replace('0','');
	intMinuten	=	arrTijd[1].replace('0','');
	
	if ( (isNaN(intMinuten)) || (isNaN(intUren)) ) {
		return false;
	}

	if (intUren<0 || intUren>23) {
		return false;
	}
	if (intMinuten<0 || intMinuten>59) {
		return false;
	}

	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : Is het argument een decimaal nummer [0-9]?
'#  Arg				 : strGetal ::= character dat moet worden gecontroleerd
'#  returnCheckValue : boolean
'--------------------------------------------------------------------------------------------------
*/
function isDecimaalGetal(strGetal) {
	var allowed = '0123456789';
	for (var i=0; i< strGetal.length; i++) {
		if (allowed.indexOf(strGetal.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer tijd in format HH:MM
'#  Arg				 : strInput ::= String met emailadres.
'#  returnCheckValue : boolean
'#  Voorbeeld geldige waarden:
'#		1000000
'#		1000000,25
'#  Voorbeeld ONGELDIGE waarden:
'#  1.000.000,00
'#  1.000.000,25
'#  1.000.000,-
'#  1.000.000,--
'--------------------------------------------------------------------------------------------------
*/
function isValidGeldbedrag(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}

	// zoek een punt in het bedrag.
	if (strInput.indexOf('.') != -1) {
		// punt gevonden --> ongeldig
		return false;
	}

	// zoek een komma in het bedrag.
	intPositieKomma = strInput.indexOf(',');
	if (intPositieKomma == -1) {
		// geen komma gevonden.
		
		if (isNaN(strInput)) {
			// strInput is niet numeriek --> ongeldig.
			return false;
		} else {
			// strInput was al numeriek --> geldig.
			return true;
		}
	} else if (intPositieKomma == (strInput.length-3)) {
		// WEL een komma gevonden.  HIERBOVEN AANGEVEN HOEVEEL DECIMALEN!!!!!
		// Is het EEN komma? (is de eerste komma ook de laatste?)
		if (strInput.indexOf(',') != strInput.lastIndexOf(',')) {
			// meer dan EEN komma gevonden...
			return false;
		} else {
			// split in getal voor de komma en getal na de komma.
			arrBedrag = strInput.split(',');
			strVoorKomma		=	arrBedrag[0];
			strAchterKomma	=	arrBedrag[1];
			
			// Voor en achter de komma een number?
			if (isNaN(strVoorKomma) || isNaN(strAchterKomma) ) {
				return false;
			}
			
			// Getal achter de komma niet negatief?
			if (strAchterKomma<0) {
				return false;
			}
			
		}
	} else {
				alert(intPositieKomma);
		return false;
	}

	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer tijd in format HH:MM
'#  Arg				 : strInput ::= String met emailadres.
'#  returnCheckValue : boolean
'#  Voorbeeld geldige waarden:
'#		1000000
'#		1000000,25
'#  Voorbeeld ONGELDIGE waarden:
'#  1.000.000,00
'#  1.000.000,25
'#  1.000.000,-
'#  1.000.000,--
'--------------------------------------------------------------------------------------------------
*/
function isGeldigDecimaalGetal(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}

	// zoek een punt in het bedrag.
	if (strInput.indexOf('.') != -1) {
		// punt gevonden --> ongeldig
		return false;
	}
		
	// zoek een komma in het bedrag.
	intPositieKomma = strInput.indexOf(',');
	if (intPositieKomma == -1) {
		// geen komma gevonden.
		if (isNaN(strInput)) {
			// strInput is niet numeriek --> ongeldig.
			return false;
		} else {
			// strInput was al numeriek --> geldig.
			return true;
		}
	} else {
		// WEL een komma gevonden.
		// Is het EEN komma? (is de eerste komma ook de laatste?)
		if (strInput.indexOf(',') != strInput.lastIndexOf(',')) {
			// meer dan EEN komma gevonden...
			return false;
		} else {
			// split in getal voor de komma en getal na de komma.
			arrBedrag = strInput.split(',');
			strVoorKomma		=	arrBedrag[0];
			strAchterKomma	=	arrBedrag[1];
			
			// Voor en achter de komma een number?
			if (isNaN(strVoorKomma) || isNaN(strAchterKomma) ) {
				return false;
			}
			
			// Getal achter de komma niet negatief?
			if (strAchterKomma<0) {
				return false;
			}
			
		}
	}

	// alles OK...
	return true;
}

// Prevent double submits
jQuery.fn.preventDoubleSubmit = function() {
	jQuery(this).submit(function() {
		if (this.beenSubmitted)
			return false;
		else
			this.beenSubmitted = true;
	});
};

// Default disallow double submits
jQuery(document).ready(function() {
	jQuery('form').each(function() {
		if (jQuery(this).attr('target') == '') {
			jQuery(this).preventDoubleSubmit();
		}
	});
});
