/** #########################################
* Permet de rediriger l'internaute vers la page famille si le produit n'est plus dispo
*/
function redirectProduit(modele, urlPathFamille){
    if(urlPathFamille != ""){                
        var locationProduit = document.location.href ;
        document.location.href = urlPathFamille + "?nondispo=true" ;        
    }    
}


/** #########################################
* Permet de recuperer le path du rayon
*/
function getPathRayon(rootPath, urlPathFamille, urlProduit, refProduit, libelleDecouvrez){
    var xhr = getXhr();
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4 && xhr.status == 200){
            var breadcrumbRayons = document.getElementById("breadcrumbRayonsLien");
            var breadcrumbRayonLien = document.getElementById("breadcrumbRayonLien");
            
            responseAjax = xhr.responseXML ;
            var rayonTag = responseAjax.getElementsByTagName("Rayon")[0] ;
            var rayonName = "" ;
            var rayonUrl = "" ;
            var urlRayonSansRoot = "" ;
            
            var arboProduitTag = responseAjax.getElementsByTagName("ArboProduit")[0] ;
            var arboProduitName = "" ;
            var arboProduitUrl= "" ;

            for (i=0; i<rayonTag.childNodes.length; i++){            
                //Si on a le title
                if (rayonTag.childNodes[i].nodeName=="title"){
                    rayonName = rayonTag.childNodes[i].firstChild.nodeValue ;                
                }
                //si on le usertitle
                if (rayonTag.childNodes[i].nodeName=="userTitle"){
                    rayonName = rayonTag.childNodes[i].firstChild.nodeValue ;                
                }
                
                if (rayonTag.childNodes[i].nodeName=="url"){
                    rayonUrl = rootPath+rayonTag.childNodes[i].firstChild.nodeValue ;      
                    urlRayonSansRoot = rayonTag.childNodes[i].firstChild.nodeValue ;
                }
            }
            
            for (i=0; i<arboProduitTag.childNodes.length; i++){
                if (arboProduitTag.childNodes[i].nodeName=="title"){
                    arboProduitName = arboProduitTag.childNodes[i].firstChild.nodeValue ;
                }
                if (arboProduitTag.childNodes[i].nodeName=="url"){
                    arboProduitUrl = rootPath+arboProduitTag.childNodes[i].firstChild.nodeValue ;
                }                
            }                        
            
            if(arboProduitName != ""){
                breadcrumbRayons.href = arboProduitUrl ;
                breadcrumbRayons.innerHTML = arboProduitName ;
            }
           
          var ssrayonObj = new SSRayonObj() ;
            var sousRayonTag = responseAjax.getElementsByTagName("SousRayon")[0] ;
            for (i=0; i<sousRayonTag.childNodes.length; i++){
                if (sousRayonTag.childNodes[i].nodeName=="title"){
                    ssrayonObj.setName(sousRayonTag.childNodes[i].firstChild.nodeValue) ;                
                }
                if (sousRayonTag.childNodes[i].nodeName=="userTitle"){
                    ssrayonObj.setName(sousRayonTag.childNodes[i].firstChild.nodeValue) ;                
                }                
                if (sousRayonTag.childNodes[i].nodeName=="url"){
                    ssrayonObj.setUrl(rootPath+sousRayonTag.childNodes[i].firstChild.nodeValue) ;                
                }
                if (sousRayonTag.childNodes[i].nodeName=="multilingualCategoryName"){
                    ssrayonObj.setMultiName(sousRayonTag.childNodes[i].firstChild.nodeValue) ;                
                }           
            }


            if(rayonName != "" && rayonUrl != "" && ssrayonObj){
                        
                rayonName=rayonName.charAt(0).toUpperCase() + rayonName.substring(1).toLowerCase();
                var rayonNavProduit = rayonUrl + "conseil.shtml" ;
               
                breadcrumbRayonLien.innerHTML = rayonName ;
                breadcrumbRayonLien.href = rayonUrl ;
                
                //Slideshow : Navigation interne entre produit
                var iframenavinterneObj = getElement("iframenavinterne", true, "") ;
                if(iframenavinterneObj){
                    iframenavinterneObj.src = rayonNavProduit+"?refProduit="+refProduit+"&retour="+rayonUrl+"&rayonName="+encodeURI(rayonName) ;
                }
                
                //Recupere les ventes complementaires
                var nbFamille = _mapNbFamilleParSSRayon.get(ssrayonObj.getMultiName()) ; //Nb de famille pour le sous rayon
                var arrayParamFamille = _mapListeFamilleParSSRayon.get(ssrayonObj.getMultiName()) ; //Liste des familles pour le sous rayon

                
                //code bouton retour nouvelle fiche produit
                var btnRetourFPV2 = document.getElementById("retourListePdtFPV2");
                if(btnRetourFPV2) btnRetourFPV2.href = rayonUrl;
                
                if(arrayParamFamille){
                    getDecouvrirPlus(rootPath,ssrayonObj.getName(),refProduit,libelleDecouvrez,nbFamille,arrayParamFamille,famillecouranteUrl,urlRayonSansRoot) ;
                }else{
                    if(getElement("produits-associes", true, "")){
                        getElement("produits-associes", true, "").style.display="none";
                    }
                }
            }
        }
    }
    xhr.open("GET", urlPathFamille, true);
    xhr.setRequestHeader('Content-Type','text/xml');
    xhr.send(null);
}



