var cf_validation=
{
	test_js: function() {
			alert("Hey! IT works!");
			return false;
	},
		
		validate_text_required: function(field,alerttxt)
	{
		with (field)
		{
		  if (value==null||value==""||value.length < 1)
		  {
		  	alert(alerttxt);return false;
		  }
		  else
		  {
		  	return true;
		  }
		}
	},
	
	validate_text_maxlength: function(field, field_length, alerttxt)
	{
		with (field)
		{
		  if (value.length > field_length )
		  {
		  	alert(alerttxt);return false;
		  }
		  else
		  {
		  	return true;
		  }
		}
	},

	validate_listvalue_required: function(field,alerttxt)
	{
		with (field)
		{
		  if (selectedIndex <= 0 )
		  {
			alert(alerttxt);return false;
		  }
		  else
		  {
		  	return true;
		  }
		}
	},

	validate_email: function(field,alerttxt)
	{
		with (field)
		{
			var apos=value.indexOf("@");
			var dotpos=value.lastIndexOf(".");
			if (apos<1||dotpos-apos<2)
			{
				alert(alerttxt);
				return false;
			}
			else
			{
				return true;
			}
		}
	},

	validate_date: function(dag, maand, jaar)
	{
		var strdag = dag.options[dag.selectedIndex].text;
		var strmaand = maand.options[maand.selectedIndex].text;
		var strjaar = jaar.options[jaar.selectedIndex].text;
	
		if (strdag.charAt(0) == "0")
		{
			strdag = strdag.substring(1);
		}
	
		var nrdag = parseInt(strdag);
	
		var nrjaar = parseInt(strjaar);
	
		if ((strmaand == "April" || strmaand == "Juni" || strmaand== "September"  || strmaand== "November" ) && nrdag == 31 )
			{
				alert("Ongeldige datum: " + strmaand + " heeft slechts 30 dagen!");
				return false;
			}
		else if (strmaand == "Februari" && nrjaar % 4 == 0 && nrdag > 29 )
		{
			alert("Ongeldige datum: " + strmaand + " " + strjaar + " heeft slechts 29 dagen!");
			return false;
		}
		else if (strmaand == "Februari" && nrjaar % 4 != 0 && nrdag > 28 )
		{
			alert("Ongeldige datum: " + strmaand + " " + strjaar + " heeft slechts 28 dagen!");
			return false;
		}
		else
		{
			return true;
		}
	},
	
	validate_beveiligingscode: function(bvcode, bvcodecheck, alertstring) 
	{
		var returnParam = (bvcode.value == bvcodecheck.value);
		if (returnParam == false)
		{
			alert(alertstring);
			var vchecknr = Math.floor(Math.random()*89998)+10001;
			var stringvchecknr=eval("\""+vchecknr+"\"");
			var vstartpos = Math.floor(Math.random()*24)+1;
			var vbvcode = hex_md5(stringvchecknr);
			var substrbvcode= vbvcode.substr(vstartpos,5);
			//alert ("vchecknr: "+vchecknr+"; vstartpos: "+vstartpos+"; vbvcode: "+vbvcode+"; subbvcode: "+subbvcode);
			//check=eval("["+getNewSecurityCode()+"]");
			document.getElementById("beveiligingscode").innerHTML=substrbvcode; // display nieuwe code
			document.getElementById("bvcode").value=""; // display nieuwe code
			document.getElementById("bvcodecheck").value=substrbvcode; // set new check value
			document.getElementById("checknr").value=vchecknr; // checknr
			document.getElementById("startpos").value=vstartpos; // posnr
		}
		return returnParam;
	},

	validate_startlicentie: function(startlic, klasse) 
	{

		var answer;
	
	
		if ((startlic == null || startlic ==""|| startlic.length < 1) && (klasse != "Optimist-C"))
		{
	  		answer=confirm("Voor deelname in de klasse '" + klasse + "' heb je een startlicentie nodig.\n\nDruk op Cancel om je startlicentie alsnog in te vullen.\n\nHeb je nog geen startlicentie? Druk dan nu op OK om door te gaan en zorg dat je je startlicentie kunt tonen bij aanvang van het evenement. \n\nEen startlicentie vraag je aan bij het Watersportverbond. Lukt dat niet meer voor aanvang van de wedstrijd waaraan jij deelneemt, dan ligt een aanvraagformulier voor een startlicentie voor je klaar bij het inschrijfbureau.");
	  		if (!answer)
	  	  	{
	  			return false;
	  		}
		}
	
	},
	
	
	validate_klasse_prerequisite: function (klasse) 
	{
		if (klasse.options.length == 1)
		{
			var vForm = klasse.form;
			
			if (cf_validation.validate_listvalue_required(vForm.regio,"Kies eerst een regio!")==false)
			{
				regio.focus();
				return false;
			}
		}
	},
	

	validate_score_prerequisite: function (score) 
	{
		if (score.options.length == 1) 
		{
			var vForm = score.form;
			
			if (cf_validation.validate_listvalue_required(vForm.regio,"Kies eerst een regio!")==false)
			{
				regio.focus();
				return false;
			}
			if (cf_validation.validate_listvalue_required(vForm.klasse,"Kies eerst een klasse!")==false)
			{
				klasse.focus();
				return false;
			}
		}
	},

	contact_formulier_validator: function(thisForm)
	{
		with (thisForm)
			
		{
			
			if (cf_validation.validate_text_required(naam,"Naam is een verplicht veld!")==false)
			  {naam.focus();return false;}
			
			if (cf_validation.validate_text_required(emailadres,"Emailadres is een verplicht veld!")==false)
			  {emailadres.focus();return false;}
	
			if (cf_validation.validate_email(emailadres,"Vul een geldig email adres in!")==false)
			  {emailadres.focus();return false;}
	
			if (cf_validation.validate_text_required(vraag,"Geen vraag of opmerking ingevuld!")==false)
			  {vraag.focus();return false;}
	
			if (cf_validation.validate_beveiligingscode(bvcode,bvcodecheck,"Onjuiste veiligheidscode ingevoerd!")==false)
			{
				bvcode.focus();
				return false;
			}
			
			var params="naam="+naam.value;
			params += "&emailadres="+emailadres.value;
			params +="&vraag="+vraag.value;
			//params +="&checknr="+checknr.value;
			//params +="&startpos="+startpos.value;
			//params +="&bvcode="+bvcode.value;
	
			return(cf_showContent.show_contactformulier_result(params));
			
		}
	},
	
	form_validator: function(thisForm)
	{
		with (thisForm)
		{
			/*
			if (!Wedstrijd01.checked && !Wedstrijd02.checked && !Wedstrijd03.checked && !Wedstrijd04.checked)
				{alert("Kies één of meer wedstrijden!");Wedstrijd04.focus();return false;}
			*/
		
			if (cf_validation.validate_text_required(voornaam,"Voornaam is een verplicht veld!")==false)
			  {voornaam.focus();return false;}
		
			if (cf_validation.validate_text_maxlength(voornaam,40,"Voornaam mag maximaal 40 tekens lang zijn!")==false)
			  {voornaam.focus();return false;}
		
			if (cf_validation.validate_text_required(achternaam,"Achternaam is een verplicht veld!")==false)
			  {achternaam.focus();return false;}
		
			if (cf_validation.validate_text_maxlength(achternaam,40,"Achternaam mag maximaal 40 tekens lang zijn!")==false)
			  {achternaam.focus();return false;}
		
			if (cf_validation.validate_listvalue_required(regio,"Combi Regio is een verplicht veld!")==false)
			  {regio.focus();return false;}
		
			if (cf_validation.validate_listvalue_required(klasse,"Klasse is een verplicht veld!")==false)
			  {klasse.focus();return false;}
		
			if (cf_validation.validate_listvalue_required(score,"Behaalde plaats is een verplicht veld!")==false)
			  {score.focus();return false;}
		
			if (cf_validation.validate_listvalue_required(nationaliteit,"Nationaliteit is een verplicht veld!")==false)
			  {nationaliteit.focus();return false;}
		
			if (cf_validation.validate_text_required(zeilnummer,"Zeilnummer is een verplicht veld!")==false)
			  {zeilnummer.focus();return false;}
		
			if (cf_validation.validate_text_required(vereniging,"Vul de naam van je vereniging in!")==false)
			  {vereniging.focus();return false;}
			
			if (cf_validation.validate_listvalue_required(geboortedag,"Geboortedag is een verplicht veld!")==false)
			  {geboortedag.focus();return false;}
		
			if (cf_validation.validate_listvalue_required(geboortemaand,"Geboortemaand is een verplicht veld!")==false)
			  {geboortemaand.focus();return false;}
		
			if (cf_validation.validate_listvalue_required(geboortejaar,"Geboortejaar is een verplicht veld!")==false)
			  {geboortejaar.focus();return false;}
		
			if (cf_validation.validate_date(geboortedag, geboortemaand, geboortejaar)==false)
			  {geboortedag.focus(); return false;}
		
			if (cf_validation.validate_listvalue_required(geslacht,"Geslacht is een verplicht veld!")==false)
			  {return false;}
		
		
			if (cf_validation.validate_text_required(adres,"Straat & huisnummer is een verplicht veld!")==false)
			  {adres.focus();return false;}
		
			if (cf_validation.validate_text_maxlength(adres,45,"Straat & huisnummer mag maximaal 40 tekens lang zijn!")==false)
			  {adres.focus();return false;}
		
			if (cf_validation.validate_text_required(postcode,"Postcode is een verplicht veld!")==false)
			  {postcode.focus();return false;}
		
			if (cf_validation.validate_text_maxlength(postcode,20,"Postcode mag maximaal 7 tekens lang zijn!")==false)
			  {postcode.focus();return false;}
		
			if (cf_validation.validate_text_required(plaats,"Woonplaats is een verplicht veld!")==false)
			  {plaats.focus();return false;}
		
			if (cf_validation.validate_text_maxlength(plaats,32,"Plaats mag maximaal 32 tekens lang zijn!")==false)
			  {plaats.focus();return false;}
		
			if (cf_validation.validate_text_required(emailadres,"Emailadres is een verplicht veld!")==false)
			  {emailadres.focus();return false;}
		
			if (cf_validation.validate_email(emailadres,"Vul een geldig email adres in!")==false)
			  {emailadres.focus();return false;}
			
			
		
			if (cf_validation.validate_beveiligingscode(bvcode,bvcodecheck,"Onjuiste veiligheidscode ingevoerd!")==false)
			{
				bvcode.focus();
				return false;
			}
			
			if (cf_validation.validate_startlicentie(startlicentie.value, klasse.options[klasse.selectedIndex].text)==false)
			{startlicentie.focus();return false;}
		

			var params="inschrijfformulier="+inschrijfformulier.value;
			params +="&voornaam="+voornaam.value;
			params +="&achternaam="+achternaam.value;
			params +="&tussenvoegsel="+tussenvoegsel.value;
			params +="&geboortedag="+geboortedag.value;
			params +="&geboortemaand="+geboortemaand.value;
			params +="&geboortejaar="+geboortejaar.value;
			params +="&geslacht="+geslacht.value;
			params +="&adres="+adres.value;
			params +="&postcode="+postcode.value;
			params +="&plaats="+plaats.value;
			params +="&telefoon="+telefoon.value;
			params += "&emailadres="+emailadres.value;
			params +="&vereniging="+vereniging.value;
			params +="&regio="+regio.value;
			params +="&klasse="+klasse.value;
			params +="&score="+score.value;
			params +="&nationaliteit="+nationaliteit.value;
			params +="&zeilnummer="+zeilnummer.value;
			params +="&startlicentie="+startlicentie.value;
			params +="&bemanning="+bemanning.value;
			//params +="&checknr="+checknr.value;
			//params +="&startpos="+startpos.value;
			//params +="&bvcode="+bvcode.value;
			
			return(cf_showContent.show_inschrijfformulier_result(params));
		}
	},
	

	toeschouwersboot_formulier_validator: function(thisForm)

	{
	with (thisForm)
		{
			
		if (cf_validation.validate_text_required(naam,"Naam is een verplicht veld!")==false)
		  {naam.focus();return false;}

		if (cf_validation.validate_text_required(emailadres,"Emailadres is een verplicht veld!")==false)
		  {emailadres.focus();return false;}

		if (cf_validation.validate_email(emailadres,"Vul een geldig email adres in!")==false)
		  {emailadres.focus();return false;}

		if (cf_validation.validate_text_required(telefoon,"Mobiele telefoon is een verplicht veld!")==false)
		  {telefoon.focus();return false;}


		if (cf_validation.validate_listvalue_required(tijdstip,"Tijdstip is een verplicht veld!")==false)
		  {tijdstip.focus();return false;}
		
		if (cf_validation.validate_text_required(aantalpersonen,"Aantal personen is een verplicht veld!")==false)
		  {aantalpersonen.focus();return false;}
		
		if (cf_validation.validate_beveiligingscode(bvcode,bvcodecheck,"Onjuiste beveiligingscode ingevoerd!")==false)
		{
			bvcode.focus();
			return false;
		}

		var params="naam="+naam.value;
		params=params+"&emailadres="+emailadres.value;
		params=params+"&telefoon="+telefoon.value;
		params=params+"&tijdstip="+tijdstip.options[tijdstip.selectedIndex].index;
		params=params+"&aantalpersonen="+aantalpersonen.value;
		params=params+"&vraag="+vraag.value;
		//alert(params);
		//return false;
		//return (cf_validation.show_toeschouwersboot_formulier_result(params));
		var url;
		
		document.getElementById("page").innerHTML="";
		/*  return false;
		  }
		*/
		var requester = XHttpRequest.exec();
		if (!(requester == null)) {
			url= "toeschouwersboot_formulier_afhandeling.php";
			
			requester.open("POST",url,false);
			requester.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			requester.setRequestHeader("Content-length", params.length);
			requester.setRequestHeader("Connection", "close");
			requester.send(params);
			document.getElementById("page").innerHTML=requester.responseText;
			
		}
		return false; 

		
		
	    }
		
		
	}
}
;
