/*****                 VISIBILITE                     *****/

// textes par defaut
var CONST_TEXTE_CPVILLE_DEFAUT = '(Code postal ou Ville)';


//Affichage/Masquage Question

//affiche le bloc
function afficheBloc(idBloc) {
    document.getElementById(idBloc).style.display = 'inline';
}

//affiche le bloc ainsi que l'avant et apres question
function afficheBlocComplete(idBloc) {
    try {
        var bloc = document.getElementById(idBloc);
        var avant = document.getElementById(bloc.id + "AvantBloc");
        if (avant) avant.style.display = 'block';
        bloc.style.display = 'block';
        var apres = document.getElementById(bloc.id + "ApresBloc");
        if (apres) apres.style.display = 'block';
        var erreur = document.getElementById(bloc.id + "Erreur");
        if (erreur) erreur.style.display = 'block';
    }
    catch (Exception) { }
}

//cache le bloc ainsi que l'avant et apres question
function cacheBloc(idBloc) {
    try {
        var bloc = document.getElementById(idBloc);
        var avant = document.getElementById(bloc.id + "AvantBloc");
        if (avant) avant.style.display = 'none';
        bloc.style.display = 'none';
        var apres = document.getElementById(bloc.id + "ApresBloc");
        if (apres) apres.style.display = 'none';
        var erreur = document.getElementById(bloc.id + "Erreur");
        if (erreur) erreur.style.display = 'none';
    }
    catch (Exception) { }
}

//affiche l'élement idElement si condition est vrai
function afficheElementSiCond(idElement, condition) {
    try {
        var element = document.getElementById(idElement);
        if (eval(condition)) element.style.display = 'block';
        else element.style.display = 'none';
    }
    catch (Exception) { }
}


//affiche la div si condition est vrai
function afficheDivSiCond(idDiv, condition) {

    if (eval(condition)) {
        montreDiv(idDiv);
    }
    else {
        cacheDiv(idDiv);
    } 
}

//cache l'ensemble des blocs présents dans le groupe
function cacheBlocs() {
    var dynActive = document.forms["form1"].dynActive.value;
    if (dynActive != 'false') {
        var tableau = recupereBlocs();
        for (k = 0; k < tableau.length; k++) {
            var bloc = tableau[k];
            cacheBloc(bloc.id);
        }
    }
}

//cache l'ensemble des questions présentes dans le groupe
function cacheQuestions() {
    var dynActive = document.forms["form1"].dynActive.value;
    if (dynActive != 'false') {
        var tableau = recupereQuestions();
        for (k = 0; k < tableau.length; k++) {
            var question = tableau[k];
            cacheQuestion(question.id);
        }
    }
}


//Cache la question ainsi que l'avant et apres reponse
function cacheQuestion(idQuestion) {
    var question = document.getElementById(idQuestion);
    var avant = document.getElementById(question.getAttribute("id") + "AvantReponse");
    if (avant) avant.style.display = 'none';
    question.style.display = 'none';
    var apres = document.getElementById(question.getAttribute("id") + "ApresReponse");
    if (apres) apres.style.display = 'none';
    cacheDiv("reponse" + idQuestion);
}



//cache blocs et questions, ensuite on affiche le formulaire
function cacheTout() {
    cacheBlocs();
    cacheQuestions();
    document.forms["form1"].style.display = "inline";
}

//cache une div (utilisé pour les  div d'attente)
function cacheDiv(nomDiv) {
    document.getElementById(nomDiv).style.display = 'none';
}

//affiche une div
function montreDiv(nomDiv) {
    document.getElementById(nomDiv).style.display = 'inline';
}

//affiche une div en style "Block"
function montreDivBlock(nomDiv) {
    document.getElementById(nomDiv).style.display = 'block';
}

//affiche une li (puce)
function montreLi(nomDiv) {
    document.getElementById(nomDiv).style.display = 'list-item';
}

function montreLiSiCond(optionCochee, spanOption) {
    if (optionCochee) {
        montreLi(spanOption)
    }
    else {
        cacheDiv(spanOption)
    }
}

// cache les listbox
function cacheListBox() {
    var aSelect = document.getElementsByTagName('select');
    for (i = 0; i < aSelect.length; i++) {
        aSelect[i].style.display = 'none';
    }
}

//affiche une div d'aide
function montreAide(nomDiv) {
    cacheListBox();
    //Cache toutes les divs d'aide pour éviter une superposition de celles-ci
    cacheAides();
    montreDiv('aide' + nomDiv);
    
    //Centre verticalement la popup d'aide
    //Le retrait de 125px correspond au header de la page
    $('#aide' + nomDiv).css({
        top: ($(window).height() - $('#aide' + nomDiv).outerHeight()) / 2 + $(document).scrollTop() - 125
    });
}



// affiche les listbox
function afficheListBox() {
    var aSelect = document.getElementsByTagName('select');

    for (i = 0; i < aSelect.length; i++) {
        aSelect[i].style.display = 'block';
    }

    // On vérifie si l'on est en présence des questions 'LieuHabitation' et 'CodePostalSouscription'
    // Soit "GroupeBeneficiaire" et "GroupeSouscriptionRenseignement"
    if (document.getElementById('listboxLieuHabitation') != null) {
        document.getElementById('listboxLieuHabitation').style.display = 'none';
        document.getElementById('reponseLieuHabitationTextBox').style.display = 'block';
    }

    if (document.getElementById('listboxCodePostalSouscription') != null) {
        document.getElementById('listboxCodePostalSouscription').style.display = 'none';
        document.getElementById('reponseCodePostalSouscriptionTextBox').style.display = 'block';
    }
}


// cache une div d'aide
function cacheAide(nomDiv) {
    cacheDiv(nomDiv);
    afficheListBox();
}

// cache toutes les divs d'aide avant tarif
function cacheAides() {
    $("div[class=divAide]").css("display", "none");
}

function initTableauAutresAssures(presenceConjoint, presenceEnfant) {
    if (presenceConjoint == 0 && presenceEnfant == 0) {
        cacheDiv('blocTableauAutresAssures');
        cacheDiv('enteteTableauAutresAssures');
        cacheDiv('finBordureTableauAutresAssures');
    }
}

function initTableauCoordonneesAutresAssures(presenceConjoint, presenceEnfant) {
    if (presenceConjoint == 0 && presenceEnfant == 0) {
        cacheDiv('blocCoordonneesAutresAssures');
        cacheDiv('finBordureTableauAutresAssures');
    }
}

function initTableauSouscriptionAutresAssures(presenceConjoint, presenceEnfant) {
    if (presenceConjoint == 0 && presenceEnfant == 0) {
        cacheDiv('blocSouscriptionAutresAssures');
        cacheDiv('finBordureTableauAutresAssures');
    }
}

//Méthode très spécifique utilisée pour afficher/cacher une partie du tableau du tarif
function initTableauTarif(idQuestion, colonne, formuleChoisie) {
    // Si la formule n'est pas vide et qu'elle est tout risques (donc pas tiers).
    if ((formuleChoisie == '') || (!(formuleChoisie.indexOf("Tiers") > 0))) cacheColonne(idQuestion, colonne);
    else {
        montreColonne(idQuestion, colonne);
        montreColonne(idQuestion, colonne + 1);
    }
}

//cache une colonne de la table idTable, ciblée par son indice
function cacheColonne(idTable, indiceColonne) {
    var tableHtml = document.getElementById(idTable);
    var tabTr = tableHtml.rows;
    var i;
    for (i = 0; i < tabTr.length; i++) {
        var tabTd = tabTr[i].cells
        var td = tabTd[indiceColonne];
        if (td != null) td.style.display = 'none';
    }
}

function appliquerStyle(idElement, style) {
    document.getElementById(idElement).className = style;
}

function ajouterStyle(idElement, style) {
    var styleElement = document.getElementById(idElement).className;
    var styleAApliquer = styleElement + " " + style;
    document.getElementById(idElement).className = styleAApliquer;
}

//Récupération d'elements multiples

//Recupere l'element html 'input' pour une question donnée (le nom est le même que la reponse associée, mais le tag html est INPUT)
function recupereInputReponse(idQuestion) {
    var nom = "reponse" + idQuestion;
    var i = 0;
    var inputs = document.getElementsByTagName('INPUT');
    var selects = document.getElementsByTagName('SELECT');
    
    var tab = new Array();
    while (i < inputs.length) {
        var rep = inputs[i];
        if (rep.name == nom) {
            if ((rep.type == 'radio') || (rep.type == 'checkbox')) {
                tab.push(rep);
            }
            else return rep;
        }
        i++
    }

    if (tab.length > 0) return tab;
    i = 0;
    while (i < selects.length) {
        var rep = selects[i];
        if (rep.name == nom) return rep;
        i++
    }
    return null;
}

//Conditionnels

//Rend visible le lien vers les pdf Conditions Generales
function afficheConditionsGenerales() {
    if (eval(document.getElementById('blocChoixTarif'))) {
        document.getElementById('blocConditionsGenerales').style.display = 'inline';
    }
}

//Test si la question a été remplie (grace a l'attribut estRemplie calculé par le xsl)
function visibleConditionExisteSaisie(nomQuestionSource) {
    var reponse = recupereReponse(nomQuestionSource);
    return estRemplie(reponse);
}

//Détermine la visiblilité du bloc idBloc
function initVisibleBloc(idBloc) {
    var dynActive = document.forms["form1"].elements.dynActive.value;
    if (dynActive != 'false') {
        if ((bloc.conditionVisibilite == "") || (eval(bloc.conditionVisibilite))) afficheBloc(bloc.id);
        else cacheBloc(bloc.id);
    }
}


/**********           Méthodes de communication avec l'automate **************/

//Affiche la div d'attente
function attente() {

    var aSelect = document.getElementsByTagName('select');
    for (i = 0; i < aSelect.length; i++) {
        aSelect[i].style.display = 'none';
    }

    document.getElementById("divAttente").style.display = 'inline';
}

function validerCoordonnees(event) {
    var testAcceptation = testErreurAcceptation();
    if (!(testAcceptation)) {
        valider(event)
    }
}

function validerSignature(event, donneeRegimeSocialSouscripteur) {
    var souscripteurEstTNS = false;
    if (donneeRegimeSocialSouscripteur == '2') {
        souscripteurEstTNS = true;
    }

    var testErreurSignature = testErreurSaisieSignature(souscripteurEstTNS);
    if (!(testErreurSignature)) {
        valider(event)
    }
}

//Méthode appelée avant la validation du groupe tarif, l'argument est la donnee à tester pour s'assurer qu'un tarif a été choisi.
function validerTarif(donnee) {
    var test = recupereInputReponse("SuiteTarif");
    if (((donnee == "") || (donnee == "0")) && (test[0].checked != true)) alert("veuillez choisir un tarif");
    else valider();
}

//demande un précédent à l'automate
function retour() {
    attente();
    testSecurite("securiserRetour");
    //document.forms["form1"].elements.abandonQuestionnaire.value ='false';
    document.forms["form1"].commande.value = 'precedent';
    document.forms["form1"].submit();
}

//Valide la question idQuestion 
function recharger(idQuestion) {
    attente();
    testSecurite("securiserGroupe");
    //document.forms["form1"].elements.abandonQuestionnaire.value ='false';
    var commande = document.getElementById("commande");
    commande.value = 'validerQuestion;' + idQuestion;
    document.forms["form1"].submit();
}

//Demande à l'automate de passer directement au groupe idGroupe
function mettreFocusGroupe(idGroupe) {
    attente();
    goHTTP();
    //document.forms["form1"].elements.abandonQuestionnaire.value ='false';
    document.forms["form1"].commande.value = 'selectionnerGroupe;' + idGroupe;
    document.forms["form1"].submit();
}

//Demande à l'automate de passer directement au groupe idGroupe
function mettreFocusGroupeSecurise(idGroupe) {
    attente();
    testSecurite("securiserGroupe");
    //document.forms["form1"].elements.abandonQuestionnaire.value ='false';
    document.forms["form1"].commande.value = 'selectionnerGroupe;' + idGroupe;
    document.forms["form1"].submit();
}

//Envoie la commande Fin à l'automate et ferme la fenetre du browser
function fermer() {
    try {
        goHTTP();
        document.forms["form1"].commande.value = 'fin;';
        document.forms["form1"].submit();
        //self.close();
        document.location.href = "/pages/sante_home.html"
    }
    catch (Exception) { }
}

function goHTTP() {
    var val = new String();
    val = location.href;
    val = val.replace("https:", "http:");
    //form1.action = val;
    document.forms["form1"].action = val;
}

function testSecurite(typeSecurite) {
    var val = new String();
    val = location.href;    
    switch (typeSecurite) {
        case "securiserGroupe":
            if (document.forms["form1"].elements.securiserGroupe != null) val = val.replace("http:", "https:");
            else val = val.replace("https:", "http:");
            break;
        case "securiserSuivant":
            if (document.forms["form1"].elements.securiserSuivant != null) val = val.replace("http:", "https:");
            else val = val.replace("https:", "http:");
            break;
        case "securiserRetour":
            if (document.forms["form1"].elements.securiserRetour != null) val = val.replace("http:", "https:");
            else val = val.replace("https:", "http:");
            break;
    }
    document.forms["form1"].action = val;
}

