var control    = new Array();
var formulaire = document.forms[0];
var regExpAlphanumeric             = /[^0-9a-zA-Z]+/g;    //alphanumerique
//var regExpAlphanumeric             = /[0-9a-zA-Z]+[^éèàìòùâêîôûäëïöü]+/g;    //alphanumerique


function ajouteRegles(nom_regle) {
    if (typeof(regle[nom_regle]) == 'undefined') {
        alert('Erreur : la regle ' + nom_regle + " n'existe pas");
    }
    for (var i = 0; i < regle[nom_regle].length; i++) {
        control[control.length] = regle[nom_regle][i];
    }
}


/* format des date_naissance et date : jj/mm/aaaa */
function calculAge(date_naissance, date){
        var jour_naiss = date_naissance.substr(0,2);
        var mois_naiss = date_naissance.substr(3,2);
        var annee_naiss = date_naissance.substr(6,4);

        var jour_fin = date.substr(0,2);
        var mois_fin = date.substr(3,2);
        var annee_fin = date.substr(6,4);

        var nb_mois = 0;
        var difference_mois = ((annee_fin - annee_naiss) * 12 ) + (mois_fin - mois_naiss);

        if (difference_mois == 0){
            nb_mois = 1;
        }else if ( (jour_fin - jour_naiss) >= 0){
            nb_mois = difference_mois;
        }else{
            nb_mois = difference_mois -1;
        }
		//alert(nb_mois/12);
        //var age = Math.floor(nb_mois/12);
		// on arrondi au sup ex en 2008 une pers née le 01/01/1990 aura plus de 18ans)
		var age = Math.ceil(nb_mois/12);
        return age;
}


function checkAgeSup18CoEmp(frm){
    var age = calculAge(frm.jour_naissance_coemp.value + '/'  + frm.mois_naissance_coemp.value + '/' + frm.annee_naissance_coemp.value, '<?php echo date("d/m/Y"); ?>' );
    if (age < 18){
        return false;
    } else {
        return true;
    }
}



function checkOptin() {
    f1 = document.forms['form1'];
    if (f1.optin[0].checked || f1.optin[1].checked) {
	     return true;
    }
    else {
        alert("Merci de nous indiquer si vous voulez recevoir les informations commerciales de CDGP");
        return false;
    }
}

function checkCivilite() {
    f1 = document.forms['form1'];
    if (f1.civilite[0].checked || f1.civilite[1].checked || f1.civilite[2].checked) {
        return true;
    }
    else {
        alert("Veuillez indiquer votre civilité.");
        return false;
    }
}


function checkOptin() {
    f1 = document.forms['form1'];
    if (f1.optin1[0].checked || f1.optin1[1].checked) {
        return true;
    }
    else {
        alert("Veuillez préciser si vous désirez recevoir les informations commerciales de CDGP et de ses partenaires.");
        return false;
    }
}


function checkCiviliteCoEmp() {
    f1 = document.forms['form1'];
    if (f1.civilite_coemp[0].checked || f1.civilite_coemp[1].checked || f1.civilite_coemp[2].checked) {
        return true;
    }
    else {
        return false;
    }
}


function checkDate(j, m, a, message) {

    f1 = document.forms['form1'];
    date = f1.elements[j].value + "/" + f1.elements[m].value + "/" + f1.elements[a].value;

    if (((f1.elements[j].value == "")
      || (f1.elements[m].value == "")
      || (f1.elements[a].value == ""))
     || (isDate(date))) {
        return true;
    }
    else {
        alert(message);
        return false;
    }
}


function checkMemeAdresseCoEmp(){
    return document.forms['form1'].habite_meme_adr.checked;
}


function checkTelephones() {
    f1 = document.forms['form1'];
    var fixe   = f1.elements['tel_fixe'].value;
    var mobile = f1.elements['tel_portable'].value;
    return (fixe != "") || (mobile != "");
}



