// Check functions
// 27-3-2009 gewijzigd door karen: postcode check in aparte js gezet
var bCancel = false;

/* =========================================================
	Check_Verplicht:
	test of waarde van desbetreffende veld niet leeg is
	input van alleen spaties, tabs e.d. is WEL geldig
 ========================================================= */
function Check_Verplicht(theForm, veld, friendlyname){
    if (theForm[veld].value == ""){
        if (friendlyname == "") friendlyname = veld
        alert("U heeft niets ingevuld in het \"" + friendlyname + "\" veld.");
        try {theForm[veld].focus();} catch(er) {}
        return (false);
    }
    return (true)
}

/* =========================================================
	Check_Verplicht_Trim:
	test of waarde van desbetreffende veld niet leeg is
	input van alleen spaties, tabs e.d. is NIET geldig
	door gebruik trimString functie
	(staat in format.js, dus deze sourcefile ook in pagina zetten!)
 ========================================================= */
function Check_Verplicht_Trim(theForm, veld, friendlyname){
    if (trimString(theForm[veld].value) == ""){
        if (friendlyname == "") friendlyname = veld
        alert("U heeft niets ingevuld in het \"" + friendlyname + "\" veld.");
        try {theForm[veld].focus();} catch(er) {}
        return (false);
    }
    return (true)
}


/* =========================================================
	Check_Radio:
	test of van een set radiobuttons er tenminste 1 geselecteerd is
	uitgangspunt: radiobuttons hebben namen [veld]0, [veld]1 etc t/m count-1
 ========================================================= */
function Check_Radio(theForm, veld, friendlyname, count){
	var countSel;
	countSel = 0;
	
	for (i=0; i<count; i++){
		if (theForm[veld+i].checked == true) {
			countSel = countSel + 1;
		}
	}
	
	if (countSel > 0) {
		return (true) ;
	} else {
        alert("U heeft niets ingevuld in het \"" + friendlyname + "\" veld.");
        try {theForm[veld+0].focus();} catch(er) {}
        return (false);
    }

}


/* =========================================================
	Check_Nummer:
	test of waarde van desbetreffende veld numeriek is
	verwacht decimale punt
 ========================================================= */
function Check_Nummer(theForm, veld, friendlyname){
    if( isNaN(theForm[veld].value)){
        if (friendlyname == "") friendlyname = veld
        alert("U heeft geen getal ingevuld in het \"" + friendlyname + "\" veld.");
        try {theForm[veld].focus();} catch(er) {}
        return (false)
    }
    return (true)
}

/* =========================================================
	Check_Nummer_point:
	test of waarde van desbetreffende veld numeriek is
	decimale komma wordt eerst veranderd in decimale punt
	door gebruik comma2point functie
	(staat in format.js, dus deze sourcefile ook in pagina zetten!)
 ========================================================= */
function Check_Nummer_point(theForm, veld, friendlyname){
    if( isNaN(comma2point(theForm[veld].value))){
        if (friendlyname == "") friendlyname = veld
        alert("U heeft geen getal ingevuld in het \"" + friendlyname + "\" veld.");
        try {theForm[veld].focus();} catch(er) {}
        return (false)
    }
    return (true)
}


/* =========================================================
	Check_Date:
	test of waarde van desbetreffende veld een datum is
	dateformat: dmy of mdy of ymd of ydm
	datesep: - of / of .
 ========================================================= */