/*  Fonctions relatives a la page Tarif  */
var colonneAffichee = null;

function initEcranTarif(templateHtmlPdf) {
    if (templateHtmlPdf == null) {
        /*var styleElement = document.getElementById('smallContent').className;
        styleElement = styleElement.replace('smallContent', 'smallContentTarif');
        document.getElementById('smallContent').className = styleElement;

        var classDivAttente = document.getElementById('divAttente').className;
        classDivAttente = classDivAttente.replace('divAttente', 'divAttenteTarif');
        document.getElementById('divAttente').className = classDivAttente;*/
        //document.getElementById('smallContent').className = 'smallContentTarif';
        document.getElementById('divAttente').className = 'divAttenteTarif';
    }
    if (document.getElementById('rbFormuleEco').checked == true) {
        selectionnerColonne("0");
    }
    else if (document.getElementById('rbFormuleInitial').checked == true) {
        selectionnerColonne("1");
    }
    else if (document.getElementById('rbFormuleEquilibre').checked == true) {
        selectionnerColonne("2");
    }
    else if (document.getElementById('rbFormuleOptimal').checked == true) {
        selectionnerColonne("3");
    }
    else {
        cacheDiv('zoneAvantagesInclus');
    }
    majTarifColonnes();
}

function selectionnerColonne(nameColonne) {
    if (colonneAffichee == null) {
        cacheDiv('boutonTarifOff');
        cacheDiv('boutonSouscriptionOff');
        montreDiv('actionValider');
        montreDiv('actionValiderSouscription');        
    }

    switch (nameColonne) {
        case "0":
            if (colonneAffichee != "0") {
                document.getElementById('rbFormuleEco').checked = true;
                colorerColonne('Eco', '0');
                decolorerColonnes('Initial', 'Equilibre', 'Optimal', '1', '2', '3');
                viderRecap();
                montreDiv('spanFormuleEco');
                montreDiv('divTarifMensuelEco');
                montreDiv('tarifFormuleRecap');
                montreDiv('tarifFormuleAnnuelRecap');
                montreDiv('tarifFormuleRecapPrixAnnuel');
                montreDiv('tarifFormuleRecapPrix');
                montreDiv('zoneAvantagesInclus');
                if (document.getElementById('cbExtensionPharmacie').checked) {
                    montreLi('liTiersPayant');
                    montreLi('tiersPayant');
                    montreDiv('oExtensionPharmacie');
                    montreDivBlock('tarifOptionPharma');
                }
                majAvantages('reductionFamilialeEco', nameColonne);
                colonneAffichee = "0";
            }
            var optionSelectionne = verifierOptionSelectionnne('cbExtensionPharmacie', '');
            switch (optionSelectionne) {
                case 0:
                    majTarifFormule('TarifMensuelFormule1', 'TarifAnnuelFormule1', 'Eco');
                    break;
                case 1:
                    majTarifFormule('TarifMensuelFormule1ExtensionPharmacie', 'TarifAnnuelFormule1ExtensionPharmacie', 'Eco');
                    break;
            }
            majTarifRecap('spanTotalTarifFormuleEco', 'spanTarifAnnuelEco');
            break;
        case "1":
            if (colonneAffichee != "1") {
                document.getElementById('rbFormuleInitial').checked = true;
                colorerColonne('Initial', '1');
                decolorerColonnes('Equilibre', 'Optimal', 'Eco', '2', '3', '0');
                viderRecap();
                montreDiv('spanFormuleInitial');
                montreDiv('divTarifMensuelInitial');
                montreDiv('tarifFormuleRecap');
                montreDiv('tarifFormuleAnnuelRecap');
                montreDiv('tarifFormuleRecapPrixAnnuel');
                montreDiv('tarifFormuleRecapPrix');
                montreDiv('zoneAvantagesInclus');
                if (document.getElementById('cbExtension125').checked) {
                    montreDiv('oExtension125');
                    montreDivBlock('tarifOptionExt125');
                }
                if (document.getElementById('cbPlusInitial').checked) {
                    montreDiv('oPlusInitial');
                    montreDivBlock('tarifOptionPlusIni');
                }
                majAvantages('reductionFamilialeInitial', nameColonne);
                colonneAffichee = "1";
            }
            var optionSelectionne = verifierOptionSelectionnne('cbExtension125', 'cbPlusInitial');
            switch (optionSelectionne) {
                case 0:
                    majTarifFormule('TarifMensuelFormule2', 'TarifAnnuelFormule2', 'Initial');
                    majTauxRemboursement(false, 'Initial');
                    break;
                case 1:
                    majTarifFormule('TarifMensuelFormule2Extension125', 'TarifAnnuelFormule2Extension125', 'Initial');
                    majTauxRemboursement(true, 'Initial');
                    break;
                case 2:
                    majTarifFormule('TarifMensuelFormule2PlusInitial', 'TarifAnnuelFormule2PlusInitial', 'Initial');
                    majTauxRemboursement(false, 'Initial');
                    break;
                case 9:
                    majTarifFormule('TarifMensuelFormule2ToutesOptions', 'TarifAnnuelFormule2ToutesOptions', 'Initial');
                    majTauxRemboursement(true, 'Initial');
                    break;
            }
            majTarifRecap('spanTotalTarifFormuleInitial', 'spanTarifAnnuelInitial');
            break;
        case "2":
            if (colonneAffichee != "2") {
                document.getElementById('rbFormuleEquilibre').checked = true;
                colorerColonne('Equilibre', '2');
                decolorerColonnes('Optimal', 'Eco', 'Initial', '3', '0', '1');
                viderRecap();
                montreDiv('spanFormuleEquilibre');
                montreDiv('divTarifMensuelEquilibre');
                montreDiv('tarifFormuleRecap');
                montreDiv('tarifFormuleAnnuelRecap');
                montreDiv('tarifFormuleRecapPrixAnnuel');
                montreDiv('tarifFormuleRecapPrix');
                montreDiv('zoneAvantagesInclus');
                if (document.getElementById('cbExtension175').checked) {
                    montreDiv('oExtension175');
                    montreDivBlock('tarifOptionExt175');
                }
                if (document.getElementById('cbPlusEquilibre').checked) {
                    montreDiv('oPlusEquilibre');
                    montreDivBlock('tarifOptionPlusEqui');
                }
                majAvantages('reductionFamilialeEquilibre', nameColonne);
                colonneAffichee = "2";
            }
            var optionSelectionne = verifierOptionSelectionnne('cbExtension175', 'cbPlusEquilibre');
            switch (optionSelectionne) {
                case 0:
                    majTarifFormule('TarifMensuelFormule3', 'TarifAnnuelFormule3', 'Equilibre');
                    majTauxRemboursement(false, 'Equilibre');
                    break;
                case 1:
                    majTarifFormule('TarifMensuelFormule3Extension175', 'TarifAnnuelFormule3Extension175', 'Equilibre');
                    majTauxRemboursement(true, 'Equilibre');
                    break;
                case 2:
                    majTarifFormule('TarifMensuelFormule3PlusEquilibre', 'TarifAnnuelFormule3PlusEquilibre', 'Equilibre');
                    majTauxRemboursement(false, 'Equilibre');
                    break;
                case 9:
                    majTarifFormule('TarifMensuelFormule3ToutesOptions', 'TarifAnnuelFormule3ToutesOptions', 'Equilibre');
                    majTauxRemboursement(true, 'Equilibre');
                    break;
            }
            majTarifRecap('spanTotalTarifFormuleEquilibre', 'spanTarifAnnuelEquilibre');
            break;
        case "3":
            if (colonneAffichee != "3") {
                document.getElementById('rbFormuleOptimal').checked = true;
                colorerColonne('Optimal', '3');
                decolorerColonnes('Eco', 'Initial', 'Equilibre', '0', '1', '2');
                viderRecap();
                montreDiv('spanFormuleOptimal');
                montreDiv('divTarifMensuelOptimal');
                montreDiv('tarifFormuleRecap');
                montreDiv('tarifFormuleAnnuelRecap');
                montreDiv('tarifFormuleRecapPrixAnnuel');
                montreDiv('tarifFormuleRecapPrix');
                montreDiv('zoneAvantagesInclus');
                if (document.getElementById('cbExtension250').checked) {
                    montreDiv('oExtension250');
                    montreDivBlock('tarifOptionExt250');
                }
                if (document.getElementById('cbPlusOptimal').checked) {
                    montreDiv('oPlusOptimal');
                    montreDivBlock('tarifOptionPlusOpti');
                }
                majAvantages('reductionFamilialeOptimal', nameColonne);
                colonneAffichee = "3";
            }
            var optionSelectionne = verifierOptionSelectionnne('cbExtension250', 'cbPlusOptimal');
            switch (optionSelectionne) {
                case 0:
                    majTarifFormule('TarifMensuelFormule4', 'TarifAnnuelFormule4', 'Optimal');
                    majTauxRemboursement(false, 'Optimal');
                    break;
                case 1:
                    majTarifFormule('TarifMensuelFormule4Extension250', 'TarifAnnuelFormule4Extension250', 'Optimal');
                    majTauxRemboursement(true, 'Optimal');
                    break;
                case 2:
                    majTarifFormule('TarifMensuelFormule4PlusOptimal', 'TarifAnnuelFormule4PlusOptimal', 'Optimal');
                    majTauxRemboursement(false, 'Optimal');
                    break;
                case 9:
                    majTarifFormule('TarifMensuelFormule4ToutesOptions', 'TarifAnnuelFormule4ToutesOptions', 'Optimal');
                    majTauxRemboursement(true, 'Optimal');
                    break;
            }
            majTarifRecap('spanTotalTarifFormuleOptimal', 'spanTarifAnnuelOptimal');
            break;
    }
}


function afficherColonne(nameColonne) {
    var elementsColonne = document.getElementsByName(nameColonne);
    var styleElement = "";
    for (i = 0; i < elementsColonne.length; i++) {
        styleElement = elementsColonne[i].className;
        styleElement = styleElement.replace('transparence', '');
        elementsColonne[i].className = styleElement;
    }
}

function griserColonnes(colonne1, colonne2, colonne3) {
    var colonnesAGriser = new Array(colonne1, colonne2, colonne3);
    for (i = 0; i < colonnesAGriser.length; i++) {
        var elementsColonne = document.getElementsByName(colonnesAGriser[i]);
        var styleElement = "";
        for (j = 0; j < elementsColonne.length; j++) {
            styleElement = elementsColonne[j].className;
            if (styleElement.search('transparence') == -1) {
                styleElement = styleElement + " transparence";
                elementsColonne[j].className = styleElement;
            }
        }
    }
}

function viderRecap() {
    cacheDiv('spanFormuleEco');
    cacheDiv('spanFormuleInitial');
    cacheDiv('spanFormuleEquilibre');
    cacheDiv('spanFormuleOptimal');
    cacheDiv('divTarifMensuelEco');
    cacheDiv('divTarifMensuelInitial');
    cacheDiv('divTarifMensuelEquilibre');
    cacheDiv('divTarifMensuelOptimal');
    cacheDiv('tarifOptionPharma');
    cacheDiv('tarifOptionExt125');
    cacheDiv('tarifOptionPlusIni');
    cacheDiv('tarifOptionExt175');
    cacheDiv('tarifOptionPlusEqui');
    cacheDiv('tarifOptionExt250');
    cacheDiv('tarifOptionPlusOpti');
    cacheDiv('formuleVide');
    cacheDiv('oExtensionPharmacie');
    cacheDiv('oExtension125');
    cacheDiv('oExtension175');
    cacheDiv('oExtension250');
    cacheDiv('oPlusInitial');
    cacheDiv('oPlusEquilibre');
    cacheDiv('oPlusOptimal');
    //    cacheDiv('avantages');
    cacheDiv('reductionFamiliale');
    cacheDiv('liReductionFamiliale');
    cacheDiv('reductionFamilialeEco');
    cacheDiv('reductionFamilialeInitial');
    cacheDiv('reductionFamilialeEquilibre');
    cacheDiv('reductionFamilialeOptimal');
    cacheDiv('tiersPayant');
    cacheDiv('liTiersPayant');
    cacheDiv('enfantGratuit');
    cacheDiv('liEnfantGratuit');
    cacheDiv('virgule');
    cacheDiv('etPosition1');
    cacheDiv('etPosition2');
}

function majOptionRecap(optionCochee, spanOption) {
    if (optionCochee) {
        montreDiv(spanOption)
    }
    else {
        cacheDiv(spanOption)
    }
}

function majOptionPrixRecap(optionCochee, spanOption) {
    if (optionCochee) {
        montreDivBlock(spanOption)
    }
    else {
        cacheDiv(spanOption)
    }
}


function majOptionRecap2(optionCochee, spanOption1, spanOption2) {
    if (optionCochee) {
        montreDiv(spanOption1)
        montreDiv(spanOption2)
    }
    else {
        cacheDiv(spanOption1)
        cacheDiv(spanOption2)
    }
}

