$(document).ready(function()
{

	$('input[name=telefoonnummer]').keypress(function()
	{
		this.value = this.value.replace(/[^(\d|\s|\-)]/g, '');
	});
});


function validateInformatieAanvraag(){
	var meer_informatie = document.forms["meer_informatie"]

	if (meer_informatie.naam.value==""){
		alert("U heeft geen naam ingevoerd.");
		meer_informatie.naam.focus();
		return false;
	}

	else if (meer_informatie.email.value==""){
		alert("U heeft geen geldig e-mail adres ingevoerd.");
		meer_informatie.email.focus();
		return false;
	}
	else if (meer_informatie.telefoonnummer.value.replace(/[^(\d|\s|\-)]/g, '').length < 10)
	{
		alert("U heeft een ongeldig telefoon nummer opgegeven.");
		meer_informatie.email.focus();
		return false;
	}
	else if (meer_informatie.recaptiaCheck.value != 1)
	{
		$.post(
			'/php/recaptiaCheck.php',
			{
				challenge: Recaptcha.get_challenge(),
				response:  Recaptcha.get_response()
			},
			function(sResult)
			{
				if (sResult === "1")
				{
					meer_informatie.recaptiaCheck.value = 1;
					meer_informatie.submit();
				}
				else
				{
					alert(sResult);
					Recaptcha.reload();
				}
			}
		);
		return false;
	}
	
	else 
	{
		return true;
	}
}


// functie die afhankelijk van de returnwaarde van checkField (true/false) het juiste icoontje achter het invoerveld laat zien
function checkElement(theElement,elementType)
{
	/* Mobiel nummer check */
	if (elementType.indexOf('mobiel') > -1){	return true;}

	if (checkField(theElement,elementType)){
		document.getElementById("check_"+theElement).src = "/img/element_verplicht_ok.png";
	}
	
	else {
		document.getElementById("check_"+theElement).src = "/img/element_verplicht.png";
	}
}

// functie die, afhankelijk van 'elementType', kijkt of de invoer bij 'theElement' juist is.
function checkField(theElement,elementType){
	
	var aanmelden = document.forms["aanmelden"];
	
	if (!eval("aanmelden." + theElement))  {return true;} // als een element niet voorkomt, skip het dan (return true)	
	if (elementType.indexOf('mobiel') > -1){	return false;}

	switch(elementType){
		case "select":
			if (eval("aanmelden."+theElement+".selectedIndex")>0){return true;}
			else {return false;}
		break;
		case "checkbox":
			if (eval("aanmelden."+theElement+".checked")){return true;}
			else {return false;}
		break;
		case "email":
			if (checkEmail(eval("aanmelden."+theElement+".value"))){return true;}
			else {return false;}
		break;
		case "telefoon":
			if (checkTelefoon(eval("aanmelden."+theElement+".value"))){return true;}
			else {return false;}
		break;
		case "postcode":
			if (checkPostcode(eval("aanmelden."+theElement+".value"))){return true;}
			else {return false;}
		break;
		default:
			if (eval("aanmelden."+theElement+".value")!=""){return true;}
			else {return false;}
		break;
	}
}


// subfunctie om te kijken of het email adres valide is
function checkEmail(theValue){
	testEmail = new RegExp('^[\._a-z0-9-]+@[\.a-z0-9-]+[\.]{1}[a-z]{2,4}$','gi');
	if (testEmail.test(theValue)){return true;}
	else {return false;}
}
// subfunctie om te kijken of het telefoonnummer valide is (minimaal 10 getallen, streepjes of spaties)
function checkTelefoon(theValue){
	testTelefoon = new RegExp('[\-\ 0-9]{10,}','gi');
	if (testTelefoon.test(theValue)){return true;}
	else {return false;}
}
// subfunctie om te kijken of de postcode valide is
function checkPostcode(theValue){
	testPostcode = new RegExp('[1-9][0-9]{3} ?[a-z]{2}','i');
	if (testPostcode.test(theValue)){return true;}
	else {return false;}
}


/*
functie die wordt gebruik voor de onsubmit op het aanmeldformulier
reqFormElements is een array met de formulier elementen die moeten worden gechecked
reqFormElementsType is het type element
reqFormElementsAlerts is de melding die de gebruiker te zien krijgt bij foutieve invoer
*/
function trainingAanmelden(){
	var aanmelden = document.forms["aanmelden"]

	var reqFormElements       = new Array('rooster','uag_naam','uag_email','uag_telefoon','uag_adres','uag_postcode','uag_woonplaats','alg_vwd');
	var reqFormElementsType   = new Array('select','','email','telefoon','','postcode','','checkbox');
	var reqFormElementsAlerts = new Array();
	reqFormElementsAlerts[0]  = "U dient een datum uit het rooster te kiezen";
	reqFormElementsAlerts[1]  = "U dient uw naam in te vullen";
	reqFormElementsAlerts[2]  = "U dient uw email-adres in te vullen";
	reqFormElementsAlerts[3]  = "U dient uw telefoonnummer in te vullen";
	reqFormElementsAlerts[4]  = "U dient uw adres in te vullen";
	reqFormElementsAlerts[5]  = "U dient uw postcode in te vullen";
	reqFormElementsAlerts[6]  = "U dient uw woonplaats in te vullen";
	reqFormElementsAlerts[7]  = "U dient akkoord te gaan met de\nalgemene voorwaarden van TrainingPlaza";

	for (i=0;i<reqFormElements.length;i++)
	{				
		if (!checkField(reqFormElements[i],reqFormElementsType[i])){
			alert(reqFormElementsAlerts[i]);
			eval("aanmelden."+reqFormElements[i]+".focus()");
			return false;
		}

	}

	return true;
}
