
		
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.prodID
				+"&attDetID="		+ itemID.currentColorID
				+"&languesite="		+ BBVars.currentLang
				+"&payssite="		+ BBVars.currentCountry,
				function(data) { getOptionsCallback(data); }
			);
			break;
		
			
		case "addOption":

			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 "addToWishlist":

			if((BBVars.currentProdID+BBVars.currentProdEAN+BBVars.currentOptionID+BBVars.currentProdQty)>1) {
				$.get(
					BBVars.pagesURL	+ "utils/addToWishlist.cfm?is_xml=true&frmaction=add_whishlist"
								+ "&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 "setAttrib":

			var prodItem = jQuery("#"+itemID);
				BBVars.currentProdID		= prodItem.attr("prodID");
				BBVars.currentProdEAN		= prodItem.attr("ref");
				BBVars.currentProdSale		= prodItem.attr("type");
				BBVars.currentOptionID		= prodItem.attr("optionID");
				BBVars.currentColorID		= prodItem.attr("colorID");
				BBVars.currentProdStock		= prodItem.attr("stock");
				BBVars.currentPriceUpd		= eval(prodItem.attr("priceUpd"));
				BBVars.currentOldPriceUpd	= eval(prodItem.attr("oldPriceUpd"));
				BBVars.currentPrice			= eval(prodItem.attr("price"));

			BBVars.currentProdQty = 1;
			var S = new Array();
			UpdateTotal(BBVars.currentPriceUpd, BBVars.currentOldPriceUpd, S, 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);
			/*jQuery.get(
				BBVars.pagesURL + "ajax/panier.cfm?formAction=update",
				function(data) {BBTool_openMsgBox(data, true);}
			);*/
			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;
	}

}

function getOptionsCallback(data) {

	var JsonAttr = jQuery.parseJSON(data),
		coul = JsonAttr.Options[0].Couleur,
		prod = 0,
		maj_hidden = false,
		nbcoul = 1;
	
	for(i=0;i<JsonAttr.Options.length;i++){
		if(JsonAttr.Options[i].Stock > 0) {
			if(coul != JsonAttr.Options[i].Couleur){
				coul = JsonAttr.Options[i].Couleur;
				maj_hidden = false;
				
			}
			if(prod != JsonAttr.Options[i].ProduitID){
				prod = JsonAttr.Options[i].ProduitID;
				BBVars.totalPriceNew = BBVars.totalPriceNew + parseFloat(jQuery("#InPriceProduct" +prod).val());
			}
			if(maj_hidden == false){
				jQuery("#option_dispo" + coul).val(JsonAttr.Options[i].OptionID);
				maj_hidden = true;
			}
			if(nbcoul==1 && JsonAttr.Nbdispo==1) {
				OptionDispo = JsonAttr.Options[i].OptionID;
				nbcoul ++;
			}
			jQuery("#item" + JsonAttr.Options[i].OptionID).removeAttr("disabled");
			jQuery("#item" + JsonAttr.Options[i].OptionID).attr("stock",JsonAttr.Options[i].Stock);
		} else jQuery("#item" + JsonAttr.Options[i].OptionID).attr("stock",0);
	}
	/*if(jQuery(".addItemLink input[type=checkbox]").length>0) {
		jQuery("#InPrixTot").val(BBVars.totalPriceNew);
		jQuery("#prixTot").html(BBVars.currentPriceFormat.replace("{price}", NumberFormat((Math.abs(BBVars.totalPriceNew)).toFixed(2)) ));
	}*/
	//BBCart("setAttrib", "item"  + ( (JsonAttr.Nbdispo==1) ? OptionDispo : JsonAttr.Options[0].OptionID ) , setAttrib_callBack);

/*
	jQuery("#prodAttribs_layer").css("background","none");
	BBVars.currentProdQty = 1;
	if(BBVars.currrentPageName=="fiche") MagicMagnify_findMagnifiers();
	BBCart('setAttrib', 'item'+BBVars.currentProdID+'_'+ BBVars.currentColorID +'_1');*/
}

function setAttrib_callBack(data) {

	//lookTotalUpd();
	
	
	
	if(BBVars.currentProdStock<=0) showPanier( false );
	else {
		showPanier( true );
		jQuery("#liTaille"+BBVars.currentColorID).attr("init","false");
	}

}

