//Parametres globaux
var _cookieName = "erepService" ;
var _client = "ITOOL" ;

var _EREP = "/erep";
var _EREPPP1 = "/erep4"
var _EREPO2 = "/erep2" ;
var _EREPO3 = "/erep3" ;
var _EREPO4 = "/erep4" ;

var THIRD_KIND_CENTRAL = "15" ;
var THIRD_KIND_STORE = "7" ;
var THIRD_KIND_SITE = "-1" ;

var SWITCH_KIND_SITE="-1";
var SWITCH_KIND_STORE="7";

var _SERVICE_SWITCH = "switch" ;
var _SERVICE_THIRD = "third";

var _urlErep = "" ;
var _context = "" ; //adresse du serveur eRep, ex : _EREPO1 ;
var _urlSite = "" ; //adresse du site internet, ex : http://www.decathlon.fr ;

var _serviceSwitchContextId = ""; // ID contexte du service switch

var isOxyCallWithSwitch = "true"; //permet de controler l affichage des fonctions Oxylane

//## SPECIFIQUE Marques : URL du site courant
var urlSiteCourant = document.location.href ; //get the site URL

// Flag determine si en local
var _isLocal = false;
if (urlSiteCourant.indexOf('preprod')!=-1 || urlSiteCourant.indexOf('127.0.0.1')!=-1 || urlSiteCourant.indexOf('localhost')!=-1 || urlSiteCourant.indexOf('gihq')!=-1) _isLocal = true;

//Liste des serveurs eRep
var serverList = new ArrayList() ;
if (_isLocal) serverList.add(_EREPPP1) ;
else {
    serverList.add(_EREPO2) ;
    serverList.add(_EREPO3) ;
    serverList.add(_EREPO4) ;
}

var indexTestServer = getRandomServerIdToCheck(serverList.length()) ; 
var numTentative = 0 ; //Numero de la tentative
var maxTentatives = (serverList.length())*2 ; //Nb max de tentatives => on va verifier pour chaque serveur 2 fois au max si ils ne repondent pas

// Determination du codePays grace a l url
var urlRoot = getRootUrl(urlSiteCourant);
var site;

if (urlSiteCourant.indexOf('www.decathlon.')!=-1) site = urlRoot.substr(urlRoot.length - 2,2);
else if (_isLocal) site = 'pp1';
else site = urlRoot.substr(0,2);

//Initialisation de tous les sites et les serveurs associes
var sitePP1 = new SiteServer("pp1", _EREPPP1) ;
var siteEs = new SiteServer("es", _EREPO2) ;
var siteCn = new SiteServer("cn", _EREPO2) ;
var siteIt = new SiteServer("it", _EREPO3) ;
var siteDe = new SiteServer("de", _EREPO3) ;
var sitePt = new SiteServer("pt", _EREPO3) ;
var siteRu = new SiteServer("ru", _EREPO3) ;
var siteNl = new SiteServer("nl", _EREPO3) ;
var siteHu = new SiteServer("hu", _EREPO4) ;
var sitePl = new SiteServer("pl", _EREPO4) ;
var siteBe = new SiteServer("be", _EREPO4) ;
var siteUk = new SiteServer("uk", _EREPO4) ;
var siteBr = new SiteServer("br", _EREPO4) ;
var siteRo = new SiteServer("ro", _EREPO4) ;


var siteServerObjList = new ArrayList() ;
if (_isLocal) siteServerObjList.add(sitePP1) ;
else {
    siteServerObjList.add(siteEs) ;
    siteServerObjList.add(siteCn) ;
    siteServerObjList.add(siteIt) ;
    siteServerObjList.add(siteDe) ;
    siteServerObjList.add(sitePt) ;
    siteServerObjList.add(siteRu) ;
    siteServerObjList.add(siteNl) ;
    siteServerObjList.add(siteHu) ;
    siteServerObjList.add(sitePl) ;
    siteServerObjList.add(siteBe) ;
    siteServerObjList.add(siteUk) ;
    siteServerObjList.add(siteBr) ;
    siteServerObjList.add(siteRo) ;
}