function verifierOptionSelectionnne(option1, option2) {
    var optionSelectionne = 0;

    if (document.getElementById(option1).checked) {
        optionSelectionne = 1;
    }

    if (option2 != "" && document.getElementById(option2).checked) {
        if (optionSelectionne == 1)
        { optionSelectionne = 9; }
        else
        { optionSelectionne = 2; }
    }
    return optionSelectionne;
}

function diviserPar100(inNombre) {
    if (!isNaN(inNombre)) {
        var result = new Number(inNombre / 100);
        return result.toFixed(2).toString();
    }
    return "";
}

function majTarifColonnes() {

    var optionSelectionne = verifierOptionSelectionnne('cbExtensionPharmacie', '');
    switch (optionSelectionne) {
        case 0:
            majTarifFormule('TarifMensuelFormule1', 'TarifAnnuelFormule1', 'Eco');
            break;
        case 1:
            majTarifFormule('TarifMensuelFormule1ExtensionPharmacie', 'TarifAnnuelFormule1ExtensionPharmacie', 'Eco');
            break;
    }

    optionSelectionne = verifierOptionSelectionnne('cbExtension125', 'cbPlusInitial');
    switch (optionSelectionne) {
        case 0:
            majTarifFormule('TarifMensuelFormule2', 'TarifAnnuelFormule2', 'Initial');
            break;
        case 1:
            majTarifFormule('TarifMensuelFormule2Extension125', 'TarifAnnuelFormule2Extension125', 'Initial');
            break;
        case 2:
            majTarifFormule('TarifMensuelFormule2PlusInitial', 'TarifAnnuelFormule2PlusInitial', 'Initial');
            break;
        case 9:
            majTarifFormule('TarifMensuelFormule2ToutesOptions', 'TarifAnnuelFormule2ToutesOptions', 'Initial');
            break;
    }

    optionSelectionne = verifierOptionSelectionnne('cbExtension175', 'cbPlusEquilibre');
    switch (optionSelectionne) {
        case 0:
            majTarifFormule('TarifMensuelFormule3', 'TarifAnnuelFormule3', 'Equilibre');
            break;
        case 1:
            majTarifFormule('TarifMensuelFormule3Extension175', 'TarifAnnuelFormule3Extension175', 'Equilibre');
            break;
        case 2:
            majTarifFormule('TarifMensuelFormule3PlusEquilibre', 'TarifAnnuelFormule3PlusEquilibre', 'Equilibre');
            break;
        case 9:
            majTarifFormule('TarifMensuelFormule3ToutesOptions', 'TarifAnnuelFormule3ToutesOptions', 'Equilibre');
            break;
    }

    optionSelectionne = verifierOptionSelectionnne('cbExtension250', 'cbPlusOptimal');
    switch (optionSelectionne) {
        case 0:
            majTarifFormule('TarifMensuelFormule4', 'TarifAnnuelFormule4', 'Optimal');
            break;
        case 1:
            majTarifFormule('TarifMensuelFormule4Extension250', 'TarifAnnuelFormule4Extension250', 'Optimal');
            break;
        case 2:
            majTarifFormule('TarifMensuelFormule4PlusOptimal', 'TarifAnnuelFormule4PlusOptimal', 'Optimal');
            break;
        case 9:
            majTarifFormule('TarifMensuelFormule4ToutesOptions', 'TarifAnnuelFormule4ToutesOptions', 'Optimal');
            break;
    }
}

function majTarifFormule(donneeTarifMensuel, donneeTarifAnnuel, formuleChoisie) {

    var tarifMensuel = document.getElementById(donneeTarifMensuel).innerHTML;
    var tarifAnnuel = document.getElementById(donneeTarifAnnuel).innerHTML;
    document.getElementById('spanTarifMensuel' + formuleChoisie).innerHTML = tarifMensuel;
    document.getElementById('spanTotalTarifFormule' + formuleChoisie).innerHTML = tarifMensuel;
    document.getElementById('spanTarifAnnuel' + formuleChoisie).innerHTML = tarifAnnuel;
}

function majTarifRecap(donneeTarifMensuel, donneeTarifAnnuel, formuleChoisie) {

    var tarifMensuel = document.getElementById(donneeTarifMensuel).innerHTML;
    var tarifAnnuel = document.getElementById(donneeTarifAnnuel).innerHTML;

    //document.getElementById('spanTarifMensuel' + formuleChoisie).innerHTML = tarifMensuel; // Pour éviter que le tarif de la formule soit additionnée avec le prix des options
    document.getElementById('spanTarifAnnuel' + formuleChoisie).innerHTML = tarifAnnuel;
    document.getElementById('montantMensuel').innerHTML = tarifMensuel;
    document.getElementById('montantAnnuel').innerHTML = tarifAnnuel;
}

function majTarifRecap(donneeTarifMensuel, donneeTarifAnnuel) {
    var tarifMensuel = document.getElementById(donneeTarifMensuel).innerHTML;
    document.getElementById('montantMensuel').innerHTML = tarifMensuel;
    var tarifAnnuel = document.getElementById(donneeTarifAnnuel).innerHTML;
    document.getElementById('montantAnnuel').innerHTML = tarifAnnuel;
}

function majAvantages(divReductionFamiliale, formule) {

    var virgule = ", ";
    var et = " et ";
    var nbAvantages = 0;

    var reductionFamiliale = document.getElementById(divReductionFamiliale).innerHTML;
    if (reductionFamiliale != 0) {
        montreDiv('reductionFamiliale');
        montreLi('liReductionFamiliale');
        montreDiv(divReductionFamiliale);
        nbAvantages = nbAvantages + 1;
    }

    if (formule != 0) {
        montreDiv('tiersPayant');
        montreLi('liTiersPayant');
        nbAvantages = nbAvantages + 3;
    }

    var gratuite = document.getElementById('valeurGratuite').innerHTML;
    if (gratuite != 0) {
        //        montreDiv('avantages');
        montreDiv('enfantGratuit');
        montreLi('liEnfantGratuit');
        nbAvantages = nbAvantages + 5;
    }

    switch (nbAvantages) {
        case 4:
        case 6:
            montreDiv('etPosition1');
            break;
        case 8:
            montreDiv('etPosition2');
            break;
        case 9:
            montreDiv('virgule');
            montreDiv('etPosition2');
            break;
    }
}

function majTauxRemboursement(optionSelectionnee, formule) {
    if (optionSelectionnee) {
        cacheDiv('spanTauxCV' + formule);
        montreDiv('spanTauxCV' + formule + 'Extension');
        cacheDiv('spanTauxDent' + formule);
        montreDiv('spanTauxDent' + formule + 'Extension');
        cacheDiv('spanTauxHono' + formule);
        montreDiv('spanTauxHono' + formule + 'Extension');
        cacheDiv('spanTauxOptique' + formule);
        montreDiv('spanTauxOptique' + formule + 'Extension');
    }
    else {
        montreDiv('spanTauxCV' + formule);
        cacheDiv('spanTauxCV' + formule + 'Extension');
        montreDiv('spanTauxDent' + formule);
        cacheDiv('spanTauxDent' + formule + 'Extension');
        montreDiv('spanTauxHono' + formule);
        cacheDiv('spanTauxHono' + formule + 'Extension');
        montreDiv('spanTauxOptique' + formule);
        cacheDiv('spanTauxOptique' + formule + 'Extension');
    }
}

function cacherAides() {
    cacheAide('aideOptionExtensionPharmacie');
    cacheAide('aideOptionExtension125');
    cacheAide('aideOptionPlusInitial');
    cacheAide('aideOptionExtension175');
    cacheAide('aideOptionPlusEquilibre');
    cacheAide('aideOptionExtension250');
    cacheAide('aideOptionPlusOptimal');
}

function ecrireTexteDansElement(texte, elementDestinataire) {
    document.getElementById(elementDestinataire).innerHTML = texte;
}

function colorerColonne(idFormule, idColonne) {
    //remplacerClasse('pancarteTarifMensuel' + idFormule, 'tarifMensuel', 'tarifSelectMensuel');
    remplacerClasse(idColonne, 'head' + idFormule, 'headSelect' + idFormule);

    var elementsColonne = document.getElementsByName(idColonne);
    var styleElement = "";
    for (j = 0; j < elementsColonne.length; j++) {
        styleElement = elementsColonne[j].className;
        if (styleElement.search('fondVert') == -1) {
            styleElement = styleElement + ' fondVert';
            elementsColonne[j].className = styleElement;
        }
    }
    //    var helpOption1 = 'Opt1' + idFormule;
    //    cacheDiv(helpOption1);
    //    montreDiv('Select' + helpOption1);

    //    if (idFormule != 'Eco') {
    //        var helpOption2 = 'Opt2' + idFormule;
    //        cacheDiv(helpOption2);
    //        montreDiv('Select' + helpOption2);
    //    }
}

function decolorerColonnes(idFormule1, idFormule2, idFormule3, idColonne1, idColonne2, idColonne3) {
    //    var pancartesADecolorer = new Array('pancarteTarifMensuel' + idFormule1, 'pancarteTarifMensuel' + idFormule2, 'pancarteTarifMensuel' + idFormule3);
    //    for (i = 0; i < pancartesADecolorer.length; i++) {
    //        remplacerClasse(pancartesADecolorer[i], 'tarifSelectMensuel', 'tarifMensuel');
    //    }

    remplacerClasse(idColonne1, 'headSelect' + idFormule1, 'head' + idFormule1);
    remplacerClasse(idColonne2, 'headSelect' + idFormule2, 'head' + idFormule2);
    remplacerClasse(idColonne3, 'headSelect' + idFormule3, 'head' + idFormule3);

    var colonnesADecolorer = new Array(idColonne1, idColonne2, idColonne3);
    for (i = 0; i < colonnesADecolorer.length; i++) {
        var elementsColonne = document.getElementsByName(colonnesADecolorer[i]);
        var styleElement = "";
        for (j = 0; j < elementsColonne.length; j++) {
            styleElement = elementsColonne[j].className;
            styleElement = styleElement.replace('fondVert', '');
            elementsColonne[j].className = styleElement;
        }
    }

    //    var listeFormules = new Array(idFormule1, idFormule2, idFormule3)
    //    for (j = 0; j < listeFormules.length; j++) {
    //        var idHelpOption1 = 'Opt1' + listeFormules[j];
    //        cacheDiv('Select' + idHelpOption1);
    //        montreDiv(idHelpOption1);

    //        if (listeFormules[j] != 'Eco') {
    //            var idHelpOption2 = 'Opt2' + listeFormules[j];
    //            cacheDiv('Select' + idHelpOption2);
    //            montreDiv(idHelpOption2);
    //        }
    //    }
}

function remplacerClasse(element, ancienneClasse, nouvelleClasse) {
    var classe = document.getElementById(element).className;
    classe = classe.replace(ancienneClasse, '');
    if (classe.search(nouvelleClasse) == -1) {
        classe = classe + ' ' + nouvelleClasse;
        document.getElementById(element).className = classe;
    }
}

function ajouterClasse(element, classe) {
    document.getElementById(element).className = classe;
}

function viderClasse(element) {
    document.getElementById(element).className = '';
}

function expand(ligne) {
    viderClasse('exGarantie' + ligne);
    montreDiv('collapse' + ligne);
    cacheDiv('expand' + ligne);
}

function collapse(ligne) {
    ajouterClasse('exGarantie' + ligne, 'invisible');
    cacheDiv('collapse' + ligne);
    montreDiv('expand' + ligne);
}

/*function montreExempleRemboursement(idExemple) {
    ajouterClasse('contenuTarif', 'opacity50');
    montreDiv('ExempleRemboursement');
    montreDiv(idExemple);
}

function cacheExempleRemboursement() {
    viderClasse('contenuTarif');
    cacheDiv('ExempleRemboursement');
    cacheDiv('exRembConsultation');
    cacheDiv('exRembDentaire');
    cacheDiv('exRembOrthodontie');
    cacheDiv('exRembChirurgie');
    cacheDiv('exRembChambre');
    cacheDiv('exRembSejour');
    cacheDiv('exRembOptique');
}*/

/* Fonction relative au Recap après Tarif */
function recapSuiteTarif(selectFormule, listeExtensions, listePlus) {

    var formule;
    var extension;
    var plus;

    switch (selectFormule) {
        case 'FEco':
            formule = 'Eco';
            extension = listeExtensions[0];
            majRecapFormuleSuiteTarif(formule);
            majRecapOptionSuiteTarif(formule, extension, '');
            majTotalTarif(formule, extension, '')
            break;
        case 'FIni100':
            formule = 'Initial';
            extension = listeExtensions[1];
            plus = listePlus[0];
            majRecapFormuleSuiteTarif(formule);
            majRecapOptionSuiteTarif(formule, extension, plus);
            majTotalTarif(formule, extension, plus)
            break;
        case 'FEqui150':
            formule = 'Equilibre';
            extension = listeExtensions[2];
            plus = listePlus[1];
            majRecapFormuleSuiteTarif(formule);
            majRecapOptionSuiteTarif(formule, extension, plus);
            majTotalTarif(formule, extension, plus)
            break;
        case 'FOpti200':
            formule = 'Optimal';
            extension = listeExtensions[3];
            plus = listePlus[2];
            majRecapFormuleSuiteTarif(formule);
            majRecapOptionSuiteTarif(formule, extension, plus);
            majTotalTarif(formule, extension, plus)
            break;
    }
}

