function MonComptepostageJSLightBox(url,nom_form){

	var options = {
        //target:        		"la_bobox",
		//beforeSubmit:  		showRequest,
        success:			showResponseLightBox,
        url:       			url,         	// override for form's 'action' attribute
        type:      			"POST"       	// 'get' or 'post', override for form's 'method' attribute
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type)
        //clearForm: true        // clear all form fields after successful submit
        //resetForm: true        // reset the form after successful submit
 
        // $.ajax options can be used here too, for example:
        //timeout:   3000
    };

	if (verifForm(nom_form) == true) {
		$("form[name='"+nom_form+"']").ajaxSubmit(options);
	}
	return false;
}

/*
function affiche_nomtire(){
	
	if(document.getElementById('paiement-2').checked) {
		document.getElementById('nomtire').style.display='block';
	}else {
		if(document.getElementById('paiement-1').checked) {
			document.getElementById('nomtire').style.display='none';
		}
	}
}
*/

function showResponseLightBox(responseText, statusText){
	$(".receptacle").html(responseText);
	
	//Centre le contenu
	centre_lightbox($("#lb2"));
	
	//Hack Dropdownliste IE6
	$(".black_box").bgiframe();
	
	//Apparition
	$('.black_box')
			.css({width: $(window).width(), height: $(document).height()})
			.fadeIn("slow",function(){$("#lb2").fadeIn("slow");});
			
    initDOM2();
}
function MonComptepostageJSLightBox2(url,nom_form){

	var options = {
        //target:        		"la_bobox",
		//beforeSubmit:  		showRequest,
        success:			showResponseLightBox2,
        url:       			url,         	// override for form's 'action' attribute
        type:      			"POST"       	// 'get' or 'post', override for form's 'method' attribute
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type)
        //clearForm: true        // clear all form fields after successful submit
        //resetForm: true        // reset the form after successful submit
 
        // $.ajax options can be used here too, for example:
        //timeout:   3000
    };

	if (verifForm(nom_form) == true) {
		$("form[name='"+nom_form+"']").ajaxSubmit(options);
	}
	return false;
}
function showResponseLightBox2(responseText, statusText){
	$(".receptacle").html(responseText);
	
	//Centre le contenu
	centre_lightbox($("#lb1"));
	
	//Hack Dropdownliste IE6
	$(".black_box").bgiframe();
	
	//Apparition
	$('.black_box')
			.css({width: $(window).width(), height: $(document).height()})
			.fadeIn("slow",function(){$("#lb1").fadeIn("slow");});
			
    initDOM2();
}
function MonComptepostageJSLightBox3(url,nom_form){

	var options = {
        //target:        		"la_bobox",
		//beforeSubmit:  		showRequest,
        success:			showResponseLightBox3,
        url:       			url,         	// override for form's 'action' attribute
        type:      			"POST"       	// 'get' or 'post', override for form's 'method' attribute
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type)
        //clearForm: true        // clear all form fields after successful submit
        //resetForm: true        // reset the form after successful submit
 
        // $.ajax options can be used here too, for example:
        //timeout:   3000
    };

	if (verifForm(nom_form) == true) {
		$("form[name='"+nom_form+"']").ajaxSubmit(options);
	}
	return false;
}
function showResponseLightBox3(responseText, statusText){
	//kill_lightbox("lb3");
	//alert(responseText);
	$("#lb3").html(responseText);
	//alert($("#lb3").html());
	//Centre le contenu
	//centre_lightbox('#lb3');
		
    initDOM2();
}
function MonComptepostageJS(url,nom_form,cible){

	var options = {
        target:        		cible,
		//beforeSubmit:  		showRequest,
        success:			showResponse,
        url:       			url,         	// override for form's 'action' attribute
        type:      			"POST"       	// 'get' or 'post', override for form's 'method' attribute
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type)
        //clearForm: true        // clear all form fields after successful submit
        //resetForm: true        // reset the form after successful submit
 
        // $.ajax options can be used here too, for example:
        //timeout:   3000
    };

	if (verifForm(nom_form) == true) {
		$("form[name='"+nom_form+"']").ajaxSubmit(options);
	}
	return false;
}
//function showResponse(responseText, statusText)  {
function showResponse(){
    $("#mess_valide").show();
    initDOM2();
}
/*  */ 
function gestionItem(Item,Classe,Erreur){
 	formname = $(Item).parents("form").attr("name");

 	if($(Item).is(":hidden")) Erreur=false;
 	//if(Erreur) alert($(Item).attr("name"));
	$(Item).toggleClass("err_picto_ko",Erreur);
	$(Item).toggleClass("err_picto_ok",!Erreur);
	$(Item).toggleClass("erreur"+Classe,Erreur);

	$("form[name='"+formname+"']").find("#err"+Classe).toggle($("form[name='"+formname+"']").find(".erreur"+Classe).length>0);
	$("form[name='"+formname+"']").find("#err"+Classe).toggleClass('err',$("form[name='"+formname+"']").find(".erreur"+Classe).length>0);

    $("form[name='"+formname+"']").find(".pinkbox").toggle($("form[name='"+formname+"']").find(".err").length>0);

	return Erreur;
}

