/** #################################################
 * Permet d avoir l effet de menu deroulant
*/
function afficheMenu(oOver) {
    var oHide = document.getElementById('body-menu-hide');
    // On change le style des li du meme niveau
    // On masque toutes les ul des niveaux inferieurs
    var oParentOver = null;
    if (oOver.tagName == 'LI') {
        oParentOver = (document.parentNode) ? oOver.parentElement : oOver.parentNode;
    } else {
        oParentOver = document.getElementById('body-menu').getElementsByTagName('ul');
        oParentOver = oParentOver[0];
    }
    
    for(var i=0; i<oParentOver.childNodes.length; i++) {
        if (oParentOver.childNodes[i].tagName == 'LI') {
            if (oParentOver.childNodes[i] != oOver) {
                oParentOver.childNodes[i].className = '';
                var oChildsUl= oParentOver.childNodes[i].getElementsByTagName('ul');

                for(var j=0; j<oChildsUl.length; j++) {
                    oChildsUl[j].style.display = 'none';
                    oChildsUl[j].style.visibility = 'hidden' ;
                }
                var oChildsLi= oParentOver.childNodes[i].getElementsByTagName('li');
                for(var j=0; j<oChildsLi.length; j++) {
                    oChildsLi[j].className = '';
                }
            }
        }
    }
    
    // On masque la div menu-hide
    oHide.style.display = 'none';
    
    // On change le style des li du meme niveau
    // On affiche les uls du niveau inferieur
    if (oOver.tagName == 'LI') {
        oOver.className = 'over';
        for(var i=0; i<oOver.childNodes.length; i++) {
            if (oOver.childNodes[i].tagName == 'UL') {
                oOver.childNodes[i].style.display = (document.all) ? 'block' : 'inline';
                oOver.childNodes[i].style.visibility = "visible" ;
                oHide.style.display = 'inline';
            }
        }
    }
}


/** #################################################
 * Permet de selectionner les familles a afficher
*/
function initFamille(sousrayon, famillecourante){
    displayBloc(getElement(sousrayon, true, "")) ;
    var famillecouranteObj = getElement(famillecourante, true, "") ;
    if(famillecouranteObj){
        famillecouranteObj.className = "open" ;
    }
    
    //Si la listeFamillesRayonFictif existe
    if(typeof listeFamillesRayonFictif != "undefined" && listeFamillesRayonFictif.length() > 0){
        //on va recuperer la liste des objets famille en fonction du sous rayon
        var listeFamilleSR = _mapListeFamilleParSSRayon.get(sousrayon) ;
        var isFamillesTrouves = false ;
        
        for(var i=0 ; i<listeFamillesRayonFictif.length() ; i++){
            var familles = listeFamillesRayonFictif.get(i) ;
            for(var k=0 ; k<listeFamilleSR.length() ; k++){
                var familleObj = listeFamilleSR.get(k) ;
                if(familleObj){
                    var codeExterneFamille = familleObj.getCodeExterne() ;
                    var familleElementObj = getElement(codeExterneFamille, true, "") ;
                    if(familleElementObj){
                        if(familles.indexOf(codeExterneFamille) > -1){
                            displayBloc(familleElementObj) ;
                            isFamillesTrouves = true ;
                        }
                        else{
                            hideBloc(familleElementObj) ;
                        }
                    }
                }
            }
            if(isFamillesTrouves){
                break ;
            }
        }
    }
}


/** #################################################
 * Permet de selectionner la famille dans le menu de la page interieure
*/
function afficheFamille(oOver) {
    var oParentOver = null;
    if (oOver.tagName == 'LI') {
        oParentOver = (document.parentNode) ? oOver.parentElement : oOver.parentNode;
    } else {
        oParentOver = document.getElementById('body-page-menu').getElementsByTagName('ul');
        oParentOver = oParentOver[0];
    }
    for(var i=0; i<oParentOver.childNodes.length; i++) {
        if (oParentOver.childNodes[i].tagName == 'LI') {
            if (oParentOver.childNodes[i].className != 'open') {
                oParentOver.childNodes[i].className = '';
            }
        }
    }
    
    // On affiche les uls du niveau inferieur
    if (oOver.tagName == 'LI') {
        if (oOver.className != 'open') {
            oOver.className = 'over';
        }
    }
}


