function validateAdditionalBenefit(addbentypeobj, addbenmonthobj, addbenyearobj) {
	var addbentype=addbentypeobj.options[addbentypeobj.selectedIndex].value;
	var addbenmonth=addbenmonthobj.options[addbenmonthobj.selectedIndex].value;
	var addbenyear=addbenyearobj.value;

    if (addbentype != '' && addbentype >= 0) {
        if (addbenmonth == '')
            errorList=errorList+"Het veld '"+addbenmonthobj.getAttribute("guiname")+"' is een verplicht veld om in te vullen\n\r";
        if (addbenyear == '')
            errorList=errorList+"Het veld '"+addbenyearobj.getAttribute("guiname")+"' is een verplicht veld om in te vullen\n\r";
        return false;
    }
	return true;
}
function validateAmount(obj) {
	var reAmount = /^((\d+(\,\d{1,2})?)|((\d*\,)?\d{1,2}))$/;
	if (obj.value!=''&&!reAmount.test(obj.value)) {
		errorList=errorList+"Het veld '"+obj.getAttribute("guiname")+"' bevat een ongeldig bedrag.\n\r";
		return false;
	}
	return true;
}
function validateBankAccountno(banktypeobj, accnoobj) {
	var banktype = banktypeobj.options[banktypeobj.selectedIndex].value;
	var accno = accnoobj.value;
	var valid=true;
	if (banktype!=5) { // Normal bankaccount
		if (accno!='') {
			var reBankAccountno = /^\d{9}$/;
			valid=reBankAccountno.test(accno);

			if (accno=='123456789'||accno=='111111110'||accno=='222222220'||accno=='333333330'||accno=='444444440'||
				accno=='555555550'||accno=='666666660'||accno=='777777770'||accno=='888888880'||accno=='999999990'||accno=='000000000')
				valid=false;

			var checkno=0;
			for(var i=0;i<9;i++)
				checkno=checkno+((9-i)*accno.charAt(i));
			if (checkno%11!=0)
				valid=false;
		}
	} else { // Postbank account
		var rePostbankAccountno = /^\d{2,7}$/;
		valid=rePostbankAccountno.test(accno);
	}
	if (!valid)
		errorList=errorList+"Het bankrekeningnummer is ongeldig.\n\r";
	return valid;
}