function checkOffre() {

 f1 = document.forms['form1'];


		
        var code = f1.elements['code_promo'].value;
	
			if ((code != "") && (typeof(code) != 'undefined')) {
			if(code.indexOf(" ",0)!='-1'){
				alert("Le code offre que vous avez saisi n'est pas valide. Le code offre ne peut pas contenir d'espace.")
				 return false;
			}
			if(code.match(regExpAlphanumeric)){
			alert("Le code offre que vous avez saisi n'est pas valide. Le code offre ne peut pas contenir de caractères spéciaux.")
			 return false;
			}
            
			var val = removeAccents(code).toLowerCase();
            var count = countCode(val);
			var goodens = getGoodEnseigne(val);
			
			
            if (count > 1) {
                if (code == "") {
                    alert("Le code offre que vous avez saisi n'est pas valide.");
                    return false;
                }
				
				if(f1.elements['enseigne'].selectedIndex == -1){	
					if (f1.elements['enseigne'].value == "") {
                    	alert("Merci de répondre à la question : Etes-vous client chez ... ?");
                    return false;
            	    }
				} else {
					if(f1.elements['enseigne'].options[f1.elements['enseigne'].selectedIndex].value==""){
						 alert("Merci de répondre à la question : Etes-vous client chez ... ?");
                    	return false;
					}
                	
				}
            }
            else if (count == 1) {
				// on prend en argument la valeur du code promo et l'enseigne qui devrait etre associée)
			//return true;
			
			if(f1.elements['enseigne'].selectedIndex != -1){
			
			if(isGoodEnseigne(val,f1.elements['enseigne'].options[f1.elements['enseigne'].selectedIndex].value)){
					return true;
				} else {
			
				// on force l'enseigne 
				f1.elements['enseigne'].options[f1.elements['enseigne'].selectedIndex].value=goodens;
				return true;
				}
				
				
            } else {
				// si pas de select d'index
					if(isGoodEnseigne(val,f1.elements['enseigne'].value)){
					return true;
				} else {
				// on force l'enseigne 
				f1.elements['enseigne'].value=goodens;
				return true;
				}
				
				
			}
			} 
            else {
                // si code non trouvé => on demande l’enseigne préférée
                if (f1.elements['enseigne'].value == "") {
                    alert("Merci de répondre à la question : Etes-vous client chez ... ?");
                    return false;
                }
                 alert("Votre code n'est pas reconnu, merci de le vérifier sur la communication que nous vous avons envoyée.");
                 return false;
            }
        } else {
			// si pas de code on demande tout de meme une enseigne
			if(code==''){
				if(f1.elements['enseigne'].selectedIndex == -1){	
					if (f1.elements['enseigne'].value == "") {
                    	alert("Merci de répondre à la question : Etes-vous client chez ... ?");
                    return false;
            	    }
				} else {
					if(f1.elements['enseigne'].options[f1.elements['enseigne'].selectedIndex].value==""){
						 alert("Merci de répondre à la question : Etes-vous client chez ... ?");
                    	return false;
					}
                	
				}
			}
		// on retourne tout de meme true le code promo sera remplacé par défaut
		return true;
		}
        
        return true;
    


/*
    f1 = document.forms['form1'];

    if (f1.elements['demande'][1].checked) {

        var code = f1.elements['code_promo'].value;
	
        if ((code != "") && (typeof(code) != 'undefined')) {
			if(code.indexOf(" ",0)!='-1'){
				alert("Le code offre que vous avez saisi n'est pas valide. Le code offre ne peut pas contenir d'espace.")
				 return false;
			}
			if(code.match(regExpAlphanumeric)){
			alert("Le code offre que vous avez saisi n'est pas valide. Le code offre ne peut pas contenir de caractères accentués.")
			 return false;
			}
            
			var val = removeAccents(code).toLowerCase();
            var count = countCode(val);

            if (count > 1) {
                if (code == "") {
                    alert("Le code offre que vous avez saisi n'est pas valide.");
                    return false;
                }
				
				if(f1.elements['enseigne'].selectedIndex == -1){	
					if (f1.elements['enseigne'].value == "") {
                    	alert("Merci de répondre à la question : Comment avez-vous connu notre offre?");
                    return false;
            	    }
				} else {
					if(f1.elements['enseigne'].options[f1.elements['enseigne'].selectedIndex].value==""){
						 alert("Merci de répondre à la question : Comment avez-vous connu notre offre?");
                    	return false;
					}
                	
				}
            }
            else if (count == 1) {
            }
            else {
                // si code non trouvé => on demande l’enseigne préférée
                if (f1.elements['enseigne'].value == "") {
                    alert("Merci de répondre à la question : Comment avez-vous connu notre offre?");
                    return false;
                }
                // alert("Le code promo que vous avez saisie n'est pas valide.");
                // return false;
            }
        }
        else {
            alert("Veuillez saisir votre code offre.");
            return false;
        }

        return true;
    }

    if (f1.elements['demande'][0].checked || f1.elements['demande'][1].checked) {

        if ((f1.elements['demande'][0].checked) && (f1.elements['enseigne'].value == "")) {
            alert("Merci de répondre à la question : Comment avez-vous connu notre offre?");
            return false;
        }

        if (count > 1) {
            if ((f1.elements['demande'][1].checked) && (f1.elements['enseigne'].value == "")) {
                alert("Merci de répondre à la question : Comment avez-vous connu notre offre?");
                return false;
            }
        }

        return true;
    }
    else {
        alert("Veuillez choisir une offre.");
        return false;
    }
*/
}


