/*##############################################################################################
################# VARIABLES GLOBALES UTILISEES POUR PRIX STOCK LOCAL ET ERESA  ################## 
/*############################################################################################## */
var serverUrl = '';
var webAppName = 'nettools';
var eResaWebApp = 'ebooking/basket_nostyle';
var eResaWebApp2 = 'ebooking/basket_2008';

var addBasketUrl = 'addItem.do';
var getBasketContentUrl = 'endOrder.do';
var callEresaUrl = 'endOrder.do';
var getBasketInfoUrl = 'getBasketInformation.do';
var getEbookingParameterUrl = 'getEbookingParameter.rep';
/*##############################################################################################
######################## JS DES FONCTIONS POUR LA RESERVATION  ################################# 
/*############################################################################################## */
/* Methode appellee sur le clic du bouton reserver dans ce magasin depuis la div prix stock local */
function addBasket(quantity) {    
                var libArt = s[s.selectedIndex].text;     
                var urlProduit = document.location.href;
                if (urlProduit.indexOf('?')!=-1) {
                    urlProduit = urlProduit.substring(0, urlProduit.indexOf('?'));
                }
                if (urlProduit.indexOf('#')!=-1) {
                    urlProduit = urlProduit.substring(0, urlProduit.indexOf('#'));
                }
// SUBSTITUTION NANTERRE DEBUT
                var storeTarget = getEltFromUrl(cookieMagasin, "idMagasin");
                if (getEltFromUrl(cookieMagasin, "magSubst") == '1') {
                    storeTarget = '117';
                }

                //var params = '?storeId=' + getEltFromUrl(cookieMagasin, "idMagasin");
                var params = '?storeId=' + storeTarget;
// SUBSTITUTION NANTERRE FIN
                if (getEltFromUrl(getCookie('basket'), "idPanier")!=null)
	        params += '&basketId=' + getEltFromUrl(getCookie('basket'), "idPanier");
                params += '&storeName=' + getEltFromUrl(cookieMagasin, "magasin");
                params += '&itemId=' + s.value;
                params += '&quantity=' + quantity;    
                params += '&price=' + main_price_integer+','+main_price_decimal;                   
                params += '&devise=' + currencyCode;  
                params += '&langId=' + _language;       
                params += '&countryId=' + codePays;    
                params += '&itemURL=' + urlProduit;  
                params+='&itemPictureURL='+urlPhotoProduit;           
                params += '&itemLibelle=' + encodeURI(libelleModele) +' -- '+libArt;
                params += '&declinaison=' +  libArt;                      
                params += '&stock=' + valeur_stock;    
                params += '&itemReferenceCode=' + _modelId;
                params += '&itemFamilyCode='+itemFamR3Id;
                params += '&itemBrand=' + getTitleBloc('logoMarqueCourante');
                if (document.getElementById('venduUnite'))  {
                    params += '&itemSellMode=1'; 
                }
                params += '&urlEresa=' + serverUrl+'/'+eResaWebApp+'/'+addBasketUrl;                       
             
                 /* Retourne l objet panier dans un XML */                         
	loadBasket(serverUrl+'/'+webAppName +'/'+getEbookingParameterUrl+params);
	
	/* Encryptage du panier et recuperation du resultat */ 	
	 _getBasketParam();
}
/*############################################################################################## */
/* Methode qui recupere le panier encrypte a envoyer a e-resa */
function _getBasketParam() {	
	if(loaded) {  	        
                        /* Retourne le parametre encrypte du panier */
                        paramBask=getBasketParam();	
                      
                        /* Retourne l objet panier encrypte dans un XML */	         
                        loadBasket(serverUrl+'/'+eResaWebApp+'/'+addBasketUrl+'?'+paramBask);
                        
                        /* Recuperation du resultat pour reecrire le cookie panier */            
                        _addBasket();     
	}  
	else {
	        window.setTimeout("_getBasketParam()", 10);
	}    
}
/*############################################################################################## */
/* Methode qui recupere l id et le nombre d articles du panier pour reecrire le cookie panier */
function _addBasket() {
            if(loaded) {
                    // Tout est ok : ecriture ou reecriture du cookie panier avec les parametres : id du panier, nombre d articles et 
                    // flag panier a raffraichir a false (car la quantite n a pas pu etre changee)  
                    // Raffraichissement du rappel du panier 
                    // et affichage du recapitulatif du panier                          
                    if(getErrorCode()==0){                                
                               writeBasketCookie(getBasketId(), getNbItem(),false);        
                               hide_all('popup-local-price');
                               displayBasketRemind();
                               showBasket();                                     
                    }
                    // Le panier n est plus actif : message - suppression du cookie panier - raffraichissement rappel du panier
                    else if (getErrorCode()==2 || getErrorCode()==-1) {
                                alert(bookingInvalidBasket);
                                deleteCookie('basket');       
                                displayBasketRemind();                                
                    }
                    // Pas de message d erreur : service indiponible
                    else if(getErrorMessage()==null || getErrorMessage()=='null')                             
                              alert(locaPriceServiceIndispo);                                  
                    // Affichage du message d erreur renvoye 
                   else 
                               alert(getErrorMessage());                         
            }
            else {
                    window.setTimeout("_addBasket()", 10);
            }    
}
/*############################################################################################## */
/* Methode qui ecrit le cookie panier avec les parametre : id du panier, nombre d articles et flag panier a raffraichir (si la quantite a pu etre changee) */
function writeBasketCookie(idPanier, nbArticle, reloadBasket) { 		
	dateExpires=new Date;
   	dateExpires.setFullYear(dateExpires.getFullYear()+10);   
   	valeurCookie = 'idPanier=' + idPanier  + '&amp;nbArticle=' +nbArticle+ '&amp;reloadBasket=' +reloadBasket;
	setCookie('basket',  valeurCookie, dateExpires, '/' ); 	    	
 } 