function majRecapFormuleSuiteTarif(intituleFormule) {
    ecrireElementVersElement('titreFormule' + intituleFormule, 'selectFormule');
    ecrireElementVersElement('descriptionFormule' + intituleFormule, 'descriptionFormule');
    ecrireElementVersElement('tarifFormule' + intituleFormule, 'tarifFormule');
}

function majRecapOptionSuiteTarif(formule, extension, plus) {
    if (extension == '1') {
        viderClasse('ligneRecapExtension');
        ecrireTexteDansElement('1 ', 'nombreOptionExtension');
        ecrireElementVersElement('titreExtension' + formule, 'selectExtension');
        ecrireElementVersElement('descriptionExtension' + formule, 'descriptionExtension');
        ecrireElementVersElement('tarifExtension' + formule, 'tarifExtension');
    }
    if (plus == '1' && formule != 'Eco') {
        viderClasse('ligneRecapPlus');
        if (extension == '1') {
            ecrireTexteDansElement('2 ', 'nombreOptionPlus');
        }
        else {
            ecrireTexteDansElement('1 ', 'nombreOptionPlus');
        }
        ecrireElementVersElement('titrePlus' + formule, 'selectPlus');
        ecrireElementVersElement('descriptionPlus' + formule, 'descriptionPlus');
        ecrireElementVersElement('tarifPlus' + formule, 'tarifPlus');
    }
}

function majTotalTarif(formule, extension, plus) {
    if (extension == '1' && plus == '1') {
        ecrireElementVersElement('TarifMensuel' + formule + 'ToutesOptions', 'recapTarifMensuel');
        ecrireElementVersElement('TarifAnnuel' + formule + 'ToutesOptions', 'recapTarifAnnuel');
    }
    else if (extension == '1' && (plus == '0' || plus == '')) {
        ecrireElementVersElement('TarifMensuel' + formule + 'Extension', 'recapTarifMensuel');
        ecrireElementVersElement('TarifAnnuel' + formule + 'Extension', 'recapTarifAnnuel');
    }
    else if (extension == '0' && plus == '1') {
        ecrireElementVersElement('TarifMensuel' + formule + 'Plus', 'recapTarifMensuel');
        ecrireElementVersElement('TarifAnnuel' + formule + 'Plus', 'recapTarifAnnuel');
    }
    else if (extension == '0' && (plus == '0' || plus == '')) {
        ecrireElementVersElement('TarifMensuel' + formule, 'recapTarifMensuel');
        ecrireElementVersElement('TarifAnnuel' + formule, 'recapTarifAnnuel');
    }
}

function ecrireElementVersElement(elementSource, elementDestinataire) {
    document.getElementById(elementDestinataire).innerHTML = document.getElementById(elementSource).innerHTML;
}

function initModeReception(envoiParMail) {
    if (envoiParMail == 'true') {
        cacheQuestionsCourrier();
        afficheQuestionsMail();
    }
    else {
        cacheQuestionsMail();
        afficheQuestionsCourrier();
    }
}

function afficheQuestionsCourrier() {
    afficheQuestionComplete('TitreAssure1ModeReception');
    afficheQuestionComplete('NomAssure1ModeReception');
    afficheQuestionComplete('PrenomAssure1ModeReception');
    afficheQuestionComplete('NumeroVoieModeReception');
    afficheQuestionComplete('ComplementModeReception');
    afficheQuestionComplete('LieuDitModeReception');
    afficheQuestionComplete('CodePostalModeReception');
}

function cacheQuestionsCourrier() {
    cacheQuestion('TitreAssure1ModeReception');
    cacheQuestion('NomAssure1ModeReception');
    cacheQuestion('PrenomAssure1ModeReception');
    cacheQuestion('NumeroVoieModeReception');
    cacheQuestion('ComplementModeReception');
    cacheQuestion('LieuDitModeReception');
    cacheQuestion('CodePostalModeReception');
}

function afficheQuestionsMail() {
    afficheQuestionComplete('EmailModeReception');
    afficheQuestionComplete('ConfirmeEmailModeReception');
}

function cacheQuestionsMail() {
    cacheQuestion('EmailModeReception');
    cacheQuestion('ConfirmeEmailModeReception');
}

function viderQuestionsCourrier() {
    document.getElementById('reponseNomAssure1ModeReceptionTextBox').value = '';
    document.getElementById('reponsePrenomAssure1ModeReceptionTextBox').value = '';
    document.getElementById('reponseNumeroVoieModeReceptionTextBox').value = '';
    document.getElementById('reponseComplementModeReceptionTextBox').value = '';
    document.getElementById('reponseLieuDitModeReceptionTextBox').value = '';
    document.getElementById('reponseCodePostalModeReceptionTextBox').value = '(Code postal ou Ville)';
}

function viderQuestionsMail() {
    document.getElementById('reponseEmailModeReceptionTextBox').value = '';
    document.getElementById('reponseConfirmeEmailModeReceptionTextBox').value = '';
}

function validerModeReception() {
    if (document.getElementById('rbModeEnvoiParEmail').checked) {
        viderQuestionsCourrier();
    }
    else if (document.getElementById('rbModeEnvoiParCourrier').checked) {
        viderQuestionsMail();
    }
}

// Même fonction que validerSansAttente mais pour les appels dans le code (sans click)
function validerSansClick(event) {
    testSecurite("securiserSuivant");
    //document.forms["form1"].elements.abandonQuestionnaire.value ='false';
    document.forms["form1"].commande.value = 'suivant';
    document.forms["form1"].submit();
}

/* Fonctions relatives à l'écran de saisie du RIB */
function inscrireReponseRIB() {
    var codeBanque = document.getElementById('codeBanqueRIB').value;
    var codeGuichet = document.getElementById('codeGuichetRIB').value;
    var numeroCompte = document.getElementById('numeroCompteRIB').value.toUpperCase(); // Compte avec des lettres
    var cle = document.getElementById('cleRIB').value;

    document.getElementById('reponseRibCoordonneesBancaireTextBox').value = codeBanque + codeGuichet + numeroCompte + cle;
}

function inscrireDonneeAutomateRIB() {
    var donneeAutomateRIB = document.getElementById('reponseRibCoordonneesBancaireTextBox').value;
    
    if (donneeAutomateRIB != '' && donneeAutomateRIB != null && donneeAutomateRIB.length == 23) {
        var codeBanque = donneeAutomateRIB.substr(0, 5);
        var codeGuichet = donneeAutomateRIB.substr(5, 5);
        var numeroCompte = donneeAutomateRIB.substr(10, 11);
        var cle = donneeAutomateRIB.substr(21, 2);

        document.getElementById('codeBanqueRIB').value = codeBanque;
        document.getElementById('codeGuichetRIB').value = codeGuichet;
        document.getElementById('numeroCompteRIB').value = numeroCompte;
        document.getElementById('cleRIB').value = cle;
    }

    if (RibEnErreur()) {
        cacheDiv('RibCoordonneesBancaire');
        cacheDiv('reponseRibCoordonneesBancaire');
        ajouterStyle('intituleAvantReponseRIB', ' fontColorRed');
    }
}

function RibEnErreur() {
    if (document.getElementById('RibCoordonneesBancaire').erreur == "1"
    || (document.getElementById('reponseRibCoordonneesBancaireTextBox').value.length > 0
    && document.getElementById('reponseRibCoordonneesBancaireTextBox').value.length != 23))
    { return true; }
    else { return false; }
}

function inscrireDonneeAutomateNumeroSS(nomBeneficiaire) {
    if (document.getElementById('reponseNumeroSS' + nomBeneficiaire + 'TextBox') != null)
    {    
        var donneeAutomateSS = document.getElementById('reponseNumeroSS' + nomBeneficiaire + 'TextBox').value;

        if (donneeAutomateSS != '' && donneeAutomateSS != null) {
            var numeroSS1 = donneeAutomateSS.substr(0, 1);
            var numeroSS2 = donneeAutomateSS.substr(1, 2);
            var numeroSS3 = donneeAutomateSS.substr(3, 2);
            var numeroSS4 = donneeAutomateSS.substr(5, 2);
            var numeroSS5 = donneeAutomateSS.substr(7, 3);
            var numeroSS6 = donneeAutomateSS.substr(10, 3);
            var numeroSS7 = donneeAutomateSS.substr(13, 2);

            document.getElementById('numSecu' + nomBeneficiaire + 'Part1').value = numeroSS1;
            document.getElementById('numSecu' + nomBeneficiaire + 'Part2').value = numeroSS2;
            document.getElementById('numSecu' + nomBeneficiaire + 'Part3').value = numeroSS3;
            document.getElementById('numSecu' + nomBeneficiaire + 'Part4').value = numeroSS4;
            document.getElementById('numSecu' + nomBeneficiaire + 'Part5').value = numeroSS5;
            document.getElementById('numSecu' + nomBeneficiaire + 'Part6').value = numeroSS6;
            document.getElementById('numSecu' + nomBeneficiaire + 'Part7').value = numeroSS7;
        }
        if (nomBeneficiaire == "Souscripteur" && numeroSSEnErreur(nomBeneficiaire)) {
            cacheDiv('NumeroSS' + nomBeneficiaire);
            cacheDiv('reponseNumeroSS' + nomBeneficiaire);
            ajouterStyle('intituleAvantReponseNumeroSS' + nomBeneficiaire, ' fontColorRed');
        }
        else if (nomBeneficiaire != "Souscripteur" && numeroSSEnErreur(nomBeneficiaire)) {
            cacheDiv('NumeroSS' + nomBeneficiaire);
            cacheDiv('reponseNumeroSS' + nomBeneficiaire);
            ajouterStyle('NumeroSS' + nomBeneficiaire + 'RadioBouton', ' fontColorRed');
        }    
    }
}

function numeroSSEnErreur(nomBeneficiaire) {
    if (document.getElementById('NumeroSS' + nomBeneficiaire).erreur == "1"
    || (document.getElementById('reponseNumeroSS' + nomBeneficiaire + 'TextBox').value.length > 0
    && document.getElementById('reponseNumeroSS' + nomBeneficiaire + 'TextBox').value.length != 15)) {
        return true; }
        else {
         return false;
    }
}

function inscrireDonneeAutomateNumeroOrganisme(nomBeneficiaire) {
    if (document.getElementById('reponseOrganismeAffiliation' + nomBeneficiaire + 'TextBox') != null)
    {
        var donneeAutomateOrganisme = document.getElementById('reponseOrganismeAffiliation' + nomBeneficiaire + 'TextBox').value;

        if (donneeAutomateOrganisme != '' && donneeAutomateOrganisme != null) {
            var numeroOrganisme1 = donneeAutomateOrganisme.substr(0, 2);
            var numeroOrganisme2 = donneeAutomateOrganisme.substr(2, 3);
            var numeroOrganisme3 = donneeAutomateOrganisme.substr(5, 3);
            var numeroOrganisme4 = donneeAutomateOrganisme.substr(8, 1);
           

            document.getElementById('orgaAffil' + nomBeneficiaire + 'Part1').value = numeroOrganisme1;
            document.getElementById('orgaAffil' + nomBeneficiaire + 'Part2').value = numeroOrganisme2;
            document.getElementById('orgaAffil' + nomBeneficiaire + 'Part3').value = numeroOrganisme3;
            document.getElementById('orgaAffil' + nomBeneficiaire + 'Part4').value = numeroOrganisme4;
        }
        if (nomBeneficiaire == "Souscripteur" && numeroOrganismeEnErreur(nomBeneficiaire)) {
            cacheDiv('OrganismeAffiliation' + nomBeneficiaire);
            cacheDiv('reponseOrganismeAffiliation' + nomBeneficiaire + 'TextBox');
            ajouterStyle('intituleAvantReponseOrganismeAffiliation' + nomBeneficiaire, ' fontColorRed');
        }
        else if (nomBeneficiaire != "Souscripteur" && numeroOrganismeEnErreur(nomBeneficiaire)) {
            cacheDiv('intituleOrganismeAffiliation' + nomBeneficiaire);
            cacheDiv('reponseOrganismeAffiliation' + nomBeneficiaire + 'TextBox');
            ajouterStyle('intituleMasqueNumeroOrganisme' + nomBeneficiaire, ' fontColorRed');
        } 
    }
}

function numeroOrganismeEnErreur(nomBeneficiaire) {
    if (document.getElementById('OrganismeAffiliation' + nomBeneficiaire).erreur == "1"
    || (document.getElementById('reponseOrganismeAffiliation' + nomBeneficiaire + 'TextBox').value.length > 0
    && document.getElementById('reponseOrganismeAffiliation' + nomBeneficiaire + 'TextBox').value.length != 9)) {
        return true;
    }
    else {
        return false;
    }
}