/** #################################################
 * Permet de selectionner la famille dans le menu de la page interieure
*/
function desactiveFamille(oOut) {
    if (oOut.tagName == 'LI') {
        oParentOut = (document.parentNode) ? oOut.parentElement : oOut.parentNode;
    } else {
        oParentOut = document.getElementById('body-page-menu').getElementsByTagName('ul');
        oParentOut = oParentOut[0];
    }
    
    // On affiche les uls du niveau inferieur
    if (oOut.tagName == 'LI') {
        if (oOut.className != 'open') {
            oOut.className = '';
        }
    }
}


/** #################################################
 * Permet de gerer le menu Oxylane dans la fiche produit
*/
function afficheOxylaneClub(oClick, sdiv, zonedest) {
    var oDiv = document.getElementById(sdiv);

    if ((typeof(oDiv) != 'undefined') && (oDiv != null)) {
        // On modifie tous les styles du menu
        var oParentClick = (document.parentNode) ? oClick.parentElement : oClick.parentNode;
        for(var i=0; i<oParentClick.childNodes.length; i++) {
            if (oParentClick.childNodes[i].tagName == 'LI') {
                oParentClick.childNodes[i].className = '';
            }
        }
        // On modifie le style du li a afficher
        oClick.className = 'open';
        
        // On affiche et masque les divs associes
        var oParentDiv = (document.parentNode) ? oDiv.parentElement : oDiv.parentNode;
        for(var i=0; i<oParentDiv.childNodes.length; i++) {                    
            if (oParentDiv.childNodes[i].tagName == 'DIV') {
                oParentDiv.childNodes[i].style.display = 'none';
                oParentDiv.childNodes[i].className = '';
                if(oParentDiv.childNodes[i].id == sdiv){
                    oParentDiv.childNodes[i].style.display = "block" ;
                }
            }
        }
        // On modifie le style de la div a afficher
        oDiv.className = 'open';
    }
    var ongletOxylane=getElement("ongletOxylaneAvis",true,"");
    if(ongletOxylane){
        ongletOxylane.style.display='none';
    }
     var ongletCacheOxylane=getElement("ongletCacheOxylaneAvis",true,"");
    if(ongletCacheOxylane){
        ongletCacheOxylane.style.display='block';
    }
    //Permet de placer le focus sur les onglets Oxylane
    if(zonedest){
        document.location.href = document.location.href.split('#')[0] + "#" + zonedest ;
    }
    return false;
}

/** #################################################
 * Permet de gerer le menu Oxylane dans la fiche produit
*/
function cacheOxylaneClub(oClick, sdiv, zonedest) {
    var oDiv = document.getElementById(sdiv);
    
    // On modifie le style du li a afficher
    oClick.className = '';
    
    // On modifie le style de la div a afficher
    oDiv.style.display = "none" ;
    oDiv.className = 'open';
    
    var ongletCacheOxylane=getElement("ongletCacheOxylaneAvis",true,"");
    if(ongletCacheOxylane){
        ongletCacheOxylane.style.display='none';
    }
    var ongletOxylane=getElement("ongletOxylaneAvis",true,"");
    if(ongletOxylane){
        ongletOxylane.style.display='block';
    }
    //Permet de placer le focus sur les onglets Oxylane
    if(zonedest){
        document.location.href = document.location.href.split('#')[0] + "#" + zonedest ;
    }
    return false;
}

/** #################################################
 * Permet de gerer le menu Oxylane Club
*/
function overOxylaneClub(oOver) {
    if (oOver.className != 'open') {
        if (oOver.className == 'over') {
            oOver.className = '';
        } else {
            oOver.className = 'over';
        }
    }
}


/** #################################################
 * Permet le defilement des familles
*/
var intDeplacWidth = 5; 	// Nb pixel pour chaque deplacement
var intDeplacTime = 10; 	// Nb millisec entre chaque deplacement

var tempDisplay = null;
var ulPageMenuScroll = null;
var ulPageMenuScrollLimitX = new Array(0, 10);
var ulPageMenuScrollPosX = 0;