/* Validation JS d'un formulaire donne */
function verifForm(formname){
	$("form[name='"+formname+"'] input").each(function(){verifItem(this);}); //  Verifie chaque item du formulaire
	$("form[name='"+formname+"'] textarea").each(function(){verifItem(this);}); //  Verifie chaque item du formulaire
	$("form[name='"+formname+"'] select").each(function(){verifItem(this);}); //  Verifie chaque item du formulaire
	gestionBoxForm(formname);    //gestion de la pinkbox

	err1 = $("form[name='"+formname+"']").find("#errobligatoire").hasClass("err");
	err2 = $("form[name='"+formname+"']").find("#errmail").hasClass("err");
	err3 = $("form[name='"+formname+"']").find("#errdate").hasClass("err");
	err4 = $("form[name='"+formname+"']").find("#errnumeric").hasClass("err");
	err5 = $("form[name='"+formname+"']").find("#errtaille5").hasClass("err");
	err6 = $("form[name='"+formname+"']").find("#errregexp").hasClass("err");
	err7 = $("form[name='"+formname+"']").find("#errregexp2").hasClass("err");
	err8 = $("form[name='"+formname+"']").find("#errregexp3").hasClass("err");
	err9 = $("form[name='"+formname+"']").find("#errregexp4").hasClass("err");

	return !(err1 || err2 || err3 || err4 || err5 || err6 || err7 || err8|| err9);

}
 
/* Validation JS d'un item selon ses class */
function verifItem(T){
	
	erreur=false;	
	
	isradio 	= $(T).is(":input[type=radio]");
	ischeckbox 	= $(T).is(":input[type=checkbox]");
	
	if(isradio){
		if($(T).hasClass("obligatoire")){		
			val_radio = $(":radio[@name='" + $(T).attr('name') + "']:checked").attr("value");
			gestionItem(T,"obligatoire",(!val_radio));
		}		
	}else if(ischeckbox){
		if($(T).hasClass("obligatoire")){
			val_checked = $(T).attr('checked')?1:0;
			gestionItem(T,"obligatoire",(!val_checked));
			$('label[for="'+$(T).attr('id')+'"]').toggleClass("erreur",!val_checked);
		}
	}else{
		if($(T).hasClass("obligatoire")){
			erreur = gestionItem(T,"obligatoire",($(T).val()==""));
		}
		if(erreur==false){
			// Verification du cas mail
			if($(T).hasClass("mail")) gestionItem(T,"mail",(!isMailValid($(T).val())));
	
			//verification du cas date		
			if($(T).hasClass("date")) gestionItem(T,"date",(!isDateValid($(T).val())));
			
			//verification du cas numeric
			if($(T).hasClass("numeric")) gestionItem(T,"numeric",(isNaN($(T).val())));                     
	
			//verification du cas taille5
			if($(T).hasClass("taille5")) gestionItem(T,"taille5",($(T).value.length!=5));

			//verification du cas expression reguliere
			if($(T).hasClass("regexp")) gestionItem(T,"regexp",!isRegExpValid(T,''));
			
			//verification du cas expression reguliere pour INSEE
			if($(T).hasClass("regexp2")) gestionItem(T,"regexp2",!isInseeValid($(T).val()));
			
			//verification du cas expression reguliere pour Code postal
			if($(T).hasClass("regexp3")) gestionItem(T,"regexp3",!isRegExpValid(T,'3'));
			
			//verification du cas expression reguliere pour cpam de rattachement
			if($(T).hasClass("regexp4")) gestionItem(T,"regexp4",isRegExpCPAM(T));
		}
	}
}

