//Contenu milieu de la page
var contentMiddle = document.getElementById("content-middle") ;

//Nombre de colonne par ligne pour le sitemap
var limitSiteMap = 7 ; 

/**********************************************************************************
*                                            Framework javascript
**********************************************************************************/
/** #########################################
* Permet de récupérer l'objet IFRAME
*/
function getIframeObjectMore(iframeName){                            
   if(document.frames){
   //IE 5
   IFrameObj = document.frames[iframeName];
   }
   else {
   //DOM IMPLEMENTED BROWSERS
   IFrameObj = document.getElementById(iframeName);
   }
   
   if(IFrameObj){
   if(IFrameObj.contentWindow){
   //IE 5.5 and more
   iframeObject = IFrameObj.contentWindow.document;        
   }
   else if(IFrameObj.contentDocument){
   //GECKO
   iframeObject = IFrameObj.contentDocument.document;        
   }
   else if(IFrameObj.document){
   //IE 5
   iframeObject = IFrameObj.document;
   }
   
   return iframeObject ;
   }
   return null ;
}

/** #########################################
* Permet de récupérer l'objet AJAX
*/
function getXhr(){
   if (window.ActiveXObject){
   try{
   xhr = new ActiveXObject("Msxml2.XMLHTTP");
   }
   catch (e){
   xhr = new ActiveXObject("Microsoft.XMLHTTP");
   }
   }
   else if(window.XMLHttpRequest)
   // Firefox et autres
   xhr = new XMLHttpRequest(); 
   else{
   // XMLHttpRequest not supported by browser
   alert("Your browser doesn't support XMLHTTPRequest objects..."); 
   xhr = false; 
   }                        
   return xhr ;
}

function setHtml(idObj, innerObj){
    var obj = document.getElementById(idObj) ;
    
    if(obj){
        if(innerObj != ""){
            obj.innerHTML = innerObj ;
        }
    }    
}

function setIframeSrc(idObj, src){
    var obj = document.getElementById(idObj) ;
    if(obj){
        if(src != ""){
            obj.src = src ;
        }
    }
}

function setHref(idObj, href, target){
    var obj = document.getElementById(idObj) ;
    if(obj){
        if(href != ""){
            obj.href = href ;
        }
        if(target != ""){
            obj.target = target ;
        }
    }
}

function setOnClick(idObj, javascript){
    var obj = document.getElementById(idObj) ;
    if(obj){
        if(javascript != ""){
            obj.onclick = javascript ;
        }
    }
}

function setImage(idObj, src, alt, title){
    var obj = document.getElementById(idObj) ;
    if(obj){
        if(src != ""){
            obj.src = src ;
        }
        if(alt != ""){
            obj.alt = alt ;
        }
        if(title != ""){
            obj.title = title ;
        }        
    }
}

function setImageObj(obj, src, alt, title){    
    if(obj){
        if(src != ""){
            obj.src = src ;
        }
        if(alt != ""){
            obj.alt = alt ;
        }
        if(title != ""){
            obj.title = title ;
        }        
    }
}

function getElement(idObj, fromDocument, objSrc){
    if(fromDocument){
        var obj = document.getElementById(idObj) ;       
        return obj ;
    }
    else{
        var obj = document.getElementById(idObj) ;        
        if(!obj){
            obj = parent.document.getElementById(idObj);
        }
        return obj ;
    }
}

function hideBloc(obj){
    if(obj){
        obj.style.display = "none" ;
    }
}

function displayBloc(obj){
    if(obj){
        obj.style.display = "block" ;
    }
}

function hideBlocId(objId){
    var obj = getElement(objId) ;
    hideBloc(obj) ;
}

function displayBlocId(objId){
    var obj = getElement(objId) ;
    displayBloc(obj) ;
}
/** #########################################
* Permet de récupérer les paramètres passés à l'url
*/
function getParameters() {
    urlGet = document.location.search;
    params = urlGet.split("&");
    param = new Array();
    for(j=0;j<params.length; j++){
       param.push(params[j].split("=")) ;
    }
    return param;
}

/** #########################################
* Permet de cacher ou de montrer la carte map decathlon dans la page "où acheter"
*/
function displayMap(){
    if(document.getElementById('map-decathlon').style.display == "none"){
        document.getElementById('map-decathlon').style.display="block" ;
    }
    else{
        document.getElementById('map-decathlon').style.display="none" ;                            
    }
}