function inscrireReponseOrganismeAffiliation(elementDestination, assure) {
    var orgaAffiliationPart1 = document.getElementById('orgaAffil' + assure + 'Part1').value;
    var orgaAffiliationPart2 = document.getElementById('orgaAffil' + assure + 'Part2').value;
    var orgaAffiliationPart3 = document.getElementById('orgaAffil' + assure + 'Part3').value;
    var orgaAffiliationPart4 = document.getElementById('orgaAffil' + assure + 'Part4').value;
    
    document.getElementById(elementDestination).value = orgaAffiliationPart1 + orgaAffiliationPart2 + orgaAffiliationPart3 + orgaAffiliationPart4;
}

function inscrireReponseSecuriteSociale(elementDestination, assure) {
    var numSecuPart1 = document.getElementById('numSecu' + assure + 'Part1').value;
    var numSecuPart2 = document.getElementById('numSecu' + assure + 'Part2').value;
    var numSecuPart3 = document.getElementById('numSecu' + assure + 'Part3').value;
    var numSecuPart4 = document.getElementById('numSecu' + assure + 'Part4').value.toUpperCase(); // Cas de la Corse : 2A,2B
    var numSecuPart5 = document.getElementById('numSecu' + assure + 'Part5').value;
    var numSecuPart6 = document.getElementById('numSecu' + assure + 'Part6').value;
    var numSecuPart7 = document.getElementById('numSecu' + assure + 'Part7').value;

    document.getElementById(elementDestination).value = numSecuPart1 + numSecuPart2 + numSecuPart3 + numSecuPart4 + numSecuPart5 + numSecuPart6 + numSecuPart7;
}

function passerInputSuivant(enCours, suivant, limite) {
    if (enCours.value.length == limite)
    { document.getElementById(suivant).focus(); }
}

/* Fonction relative au Recap de l'écran signature */
function recapAdhesion(selectFormule, listeExtensions, listePlus) {

    var formule;
    var extension;
    var plus;

    switch (selectFormule) {
        case 'FEco':
            formule = 'Eco';
            extension = listeExtensions[0];
            majRecapFormuleAdhesion(formule);
            majRecapOptionAdhesion(formule, extension, '');
            majTotalTarifAdhesion(formule, extension, '')
            break;
        case 'FIni100':
            formule = 'Initial';
            extension = listeExtensions[1];
            plus = listePlus[0];
            majRecapFormuleAdhesion(formule);
            majRecapOptionAdhesion(formule, extension, plus);
            majTotalTarifAdhesion(formule, extension, plus)
            break;
        case 'FEqui150':
            formule = 'Equilibre';
            extension = listeExtensions[2];
            plus = listePlus[1];
            majRecapFormuleAdhesion(formule);
            majRecapOptionAdhesion(formule, extension, plus);
            majTotalTarifAdhesion(formule, extension, plus)
            break;  
        case 'FOpti200':
            formule = 'Optimal';
            extension = listeExtensions[3];
            plus = listePlus[2];
            majRecapFormuleAdhesion(formule);
            majRecapOptionAdhesion(formule, extension, plus);
            majTotalTarifAdhesion(formule, extension, plus)
            break;
    }
}

function inscrireDonneesSignature(lstDonneesSignatures) {
    if (lstDonneesSignatures[0] == 'true') {
        document.getElementById('rbreponseDeclarationSignature').checked = true;
    }
    if (lstDonneesSignatures[1] == 'true') {
        document.getElementById('rbreponseAcceptationConventionPreuveSignature').checked = true;
    }
    if (lstDonneesSignatures[2] == 'true') {
        document.getElementById('rbreponseEngagementPaiementSignature').checked = true;
    }
    if (lstDonneesSignatures[3] == 'true') {
        document.getElementById('rbreponseAdhesionACBSSignature').checked = true;
    }
    if (lstDonneesSignatures[4] == 'true') {
        document.getElementById('rbreponseAffirmationRegimeTNSSignature').checked = true;
    }
}

/* Fonction relative à la confirmation de la souscription */
function recapConfirmationSouscription(selectFormule, listeExtensions, listePlus) {
    var formule;
    var extension;
    var plus;

    switch (selectFormule) {
        case 'FEco':
            formule = 'Eco';
            extension = listeExtensions[0];
            majFormuleConfirmationASouscription(formule);
            majOptionConfirmationASouscription(formule, extension,plus);
            majTarifConfirmationSouscription(formule, extension, plus);
            break;
        case 'FIni100':
            formule = 'Initial';
            extension = listeExtensions[1];
            plus = listePlus[0];
            majFormuleConfirmationASouscription(formule);
            majOptionConfirmationASouscription(formule, extension,plus);
            majTarifConfirmationSouscription(formule, extension, plus);
            break;
        case 'FEqui150':
            formule = 'Equilibre';
            extension = listeExtensions[2];
            plus = listePlus[1];
            majFormuleConfirmationASouscription(formule);
            majOptionConfirmationASouscription(formule, extension,plus);
            majTarifConfirmationSouscription(formule, extension, plus);
            break;
        case 'FOpti200':
            formule = 'Optimal';
            extension = listeExtensions[3];
            plus = listePlus[2];
            majFormuleConfirmationASouscription(formule);
            majOptionConfirmationASouscription(formule, extension,plus);
            majTarifConfirmationSouscription(formule, extension, plus);
            break;
    }
}

// Méthodes pour mettre à jour les champs de la page Confirmation de Souscription
function majFormuleConfirmationASouscription(intituleFormule) {
    ecrireElementVersElement('titreFormule' + intituleFormule + 'Souscription', 'formuleConfirmationSouscription');
}

function majOptionConfirmationASouscription(formule, extension, plus) {
    if (extension == '1') {
        ecrireElementVersElement('titreExtension' + formule + 'Souscription', 'optionConfirmationSouscription');
    }
    if (plus == '1' && formule != 'Eco') {
        ecrireElementVersElement('titrePlus' + formule + 'Souscription', 'optionConfirmationSouscription');    
    }
    if (extension == '1' && plus == '1') {
        var option = document.getElementById('titreExtension' + formule + 'Souscription').innerHTML + '<br/>' + document.getElementById('titrePlus' + formule + 'Souscription').innerHTML;
        ecrireTexteDansElement(option, 'optionConfirmationSouscription');
    }
    if (extension == '0' && plus == '0') {
        ecrireTexteDansElement('Aucune', 'optionConfirmationSouscription');
    }

    // La seule formule n'ayant pas de d'option "plus" est la formule Eco
    if (plus == null) {
        if (extension == '0') {
            ecrireTexteDansElement('Aucune', 'optionConfirmationSouscription');
        }
    }
}

function majTarifConfirmationSouscription(formule, extension, plus) {
    if (extension == '1' && plus == '1') {
        ecrireElementVersElement('TarifMensuel' + formule + 'ToutesOptions', 'tarifMensuelRecapAdhesion');
    }
    else if (extension == '1' && (plus == '0' || plus == '')) {
        ecrireElementVersElement('TarifMensuel' + formule + 'Extension', 'tarifMensuelRecapAdhesion');
    }
    else if (extension == '0' && plus == '1') {
        ecrireElementVersElement('TarifMensuel' + formule + 'Plus', 'tarifMensuelRecapAdhesion');
    }
    else if (extension == '0' && (plus == '0' || plus == '')) {
        ecrireElementVersElement('TarifMensuel' + formule, 'tarifMensuelRecapAdhesion');
    }
    else if (plus == null) {
        if (extension == '1') {
            ecrireElementVersElement('TarifMensuel' + formule + 'Extension', 'tarifMensuelRecapAdhesion');
        }
        else if (extension == '0') {
            ecrireElementVersElement('TarifMensuel' + formule, 'tarifMensuelRecapAdhesion');
        }
    }
}


function recupTarifMensuel(spanTarifMensuel) {
    //alert(document.getElementById('tarifFormule'));
    document.getElementById(spanTarifMensuel).innerHTML = document.getElementById('tarifFormule').innerHTML;
}

function majRecapFormuleAdhesion(intituleFormule) {
    ecrireElementVersElement('titreFormule' + intituleFormule, 'formuleRecapAdhesion');
}

function majRecapOptionAdhesion(formule, extension, plus) {
    if (extension == '1') {
        montreDivBlock('optionUnique');
        montreDiv('extensionRecapAdhesion');
        ecrireElementVersElement('titreExtension' + formule, 'extensionRecapAdhesion');
    }
    if (plus == '1' && formule != 'Eco') {
        montreDivBlock('optionUnique');
        montreDiv('plusRecapAdhesion');
        ecrireElementVersElement('titrePlus' + formule, 'plusRecapAdhesion');
    }
    if (extension == '1' && plus == '1') {
        cacheDiv('optionUnique');
        montreDivBlock('optionsMultiples');
    }
}

function majTotalTarifAdhesion(formule, extension, plus) {
    if (extension == '1' && plus == '1') {
        ecrireElementVersElement('TarifMensuel' + formule + 'ToutesOptions', 'tarifMensuelRecapAdhesion');
        ecrireElementVersElement('TarifAnnuel' + formule + 'ToutesOptions', 'tarifAnnuelRecapAdhesion');
    }
    else if (extension == '1' && (plus == '0' || plus == '')) {
        ecrireElementVersElement('TarifMensuel' + formule + 'Extension', 'tarifMensuelRecapAdhesion');
        ecrireElementVersElement('TarifAnnuel' + formule + 'Extension', 'tarifAnnuelRecapAdhesion');
    }
    else if (extension == '0' && plus == '1') {
        ecrireElementVersElement('TarifMensuel' + formule + 'Plus', 'tarifMensuelRecapAdhesion');
        ecrireElementVersElement('TarifAnnuel' + formule + 'Plus', 'tarifAnnuelRecapAdhesion');
    }
    else if (extension == '0' && (plus == '0' || plus == '')) {
        ecrireElementVersElement('TarifMensuel' + formule, 'tarifMensuelRecapAdhesion');
        ecrireElementVersElement('TarifAnnuel' + formule, 'tarifAnnuelRecapAdhesion');
    }
}

/* Fonctions relatives à l'écran de paiement en ligne */

function dupliquerContenu(elementSource, elementDestinataire) {
    var contenu = document.getElementById(elementSource).innerHTML;
    document.getElementById(elementDestinataire).innerHTML = contenu;
}

function setToAnchor(ID_Anchor, Name_Anchor, ID_Div)
//Fonction permettant de positionner un DIV à une position occupée par une ancre
{
    var DivLeft = 0;   //Position du Div par rapport au côté gauche de la page
    var DivTop = 0;   //Position du Div par rapport au haut de la page
    pos = document.getElementById(ID_Anchor);
    DivLeft = getLeft(pos);
    DivTop = getTop(pos);
    document.getElementById(ID_Div).style.left = DivLeft + "px";
    document.getElementById(ID_Div).style.top = DivTop - 120 + "px";
}

function getLeft(MyObject)
//Fonction permettant de connaître la position d'un objet
//par rapport au bord gauche de la page.
//Cet objet peut être à l'intérieur d'un autre objet.
{
    if (MyObject.offsetParent)
        return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
    else
        return (MyObject.offsetLeft);
}
function getTop(MyObject)
//Fonction permettant de connaître la position d'un objet
//par rapport au bord haut de la page.
//Cet objet peut être à l'intérieur d'un autre objet.
{
    if (MyObject.offsetParent)
        return (MyObject.offsetTop + getTop(MyObject.offsetParent));
    else
        return (MyObject.offsetTop);
}

/*******************        Utilitaires divers ***************/

//Variable globale
var popup;


// Teste si le groupe courant est le groupe tarif (si il contient ChoixTarif)
function testTarif() {
    var fen = popup;
    var test = 0;
    try {
        if (window.opener.document.form1.innerHTML.indexOf("ChoixTarif") > 0) fen.close();
    }
    catch (Exception) {
        //Quand on a chargé la page du tarif, l'instruction window.opener renvoie une exception, on ferme donc la popup
        test = 1;
    }

    if (test == 1) fen.close();
}

function fermePopup() {
    popup.close();
}

//Fermeture des pop up d'erreur
function CacheSpanErreurSaisie() {
    document.getElementById('ErreurSaisie').style.display = "none";
}

//Ouverture des pop up d'erreur
function MontreSpanErreurSaisie() {
    document.getElementById('ErreurSaisie').style.display = "block";
}

//Fermeture des pop up prévis
function CacheSpanInfoPreavis() {
    document.getElementById('InfoPreavis').style.display = "none";
}

//Fermeture des pop up Offre2Mois
function CacheSpanOffre2Mois() {
    document.getElementById('Offre2Mois').style.display = "none";
}

//Fermeture des pop up Offre1Mois
function CacheSpanOffre1Mois() {
    document.getElementById('Offre1Mois').style.display = "none";
}


//Bibliotheque personnalisée

//Renvoie l'id du groupe precedent
function groupePrecedent() {
    return document.forms["form1"].groupePrecedent;
}

