jQuery().ready(function() {

	jQuery.validator.addMethod("zip", function(value, element) {
                        return this.optional(element) || value.match(/^((\d{5}-\d{4})|(\d{5})|([a-z]\d[a-z]\s?\d[a-z]\d))$/i);
                }, "US or Canadian postal code only") 
	

	
	// Téléphone
	$.validator.addMethod("phoneNumberRequired", $.validator.methods.required, "Le numéro de téléphone n'est pas valide. Le format accepté est 000 000 0000.");
	$.validator.addMethod("phoneNumberMinlength", $.validator.methods.minlength, "Le numéro de téléphone n'est pas valide. Le format accepté est 000 000 0000.");
	$.validator.addMethod("phoneNumberMaxlength", $.validator.methods.maxlength, "Le numéro de téléphone n'est pas valide. Le format accepté est 000 000 0000.");
	$.validator.addMethod("phoneNumberDigits", $.validator.methods.digits, "Le numéro de téléphone n'est pas valide. Le format accepté est 000 000 0000.");
	
	$.validator.addClassRules({
		requiredPhoneNumber1: {phoneNumberRequired:true, phoneNumberDigits:true, phoneNumberMinlength:3, phoneNumberMaxlength:3},
		requiredPhoneNumber2: {phoneNumberRequired:true, phoneNumberDigits:true, phoneNumberMinlength:3, phoneNumberMaxlength:3},
		requiredPhoneNumber3: {phoneNumberRequired:true, phoneNumberDigits:true, phoneNumberMinlength:4, phoneNumberMaxlength:4}
	});
	
	
	// Configuration de la validation
	$("#postalForm").validate({
		
		showErrors: function(errorMap, errorList) {
			this.defaultShowErrors();
		},
		
		// Conteneur de la liste d'erreurs
		errorLabelContainer: "#errorsBox ul",
		
		rules: {	

			codepostal: {
				required: true,
				zip: true
			}
			
		},
		
		messages: {
			codepostal: {
				required: "Votre code postal est requis.",
				zip: "Votre code postal n'est pas valide."
			}
			
		}
		
	});

});
