YAHOO.util.Event.addListener(window, 'load', displayNbrProductHeader);

function openClosePanier(nomPanier, delta){
	//On récupère la liste des produits de l''objet panierLMDV et on les injecte dans la div du panier flottant.
	if(panierLMDV.listeProduits!=null && panierLMDV.listeProduits!='')
	{
		var listeProduit = panierLMDV.listeProduits;
		var strDivPanierFlottant = '';
		var arrPrevProducts = (listeProduit.toString()).split(",");
		for(i=0;i<arrPrevProducts.length;i++)
		{
			dataProduct = (arrPrevProducts[i].toString()).split(":");	
			var prixB = (dataProduct[3]>0) ? dataProduct[1]*dataProduct[3]+' &euro;' : '';
			var srcImg = (dataProduct[4] !='') ?  'produits/'+dataProduct[4]+'_v.jpg' : '404.gif';
			strDivPanierFlottant += '<div id="produit'+i+'" class="prodPanierFlottant">';
			strDivPanierFlottant += '<div id="produit_img'+i+'" class="prodPanierFlottantImg"><img src="/img/'+srcImg+'" width="50" height="50" border="0" onError="javascript:this.src=\'/img/404.gif\';"/></div>';
			strDivPanierFlottant += '<div id="produit_img'+i+'" class="prodPanierFlottantNom">'+dataProduct[0]+'</div>';
			strDivPanierFlottant += '<div id="produit_img'+i+'" class="prodPanierFlottantQte">Quantit&eacute; : '+dataProduct[1]+'</div>';
			strDivPanierFlottant += '<div id="produit_img'+i+'" class="prodPanierFlottantPrixB">'+prixB+'</div>';
			strDivPanierFlottant += '<div id="produit_img'+i+'" class="prodPanierFlottantPrixV">'+dataProduct[1]*dataProduct[2]+' &euro;</div>';
			strDivPanierFlottant += '</div>';	
		}
		
		strDivPanierFlottant = '<div class="prodPanierFlottantSpace"></div>'+strDivPanierFlottant;
		strDivPanierFlottant += '<div class="prodPanierFlottantTotal">TOTAL : <span>' + panierLMDV.prixProduits()+' &euro;</span></div>';
		strDivPanierFlottant += '<div id="panierFlottant_bas"><a href="javascript:panierLMDV.terminerCde();"><img src="/img/panier/panier-flottant-terminer-commande.gif" width="126" height="40" border="0"></a></div>';
	}
	else
	{
		var arrPrevProducts = new Array();
		strDivPanierFlottant = '<div id="produit" class="prodPanierFlottant">';
		strDivPanierFlottant += '<div id="produit_img" class="prodPanierFlottantNom"></div>';
		strDivPanierFlottant += '<div id="produit_img" class="prodPanierFlottantQte"><br><br>Votre panier est vide.</div>';
		strDivPanierFlottant += '</div>';	
		strDivPanierFlottant += '<div id="panierFlottant_bas"></div>';
	}
	var nbrProducts = panierLMDV.nbrProduits();
	var strNbrArts = (nbrProducts < 1 ) ? 'Aucun art.' : '( '+nbrProducts+' ) '+ panierLMDV.prixProduits()+' &euro;';
	printdiv('panierFlottant', strDivPanierFlottant);
	printdiv('div_top_frames_elt_panier_txt', strNbrArts);
	
	
	//Gestion de l'O/F du panier flottant.
	//YAHOO.util.Dom.setY(nomPanier, elY);
	var elY = YAHOO.util.Dom.getY(nomPanier);

	var hHeader = 170; // 155 étant la hauteur du header
	var mini = (hHeader-100) - parseInt(arrPrevProducts.length)*58; // 140 étant la hauteur du header, 54 celle du total en bas de panier flottant + 6 d'espace en haut
	var maxi = (hHeader+100) + parseInt(arrPrevProducts.length)*58; // 57 étant la hauteur d'un bloc du panier flottant.

	
	
	if(elY >= hHeader) 
{
		var fromY=hHeader, toY = mini; // On est en valeurs Top et pas Xy
		var animClose = new YAHOO.util.Anim(nomPanier, {top: { from: fromY, to: toY, unit: 'px'}}, 0.8, YAHOO.util.Easing.easeOut);
		animClose.animate();
	}
	else if(elY <= 0) 
	{
		var fromY = mini;
		var toY = hHeader;
		var animOpen = new YAHOO.util.Anim(nomPanier, {top: { from: fromY, to: toY, unit: 'px'}}, 0.8, YAHOO.util.Easing.easeOut);
	    animOpen.animate();
	}
	else
	{
		var fromY= mini, toY = hHeader; // On est en valeurs Top et pas Xy
		var animClose = new YAHOO.util.Anim(nomPanier, {top: { from: fromY, to: toY, unit: 'px'}}, 0.8, YAHOO.util.Easing.easeOut);
		animClose.animate();
	}
	
}

