 //Separateur pour les produits dans le cookie "mes favoris"
var _SEPARATEUR_FAVORIS = "_____" ;

/** #########################################
* Permet d'afficher le nombre de produits dans les favoris
*/
function updateSeparChar(_langue, _nom){
    var cookieValue = getCookie(_nom) ;
    
    //on va mettre a jour le separateur
    if(cookieValue && cookieValue.indexOf(_SEPARATEUR_FAVORIS) == -1){
        var dateDeLaListe = cookieValue.split("__date_liste=")[1] ;

        var replacements = new Array() ;
        replacements[0] = ";" ;
        replacements[1] = _SEPARATEUR_FAVORIS ;
        var cookieValUpdated = replaceAll(cookieValue, replacements) ;
        
        setCookie(_langue, _nom, cookieValUpdated, dateDeLaListe); 
    }
}

/** #########################################
* Permet d'ajouter une sélection
*/
function ajoutSelection(langue, nom, url, reference, libelle, image, picto){
    cookieValue = getCookie(nom);
    //Calcule la date du jour
    var dateDuJour = new Date() ;
    month = dateDuJour.getMonth()+1 ;
    if(month < 10){
      month = "0" + month ;
    }
    
    day = dateDuJour.getDate() ;
    if(day < 10){
      day = "0" + day ;
    }
    
    var dateCourante = day+"/"+month+"/"+dateDuJour.getFullYear() ;
    if(langue == 'EN'){
      dateCourante = dateDuJour.getFullYear()+"-"+month+"-"+day ;
    } 
    
    
    
    //travail sur l'url pour supprimer les #
    if(url.indexOf("#") > -1){
        url = url.split("#")[0] ;
    }
    
    //travail sur l'url pour supprimer "index.shtml"
    if(url.indexOf("index.shtml") > -1){
        url = url.split("index.shtml")[0] ;
    }
    
    //Permet de spécifier une valeur par défaut pour picto
    if(picto == ""){
        picto = "-1" ;
    }
    var value = url+"__"+reference+"__"+libelle+"__"+image+"__"+picto+"__"+dateCourante;    
    var replacementArray = new Array ;
    replacementArray[0] = "&quot;" ;
    replacementArray[1] = "''" ;
    value = replaceAll(value, replacementArray) ;

    // Le cookie n'existe pas
    if (cookieValue == null ){
        var expdate = new Date ();
        var expDateToGMT = "" ;
        
        var aujourdhui = new Date(0);
        var aujourdhuidate = aujourdhui.getTime();
        if (aujourdhuidate > 0){    
            expdate.setTime (expdate.getTime() - aujourdhuidate);
        }
        expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 7)); // expire dans 1 semaine
        expDateToGMT = expdate.toGMTString() ;
        
        value = value + "__date_liste=" + expDateToGMT ;
        
       setCookie(langue, nom, value, expDateToGMT);
       incrementeMaSelection() ;
    }
    //sinon, il existe et on va incrémenter la valeur du nombre de clic dans ce cookie
    else{
        cookieValue = value + _SEPARATEUR_FAVORIS + cookieValue  ;
        dateDeLaListe = cookieValue.split("__date_liste=")[1] ;
        setCookie(langue, nom, cookieValue, dateDeLaListe);
        incrementeMaSelection() ;
    }
    verifMaSelection(reference) ;
}

/** #########################################
* Permet de récupérer le nb de sélections en cours
*/
function getNbMaSelection(){
    //On va mettre à jour le cookie pour remplacer tous les ";" par le nouveau séparateur "___"
    updateSeparChar(_language, "panier") ; //_language declare dans l'html
    
    var produits = getCookie('panier') ;
    if(produits){
        produitsTab = produits.split(_SEPARATEUR_FAVORIS) ;
        if(produitsTab.length>0){
            return produitsTab.length ;
        }
        else{
            return 0 ;
        }
    }
    else{
        return 0 ;
    }
}

/** #########################################
* Permet de sélectionner tous les produits
*/
function checkAll(langue){
    var listeCheck = document.getElementsByName("produitCb") ;
    for(var j=0 ; j<listeCheck.length ; j++){
        listeCheck[j].checked = "true" ;
    }
}

