﻿var idSession;
var evenement;
var estJourCourantOuvre;
var estParcoursCourtActif;
var nbSauvegardesEffectuees = 0;
var nbSauvegardesAuChargement = 0;
var simulationEnregistreeAvantTarif;
var sauvegardePropoFaite = 'false';

//affiche la fenetre call back de eStara
//enregistre une simulation si le callback est fait pendant les horaires d'ouverture des plateaux
function popupCallBackTarif(inIdSession, inEstJourCourantOuvre) {
    webVoicePop('Template=385482');
    if (inEstJourCourantOuvre == 'true' && nbSauvegardesAuChargement < 10 && nbSauvegardesEffectuees < 10) {
        enregistrerSimulationAvecContexteTarif(inIdSession);
    }
}

//Enregistre en simulation le questionnaire en cours lors que le contexte tarif metier est present
function enregistrerSimulationAvecContexteTarif(inIdSession) {
    idSession = inIdSession;
    DA.WEB.PS.MoteurRendu.Auto.Web.Simulation.EnregistrerAvecContexteTarif(inIdSession, onEnregistrementComplete, OnFailed);
}

//Enregistre en simulation le questionnaire en cours lors que le contexte tarif metier est absent
function enregistrerSimulationSansContexteTarif(inIdSession) {
    idSession = inIdSession;
    DA.WEB.PS.MoteurRendu.Auto.Web.Simulation.EnregistrerSansContexteTarif(inIdSession, onEnregistrementSansTarifComplete, OnFailed);
}

function onEnregistrementComplete(inNbSauvegardes) {
    nbSauvegardesEffectuees = inNbSauvegardes;
}

function onEnregistrementSansTarifComplete(inSaveOK) {
}

//Redefinition pour la nouvelle offre --> ne pas impacter l'existant commun
function valideActionNouvelleOffre(inIdSession, inAction, inEvenement, inEstJourCourantOuvre, inEstParcoursCourtActif, inNbSauvegardesAuChargement, inSauvegardePropoFaite) 
{
    
    attenteNouvelleOffre();
    
    validerActionCommun(inIdSession, inAction, inEvenement, inEstJourCourantOuvre, inEstParcoursCourtActif, inNbSauvegardesAuChargement, inSauvegardePropoFaite);
}

function validerActionCommun(inIdSession, inAction, inEvenement, inEstJourCourantOuvre, inEstParcoursCourtActif, inNbSauvegardesAuChargement, inSauvegardePropoFaite) 
{
    idSession = inIdSession;
    evenement = inEvenement;
    estJourCourantOuvre = inEstJourCourantOuvre;
    estParcoursCourtActif = inEstParcoursCourtActif;
    nbSauvegardesAuChargement = inNbSauvegardesAuChargement;
    sauvegardePropoFaite = inSauvegardePropoFaite;
    DA.WEB.PS.MoteurRendu.Auto.Web.Simulation.RecupererStatut(inIdSession, OnRecupererStatutSimulationComplete, OnRecupererStatutSimulationFailed, inAction);
}

//valider l'action choisie par l'internaute (enregistrer simul, recevoir propo, souscrire ....)
//verifier d'abord le statut de la simulation avant d'effectuer des actions
function validerAction(inIdSession, inAction, inEvenement, inEstJourCourantOuvre, inEstParcoursCourtActif, inNbSauvegardesAuChargement, inSauvegardePropoFaite) 
{
    attente();
    validerActionCommun(inIdSession, inAction, inEvenement, inEstJourCourantOuvre, inEstParcoursCourtActif, inNbSauvegardesAuChargement, inSauvegardePropoFaite);
}

