function BBCart( action, itemID, callBack) {
	
	switch(action) {
		
		case "add":
			break;
			
		case "setQty":
			if(typeof itemID == undefined) itemID = "prodQty" + BBVars.currentProdID;
			var prodItem = jQuery("#"+itemID);
			BBVars.currentProdQty = prodItem.val();
			break;
			
		case "qtyMinus":
			if( BBVars.currentProdQty-1 > 0) {
				BBVars.currentProdQty -= 1;
				if(BBVars.attDspType==1) BBVars.tmpProdQty -=1;
				jQuery("#"+itemID).html(BBVars.currentProdQty);
			}
			break;
			
		case "qtyPlus":
			if( BBVars.currentProdQty+1 <= BBSettings.prodMaxQty && BBVars.currentProdQty+1 <= BBVars.currentProdStock) {
				BBVars.currentProdQty += 1;
				if(BBVars.attDspType==1) BBVars.tmpProdQty +=1;
				jQuery("#"+itemID).html(BBVars.currentProdQty);
			} else {
				var maxProd = (BBSettings.prodMaxQty>BBVars.currentProdStock) ? BBVars.currentProdStock : BBSettings.prodMaxQty;
				var message = BBLabels.label_prodMaxQty.replace(/%/,maxProd);
				BBTool_openMsgBox(message, false);
			}
			break;
			
		case "getAllOptions":
			break;
			
		case "getOptions":
		
			jQuery.get(
				BBVars.pagesURL 	+ "ajax/attributs.cfm"
				+"?produit_id="		+ itemID
				+"&languesite="		+ BBVars.currentLang
				+"&payssite="		+ BBVars.currentCountry,
				function(data) { getOptionsCallback(data); }
			);
			break;
		
			
		case "addOption":

			if(typeof(itemID)!="undefined") {
			
				var prodItem					= jQuery("#"+itemID),
					prodData					= eval( "(" + prodItem.attr("data-BBParams") + ")" );
					
				jQuery.get(
					BBVars.pagesURL 		+ "ajax/panier.cfm?formAction=add&attribs=1"
					+"&produit_id=" 		+ prodData.prodID
					+"&code_ean=" 			+ prodData.ref
					+"&type_vente=" 		+ prodData.type
					+"&option_id="			+ prodData.optionID
					+"&quantite_souhaitee="	+ 1
					+((prodData.WL)?"&WL=true":""),
					function(data) {BBTool_openMsgBox(data, true);}
				);
			
			} else if((BBVars.currentProdID+BBVars.currentProdEAN+BBVars.currentOptionID+BBVars.currentProdQty)>1) {
				var addToPanier = "addOptionPanier";
				jQuery.get(
					BBVars.pagesURL 		+"ajax/panier.cfm?formAction=add&attribs=1"
					+"&produit_id=" 		+BBVars.currentProdID
					+"&code_ean=" 			+BBVars.currentProdEAN
					+"&type_vente=" 		+BBVars.currentProdSale
					+"&option_id="			+BBVars.currentOptionID
					+"&quantite_souhaitee="	+BBVars.currentProdQty,
					function(data) {BBTool_openMsgBox(data, true);}
				);
			} else BBTool_openMsgBox(BBLabels.label_errorAttribs, false);
				
			break;
			
		case "addOptionMulti":
		
			var prodIDList = "",
				EANList = "",
				optionList = "",
				qteList = "",
				addURL = "?frmaction=add" ;
			
			jQuery(".kitLayer ul.prodsList li").each(function(index,v){
			
			 	var item = jQuery(this);
			 	
				if(EANList == "") {
					EANList += "&code_ean=" + item.attr("ref");
					optionList += "&option_id=" + item.attr("oID");
					prodIDList += "&produit_id=" + item.attr("pID");
					qteList += "&qte_souhait=1";
				} else {
					EANList += "," + item.attr("ref");
					optionList += "," + item.attr("oID");
					prodIDList += "," + item.attr("pID");
					qteList += ",1";
				}

			});
			addURL += EANList + optionList + prodIDList + qteList;
			if(EANList!="") jQuery.get(BBVars.pagesURL+"ajax/addMulti.cfm" + addURL, function(data) { BBTool_openMsgBox(data, true);});
			
			break;
			
		case "addWL":

			if((BBVars.currentProdID+BBVars.currentProdEAN+BBVars.currentOptionID+BBVars.currentProdQty)>1) {
				jQuery.get(
					BBVars.pagesURL			+ "ajax/wishlist.cfm?"
					+"produit_id=" 			+ BBVars.currentProdID
					+"&attribut_detail_id=" + BBVars.currentColorID 
					+"&code_ean=" 			+ BBVars.currentProdEAN
					+"&type_vente=" 		+ BBVars.currentProdSale
					+"&option_id="			+ BBVars.currentOptionID
					+"&attribs=1",
					function(data) {BBTool_openMsgBox(data, true);}
				)
			} else BBTool_openMsgBox(BBLabels.label_errorAttribs, false);
			break;
			
		case "delWL":
			jQuery.get(
				BBVars.pagesURL		+ "compte_panier.cfm?action=deleteLigne"
				+ "&panier_save_id="+ itemID,
				function(data) { delWLCallback(itemID); }
			)
			break;
			
		case "setAttrib":

			var prodItem					= jQuery("#"+itemID),
				prodData					= eval( "(" + prodItem.attr("data-BBParams") + ")" ),
				discountList				= new Array();
				//BBVars.currentProdID		= prodItem.attr("prodID"),
				BBVars.currentProdEAN		= prodData.ref,
				BBVars.currentProdSale		= prodData.type,
				BBVars.currentOptionID		= prodData.optionID,
				BBVars.currentColorID		= prodItem.parent().attr("data-colorID"),
				BBVars.currentProdStock		= prodItem.attr("data-stock"),
				BBVars.currentPriceUpd		= eval(prodData.priceUpd),
				BBVars.currentOldPriceUpd	= eval(prodData.oldPriceUpd),
				BBVars.currentPrice			= eval(prodData.price),
				BBVars.currentProdQty		= 1;

			UpdateTotal(BBVars.currentPriceUpd, BBVars.currentOldPriceUpd, discountList, BBVars.currentProdID, BBVars.currentPrice);

			if(jQuery.isFunction((itemID&&callBack)||(itemID||callBack)))
				((itemID&&callBack)||(itemID||callBack)).call();
				
			break;
			
		case "colorChange":
		
			BBVars.currentColorID = itemID;

			break;
			
		case "check":
			jQuery.get(
				((eval(BBVars.isHTTPS)) ? BBVars.pageURL : BBVars.pagesURL) + "ajax/panier.cfm",
				function(data) {BBTool_openMsgBox(data, true);}
			);
			
			break;
			
		case "coupon":
			jQuery("#basketFormAction").attr("value","coupon");
			BBTool_formPost("basketForm", false);
			break;
			
		case "update":
			BBTool_formPost(itemID, false);
			break;
		case "remove":
			jQuery("#basketFormAction").val("update");
			jQuery("#quantite_"+itemID).val(0);
			jQuery("#basketForm").attr("check", "false");
			BBTool_formPost("basketForm", false);
			break;
			
		default:
			jQuery.get(
				BBVars.pagesURL + "ajax/panier.cfm",
				function(data) {BBTool_openMsgBox(data, true);}
			);
			break;
	}

}