/** #########################################
* Permet d'incrémenter le nb de sélection
*/
function incrementeMaSelection(){
    document.getElementById("nb-selections").innerHTML = getNbMaSelection() ;
}

/** #########################################
* Permet de vérifier si le produit n'est pas déjà dans ma sélection
*/
function verifMaSelection(idModele){
    var produits = getCookie('panier') ;
    if(produits){
      produitsTab = produits.split(_SEPARATEUR_FAVORIS) ;
      if(produitsTab.length>0){
        for(i=0 ; i<produitsTab.length ; i++){
          var paramModele = produitsTab[i] ;
          var paramsTab = paramModele.split("__") ;
    
          var refProduit =  paramsTab[1] ;
          if(idModele == refProduit){
              document.getElementById("dejaSelectionne").style.display = "block" ;
              document.getElementById("ajouter-favoris").style.display = "none" ;              
          }
        }
      }
    }
}

/** #########################################
* Permet de générer la liste des modèles correspondant aux produit
*/
function getModelList(){
    var produits = getCookie('panier') ;
    var modelList = new ArrayList ;
    if(produits){
        var produitsTab = produits.split(_SEPARATEUR_FAVORIS) ;
        if(produitsTab.length>0){
            for(i=0 ; i<produitsTab.length ; i++){
                var paramModele = produitsTab[i] ;
                var paramsTab = paramModele.split("__") ;
                                
                var refProduit =  paramsTab[1] ;
		modelList.add(refProduit) ;
            }
        }

    }
    return modelList ;
}

/** #########################################
* Permet de générer la liste des sélections
*/
function genereMaSelection(langue, produits, libelleMaSelection, libelleAcces, libelleSupprimer, libelleValidite, libellePrixJur, refLibelle, articleLibelle, prioTitre, prioLib0, prioLib1, prioLib2, urlSite, nomSite, sujet, introduction, corps1, corps2, signature, refLabel,finCollect,categoryName) {
    if(produits){
        produitsTab = produits.split(_SEPARATEUR_FAVORIS) ;
        if(produitsTab.length>0){
            for(var i=0 ; i<produitsTab.length ; i++){
                var paramModele = produitsTab[i] ;
                var paramsTab = paramModele.split("__") ;
                
                var urlProduit = paramsTab[0] ;
                var refProduit =  paramsTab[1] ;
                var libelleProduit =  paramsTab[2] ;
                var imageProduit =  paramsTab[3] ;
                var reg=new RegExp("(my-asset)", "g");
                imageProduit=imageProduit.replace(reg,"mh-asset");
                var picto = paramsTab[4] ;
                var dateSelection = paramsTab[5] ;
                
                var funcTitle = setLinkTag(tagRubrique+categoryName+"_product_title","");
                var funcPicture = setLinkTag(tagRubrique+categoryName+"_product_img","");
                var funcLink = setLinkTag(tagRubrique+categoryName+"_product_link","");
                
                if(urlProduit && refProduit && libelleProduit && imageProduit && dateSelection ){
                    if(urlProduit != "undefined" && refProduit != "undefined" && libelleProduit != "undefined" && imageProduit != "undefined" && dateSelection!= "undefined" ){
                        contenuHTML = contenuHTML + 
                            '<li class="laSelection" id="maSelection'+refProduit+'">'+                                
                                '<dl>' +
                                    '<dt class="visuel">'+ '<a href="'+urlProduit+'" target="_top" onClick="'+funcPicture+'"><img class="main-img" src="'+imageProduit + '" alt="'+libelleProduit+'" /></a></dt>'+
                                    '<dt class="titre">'+libelleProduit+'</dt>'+
                                    '<dt class="reference">'+refLibelle+refProduit+'</dt>'+
                                    '<dt class="lien-fiche-produit"><a href="'+urlProduit+'" onClick="'+funcLink+'">'+libelleAcces+'</a></dt>'+
                                     '<dt class="ou-acheter">'+
                                        '<div id="bloc-prix'+refProduit+'" style="display:none;">'+
                                            '<div class="prixDecathlon" id="bloc-decathlon'+refProduit+'" style="display:none;"></div>'+
                                        '</div>'+
                                    '</dt>'+
                                    '<dt class="date-limite">'+libelleMaSelection+'<br/>'+dateSelection+'</dt>'+
                                    '<dt class="check"><input name="produitCb" class="checkDel" type="checkbox" value="'+refProduit+'"/></dt>' +
                                '</dl>';
                          if(picto != '-1' && picto != ''){
                              contenuHTML = contenuHTML + '<span class="picto-gamme">'+
                                    '<img src="'+picto+'"/>'+
                                    '</span>';                            
                          }
                          contenuHTML = contenuHTML +'</li>' ;
                          
                               
                   }
                }
            }
        }
        var propertiesDivObjSr = document.getElementById("contentMaSelection");
        propertiesDivObjSr.innerHTML = contenuHTML ;
    }            
}