/** #########################################
* Permet de charger l'image principale dans la popup photoplus
*/
function chargeMainPicture(idImage, urlImage){
    var currentPhoto = document.getElementById(idImage).src ;
    
    if(currentPhoto.indexOf(urlImage) == -1){
        document.getElementById(idImage).src = urlImage ;        
    }
}

function chargeMainPictureFPV2(idImage, urlImage,imgZoomHD,idImgHD){
    var currentPhoto = document.getElementById(idImage).src ;
    
    if(currentPhoto.indexOf(urlImage) == -1){
        document.getElementById(idImage).src = urlImage ;        
    }
    
    if(idImgHD!= "undefined" && idImgHD!="" && idImgHD!=null && imgZoomHD.indexOf("asset")>-1) {
        var photoHD = document.getElementById(idImgHD).src ;
    
        if(currentPhoto.indexOf(imgZoomHD) == -1){
            document.getElementById(idImgHD).src = imgZoomHD ;   
            testImgHD=true;
        }
    }else{        
        testImgHD=false;
    }     
}

/** #########################################
* Permet de charger l'image principale dans la popup photoplus ainsi que sa vue HD
*/
function chargeMainPictureHD(idImage, idImageZoomHD, urlImage){
    var currentPhotoObj = document.getElementById(idImage) ;
    if(currentPhotoObj){
        var currentPhoto = currentPhotoObj.style.backgroundImage ;

        //est ce que l'image a change ???
        if(currentPhoto.indexOf(urlImage) == -1){
            //si oui alors on met a jour l'image droite
            currentPhotoObj.style.backgroundImage = "url("+urlImage+")" ;            
            
            //on met ensuite a jour l'image hd via le tableau mapPhotoHd
            var urlImageHd = mapPhotoHd.get(urlImage) ;
            var currentPhotoHdObj = getElement(idImageZoomHD, true, "") ;
            var imageNonDispoObj = getElement("imageNonDispo", true, "") ;
            var blocZoomObj = getElement("bloczoom", true, "") ;
            if(currentPhotoHdObj && imageNonDispoObj && blocZoomObj){
                if(urlImageHd && urlImageHd != ""){          
                    currentPhotoHdObj.style.backgroundImage = "url("+urlImageHd+")" ;
                    hideBloc(imageNonDispoObj) ;
                    displayBloc(blocZoomObj) ;
                }
                else{                
                    hideBloc(blocZoomObj) ;
                    displayBloc(imageNonDispoObj) ;                
                }
            }
        }
    }
}


/** #########################################
* Permet de charger une image directe dans la popup photoplus
* @params :
*    - idImage : l'id du bloc de destination pour l'image SD
*    - idImageZoomHD : l'id du bloc de destination pour l'image HD
*    - isPhotoHD : true/false image HD ou non
*/
function chargeDirectPhoto(idImage, idImageZoomHD, isPhotoHD){
    var params = getParameters() ;
    var currentImageSrc = "" ;
    if(parent && parent.document.getElementById("main-picture")){
        currentImageSrc = parent.document.getElementById("main-picture").src ;
        
        //on recupere la photo en 400x400
        currentImageSrc = currentImageSrc.replace("gd-asset_", "asset_") ;
        
        //on va faire un traitement pour eliminer l'url du site
        var currentImageSrcTab = currentImageSrc.split('/') ;
        if(currentImageSrcTab.length == 5){
            currentImageSrc = "/"+currentImageSrcTab[3] + "/" + currentImageSrcTab[4] ;
        }
    }
    
    if(params && params[0][0] && params[0][0].indexOf("urlphoto") > -1){
        if(params[0][1]){
            currentImageSrc = params[0][1] ;
        }
    }
    
    if(currentImageSrc){
        if(isPhotoHD){
            chargeMainPictureHD(idImage, idImageZoomHD, currentImageSrc) ;
        }
        else{
            chargeMainPicture(idImage, currentImageSrc) ;
        }
    }
}