/* Affichage des messages d'erreurs dans la pinkbox */
function gestionBoxForm(formname){

	$("form[name='"+formname+"']").find(".pinkbox, #errobligatoire, #errmail, #errdate, #errnumeric, #errtaille5, #errregexp, #errregexp2, #errregexp3, #errregexp4").hide();

	if($("form[name='"+formname+"']").find("#errobligatoire").hasClass("err")){
		$("form[name='"+formname+"']").find("#errobligatoire").show();
		$("form[name='"+formname+"']").find(".pinkbox").show();
	}
	if($("form[name='"+formname+"']").find("#errmail").hasClass("err")){
		$("form[name='"+formname+"']").find("#errmail").show();
		$("form[name='"+formname+"']").find(".pinkbox").show();
	}
	if($("form[name='"+formname+"']").find("#errdate").hasClass("err")){
		$("form[name='"+formname+"']").find("#errdate").show();
		$("form[name='"+formname+"']").find(".pinkbox").show();
	}
	if($("form[name='"+formname+"']").find("#errnumeric").hasClass("err")){
		$("form[name='"+formname+"']").find("#errnumeric").show();
		$("form[name='"+formname+"']").find(".pinkbox").show();
	}
	if($("form[name='"+formname+"']").find("#errtaille5").hasClass("err")){
		$("form[name='"+formname+"']").find("#errtaille5").show();
		$("form[name='"+formname+"']").find(".pinkbox").show();
	}
	if($("form[name='"+formname+"']").find("#errregexp").hasClass("err")){
		$("form[name='"+formname+"']").find("#errregexp").show();
		$("form[name='"+formname+"']").find(".pinkbox").show();
	}
	if($("form[name='"+formname+"']").find("#errregexp2").hasClass("err")){
		$("form[name='"+formname+"']").find("#errregexp2").show();
		$("form[name='"+formname+"']").find(".pinkbox").show();
	}
	if($("form[name='"+formname+"']").find("#errregexp3").hasClass("err")){
		$("form[name='"+formname+"']").find("#errregexp3").show();
		$("form[name='"+formname+"']").find(".pinkbox").show();
	}
	if($("form[name='"+formname+"']").find("#errregexp4").hasClass("err")){
		$("form[name='"+formname+"']").find("#errregexp4").show();
		$("form[name='"+formname+"']").find(".pinkbox").show();
	}
}

/* Test d'une expression reguliere */
function isRegExpValid(T,num){
	exp = $(T).attr('regexp'+num);
	reg = new RegExp(exp);
	
	return !($(T).val() != "" && reg.test($(T).val())==0);
}

/* Test d'une expression reguliere */
function isRegExpCPAM(T){
	exp = "^[^0]";
	reg = new RegExp(exp);
	if($(T).val() == 0){ return; }
}
/* Test de validite de date */
function isDateValid(chaineDate) {
	if (chaineDate == "") return false // si chaine vide, on sort
	
	//decoupage
	var ladate = (chaineDate).split("/")
	if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) return false
	if (eval(ladate[2])<1900) return false;
	
	exp = "^[0-9]{2}/[0-9]{2}/[0-9]{4}$";
	reg = new RegExp(exp);	
	if (!reg.test(chaineDate)) return false;
	
	//construction
	var unedate = new Date();
	unedate.setDate(1);//evite des probèmes avec février
	unedate.setYear(eval(ladate[2]));
	unedate.setMonth(eval(ladate[1])-1);
	unedate.setDate(eval(ladate[0]));
	
	//comparaison
	return ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (unedate.getFullYear() == eval(ladate[2])))
}

