//Separateur pour les produits dans le cookie "mes favoris"
var _SEPARATEUR_FAVORIS = "___" ;

var contenuHTML = "" ;
var dateCreationListe = "" ;
var limitProduitEnvoiAmi = 15 ;

/** #########################################
* 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'afficher le nombre de produits dans les favoris
*/
function afficheNbProduitsFavoris(cookieName){   
    //On va mettre à jour le cookie pour remplacer tous les ";" par le nouveau séparateur "___"
    updateSeparChar(_language, "panier") ; //_language declare dans l'html
    
    var nbProduit = getNbMaSelection() ;
    
    document.getElementById("nb-selections").innerHTML = nbProduit ;
}


/** #########################################
* Permet d'ajouter une sélection
*/
function ajoutSelection(langue, nom, url, reference, libelle, image, concuPour, typology){
    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 ;
    } 
    
    var numPriorite = "0" ;
    
    //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] ;
    }
    
    var value = url+"__"+reference+"__"+libelle+"__"+image+"__"+dateCourante+"__"+concuPour +"__"+typology;    
    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(){
    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 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){
                    displayBlocId("dejafavoris") ;
                    hideBlocId("ajouterfavoris") ;
                }
            }
        }
    }
}


/** #########################################
* Permet de remplir la liste modelList
*/
function fillModelList(_produits){
    var _produits = getCookie('panier') ;
    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] ;
                if(refProduit != ""){
                    modelList.add(refProduit) ;
                }
            }
        }
    }
}


/** #########################################
* Permet de générer la liste des sélections
*/
function genereMaSelection(libelleMaSelection, libelleSupprimer, libelleEnSavoirPlus, refLibelle, finLabel, newLabel, libellerInfoProduit) {
    var produits = getCookie("panier") ;
    
    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 concuPour =  paramsTab[3] ;
                var dateSelection = paramsTab[4] ;
                var imageProduit = paramsTab[5] ;
                var typo = paramsTab[6] ;
                
                if(urlProduit && refProduit && libelleProduit && imageProduit && dateSelection && concuPour && typo){
                    if(urlProduit != "undefined" && refProduit != "undefined" && libelleProduit != "undefined" && imageProduit != "undefined" && dateSelection!= "undefined" && concuPour!= "undefined" && typo!= "undefined"){
                        //[TAG]Ajout du taggage Google analytics pour le texte
                        var funcTagImg = setLinkTag(tagRubrique+"ma-selection_product_img", "") ;
                        var funcTagTxt = setLinkTag(tagRubrique+"ma-selection_product_text", "") ;
                        
                        //Note tag : pas besoin de tagguer la suppression du produit
                        
                        contenuHTML = contenuHTML +
                            '<div class="onglet"><a href="#"  onclick="supprimerSelection(\''+refProduit+'\');return false;">'+libelleSupprimer+'&nbsp;&nbsp;&nbsp;X</a></div>' +
                            '<div class="bloc-produit">' +
                                '<div class="vignette"><a href="'+urlProduit+'" onclick="'+funcTagImg+'" target="_top"><img src="'+imageProduit+'" alt="'+libelleProduit+'" title="'+libelleProduit+'"/></a></div>' +
                                '<div class="description">' + 
                                    '<p class="titre">'+libelleProduit+'</p>' +
                                    "<p class='intitulerNew' id='picto-new-"+refProduit+"' style='display:none;'>"+newLabel+"</p>"+
                                    '<p class="date">'+libelleMaSelection+" : "+dateSelection+'</p>' + 
                                    '<p class="reference">'+refLibelle+"&nbsp;"+refProduit+'</p>' +                                    
                                    '<div class="concu">'+concuPour+'</div>' +
                                    '<div id="bloc-prix'+refProduit+'" class="prixFavoris" style="display:none;">' +
                                        '<div class="prixDecathlon" id="bloc-decathlon'+refProduit+'" style="display:none;"></div>' +
                                    '</div>' + 
                                    '<div class="recherche-savoir-plus">'+
                                        '<div class="ext">' +
                                            '<span class="ext-g"><a href="'+urlProduit+'" onclick="'+funcTagTxt+'" target="_top" class="ext-d">'+libelleEnSavoirPlus+'</a></span>' +
                                            '<span class="clear-both"></span>' +
    	                     '</div>' +
                                    '</div>' +
                                '</div>' +
                            '</div>' ;
                    }
                }
            }
        }
        var propertiesDivObjSr = document.getElementById("contentMaSelection");
        propertiesDivObjSr.innerHTML = contenuHTML ;
        
        displayElementsPage() ;
    }
    else{
        hideBlocId("waitingMessage") ;
        hideBlocId("resultat-favoris") ;
        
        displayBlocId("emptyMessage") ;
    }
}


