

$().ready(function() {
	// validate signup form on keyup and submit
	$("#ask_login_form,#send_message_form").validate({
		rules: {
			codeAct:{
				required:true
			},
			raisonSociale1:{
				required:true
			},
			numeroVoie:{
				numeroVoie:true
			},
			
			localite:{
				required:true
			},
			codePays:{
				required:true
			},
			telephone:{
				required:true,
				telephoneFr:true
			},
			fax:{
				telephoneFr:true
			},
			emailEntrep:{
				required:true,
				email:true
			},
			siteInternet:{
				siteInternet:true
			},
			siret:{
				siretFr:true
			},
			naf:{
				codeNaf:true
			},
			userId:{
				digits:true,
				glnFr:true
			},
			numTva:{
				tvaIntraRequired2:true,
				tvaIntra2:true
			},
			civilite:{
				required:true
			},
			nom:{
				required:true,
				letters:true
			},
			prenom:{
				required:true,
				letters:true
			},
			fonction:{
				required:true,
				letters:true
			},
			emailPro:{
				required:true,
				email:true
			},
			codeQuest:{
				required:true
			},
			reponseConf:{
				required:true
			},
			adressePrinc:{
				adresse:true
			},
			adresseCompl:{
				adresse2:true
			},
			adresseSec:{
				adresse2:true
			},
			codePostal:{
				requiredFr:true,
				codePostalFr:true								
			}
		},
		errorContainer: $("#ask_login_form div.error_message")
			
	});
	
	$.validator.addMethod("letters", function(value, element, params) {
		var mot = $.trim(value);
		 return mot.match(/^[A-Za-z '\\-]*$/);
		
	}, "Lettres, espace, ' et - seulement");
	
	
	$.validator.addMethod("codePostalFr", function(value, element, params) {
		var cp = $.trim(value);
		if ($("#codePays").val() == "10000") {
			if(cp.length != 5 || !/^\d*$/.test(cp))
				return false;
		}
	return true;}
	, "Code postal invalide");
	
	
	$.validator.addMethod("siretFr", function(value, element, params) {
			var siret = $.trim(value);

			if ($("#codePays").val() == "10000" && $("#codeAct").val() == "LBR" && siret.length == 0) 
				return false;
			if(siret.length != 0){
				if (siret.length != 9 && siret.length != 14)
					return false;
				if (/^\d+$/.test(siret) == false) 
					return false;
			}
		return true;
	}, "Num&eacute;ro de Siret invalide");
	
	$.validator.addMethod("tvaIntra2",function(code, element) {
		var codePays = $("#codePays").val();
		var codeAct = $("#codeAct").val();
//		if (codeAct != "LBR")
//			return true;
		if (code=="") return true;
		switch(codePays) {
			case '10000' : //France
				return code.match(/^FR[0-9]{11}$/);
				break;
			case '13100' : //Belgique
				return code.match(/^BE0\w{9}\w?$/);
				break;
			case '13700' : //Luxembourg
				return code.match(/^LU[0-9]{8}$/);
				break;
			case '13500' : //PaysBas
				return code.match(/^NL\w{12}$/);
				break;
			default :
				return true;
		} 
		return true;
	}, "Num&eacute;ro incorrect");
	
	$.validator.addMethod("tvaIntraRequired2",function(code, element) {
		var codePays = $("#codePays").val();
		var codeAct = $("#codeAct").val();
		if ($.trim(code).length == 0) {
			if( codePays == '10000' || codePays == '13100' || codePays == '13700' || codePays == '13500') {
				if (codeAct == "LBR")
					return false;
			}
		} 
		return true;
	}, "Champ obligatoire");
	
	$.validator.addMethod("glnFr", function(value, element, params) {
		var gln = $.trim(value);
		if (gln.length != 0)
		{
			if (gln.length != 8 && gln.length != 13)
				return false;
		}
		return true;
	}, "GLN invalide");
	
	$.validator.addMethod("adresse", function(value, element, params) {
		if ($.trim($("#adressePrinc").val()).length == 0 &&
		    $.trim($("#adresseCompl").val()).length == 0 &&
		    $.trim($("#adresseSec").val()).length == 0)
		{
			return false;
		}
		return true;
	}, "Remplir au moins une adresse");
	
	$.validator.addMethod("adresse2", function(value, element, params) {
		if ($.trim($("#adressePrinc").val()).length == 0 &&
		    $.trim($("#adresseCompl").val()).length == 0 &&
		    $.trim($("#adresseSec").val()).length == 0)
		{
			return false;
		}
		return true;
	}, " ");
	
	$.validator.addMethod("telephoneFr", function(value, element, params) {
		var numero = $.trim(value);
		if (numero.length == 0)
			return true;
		var reg=new RegExp("[ \\-\\+\\(\\)\\.]","g")
		numero = numero.replace (reg, "");
		
		if ($("#codePays").val() == "10000") {
			if (numero.length != 10)
			{
				return false;
			}
			if (/^\d+$/.test(numero) == false) 
				return false;
		}
		else
		{
			if (numero.length < 4)
			{
				return false;
			}
			if (/^\d+$/.test(numero) == false) 
				return false;
		}
		return true;
	}, "Num&eacute;ro invalide");
	
	$.validator.addMethod("requiredFr", function(value, element, params) {
		if ($("#codePays").val() == "10000") {
			if ($.trim(value).length == 0)
			{
				return false;
			}
		}
		return true;
	}, "Champ obligatoire");
	
	$.validator.addMethod("digitsFr", function(value, element, params) {
		if ($("#codePays").val() == "10000") {
			var valeur = $.trim(value);
		 	if (/^\d+$/.test(valeur))
	    		return true;
	    	return false;
		}
		return true;
	}, "Champ num&eacute;rique");
			
	$("#adressePrinc").change(function() {
		$("#adresseCompl").valid();
		$("#adresseSec").valid();
	});
	
	$("#adresseCompl").change(function() {
		$("#adressePrinc").valid();
		$("#adresseSec").valid();
	});
	
	$("#adresseSec").change(function() {
		$("#adresseCompl").valid();
		$("#adressePrinc").valid();
	});
	
	//Infobulles
	$('#ask_login_form input,#ask_login_form select,,#send_message_form input,,#send_message_form select').tooltip({
		track: true,
		delay: 0,
		fade: 150
	});

	$("#numTva").tooltip({
		track: true,
		delay: 0,
		showURL: false,
		fade: 150,
		bodyHandler: function() {
			return $("#numTvaIntraTitle").html();
		}
	});

	
	
});