/** #########################################
* Permet de générer la liste des prios
*/
function genereListePrio(prio, refProduit, langue, prioTitre, prioLib0, prioLib1, prioLib2, urlSite, nomSite, sujet, introduction, corps1, corps2, signature, refLabel){
    var laPrio = "" ;
    var resultPrio = 
        "<dt class='priorite' id='prioMaSelection'>"+prioTitre+" :<br/>"+
            "<select id='prio"+refProduit+"' onchange='saveChange(\""+refProduit+"\", \""+langue+"\", \""+urlSite+"\", \""+nomSite+"\", \""+encodeURI(sujet)+"\", \""+encodeURI(introduction)+"\", \""+encodeURI(corps1)+"\", \""+encodeURI(corps2)+"\", \""+encodeURI(signature)+"\", \""+encodeURI(refLabel)+"\", \""+prioLib0+"\", \""+prioLib1+"\", \""+prioLib2+"\")'>" ;

    if(prio == "0"){
        resultPrio = resultPrio + "<option value='0' selected>1 - "+prioLib0+"</option>" ;
        laPrio = prioLib0 ;
    }
    else{
        resultPrio = resultPrio + "<option value='0'>1 - "+prioLib0+"</option>" ;
    }
    
    if(prio == "1"){
        resultPrio = resultPrio + "<option value='1' selected>2 - "+prioLib1+"</option>" ;
        laPrio = prioLib1 ;
    }
    else{
        resultPrio = resultPrio + "<option value='1'>2 - "+prioLib1+"</option>" ;
    }
    
    if(prio == "2"){
        resultPrio = resultPrio + "<option value='2' selected>3 - "+prioLib2+"</option>" ;
        laPrio = prioLib2 ;
    }
    else{
        resultPrio = resultPrio +  "<option value='2'>3 - "+prioLib2+"</option>" ;       
    }    
    
    resultPrio = resultPrio + 
            "</select>"+
            "<span id='prioLib' style='display:none'>"+prioTitre+": "+laPrio+"</span>" +
        "</dt>"  ;
        
    return resultPrio ;
}