/** #########################################
 * Permet d'afficher les produits precedent et suivant
 * @param :
 *    - _modeleCourant : le modele courant pour lequel il faut recuperer le produit precedent et le produit suivant
*/
function displayPrevNextProduct(_modeleCourant){          
    if(_modeleCourant && typeof _modeleCourant == "string"){
        var indexModeleCourant = enableModelList.contains(_modeleCourant) ;
        if(indexModeleCourant != -1){
            //on recupere le modele precedant
            var modelePrev = getPrevProduct(indexModeleCourant, indexModeleCourant-1) ;

            //si le modele precedent existe et que l'index du modele courant n'est pas 0, c'est a dire ce n'est pas le premier modele de la liste
            if(modelePrev != "" && indexModeleCourant > 0){
                var produitPrevObj = getElement("vignetteproduit-"+modelePrev , true, "") ; //alors on recupere le bloc html correspondant au modele precedent
                
                if(produitPrevObj){ //si ce bloc html est ok alors on affiche ce bloc
                    var destBlocHtmlPrev = getElement("blocnavigationinterne-prev", true, "") ;
                    if(!destBlocHtmlPrev){
                        destBlocHtmlPrev = parent.document.getElementById("blocnavigationinterne-prev") ;
                    }
                    
                    if(destBlocHtmlPrev){
                        var libProduitNextObj = getElement("libProduitNext"+modelePrev, true, "") ;
                        if(!libProduitNextObj){
                            libProduitNextObj = parent.document.getElementById("libProduitNext"+modelePrev) ;
                        }
                    
                        hideBloc(libProduitNextObj) ;
                        
                        destBlocHtmlPrev.innerHTML = produitPrevObj.innerHTML ;
                    }                
                }
            }
            
            //on recupere le modele precedant
            var modeleNext = getNextProduct(indexModeleCourant, indexModeleCourant+1) ;
            //si le modele suivant existe et que l'index du modele courant n'est le dernier modele de la liste
            if(modeleNext != "" && indexModeleCourant < modelList.length()){
                var produitNextObj = getElement("vignetteproduit-"+modeleNext , true, "") ; //alors on recupere le bloc html correspondant au modele suivant
                if(produitNextObj){ //si ce bloc html est ok alors on affiche ce bloc
                    var destBlocHtmlNext = getElement("blocnavigationinterne-next", true, "") ;
                    if(!destBlocHtmlNext){
                        destBlocHtmlNext = parent.document.getElementById("blocnavigationinterne-next") ;
                    }
                    
                    if(destBlocHtmlNext){
                        var libProduitPrevObj = getElement("libProduitPrev"+modeleNext, true, "") ;
                        if(!libProduitPrevObj){
                            libProduitPrevObj = parent.document.getElementById("libProduitPrev-next"+modeleNext) ;
                        }
                        
                        hideBloc(libProduitPrevObj) ;
                        
                        destBlocHtmlNext.innerHTML = produitNextObj.innerHTML ;
                    }
                }
            }
        }        
    }
}


/** #########################################
 * Permet de recuperer le produit precedent
 * @param :
 *    - _modeleCourant : le modele courant pour lequel il faut recuperer le produit precedent et le produit suivant
 *    - _indexModelePrev : l'index du modele precedent
*/
function getPrevProduct(_indexModeleCourant, _indexModelePrev){
    //recuperation du modele precedent
    var modelePrev = "" ;
    if(_indexModeleCourant > 0){
        modelePrev = enableModelList.get(_indexModelePrev) ;
    }
    return modelePrev ;
}


/** #########################################
 * Permet de recuperer le produit suivant
 * @param :
 *    - _modeleCourant : le modele courant pour lequel il faut recuperer le produit precedent et le produit suivant
 *    - _indexModeleNext : l'index du modele suivant
*/
function getNextProduct(_indexModeleCourant, _indexModeleNext){
    //recuperation du modele suivant
    var modeleNext = "" ;
    if(_indexModeleCourant < enableModelList.length()){
        modeleNext = enableModelList.get(_indexModeleNext) ;
    }
    return modeleNext ;
}
