
	
	$(window).load(function(){
									
	// Front End Validation
	if ($.validator) {
		
		$.validator.addMethod("validPhone", function(value, element, param) {
			var country = param;
			
			var phoneNumbers = new Array();
			phoneNumbers[0] = {country:"Nederland",reg:/^\+?\d{10,13}$|^\d{3,4}-?\s?\d{2,3}\s?\d{2,3}\s?\d{2,3}$|^\d{2}-?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/};
			phoneNumbers[1] = {country:"België",reg:/^\+?[0-9]{9,12}$|^\+?\d{1,3}\s?\d{2,3}\s?\d{2,3}\s?\d{2,3}\s?\d{0,3}$/};
			phoneNumbers[2] = {country:"Duitsland",reg:/^\+?[0-9]{10,14}$|^\+?\d{1,3}\s?\d{2,3}\s?\d{2,3}\s?\d{2,3}\s?\d{0,3}$/};
			phoneNumbers[3] = {country:"Frankrijk",reg:/^\+?[0-9]{10,14}$|^\+?\d{1,3}\s?\d{2,3}\s?\d{2,3}\s?\d{2,3}\s?\d{0,3}$/};
			phoneNumbers[4] = {country:"Verenigd Koninkrijk (UK)",reg:/^\+?[0-9]{11,14}$|^\+?\d{1,3}\s?\d{2,3}\s?\d{2,3}\s?\d{2,3}\s?\d{0,3}$/};
			
			var selectedCountry = -1;
			for (var i=0; i<phoneNumbers.length; i++)
			{
				if (country.toLowerCase() == phoneNumbers[i].country.toLowerCase()) {
					selectedCountry = i;
					break;
				}
			}
			if (selectedCountry == -1 )
			{
				return this.optional(element) || true;
			}
			else
			{
				var re = new RegExp(phoneNumbers[selectedCountry].reg);
				return this.optional(element) || re.test(value);
			}
		}, "Het ingevulde telefoonnummer is geen geldig nummer");
		
		$.validator.addMethod("validZipcode", function(value, element, param) {
			var country = param;
			
			var zipcodes = new Array();
			zipcodes[0] = {country:"Nederland",reg:/(^\d{4}\s?[A-Za-z]{2}$)/};
			zipcodes[1] = {country:"België",reg:/(^\d{4}$)/};
			zipcodes[2] = {country:"Duitsland",reg:/(^\d{5}$)/};
			zipcodes[3] = {country:"Frankrijk",reg:/(^\d{5}$)/};
			zipcodes[4] = {country:"Verenigd Koninkrijk (UK)",reg:/(^[A-Za-z]{2}\d{2}\s?\d{1}[A-Za-z]{2}$)/};
			
			var selectedZipcode = -1;
			for (var i=0; i<zipcodes.length; i++)
			{
				if (country.toLowerCase() == zipcodes[i].country.toLowerCase()) {
					selectedZipcode = i;
					break;
				}
			}
			if (selectedZipcode == -1 )
			{
				return this.optional(element) || true;
			}
			else
			{
				var re = new RegExp(zipcodes[selectedZipcode].reg);
				return this.optional(element) || re.test(value);
			}
		}, "Voer een geldige postcode in");

		
		$.validator.setDefaults({
			submitHandler: function(form) {  
				if (!this.beenSubmitted) {
					this.beenSubmitted = true;
					form.submit(); 
				}	 
			}
		}); 
		
		$().ready(function() {
			// validate signup form on keyup and submit
			$("#WebForm").preventDoubleSubmit();
			$("#WebForm").validate({
				rules: {
					eftSalutation: "required",
					eftFirstname: "required",
					eftLastname: "required",
					eftZipcode: {
						validZipcode: function() {return $("#eftCountry").val();},
						required: true
					},
					eftHouseNumber: {
						required: true,
						minlength: 1
						
					},
					//eftUniekeCode : "required",
					eftBedrijf: "required",
					eftUwbericht: "required",
					eftStreet: "required",
					eftCity: "required",
					eftCountry: "required",
					eftEmail: {
						required: true,
						email: true
					},
					eftTelephonenumber: { 
						validPhone: function() {return $("#eftCountry").val();},
						required: true
					}
					
				},
				messages: {
					eftSalutation: "Kies uw aanhef in",
					eftFirstname: "Voer uw voorna(a)m(en) in",
					eftLastname: "Voer uw achternaam in",
					eftZipcode: {
						required: "Voer een postcode in"
					},
					//eftUniekeCode: "Voer een unieke code in",
					eftBedrijf: "Voer een bedrijfsnaam of groepsnaam in",
					eftUwbericht: "Voer een bericht in",
					eftHouseNumber: "Voer een huisnummer in",
					eftStreet: "Voer een straatnaam in",
					eftCity: "Voer een woonplaats in",
					eftEmail: {
						email: "Voer een geldig e-mailadres in",
						required: "Voer een geldig e-mailadres in"
					},
					eftCountry: "Kies een land",
					eftTelephonenumber: {
						required: "Voer een telefoonnummer in"
					}
				}
			});
		});
	}
});

