/**
* Fonctions utilitaires pour la gestion du panier
*/

YAHOO.namespace ("Abo.Cart"); 

var cmptPass = 0;
var msgToPrint = null;

YAHOO.Abo.CartManager = {
	addToCartSucces: function(o){
		var retour = o.responseText;
		document.getElementById("panierInside").innerHTML = retour;
		//recherche d'une erreur dans la réponse
		if( retour.indexOf("erreur") == -1) {
			var cmpt = document.getElementById("panierInside").getElementsByTagName("dl").length;
			document.getElementById("compteurPanier").innerHTML = "Mon panier ("+cmpt+")";
			YAHOO.Abo.CartManager.afterAdd.fire();
		}else{
			var objErrorTag = document.getElementById("msgError"); 
			if(objErrorTag != null) msgToPrint = objErrorTag.value;
			YAHOO.Abo.CartManager.onFail.fire();
		}			
	},
	addToCartWithRefreshSucces: function(o){
		var retour = o.responseText;
		document.getElementById("panierInside").innerHTML = retour;
		//recherche d'une erreur dans la réponse
		if( retour.indexOf("erreur") == -1) {
			var cmpt = document.getElementById("panierInside").getElementsByTagName("dl").length;
			document.getElementById("compteurPanier").innerHTML = "Mon panier ("+cmpt+")";
			YAHOO.Abo.CartManager.updateCart();
			//showMessageAddPanierKO utilisé ici comme message informatif
			msgToPrint = "<span style='font-size: 11pt'>Le magazine a été ajouté au panier</span>";
			showMessageAddPanierKO();
		}else{
			var objErrorTag = document.getElementById("msgError"); 
			if(objErrorTag != null) msgToPrint = objErrorTag.value;
			YAHOO.Abo.CartManager.onFail.fire();
		}			
	},	
	addToCartFailure: function(o){
		YAHOO.Sqli.Utils.Tools.error("Impossible d'ajouter au panier","Panier - Erreur");
		YAHOO.Abo.CartManager.onFail.fire();
	},
	addToCart: function(ref,cadeau){
		YAHOO.util.Connect.asyncRequest('POST', "gestion-panier.do?method=addToCart&idMagazine="+ref+
			"&cadeau="+cadeau+"&genId="+YAHOO.util.Dom.generateId() , 
 			{success : YAHOO.Abo.CartManager.addToCartSucces,
 			failure : YAHOO.Abo.CartManager.addToCartFailure});
	},
	addToCartWithRefresh: function(ref,cadeau){
		YAHOO.util.Connect.asyncRequest('POST', "gestion-panier.do?method=addToCart&idMagazine="+ref+
			"&cadeau="+cadeau+"&genId="+YAHOO.util.Dom.generateId() , 
 			{success : YAHOO.Abo.CartManager.addToCartWithRefreshSucces,
 			failure : YAHOO.Abo.CartManager.addToCartFailure});
	},	
	updateCartSucces: function(o){
		document.getElementById("tbodyCart").innerHTML = o.responseText;
	},
	updateCartJSON: function(data){
		
	
        aData = data.ResultSet.Result;
    	var tb = document.getElementById("tbodyCart");  
    	while (tb.childNodes.length > 0) { 
		    tb.removeChild(tb.firstChild); 
		}  
        for(i=0; i<aData.length; i++) {
        	var tr = document.createElement("tr");
        	var val = aData[i].value;
        	tr.style.backgroundColor = val.tr.bgColor;
        	var th = document.createElement("th");
        	
        	th.scope = "row";
        	th.innerHTML = val.th;
        	tr.appendChild(th);
        	
        	for(var j=0; j<val.cells.length;j++){
        		
        		var td = document.createElement("td");
	        	
	        	if(j == 0){
	        		td.className = val.cells[j].classE;
	        		td.innerHTML = val.cells[j].data;
	        	}else{
	        		td.innerHTML = val.cells[j];
	        	}
	        	tr.appendChild(td);
        	}
        	tb.appendChild(tr);
        	//alert(tr);
        }
	},
	updateCart: function(){
	   $.ajax({
		   url: "update-panier-json.do?genId="+YAHOO.util.Dom.generateId()+"&"+Math.random(),
		   dataType: 'json',
		   cache:false,
		   success: YAHOO.Abo.CartManager.updateCartJSON,
		   error:function(XMLHttpRequest, textStatus, errorThrown){
		   	YAHOO.Sqli.Utils.Tools.error("Impossible de mettre à jour le panier","Panier - Erreur");
	   	   }
		 });
	},
	removeFromCartSucces: function(o){
		document.getElementById("panierInside").innerHTML = o.responseText;
		var cmpt = document.getElementById("panierInside").getElementsByTagName("dl").length;
		document.getElementById("compteurPanier").innerHTML = "Mon panier ("+cmpt+")";
		YAHOO.Abo.CartManager.updateCart();
		
	},
	removeFromCartFailure: function(o){
		YAHOO.Sqli.Utils.Tools.error("Impossible d'enlever du panier","Panier - Erreur");
	},
	removeFromCart: function(ref,cadeau){
		
		YAHOO.util.Connect.asyncRequest('POST', "gestion-panier.do?method=removeFromCart&idMagazine="+
				ref+"&cadeau="+cadeau+"&genId="+YAHOO.util.Dom.generateId() , 
 			{success : YAHOO.Abo.CartManager.removeFromCartSucces,
 			failure : YAHOO.Abo.CartManager.removeFromCartFailure});
	},
	afterAdd: new YAHOO.util.CustomEvent("afterAddCart"),
	onFail: new YAHOO.util.CustomEvent("onFailCart")
}; 


function goToPanier(){
	if (baseUri.substr(baseUri.length-1,1) != '/')
		document.location.href=baseUri+"/mon-panier.do";
	else
		document.location.href=baseUri+"mon-panier.do";
}
//(message, callback, titre,libOk,libKo,width,icon, callbackKo)
function showMessageAddPanierOK(){
		YAHOO.Sqli.Utils.Tools.confirm("<img src='ui/default/images/mini-teleconseillere.jpg' /> &nbsp; <span style='font-size: 11pt'>Le magazine a été ajouté au panier</span>",null,"Panier abonnement libre","Poursuivre mes achats","Visualiser le panier ","400px",false,function(){goToPanier()});		
}
function showMessageAddPanierKO(){
	if(msgToPrint==null){
		YAHOO.Sqli.Utils.Tools.error("<img src='ui/default/images/mini-teleconseillere.jpg' /> <br />Suite à un problème technique, le magazine n'a pas été ajouté au panier, merci de réessayer","Panier abonnement libre");
	}else{
		YAHOO.Sqli.Utils.Tools.error("<img src='ui/default/images/mini-teleconseillere.jpg' /> <br />" + msgToPrint,"Panier abonnement libre");
		msgToPrint = null;
	}	
}
YAHOO.Abo.CartManager.afterAdd.subscribe(showMessageAddPanierOK);
YAHOO.Abo.CartManager.onFail.subscribe(showMessageAddPanierKO);
