function req_field(fld,descr) {
	if(fld.value == '') {
		alert('Het veld \'' + (descr == null ? fld.name : descr) + '\' moet worden ingevuld.');
		fld.focus();
		return false;
	} else {
		return true;
	}
}

function req_email(fld) {
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
	if(!filter.test(fld.value)) {
		alert('Vul een geldig e-mailadres in.');
		fld.focus();
		return false;
	} else {
		return true;
	}
}

function test_password(pwd, pwd_chk) {
	if(!req_field(pwd,'wachtwoord')) {
		return false;
	} else if(pwd.value != pwd_chk.value) {
		alert('De ingevoerde wachtwoorden komen niet overeen.');
		pwd.focus();
		return false;
	} else if(pwd.value.length < 6) {
		alert('Het gekozen wachtwoord moet minimaal 6 tekens bevatten,\ngebruik bij voorkeur een combinatie van letters en cijfers.');
		pwd.focus();
		return false;
	} else {
		return true;
	}
}

function check_date(fld,descr) {
	var error = false;
	var date_parts = fld.value.split('-');
	if(date_parts.length != 3) {
		error = true;
	} else {
		if(date_parts[0].length == 1) {
			date_parts[0] = '0'+date_parts[1];
		}
		if(date_parts[1].length == 1) {
			date_parts[1] = '0'+date_parts[1];
		}
		if(date_parts[2].length == 2) {
			date_parts[2] = (date_parts[2] < 10 ? '20' : '19') + date_parts[2];
		}
		fld.value = date_parts.join('-');
		var objTempDate = new Date(date_parts[2],date_parts[1]-1,date_parts[0]);
		if(objTempDate.getFullYear() != date_parts[2]
		|| objTempDate.getMonth() != date_parts[1]-1
		|| objTempDate.getDate() != date_parts[0]
		) {
			error = true;
		}
	}
	if (error) {
		alert('Het veld \'' + descr + '\' moet een geldige datum bevatten (dd-mm-jjjj)');
		fld.focus();
		return false;
	}
	return true;
}

function check_date_in_future(fld,fld_toekomst_van,descr) {
	if(check_date(fld,descr)) {
		var error = false;
		var date_parts = fld.value.split('-');
		var objTempDate = new Date(date_parts[2],date_parts[1]-1,date_parts[0]);

		if (fld_toekomst_van == null){
			var objCurrDate = new Date();
		}else{
			var date_parts2 = fld_toekomst_van.value.split('-');
			var objCurrDate = new Date(date_parts2[2],date_parts2[1]-1,date_parts2[0]);
		}

		if(objTempDate >= objCurrDate) {
			return true;
		} else {
			alert('Het veld \'' + descr + '\' moet een geldige, toekomstige datum bevatten (dd-mm-jjjj)');
			fld.focus();
			return false;
		}
	} else {
		return false;
	}
}

function check_date_diff(date1, date2, max_dagen,descr1, descr2) {
	if(check_date(date1) && check_date(date2)) {
		var date_parts1 = date1.value.split('-');
		var date_parts2 = date2.value.split('-');
		var objTempDate1 = new Date(date_parts1[2],date_parts1[1]-1,date_parts1[0]);
		var objTempDate2 = new Date(date_parts2[2],date_parts2[1]-1,date_parts2[0]);

		var eendag = 86400000;
		var verschil = Math.ceil((objTempDate1.getTime()-objTempDate2.getTime())/(eendag));
		
		if (verschil < 0){
			verschil = verschil * -1;
		}
		
		if (verschil > max_dagen){
			alert('Het verschil tussen \'' + (descr1 == null ? date1.name : descr1) + '\' en \'' + (descr2 == null ? date2.name : descr2) + '\' mag niet meer dan ' + max_dagen + ' dagen zijn!');
			return false;
		}
		
		return true;
	}else{
		return false;
	}
}

function check_date_in_past(fld,descr) {
	if(check_date(fld,descr)) {
		var error = false;
		var date_parts = fld.value.split('-');
		var objTempDate = new Date(date_parts[2],date_parts[1]-1,date_parts[0]);
		var objCurrDate = new Date();
		if(objTempDate < objCurrDate) {
			return true;
		} else {
			alert('Het veld \'' + descr + '\' moet een geldige datum in het verleden bevatten (dd-mm-jjjj)');
			fld.focus();
			return false;
		}
	} else {
		return false;
	}
}

function req_radio(fld,descr) {
	for(i = 0; i < fld.length; i++) {
		if(fld[i].checked) {
			return true;
		}
	}
	alert('Het veld \'' + (descr == null ? fld.name : descr) + '\' is verplicht en moet worden ingevuld.');
	fld[0].focus();
	return false;
}

function check_postcode(fld) {
	if(isNaN(parseInt(fld.value)) || parseInt(fld.value) < 1000 || parseInt(fld.value) > 9999) {
		alert('Voer een geldige postcode in.');
		fld.focus();
		return false;
	}
	return true;
}

function check_full_postcode(fld) {
	fld.value = fld.value.toUpperCase();
	var filter  = /^[1-9]{1}[0-9]{3} ?[A-Z]{2}$/;
	if(!filter.test(fld.value)) {
		alert('Vul een geldige postcode in.');
		fld.focus();
		return false;
	} else {
		return true;
	}
}

function check_num(fld,descr,length_from,length_to) {
	var reg = /^\d+$/;
	if(!reg.test(fld.value) || fld.value.length < length_from || fld.value.length > length_to) {
		alert('Het veld \'' + descr + '\' is ongeldig.');
		fld.focus();
		return false;
	}
	return true;
}

function check_integer(fld,descr){
	var reg = /^\d+$/;
	if(!reg.test(fld.value)){
		alert('Het veld \'' + descr + '\' is ongeldig.');
		fld.focus();
		return false;
	}
	return true;
}

extArray = new Array(".jpg", ".png", ".gif");
function LimitAttach(obj) {
	file = obj.value;
	allowSubmit = false;
	if (!file){
		return true;
	}

	while (file.indexOf("\\") != -1){
		file = file.slice(file.indexOf("\\") + 1);
	}

	ext = file.slice(file.indexOf(".")).toLowerCase();
	for (var i = 0; i < extArray.length; i++) {
		if (extArray[i] == ext) {
			allowSubmit = true; break;
		}
	}

	if (allowSubmit) {
		return true;
	}else{
		alert("Alleen de volgende bestanden kunnen worden geupload:  "+ (extArray.join("  ")));
		obj.focus();
		return false;
	}
}

function req_telefoon(fld,descr){
	var filter1a  = /^[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/;
	var filter1b  = /^[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9]$/;
	var filter1c  = /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/;
	
	if(!(filter1a.test(fld.value) || filter1b.test(fld.value) || filter1c.test(fld.value))) {
		alert('Het veld \'' + (descr == null ? fld.name : descr) + '\' moet correct worden ingevuld.');
		fld.focus();
		return false;
	} else {
		return true;
	}
}

function handleHash(frm){
	frm.hash2.value = frm.hash1.value;
}