function validateBirthDate(obj, minYear, maxYear) {
	if (obj.value!='') {
		var birthDateStr=obj.value;
		var reBirthDate = /^\d{2}-\d{2}-\d{4}$/;
		var valid = reBirthDate.test(birthDateStr);

		if (valid) {
			birthDateComps = birthDateStr.split('-');
			var day = birthDateComps[0];
			var month = birthDateComps[1];
			var year = birthDateComps[2];
			valid=isDate(day, month, year);
		}
		if (!valid)
			errorList=errorList+"Het veld '"+obj.getAttribute("guiname")+"' bevat een ongeldig datum.\n\r";

		if (valid) {
			var birthDate=new Date(year, month-1, day);
			var currDate=new Date();

			var minDate=new Date(currDate.getFullYear()-minYear, currDate.getMonth(), currDate.getDate());
			var maxDate=new Date(currDate.getFullYear()-maxYear-1, currDate.getMonth(), currDate.getDate());

			if (birthDate<=maxDate) {
				errorList=errorList+"Voor het veld '"+obj.getAttribute("guiname")+"' mag de leeftijd maximaal "+maxYear+" jaar bedragen.\n\r";
				valid=false;
			}
			if (birthDate>minDate) {
				errorList=errorList+"Voor het veld '"+obj.getAttribute("guiname")+"' moet de leeftijd minimaal "+minYear+" jaar zijn.\n\r";
				valid=false;
			}
		}
	}
	return valid;
}
function validateBirthdateDate(birthdateobj, monthobj, yearobj, offset){
	var valid=true;

	if(yearobj !=null && birthdateobj !=null){
		if (birthdateobj.value!='' && yearobj.value!='') {
			var birthDateStr=birthdateobj.value;
			birthDateComps = birthDateStr.split('-');
			var day = birthDateComps[0];
			var month = birthDateComps[1];
			var year = birthDateComps[2];
			valid=isDate(day, month, year);

			if (!valid) {
				errorList=errorList+"Het veld '"+birthdateobj.getAttribute("guiname")+"' bevat een ongeldig datum.\n\r";
			} else {
				var birthDate=new Date(year, month-1, day);
				var checkDate=new Date(yearobj.value, monthobj.options[monthobj.selectedIndex].value-1, 1);
				if (offset != undefined) {
					var checkMonth = checkDate.getMonth() + offset;
					if (checkMonth < 12) {
						checkDate = new Date(yearobj.value, checkMonth, 1);
					} else {
						checkDate = new Date(1 + checkDate.getYear(), 0, 1);
					}
				}

				if (birthDate>checkDate) {
					errorList=errorList+"De geboortedatum is niet toegestaan bij de veldcombinatie '"+monthobj.getAttribute("guiname")+"/"+yearobj.getAttribute("guiname")+"'\n\r";
					valid=false;
				}
			}
		}
	}
	return valid;
}
function validateDate(monthobj, yearobj, futureCheck, offset) {
	if (yearobj.value!='') {
		if (yearobj.value<1900||yearobj.value>2100) {
			errorList=errorList+"Het veld '"+yearobj.getAttribute("guiname")+"' bevat een ongeldig jaar\n\r";
			return false;
		} else {
			var tmpDate=new Date();
			var currDate=new Date(tmpDate.getFullYear(), tmpDate.getMonth(), tmpDate.getDate());
			var objDate=new Date(yearobj.value, (monthobj.options[monthobj.selectedIndex].value-1), (currDate.getDate()+offset));
			if (futureCheck) {
				if (objDate<currDate) {
					errorList=errorList+"De veldcombinatie '"+monthobj.getAttribute("guiname")+"/"+yearobj.getAttribute("guiname")+"' bevat een ongeldige datum\n\r";
					return false;
				}
			} else {
				if (objDate>currDate) {
					errorList=errorList+"De veldcombinatie '"+monthobj.getAttribute("guiname")+"/"+yearobj.getAttribute("guiname")+"' bevat een ongeldige datum\n\r";
					return false;
				}
			}
		}
	}
	return true;
}
function validateEmailAddress(obj) {
	var reEmailAddress=/^([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})(\]?)$/;
	if (obj.value!=''&&!reEmailAddress.test(obj.value)) {
		errorList=errorList+"Het veld '"+obj.getAttribute("guiname")+"' bevat een ongeldig emailadres.\n\r";
		return false;
	}
	return true;
}
function validateHours(obj) {
	if (obj.value!=''&&obj.value<0||obj.value>35) {
		errorList=errorList+"Het veld '"+obj.getAttribute("guiname")+"' bevat een te hoog urental voor een parttime betrekking.\n\r";
		return false;
	}
	return true;
}
function validateID(nationtypeobj, idtypeobj, idnoobj) {
	var nationtype=nationtypeobj.options[nationtypeobj.selectedIndex].value;
	var idtype=idtypeobj.options[idtypeobj.selectedIndex].value;
	var idno=idnoobj.value;
	var valid=true;

	if (idno!='') {
		if (idtype==1) {// Nederlands rijbewijs
			var reDriversLicence = /^\d{9,10}$/;
			valid=reDriversLicence.test(idno);

			var checkno=0;
			for (var i=1;i<idno.length;i++)
				checkno=checkno+Number(idno.charAt(i-1));
			if (checkno%9!=Number(idno.charAt(idno.length-1)))
				valid=false;

// CR1906 remove validate European IDCard. VIS to check
//		} else if (idtype==2) { // paspoort
//			if (nationtype==1) { // Dutch passport
//				rePassport=/^(([a-zA-Z]{2}\d{6})|(\d{6}[A-Za-z]{2})|([A-Za-z]{2}\d{7})|((N|n)\d{8})|((L|l)\d{8})|((M|m)\d{8}))$/
//				valid=rePassport.test(idno);
//			} else { // Foreign passport
//				valid=true;
//			}
		} else if (idtype==4) { // vluchtelingenpaspoort
			reRefPassport=/^(((A|a)\d{8})|((R|r)\d{8})|((AZ|az)\d{7})|((RZ|rz)\d{7}))$/
			valid=reRefPassport.test(idno);
		} else if (idtype==8) { // Belgische identiteitskaart
			valid=true;
// CR1906 remove validate European IDCard. VIS to check
//		} else if (idtype==9) { // Europese identiteitskaart
//			var reEuroIDCard=/^(([a-zA-Z]{2})(\d{7})|([a-zA-Z])(\d{8}))$/
//			valid=reEuroIDCard.test(idno);
		}
	}
	if (!valid)
		errorList=errorList+"Het nummer van het legitimatiebewijs is ongeldig.\n\r";
	return valid;
}
function validateIncome(appIncomeType, maritialStatusType, spouseIncomeObj) {
	var appSpouseIncomeType = spouseIncomeObj.options[spouseIncomeObj.selectedIndex].value;

	if ((maritialStatusType==2||maritialStatusType==3||maritialStatusType==5)&&appIncomeType==5) {
		errorList=errorList+"De aanvrager moet een inkomen hebben\n\r";
		return false;
	}
	if (appIncomeType==5&&appSpouseIncomeType==5) {
		errorList=errorList+"Uzelf óf uw partner moet een inkomen hebben om een lening te kunnen aanvragen\n\r";
		return false;
	}
	return true;
}