function OnRecupererStatutSimulationComplete(inStatutSimulation, inAction) {
    //si la simulation est déjà transformée en propo, afficher directement le groupe GroupeRejetSimulation
    if (inStatutSimulation == "2") {
        switch (inAction) {
            case 'assurerCETELEM':
            case 'enregistrerCETELEM':
            case 'enregistrerSansTarifCETELEM':
                {
                    finAttente();
                    attenteRedirectionEspaceClient();
                    //Rediriger vers le zoom sur contrat
                    OpenWindow("/DA.WEB.PS.MoteurRendu.Auto.Cli.Web/CETELEMEspaceClient/Dossier.aspx?IdContrat=" + form1.elements.numeroProposition.value, "CETELEMEspaceClient", "scrollbars=1", "950", "900", "true");
                    form1.elements.abandonQuestionnaire.value = 'false';
                    detruireAutomate(form1.elements.idSession.value, false);
                    self.opener = top;
                    self.moveTo(10000, 10000);
                    setTimeout('self.close();', 3000);
                    break;
                }
            default:
                {
                    mettreFocusGroupe("GroupeRejetSimulation");
                    break;
                }
        }
    }
    //si la simulation est en cours de modification sur les plateaux, afficher la div SimulationEnCoursModification
    else if (inStatutSimulation == "4") {
        finAttente();
        montreAide("SimulationEnCoursModification");
    }
    else {
        effectuerAction(inAction);
    }
}

//s'il y a un probleme de recuperation, essayer quand meme d'effectuer l'action choisie
function OnRecupererStatutSimulationFailed(erreur, inAction) {
    effectuerAction(inAction);
}

function EnregistrementSimulation(inIdSession) {
    DA.WEB.PS.MoteurRendu.Auto.Web.Simulation.EnregistrerSansContexteTarif(inIdSession, onEnregistrementComplete, OnFailed);
    
}

//Enregistre en simulation le questionnaire en cours pour CETELEM
function enregistrerSimulationSansTarifCETELEM(inIdSession) {
    DA.WEB.PS.MoteurRendu.Auto.Web.Simulation.EnregistrerSansContexteTarif(inIdSession, onEnregistrementSimulationSansTarifCETELEMComplete, OnSimulationSansTarifCETELEMFailed);
}

function onEnregistrementSimulationSansTarifCETELEMComplete(inSaveOK) {
    if (inSaveOK) {
        mettreFocusGroupe('GroupeEnregistrementSimulation');
    }
    else { mettreFocusGroupe('GroupeRenvoiCDC'); }
}

function OnSimulationSansTarifCETELEMFailed() {
    OnFailed();
    mettreFocusGroupe('GroupeRenvoiCDC');
}

function RecupererSimulationEnregistreeAvantTarif(inSimulationEnregistreeAvantTarif) {
    simulationEnregistreeAvantTarif = inSimulationEnregistreeAvantTarif;
    var idPopUp = 'EnregistrementSimulationAvantTarif';
    if (simulationEnregistreeAvantTarif == 'true') {
        OpenWindowReturn('aide.aspx?source=groupe&&aide=' + idPopUp + '&&cleRemote=' + idSession, 'Erreur', '', '560', '155', 'true');

    }
}

//effectuer l'action choisie
function effectuerAction(inAction) {
    switch (inAction) {
        case 'assurerCETELEM':
        case 'enregistrerCETELEM':
        case 'enregistrer':
        case 'recevoir':
        case 'assurer':
            validerTarif(inAction, evenement);
            break;
        case 'contacterCDC':
            if (sauvegardePropoFaite == 'true') { //Sauvegarde OK dans DB2 --> Ne pas sauvegarder de simulation
                mettreFocusGroupe('GroupeRefusSauvegarde');
            }
            else {
                popupCallBackTarif(idSession, estJourCourantOuvre);
                finAttente();
            }
            break;
        case 'modifierQuestionnaire':
            if (sauvegardePropoFaite == 'true') { //Sauvegarde 1er contact OK dans DB2 --> Ne pas revenir au questionnaire
                mettreFocusGroupe('GroupeRefusSauvegarde');
            }
            else {
                modifierQuestionnaire(estParcoursCourtActif);
            }
            break;
        case 'enregistrerSansTarif':
            mettreFocusGroupe('GroupeEmailSimulation');
            break;
        case 'enregistrerSansTarifBNPP':
            mettreFocusGroupe('GroupeCoordonneesSimulationAvantTarif');
            break;
        case 'enregistrerSansTarifCETELEM':
            enregistrerSimulationSansTarifCETELEM(idSession);
            break;
    }
}