// Dedie a la recherche predictive
var preSearchDisplayed = false;
var preSearchQueryLaunched = false;
var preSearchLaunchTrigger = 2;
var preSearchTimerDelay = 900;
var valueTextField = '';
var selectedPos = -1;

/**********************************************************************************
*                                            GENERIC FUNCTIONS
**********************************************************************************/

// Gestionnaire d evenement du document sur l action onclick
function documentOnclickEventHandler() {
    // Recherche predictive
    if (preSearchDisplayed) preSearchClose(document.getElementById('preSearch'));
}

//**********************************************************************************//
var _POST_FUNC_CHECK_SERV = function(httpstatus){
    // Si la reponse du service switch n est pas correct : pb erep --> mode degrade
   if(httpstatus == "200" && _validateSwitchServiceReponse(_serviceSwitchContextId)){
        setUrlErep(typeService, urlErep, client, kind1, number1, subNumber1, kind2, number2, subNumber2, localFunc) ;
    }
    else{
        if(numTentative < maxTentatives){
            var isResponse = checkOtherServer(typeService, _urlSite, _context, client, kind1, number1, subNumber1, kind2, number2, subNumber2, localFunc) ;
            numTentative++; //on incremente le numero de la tentative de connexion a un autre serveur
        }
        else {
            //ATTENTION : specifique a l enseigne, a faire quand aucun serveur eRep ne repond !!
            if(!isResponse){
                loadedSwitches = true;
                switchStatusError = true;
                // Non affichage des prix page modele
                hideBloc('blocPrixTpsReel');
            }
         }         
    }
}

/**********************************************************************************
*                                            Framework javascript eRepository
**********************************************************************************/
/*
 * Retourne l url du serveur erep
 * @param :
*/
function _eRepGetUrl() {
    // Recup du cookie
    var sUrlErep = getCookie(_cookieName) ;

    // Cookie n existe pas - creation
    if(sUrlErep == null) {
        sUrlErep =  "http://" + getRootUrl(urlSiteCourant);
        if (_isLocal) sUrlErep = sUrlErep + _EREPPP1;
        else sUrlErep = sUrlErep + _EREP;

        // Ecriture cookie
        setCookie(_cookieName, sUrlErep, null, '/') ;        
    }

    return sUrlErep;
}



/*
 * Permet de stocker le serveur eRep dans un cookie et de lancer la fonction de retour
 * @param :
 *     _typeService : SERVICE_SWITCH
 *     _client : client ITOOL
 *     _kind1 : type de tiers 1, par exemple tier Site
 *     _number1 : numero du tiers 1, par exemple id du site
 *     _subNumber1 : sous numero du tiers 1, par exemple id du site
 *     _kind2 : type de tiers 2, par exemple tier Site
 *     _number2 : numero du tiers 2, par exemple id du site
 *     _subNumber2 : sous numero du tiers 2, par exemple id du site
 *     _localFunc : Fonction de retour
*/
function getUrlErep(_typeService, _client, _kind1, _number1, _subNumber1, _kind2, _number2, _subNumber2, _localFunc){
    // Pour phase migration eRep - PL
    //if (_isLocal || (!_isLocal && _siteNumber == '10293446')) return _eRepGetUrl();
    return _eRepGetUrl();
/*
    //on doit recuprer du cookie l url eRep      
    var eRepServer = getCookie(_cookieName) ;

    //Si celui-ci est null, on va checker le serveur associe au site
    if(eRepServer == null){
        getServer() ;        
        checkServer(_typeService, _urlSite, _context, _client, _kind1, _number1, _subNumber1, _kind2, _number2, _subNumber2, _localFunc) ;
    }
    //sinon, on retourne le serveur eRep qui lui est associe
    else{            
        return eRepServer;
    }
*/
}