// Function d'initalisation des largeur de scroll
function initPageMenuScroll() {
    var strCssRule = '';
    
    var divWidth = 0;
    if(document.defaultView && document.defaultView.getComputedStyle){
        divWidth = document.defaultView.getComputedStyle(document.getElementById('body-page-menu-scroll'),null).getPropertyValue('width');
    } 
    else if (document.getElementById('body-page-menu-scroll').currentStyle) {
        divWidth = document.getElementById('body-page-menu-scroll').currentStyle['width'];
    }
    divWidth = eval(divWidth.substring(0, divWidth.lastIndexOf('px')));
    
    // Initialisation de l'objet ul
    var uls = document.getElementById('body-page-menu-scroll').getElementsByTagName('UL');
    ulPageMenuScroll = uls[0];
    
    // initialisation de la position gauche de l'objet ul (limite de scroll a gauche)
    if (ulPageMenuScroll.currentStyle) {
        strCssRule = 'margin-left';
        strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
            return p1.toUpperCase();
        });
        ulPageMenuScrollPosX = ulPageMenuScroll.currentStyle[strCssRule];
    } 
    else if (window.getComputedStyle) {
        ulPageMenuScrollPosX = document.defaultView.getComputedStyle(ulPageMenuScroll,null).getPropertyValue('margin-left');
    }
    ulPageMenuScrollPosX = eval(ulPageMenuScrollPosX.substring(0, ulPageMenuScrollPosX.lastIndexOf('px')));
    
    var lis = ulPageMenuScroll.getElementsByTagName('LI');
    // recherche des marges d'un li
    var liWidth = 0;
    var liMargin = new Array(0, 0);
    if(document.defaultView && document.defaultView.getComputedStyle){
        liWidth = document.defaultView.getComputedStyle(lis[0],null).getPropertyValue('width');
        liMargin[0] = document.defaultView.getComputedStyle(lis[0],null).getPropertyValue('margin-left');
        liMargin[1] = document.defaultView.getComputedStyle(lis[0],null).getPropertyValue('margin-right');
    }
    else if (lis[0].currentStyle) {
        liWidth = lis[0].currentStyle['width'];
        
        strCssRule = 'margin-left';
        strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
            return p1.toUpperCase();
        });
        liMargin[0] = lis[0].currentStyle[strCssRule];
        
        strCssRule = 'margin-right';
        strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
        return p1.toUpperCase();
        });
        liMargin[1] = lis[0].currentStyle[strCssRule];
    }
    liWidth = eval(liWidth.substring(0, liWidth.lastIndexOf('px')));
    liMargin[0] = eval(liMargin[0].substring(0, liMargin[0].lastIndexOf('px')));
    liMargin[1] = eval(liMargin[1].substring(0, liMargin[1].lastIndexOf('px')));
    
    // initalisation de la limite de scroll a droite
    ulPageMenuScrollLimitX[0] = -1 * ((liWidth + liMargin[0] + liMargin[1]) * (lis.length)) - ulPageMenuScrollPosX + divWidth;
    
    //On cale le scroll au bon endroit
    focusScroll(indexFamilleChoisie) ;
    // Verification si affichage du btn gauche
    if (ulPageMenuScrollPosX == 0) {
        document.getElementById('btn-scroller-g').style.display = 'none';
    }
    
    // Verification si affichage du btn droit
    if (ulPageMenuScrollLimitX[0] > 0 || ulPageMenuScrollPosX == ulPageMenuScrollLimitX[0]) {
        document.getElementById('btn-scroller-d').style.display = 'none';
    }
}

//Function de scroll
function pageMenuScroll(intDeplac) {
    // Stop le scroll precedant
    stopPageMenuScroll();
    
    // Calcul de la nouvelle position
    ulPageMenuScrollPosX = ulPageMenuScrollPosX - intDeplac * intDeplacWidth;    
    // Affectation de la nouvelle position
    if ((ulPageMenuScrollPosX > ulPageMenuScrollLimitX[0]) && (ulPageMenuScrollPosX < ulPageMenuScrollLimitX[1])) {
        // affiche les boutons
        document.getElementById('btn-scroller-g').style.display = 'inline';
        document.getElementById('btn-scroller-d').style.display = 'inline';
        
        // deplace le ul
        ulPageMenuScroll.style.marginLeft = ulPageMenuScrollPosX + 'px';
        
        // Rappel de deplacement
        tempDisplay = setTimeout('pageMenuScroll(' + intDeplac + ')', intDeplacTime);
    }
    else {    
        if (ulPageMenuScrollPosX >= ulPageMenuScrollLimitX[1]) {
            // Cache le btn gauche
            document.getElementById('btn-scroller-g').style.display = 'none';            
        }
        else if (ulPageMenuScrollPosX <= ulPageMenuScrollLimitX[0]) {
            // Cache le btn droite
            document.getElementById('btn-scroller-d').style.display = 'none';
        }
    
        // Reinitialisation
        ulPageMenuScrollPosX = ulPageMenuScrollPosX + intDeplac * intDeplacWidth;
    }
}