/** #########################################
* Permet de sauvegarder sa liste
*/
function saveChange(reference, langue, urlSite, nomSite, sujet, introduction, corps1, corps2, signature, refLabel, prioLib0, prioLib1, prioLib2){
    var produits = getCookie('panier') ;
    if(produits){
        //var prio = document.getElementById("prio"+reference) ;
        dateDeLaListe = produits.split("__date_liste=")[1] ;
        produitsTab = produits.split(_SEPARATEUR_FAVORIS) ;
        if(produitsTab.length>0){
            var nouvelleValeur = "" ;
            for(t=0 ; t<produitsTab.length ; t++){
                var paramModele = produitsTab[t] ;
                var paramsTab = paramModele.split("__") ;
                
                var refProduit =  paramsTab[1] ;
                if(refProduit != reference){
                    if(nouvelleValeur.length == 0){
                        nouvelleValeur = paramModele ;
                    }
                    else{
                        nouvelleValeur = nouvelleValeur +_SEPARATEUR_FAVORIS+ paramModele ;
                    }
                }
                else{
                    var urlProduit = paramsTab[0] ;                    
                    var libelleProduit =  paramsTab[2] ;
                    var imageProduit =  paramsTab[3] ;
                    var dateSelection = paramsTab[4] ;
                    //var numPriorite = prio.value ;
                    paramModele = urlProduit+"__"+refProduit+"__"+libelleProduit+"__"+imageProduit+"__"+dateSelection;
                    
                    if(nouvelleValeur.length == 0){
                        nouvelleValeur = paramModele ;
                    }
                    else{
                        nouvelleValeur = nouvelleValeur +_SEPARATEUR_FAVORIS+ paramModele ;
                    }
                }
            }            
            nouvelleValeur = nouvelleValeur + "__date_liste="+dateDeLaListe ;
            setCookie(langue, "panier", nouvelleValeur, dateDeLaListe) ;
            
            var nouveauLienMailTo = getLienMailTo(urlSite, nomSite, sujet, introduction, corps1, corps2, signature, refLabel, prioLib0, prioLib1, prioLib2) ;
            document.getElementById("lien-mailto").href = nouveauLienMailTo ;
        }
    }
}

/** #########################################
* Permet de supprimer une sélection
*/
function supprimerSelection(langue, reference){
    var produits = getCookie('panier') ;
    if(produits){    
        dateDeLaListe = produits.split("__date_liste=")[1] ;
        produitsTab = produits.split(_SEPARATEUR_FAVORIS) ;
        if(produitsTab.length == 1){        
            deleteCookie(langue, 'panier') ;
            window.location.reload() ;
        }
        else if(produitsTab.length>1){
            var nouvelleValeur = "" ;
            for(t=0 ; t<produitsTab.length ; t++){
                var paramModele = produitsTab[t] ;
                var paramsTab = paramModele.split("__") ;
                
                var refProduit =  paramsTab[1] ;
                if(refProduit != reference){
                    if(nouvelleValeur.length == 0){
                        nouvelleValeur = paramModele ;
                    }
                    else{
                        nouvelleValeur = nouvelleValeur +_SEPARATEUR_FAVORIS+ paramModele ;
                    }
                }
            }            
            nouvelleValeur = nouvelleValeur + "__date_liste="+dateDeLaListe ;
            setCookie(langue, "panier", nouvelleValeur, dateDeLaListe) ;
            
            window.location.reload() ;
        }
    }
}

/** #########################################
* Permet de supprimer les sélections choisies
*/
function supprimerSelectionChoisie(langue, warningSupprime){    
    var listeCheck = document.getElementsByName("produitCb") ;
    
    if(listeCheck.length == 0){
        alert(warningSupprime) ;
    }
    else{
        var isArticleSupprime = false ;
        for(var j=0 ; j<listeCheck.length ; j++){
            if(listeCheck[j].checked){
                var reference = listeCheck[j].value ;
                supprimerSelection(langue, reference) ;
                isArticleSupprime = true ;
            }
        }
        if(isArticleSupprime){
            window.location.reload() ;
        }
    }
}


/** #########################################
* Permet de récupérer la date du jour
*/
function getDateDuJour(langue, libelleDate){
    var dateDuJour = new Date() ;
    month = dateDuJour.getMonth()+1 ;
    if(month<10){
        month = "0" + month ;
    }
    var day = dateDuJour.getDate() ;
    if(day<10){
        day = "0" + day ;
    }    
    var dateCourante = day+"/"+month+"/"+dateDuJour.getFullYear() ;
    if(langue == 'EN'){
        dateCourante = dateDuJour.getFullYear()+"-"+month+"-"+dateDuJour.getDate() ;
    }
    document.getElementById("dateImpression").innerHTML = dateCourante ;
}
                 