/* Test de validite d'e-mail */
function isMailValid(chaineMail){
	exp = "^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$";
	reg = new RegExp(exp);
	var validEmail;
	
	if ((chaineMail != "" && reg.test(chaineMail)==0)) {
		validEmail = false;
	} else {
		$.ajax({
			type:"GET",
			url:'/adhesion/verifemail',  
            data: 'email='+chaineMail,   
            async: false,
        	success: function(data){
	        	obj = window.eval(data);
	        	//si l'email est valide  
	            if (data != '0') {  
	            	validEmail = true;
	            } else {  
	            	validEmail = false;
	            } 
			}
        }); 
	}	
	return validEmail;
}

/* Test de validite de num secu (INSEE) */
function isInseeValid(numsecu){
	
	exp = "^[0-9]{6}[0-9ABab][0-9]{8}$";
	reg = new RegExp(exp);
	
	if ((numsecu != "" && reg.test(numsecu)==0)) return false;
	
	var dept = numsecu.substring(5,7);
	var code = numsecu.substring(0,13);
	var key = numsecu.substring(13);
	
	if (dept=="2A" || dept=="2a")
	{	code = code.replace("A", "0"); 
		code = code.replace("a", "0");
		code = parseInt(code,10) - 1000000;
	}
	if (dept=="2B" || dept=="2b")
	{	code = code.replace("B", "0"); 
		code = code.replace("b", "0");
		code = parseInt(code,10) - 2000000;
	}
	var code_check = eval(97 - (parseInt(code) % 97));
	var key_check = parseInt(key,10);
	if (code_check != key_check) return false;
	return true;
}

/* Fonctions a recharger au chargement de chaque vue ou appel AJAX */
function initDOM2()
{
	$(".pinkbox, #errobligatoire, #errmail, #errdate, #errnumeric, #errtaille5, #errregexp, #errregexp2, #errregexp3, #errregexp4").hide();
	 	
	$("form").each(function(){
		gestionBoxForm($(this).attr("name"));
	});
	$("textarea").blur(function(){
		verifItem(this);
	});
	$("input[type='text']").blur(function(){
		verifItem(this);
	});
	$("input[type='checkbox']").change(function(){
		verifItem(this);
	});
	
	$("select").change(function(){
		verifItem(this);
	});
	$("input[type='submit']").live('click',function(){
		return verifForm($(this).parents("form").attr("name"));
	});
	$("input[type='image']").live('click',function(){
		resultat = verifForm($(this).parents("form").attr("name"));
		if (!resultat){
			if (typeof($('input:hidden[name=tag_hidden]').val())!= 'undefined'){
				if  ($('input:hidden[name=tag_hidden]').val() != ""){
					sitestat($('input:hidden[name=tag_hidden]').val());
				}
			}
		}
		return resultat;
	});
	
	$("label.libelle").each(function(){
		reg = new RegExp("\\*","g");
		valeur = $(this).html();
		valeur = valeur.replace(reg,"<span class='rose'>*</span>");
		$(this).html(valeur);
	});
	
	$("label.libelle2").each(function(){
		reg = new RegExp("\\*","g");
		valeur = $(this).html();
		valeur = valeur.replace(reg,"<span class='rose'>*</span>");
		$(this).html(valeur);
	});
	
	$("label.libelle").each(function(){
		reg = new RegExp("\\?","g");
		valeur = $(this).html();
		valeur = valeur.replace(reg,'<a href="#" title="Vous trouverez votre num&eacute;ro de s&eacute;curit&eacute; sociale sur votre Carte Vitale (n\'oubliez pas de pr&eacute;ciser la cl&eacute;)" rel="tooltip"><img class="interro" src="public/images/icon-interro.gif" /></a>');
		$(this).html(valeur);
	});
}