// Function de stop de scroll
function stopPageMenuScroll() {
    clearTimeout(tempDisplay);
}

//Permet de mettre le focus du scroll a un endroit particulier
var defaultWidth = 127 ;

function focusScroll(indexScroll){
    var decalageScroll = defaultWidth * indexScroll ;
    decalageScroll = decalageScroll - 2*decalageScroll ; //tranformation en nombre negatif
    if((ulPageMenuScrollLimitX[0] > 128 && decalageScroll < 0 && decalageScroll < ulPageMenuScrollLimitX[0])|| (ulPageMenuScrollLimitX[0] < 0 && decalageScroll < 0 && decalageScroll < ulPageMenuScrollLimitX[0])){
        decalageScroll = ulPageMenuScrollLimitX[0] ;
    }
    
    //Cas quand carrousel ne possede pas de navigation droite
    if(ulPageMenuScrollLimitX[0] > 0){
        decalageScroll=0;
    }
    
    var scrollObj = getElement("scroll", true, "") ;
    if(scrollObj){    
        scrollObj.style.marginLeft = decalageScroll+"px" ;
    }
    ulPageMenuScrollPosX = decalageScroll ;
}

//Scroll page sommaire conseil kipsta

var intDeplacWidthList = 5; 	// Nb pixel pour chaque deplacement
var intDeplacTimeList = 10; 	// Nb millisec entre chaque deplacement

var tempDisplayList = null;
var ulPageListeScroll = null;
var ulPageListeScrollLimitX = new Array(0, 10);
var ulPageListeScrollPosX = 0;

// Function d'initalisation des largeur de scroll
function initPageListeScroll() {
    var strCssRule = '';

    var divWidth = 0;
    if(document.defaultView && document.defaultView.getComputedStyle){
        divWidth = document.defaultView.getComputedStyle(document.getElementById('body-page-liste-scroll'),null).getPropertyValue('width');
    } else if (document.getElementById('body-page-liste-scroll').currentStyle) {
        divWidth = document.getElementById('body-page-liste-scroll').currentStyle['width'];
    }
    divWidth = eval(divWidth.substring(0, divWidth.lastIndexOf('px')));

    // Initialisation de l'objet ul
    var uls = document.getElementById('body-page-liste-scroll').getElementsByTagName('UL');
    ulPageListeScroll = uls[0];

    // initialisation de la position gauche de l'objet ul (limite de scroll a gauche)
    if (ulPageListeScroll.currentStyle) {
        strCssRule = 'margin-left';
        strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
            return p1.toUpperCase();
        });
        ulPageListeScrollPosX = ulPageListeScroll.currentStyle[strCssRule];
        
    } else if (window.getComputedStyle) {
        ulPageListeScrollPosX = document.defaultView.getComputedStyle(ulPageListeScroll,null).getPropertyValue('margin-left');
    }

    ulPageListeScrollPosX = eval(ulPageListeScrollPosX.substring(0, ulPageListeScrollPosX.lastIndexOf('px')));
    var lis = ulPageListeScroll.getElementsByTagName('LI');

    // recherche des marges d'un li
    var liWidth = 0;
    var liMargin = new Array(0, 0);
    if(document.defaultView && document.defaultView.getComputedStyle){
        liWidth = document.defaultView.getComputedStyle(lis[0],null).getPropertyValue('width');
        liMargin[0] = document.defaultView.getComputedStyle(lis[0],null).getPropertyValue('margin-left');
        liMargin[1] = document.defaultView.getComputedStyle(lis[0],null).getPropertyValue('margin-right');
    } else if (lis[0].currentStyle) {
        liWidth = lis[0].currentStyle['width'];
        strCssRule = 'margin-left';
        strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
            return p1.toUpperCase();
        });
        liMargin[0] = lis[0].currentStyle[strCssRule];
        strCssRule = 'margin-right';
        strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
            return p1.toUpperCase();
        });
        liMargin[1] = lis[0].currentStyle[strCssRule];
    }
    
    liWidth = eval(liWidth.substring(0, liWidth.lastIndexOf('px')));
    liMargin[0] = eval(liMargin[0].substring(0, liMargin[0].lastIndexOf('px')));
    liMargin[1] = eval(liMargin[1].substring(0, liMargin[1].lastIndexOf('px')));

    // initalisation de la limite de scroll a droite
    ulPageListeScrollLimitX[0] = -1 * ((liWidth + liMargin[0] + liMargin[1]) * (lis.length)) - ulPageListeScrollPosX + divWidth;

    // Cache le btn gauche
    document.getElementById('btn-scroller-g').style.display = 'none';

    // Verification si affichage du btn droit
    if (ulPageListeScrollLimitX[0] > 0) {
        document.getElementById('btn-scroller-d').style.display = 'none';
    }
}