/*
 * Permet de stocker le serveur eRep dans un cookie et de lancer la fonction de retour
 * @param :
 *     _typeService : SERVICE_SWITCH
 *     urlErep : url eRep a stocker
 *     _client : client ITOOL
 *     _kind1 : type de tiers 1, par exemple tier Site
 *     _number1 : numero du tiers 1, par exemple id du site
 *     _subNumber1 : sous numero du tiers 1, par exemple id du site
 *     _kind2 : type de tiers 2, par exemple tier Site
 *     _number2 : numero du tiers 2, par exemple id du site
 *     _subNumber2 : sous numero du tiers 2, par exemple id du site
 *     _localFunc : Fonction de retour
 * @return :
 *    urlErep
*/
function setUrlErep(_typeService, urlErep, _client, _kind1, _number1, _subNumber1, _kind2, _number2, _subNumber2, _localFunc){    
    if(urlErep != ""){
        _urlErep = urlErep ; //on stocke le serveur eRep dans la constante _urlErep       
        setCookie(_cookieName, urlErep, null, '/') ; //on sette le cookie        
     
        //Pour la premire recupration, on va charger les switchs
        if(_typeService == _SERVICE_SWITCH){
            _serviceSwitchContextId = _initAndExecuteSwitchService(_urlErep,getErepLanguageCode( _language), _number1, _centralNumber, _number2,_kind1,_number1,_subNumber1,_kind2,_number2,_subNumber2,_localFunc);
        }
       //Pour la premiere recupration, on va charger les thirds
        if(_typeService == _SERVICE_THIRD){
                var oContext = new JoServiceContext(_urlErep,getErepLanguageCode( _language), null, null, null);
                oContext.setThirdChildren(_kind1, _number1, _subNumber1);
                var oService = new JoService(oContext);
                oService.execute(_localFunc);
        }
        return urlErep ;
    }
    else{
        return "" ;
    }
}

/*
 * Permet de recuprer l urlSite et le context en fonction du document.href courant
 * Permet de setter _urlSite et _context
*/
function getServer(){
    //on recupere le root de l'url courante
    var currentRootUrl = "" ;
    if(urlSiteCourant && urlSiteCourant != ""){
        currentRootUrl = getRootUrl(urlSiteCourant) ;
    }
    
    //on va recuperer le serveur eRepo associ a ce site
    if(currentRootUrl){
        for(var i=0 ; i<siteServerObjList.length(); i++){
            var siteServer = siteServerObjList.get(i);
            if(siteServer.getSite() == site){
                _urlSite = "http://"+currentRootUrl ;
                _context = siteServer.getERepoUrl();
            }
        }
    }    
}

/*
 * Permet de checker le serveur eRep associe au site
 * @param :
 *     _typeService : SERVICE_SWITCH
 *     thisUrlSite : url courante du site
 *     thisContext : le contexte courant du site
 *     _client : client ITOOL
 *     _kind1 : type de tiers 1, par exemple tier Site
 *     _number1 : numro du tiers 1, par exemple id du site
 *     _subNumber1 : sous numro du tiers 1, par exemple id du site
 *     _kind2 : type de tiers 2, par exemple tier Site
 *     _number2 : numro du tiers 2, par exemple id du site
 *     _subNumber2 : sous numro du tiers 2, par exemple id du site
 *     _localFunc : Fonction de retour
*/
function checkServer(_typeService, urlSite, context, _client, _kind1, _number1, _subNumber1, _kind2, _number2, _subNumber2, _localFunc){    
    if(urlSite != "" && context != ""){
        //parametres qui vont servir a la fonction de retour
        typeService = _typeService ;
        client = _client ; 
        kind1 = _kind1;
        number1 = _number1;
        subNumber1 = _subNumber1;
        kind2 = _kind2 ;
        number2 = _number2 ;
        subNumber2 = _subNumber2 ;        
        localFunc = _localFunc ;
        urlErep = urlSite + context ;        
        indexServ = 0 ;
        
        _serviceSwitchContextId = _initAndExecuteSwitchService(urlErep,getErepLanguageCode( _language), _number1, null, null,_kind1,_number1,_subNumber1,null,null,null,_POST_FUNC_CHECK_SERV);
    }
}