function validateInstallment(installmentobj, creditamountobj, cardtypeobj) {
	if (installmentobj.value!=''&&creditamountobj.value!='') {
		if (validateAmount(installmentobj)&&validateAmount(creditamountobj)) {
			if (cardtypeobj.value==1) {
				tmpamount=((Number(creditamountobj.value)/100)*3);
				if (tmpamount<10)
					mininstallmentamount=10
				else
					mininstallmentamount=(tmpamount-(tmpamount%2));
			} else {
				tmpamount=((Number(creditamountobj.value)/100)*5);
				if (tmpamount<15)
					mininstallmentamount=15
				else
					mininstallmentamount=(tmpamount-(tmpamount%2));
			}

			if(installmentobj.value<mininstallmentamount) {
				errorList=errorList+"Het maandbedrag is lager dan het minimummaandbedrag van EUR "+mininstallmentamount+",00\n\r";
				return false;
			} else {
				if (Number(installmentobj.value)>Number(creditamountobj.value)) {
					errorList=errorList+"Het maandbedrag is hoger dan het aankoopbedrag";
					return false;
				}
			}
		}
	}
	return true;
}
function validatePermitNumber(obj) {
	if (obj.value!='') {
		var reType34PermitNumber=/^(((3{1})\d{8})|((4{1})\d{8}))$/
		if (reType34PermitNumber.test(obj.value)) { // if validation is true
			errorList=errorList+"Er wordt geen financiering verstrekt op het ingevoerde type verblijfsvergunning.\n\r";
			return false;
		}
		var rePermitNumber=/^((E|e)(\d{8})|((1{1})\d{8})|((2{1})\d{8}))$/
		if (!rePermitNumber.test(obj.value)) {
			errorList=errorList+"Het veld '"+obj.getAttribute("guiname")+"' bevat een ongeldig verblijfsvergunningnummer.\n\r";
			return false;
		}
	}
	return true;
}
function validatePurchaseAmount(obj) {
	var result = validateAmount(obj)
	if (result) {
		if (Number(obj.value)<Number(obj.getAttribute("minAmount"))) {
			errorList=errorList+"Het veld '"+obj.getAttribute("guiname")+"' bevat een te laag bedrag. Het minimum bedrag is EUR "+obj.getAttribute("minAmount")+".\n\r";
			result = false;
		}
		if (Number(obj.value)>Number(obj.getAttribute("maxAmount"))) {
			errorList=errorList+"Het veld '"+obj.getAttribute("guiname")+"' bevat een te hoog bedrag. Het maximum bedrag is EUR "+obj.getAttribute("maxAmount")+".\n\r";
			result = false;
		}
	}
	return result;
}
function validatePhoneNumber(obj) {
	var rePhone=/^0\d{9}$/
	if (obj.value!=''||obj.name!='EmployerPhoneNumber') {
		if (obj.value!=''&&!rePhone.test(obj.value)) {
			errorList=errorList+"Het veld '"+obj.getAttribute("guiname")+"' bevat een ongeldig telefoonnummer.\n\r";
			return false;
		}
	}
	return true;
}
function validatePlusPakket(pluspakketobj, hoursobj, timetypeobj) {

	if (pluspakketobj.checked&&timetypeobj.value==2&&hoursobj.value!=''&&hoursobj.value<24) {
		errorList=errorList+"Het is niet mogelijk om een servicepakket af te sluiten bij een betrekking van minder dan 24 uur.\n\r";
		return false;
	}

	return true;
}
function validatePostcode(obj) {
	var rePostcode=/^\d{4}[A-Za-z]{2}$/;
	if (obj.value!=''&&!rePostcode.test(obj.value)) {
		errorList=errorList+"Het veld '"+obj.getAttribute("guiname")+"' bevat een ongeldige postcode.\n\r";
		return false;
	}
	return true;
}

function byId(id) {
	return document.getElementById(id);
}

function validateRequired(obj) {

	if (obj.value == ''){

		errorList=errorList + "Het veld '" + obj.getAttribute("guiname") + "' is een verplicht veld om in te vullen\n\r";

		if (byId(obj.id+ "_label") !=null){

			byId(obj.id+ "_label").style.color = "red";

			if(byId('PhoneNumber')!=null){
				if(byId('PhoneNumber').value != '' || byId('PhoneNumberMobile').value != ''){
					byId("PhoneNumberMobile_label").style.color = "";
					byId("PhoneNumber_label").style.color = "";
				}
			}
		}
	}else{
		if (byId(obj.id+ "_label") !=null){
			byId(obj.id+ "_label").style.color = "";
		}
	}

}
function validateSelection(obj) {
	var valid=true;
	if (obj.options[obj.selectedIndex].value == 0)
		valid = false;
	if (!valid)
		errorList=errorList+"U heeft geen '" + obj.getAttribute('guiname') + "' geselecteerd\n\r";
	return valid;
}
function checkphone_mobile(phoneObj, mobileObj){
	var phoneValue = phoneObj.value;
	var mobileValue = mobileObj.value;

	document.getElementById('PhoneNumber').setAttribute('required','true');
	document.getElementById('PhoneNumberMobile').setAttribute('required','true');

	if (phoneValue.length > 1 && mobileValue.length > 1) {
		document.getElementById('PhoneNumber').setAttribute('required','true');
		document.getElementById('PhoneNumberMobile').setAttribute('required','true');
	} else if (phoneValue.length > 1) {
		document.getElementById('PhoneNumber').setAttribute('required','true');
		document.getElementById('PhoneNumberMobile').setAttribute('required','false');
	} else if (mobileValue.length > 1) {
		document.getElementById('PhoneNumberMobile').setAttribute('required','true');
		document.getElementById('PhoneNumber').setAttribute('required','false');
	}
}
