$().ready(function() {

	jQuery.validator.addMethod("lettersDigits", function(value, element) {
		return this.optional(element) || ( /^\w+$/i.test(value) && /^[^\_]+$/i.test(value) );
	}, "Please enter letters or digits only"); 
	
	jQuery.validator.addMethod("notEqualTo", function(value, element) {
			return value !== jQuery(param).val();
	}, "Please enter a value different from preceding field");
	
	jQuery.validator.addMethod("login", function (value,element) {
		  return /^[a-zA-Z0-9\.\-@]+$/.test(value);
		}, 'The login contains forbidden characters');

	//Url validation enchanted
	jQuery.validator.addMethod("url",function (value,element) {
		if(value == ''){
			return true;
		}
		
		if(!/^(https?|ftp):\/\/(.?)+$/i.test(value)){
			value = "http://" + value;
		}
		
		return /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
	});
	
	//	Default french method messages
	jQuery.validator.messages = {
		required: "Champ obligatoire.",
		remote: "Veuillez corriger ce champ.",
		email: "Veuillez indiquer une adresse mail valide.",
		url: "Veuillez indiquer une URL valide.",
		date: "Veuillez indiquer une date valide.",
		dateISO: "PVeuillez indiquer une date valide (ISO).",
		dateDE: "Bitte geben Sie ein gültiges Datum ein.",
		number: "Veuillez indiquer un numéro valide.",
		numberDE: "Bitte geben Sie eine Nummer ein.",
		digits: "Seuls les chiffres sont autorisés",
		creditcard: "Veuillez indiquer un numéro valide de la carte bleue.",
		equalTo: "Veuillez ressaisir la même information.",
		accept: "Veuillez indiquer une extension valide.",
		maxlength: jQuery.format("Le contenu ne doit pas excéder {0} caractères."),
		maxLength: jQuery.format("Le contenu ne doit pas excéder {0} caractères."),
		minlength: jQuery.format("Veuillez entrer au minimum {0} caractères."),
		minLength: jQuery.format("Veuillez entrer au minimum {0} caractères."),
		rangelength: jQuery.format("Veuillez indiquer une valeur entre {0} et {1} caractères de longueur."),
		rangeLength: jQuery.format("Veuillez indiquer une valeur entre {0} et {1} caractères de longueur."),
		rangeValue: jQuery.format("Veuillez indiquer une valeur entre {0} et {1}."),
		range: jQuery.format("Veuillez indiquer une valeur entre {0} et {1}."),
		maxValue: jQuery.format("Veuillez indiquer une valeur inférieure ou égale à {0}."),
		max: jQuery.format("Veuillez indiquer une valeur inférieure ou égale à {0}."),
		minValue: jQuery.format("La valeur doit être supérieure ou égale à to {0}."),
		min: jQuery.format("La valeur doit être supérieure ou égale à {0}.")
	};
	//	Custom french method messages
	jQuery.validator.messages.lettersDigits = "Seuls les caractères alphanumériques sont autorisés.";
	jQuery.validator.messages.notEqualTo = "Indiquez une valeur, différente du champ précédent.";
	jQuery.validator.messages.login = "Le pseudo contient des caractères interdits.";

	
	
});