/**
 * functions that validate the form fields. Called from the keyup or change events
 * 
 * return true of false
 * 
 */
function valid8Form() {
    var isValidForm = true;

    isValidForm = valid8Achternaam();
    isValidForm = valid8Geslacht() && isValidForm;
    isValidForm = valid8Email() && isValidForm;
    isValidForm = valid8Voorwaarden() && isValidForm;

    return isValidForm;
}

function valid8VoorLetters(){
	var val = $("#txtVoorLetters").val();
	val = trim(val);
	$("#txtVoorLetters").val(val);
	var good=true;
	if(val==""){
		good=false;
	}
	if(good){
		$("#fouttxtVoorLetters").addClass("hidden");
	} else {
		$("#fouttxtVoorLetters").removeClass("hidden");
	}
	return good;
}
function valid8Achternaam(){
	var val = $("#txtAchternaam").val();
	val = trim(val);
	$("#txtAchternaam").val(val);
	var good=true;
	if(val==""){
		good=false;
	}
	if(good){
		$("#fouttxtAchternaam").addClass("hidden");
	} else {
		$("#fouttxtAchternaam").removeClass("hidden");
	}
	return good;
}
function valid8Adres(){
	var val = $("#txtAdres").val();
	val = trim(val);
	$("#txtAdres").val(val);
	var good=true;
	if(val==""){
		good=false;
	}
	if(good){
		$("#fouttxtAdres").addClass("hidden");
	} else {
		$("#fouttxtAdres").removeClass("hidden");
	}
	return good;
}
function valid8Woonplaats(){
	var val = $("#txtWoonplaats").val();
	val = trim(val);
	$("#txtWoonplaats").val(val);
	var good=true;
	if(val==""){
		good=false;
	}
	if(good){
		$("#fouttxtWoonplaats").addClass("hidden");
	} else {
		$("#fouttxtWoonplaats").removeClass("hidden");
	}
	return good;
}
function valid8Telefoon1(){
	var val = $("#txtTelefoon1").val();
	val = val.replace(/[^0-9]/g,"");
	
	val = trim(val);
	$("#txtTelefoon1").val(val);
	var good=true;
	if(val==""){
		good=false;
	}
	
	if(good){
		$("#fouttxtTelefoon1").addClass("hidden");
	} else {
		$("#fouttxtTelefoon1").removeClass("hidden");
	}
	return good;
}
function valid8Geboortedatum(){
	var val = $("#txtGeboortedatum").val();
	var good=true;
	
	var datum = stringToDate(val);
	
	var day = val.substring(0, val.indexOf("/"));
	var month = val.substring(val.indexOf("/")+1, val.lastIndexOf("/"));
	var year = val.substr(val.lastIndexOf("/")+1);
	
	if(datum=="Invalid Date"){
		good=false;
	}
	
	if(datum==""){
		good=false;
	}
	if(good){
		if(day!=datum.getDate()){
			good=false;
		}
	}	
	if(good){
		if(month!=datum.getMonth()+1){
			good=false;
		}
		
		
	
	}
			
	if(good){
		if(year!=datum.getFullYear()){
			good=false;
		}
	}

	if(good){
		$("#fouttxtGeboortedatum").addClass("hidden");
	} else {
		$("#fouttxtGeboortedatum").removeClass("hidden");
	}
	return good;
}
function valid8BSN(){
	var val = $("#txtBSN").val();
	
	
	val = trim(val);
	$("#txtBSN").val(val);
	var good=true;
	if(val==""){
		good=false;
	}
	
	if(good){
		$("#fouttxtBSN").addClass("hidden");
	} else {
		$("#fouttxtBSN").removeClass("hidden");
	}
	return good;
}
function valid8Email(){
	var val = $("#txtEmail").val();
	val = isValidEmailAddress(val);
	
	var good=val;
	
	if(good){
		$("#fouttxtEmail").addClass("hidden");
	} else {
		$("#fouttxtEmail").removeClass("hidden");
	}
	return good;
}
function isValidEmailAddress(emailAddress) {
	
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	
	return pattern.test(emailAddress);
	
}
function valid8Beroep(){

	var val = $("#txtBeroep").val();
	
	
	val = trim(val);
	$("#txtBeroep").val(val);
	var good=true;
	if(val==""){
		good=false;
	}
	
	if(good){
		$("#fouttxtBeroep").addClass("hidden");
	} else {
		$("#fouttxtBeroep").removeClass("hidden");
	}
	return good;
}
function valid8Voorwaarden(){
	var checked = $("#accord").attr("checked");
	if(checked){
		$("#foutVoorwaarden").addClass("hidden");
	} else {
		$("#foutVoorwaarden").removeClass("hidden");
	}
	
	return checked;
}
function valid8Geslacht(){
	var val = $("input[name=geslacht]:checked").val();
	var good=true;
	if(val==undefined){
		good=false;
	}
	if(good){
		$("#foutchkGeslacht").addClass("hidden");
	} else {
		$("#foutchkGeslacht").removeClass("hidden");
	}
	
	return good;
}
function valid8Wwik(){
	var val = $("input[name=wwik]:checked").val();
	var good=true;
	if(val==undefined){
		good=false;
	}
	if(good){
		$("#foutchkWWIK").addClass("hidden");
	} else {
		$("#foutchkWWIK").removeClass("hidden");
	}
	
	return good;
}
function valid8Eerder(){
	var val = $("input[name=eerder]:checked").val();
	var good=true;
	if(val==undefined){
		good=false;
	}
	if(good){
		$("#foutchkEerder").addClass("hidden");
	} else {
		$("#foutchkEerder").removeClass("hidden");
	}
	
	return good;
}
function trim(str){
	while(str.charAt(0)==" "){
		str = str.substr(1);
	}
	
	return str;
}
function stringToDate(string){
	//receives a String and returns a Date or "Invalid Date" or empty

	var newdate="";
	
	if((string!="")&&(string!="dd/mm/jjjj")){
		var delimiter = "/";
		var year = string.substr(string.lastIndexOf(delimiter)+1);
		var month = string.substring(string.indexOf(delimiter)+1, string.lastIndexOf(delimiter));
		var day = string.substring(0, string.indexOf(delimiter));

		month=(month*1)-1;
		
		newdate = new Date(year, month, day);
		if((newdate.getDate()!=day)||(newdate.getMonth()!=month)||(newdate.getFullYear()!=year)){
			newdate="Invalid Date";
		}
		
		
	}
	else
	{
		newdate="";
	}
	return newdate;
			
}
