/*----------------------------------------------------------------------------------------------*/




/*----------------------------------------------------------------------------------------------*/


function BBCart( action, itemID,type,mode, callBack) {
	switch(action) {
		case "addCart":
			var prodItem = $("#"+itemID);
			var optSelect = jQuery("option:selected",prodItem);
			BBVars.currentProdSale		= optSelect.attr("type");
			BBVars.currentOptionID		= optSelect.attr("optionID");
			BBVars.currentProdEAN		= optSelect.attr("ref");
			BBCart('addOption',mode,type);
			break;
		case "setQty":
			BBVars.currentProdQty = parseInt($("#"+itemID).val());
			if(BBVars.attDspType==1) BBVars.tmpProdQty = BBVars.currentProdQty;
			break;
		case "qtyMinus":
			if(typeof itemID != "undefined") {
				BBVars.currentProdQty = parseInt($("#"+itemID).html());
			}
			
			if( BBVars.currentProdQty-1 > 0) {
				BBVars.currentProdQty -= 1;
				if(BBVars.attDspType==1) BBVars.tmpProdQty -=1;
				$("#"+itemID).html(BBVars.currentProdQty);
			}
			break;
		case "qtyPlus":
			if(typeof itemID != "undefined") {
				BBVars.currentProdQty = parseInt($("#"+itemID).html());
			}

			
			if( BBVars.currentProdQty+1 <= BBSettings.prodMaxQty && BBVars.currentProdQty+1 <= BBVars.currentProdStock) {
				BBVars.currentProdQty += 1;
				if(BBVars.attDspType==1) BBVars.tmpProdQty +=1;
				$("#"+itemID).html(BBVars.currentProdQty);
			} else {
				var maxProd = (BBSettings.prodMaxQty>BBVars.currentProdStock) ? BBVars.currentProdStock : BBSettings.prodMaxQty;
				//mettre le label pas assez de stock
				var message = BBLabels.label_prodMaxQty.replace(/%/,maxProd);
				//BBTool_openMsgBox(message, false);
			}
			break;
		case "getAllOptions":
			break;
		case "getOptions":
			//var mode= (typeof type != "undefined")? '':fiche_mode;
			if(typeof itemID == "undefined") {
				if(BBVars.currentProdID == 0) itemID = BBSettings.defaultItemName + "1";
				BBVars.attDspType	= 1;
			} else {
				var prodItem 				= $("#"+itemID);
					BBVars.currentProdID 	= prodItem.attr("prodID");
					BBVars.currentColorID 	= prodItem.attr("colorID");
					BBVars.attDspType		= (typeof type != "undefined") ? type : 0;
					
			}
			$.get(
				BBVars.pagesURL 	+"ajax/quickBuy.cfm"
				+"?prodID="			+BBVars.currentProdID
				+"&attDetID="		+BBVars.currentColorID
				+"&langID="			+BBVars.currentLang
				+"&countryID="		+BBVars.currentCountry
				+"&attDspType="		+BBVars.attDspType
				+"&mode=" 			+mode,
				function(data) {BBTool_openMsgBox(data, true);}
			);
			break;
		case "addOption":
			if(typeof itemID != "undefined") {
				var prodItem 			= $("#"+itemID);
				BBVars.currentProdID 	= prodItem.attr("prodID");
				BBVars.currentColorID 	= prodItem.attr("colorID");
				
				BBVars.currentProdQty = parseInt(jQuery("#prodQty" + BBVars.currentProdID).val());
			}
			if(BBVars.currentProdQty>=1) {
				//alert(BBVars.currentProdID);
				//alert(BBVars.currentProdEAN);
				//alert(BBVars.currentProdQty);
				$.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);}
				);
				BBVars.currentProdID	= BBVars.tmpProdID;
				BBVars.currentProdEAN	= BBVars.tmpProdEAN;
				BBVars.currentProdSale	= 1;
				BBVars.currentOptionID	= BBVars.tmpOptionID;
				BBVars.currentProdQty	= BBVars.tmpProdQty;
			} else BBTool_openMsgBox(BBLabels.label_errorAttribs, false);
			break;
			
		// Selection d une option
		case "setAttrib":
		
			// Si on a pas specifie l ID de l option selectionnee on utilise l ID par defaut deffini dans les BBSettings
			if(typeof itemID == undefined) itemID = BBSettings.defaultItemName + BBVars.currentProdID + "_1";
			
			// On recupere l objet option et les informations relatives a l option
			var prodItem = $("#"+itemID);
				
				// Produit ID
				BBVars.currentProdID		= prodItem.attr("prodID");
				// Attribut detail ID de la couleur(premier attribut)
				BBVars.currentColorID		= prodItem.attr("colorID");
				// Code EAN de l option
				BBVars.currentProdEAN		= prodItem.attr("ref");
				// type vente a remonter dans storeland 
				BBVars.currentProdSale		= prodItem.attr("type");
				// Option ID
				BBVars.currentOptionID		= prodItem.attr("optionID");
				// Stock de l option
				BBVars.currentProdStock		= (typeof(prodItem.attr("stock"))!="undefined") ? prodItem.attr("stock") : 0;
				// Promotion
				BBVars.currentPriceUpd		= eval(prodItem.attr("priceUpd"));
				// Ancienne promo pour la liste des demarques(uniquement sur la fiche)
				BBVars.currentOldPriceUpd	= eval(prodItem.attr("oldPriceUpd"));
				//BBSettings.prodMaxQty	= (BBSettings.prodMaxQty>BBVars.currentProdStock) ? BBVars.currentProdStock : BBSettings.prodMaxQty;
				
			// Si on est sur la fiche, on stock les infos du produit courant(le produit de la fiche)
			// L initialisation des variables currentProd(colorID,ProdEAN...) se fait a chaque appel ajax des attributs
			// Sur la fiche les attributs sont charges une fois au loading de la page
			// Il faut donc qu on stock ces infos si jamais on fait appel a un block quickbuy
			if(BBVars.attDspType==1) {
			//alert(prodItem.attr("ref"));
				BBVars.tmpProdID			= BBVars.currentProdID;
				BBVars.tmpColorID			= BBVars.currentColorID;
				BBVars.tmpProdEAN			= BBVars.currentProdEAN;
				BBVars.tmpOptionID			= BBVars.currentOptionID;
				BBVars.tmpProdQty			= BBVars.currentProdQty;
				BBVars.tmpPriceUpd			= BBVars.currentPriceUpd;
				BBVars.tmpOldPriceUpd		= BBVars.currentOldPriceUpd;
			}
			
			
			
			// Si l option courante n a pas de stock dispo on passe a l option suivante
			if(BBVars.currentProdStock<=0) {
				if(jQuery(prodItem).next().length>0)
					BBCart('setAttrib', jQuery(prodItem).next().attr("id"), setAttrib_callBack);
				else 
					BBCart('disable');
			}
			
			var maxQty = (BBVars.maxProdQty<eval(BBVars.currentProdStock))
						? eval(BBVars.currentProdStock)
						: BBVars.maxProdQty;

			// La quantite est du texte contenu dans un layer(visible ou pas si la quantite est fixe ou pas)
			if(BBSettings.qtyDspType=="layer"||BBSettings.qtyDspType=="false") {
				
				// La quantite demandee est superieure au stock dispo
				// On met la quantite max dispo
				// Ou on recupere la valeur du layer de la quantite
				var currentQty 	= (eval($("#prodQty"+BBVars.currentProdID).html())>BBVars.currentProdStock)
								? BBVars.currentProdStock
								: $("#prodQty"+BBVars.currentProdID).html();
				$("#prodQty"+BBVars.currentProdID).html(parseInt(currentQty));
			
			// La quantite est saisie via un select ou un input texte
			} else {
			
				// Mise a jour du select de la quantite
				if(jQuery("#prodQty"+BBVars.currentProdID+" option").length>maxQty) {
				
					// Le select contient plus d option qu il n y a de stock dispo
					// On supprime les options dont la valeur est superieure a la quantite en stock dispo
					jQuery("#prodQty"+BBVars.currentProdID+" option").each( function(i) {
						if (eval(jQuery(this).attr("value"))>maxQty) jQuery(this).remove();
					});	
				
				} else {
				
					// Le select contient moins d option qu il n y a de stock dispo
					// On rajoute les options (qu on a eventuellement supprimees)

					if(jQuery("#prodQty"+BBVars.currentProdID+" option").length<maxQty) {
						for(i=jQuery("#prodQty"+BBVars.currentProdID+" option").length;i<maxQty;i++) {
							jQuery("#prodQty"+BBVars.currentProdID).append('<option value="'+eval(i+1)+'">'+eval(i+1)+'</option>');
						}
					}
				
				}
			
				// La quantite demandee est superieure au stock dispo
				// On met la quantite max dispo
				// Ou on recupere la valeur du select de la quantite
				var currentQty = ( jQuery("#prodQty"+BBVars.currentProdID).val() > maxQty )
								? maxQty
								: jQuery("#prodQty"+BBVars.currentProdID).val();
				
				// On selectionne la bonne option dans le select( et met du coup la valeur du select a jour)
				/*$("#prodQty"+BBVars.currentProdID+" option").each( function(i) {
					$(this).attr("selected", ($(this).attr("value")==currentQty)? true : false);
				});*/
				jQuery("#prodQty"+BBVars.currentProdID).val(currentQty);
				
			}
			
			// On met a jour la quantite du produit a mettre au panier
			BBVars.currentProdQty = parseInt(eval(currentQty));
			
			// Tableau des demarques successives
			var S = new Array();
			
			// Sur la fiche on met a jour les differents prix a afficher
			if(BBVars.currentPageName=="fiche")
				UpdateTotal(BBVars.currentPriceUpd, BBVars.currentOldPriceUpd, S);
				
			break;
			
		// Check le contenu du panier
		case "check":
			$.get(
				BBVars.pagesURL + "ajax/panier.cfm",
				function(data) {BBTool_openMsgBox(data, true);},
				"html"
			);
			
			break;
			
		// Soumission d un coupon
		case "coupon":
			$("#basketFormAction").attr("value","coupon");
			BBTool_formPost("basketForm", false);
			break;
			
		// Mis a jour des quantites au panier
		case "update":
			BBTool_formPost(itemID, false);
			/*$.get(
				BBVars.pagesURL + "ajax/panier.cfm?formAction=update",
				function(data) {BBTool_openMsgBox(data, true);}
			);*/
			break;
			
		// Supprimer une ligne du panier
		case "remove":
			/*$.get(
				BBVars.pagesURL 	+"ajax/panier.cfm?formAction=update"
				+"&cartLineID="		+BBVars.currentProdID
				+"&cartLineQte="	+BBVars.currentColorID
				+"&langID="			+BBVars.currentLang
				+"&countryID="		+BBVars.currentCountry
				+"&attDspType="		+BBVars.attDspType,
				function(data) {BBTool_openMsgBox(data, true);}
			);*/
			//BBTool_formPost(, false);
			//delTR("line"+itemID, "60px");
			jQuery("#basketFormAction").attr("value","update");
			jQuery("#quantite_"+itemID).attr("value",0);
			BBTool_formPost("basketForm", false);
			break;
		case "disable":
			alert("pas de stock");
			break;
		// Recupere les infos sur le panier
		default:
			jQuery.get(
				BBVars.pagesURL + "ajax/panier.cfm",
				function(data) {BBTool_openMsgBox(data, true);},
				"html"
			);
			break;
	}
	
	// Appel de la callback si elle est passee dans les parametres
	if(jQuery.isFunction((itemID&&callBack)||(itemID||callBack)))
		((itemID&&callBack)||(itemID||callBack)).call();

	/*if($.isFunction(eval(itemID))) eval(itemID+"(msgData)");
	if($.isFunction(eval(callBack))) eval(callBack+"(msgData)");*/

}
