var idtgv_validate = function(elt){
	jQuery.validator.addMethod("checkNickname", function(value, element, params) {
		var valid = 0;
		
		jQuery.ajax({
			async: false,
			url: "03_formulaire_2_ajax.php",
			type: "post",
			dataType: "json",
			data: "nickname=" + value,
			success: function(response){
				switch(response.result){
					case 0:
						valid = 0;
						break;
					case 1:
						valid = 1;
						break;
					case 2:
						valid = 2;
						break;
				}
			}
		});
		
		switch(valid){
			case 0:
				return true;
				break;
			case 1:
				jQuery("#nickname").rules("add", {
					messages: {
						checkNickname: "Le pseudo est dÃ©jÃ  utilisÃ© !"
					}
				});
				return false;
				break;
			case 2:
				jQuery("#nickname").rules("add", {
					messages: {
						checkNickname: "Votre pseudo contient des caractÃ¨res invalides !"
					}
				});
				return false;
				break;
		}
		
		return false;
	}, "");
	
	var validator = jQuery(elt).validate({
		rules: {
			nickname: {
				required: true,
				minlength: 6,
				maxlength: 12,
				checkNickname: true
			},
			password: {
				required: true,
				minlength: 7,
				maxlength: 12
			},
			password2: {
				required: true,
				equalTo: "#password"
			},
			last_name: {
				required: true,
				maxlength: 100
			},
			first_name: {
				required: true,
				maxlength: 100
			},
			zipcode: {
				digits: true
			},              
			email: {
				required: true,
				email: true
			}
		},
		messages: {
			nickname: {
				required: "Ce champ est obligatoire",
				minlength: "Votre pseudo doit contenir au moins 6 caractÃ¨res",
				maxlength: "Votre pseudo ne peut contenir plus de 12 caractÃ¨res"
			},
			password: {
				required: "Ce champ est obligatoire",
				minlength: "Votre mot de passe doit contenir au moins 7 caractÃ¨res",
				maxlength: "Votre mot de passe ne peut contenir plus de 12 caractÃ¨res"
			},
			password2: {
				required: "Ce champ est obligatoire",
				equalTo:  "La confirmation de votre mot de passe doit Ãªtre la mÃªme que le mot de passe prÃ©cÃ©demment entrÃ©"
			},
			last_name: {
				required: "Ce champ est obligatoire",
				maxlength: "Votre nom ne peut contenir plus de 100 caractÃ¨res"
			},
			first_name: {
				required: "Ce champ est obligatoire",
				maxlength: "Votre prÃ©nom ne peut contenir plus de 100 caractÃ¨res"
			},
			zipcode: {
				digits: "Votre code postal n'est pas valide"
			},
			email: {
				required: "Ce champ est obligatoire",
				email: "Format non valide"
			}
		},
		highlight: function(element, errorClass) {
			jQuery(element).addClass("msgError");
			jQuery(element.form).find("label[for=" + element.id + "]").addClass("msgError");
		},
		unhighlight: function(element, errorClass) {
			jQuery(element).removeClass("msgError");
			jQuery(element.form).find("label[for=" + element.id + "]").removeClass("msgError");
		},
		focusCleanup: true,
		focusInvalid: false
	});
};