/*
 * Permet de checker tous les serveurs eRep jusqu a ce que un serveur reponde
 * @param :
 *     _typeService : SERVICE_SWITCH
 *     indexServer : index du serveur courant  tester
 *     thisUrlSite : url courante du site
 *     thisContext : le contexte courant du site
 *     _client : client ITOOL
 *     _kind1 : type de tiers 1, par exemple tier Site
 *     _number1 : numero du tiers 1, par exemple id du site
 *     _subNumber1 : sous numero du tiers 1, par exemple id du site
 *     _kind2 : type de tiers 2, par exemple tier Site
 *     _number2 : numero du tiers 2, par exemple id du site
 *     _subNumber2 : sous numero du tiers 2, par exemple id du site
 *     _localFunc : Fonction de retour
*/
function checkOtherServer(_typeService, thisUrlSite, thisContext, _client, _kind1, _number1, _subNumber1, _kind2, _number2, _subNumber2, _localFunc){    
    var currentERepoServer = serverList.get(indexTestServer) ; //on recupere le serveur a tester
    
    //parametres qui vont servir a la fonction de retour
    typeService = _typeService ;
    client = _client ; 
    kind1 = _kind1;
    number1 = _number1;
    subNumber1 = _subNumber1;
    kind2 = _kind2 ;
    number2 = _number2 ;
    subNumber2 = _subNumber2 ;        
    localFunc = _localFunc ;
    indexTestServer = (indexTestServer + 1) % serverList.length();
    
    //Si le serveur a tester est le serveur associe au site, on va recuperer le prochain serveur a tester de la liste si celui-ci existe
    if(currentERepoServer == thisContext){                
        if(serverList.get(indexTestServer) != ""){
            currentERepoServer = serverList.get(indexTestServer) ;
        }
        indexTestServer = (indexTestServer + 1) % serverList.length();
    }
    
    if(currentERepoServer != ""){   
        urlErep = thisUrlSite + currentERepoServer ;
        
        _serviceSwitchContextId = _initAndExecuteSwitchService(urlErep,getErepLanguageCode( _language), _number1, null, null,_kind1,_number1,_subNumber1,null,null,null,_POST_FUNC_CHECK_SERV);
        
        return true ;
    }
    else{
        return false ;
    }
}


/*
 * Permet de retourner l'url root du site
 * @param : urlHref doit tre du type http://www.aptonia.com ou http://aptonia.preview.dktetrix.net ou http://www.decathlon.fr ou http://fr.preview.dktetrix.net
 * @return : www.aptonia.com ou aptonia.preview.dktetrix.net ou decathlon.fr ou fr.preview.dktetrix.net
*/
function getRootUrl(urlHref){
    if(urlHref){
        var rootUrl = "" ;
        var urlSplit = urlHref.split("/") ;
        if(urlSplit.length > 1 && urlSplit[2]){
            rootUrl = urlSplit[2] ;
        }
        return rootUrl ;
    }
    else{
        return "" ;
    }
}

/*
* Permet de retourner aleatoirement l indice d un serveur eRep a tester dans le tableau serverList
* @param : nbServer est le nombre de serveurs dans le tableau des serveurs eRep (serverList) 
* @return : nombre entier aleatoire de 0 a nbServer (=indice aleatoire du tableau serverList)
*/
function getRandomServerIdToCheck(nbServer){
    var randomId = Math.ceil(Math.random()*nbServer) ;
    return (randomId - 1) ;
}