/** #########################################
* Permet de charger vue3D
*/
function chargeVue3d(urlVue3d, nomVue3d){
    if(document.getElementById('iframe-vue3d')){
        document.getElementById('iframe-vue3d').src = urlVue3d ;
	document.getElementById('title-vue3d').innerHTML = nomVue3d ;
    }    
}

/** #########################################
* Permet de créer le cookie
*/
function setCookie(langue, name, value) {      
    var argv=setCookie.arguments;
    var argc=setCookie.arguments.length;
    var path = langue != "" ? "/"+langue+"/" : "/" ; 
    var exp = (argc > 3) ? argv[3] : null;
    var domain=(argc > 4) ? argv[4] : null;
    var secure=(argc > 5) ? argv[5] : false;    
    
    document.cookie=name+"="+escape(value)+
        ((exp==null) ? "" : ("; expires="+exp))+
        ((path==null) ? "" : ("; path="+path))+
        ((domain==null) ? "" : ("; domain="+domain))+
        ((secure==true) ? "; secure" : "");
}

/** #########################################
* Permet de récupérer les informations d'un cookie
*/
function getCookieVal(offset)
{
   var endstr=document.cookie.indexOf (";", offset);
   if (endstr==-1) endstr=document.cookie.length;
   return unescape(document.cookie.substring(offset, endstr));
}

function getCookie(name) {
    var arg=name+"=";
    var alen=arg.length;
    var clen=document.cookie.length;
    var i=0;
    while (i<clen) {
        var j=i+alen;
        if (document.cookie.substring(i, j)==arg)
            return getCookieVal (j);
        i=document.cookie.indexOf(" ",i)+1;
        if (i==0) 
            break;
    }
    return null;
}

/** #########################################
* Permet de supprimer un cookie
*/
function deleteCookie(langue, name) {
    var exp=new Date();
    exp.setTime (exp.getTime() - 100000);
    var cval=getCookie(name);
    if(cval){
        setCookie(langue, name, cval, exp.toGMTString());
    }
}

/** #########################################
* Permet d'afficher la popup de sondage
*/
function afficheSondage(language, nom, url, width, height){
    //A la 1ere page, on affiche la popup
    nbPageDefault = 1 ;
    nbPageLu = getCookie(nom);
    // Le cookie n'existe pas
    if (nbPageLu == null ){
        nbPageLu = 1 ;
        setCookie(language, nom, nbPageLu, getExpirationDateCookie(3, false));
    }
    //sinon, il existe et on va incrémenter la valeur du nombre de clic dans ce cookie
    else{
        nbPageLu++ ;
        setCookie(language, nom, nbPageLu, getExpirationDateCookie(3, false));
    }
   
    if(nbPageLu == nbPageDefault){

        var theWidth = "500" ;
        if(width != ''){
            theWidth = width ;
        }
        var theHeight = "420" ;
        if(height != ''){
            theHeight = height ;
        }

        displayPopupFilter('filtre', 'calquecontainer', url, theWidth, theHeight, 'iframe-sondage', true);
        document.getElementById("calque").style.backgroundColor="#FFFFFF";
        document.getElementById("bloc_fermer").style.right ='0px';
        document.getElementById("bloc_fermer").style.position ='absolute';
        document.getElementById("bloc_fermer").style.margin='6px';
    }
}

/** #########################################
* Permet de cacher ou afficher une div
*/
function hideSectionAdvice(obj){
    var parentSection = obj.parentNode ;
    if(parentSection){
        var section = parentSection.getElementsByTagName('div');
        for(i=0;i  < section.length; i++){
             section[i].className = 'rubConseil';
         }
    }
}

/** #########################################
* Permet d'afficher les fiches conseil par onglet
*/
function displaySection(obj, sectionDest, sectionId){    
    var sectionToDisplay = sectionId ;
    if(!obj || !document.getElementById(sectionId)){
        sectionToDisplay = "advice-links1" ;
        obj = document.getElementById("rubConseil1") ;
    }
    
    if(document.getElementById(sectionToDisplay)){
        var srcInnerrHtml = document.getElementById(sectionToDisplay).innerHTML ;
        if(document.getElementById(sectionDest)){
            document.getElementById(sectionDest).innerHTML = srcInnerrHtml ;
            document.getElementById(sectionDest).style.display = "block";
            
            if(obj){
                hideSectionAdvice(obj) ;
                obj.className = "rubConseilSelected" ;
                rubDefaut = obj.id ;
                advicesDefaut = sectionToDisplay ;
            }
        }
    }
}