/** #########################################
* Permet de supprimer une sélection
*/
function supprimerSelection(reference){    
    var produits = getCookie('panier') ;
    if(produits){    
        dateDeLaListe = produits.split("__date_liste=")[1] ;
        produitsTab = produits.split(_SEPARATEUR_FAVORIS) ;
        if(produitsTab.length == 1){        
            deleteCookie(_language, '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(_language, "panier", nouvelleValeur, dateDeLaListe) ;
            
            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 setLienMailTo(_produits){
    //Génération du lien mailTo
    var bodyEmail = "" ;
    
    if(_produits){
        produitsTab = _produits.split(_SEPARATEUR_FAVORIS) ;
        if(produitsTab.length>0){
            var nbProduits = produitsTab.length ;
            for(var i=0 ; i < nbProduits ; 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] ;
                
                bodyEmail = bodyEmail + "%0A" +
                    "- " + libelleProduit + " - " + refProduit + " > " + urlProduit ;
            }
        }
        
        var mailToObj = getElement("envoyer-ami", true, "") ;
        var mailToHref = mailToObj.href  ;
        mailToHref = mailToHref.replace("__LIST__", bodyEmail) ;
        mailToObj.href = mailToHref ;
    }
}


/** #########################################
* Permet de vérifier le nombre de produit pour envoi à un ami
*/
function verifProduit(avertissementMessage){
    var nbProduits = getNbMaSelection() ;
    
    if(nbProduits > limitProduitEnvoiAmi){
        avertissementMessage = avertissementMessage.replace("__NB__", limitProduitEnvoiAmi) ;
        alert(avertissementMessage) ;

        return false ;
    }
    else{
        return true ;
    }
}


/** #########################################
* Permet d'afficher les resultats
*/
function displayElementsPage(){
    hideBlocId("waitingMessage") ;
    hideBlocId("emptyMessage") ;
    
    displayBlocId("outils") ;
    displayBlocId("info") ;
    
    //Traitement pour afficher la validite des favoris
    var produits = getCookie('panier') ;
    setValiditeListe(produits) ;

    //Traitement pour afficher le nom de produits favoris
    setNbProduitsFavoris(produits) ;

    //Traitement de l'envoi a un ami
    setLienMailTo(produits) ;
    
    displayBlocId("info") ;
    displayBlocId("produits") ;
}


/** #########################################
* Permet d'afficher la date de validite de la liste
*/
function setValiditeListe(_produits){
    if(_produits){
        var produitsTab = _produits.split(_SEPARATEUR_FAVORIS) ;

        if(produitsTab.length > 0){
            nbProduit = produitsTab.length ;
            var propertiesDivObjSr = getElement("contentMaSelection", true, "");
            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 > 7){ //on va recuperer la date de creation de cette liste
                    var 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(_language == 'EN'){
                        dateCrea = dateObj.getFullYear()+"-"+monthCrea+"-"+dayCrea ;
                    }
                    if(getElement("validiteFavoris")){
                        var libelleValidite = getElement("validiteFavoris").innerHTML ; 
                        libelleValidite = libelleValidite.replace("DATE_CREATION", dateCrea) ;
                        getElement("validiteFavoris", true, "").innerHTML = libelleValidite ;
                    }
                }
            }
        }
    }
}


/** #########################################
* Permet d'afficher le nombre de produits dans la liste
*/
function setNbProduitsFavoris(_produits){
    if(_produits){
        var produitsTab = _produits.split(_SEPARATEUR_FAVORIS) ;

        if(produitsTab.length > 0){
            var nbProduit = produitsTab.length ;

            var htmlBloc = getElement("resultat-favoris", true, "") ;
            if(htmlBloc){
                var texteNbProduit = htmlBloc.innerHTML ;
                if(texteNbProduit){
                    texteNbProduit = texteNbProduit.replace("__NB__", nbProduit) ;
                    if(nbProduit > 1){
                        texteNbProduit = texteNbProduit.replace("__PLUR__", "s") ;
                        texteNbProduit = texteNbProduit.replace("__PLUR__", "s") ;
                    }
                    else{
                        texteNbProduit = texteNbProduit.replace("__PLUR__", "") ;
                        texteNbProduit = texteNbProduit.replace("__PLUR__", "") ;                    
                    }
                    
                    htmlBloc.innerHTML = texteNbProduit ;
                }
            }
        }
        else{
            hideBlocId("resultat-favoris") ;        
        }
    }
    else{
        hideBlocId("resultat-favoris") ;
    }
}