/*############################################################################################## */
/* Retourne le code langue eRep correspondant au code langue itool passe en parametre : utile pour le Bresil */
function getErepLanguageCode(itoolLanguageCode) {
    if (itoolLanguageCode=='FR') return 'FR';
    else if (itoolLanguageCode=='NL') return 'NL';
    else if (itoolLanguageCode=='ES') return 'ES';
    else if (itoolLanguageCode=='CA') return 'CA';
    else if (itoolLanguageCode=='DE') return 'DE';
    else if (itoolLanguageCode=='PT') return 'PT';
    else if (itoolLanguageCode=='ZH') return 'ZH';
    else if (itoolLanguageCode=='HU') return 'HU';
    else if (itoolLanguageCode=='IT') return 'IT';
    else if (itoolLanguageCode=='PL') return 'PL';
    else if (itoolLanguageCode=='RU') return 'RU';
    else if (itoolLanguageCode=='EN') return 'EN';
    else if (itoolLanguageCode=='RO') return 'RO';
    // Cas particulier du Bresil
    else if (itoolLanguageCode=='BR') return 'B6';
    // FR par defaut
    else return 'FR';
}

/**********************************************************************************
*                                            SELECTING CENTRAL
**********************************************************************************/
/* Maj _centralNumber si ID centrale stocke dans cookie*/
function getCentralId(cookieMagasin) {
    var iCt = getEltFromUrl(cookieMagasin, "idCentrale");

    if (iCt != null) {
        if (iCt != '') _centralNumber = iCt;
    }
}

/* Retourne l ID centrale en fonction de l ID magasin*/
function getCentralIdAssociatedToStoreId(_iStoreId, _postFunction) {
    // Creation du contexte
    var oContext = new JoServiceContext(_urlErep, getErepLanguageCode( _language), _siteNumber, _centralNumber, null);

    // On veut la centrale associee au magasin
    oContext.setThirdParents(THIRD_KIND_STORE, _iStoreId, _iStoreId);
    var oService = new JoService(oContext);
    oService.execute(_postFunction);
}

/** ############################
 * EXEMPLE
 */
 /*
function loadSwitches(_client, _kind1, _number1, _subNumber1, _kind2, _number2, _subNumber2) {	
    _urlErep = getUrlErep(_SERVICE_SWITCH, _client, _kind1, _number1, _subNumber1, _kind2, _number2, _subNumber2, POST_LOAD_SWITCH_SERVICE_FUNCTION) ;
    
    if(_urlErep != ""){
        _initSwitchService(_urlErep);
        _loadSwitches(_client, _kind1, _number1, _subNumber1, _kind2, _number2, _subNumber2, POST_LOAD_SWITCH_SERVICE_FUNCTION);
    }
}
*/

/**********************************************************************************
*                                            Predictive search functions
**********************************************************************************/

// Gere la recherche predictive
function preSearchQuery(engineUrl, timerExpire) {
    // Test du switch d activation
    if (!getSwitchSite('SAISIE_PREDICTIVE')) return false;
    
    var sQuery = document.getElementById('text');
    // On verifie que la valeur dans le champ texte a bien ete modifiee
    if (sQuery.value == valueTextField) return false;
    
    // Timer pour ne pas solliciter le service a chaque appui rapproche des touches
    if (!timerExpire) {
        if (preSearchQueryLaunched) return true;
        window.setTimeout("preSearchQuery('"+engineUrl+"', "+true+")", preSearchTimerDelay);
        preSearchQueryLaunched = true;
        return true;
    }
    else preSearchQueryLaunched = false;
    
    // Nouvelle valeur du champ texte
    valueTextField = sQuery.value;
    
    if (sQuery != 'undefined' && engineUrl != '') {
        if (sQuery.value.length > preSearchLaunchTrigger) {
            // Lancement requete
            _preSearchQuery(sQuery.value, engineUrl, POST_LOAD_PRESEARCH_FUNCTION);
        }
        else preSearchClose();
    }
    
    return true;
}