/** #########################################
* Permet d'augmenter une zone de texte
*/
function increaseFontSize(idZones){
    var idZonesArr = idZones.split(';') ;
    for(var i=0 ; i<idZonesArr.length ; i++){
        var content = idZonesArr[i] ;
        increaseElement(content, "DIV") ;
        increaseElement(content, "A") ;
    }    
}


/** #########################################
* Permet de réduire une zone de texte
*/
function reduceFontSize(idZones){
    var idZonesArr = idZones.split(';') ;    
    for(var i=0 ; i<idZonesArr.length ; i++){
        var content = idZonesArr[i] ;
        reduceElement(content, "DIV") ; 
        reduceElement(content, "A") ;        
    }        
}


/** #########################################
* Permet de réduire les texte d'un bloc
*/
function reduceElement(content, elementType){    
    if(contentMiddle){
        var childNode = contentMiddle.getElementsByTagName(elementType);
        for(i=0;i  < childNode.length; i++){
            var childrenNode = childNode[i] ;
            if(childrenNode.id == content){
                if(childrenNode.style){
                    if(childrenNode.style.fontSize == "1.5em"){
                        childrenNode.style.fontSize ="1em" ;
                    }         
                    else if(childrenNode.style.fontSize == "" || childrenNode.style.fontSize == "1em"){
                        childrenNode.style.fontSize = "0.9em" ;
                    }
                }
            }
            if(childrenNode.className == content){
                childrenNode.style.height = "22em" ;
            }
        }
    }
}


/** #########################################
* Permet d'augmenter les textes d'un bloc
*/
function increaseElement(content, elementType){    
    if(contentMiddle){
        var childNode = contentMiddle.getElementsByTagName(elementType);
        for(i=0;i  < childNode.length; i++){
            var childrenNode = childNode[i] ;
            if(childrenNode.id == content){
                if(childrenNode.style){
                    if(childrenNode.style.fontSize == "0.9em"){
                        childrenNode.style.fontSize = "1em" ;
                    }         
                    else if(childrenNode.style.fontSize == "" || childrenNode.style.fontSize == "1em"){
                        childrenNode.style.fontSize = "1.5em" ;
                    }
                }            
            }
            if(childrenNode.className == content){
                childrenNode.style.height = "25em" ;
            }
        }       
    }
}


/** #########################################
* Permet de sélectionner le pays dans le footer
*/
function selectPays(){
    var url = document.location.href ;
    var tabUrl = url.split('/') ;
    var pays = "" ;
    if(tabUrl.length > 0){
        pays = tabUrl[3] ;
        if(document.getElementById("site-"+pays+"-selected")){
            document.getElementById("site-"+pays+"-selected").style.display = "block" ;
            if(document.getElementById("footer-site")){
                document.getElementById("footer-site").style.display = "block" ;
            }
            if(document.getElementById("langue-"+pays)){
                document.getElementById("langue-"+pays).style.display = "none" ;
            }
        }
    }
}

/* #######################
* Permet de remplacer une chaine de caractère d'un string
*/
function replaceAll( str, replacements ) {
    var idx = str.indexOf( replacements[0] );

    while ( idx > -1 ) {
        str = str.replace( replacements[0], replacements[1] ); 
        idx = str.indexOf( replacements[0] );
    }
    return str;
}


/** #########################################
* Permet d'ouvrir une nouvelle fenetre
*/
function openWindow(url, largeur, hauteur, scrolls, location, under){
    var timestamp = Math.floor((new Date()).getTime() / 1000) ;
    window.open(url, 'nw'+timestamp, 'top=screen.height,left=0,width='+largeur+',height='+hauteur+',menubar=yes,toolbar=yes,scrollbars='+scrolls+',resizable=yes,location='+location+','+under) ;
}

/* #######################
* Permet de remplacer une chaine de caractère d'un string
*/
function changeStyle(objId, newStyle) {
    var obj = document.getElementById(objId) ;
    if(obj){
        obj.className = newStyle ;
    }
}

/* #######################
* Permet de récupérer le server URL
*/
function getServerUrl(){
    var urlToReturn = "" ;
    var url = document.location.href ;
    if(url){
        var tabUrl = url.split("/") ;
        if(tabUrl && tabUrl.length > 3){
            for(var k=0 ; k<3 ; k++){                
                urlToReturn = urlToReturn + tabUrl[k] ;
                if(k != 2){
                    urlToReturn = urlToReturn + "/" ;
                }
            }
        }
    }
    return urlToReturn ;
}