function displayNbrProductHeader()
{
	var nbrProducts = panierLMDV.nbrProduits();
	var strNbrArts = (nbrProducts < 1 ) ? 'Aucun art.' : '( '+nbrProducts+' ) '+ panierLMDV.prixProduits()+' &euro;';
	printdiv('div_top_frames_elt_panier_txt', strNbrArts);
}

function addProductBasketPopup(numart)
{
	displaydiv("div_wait", 1);
	var handleSuccess = function(o){
		displaydiv("div_wait", 0);		
		eval(o.responseText);
		if (dispo=='EPU'){
			/*msg = 'Ce produit est définitivement épuisé, voulez vous malgré tout le mettre dans votre panier?';
			callback = 'addProductBasketPopup2('+numart+');'
			confirmMsg(msg, callback);*/
			msg = 'Ce produit est définitivement épuisé!';
			alertMsg(msg);
		}else{
			addProductBasketPopup2(numart);
		}
	}
	var handleFailure = function(o){
		displaydiv("div_wait", 0);
		failureFunction('ERR025', 'addProductBasketPopup', (o.responseText != undefined)?o.status:'', (o.responseText != undefined)?o.statusText:'');
	}
	var callback =
	{
	  success:handleSuccess,
	  failure:handleFailure, 
	  timeout:120000
	}
	var url = '/inc/pages/async/setPanier.php';
	var pars = "mode=dispo&numart="+numart+"&quantite=1";
	if(getcookie('PHPSESSID'))
	{
		pars +="&PHPSESSID="+getcookie('PHPSESSID');
	}

	var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, pars);
}
function addProductBasketPopup2(numart)
{

	var handleSuccess = function(o){
		displaydiv("div_wait",0);
	
		eval(o.responseText);
		var nbrProducts = panierLMDV.nbrProduits();
		//On ajoute  à l'object panierLMDV, le produit choisi.
		panierLMDV.addProduit(numart, theProduit['id_produit'], '1', 'add', theProduit['prix_vente'], theProduit['prix_barre'], '', '', '0', theProduit['cat1_label'], theProduit['libelle'], '');
		
		//On initialise la popup d'ajout de produits
		printdiv('popup_add_produit_panier_image', '<img src="http://www.lamaisondevalerie.fr/img/produits/'+theProduit['id_produit']+'_f.jpg" border="0"/>');
		printdiv('popup_add_produit_panier_libelle', theProduit['titre1'] + '<br>' + theProduit['titre2']);
		printdiv('popup_add_produit_panier_designation', theProduit['libelle']);
		printdiv('popup_add_produit_panier_reference', 'R&eacute;f&eacute;rence : '+theProduit['numart']);
		printdiv('popup_add_produit_panier_infos_comp', theProduit['complementInfo']);
		var prixAff = theProduit['prix_vente']+' &euro;';
		if(theProduit['prix_barre']!='0')
		{
			var prixAff = prixAff+'<div id="popup_add_produit_panier_barre">'+theProduit['prix_barre']+' &euro;</div>';
		}
		printdiv('popup_add_produit_panier_prix', prixAff);
		
		var lastQte = "1";
		var listeProduit = panierLMDV.listeProduits;
		var arrPrevProducts = (listeProduit.toString()).split(",");
		for(i=0;i<arrPrevProducts.length;i++)
		{
			dataProduct = (arrPrevProducts[i].toString()).split(":");
			if (dataProduct[0]==numart){
				lastQte = dataProduct[1];
			}
		}
		var selectOtionQte = '';
		for (var i=1;i<21;i++){
			selectOtionQte += '<option value="' + i + '"';
			if (i == lastQte){
				selectOtionQte += ' selected';
			}
			selectOtionQte += '>' + i + '</option>';
		}
		var selectOptionQte = '';
		selectOptionQte +='<dl class="select w50px" style="left:305px;">';			
		selectOptionQte +='<dt onclick="show(\'smenu0\')" onmouseout="show()" id="qteDisplay">' + lastQte + '</dt>';	
		selectOptionQte +='<dd id="smenu0" onmouseover="show(\'smenu0\');" onmouseout="hide(\'smenu0\');"><ul>';
		for (var i=1;i<21;i++){
			selectOptionQte += '<li onclick="javascript:setQuantity('+ i +')">' + i + '</li>';
		}
		selectOptionQte +='</ul></dd></dt></dl>';
		selectOptionQte +='<input type=\'hidden\' id=\'qte\' name=\'qte\' value=\''+lastQte+'\'>';
		selectOptionQte +='<input type=\'hidden\' id=\'lastQte\' name=\'lastQte\' value=\''+lastQte+'\'>';
		selectOptionQte +='<input type=\'hidden\' id=\'lastGarantie\' name=\'lastGarantie\' value=\''+theProduit['isGarantie']+'\'>';
		selectOptionQte +='<input type=\'hidden\' id=\'numart\' name=\'numart\' value=\''+numart+'\'>';
		printdiv('popup_add_produit_panier_quantite', 'Quantit&eacute;&nbsp;:&nbsp;' + selectOptionQte );
		if (theProduit['garantie_etendue_id']!=''){
			var checked = (theProduit['isGarantie']) ? ' checked' : '';
			printdiv('popup_add_produit_panier_garantie', '<input type="checkbox" id="garantie" name="garantie" value="' + theProduit['garantie_etendue_numart'] + '" ' + checked + ' onclick="if(this.checked){panierLMDV.addGarantie(\''+numart+'\', \''+theProduit['garantie_etendue_numart']+'\', 0);}else{panierLMDV.addGarantie(\''+numart+'\', \'supGarantie\', 0);}"/> <span class="orange">' + theProduit['garantie_etendue_titre'] + ' (' + theProduit['garantie_etendue_prix'] + '&euro;)</span>' );
		}else{
			printdiv('popup_add_produit_panier_garantie', '<input type="checkbox" id="garantie" name="garantie" value="" style="display:none"/> ');
		}
	
		//On ajoute la liste des produits en cross-selling
		var popupaddproduitpanierWidth = 350;
		if(parseInt(arrCrossProducts.length)>0)
		{
			popupaddproduitpanierWidth = 600;
			displaydiv('popup_add_cross', true);
			for(i=0;i<arrCrossProducts.length;i++)
			{
				var strAddPanier = '<a href="#" onclick="javascript:addProductBasketPopup(\''+arrCrossProducts[i]['numart']+'\')"><img height="17px" border="0" width="102px" alt="Ajouter au panier" title="Ajouter au panier" src="/img/commun/ajouter_panier_taille2.gif" border="0"/></a>';
				var strAddWishList = '<a class="produit_wishlist" href="javascript:addToWishlist(\''+arrCrossProducts[i]['numart']+'\');" id="add_'+arrCrossProducts[i]['numart']+'"><img height="17px" border="0" width="54px" alt="Ma liste" title="Ma liste" src="/img/commun/ma_liste.gif"/></a>';
				var imgAddProduit = '<a onClick="addCrossSellTag(\''+theProduit['id_produit']+'\');" href="'+arrCrossProducts[i]['url']+'"><img src="'+arrCrossProducts[i]['img_v']+'" width="130" height="130" alt="'+arrCrossProducts[i]['titre1']+'" title="'+arrCrossProducts[i]['titre1']+'" onError=\"imgError(this)\" border="0"></a>';

				printdiv('popup_add_produit_titre1_'+i,arrCrossProducts[i]['titre1']);
				printdiv('popup_add_produit_titre2_'+i,arrCrossProducts[i]['titre2']);
				printdiv('popup_add_produit_libelle_'+i,arrCrossProducts[i]['libelle']);
				if(parseInt(arrCrossProducts[i]['prix_barre'])>0)
				{ 
					var reduction = roundNumber(parseFloat(arrCrossProducts[i]['prix_vente']) - parseFloat(arrCrossProducts[i]['prix_barre']), 2);
					printdiv('popup_add_produit_prix_barre_'+i,arrCrossProducts[i]['prix_barre']+'&euro;');
					printdiv('popup_add_prix_reduction_'+i,'soit '+reduction+'&euro;');
					imgAddProduit = '<div class="pastilleVignette"><img src="/img/commun/soldes/_'+arrCrossProducts[i]['pourcent_reduc']+'.png" alt="'+arrCrossProducts[i]['pourcent_reduc']+'% de réduction" title="'+arrCrossProducts[i]['pourcent_reduc']+'% de réduction" onload="setpng(this)" width="40" height="40"></div>'+imgAddProduit;
				}else if(parseInt(arrCrossProducts[i]['prix_catalogue'])>0){
					imgAddProduit = '<div class="pastilleVignette"><img src="/img/commun/picto_baisse-prix.gif" title="Prix en baisse" alt="Prix en baisse" width="40" height="40"></div>'+imgAddProduit;
				}
				printdiv('produit_img_'+i,imgAddProduit);
				printdiv('popup_add_produit_prix_'+i,arrCrossProducts[i]['prix_vente']+'&euro;');
				printdiv('popup_add_produit_basket_'+i,strAddPanier);
				printdiv('popup_add_produit_wishlist_'+i,strAddWishList);
			}
			
		}
		else
		{
			displaydiv('popup_add_cross', false);
		}
		
		//Cet élément est initialisé dans init_popup_add_produit_panier. dans guide.js
		YAHOO.popup.container.popupaddproduitpanier.cfg.setProperty("height", popupaddproduitpanierWidth+"px");
		YAHOO.popup.container.popupaddproduitpanier.show();
		YAHOO.popup.container.popupaddproduitpanier.hideEvent.subscribe(function() { 
			choixAddPanier(0);
		});
	
	}

	var handleFailure = function(o){
		displaydiv("div_wait",0);
		failureFunction('ERR026', 'addProductBasketPopup2', (o.responseText != undefined)?o.status:'', (o.responseText != undefined)?o.statusText:'');
	}

	var callback =
	{
	  success:handleSuccess,
	  failure:handleFailure,
	  timeout:120000
	}

	var sUrl = "/inc/pages/async/getProductInfos.php?numart="+numart;
	displaydiv("div_wait", 1);
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
	
	
}
function loadInfoRefCommandeDirect(numart,numLigne){

	if (isNumart(numart)){
		var handleSuccess = function(o)
		{
			displaydiv("div_wait",0);
			eval(o.responseText);
			var infosProduit='';
			if (theProduit['id_image']!= undefined){
				infosProduit+="<img  style=\"padding-right:5px;\" ALIGN=\"left\" src=\"/img/produits/"+theProduit['id_image']+"_v.jpg\" onError=\"imgError(this)\" border=\"0\" width=\"50\" height=\"50\"/>";
			}
			if (theProduit['libelle']!= undefined){
				infosProduit+="<div class=\"libelle\" id=\"libelle_"+numLigne+"\">"+theProduit['libelle']+"</div>";
			}
			if (theProduit['prix_vente']!= undefined){
				infosProduit+="<div class=\"prix_vente\" id=\"prix_vente_"+numLigne+"\">"+theProduit['prix_vente']+" €</div>";
			}
			if (theProduit['dispo']!= undefined){
				infosProduit+="<div class=\"dispo\" id=\"dispo_"+numLigne+"\">disponibilité : "+theProduit['dispo']+"</div>";
			}
			if (theProduit['complementInfo']!= undefined){
				infosProduit+="<div class=\"infos\" id=\"infos_"+numLigne+"\">"+theProduit['complementInfo']+"</div>";
			}
			/*if (theProduit['prix_barre']!= undefined){
				infosProduit+="<input type=\"hidden\" id=\"prix_barre_"+numLigne+"\" value=\""+theProduit['prix_barre']+"\" />";
			}*/
			if (infosProduit!=''){
				/*var oldHtml='';
				if (document.getElementById){
					oldHtml=document.getElementById('infos_produit_'+numLigne).innerHTML;
				}else if (document.all){
					oldHtml=document.all['infos_produit_'+numLigne].innerHTML;
				}*/
				var htmlBouton="<img style=\"padding-right:5px;cursor:pointer;\" ALIGN=\"left\" src=\"/img/commun/ajouter_panier_taille2.gif\" id=\"ajout_panier\" alt=\"Ajouter au panier\" title=\"Ajouter au panier\" width=\"102\" height=\"17\" style=\"cursor: pointer;\" onclick=\"javascript:loadInfoRefCommandeDirect(document.getElementById('refproduit_"+numLigne+"').value,"+numLigne+");\"/>";
				printdiv('infos_produit_'+numLigne,htmlBouton+infosProduit);
				cmdDegrade[cmdDegrade.length]=theProduit;
				if ((theProduit['top_produit']=='OC')||(theProduit['top_produit']=='KAC')){
					if (document.getElementById('qte_'+numLigne).value>1 || panierLMDV.qteProduits(numart)>0){
						alertMsg("La référence "+numart+" n'est commandable qu'à l'unité!.");
					}else if (panierLMDV.nbrProduits()<1){
						alertMsg("La référence "+numart+" n'est commandable que si vous avez déjà au moins 1 article dans votre panier !.");
					}else{
						addBasketCommandeDirect(numLigne);
					}		
				}else{
					addBasketCommandeDirect(numLigne);
				}
			}else{
				alertMsg("La référence "+numart+" n'existe pas.");
			}		
		}
		
		var handleFailure = function(o){
			displaydiv("div_wait",0);
			alertMsg("La référence "+numart+" n'existe pas.");
		
		}
		
		var callback =
		{
		  success:handleSuccess,
		  failure:handleFailure,
		  timeout:120000
		}
	
		var sUrl = "/inc/pages/async/getMinitelref.php?numart="+numart;
		displaydiv("div_wait", 1);
		var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
	}
	else{
		alertMsg("Veuillez saisir une référence valide.");
	}
}
function addBasketCommandeDirect(n)
{
	if (cmdDegrade.length>0){
	
		var curProduct=cmdDegrade[cmdDegrade.length-1];
		var curProductQteField="qte_"+(n);		
		var curProductNumartField="refproduit_"+(n);		
		
		if(curProduct!=undefined){
			var handleSuccess = function(o){
				displaydiv("div_wait", 0);		
				eval(o.responseText);
				if (dispo=='EPU'){
					msg = 'Ce produit est définitivement épuisé!';
					alertMsg(msg);
				}else{
					addBasketCommandeDirect2(n);
				}
			}
			var handleFailure = function(o){
				displaydiv("div_wait", 0);
				failureFunction('ERR027', 'addBasketCommandeDirect', (o.responseText != undefined)?o.status:'', (o.responseText != undefined)?o.statusText:'');
			}
			var callback =
			{
			  success:handleSuccess,
			  failure:handleFailure,
			  timeout:120000
			}
			var url = '/inc/pages/async/setPanier.php';
			var pars = "mode=dispo&numart="+document.getElementById(curProductNumartField).value+"&quantite=1";
			if(getcookie('PHPSESSID'))
			{
				pars +="&PHPSESSID="+getcookie('PHPSESSID');
			}
			displaydiv("div_wait", 1);
			var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, pars);
		}
		else{
			alertMsg("Veuillez saisir une référence valide.");
		}	
	}
	else{	
		alertMsg("Veuillez saisir une référence valide.");
	}
}
function addBasketCommandeDirect2(n)
{ 
	if (cmdDegrade.length>0){
		var curProduct=cmdDegrade[cmdDegrade.length-1];
		var curProductQteField="qte_"+(n);		
		var curProductNumartField="refproduit_"+(n);		
		
		if(curProduct!=undefined){
			if(curProduct['prix_vente']!='' && curProduct['prix_vente']!=undefined)
			{
				panierLMDV.addProduit(document.getElementById(curProductNumartField).value, '',document.getElementById(curProductQteField).value, 'add', curProduct['prix_vente'], curProduct['prix_barre'],'','',1,'', curProduct['libelle'], curProduct['top_produit']);		
			}
			//alertMsg("Les références saisies ont été ajoutées au panier.");
			msg = 'Les références saisies ont été ajoutées au panier.';
			callback = 'panierLMDV.terminerCde();';
			confirmCommandeDirecteMsg(msg, callback);
		}
		else{
			alertMsg("Veuillez saisir une référence valide.");
		}	
	}
	else{	
		alertMsg("Veuillez saisir une référence valide.");
	}
}