// Ferme la liste des propositions
function preSearchClose() {
    // Masquer la liste
    hideBloc("preSearch");
    // Positionne le flag d affichage
    preSearchDisplayed = false;
}

// Place dans le champs de saisi le terme selectionne
function preSearchSelectProposal() {
    // Suppression surlignage
    var sTxt = _preSearchLightTxtRemove(this.innerHTML);

    // Inscription de la proposition dans le champ de saisie
    document.getElementById('text').value = sTxt;
    
    // Fermeture de la liste
    preSearchClose();
    
    // Soumission du formulaire
    document.mdrech.onsubmit();
}


// Internal PreSearch functions - Do not access directly

// Envoi le requete vers le service de recherche predictive (ajax)
function _preSearchQuery(_sQuery, _engineUrl, _localFunc) {
    var aProps = new Array();

    var func = function (xmlHttp, httpStatus) {
        oGlobalXml = xmlHttp.responseXML;
        if(oGlobalXml!=null) {
            var oProposals = oGlobalXml.getElementsByTagName("expression");
            for (var i = 0; i < oProposals.length; i++) aProps[i] = getNodeValue(oProposals[i]);
        }

        if (_localFunc != null) {
            try {
                _localFunc(httpStatus,aProps,_sQuery);
            } catch (e) {
                return false;
            }
        }
        
    return true;
    }

    //Ajout des parametres a l url du service
    _engineUrl = _engineUrl + "?text=" + encodeURI(_sQuery) + "&language=" + _language + "&siteId=" + _siteNumber ;
    
    //Lancement du processus
    var oProcess = new IAjaxProcess(_engineUrl, func);
    oProcess.run();
    return true;
}

// Fonction de post traitement assurant l affichage des resultats de la recherche predictive
var POST_LOAD_PRESEARCH_FUNCTION = function postLoadPresearchFunction(httpStatus,aProposals,sSearch) {
    if(httpStatus != null && httpStatus==200)  {
        oDiv = document.getElementById('preSearchList');

        // Suppression liste precedente
        _preSearchClear(oDiv);
    
        // Des propositions existent
        if (aProposals.length > 0) {
            // Creation d une liste UL
            oUl = createElement_ul('preSearchList', '', oDiv);
            // On boucle sur les propositions pour creer les LI
            for (var i=0; i < aProposals.length; i++) {

                // Surlignage
                var sTxt = _preSearchLightTxtAdd(sSearch,aProposals[i]);

                // Creation LI avec son lien
                var oLi =  document.createElement('li');
                oA = document.createElement('a');
                oA.id = 'preSearchLink-' + i;
                oA.href = "#";
                oA.onclick = preSearchSelectProposal;
                oA.innerHTML = sTxt;
                oA.title = aProposals[i];
                
                oLi.appendChild(oA);
                oUl.appendChild(oLi);
            }
            selectedPos = -1;
            document.mdrech.text.onkeydown =  function(e){
                e = e || event;
                if(e.keyCode == '38' || e.keyCode == '40'){
                    if(preSearchDisplayed) selectLink(e,oUl.childNodes.length);
                    else if(document.mdrech.text.value.length > preSearchLaunchTrigger && oDiv.hasChildNodes()){
                        showBloc('preSearch');
                        preSearchDisplayed = true;
                    }
                }
            };
            
            // Affichage de la liste
            showBloc('preSearch');
            
            preSearchDisplayed = true;
            
            return true;            
        }
    }

    // Dans tous les autres cas, on ferme la boite
    preSearchClose();
    
    return false;
}

// Permet la navigation avec les fleches directives du clavier dans la zone contenant les resultats de la recherche predictive
function selectLink(e,nbLiens) {
    if(selectedPos != -1) document.getElementById('preSearchLink-' + selectedPos).style.backgroundColor = '';

    // Fleche haut
    if (e.keyCode == '38') {
        if(selectedPos == -1 || selectedPos == 0) selectedPos = nbLiens - 1;
        else selectedPos--;
    }
    // Fleche bas
    if (e.keyCode == '40') {
        selectedPos++;
        if(selectedPos == nbLiens) selectedPos = 0;
    }
    document.getElementById('preSearchLink-' + selectedPos).style.backgroundColor = '#e8e4e4';
    document.mdrech.text.value = document.getElementById('preSearchLink-' + selectedPos).title;
}