//Test si la question nomQuestion existe dans la page
function questionExiste(nomQuestion) {
    try {
        document.getElementById(nomQuestion).innerHTML;
        return true;
    }
    catch (Exception) { return false; }
}

//Convertit un montant de euros vers francs (n'est plus utilisé)
function convertirFrancs(euros) {
    var nombre = Math.round(euros * 6.55957 * 100) / 100;
    return nombre;
}

//Méthode d'appel de la fonction eval de Javascript
function calcule(expr) {
    var nombre = eval(expr);
    return nombre;
}

//Modifie la couleur de la question nomQuestion 
function flasheQuestion(nomQuestion, couleur) {
    //    document.getElementById("intitule" + nomQuestion).style.color = couleur;
    document.getElementById(nomQuestion).style.color = couleur;
}

//La date au format jj//mm//AAAA est elle plus récente que la date2
function compareDates(date1, date2) {
    var tab1 = date1.split('/');
    var tab2 = date2.split('/');
    if (tab1[2] == tab2[2]) {
        if (tab1[1] == tab2[1]) {
            return (tab1[0] > tab2[0]);
        }
        else return (tab1[1] > tab2[1]);
    }
    else return (tab1[2] > tab2[2]);
}

function nombrePortes(donnee, noeudParent) {
    var portes = new String();
    portes = donnee;
    var nombre = portes.charAt(portes.length - 1);
    if (isInteger(nombre)) portes = nombre;
    else portes = 'NC';

    texteConditionnel('true', portes, noeudParent);
}

//EDE
// Verifie une adresse email (expressions régulières)
function valideEmail(email) {
    var regemail = new RegExp("^\\w[\\w+\.\-]*@[\\w\-]+\.\\w[\\w+\.\-]*\\w$", "gi");
    var reg = new RegExp(regemail);
    if (!email.match(reg)) email = "";
    return email;
}
//Fin EDE

/*
**** Les fonctions suivantes formate la date strdate en une une date au format JJ/MM/AAAA ou MM/AAAA ou AAAA ****
*/
function JJMMAAAA(strdate) {
    var jour, mois, annee;
    var chaine;
    var i, len;
    // teste si la chaine existe
    len = strdate.length;
    if (len == 0) { return ""; }
    //positionnement sur le premier chiffre
    i = 0;
    while (((strdate.charAt(i) < '0') || (strdate.charAt(i) > '9')) && (++i < len)) { }
    if (i == len) { return ""; }
    // extraction du jour
    chaine = "";
    jour = 0;
    while ((strdate.charAt(i) >= '0') && (strdate.charAt(i) <= '9')) {
        chaine += strdate.charAt(i);
        jour = jour * 10 + eval(strdate.charAt(i), 10);
        i++;
        if (i >= len) break;
    }
    if ((jour > 31) || (jour == 0)) {
        if ((chaine.length == 6) || (chaine.length == 8)) {
            //forme jjmmaa ou jjmmaaaa
            jour = eval(chaine.charAt(0), 10) * 10 + eval(chaine.charAt(1), 10);
            mois = eval(chaine.charAt(2), 10) * 10 + eval(chaine.charAt(3), 10);
            annee = eval(chaine.charAt(4), 10) * 10 + eval(chaine.charAt(5), 10);
            if (chaine.length == 8) {
                annee = annee * 100 + eval(chaine.charAt(6), 10) * 10 + eval(chaine.charAt(7), 10);
            }
            if ((jour > 31) || (jour == 0) || (mois > 12) || (mois == 0)) { return ""; }
        }
        else { return ""; }
    }
    else {
        //positionnement sur le deuxieme chiffre
        while (((strdate.charAt(i) < '1') || (strdate.charAt(i) > '9')) && (++i < len)) { }
        if (i == len) { return ""; }
        // extraction du mois
        mois = 0;
        while ((strdate.charAt(i) >= '0') && (strdate.charAt(i) <= '9')) {
            mois = mois * 10 + eval(strdate.charAt(i), 10);
            i++;
            if (i >= len) break;
        }
        if ((mois > 12) || (mois == 0)) { return ""; }
        //positionnement sur le troisieme chiffre
        while (((strdate.charAt(i) < '0') || (strdate.charAt(i) > '9')) && (++i < len)) { }
        if (i == len) { return ""; }
        // extraction de l'année
        annee = 0;
        while ((strdate.charAt(i) >= '0') && (strdate.charAt(i) <= '9')) {
            annee = annee * 10 + eval(strdate.charAt(i), 10);
            i++;
            if (i >= len) break;
        }
    }
    // fenêtrage
    if (annee < 15) {
        annee += 2000;
    }
    if (annee < 100) {
        annee += 1900;
    }
    var jourbis, moisbis;
    jourbis = "" + eval(jour);
    moisbis = "" + eval(mois);
    if (jourbis.length < 2) {
        jourbis = "0" + eval(jour);
    }
    if (moisbis.length < 2) {
        moisbis = "0" + eval(mois);
    }
    var strDate = "" + jourbis + "/" + moisbis + "/" + annee;

    if (strDate.length > 10) {
        return "";
    }
    else {
        return "" + jourbis + "/" + moisbis + "/" + annee;
    }
}





function getTextValue(el) {
    var i;
    var s;
    s = "";
    for (i = 0; i < el.childNodes.length; i++)
        if (el.childNodes[i].nodeType == document.TEXT_NODE)
        s += el.childNodes[i].nodeValue;
    else if (el.childNodes[i].nodeType == document.ELEMENT_NODE &&
             el.childNodes[i].tagName == "BR")
        s += " ";
    else
        s += getTextValue(el.childNodes[i]);
    return normalizeString(s);
}

function compareValues(v1, v2) {
    if (v1 == v2)
        return 0;
    if (v1 > v2)
        return 1
    return -1;
}

var whtSpEnds = new RegExp("^\\s*|\\s*$", "g");
var whtSpMult = new RegExp("\\s\\s+", "g");

function normalizeString(s) {
    s = s.replace(whtSpMult, " ");
    s = s.replace(whtSpEnds, "");
    return s;
}


function isBlank(val) {
    if (val == null) { return true; }
    for (var i = 0; i < val.length; i++) {
        if ((val.charAt(i) != ' ') && (val.charAt(i) != "\t") && (val.charAt(i) != "\n") && (val.charAt(i) != "\r")) { return false; }
    }
    return true;
}

function isInteger(val) {
    if (isBlank(val)) { return false; }
    for (var i = 0; i < val.length; i++) {
        if (!isDigit(val.charAt(i))) { return false; }
    }
    return true;
}

function isDigit(num) {
    if (num.length > 1) { return false; }
    var string = "1234567890";
    if (string.indexOf(num) != -1) { return true; }
    return false;
}

function isNumeric(val) {
    var val2 = new String();
    val2 = val;
    val2 = val2.replace(",", ".");
    return (parseFloat(val2, 10) == (val2 * 1));
}

function crmValide(crm) {
    var val = new String();
    val = crm;
    val = val.replace(",", ".");
    return (((val * 1) <= 3.5) && ((val * 1) >= 0.5));
}


function testCodePostal(obj) {
    var codePostal = new String();
    codePostal = obj.value;
    if ((codePostal.length != 4) && (codePostal.length != 5)) { obj.value = ''; alert('merci de saisir un code postal de 4 ou 5 chiffres'); }
}


function testConfirmationEmail(objEmail, objEmailConfirme) {
    var val1 = new String();
    var val2 = new String();
    val1 = objEmail.value;
    val2 = objEmailConfirme.value;
    if (val1 != val2) {
        objEmailConfirme.value = '';
        return false;
    }
    else return true;
}

function testErreurAcceptation() {
    try {
        var tab = recupereInputReponse('AcceptationConditions');
        if (!(tab[0].checked)) {
            alert('Veuillez consulter, imprimer ou t\351l\351charger les Conditions G\351n\351rales Sant\351 et cochez la case pour terminer votre demande.');
            return true;
        }
    }
    catch (Exception) { return false; }

    return false;
}

function testErreurSaisieSignature(tns) {
    try {
        var reponseDecla = recupereInputReponse('DeclarationSignature');
        var reponseConventionPreuve = recupereInputReponse('AcceptationConventionPreuveSignature');
        var reponseAdhesionACBS = recupereInputReponse('AdhesionACBSSignature');
        var reponseEngagementPaiement = recupereInputReponse('EngagementPaiementSignature');

        if (!(reponseDecla[0].checked) || !(reponseConventionPreuve[0].checked) || !(reponseAdhesionACBS[0].checked) || !(reponseEngagementPaiement[0].checked)) {
            alert('Vous devez cocher toutes les cases pour valider la signature en ligne de votre contrat.');
            return true;
        }
        if (tns) {
            var reponseAffirmationRegimeTNS = recupereInputReponse('AffirmationRegimeTNSSignature');
            if (!(reponseAffirmationRegimeTNS[0].checked)) {
                alert('Vous devez cocher toutes les cases pour valider la signature en ligne de votre contrat.');
                return true;
            }
        }
    }
    catch (Exception) { return false; }

    return false;
}

function testErreurModeEnvoi() {
    try {
        if (document.getElementById('ModeEnvoi').getAttribute('erreur') > 0) document.getElementById("intituleBlocModeEnvoi").getAttribute("style").color = "red";
    }
    catch (Exception) { }
}

function testErreurCivilite() {
    try {
        if (document.getElementById('TitreAssure1').getAttribute('erreur') > 0) {
            var noeudXmlParent = document.getElementById("intituleTitreAssure1");
            if (noeudXmlParent) {
                var l = document.createTextNode("Civilite");
                noeudXmlParent.appendChild(l);
                flasheQuestion("titreAssure1", "red");
            }
        }
    }
    catch (Exception) { }
}



/*
==============================================
Fonction de detection d'une touche du clavier
dont le code est fourni en paramètre
(fonction à appeler sur l'événement onkeydown
exemple :
Si la touche tapée est 'enter' :
toucheDetectee(event, 13) retournera 'true'
==============================================
*/
var soumissionFormulaireTraitee = false;

function toucheDetectee(e, code) {
    var estIE = false;
    var estFF = false;

    if (window.event) { estIE = true; }
    else if (e) { estFF = true; }
    else { }


    var event = e || window.event;
    var target = e.target || event.srcElement;

    onclick = target.onclick;
    target.onclick = null;

    if (event) {
        if (estIE && event.keyCode == code) {
            event.cancelBubble = true;
            event.returnValue = false;
            if (!soumissionFormulaireTraitee) {
                soumissionFormulaireTraitee = true;
                return true;
            }
            return false;
        }
        else if (estFF && event.which == code) {
            if (event.stopPropagation) { event.stopPropagation(); }
            event.cancelBubble = true;
            //if(event.preventDefault) { event.preventDefault(); }
            if (!soumissionFormulaireTraitee) {
                soumissionFormulaireTraitee = true;
                return true;
            }
            return false;
        }
        else { }
    }
    target.onclick = onclick;
    return false;

}

function gererSoumission(event) {
    if (toucheDetectee(event, 13)) {
        valider(event)
    }
}

function initialiserMacaron(fichierXml) {
    soBody.addVariable("xmlUrl", "/xml/" + fichierXml);
}

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft, curtop];
}

function setLyr(obj, lyr) {
    try {
        var coors = findPos(document.getElementById(obj));
        var x = document.getElementById(lyr);
        coors[0] -= 50;
        coors[1] += 50;
        x.style.top = coors[1] + 'px';
        x.style.left = coors[0] + 'px';
    }
    catch (Exception) {
    }
}

function envoyerEmail(body) {
    chaine_mail = "mailto:BonnesQuestionsPropositions@directassurance.fr?subject=Bonne question ";
    chaine_mail += "&body=" + document.forms["formEmail"].bodyEmailQuestion.value;
    location.href = chaine_mail;
}

function OpenWindowReturn(theURL, winName, features, myWidth, myHeight, isCenter) {
    if (window.screen) {
        if (isCenter) {
            var myLeft = (screen.width - myWidth) / 2;
            var myTop = (screen.height - myHeight) / 2;
            features += (features != '') ? ',' : '';
            if (features != 'scrollbars=0,') features += ',scrollbars=1';
            features += ',left=' + myLeft + ',top=' + myTop;
        }
    }
    var mywindow = window.open(theURL, winName, features + ((features != '') ? ',' : '') + 'width=' + myWidth + ',height=' + myHeight);
    return mywindow;
}

function popupPdf(cheminPdf, idQuestion) {
    if (cheminPdf == '') {
        var formulaire = document.getElementById("form1");

        // On indique dans un input hidden du FORM que l'on souhaite générer un PDF (utilisé coté serveur pour la génération)
        var genererPdf = document.getElementById("genererPdfTarif");
        genererPdf.value = "true";

        // On fait un postback pour que le rendu soit MAJ(Côté serveur, 
        // un PDF va être généré et un bloc javascript va être ajouté à 
        // la page afin de rappeler la méthode présente popupPdf avec 
        // en argumpent le chemin du PDF généré

        document.forms["form1"].commande.value = 'validerQuestion;' + idQuestion;
        formulaire.submit();
    }
    else {
        var fen = OpenWindowReturn('pagePdf.aspx?cheminPdf=' + cheminPdf, 'info', 'scrollbars=yes, menubar=yes', '950', '800', '');

        var formulaire = document.getElementById("form1");

        // On indique dans un input hidden du FORM que l'on ne souhaite plus générer de PDF (utilisé coté serveur)
        var genererPdf = document.getElementById("genererPdfTarif");
        genererPdf.value = "false";
    }
}