/*############################################################################################## */
/* Methode qui met a jour le rappel du panier */
function displayBasketRemind() {
            var basketCookie = getCookie('basket'); 
            var panier = document.getElementById('panier');
            var nbArticles = document.getElementById('nbArticles');
            // Panier contient 1 ou plusieurs articles
            if (getEltFromUrl(basketCookie, 'nbArticle')!=null && getEltFromUrl(basketCookie, 'nbArticle')!='0') {
                // Creation du lien qui englobe tout le panier
                if(panier.getElementsByTagName('a').length == 0){
                    var lienPanier = createElement_a('', 'lien-panier', '', '#','');
                    lienPanier.onclick = function(){showBasket();}
                    while(panier.hasChildNodes()) lienPanier.appendChild(panier.firstChild);
                    panier.appendChild(lienPanier);
                }
                
                nbArticles.innerHTML = '';
                nbArticles.appendChild(document.createTextNode('(' + getEltFromUrl(basketCookie, 'nbArticle') + ' '));

                // 1 article
                if (getEltFromUrl(basketCookie, 'nbArticle')=='1') {
                    hideBloc('lib-articles');
                    showBloc('lib-article','inline');
                 }
                // Plusieurs articles
                else {
                    hideBloc('lib-article');
                    showBloc('lib-articles','inline');
                }
            }
            // Panier ne contient pas d article ou n existe pas
            else {
                var lienPanier = panier.getElementsByTagName('a')[0];
                if(typeof lienPanier != 'undefined'){
                    panier.removeChild(lienPanier);
                    while(lienPanier.hasChildNodes()) panier.appendChild(lienPanier.firstChild);
                }
                nbArticles.innerHTML = '';
                nbArticles.appendChild(document.createTextNode('(0 '));
                hideBloc('lib-articles');
                showBloc('lib-article','inline');
            }          
}
/*############################################################################################## */
/* Methode appellee sur le clic du nombre d article dans le rappel du panier dans le header */
/* ou sur le clic sur le clic du bouton ajouter au panier */
function showBasket() {   
            // Affecte la source de l iframe de recapitulatif du panier
            var params = getEltFromUrl(getCookie('basket'), 'idPanier');         
            window.location.href = serverUrl + '/' + eResaWebApp2 + '/' + getBasketContentUrl + '?basketId=' + params + '&page=basket';
           
            // Redirige le lien interne vers la HPMag vers la page magasin du cookie
            setHref('lienEresaVersMagasin',getHref('lienEresaVersMagasin')+'?emailing='+getEltFromUrl(cookieMagasin, 'idMagasin'));
}
/*############################################################################################## */
/* Methode qui recupere l id et le nombre d articles du panier pour reecrire le cookie panier et mettre a jour le rappel du panier */
function _loadBasket() {
            if(loaded) {
                    // Tout est ok : reecriture du cookie panier avec les parametres : id du panier, nombre d articles et 
                    // flag panier a raffraichir a false (car la quantite n a pas pu etre changee)  
                    // et affichage du recapitulatif du panier                    
                    if(getErrorCode()==0){
                               writeBasketCookie(getBasketId(), getNbItem(), false);                               
                               displayBasketRemind();                               
                    }
                      // Le panier n est plus actif : suppression du cookie panier - raffraichissement rappel du panier
                    else if (getErrorCode()==2 || getErrorCode()==-1) {                                
                                 deleteCookie('basket');       
                                 displayBasketRemind();	                                
                    }
                    else 
                               alert(getErrorMessage());  
            }
            else {	         
                window.setTimeout("_loadBasket()", 10);
            }   
}
/*############################################################################################## */
/* Methode appelee si la quantite a ete modifiee dans la page panier */
function updateBasketItemNumber() {
            var params = '?basketId=' + getEltFromUrl(getCookie('basket'),'idPanier') + '&page=basket';
            
            /* Retourne l objet panier encrypte dans un XML */
            loadBasket(serverUrl+'/'+eResaWebApp+'/'+getBasketInfoUrl+params);
            
            /* Recuperation du resultat */
            _loadBasket();
}
/*############################################################################################## */ 
// Assure l extraction du bloc div "contenu-etapes" de la page ebooking steps 
function extractEbookingSteps(_urlEbookinSteps,_idBlocRecipient, _localFunc) {
    var texte = "";	
	
    var func = function (xmlHttp, httpStatus) {
        oGlobalXml = xmlHttp.responseText;
        if(oGlobalXml!=null) {
                texte = xmlHttp.responseText;
            }

        if (_localFunc != null) {
            try {
                _localFunc(httpStatus,texte,_idBlocRecipient);
            } catch (e) {
                return false;
            }
        }
    return true;
    };

    //Lancement du processus
    var oProcess = new IAjaxProcess(_urlEbookinSteps, func);
    oProcess.run();
    return true;
}
/*********************************************************************************************************************************************************/
// Fonction de post traitement de "extractBookingSteps". Pour la popup "localPriceBooking", assure l affichage dans la div "steps-ebooking"
var POST_EXTRACT_EBOOKING_STEPS_LOCAL_PRICE_FUNCTION = function postExtractEbookingSteps(httpStatus,theFlow,idBlocRecipient) {
    if(httpStatus != null && httpStatus==200 && theFlow != "") {
        var reg1=new RegExp('<span id="ccm-steps-begin"></span>.*<span id="ccm-steps-end"></span>');
        var myString = theFlow.match(reg1)
        if (myString != "") setBlocByHtml(idBlocRecipient,myString);
    }
}