// Efface la liste des propositions
function _preSearchClear(oListe) {
        if (oListe.hasChildNodes()) while (oListe.childNodes.length > 0) oListe.removeChild(oListe.firstChild);
}

function _preSearchLightTxtAdd(sToLight,sTxt) {
    var reg = new RegExp("("+ sToLight +")", "gi");
    sTxt = sTxt.replace(reg,"<strong>$1</strong>");
    
    return(sTxt);
}

function _preSearchLightTxtRemove(sTxt) {
    var reg = new RegExp("(</?strong>)","gi");
    sTxt = sTxt.replace(reg, "");
    
    return(sTxt);
}

/*********************************************************************************************************************************************************/
/**********************************************************************************
*                                            MAIL CLIENT VENDEUR LINK  HANDLERS
**********************************************************************************/
// Manage link for family and departement pages
function mcvLinkHandler(_cookieMag) {

    // Display link only in connected mode
    if (_cookieMag != null) {
        var iStoreNb = getEltFromUrl(_cookieMag, 'idMagasin');
        var sStoreName = getEltFromUrl(_cookieMag, 'magasin');
        
        if (iStoreNb != "" && sStoreName != '') {

            if (_mcvIsProposed(iStoreNb)) {
                var myLnk = document.getElementById('linkStoreContact');
                if (myLnk) {

                    var sUrl = mcvUrl + "&id=" + iStoreNb + "&store=" + sStoreName;
                    var fFunc = function () {openNewWindow(sUrl, 'nw', 'width=1000, height=600,menubar=yes,toolbar=yes, scrollbars=yes,location=yes,resizable=yes',false);gaLink(sUrl);return false;}

                    // Href 
                    myLnk.href = sUrl;

                    // Onclick
                    myLnk.onclick = fFunc;

                    // Update picture link
                    var myLnk = document.getElementById('linkStoreContactImg');
                    if (myLnk) {
                        myLnk.href = sUrl;
                        myLnk.onclick = fFunc;
                    }


                    // Display
                    if (typePage == "bottom-links") {
                        hideBloc("storeContactStd");
                        showBloc("storeContact");

                    }
                    else showBloc('btnStoreContact');
                }            
            }
            
        }

    }
}

// Manage link for bottom links page
function mcvBottomLinkHandler() {
    // Specifique UK
    if (_siteNumber == "52333") {
        var cookieMagasin = getCookie("decathlon");
        mcvLinkHandler(cookieMagasin);
    }
}



// Tell if store offer the service
function _mcvIsProposed(_theStore) {

    if (typeof aCONTACT_YOUR_STORE != 'undefined') {
        for (var i=0; i < aCONTACT_YOUR_STORE.length; i++) {
            if (aCONTACT_YOUR_STORE[i] == _theStore) return true;
        }
    }
    
    return false;
}



// Recupere le code html de la page magasin _storeUrl
function getStoreInfos(_storeUrl, _localFunc) {
    var flow = "";
    
    var func = function (xmlHttp, httpStatus) {
        oGlobalText = xmlHttp.responseText;
        if(oGlobalText != null) {
            flow = xmlHttp.responseText;
        }

        if (_localFunc != null) {
            try {
                _localFunc(httpStatus, flow);
            } catch (e) {
                return false;
            }
        }

    return true;
    };

    //Lancement du processus
    var oProcess = new IAjaxProcess(_storeUrl, func);
    oProcess.run();
    return true;
}