function controleDatePosterieure(jj, mm, aaaa) {
    var now = new Date();
    var aujourdhui = Date.UTC(now.getFullYear(),now.getMonth(),now.getDate(),0,0,0,0);
    //var demain = aujourdhui + 24*60*60*1000;
    date_debut_UTC = Date.UTC(aaaa, mm-1, jj);
    return (date_debut_UTC > aujourdhui);
}


function displayCoEmp(value) {
    switch(value) {
        case 'Marié(e)':
        case 'Concubin/Union libre':
        case 'Pacsé(e)':
            jq("#coemp").removeClass("trhide").addClass("trshow");
            break;
        default:
            jq("#coemp").removeClass("trshow").addClass("trhide");
            break;
    }
}


function displayPaysCoEmp(value) {
	switch(value) {
        case '99':
            jq("#bloc_naissance").removeClass("trhide").addClass("trshow");
		break;
		default:
            jq("#bloc_naissance").removeClass("trshow").addClass("trhide");
			document.getElementById('pays_naissance_coemp').value="100";
		break;
 
    }
}


function doControls() {

    f1 = document.forms['form1'];

    for (i=0; i <control.length; i++) {
        if ( typeof(control[i][0]) == 'string'){
		
            champ = new FormControl(f1.elements[ control[i][0] ].value, control[i][4]);

            eval("test = champ." + control[i][2] + ";");
        } else {
            eval("test = " + control[i][2] + ";");
        }

        if (!test) {

            msErr = str_replace("%s", control[i][1], control[i][3]);

            alert(msErr);

            if ( typeof(control[i][0]) == 'string'){
                jq("#form1 [@name='" + control[i][0] + "']").removeClass("fielderror").addClass("fielderror");
                jq("#form1 [@name='" + control[i][0] + "']").focus();
            } else {
                /* on prend le premier champs */
                jq("#form1 [@name='" + control[i][0][0] + "']").removeClass("fielderror").addClass("fielderror");
               jq("#form1 [@name='" + control[i][0][0] + "']").focus();
            }
            return false;
        }
        else {
            if ( typeof(control[i][0]) == 'string'){
              jq("#form1 [@name^='" + control[i][0] + "']").removeClass("fielderror");
            } else {
              jq("#form1 [@name^='" + control[i][0][0] + "']").removeClass("fielderror");
            }
        }
    }

    return true;
}


function goSuivant(){
	fm = document.forms['form1'];
	if(doControls()){
			fm.submit();
	} else {
	alert("erreur");
	}
}


function str_replace(match,replace,string) {
    var input = ''+string;
    var matchStr = ''+match;
    if (!matchStr)  {return string;}
    var output = '';
    var pointer=0;
    var pos = input.indexOf(matchStr);
    while (pos!=-1) {
        output+=''+input.substr(pointer, pos-pointer)+replace;
        pointer=pos+matchStr.length;
        pos = input.indexOf(match,pos+1);
    }
    output+=''+input.substr(pointer);
    return output;
}


function valueChecked(e) {
    value = '';
    for (i=0; i < e.length; i++) {
        if ( e[i].checked ) {
            value = e[i].value;
            break;
        }
    }
    return value
}

function afficher_listePays(){
	 
var indexsite = document.getElementById('departement_naissance'); 
var valeursite = indexsite.options[indexsite.selectedIndex].value ;

if(valeursite==99){
	document.getElementById('bloc_naissance').style.display="block";
	document.getElementById('pays_naissance').value="";
} else {
		document.getElementById('bloc_naissance').style.display="none";
		document.getElementById('pays_naissance').value="100";

}

} 

function afficher_listePaysCoEmp(){
/*	 
var indexsite = document.getElementById('departement_naissance_coemp'); 
var valeursite = indexsite.options[indexsite.selectedIndex].value ;

if(valeursite==99){
	document.getElementById('bloc_naissance').style.display="block";
	document.getElementById('pays_naissance_coemp').value="";
} else {
		document.getElementById('bloc_naissance').style.display="none";
		document.getElementById('pays_naissance_coemp').value="100";

}
*/
} 
	
	