/*########################################################
* Permet de faire le liage entre la fiche marque et la fiche enseigne
*/
function goToProduct(rootPath, urlLiage, urlEnseigne){
    var xhr = getXhr();
    
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4 && xhr.status == 200){
            responseAjax = xhr.responseXML ;
            if(responseAjax.getElementsByTagName("product")[0]){                
                var productTag = responseAjax.getElementsByTagName("product")[0] ;
                var urlProductEnseigne = "" ;
                
                for (var i=0; i<productTag.childNodes.length; i++){
                    if (productTag.childNodes[i].nodeName=="url"){
                        if(productTag.childNodes[i].firstChild.nodeValue){
                            urlProductEnseigne = rootPath+"/"+productTag.childNodes[i].firstChild.nodeValue ;
                        }
                    }
                }
                window.open(urlEnseigne+urlProductEnseigne, "", "width=800,height=600,resizable=yes,location=yes,scrollbars=yes,toolbar=yes") ;
            }
            else{
                window.open(urlEnseigne, "", "width=800,height=600,resizable=yes,location=yes,scrollbars=yes,toolbar=yes") ;
            }
        }
    }    
    xhr.open("GET", urlLiage, true);
    xhr.setRequestHeader('Content-Type','text/xml');
    xhr.send(null);
}

/*########################################################
* Permet de faire bouger une dic vers le haut
*/
function moveUp(divId1, divId2){
    var divObj1 = getElement(divId1, true, "") ;
    var divObj2 = getElement(divId2, true, "") ;
    if(divObj1 != null){
        if(navigator.appName != 'Microsoft Internet Explorer' || (navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.indexOf("MSIE 6.0") == -1)) {
            divObj1.style.marginTop = "-5px" ;
        }
    }
    if(divObj2 != null){
        if(navigator.appName != 'Microsoft Internet Explorer' || (navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.indexOf("MSIE 6.0") == -1)) {
            divObj2.style.marginTop = "5px" ;
        }
    }
}

/*########################################################
* Permet de faire bouger une dic vers le haut
*/
function hideWaitingMessage(){
    if(getElement("waitingMessage", true, "")){
        hideBloc(getElement("waitingMessage", true, "")) ;
        if(getElement("produits", true, "")){
            displayBloc(getElement("produits", true, "")) ;
        }
        else if(getElement("mainContent", true, "")){
            displayBloc(getElement("mainContent", true, "")) ;
        }
    }    
}


/*########################################################
* Permet de resizer des blocs divs
*/
function resizeObjBlock(idObj, tagObjToResize) {
    var obj = getElement(idObj, true, "") ;
    if(obj){
        var elts = obj.getElementsByTagName(tagObjToResize) ;        
        if(elts){
            //on va recuperer la hauteur max
            var maxHeight = -1 ;
            for(var i=0 ; i<elts.length ; i++){
                if(elts[i] && elts[i].className && elts[i].className.indexOf("sitemap") > -1){
                    var height = elts[i].offsetHeight ;
                    if(height > maxHeight){
                        maxHeight = height ;
                    }
                }
            }
            
            //on va recalculer les hauteurs
            for(var i=0 ; i<elts.length ; i++){
                if(elts[i] && elts[i].className && elts[i].className.indexOf("sitemap") > -1){
                    elts[i].style.height = maxHeight + "px" ;
                }
            }
        }
    }
}


/*########################################################
* Permet de definir la bonne classe a utiliser pour les colonnes du sitemap
*/
function defineClassName(idObj, tagObjToResize, classNameObj, className2Obj, limit){
    var obj = getElement(idObj, true, "") ;
    if(obj){
        var elts = obj.getElementsByTagName(tagObjToResize) ;        
        if(elts){
            //on va recuperer la hauteur max
            var numElt = 0 ;
            for(var i=0 ; i<elts.length ; i++){
                if(elts[i]){
                    if(i != elts.length-1 && numElt < limit-1){
                        elts[i].className = classNameObj ;
                        numElt++ ;
                    }
                    else{
                        if(className2Obj != ""){
                            elts[i].className = className2Obj ;
                            numElt = 0 ;
                        }
                    }
                }
            }
        }
    }
}