/*********************************************************************************************************************************************************/
// Page des avis oxylane - Permet d adapter le lien de fermeture de la page
function loadAvisOxylane() {
    var oDiv = document.getElementById("oxy-liens");
    if (!oDiv) return false;
    
    var oTxt;
    var oA = document.createElement('a');
    
    // On vient du site
    if (window.location.search == "?avis") {
        // On modifie les liens de la page
        oLnk = document.getElementById("oxy-lnk-fp-img");
        if (oLnk) {
            oLnk.href = "#";
            oLnk.onclick = function(){window.close();}
        }
        // Lien fermer
        oTxt = document.createTextNode(oxyLibFermerPopup);
        oA.href = "#";
        oA.onclick = function(){window.close();}
    }
    // Tous les autres cas
    else {
        oTxt = document.createTextNode(oxyLibVoirProduit);
        oA.href = urlPageModele;
    }
    
    oA.appendChild(oTxt); 

    oDiv.appendChild(oA);
}

/**********************************************************************************
*                                            SEARCH ENGINE HANDLER
**********************************************************************************/
function searchEngineHandler() {
    var oSe = document.getElementById("seCentralNb");
    if (oSe) oSe.value = _centralNumber;
}

/**********************************************************************************
*                                            CARTOUCHE PRIX
**********************************************************************************/
function displayCartouchePrixMsg(_id) {
    if (typeof cartouchePrixMsg != "undefined" && document.getElementById(_id)) {
        var oDiv = document.getElementById(_id);
        // On vide la zone
        cleanElement(_id);
        // On injecte le texte
        oP = createElement_p("", "cartouchePrixMsg", cartouchePrixMsg, oDiv);
    }
}

/**********************************************************************************
*                                            POPUP HANDLER
**********************************************************************************/
function popupsHandler(_cookieMag) {
    // CAS NON CONNECTE
    if (_cookieMag == null) {
        // CAS SUPPRIMER PRIX CENTRAUX - SPEC BR
        if (!getSwitchSite('ACTIVATION_PRIX_CENTRAL') && _siteNumber == "25797673") {
            if (typeof urlPopupSiteMsg != "undefined") {
                if (urlPopupSiteMsg != "") {
                    // Affichage de la popup d'infos
                    var iframe = createElement_iframe("popup-hp-2", "", "", "", "", null, document.getElementsByTagName('body')[0]);
                    iframe.style.display = 'none';
                    openNewWindowScrollEffect(2,urlPopupSiteMsg,'popup-site-msg',null);
                }
            }
        }
    }

    // Tous les autres cas
    // Affichage popup "comment ca marche"
    if(window.location.search == "?popupInfo"){
        show_filter('filter');
        show_popup('popup-commentcamarche');
    }


    // Popup alert
    if (getSwitchSite('POPUP_ALERT') && typePage == "homepage" && typeof urlPopupAlert != "undefined") {
        var iframe = createElement_iframe("popup-hp-3", "", "", "", "", null, document.getElementsByTagName('body')[0]);
        iframe.style.display = 'none';
        openNewWindowScrollEffect(3,urlPopupAlert,'popup-alert',null);
    }

}

/**********************************************************************************
*                                            POPUP HOW IT WORK PRINT HANDLER
**********************************************************************************/
function ebsPrint() {
    var ml = document.getElementById("generalConditions");
    
    var popupPrint = window.open('','_blank', 'width=800,height=600, location=no, menubar=yes,toolbar=yes, scrollbars=yes, resizable=yes');
    popupPrint.document.write("<html><head><style type=\"text/css\">.imprimer{display:none;} .titre01{font-size:40px;} .mt15{display:none;}</style></head><body>"+ml.innerHTML+"</body></html>");
}

/**********************************************************************************
*                                            ERESA SHOW VIDEO
**********************************************************************************/
/* Lien infos eresa */
function showEresaVideo() {

    openNewWindow (urlEresaVideo, 'video', 'width=730, height=490,menubar=no,toolbar=no, scrollbars=no,location=no,resizable=no', false);
    return false;
}