function setQuantity(qte){
	show();
	document.getElementById('qteDisplay').innerHTML=qte;
	document.getElementById('qte').value=qte;
}

function choixAddPanier(goToPanier)
{
	YAHOO.popup.container.popupaddproduitpanier.hide();
	displayNbrProductHeader();
	var numart = document.getElementById('numart').value;
	var garantie = document.getElementById('garantie');
	var lastGarantie = document.getElementById('lastGarantie').value;
	var lastQte = document.getElementById('lastQte').value;
	var qte = document.getElementById('qte').value;
	var refGarantie = (garantie.checked) ? garantie.value : 'supGarantie';
	if (qte!=lastQte && garantie.checked!=lastGarantie)
	{
		panierLMDV.addProduit(numart, '', qte, 'set', '', '', refGarantie, goToPanier);
	}
	else if (qte!=lastQte)
	{
		panierLMDV.addProduit(numart, '', qte, 'set', '', '', '', goToPanier);
	}
	/*else if (garantie.checked!=lastGarantie)
	{	
		panierLMDV.addGarantie(numart, refGarantie, goToPanier);
	}*/
	else if(goToPanier)
	{
		panierLMDV.terminerCde();
	}
}

var Url = {

    // public method for url encoding
    encode : function (string) {
        return escape(this._utf8_encode(string));
    },

    // public method for url decoding
    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
			string = string.replace("+", " ");
        }

        return string;
    }

}
function destroyPanierFlottant()
{
	panierLMDV.destroyPanier();
}

YAHOO.util.Event.addListener(window, 'load', displayNbrProductHeader);