$(document).ready(function(){
	validateDetailForms('stap1');
});

// Enter formID as Parameter to validate
function validateDetailForms(p_sForm) {

	var iconOK = {
		'background-position' : '0 -22px'
	}
	var iconError = {
		'background-position' : '0 0'
	};

	var aMessage = new Array();
	aMessage[0] = 'Vul uw voorletters in.';
	aMessage[1] = 'Vul uw achternaam in.';
	aMessage[2] = 'Vul uw naam in.';
	aMessage[3] = 'Vul uw adres in.';
	aMessage[4] = 'Vul een geldig adres in.';
	aMessage[5] = 'Vul uw postcode in.';
	aMessage[6] = 'Vul een geldige postcode in.';
	aMessage[7] = 'Vul uw woonplaats in.';
	aMessage[8] = 'Vul een geldige woonplaats in.';
	aMessage[9] = 'Vul uw e-mailadres in.';
	aMessage[10] = 'Vul een geldig e-mailadres in.';
	aMessage[11] = 'Vul uw telefoonnummer in.';
	aMessage[12] = 'Vul een geldig telefoonnummer in.';
	aMessage[13] = 'Vul uw vraag in.';
	aMessage[14] = 'Vul uw bericht in.';
	aMessage[15] = 'Vul de naam van de bekende in.';
	aMessage[16] = 'Vul het e-mailadres van de bekende in.';
	aMessage[17] = 'Vul het onderwerp in.';
	aMessage[19] = 'De e-mailadressen komen niet overeen';
	aMessage[20] = 'Vul een wachtwoord in';
	aMessage[21] = 'De wachtwoorden komen niet overeen';
	aMessage[22] = 'Vul onderwerp in';

	$.validator.addMethod("postcode", function(postcode, element) {
		postcode = postcode.replace(/\s+/g, ""); 
		return this.optional(element) ||
			postcode.match(/^[1-9]{1}[0-9]{3}[ ]?[a-z]{2}/i);
	}, "Vul a.u.b. een geldige postcode in.");
	
	$.validator.addMethod("telefoon", function(phone_number, element) {
    	phone_number = phone_number.replace(/\s+/g, ""); 
		return this.optional(element) || phone_number.length > 9 &&
			phone_number.match(/^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$/);
	}, "Vul a.u.b. een geldig telefoonnummer in.");
	
	$.validator.addMethod("geennummers", function(geennummers, element) {
		   var reg = /[0-9]/;
		   return this.optional(element) || !geennummers.match(reg);
	}, "Getallen zijn niet toegestaan.");
	
	$.validator.addMethod("lettersnummer", function(lettersnummer, element) {
		   var reg = /([a-z]+)/;
		   var reg2 = /([0-9]+)/;
		   return this.optional(element) || (lettersnummer.match(reg) && lettersnummer.match(reg2));
	}, "In dit veld moeten letters en getallen voorkomen.");
	
	$('#'+p_sForm).validate({
		rules: {
			sNaam: {
				required: true,
				geennummers: true
			},
			sEmail: {
				required: true,
				email: true
			},
			sAdres: {
				required: true,
				lettersnummer: true
			},
			sPostcode: {
				required: true,
				postcode: true
			},
			sWoonplaats: {
				required: true,
				geennummers: true
			},
			sTelefoon: {
				required: true,
				telefoon: true
			}
		},
		messages: {
			sNaam: {
				required: aMessage[2]
			},
			sEmail: {
				required: aMessage[9],
				email: aMessage[10]
			},
			sNaam_aflever: {
				required: aMessage[2]
			},
			sAdres: {
				required: aMessage[3],
				lettersnummer: aMessage[4]
			},
			sAdres_aflever: {
				required: aMessage[3],
				lettersnummer: aMessage[4]
			},
			sPostcode: {
				required: aMessage[5],
				postcode: aMessage[6]
			},
			sPostcode_aflever: {
				required: aMessage[5],
				postcode: aMessage[6]
			},
			sWoonplaats: {
				required: aMessage[7]
			},
			sWoonplaats_aflever: {
				required: aMessage[7]
			},
			sTelefoon: {
				required: aMessage[11],
				telefoon: aMessage[12]
			},
			sTelefoon_aflever: {
				required: aMessage[11],
				telefoon: aMessage[12]
			}
		},
		errorPlacement: function(error, element) {
			error.insertAfter(element.parent().next('span.icon'));
			element.parent().next('span.icon').css(iconError);
		},
		success: function(label) {
			label.prev('span.icon').css(iconOK);
			label.remove();
		},
		submitHandler: function(form) {
				
			form.submit();
			
		}
	});	
}