/* Methodes relatives à la mise en place de FluxStats pour WisaForce */
/*var actionWisaforce = null;

function initLayerWisa(afficheLayerClient, HelpClientActif, cssPosCli, cssPosOp) {
    basculeHelpClientActif = HelpClientActif;
    if (afficheLayerClient = true && basculeHelpClientActif == 'False') {
        if (document.getElementById('jaugeHeader') != null) {
            cacheDiv('jaugeHeader');
        }
        montreDiv('layerHelpClient');
    }
    else {
        cacheDiv('layerHelpClient');
    }
}

function positionnerLayerWisaforce(classPositionClient, classPositionOperateur) {
    var classLayerWisaforce = 'invisible layerWisaforce';
    document.getElementById('layerHelpClient').className = classLayerWisaforce + ' ' + classPositionClient;
    document.getElementById('layerHelpOperateur').className = classLayerWisaforce + ' ' + classPositionOperateur;
}

function fluxStatsCompterClientJava(estClientJava) {
    if (estClientJava) {
        document.getElementById('pixelFluxStatsWisa').src = "/services/commun/DA_SL_PIXEL_Wisaforce.asp?u=200&p=2&f=51";
    }
    else {
        document.getElementById('pixelFluxStatsWisa').src = "/services/commun/DA_SL_PIXEL_Wisaforce.asp?u=200&p=2&f=52";
    }
}

function fluxStatsWisaForce(idEcran, operation, etat) {
    var phaseWisaForce;
    var fluxWisaForce;
    var commentWisaForce;

    phaseWisaForce = obtenirPhaseWisaForce(idEcran);
    fluxWisaForce = obtenirFluxWisaForce(operation, etat);

    commentWisaForce = document.getElementById('numeroProposition').value;

    gererAffichageLayerWisa(fluxWisaForce);

    //Lors d'un control, on considère que WisaForce est intervenu sur un contrat
    //Il faut donc remonter l'information dans Type_Application
    if (fluxWisaForce == '40') {
        remonterInterventionWisaforce(phaseWisaForce);
    }

    var srcFluxStatWisa = '/services/commun/DA_SL_PIXEL_Wisaforce.asp?u=200&p=' + phaseWisaForce + '&f=' + fluxWisaForce + '&c=' + commentWisaForce;

    document.getElementById('pixelFluxStatsWisa').src = srcFluxStatWisa;
}

function obtenirPhaseWisaForce(idEcran) {
    var phase;
    switch (idEcran) {
        case 'Sante_Renseignement':
            phase = '2';
            break;
        case 'Sante_Recherche Localite':
            phase = '3';
            break;
        case 'Sante_Beneficiaires':
            phase = '4';
            break;
        case 'Sante_Enfants':
            phase = '5';
            break;
        case 'Sante_Tarif':
            phase = '6';
            break;
        case 'Sante_Coordonnees':
            phase = '7';
            break;
        case 'Sante_Recherche Localite Coordonnees':
            phase = '8';
            break;
    }
    return phase;
}

function obtenirFluxWisaForce(operation, etat) {
    var fluxOperation;
    switch (operation) {
        case 'HelpClient':
            fluxOperation = '1';
            break;
        case 'HelpOperator':
            fluxOperation = '2';
            break;
        case 'Observe':
            fluxOperation = '3';
            break;
        case 'Control':
            fluxOperation = '4';
            break;
    }

    var fluxEtat;
    if (etat == 'start') {
        fluxEtat = '0';
    }
    else if (etat == 'stop') {
        fluxEtat = '9';
    }

    var flux = fluxOperation + fluxEtat;
    return flux;
}
*/
/*function gererAffichageLayerWisa(action) {
    switch (action) {
        case '20':
            montreDiv('layerHelpOperateur');
            break;
        case '29':
            cacheDiv('layerHelpOperateur');
            break;
        case '40':
            if (document.getElementById('jaugeHeader') != null) {
                cacheDiv('jaugeHeader');
            }
            montreDiv('layerHelpClient');
            break;*/
        /* Cas de la fin d'une collaboration
        case '49':
        if (document.getElementById('jaugeHeader') != null) {
        montreDiv('jaugeHeader');
        }
        cacheDiv('layerHelpClient');
        break;*/ 
    /*}*/
    /*
    // Detecter le lancement d'un Help Operateur afin d'afficher le Layer correspondant
    if (fluxWisaForce == '20') {
    cacheDiv('layerHelpClient');
    //        if (document.getElementById('jaugeHeader') != null) { montreDiv('jaugeHeader'); }
    //        montreDiv('layerHelpOperateur');
    }

    // Detecter la fin d'un Help Operateur afin de réafficher si besoin le Layer Help Client
    if (fluxWisaForce == '29') {
    //        if (document.getElementById('jaugeHeader') != null && basculeHelpClientActif == 'True') 
    //        { cacheDiv('jaugeHeader'); }
    cacheDiv('layerHelpOperateur');
    //        if (basculeHelpClientActif == 'True') { montreDiv('layerHelpClient'); }
    }*/
/*}

function remonterInterventionWisaforce(phase) {
    var cbWisaTypeApplication;
    switch (phase) {
        case '2':
            cbWisaTypeApplication = 'cbRenseignementWisaTA';
            break;
        case '3':
            cbWisaTypeApplication = 'cbRechercheLocaliteWisaTA';
            break;
        case '4':
            cbWisaTypeApplication = 'cbBeneficiaireWisaTA';
            break;
        //        case '5':       
        //            cbWisaTypeApplication = 'cbEnfantWisaTA';       
        //            break;       
        case '6':
            cbWisaTypeApplication = 'cbTarifWisaTA';
            break;
        case '7':
            cbWisaTypeApplication = 'cbCoordonneesWisaTA';
            break;
        case '8':
            cbWisaTypeApplication = 'cbLocaliteCoordonneesWisaTA';
            break;
    }
    if (cbWisaTypeApplication != null) {
        document.getElementById(cbWisaTypeApplication).checked = true;
    }
}
*/
/* Fonctions relatives à la recherche véhicule */

//reinitialise le champ CPVille
function reinitialiseCPVille(idQuestion) {
    var reponse = recupereToutesInputReponses(idQuestion)

    if (reponse != null && reponse.length == 2) {
        inputCPVille = reponse[0];
        listeLocalites = reponse[1];
        //on affiche le textebox et on cache la liste des localites
        inputCPVille.style.display = '';
        inputCPVille.value = CONST_TEXTE_CPVILLE_DEFAUT;
        listeLocalites.style.display = 'none';
        //supprime les autres localites pour eviter le conflit d'affichage dans le cas ou ya pls composants CPVille et on clique sur les aides
        for (indexLocalite = 2; indexLocalite < listeLocalites.length; indexLocalite++) {
            listeLocalites.options[indexLocalite] = null;
            indexLocalite--;
        }
        //pre selection du 1er element pour les listes dont attribut size>1
        listeLocalites.selectedIndex = 0;
    }
}

//controle la saisie du champ CPVille et soumet le formulaire eventuellement
function controleCPVille(idQuestion, champCPVille) {
    var valeurSaisie ;
    if (champCPVille.value != null && champCPVille.value != "") {
        valeurSaisie = trim(champCPVille.value);
    }
    else {
        valeurSaisie = "";
    }

    if (valeurSaisie != '') {

        if (!isNaN(valeurSaisie) && valeurSaisie.length != 4 && valeurSaisie.length != 5) {
            //alert('Merci de saisir un code postal de 4 ou 5 chiffres ou le nom de la Ville');
            //champCPVille.value=CONST_TEXTE_CPVILLE_DEFAUT;
        }
        else if (valeurSaisie.length > 2) {
            RechercherLocalites(idQuestion);
        }
    }
    else {
        champCPVille.value = CONST_TEXTE_CPVILLE_DEFAUT;
    }
}

//affiche la localite selectionnee
function afficheLocalite(idQuestion) {
    var reponse = recupereToutesInputReponses(idQuestion)

    if (reponse != null && reponse.length == 2) {
        inputCPVille = reponse[0];
        listeLocalites = reponse[1];

        //on affiche le textebox et on cache la liste des localites
        if (listeLocalites.selectedIndex != 0) {
            //Si l'option annulation est selectionnee, on reinitialise le champ CPVille
            if (listeLocalites.selectedIndex == 1) {
                reinitialiseCPVille(idQuestion);
            }
            else {
                inputCPVille.style.display = '';
                inputCPVille.value = listeLocalites.options[listeLocalites.selectedIndex].text;
                listeLocalites.style.display = 'none';
                //supprime les autres localites pour eviter le conflit d'affichage dans le cas ou ya pls composants CPVille et on clique sur les aides
                for (indexLocalite = 2; indexLocalite < listeLocalites.length; indexLocalite++) {
                    opt = listeLocalites.options[indexLocalite];
                    if (!opt.selected) {
                        listeLocalites.options[indexLocalite] = null;
                        indexLocalite--;
                    }
                }
            }
        }
    }
}


//affiche la liste box s'il y a pls localites trouvees sinon affiche le textebox
function initCPVille(idQuestion) {
    var reponse = recupereToutesInputReponses(idQuestion);
    if (reponse != null && reponse.length == 2) {
        inputCPVille = reponse[0];
        listeLocalites = reponse[1];

        //s'il y a plusieurs localites trouvees, on affiche la liste sinon on la cache
        if (listeLocalites.length < 4) {
            inputCPVille.style.display = '';
            listeLocalites.style.display = 'none';
            //pre selection si l'on trouve une seule localite
            if (listeLocalites.length == 3) {
                listeLocalites.selectedIndex = 2;
                inputCPVille.value = listeLocalites.options[listeLocalites.selectedIndex].text;
            }
            else {
                //pre selection du 1er element pour les listes dont attribut size>1
                listeLocalites.selectedIndex = 0;
            }
        }
        else {
            inputCPVille.style.display = 'none';
            listeLocalites.selectedIndex = 0;
            listeLocalites.style.display = '';
            flasheQuestion(idQuestion, 'red');
        }
    }
}

//trim a gauche
function ltrim(inString) {
    if ((inString != null) && (inString != "")) {
        return inString.replace(/^\s*/, "");
    }
    else {
        return inString;
    }
}

//trim a droite
function rtrim(inString) {
    if ((inString != null) && (inString != "")) {
        return inString.replace(/\s*$/, "");
       }
    else {
        return inString;
        }
        
}

//trim a gauche et a droite
function trim(inString) {
    if ((inString != null) && (inString != "")) {
        return rtrim(ltrim(inString));
    }
    else {
        return inString;
    }
    
}

//Recupere l'element html 'input' pour une question donnée (le nom est le màme que la reponse associée, mais le tag html est INPUT ou select)
function recupereToutesInputReponses(idQuestion) {
    var nom = "reponse" + idQuestion;
    var i = 0;
    var inputs = document.getElementsByTagName('INPUT');
    var selects = document.getElementsByTagName('SELECT');
    var tab = new Array();

    while (i < inputs.length) {
        var rep = inputs[i];
        if (rep.name == nom) {
            tab.push(rep);
        }
        i++
    }

    i = 0;
    while (i < selects.length) {
        var rep = selects[i];
        if (rep.name == nom) {
            tab.push(rep);
        }
        i++;
    }
    if (tab.length > 0) return tab;

    return null;
}

// Récupère l'élélment Html 'Select' de la réponse à la question
function recupereSelectReponse(idQuestion) {
    var nom = "reponse" + idQuestion;
    var i = 0;
    var selects = document.getElementsByTagName('SELECT');
    var tab = new Array();
    while (i < selects.length) {
        var rep = selects[i];
        if (rep.name == nom) return rep;
        i++;
    }
}

// Compte le nombre de spanAutresAssures afin de leur affecter un numéro en face du bénéficiaire
function numeroteBeneficiaire() {
    var selects = document.getElementsByTagName('SPAN');
    var j = 1;

    for (var i = 0; i < selects.length; i++) {
        var rep = selects[i];
        if (rep.id.startsWith("spanAutresAssures")) {
            document.getElementById(rep.id).innerHTML = j + ". ";
            j++;
        }
    }
}

// Compte le nombre de bénéficiaires
function calculeNombrePersonnes(conjoint, enfants) {
    if (conjoint == 1 || enfants != 0) {
        montreDiv('plurielPersonnes');
    }
}