function Check_Date(theForm, veld, friendlyname, DateFormat, DateSep) {
//function Check_Date(Field,FieldName,FieldValue,DateFormat,DateSep,DateFormatLabel) {
// checks if date passed is in valid dd-mm-yyyy format
	if (DateFormat == "") { DateFormat = "dmy"; }
	if (DateSep == "") { DateSep = "-"; }
	if (friendlyname == "") friendlyname = veld
	
	if (theForm[veld].value.length != 0) {
	    if ((theForm[veld].value.length >= 8) && (theForm[veld].value.length <= 10)){	
			arraydate = theForm[veld].value.split(DateSep);
			
			switch(DateFormat) {
				case "dmy": 
					dday = arraydate[0];
	  				dmonth = arraydate[1];
	  				dyear = arraydate[2];
					break;
				case "mdy": 
					dday = arraydate[1];
	  				dmonth = arraydate[0];
	  				dyear = arraydate[2];
					break;
				case "ymd": 
					dday = arraydate[2];
	  				dmonth = arraydate[1];
	  				dyear = arraydate[0];
					break;
				case "ydm": 
					dday = arraydate[1];
	  				dmonth = arraydate[2];
	  				dyear = arraydate[0];
					break;
			}

	  		var test = new Date(dyear, dmonth -1,dday);
            //if (dyear == y2k(test.getYear()) && (dmonth-1 == test.getMonth()) && (dday == test.getDate())) {
         	if (dyear == y2k(test.getFullYear()) && (dmonth-1 == test.getMonth()) && (dday == test.getDate())) {
				//extra test om ervoor te zorgen dat jaar > 1752
				if (y2k(test.getFullYear()) > 1752) {		
					return (true);
				} else {
					alert("U heeft een ongeldige datum ingevuld in het \"" + friendlyname + "\" veld \n(het jaartal ligt voor 1753).");
        			try {theForm[veld].focus();} catch(er) {}
       		 		return (false);
				}
				
            }
            else {
				alert("U heeft geen datum ingevuld in het \"" + friendlyname + "\" veld.");
        		try {theForm[veld].focus();} catch(er) {}
       		 	return (false)
            }
	    }
	    else {			
	        alert("U heeft geen datum ingevuld in het \"" + friendlyname + "\" veld.");
        	try {theForm[veld].focus();} catch(er) {}
       		return (false)
	    }
	}
	return true;
}

/* ==== gebruikt in Check_Date ======= */
function y2k(number) { 
	return (number < 1000) ? number + 1900 : number; 
	}

/* =========================================================
	Check_Time:
	test of waarde van desbetreffende veld een tijd is
	timeformat: hh:mm
	datesep: : of .
 ========================================================= */
function Check_Time(theForm, veld, friendlyname, TimeSep) {
	if (TimeSep == "") { TimeSep = ":"; }
	if (friendlyname == "") {friendlyname = veld;}
	
	var testValue;
	if (theForm[veld]) { 
		testValue = theForm[veld].value;
	}else{
		testValue = '';
	}
	var artestValue = new Array(2) ;
	
	if (testValue.length != 0) {
		if (testValue.indexOf(TimeSep) > 0) {
			artestValue = testValue.split(TimeSep);
			//uren moeten tussen 0 en 23, minuten tussen 0 en 59
			if (isNaN(artestValue[0]) || (artestValue[0] > 23) || (artestValue[0] < 0) || isNaN(artestValue[1]) || (artestValue[1] > 59) || (artestValue[1] < 0)) {
			
				alert("U heeft geen geldige tijd ingevuld in het \"" + friendlyname + "\" veld.");
	        	try {theForm[veld].focus();} catch(er) {}
	       		return (false);
			} else {
				return (true);
			}
			
		} else {
			alert("U heeft geen geldige tijd ingevuld in het \"" + friendlyname + "\" veld.");
        	try {theForm[veld].focus();} catch(er) {}
       		return (false);
		}
	
	} else {
		return (true);
	}
	
}

/*  =========================================================
	CompareDates:
	test of de einddatum ligt voor de begindatum.
	De einddatum mag gelijk zijn aan de begindatum. 	
 ========================================================= */
function CompareDates(theForm, beginVeld, beginFriendlyName, eindVeld, eindFriendlyName, DateFormat, DateSep){	
	if (DateFormat == "") { DateFormat = "dmy"; }
	if (DateSep == "") { DateSep = "-"; }
		
	arrayStart = theForm[beginVeld].value.split(DateSep);
  	arrayEind = theForm[eindVeld].value.split(DateSep);
			
	switch(DateFormat) {
		case "dmy": 
			dagStart = arrayStart[0];
  			maandStart = arrayStart[1];
  			jaarStart = arrayStart[2];
  			dagEind = arrayEind[0];
  			maandEind = arrayEind[1];
  			jaarEind = arrayEind[2];			
			break;
		case "mdy": 
			dagStart = arrayStart[1];
  			maandStart = arrayStart[0];
  			jaarStart = arrayStart[2];
  			dagEind = arrayEind[1];
  			maandEind = arrayEind[0];
  			jaarEind = arrayEind[2];								
			break;
		case "ymd": 
			dagStart = arrayStart[2];
  			maandStart = arrayStart[1];
  			jaarStart = arrayStart[0];
  			dagEind = arrayEind[2];
  			maandEind = arrayEind[1];
  			jaarEind = arrayEind[0];							
			break;
		case "ydm": 
			dagStart = arrayStart[1];
  			maandStart = arrayStart[2];
  			jaarStart = arrayStart[0];
  			dagEind = arrayEind[1];
  			maandEind = arrayEind[2];
  			jaarEind = arrayEind[0];					
			break;
	}			
					
	var datumStart = new Date(jaarStart, (maandStart - 1), dagStart)	
	var datumEind = new Date(jaarEind, (maandEind - 1), dagEind)
		
	//alert("einddatum = " + datumEind + " begindatum = " + datumStart);
		
	if (datumEind < datumStart){		
		alert("De datum \"" + eindFriendlyName + "\" mag niet liggen voor de datum \"" + beginFriendlyName +"\".");
	    try {theForm[veld].focus();} catch(er) {}
	   	return (false);
	} else {
		return (true);
	}
}
	