// Remplace setOptionDispo
function getOptionsCallback(data) {

	jQuery(jQuery.parseJSON(data).prods).each( function(i,el) {
		jQuery(el.options).each( function(j,elt) {
			jQuery("#item" + elt.OptionID).attr("data-stock", elt.Stock);
			jQuery("#item" + elt.OptionID).addClass( (elt.Stock==0) ? "disabled" : "available" );
		});
		BBVars.totalPriceNew = BBVars.totalPriceNew + parseFloat(jQuery("#InPriceProduct"+el.prodID).val());
		jQuery(".prodAttribsLayer[data-prodID="+el.prodID+"] ul.sizesList:visible li[data-stock!=0]").eq(0).trigger("click");
	});
	
	jQuery(".prodAttribsLayer ul.sizesList:visible li[data-stock=0]").tooltip(
		function (el) { return "<p class='noStock'>" + BBLabels.label_nostock + "</p>";},
		{pointer: true, xOffset: 0, yOffset: 15, tTipDspPos: "top", classN: 'noStock'}
	);
	
}

function setAttrib_callBack(data) {

	showPanier( ((BBVars.currentProdStock<=0)?false:true) );

}

function delWLCallback( itemID ) {

	jQuery("#WL"+itemID).css({overflow: "hidden", height: 65});
	jQuery("#WL"+itemID+" td").css({height: 65, overflow: "hidden"}).animate({opacity:0, height: 0}, function() {
		jQuery(this).remove();
		jQuery("#WL"+itemID).animate({height: 0}, function() { jQuery(this).remove(); });
		if(jQuery("#cart_table td").length==0) {
			jQuery("#WLLayer").animate({height: 0, opacity: 0}, function() {
				jQuery(this).remove();
			});
			jQuery("#emptyWLLayer").css({opacity: 0, display: "block"}).animate({opacity: 1});
		}
	});

}