/** #########################################
* Code pour xiti
*/
function calculateXiti(Xt_param) {
    if (window.xtparam!=null){Xt_param+=xtparam;} 
    try {Xt_r = top.document.referrer;} 
    catch(e) {Xt_r = document.referrer;} 
    Xt_h = new Date();      
    var xtorL=recupxtor("xtor");
    if(xtorL){
        if(xtorL.indexOf("#")>-1)xtorL=xtorL.substring(0,xtorL.indexOf("#"));
        wcookie("xtor",xtorL,false,_language +"/");
    }
    if(Getxtorcookie("xtor"))Xt_param+="&xto=" + Getxtorcookie("xtor").toUpperCase();
    Xt_i = '<img width="1" height="1" alt="" src="http://logi151.xiti.com/hit.xiti?'+Xt_param; 
    
    Xt_i += '&hl='+Xt_h.getHours()+'x'+Xt_h.getMinutes()+'x'+Xt_h.getSeconds(); 
    
    if(parseFloat(navigator.appVersion)>=4) {
        Xt_s=screen;
        Xt_i+='&r='+Xt_s.width+'x'+Xt_s.height+'x'+Xt_s.pixelDepth+'x'+Xt_s.colorDepth;
    }            
    
    return (Xt_i+'&ref='+Xt_r.replace(/[<>\"]/g, '').replace(/&/g, '$')+'" >');
}

/*Function de verification de l'url*/
function getOnlineState(){
    var siteUrl = getRootUrl(document.location.href) ; //retourne www.aptonia.com par ex.
    if(siteUrl.indexOf(".com") > -1){
        return true ;
    }
    else{
        return false ;
    }
}


/** #########################################
* Fonction pour ecrire une balise IMG dans lapage HTML
* @params :
*    - src : L'url complete de l'image
*    - width : La taille en largeur de l'image
*    - height : La taille en hauteur de l'image
*    - alt : Le texte alternatif de l'image
*/
function writeImage(src, alt, width, height, align){
    var taillesImage = "" ;
    if(width != ""){
        taillesImage = " width="+width ;
    }
    if(height != ""){
        taillesImage = taillesImage + " height="+height ;
    }    
    document.write('<img src="'+src+'"'+taillesImage+' align="'+align+'" alt="'+alt+'" title="'+alt+'"/>') ;
}


/** #########################################
* Permet d'ouvrir une page html
*/
function redirectPage(url){
    document.location.href = url ;
}

/** #########################################
* Permet d'ouvrir une page html
*/
function focusLink(idLink, isHover){
    var linkObj = getElement(idLink, true, "") ;
    if(linkObj){
        if(isHover){
            linkObj.className = "active" ;
        }
        else{
            linkObj.className = "" ;
        }
    }
}


/** #########################################
* Permet de modifer le message du lien vers la fiche produit
*/
function oxyComment_MessageToDisplay(messageReturn,messageGoTo,messageProduct) {
    var messageToDisplay = '';
    var urlCouranteSplit = (document.location.href).split("/");
    var urlPrecedenteSplit = (document.referrer).split("/");
    if ( (urlCouranteSplit[2] == urlPrecedenteSplit[2]) && (urlCouranteSplit[3] != 'nettools') ) {
        messageToDisplay = messageReturn;
    }
    else {
        messageToDisplay = messageGoTo;
    }
     document.getElementById("message").innerHTML = messageToDisplay + messageProduct;
}

/**
* Permet de modifier l'url d'un lien
*/
function contientParam(param, valeurAVerifier)
{
    var params = getParameters();
    if (params && params[0][0] && params[0][0].indexOf(param) > -1) {
        if (params[0][1] == valeurAVerifier) {
            return true;
        }
    }
    return false;
}


/** #########################################
* Permet de recuperer la date d'expiration du cookie redirect
*/
function getExpirationDateCookie(nbMoisExpiration, isDureeSemaine){
    var expdate = new Date ();
    var aujourdhui = new Date(0);
    var aujourdhuidate = aujourdhui.getTime();
    if (aujourdhuidate > 0){    
        expdate.setTime (expdate.getTime() - aujourdhuidate);
    }
    
    var dureeExpiration = 0 ;
    if(isDureeSemaine){
        dureeExpiration = 24 * 60 * 60 * 1000 * 7 * nbMoisExpiration ;
    }
    else{
        dureeExpiration = 24 * 60 * 60 * 1000 * 30 * nbMoisExpiration ;
    }
    
    expdate.setTime (expdate.getTime() + (dureeExpiration)); // expire dans nbMoisExpiration mois ou semaine
    var expDateToGMT = expdate.toGMTString() ;
    
    return expDateToGMT ;
}