/* ===============================================================================
	2e set van checkfuncties, deze geven echter geen alert of focus, alleen een true of false terug!
================================================================================= */


/* =========================================================
	Check_Verplicht_NoAlert:
	test of waarde van desbetreffende veld niet leeg is
	input van alleen spaties, tabs e.d. is WEL geldig
 ========================================================= */
function Check_Verplicht_NoAlert(theForm, veld, friendlyname){
    if (theForm[veld].value == ""){
        if (friendlyname == "") friendlyname = veld
        return (false);
    }
    return (true)
}

/* =========================================================
	Check_Verplicht_Trim:
	test of waarde van desbetreffende veld niet leeg is
	input van alleen spaties, tabs e.d. is NIET geldig
	door gebruik trimString functie
	(staat in format.js, dus deze sourcefile ook in pagina zetten!)
 ========================================================= */
function Check_Verplicht_Trim_NoAlert(theForm, veld, friendlyname){
    if (trimString(theForm[veld].value) == ""){
        if (friendlyname == "") friendlyname = veld
       return (false);
    }
    return (true)
}

/* =========================================================
	Check_Radio_NoAlert:
	test of van een set radiobuttons er tenminste 1 geselecteerd is
	uitgangspunt: radiobuttons hebben namen [veld]0, [veld]1 etc t/m count-1
 ========================================================= */
function Check_Radio_NoAlert(theForm, veld, friendlyname, count){
	var countSel;
	countSel = 0;
	
	for (i=0; i<count; i++){
		if (theForm[veld+i].checked == true) {
			countSel = countSel + 1;
		}
	}
	
	if (countSel > 0) {
		return (true) ;
	} else {
        return (false);
    }

}


/* =========================================================
	Check_Nummer_NoAlert:
	test of waarde van desbetreffende veld numeriek is
	verwacht decimale punt
 ========================================================= */
function Check_Nummer_NoAlert(theForm, veld, friendlyname){
    if( isNaN(theForm[veld].value)){
        if (friendlyname == "") friendlyname = veld
       return (false)
    }
    return (true)
}

/* =========================================================
	Check_Nummer_point_NoAlert:
	test of waarde van desbetreffende veld numeriek is
	decimale komma wordt eerst veranderd in decimale punt
	door gebruik comma2point functie
	(staat in format.js, dus deze sourcefile ook in pagina zetten!)
 ========================================================= */
function Check_Nummer_point_NoAlert(theForm, veld, friendlyname){
    if( isNaN(comma2point(theForm[veld].value))){
        if (friendlyname == "") friendlyname = veld
        return (false)
    }
    return (true)
}


/* =========================================================
	Check_Date_NoAlert:
	test of waarde van desbetreffende veld een datum is
	dateformat: dmy of mdy of ymd of ydm
	datesep: - of / of .
 ========================================================= */
function Check_Date_NoAlert(theForm, veld, friendlyname, DateFormat, DateSep) {
//function Check_Date(Field,FieldName,FieldValue,DateFormat,DateSep,DateFormatLabel) {
// checks if date passed is in valid dd-mm-yyyy format
	if (DateFormat == "") { DateFormat = "dmy"; }
	if (DateSep == "") { DateSep = "-"; }
	if (friendlyname == "") friendlyname = veld
	
	if (theForm[veld].value.length != 0) {
	    if ((theForm[veld].value.length >= 8) && (theForm[veld].value.length <= 10)){	
			arraydate = theForm[veld].value.split(DateSep);
			
			switch(DateFormat) {
				case "dmy": 
					dday = arraydate[0];
	  				dmonth = arraydate[1];
	  				dyear = arraydate[2];
					break;
				case "mdy": 
					dday = arraydate[1];
	  				dmonth = arraydate[0];
	  				dyear = arraydate[2];
					break;
				case "ymd": 
					dday = arraydate[2];
	  				dmonth = arraydate[1];
	  				dyear = arraydate[0];
					break;
				case "ydm": 
					dday = arraydate[1];
	  				dmonth = arraydate[2];
	  				dyear = arraydate[0];
					break;
			}

	  		var test = new Date(dyear, dmonth -1,dday);
           // if (dyear == y2k(test.getYear()) && (dmonth-1 == test.getMonth()) && (dday == test.getDate())) {
         	if (dyear == y2k(test.getFullYear()) && (dmonth-1 == test.getMonth()) && (dday == test.getDate())) {
				//extra test om ervoor te zorgen dat jaar > 1752
				if (y2k(test.getFullYear()) > 1752) {		
					return (true);
				} else {
					return (false);
				}
            }
            else {
				return (false);
            }
	    }
	    else {			
	       return (false);
	    }
	}
	return true;
}