function showPanier(visible){
	var cartBtn = jQuery(".btnLayer .toCart");
		
	if(visible){
		cartBtn.stop().animate({opacity: 1});
		cartBtn.attr("href", cartBtn.data("action"));
	}else {
		cartBtn.stop().animate({opacity: 0.5});
		cartBtn.data("action", cartBtn.attr("href"));
		cartBtn.attr("href", "#");
	}
	
}


function BBcalculPrixSil(){
	var prixTot=0;
	jQuery(".sliTaille").each(function(index,v){
		color = jQuery(this).attr("colorID");
		prod = jQuery(this).attr("prodID");
		if(jQuery("#staille"+color + "_" +prod).is(":visible") && jQuery(".prodImg", jQuery("#prod_layer_multi" + prod)).css('opacity')==1 ){
			
			var QTE = parseInt(jQuery("#sprodQty"+prod).val());
			var prix = parseFloat(jQuery("#InPriceProduct" + prod).val());
			prixTot = prixTot + prix * QTE;

		}
	});
	jQuery("#InPrixTot").val(prixTot.toFixed(2));
	jQuery("#prixTot").html(NumberFormat(prixTot.toFixed(2)));
}


function UpdateTotal(maj, majpromo, Soldes,produit_id,prix_ori){

	var devise = "&euro;",
		prix = prix_ori + maj,
		promo = prix_ori + majpromo,
		qty = 1,
		priceLayer = jQuery(".prodPriceLayer"),
		stdPrice = jQuery(".stdPrice", priceLayer),
		oldPrice = jQuery(".oldPrice", priceLayer),
		discount = jQuery(".discount", priceLayer);
	
	prix = prix.toFixed(2);
	promo = promo.toFixed(2);

	//var qty = parseInt(eval(jQuery("#prodQty" + produit_id).val()));

	/*if(jQuery("#InPriceProduct" + produit_id).val() != "" && eval(jQuery("check"+produit_id).attr("checked"))) 
		prix_sil = parseFloat(prix_sil) - parseFloat(jQuery("#InPriceProduct" + produit_id).val()) * qty;

	prix_sil = parseFloat(prix_sil) + prix * qty;
	prix_sil = prix_sil.toFixed(2);*/

	/*jQuery("#prixTot").html(BBVars.currentPriceFormat.replace("{price}", NumberFormat(prix_sil)));
	jQuery("#InPrixTot").val(prix_sil);*/

	jQuery("#InPriceProduct" + produit_id).val(prix);
	
	stdPrice.html(BBVars.currentPriceFormat.replace("{price}", NumberFormat(prix)).replace(/\,00/,""));
	if(majpromo!=0) discount.html( "-" + Math.floor( 100 - (prix/promo)*100 ) + "%" );
	oldPrice.css("display", ((majpromo==0)?"none":"inline"));
	discount.css("display", ((majpromo==0)?"none":"inline"));
	
	for(var i=0; i<Soldes.length; i++) {
		oldPrice.html(oldPrice.html() + "&euro; / <del>" + NumberFormat(Soldes[i].AncienPrix) + " &euro;</del>");
	}
	
}