// Compte le nombre d'adultes bénéficiaires
function calculeAdultesAssures(champConjointConcubin, nomSpan, majuscule) {
    var nbAdultesAssures = "1";
    if (champConjointConcubin == 1) {
        nbAdultesAssures = 2;
        if (majuscule) {
            document.getElementById(nomSpan).innerHTML = nbAdultesAssures + " ADULTES ";
        }
        else {
            document.getElementById(nomSpan).innerHTML = nbAdultesAssures + " adultes";
        }
    }
    else {
        if (majuscule) {
            document.getElementById(nomSpan).innerHTML = nbAdultesAssures + " ADULTE ";
        }
        else {
            document.getElementById(nomSpan).innerHTML = nbAdultesAssures + " adulte";
        }
    }
}

// Compte le nombre d'enfants bénéficiaires
function calculeEnfantsAssures(champEnfants, nomSpan, majuscule) {
    var nbEnfantsAssures = "0";
    switch (champEnfants) {
        case 0:
            document.getElementById(nomSpan).innerHTML = "";
            break;
        case 1:
            nbEnfantsAssures = 1;
            if (majuscule) {
                document.getElementById(nomSpan).innerHTML = " / " + nbEnfantsAssures + " ENFANT";
            }
            else {
                document.getElementById(nomSpan).innerHTML = ", " + nbEnfantsAssures + " enfant";
            }
            break;
        case 2:
            nbEnfantsAssures = 2;
            if (majuscule) {
                document.getElementById(nomSpan).innerHTML = " / " + nbEnfantsAssures + " ENFANTS";
            }
            else {
                document.getElementById(nomSpan).innerHTML = ", " + nbEnfantsAssures + " enfants";
            }
            break;
        case 3:
            nbEnfantsAssures = 3;
            if (majuscule) {
                document.getElementById(nomSpan).innerHTML = " / " + nbEnfantsAssures + " ENFANTS";
            }
            else {
                document.getElementById(nomSpan).innerHTML = ", " + nbEnfantsAssures + " enfants";
            }
            break;
        case 4:
            nbEnfantsAssures = 4;
            if (majuscule) {
                document.getElementById(nomSpan).innerHTML = " / " + nbEnfantsAssures + " ENFANTS";
            }
            else {
                document.getElementById(nomSpan).innerHTML = ", " + nbEnfantsAssures + " enfants";
            }
            break;
    }
}

// Page Coordonnées - Autres Assurés : on n'applique pas les pointillés sur la première ligne
function enleverPointillesCoordonnees() {
    if (document.getElementById("enteteTableauCoordonneesAutresAssures") != null) {
        document.getElementById("enteteTableauCoordonneesAutresAssures").className = "tableauCoordonneesAutresAssures";
    }
}

function afficheConfirmationEnvoiMailCourrier(envoiParMail) {
    if (envoiParMail == 'true') {
        montreDiv('emailConfirmationEnvoi');
        cacheDiv('courrierConfirmationEnvoi');
    }
    else {
        montreDiv('courrierConfirmationEnvoi');
        cacheDiv('emailConfirmationEnvoi');
    }
}

//Conservé pour concaténer les différentes textbox de N° Sécurité Sociale de la page souscription
function concateneNumeroSS(champNumeroSS) {
    var selects = document.getElementsByTagName('input');
    var numeroSS = '';
    for (var i = 0; i < selects.length; i++) {
        var rep = selects[i];
        if (rep.id.startsWith("reponseNumeroSSSouscripteurTextBox")) {
            numeroSS += rep.value;
        }
    }
    champNumeroSS = numeroSS;
}

// Stocke la valeur d'une textbox(idTextBoxSouscripteur) dans une autre(idTextBoxAutre) si la condition est remplie
function copieValeurTextBox(idTextBoxSouscripteur, idTextBoxAutre, condition) {
    if (eval(condition)) {  
        document.getElementById(idTextBoxAutre).value = document.getElementById(idTextBoxSouscripteur).value;  
    }
}

// Lorsque la valeur du numéro SS du souscripteur change, on copie la donnée dans les autres assurés si la condition est remplie (cf "Même numéro que l'assuré principal" est coché)
function copierTextBoxNumeroSSSouscription() {
    for (var i = 2; i < 7; i++) {
        // Si l'assuré i n'est pas présent dans les autres assurés, on ne la traite pas
        if (document.getElementById('NumeroSSAssure'+i) != null) {
            copieValeurTextBox('reponseNumeroSSSouscripteurTextBox', 'reponseNumeroSSAssure' + i + 'TextBox', document.getElementById('NumeroSSAssure' + i + 'RadioBouton2').checked + ' == true');   
        }
    }
}

// Lorsque la valeur du numéro d'organisme d'affiliation du souscripteur change, on copie la donnée dans les autres assurés si la condition est remplie (cf "Même numéro que l'assuré principal" est coché)
function copierTextBoxOrgaAffiliationSouscription() {
    for (var i = 2; i < 7; i++) {
        // Si l'assuré i n'est pas présent dans les autres assurés, on ne la traite pas
        if (document.getElementById('OrganismeAffiliationAssure' + i) != null) {
            copieValeurTextBox('reponseOrganismeAffiliationSouscripteurTextBox', 'reponseOrganismeAffiliationAssure' + i + 'TextBox', document.getElementById('NumeroSSAssure' + i + 'RadioBouton2').checked + ' == true');
        }
    }
}

//  Gère l'affichage des divs masqués NumeroSS et Orga affiliation
function afficheNumeroSSOrgaSouscription() {
    for (var i = 2; i < 7; i++) {
        // Si l'assuré i n'est pas présent dans les autres assurés, on ne la traite pas
        if (document.getElementById('NumeroSSAssure' + i) != null) {
            if (document.getElementById('NumeroSSAssure' + i + 'RadioBouton1').checked == true) {
                montreDiv('NumeroSSAssure' + i + 'MasqueReponse');
                montreDiv('OrganismeAffiliationAssure' + i + 'MasqueReponse');
            }
            
            if (document.getElementById('NumeroSSAssure' + i + 'RadioBouton2').checked  == true) {
                cacheDiv('NumeroSSAssure' + i + 'MasqueReponse');
                cacheDiv('OrganismeAffiliationAssure' + i + 'MasqueReponse');
            }
            
            if (document.getElementById('NumeroSSAssure' + i + 'RadioBouton1').checked == false
            && document.getElementById('NumeroSSAssure' + i + 'RadioBouton2').checked == false) {
                cacheDiv('NumeroSSAssure' + i + 'MasqueReponse');
                cacheDiv('OrganismeAffiliationAssure' + i + 'MasqueReponse');
            }
        }
    }
}

function initialiserAlerte() {
    document.getElementById('alertNumSS').value = "0";

}
function valideNumSSSouscripteur(donneeSexeSouscripteur, donneeDateNaissanceSouscripteur, event) {
    var numSSSexe = document.getElementById('numSecuSouscripteurPart1').value;
    var numSSAnnee = document.getElementById('numSecuSouscripteurPart2').value;
    var numSSMois = document.getElementById('numSecuSouscripteurPart3').value;
    var alerte = document.getElementById('alertNumSS').value;

    var tabDateNaissance = donneeDateNaissanceSouscripteur.split('/');

    var jourNaissance = tabDateNaissance[0];
    var moisNaissance = tabDateNaissance[1];
    var anneeNaissance = tabDateNaissance[2];
    var sexeSouscripteur = donneeSexeSouscripteur;
    if (anneeNaissance != "") {
        anneeNaissance = anneeNaissance.substring(2, 4);
    }

    if (alerte != "1") {
        if (sexeSouscripteur != numSSSexe) {
            alert("Attention, le num\351ro saisi n'est pas coh\351rent avec le sexe du b\351n\351ficiaire.\nMerci de v\351rifier le n\260 de s\351curit\351 sociale saisi. Si le n\260 saisi est correct, laissez-le tel quel (car, par exemple, vous ne disposez pas de votre propre num\351ro de s\351curit\351 sociale); sinon vous pouvez le corriger. Dans tous les cas, merci de cliquer \340 nouveau sur Continuer pour valider votre saisie. ");
            document.getElementById('alertNumSS').value = "1";
            return false;
        }
        if (moisNaissance != numSSMois) {
            alert("Attention, le num\351ro saisi n'est pas coh\351rent avec le mois de naissance du b\351n\351ficiaire.\nMerci de v\351rifier le n\260 de s\351curit\351 sociale saisi. Si le n\260 saisi est correct, laissez-le tel quel (car, par exemple, vous ne disposez pas de votre propre num\351ro de s\351curit\351 sociale); sinon vous pouvez le corriger. Dans tous les cas, merci de cliquer \340 nouveau sur Continuer pour valider votre saisie. ");
            document.getElementById('alertNumSS').value = "1";
            return false;
        }
        if (anneeNaissance != numSSAnnee) {
            alert("Attention, le num\351ro saisi n'est pas coh\351rent avec l'ann\351e de naissance du b\351n\351ficiaire.\nMerci de v\351rifier le n\260 de s\351curit\351 sociale saisi. Si le n\260 saisi est correct, laissez-le tel quel (car, par exemple, vous ne disposez pas de votre propre num\351ro de s\351curit\351 sociale); sinon vous pouvez le corriger. Dans tous les cas, merci de cliquer \340 nouveau sur Continuer pour valider votre saisie. ");
            document.getElementById('alertNumSS').value = "1";
            return false;
        }
    }

    validerCoordonnees(event);
    return true;
}


// On calcule la date du 1er prélèvement en fonction de la date d'effet des garanties (format JJ/MM/AAAA)
function calculeDatePremierPrelevement(dateEffetGarantie, spanDatePremierPrelevement) {
    var tabDateEffetGarantie = dateEffetGarantie.split('/');
    var dateCourante = new Date();
    var jourCourant = dateCourante.getDate();
    var moisCourant = dateCourante.getMonth() + 1;
    var anneeCourante = dateCourante.getFullYear();

    var jourEffet = tabDateEffetGarantie[0];
    var moisEffet = tabDateEffetGarantie[1];

    if (moisEffet < moisCourant + 2) {
        if (jourEffet < 2) {
            if (moisCourant + 2 < 10) {  // Pour un mois < 10, le 0 est effacé pour un entier. On le rajoute pour que le mois soit sur deux chiffres
                document.getElementById(spanDatePremierPrelevement).innerHTML = "vers le 09/" + "0"+(moisCourant + 2) + "/" + anneeCourante;
            }
            else {
                document.getElementById(spanDatePremierPrelevement).innerHTML = "vers le 09/" + (moisCourant + 2) + "/" + anneeCourante;      
            }
        }
        else {
            if (moisCourant + 3 < 10) {
                document.getElementById(spanDatePremierPrelevement).innerHTML = "vers le 09/" + "0"+(moisCourant + 3) + "/" + anneeCourante;           
            }
            else {
                document.getElementById(spanDatePremierPrelevement).innerHTML = "vers le 09/" + (moisCourant + 3) + "/" + anneeCourante;
            }
        }
    }
    else {
        if (jourEffet == 1) { // Pas d'ajout de 0 puisque la valeur issue du flux le contient déjà
            document.getElementById(spanDatePremierPrelevement).innerHTML = "vers le 09/" + moisEffet + "/" + anneeCourante;
        }
        else {
            var mois = parseFloat(moisEffet) + 1;
            if (mois < 10) {
                document.getElementById(spanDatePremierPrelevement).innerHTML = "vers le 09/" + "0"+ mois + "/" + anneeCourante;           
            }
            else {
                document.getElementById(spanDatePremierPrelevement).innerHTML = "vers le 09/" + mois + "/" + anneeCourante;           
            }
        }
    }
}

// Gére l'affichage de la div des détails de la transaction.
// Si la date d'effet est différée d'au moins 2 mois, un message est affiché à la place
function afficheTransactionConfirmationSouscription(referenceTransaction) {
    if (referenceTransaction == '') {
        montreDiv('divNonPaiementCB');
    }
    else {
        montreDivBlock('divPaiementCB');
    }
}

function recupererDateDuJourPlusDeux(spanId) {
    var dateCourante = new Date();
    dateCourante.setDate(dateCourante.getDate() + 2);
    var jourCourant = dateCourante.getDate();
    var moisCourant = dateCourante.getMonth() + 1;
    var anneeCourante = dateCourante.getFullYear();

    if (moisCourant < 10) {
        moisCourant = '0' + moisCourant;
    }
    
    document.getElementById(spanId).innerHTML = jourCourant + '/' + moisCourant + '/' + anneeCourante;
}

function montreDivAideRegimeSocial(noeudActuel) {
    var aSelect = document.getElementsByTagName('span');
    for (i = 0; i < aSelect.length; i++) {
        if (aSelect[i].id.startsWith('spanAideRegimeSocialSouscripteur')) {
            if (aSelect[i].id == noeudActuel) {
                montreDiv(aSelect[i].id);
            }
            else {
                cacheDiv(aSelect[i].id);
            }
        }
    }

//    aSelect = document.getElementById('listboxLieuHabitation');
//    alert(aSelect);
//    alert(aSelect.id);
//    if (aSelect != null) {
//        alert(aSelect.style.display);
//        cacheDiv(aSelect.id);
//        alert(aSelect.style.display);
//    }
}