/* ==== gebruikt in Check_Date ======= */
function y2k(number) { 
	return (number < 1000) ? number + 1900 : number; 
	}

/* =========================================================
	Check_Time_NoAlert:
	test of waarde van desbetreffende veld een tijd is
	timeformat: hh:mm
	datesep: : of .
 ========================================================= */
function Check_Time_NoAlert(theForm, veld, friendlyname, TimeSep) {
	if (TimeSep == "") { TimeSep = ":"; }
	if (friendlyname == "") {friendlyname = veld;}
	
	var testValue;
	if (theForm[veld]) { 
		testValue = theForm[veld].value;
	}else{
		testValue = '';
	}
	var artestValue = new Array(2) ;
	
	if (testValue.length != 0) {
		if (testValue.indexOf(TimeSep) > 0) {
			artestValue = testValue.split(TimeSep);
			//uren moeten tussen 0 en 23, minuten tussen 0 en 59
			if (isNaN(artestValue[0]) || (artestValue[0] > 23) || (artestValue[0] < 0) || isNaN(artestValue[1]) || (artestValue[1] > 59) || (artestValue[1] < 0)) {
			
				return (false);
			} else {
				return (true);
			}
			
		} else {
			return (false);
		}
	
	} else {
		return (true);
	}
	
}

/*  =========================================================
	CompareDates_NoAlert:
	test of de einddatum ligt voor de begindatum.
	De einddatum mag gelijk zijn aan de begindatum. 	
 ========================================================= */
function CompareDates_NoAlert(theForm, beginVeld, beginFriendlyName, eindVeld, eindFriendlyName, DateFormat, DateSep){	
	if (DateFormat == "") { DateFormat = "dmy"; }
	if (DateSep == "") { DateSep = "-"; }
		
	arrayStart = theForm[beginVeld].value.split(DateSep);
  	arrayEind = theForm[eindVeld].value.split(DateSep);
			
	switch(DateFormat) {
		case "dmy": 
			dagStart = arrayStart[0];
  			maandStart = arrayStart[1];
  			jaarStart = arrayStart[2];
  			dagEind = arrayEind[0];
  			maandEind = arrayEind[1];
  			jaarEind = arrayEind[2];			
			break;
		case "mdy": 
			dagStart = arrayStart[1];
  			maandStart = arrayStart[0];
  			jaarStart = arrayStart[2];
  			dagEind = arrayEind[1];
  			maandEind = arrayEind[0];
  			jaarEind = arrayEind[2];								
			break;
		case "ymd": 
			dagStart = arrayStart[2];
  			maandStart = arrayStart[1];
  			jaarStart = arrayStart[0];
  			dagEind = arrayEind[2];
  			maandEind = arrayEind[1];
  			jaarEind = arrayEind[0];							
			break;
		case "ydm": 
			dagStart = arrayStart[1];
  			maandStart = arrayStart[2];
  			jaarStart = arrayStart[0];
  			dagEind = arrayEind[1];
  			maandEind = arrayEind[2];
  			jaarEind = arrayEind[0];					
			break;
	}			
					
	var datumStart = new Date(jaarStart, (maandStart-1), dagStart)	
	var datumEind = new Date(jaarEind, (maandEind-1), dagEind)
		
	if (datumEind < datumStart){		
		return (false);
	} else {
		return (true);
	}
}
	
/*  =========================================================
	isInteger:
	test of de input een integer is
	return: true of false
 ========================================================= */	
function isInteger(val)
{		
    if(val==null)
    {
		return true;
	}
    if (val.length==0)
    {
	     return true;
	}
    for (var i = 0; i < val.length; i++)
	{
		var ch = val.charAt(i)
        if (i == 0 && ch == "-")
        {
			
		}   
		if (ch < "0" || ch > "9")
        {
			return false
		}
	}
    return true
}


