/*****                 VISIBILITE                     *****/

//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) {}
}

//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';
}


// 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();
	montreDiv('aide' + nomDiv);
}



// affiche les listbox
function afficheListBox()
{
	var aSelect=document.getElementsByTagName('select');
	for (i=0;i<aSelect.length;i++)
	{
		aSelect[i].style.display= 'block';
	} 
}	

// cache une div d'aide
function cacheAide(nomDiv)
{
	cacheDiv(nomDiv);
	afficheListBox();
}


//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;
}

//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)
	}
}

//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();
}

//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;
}

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");
    }
    majTarifColonnes();
}

function selectionnerColonne(nameColonne) {
    if (colonneAffichee == null) {
        cacheDiv('boutonTarifOff');
        montreDiv('actionValider');
        montreDiv('tarifFormuleRecap');
    }

    switch (nameColonne) {
        case "0":
            if (colonneAffichee != "0") {
                document.getElementById('rbFormuleEco').checked = true;
                afficherColonne("0");
                griserColonnes("1", "2", "3");
                colorerColonne('Eco', '0');
                decolorerColonnes('Initial', 'Equilibre', 'Optimal', '1', '2', '3');
                viderRecap();
                montreDiv('spanFormuleEco');
                if (document.getElementById('cbExtensionPharmacie').checked) {
                    montreDiv('oExtensionPharmacie');
                }
                majAvantages('reductionFamilialeEco', nameColonne);
                colonneAffichee = "0";
            }
            var optionSelectionne = verifierOptionSelectionnne('cbExtensionPharmacie', '');
            switch (optionSelectionne) {
                case 0:
                    majTarifRecap('TarifMensuelFormule1', 'TarifAnnuelFormule1', 'Eco');
                    break;
                case 1:
                    majTarifRecap('TarifMensuelFormule1ExtensionPharmacie', 'TarifAnnuelFormule1ExtensionPharmacie', 'Eco');
                    break;
            }
            break;
        case "1":
            if (colonneAffichee != "1") {
                document.getElementById('rbFormuleInitial').checked = true;
                afficherColonne("1");
                griserColonnes("0", "2", "3");
                colorerColonne('Initial', '1');
                decolorerColonnes('Equilibre', 'Optimal', 'Eco', '2', '3', '0');
                viderRecap();
                montreDiv('spanFormuleInitial');
                if (document.getElementById('cbExtension125').checked) {
                    montreDiv('oExtension125');
                }
                if (document.getElementById('cbPlusInitial').checked) {
                    montreDiv('oPlusInitial');
                }
                majAvantages('reductionFamilialeInitial', nameColonne);
                colonneAffichee = "1";
            }
            var optionSelectionne = verifierOptionSelectionnne('cbExtension125', 'cbPlusInitial');
            switch (optionSelectionne) {
                case 0:
                    majTarifRecap('TarifMensuelFormule2', 'TarifAnnuelFormule2', 'Initial');
                    break;
                case 1:
                    majTarifRecap('TarifMensuelFormule2Extension125', 'TarifAnnuelFormule2Extension125', 'Initial');
                    break;
                case 2:
                    majTarifRecap('TarifMensuelFormule2PlusInitial', 'TarifAnnuelFormule2PlusInitial', 'Initial');
                    break;
                case 9:
                    majTarifRecap('TarifMensuelFormule2ToutesOptions', 'TarifAnnuelFormule2ToutesOptions', 'Initial');
                    break;
            }
            break;
        case "2":
            if (colonneAffichee != "2") {
                document.getElementById('rbFormuleEquilibre').checked = true;
                afficherColonne("2");
                griserColonnes("0", "1", "3");
                colorerColonne('Equilibre', '2');
                decolorerColonnes('Optimal', 'Eco', 'Initial', '3', '0', '1');
                viderRecap();
                montreDiv('spanFormuleEquilibre');
                if (document.getElementById('cbExtension175').checked) {
                    montreDiv('oExtension175');
                }
                if (document.getElementById('cbPlusEquilibre').checked) {
                    montreDiv('oPlusEquilibre');
                }
                majAvantages('reductionFamilialeEquilibre', nameColonne);
                colonneAffichee = "2";
            }
            var optionSelectionne = verifierOptionSelectionnne('cbExtension175', 'cbPlusEquilibre');
            switch (optionSelectionne) {
                case 0:
                    majTarifRecap('TarifMensuelFormule3', 'TarifAnnuelFormule3', 'Equilibre');
                    break;
                case 1:
                    majTarifRecap('TarifMensuelFormule3Extension175', 'TarifAnnuelFormule3Extension175', 'Equilibre');
                    break;
                case 2:
                    majTarifRecap('TarifMensuelFormule3PlusEquilibre', 'TarifAnnuelFormule3PlusEquilibre', 'Equilibre');
                    break;
                case 9:
                    majTarifRecap('TarifMensuelFormule3ToutesOptions', 'TarifAnnuelFormule3ToutesOptions', 'Equilibre');
                    break;
            }
            break;
        case "3":
            if (colonneAffichee != "3") {
                document.getElementById('rbFormuleOptimal').checked = true;
                afficherColonne("3");
                griserColonnes("0", "1", "2");
                colorerColonne('Optimal', '3');
                decolorerColonnes('Eco', 'Initial', 'Equilibre', '0', '1', '2');
                viderRecap();
                montreDiv('spanFormuleOptimal');
                if (document.getElementById('cbExtension250').checked) {
                    montreDiv('oExtension250');
                }
                if (document.getElementById('cbPlusOptimal').checked) {
                    montreDiv('oPlusOptimal');
                }
                majAvantages('reductionFamilialeOptimal', nameColonne);
                colonneAffichee = "3";
            }
            var optionSelectionne = verifierOptionSelectionnne('cbExtension250', 'cbPlusOptimal');
            switch (optionSelectionne) {
                case 0:
                    majTarifRecap('TarifMensuelFormule4', 'TarifAnnuelFormule4', 'Optimal');
                    break;
                case 1:
                    majTarifRecap('TarifMensuelFormule4Extension250', 'TarifAnnuelFormule4Extension250', 'Optimal');
                    break;
                case 2:
                    majTarifRecap('TarifMensuelFormule4PlusOptimal', 'TarifAnnuelFormule4PlusOptimal', 'Optimal');
                    break;
                case 9:
                    majTarifRecap('TarifMensuelFormule4ToutesOptions', 'TarifAnnuelFormule4ToutesOptions', 'Optimal');
                    break;
            }
            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('formuleVide');
    cacheDiv('oExtensionPharmacie');
    cacheDiv('oExtension125');
    cacheDiv('oExtension175');
    cacheDiv('oExtension250');
    cacheDiv('oPlusInitial');
    cacheDiv('oPlusEquilibre');
    cacheDiv('oPlusOptimal');
    cacheDiv('avantages');
    cacheDiv('reductionFamiliale');
    cacheDiv('reductionFamilialeEco');
    cacheDiv('reductionFamilialeInitial');
    cacheDiv('reductionFamilialeEquilibre');
    cacheDiv('reductionFamilialeOptimal');
    cacheDiv('tiersPayant');
    cacheDiv('enfantGratuit');
    cacheDiv('virgule');
    cacheDiv('etPosition1');
    cacheDiv('etPosition2');
}

function majOptionRecap(optionCochee, spanOption) {
    if (optionCochee) {
        montreDiv(spanOption)
    }
    else {
        cacheDiv(spanOption) 
    }
}

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().replace(".", ",");
    }
    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('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;
    document.getElementById('spanTarifAnnuel'+formuleChoisie).innerHTML = tarifAnnuel;
    document.getElementById('montantMensuel').innerHTML = tarifMensuel;
    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');
        montreDiv(divReductionFamiliale);
        nbAvantages = nbAvantages + 1;
    }
 
    if (formule != 0) {
        montreDiv('tiersPayant');
        nbAvantages = nbAvantages + 3;
    }

    var gratuite = document.getElementById('valeurGratuite').innerHTML;
    if (gratuite != 0) {
        montreDiv('avantages');
        montreDiv('enfantGratuit');
        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 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, idHeader) {
    remplacerClasse('pancarteTarifMensuel'+idFormule, 'tarifMensuel', 'tarifSelectMensuel');
    remplacerClasse(idHeader, 'colonne' + idFormule, 'colonneSelect' + idFormule);

    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, 'colonneSelect' + idFormule1, 'colonne' + idFormule1);
    remplacerClasse(idColonne2, 'colonneSelect' + idFormule2, 'colonne' + idFormule2);
    remplacerClasse(idColonne3, 'colonneSelect' + idFormule3, 'colonne' + idFormule3);

    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;
    }
}

/*******************        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;
}

//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 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 onclick = window.event.srcElement.onclick;
  window.event.srcElement.onclick = null;
  var evt = (e) ? e :(window.event) ? window.event : null;
  if (evt) 
  {
    var key = (evt.charCode) ? evt.charCode :(
		(evt.keyCode) ? evt.keyCode : 
		((evt.which) ? evt.which : 0));
    if (key == code)
    {
	  evt.cancelBubble = true;
	  evt.returnValue = false;
	  if (!soumissionFormulaireTraitee)
	  {
		soumissionFormulaireTraitee = true;
		return true;
      }
      {
		return false;
	  }
    }
  }
  window.event.srcElement.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;
    }
}