//Function de scroll
function pageListeScroll(intDeplac) {
    // Stop le scroll precedant
    stopPageListeScroll();

    // Calcul de la nouvelle position
    ulPageListeScrollPosX = ulPageListeScrollPosX - intDeplac * intDeplacWidthList;

    // Affectation de la nouvelle position
    if ((ulPageListeScrollPosX > ulPageListeScrollLimitX[0]) && (ulPageListeScrollPosX < ulPageListeScrollLimitX[1])) {

        // affiche les boutons
        document.getElementById('btn-scroller-g').style.display = 'inline';
        document.getElementById('btn-scroller-d').style.display = 'inline';

        // deplace le ul
        ulPageListeScroll.style.marginLeft = ulPageListeScrollPosX + 'px';

        // Rappel de deplacement
        tempDisplayList = setTimeout('pageListeScroll(' + intDeplac + ')', intDeplacTimeList);
    } else {
        if (ulPageListeScrollPosX >= ulPageListeScrollLimitX[1]) {
        
            // Cache le btn gauche
            document.getElementById('btn-scroller-g').style.display = 'none';
        } else if (ulPageListeScrollPosX <= ulPageListeScrollLimitX[0]) {
            
            // Cache le btn droite
            document.getElementById('btn-scroller-d').style.display = 'none';
        }

        // Reinitialisation
        ulPageListeScrollPosX = ulPageListeScrollPosX + intDeplac * intDeplacWidthList;
    }
}

// Function de stop de scroll
function stopPageListeScroll() {
    clearTimeout(tempDisplayList);
}

function changeConseil(obj){
    var url = obj.value ;
    if(url != "" && url != "-1"){
        document.location.href = url ;
    }
}

function filtreTabId(tab,id){     
    var j=0;
    var res=new Array()
    for(i=0;i<tab.length;i++){
        if(tab[i].id.indexOf(id)>-1){
            res[j]=tab[i];
            j++;
        }
    }
    return res;
}

function menuOngletCourant(listeUrl){
    var menu = document.getElementById("body-menu");
    if(menu){
        var menuLi = menu.getElementsByTagName('LI');
        var menuLiFiltrer=filtreTabId(menuLi,"menu-");
        if(menuLiFiltrer && menuLiFiltrer.length!=0){
            for(var i=0;i<menuLiFiltrer.length;i++){
                var menuA=menuLiFiltrer[i].getElementsByTagName('A');
                var estUrlCourante = false;
                if(menuA && menuA.length!=0){
                    for(var j=0;j<menuA.length;j++){
                        var urlLink=menuA[j].href;
                        if(listeUrl!=""){
                            if(urlLink)urlLink=urlLink.split("http://")[1];
                            if(urlLink.split("/")[2])urlLink=urlLink.split("/")[2];
                        }
                        if((listeUrl==undefined || (listeUrl && listeUrl=="")) && document.location.href.indexOf(urlLink)>-1)estUrlCourante=true;
                        else if(listeUrl && listeUrl!="" && listeUrl.indexOf(urlLink)>-1)estUrlCourante=true;
                    }
                    if(estUrlCourante){
                        menuLiFiltrer[i].className=menuLiFiltrer[i].className + " open";
                        if(i+1<menuLiFiltrer.length)menuLiFiltrer[i+1].className = "separ-open";
                        return false;
                    }                    
                }
            }
        }
    }
    return true;
}