function showPanier(visible){
	//jQuery("#noAttribLayer").animate({opacity: 0}, function() { jQuery(this).css("display", "none")});
	if(visible){
		if(jQuery("#addCart_btn").css("opacity")==0||jQuery("#addCart_btn").css("display")=="none") jQuery("#addCart_btn").css("opacity", 0).css("display", "block").animate({opacity: 1});
		jQuery("#toReminder_btn").hide();
		jQuery("#liprodQty" + BBVars.currentProdID).show();
		jQuery("#liProdNonDispo" + BBVars.currentProdID).hide();
	}else {
		jQuery("#addCart_btn").hide();
		jQuery("#toReminder_btn").show();
		jQuery("#liprodQty" + BBVars.currentProdID).hide();
		jQuery("#liProdNonDispo" + BBVars.currentProdID).show();
	}
	
}


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;";
	var prix = prix_ori + maj;
		prix = prix.toFixed(2);
	var promo = prix_ori + majpromo;
		promo = promo.toFixed(2);
	//var prix_sil = eval(jQuery("#InPrixTot").val());
	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);
	
	jQuery("#prixpromo" + produit_id).html(BBVars.currentPriceFormat.replace("{price}", NumberFormat(prix)));
	//jQuery("#ancienprix" + produit_id).html(BBVars.currentPriceFormat.replace("{price}", NumberFormat(prix)));
	jQuery("#ancienprix" + produit_id).css("display", ((majpromo==0)?"none":"inline"));
	
	for(var i=0; i<Soldes.length; i++) {
		if(BBVars.currentCountry!="gb")
			jQuery("#ancienprix" + produit_id).html(jQuery("#ancienprix" + produit_id).html() + "&euro; / <del>" + NumberFormat(Soldes[i].AncienPrix) + " &euro;</del>");
		else
			jQuery("#ancienprix" + produit_id).html("&pound;"+jQuery("#ancienprix" + produit_id).html() + " / <del>" + NumberFormat("&pound;"+Soldes[i].AncienPrix) + " </del>");
	}
	
	jQuery("#priceProduct" + produit_id).css("display", "block");
	jQuery("#firstPrice" + produit_id).css("display", "none");
}

function BBSlider( target ) {

	slider = (typeof(target)!="undefined") ? jQuery( target ) : jQuery(".BBSlider");

	slider.each( function(i,el) {
	
		var currentSlider	= jQuery(this),
			defaults		= {
								index: 		0,			// Element ouvert a l init
								callback: 	null,		// Fonction a executer apres l ouverture d un element
								menu: 		false,		// Liaison du slider avec un menu
								mainCont:	"dl",		// Element conteneur des differents menus et items
								clickElt:	"dt",		// Element a cliquer pour derouler le slider
								slideElt:	"dd"		// Element qui se deroule
							},
			params			= jQuery.extend({}, defaults, eval( "(" + currentSlider.attr("data-BBParams") + ")") ),
			menuItems		= jQuery(params.clickElt, currentSlider).not( jQuery(params.mainCont+" "+params.clickElt, currentSlider) ),
			items			= jQuery(params.slideElt, currentSlider).not( jQuery(params.mainCont+" "+params.slideElt, currentSlider) );
		
		items.css({display: "none", overflow: "hidden"});
		menuItems.each( function(j,elt) {
		
			var currentElt		= jQuery(this),
				itemDefaults	= {
									callback:				null,
									callbackParams:			[],
									slideCallback:			null,
									slideCallbackParams:	[]
								},
				itemParams		= jQuery.extend({}, ( jQuery.extend({}, itemDefaults, eval( "(" + currentElt.attr("data-BBParams") + ")") ) ), eval( "(" + items.eq(j).attr("data-BBParams") + ")") );
		
			if( currentElt.hasClass("selected"))
				currentElt.data("selected", true);
				
			currentElt.bind("click", function(e) {
			
					// Callback globale
					if( jQuery.isFunction( params.callback ) ) params.callback.call( currentElt, j );
			
					// Callback au click
					if( jQuery.isFunction( itemParams.callback ) ) itemParams.callback.apply( currentElt, itemParams.callbackParams );
			
					// Repli de l element ouvert
					jQuery( params.clickElt + ".selected", currentSlider).not( jQuery(params.mainCont+" "+params.clickElt, currentSlider) )
						.data("selected", false).removeClass("selected")
						.next( params.slideElt ).stop().slideUp();
					
					currentElt.data("selected", true).addClass("selected")
						.next( params.slideElt ).stop().slideDown( function() {
							if( jQuery.isFunction( itemParams.slideCallback ) ) itemParams.slideCallback.apply( currentElt, itemParams.slideCallbackParams );
						});
					
			});
			
		});
		
		menuItems.eq( params.index ).trigger("click");
	
	});

}