/** #########################################
* Permet de récupérer le lien mailTo
*/
function getLienMailTo(urlSite, nomSite, sujet, introduction, corps1, corps2, signature, refLabel, prio0, prio1, prio2){
    //Génération du lien mailTo
    var produits = getCookie('panier') ;
    var bodyEmail = decodeURI(introduction) ;
    
    if(produits){
        produitsTab = produits.split(_SEPARATEUR_FAVORIS) ;
        if(produitsTab.length>0){
        for(i=0 ; i<produitsTab.length ; i++){
            var paramModele = produitsTab[i] ;
            var paramsTab = paramModele.split("__") ;
            
            var urlProduit = paramsTab[0] ;
            var refProduit =  paramsTab[1] ;
            var libelleProduit =  paramsTab[2] ;
            var dateSelection = paramsTab[4] ;
            //var prioSelection = paramsTab[5] ;
            
            if(urlProduit.indexOf('?') > 0){
                urlProduit = urlProduit.substring(0, urlProduit.indexOf('?')) ;
            }
           /* var prio = "" ;
            if(prioSelection == "0"){
                prio = prio0 ;
            }
            if(prioSelection == "1"){
                prio = prio1 ;
            }
            if(prioSelection == "2"){
                prio = prio2 ;
            }*/
            
            bodyEmail = bodyEmail + "\n" +
                " - " + libelleProduit + " - " + decodeURI(refLabel) + refProduit + " >> " + urlProduit ;
            }
        }
    }
    var lienMailTo = "mailto:?subject=" +
        escape(decodeURI(sujet)+" "+nomSite) +
        "&body=" + escape(bodyEmail+"\n"+decodeURI(signature)) ;
    return lienMailTo ;
}

/** #########################################
* Permet de vérifier le nombre de produit pour envoi à un ami
*/
function verifProduit(avertissementMessage){
    var produits = getCookie('panier') ;
    if(produits){
        produitsTab = produits.split(_SEPARATEUR_FAVORIS) ;
        if(produitsTab.length>10){
            alert(avertissementMessage) ;
            return false ;
        }
        else{
            return true ;
        }
    }
    else{
        return false;
    }
}

/** #########################################
* Permet de récupérer le lien mailTo
*/
function displayInformationPage(langue, urlSite, maSelectionValidite, liageDecath, libelleAcheterDecath, libellePrixJur, libelleValidite){
    var produits = getCookie('panier') ;

    if(produits){
        produitsTab = produits.split(_SEPARATEUR_FAVORIS) ;
        if(produitsTab.length>0){
            var propertiesDivObjSr = document.getElementById("contentMaSelection");
            for(i=0 ; i<produitsTab.length ; i++){
                var paramModele = produitsTab[i] ;
                var paramsTab = paramModele.split("__") ;
        
                var urlProduit = paramsTab[0] ;
                var refProduit =  paramsTab[1] ;
                
                if(paramsTab.length > 6){ //on va recuperer la date de creation de cette liste
                    dateCreationListe = paramsTab[paramsTab.length-1].split("=")[1] ;
                    dateObj = new Date(dateCreationListe) ;
                    var monthCrea = dateObj.getMonth()+1 ;
                    if(monthCrea<10){
                        monthCrea = "0" + monthCrea ;
                    }
                    var dayCrea = dateObj.getDate() ;
                    if(dayCrea<10){
                        dayCrea = "0" + dayCrea ;
                    }
                    var dateCrea = dayCrea+"/"+monthCrea+"/"+dateObj.getFullYear() ;
                    if(langue == 'EN'){
                        dateCrea = dateObj.getFullYear()+"-"+monthCrea+"-"+dayCrea ;
                    }
                    libelleValidite = libelleValidite.replace("DATE_CREATION", dateCrea) ;
	     theInnerHTML = propertiesDivObjSr.innerHTML ;
	     propertiesDivObjSr.innerHTML = theInnerHTML ;
                }
            }
           propertiesDivObjSr.innerHTML = theInnerHTML ; 
            
            var infosLegalesBloc = getElement("infoslegales", true, "") ;
            if(infosLegalesBloc){
                infosLegalesBloc.innerHTML = libellePrixJur+"<br/><br/>"+libelleValidite ; 
            }
        }
    }    
    
    document.getElementById("waitingMessage").style.display = "none" ;
    document.getElementById("produits").style.display = "block" ;        
}
