function findPosX(obj){
     var curleft = 0;
     if (obj.offsetParent){
          while (obj.offsetParent){
               curleft += obj.offsetLeft
               obj = obj.offsetParent;
          }
     }
     else if (obj.x)
          curleft += obj.x;
     return curleft;
}

function findPosY(obj){
     var curtop = 0;
     if (obj.offsetParent){
          while (obj.offsetParent){
               curtop += obj.offsetTop
               obj = obj.offsetParent;
          }
     }else if (obj.y)
          curtop += obj.y;
     return curtop;
}
var regExpBeginning = /^\s+/;
var regExpEnd = /\s+$/;  

// Supprime les espaces inutiles en d?but et fin de la cha?ne pass?e en param?tre.
function trim(aString) {

    return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
}

// Supprime les espaces inutiles en d?but de la cha?ne pass?e en param?tre.
function ltrim(aString) {

    return aString.replace(regExpBeginning, "");
}
// Supprime les espaces inutiles en fin de la cha?ne pass?e en param?tre.
function rtrim(aString) {

    return aString.replace(regExpEnd, "");
}
 
/*------------------------- BASE FUNCTIONS -------------------------*/
//Object.prototype.getStyle = function(){return this.style;}
/*Object.prototype.switchDisplay = function() {if( !this.style.display || this.style.display == 'none' ) this.display = 'block'; else this.display = 'none';}*/
//Object.prototype.reset = function(){this.value='';}

var disabling = false;
var running = false;
var LastDisplayedLayer = "";
var LastDisplayedReference = "";
function DisableMouseOut(){
	disabling = true;
}

function blockDsp(layer, state, reference) {
	if(LastDisplayedLayer != layer){
		if(LastDisplayedLayer != ""){
			blockDspCallback(LastDisplayedLayer, false, LastDisplayedReference);
		}
		LastDisplayedLayer = layer;
		LastDisplayedReference = reference;
	}
	
	if(running) return;
	running = true;
	
	setTimeout("blockDspCallback('"+layer+"', "+state+", '"+reference+"')", 10);
	//setTimeout("blockDspCallback('"+layer+"', false, '"+reference+"')", 10000);
	//setTimeout("alert('10');", 100);
	
}

function hideSelect(show) {
	//doc = window.document;
	
	//AllSelect = doc.getElementsByTagName("select");
	//var state = (show==0)? "hidden" : "visible";

	//for (var i = 0; i < AllSelect.length; i++) { 
	//    AllSelect[i].style.visibility = state;
	//}
}

function blockDspCallback(layer, state, reference){
	running = false;
	//alert(layer);
	//alert(state);
	//alert(reference);
	//alert ( disabling ) ;
	if(disabling && !state){
		disabling = false;
		return;
	}

	var block = document.getElementById(layer);
	if(state){
		block.style.display = "block";
		if(nb_prods>0) hideSelect(0);
	}else{
		block.style.display = "none";
		if(nb_prods>0) hideSelect(1);
	}
}

var activeZoom = function()
	{
		document.getElementById('fond_noir').style.display = "block";
		document.body.style.overflow="hidden";
		document.getElementById('popupSendAFriend').style.display = "block";
	}
	
var desactiveZoom = function()
	{

		document.getElementById('fond_noir').style.display = "none";
		document.body.style.overflow="";
		document.getElementById('popupSendAFriend').style.display = "none";
	}

/*------------------------------ LISTING --------------------------*/

function item_over(pID) {
	var obj = document.getElementById("prod_name_"+pID);
	if(!obj.style.display || obj.style.display == "none") obj.style.display = "block";
	else obj.style.display = "none";
}

var scrollPos = 0;

function chagListDsp(currentPage) {
	var items = document.getElementById("prods_list").getElementsByTagName("li");
	if(dspType==1) {
		//document.getElementById('list_layer').style.paddingRight = "50px";
		document.getElementById('list_form').style.backgroundImage = "none";
		document.getElementById('slider_layer').className = "allDsp";
		document.getElementById('prods_list').style.width = "100%";
		document.getElementById('prods_list').style.height = "auto";
		//document.getElementById('prods_list').style.overflow = "auto";
		document.getElementById('prods_list').style.left = "0pt";
		//document.getElementById('mask_list_left').style.display = "none";
		//document.getElementById('mask_list_right').style.display = "none";
		//document.getElementById('Scroll_1').style.display = "none";
		//document.getElementById('slider_layer').style.display = "none";
		//document.getElementById('prods_list_all').style.display = "block";
		//scrollPos = document.getElementById("prods_list").style.left;
		//document.getElementById("prods_list").style.left = "0";
		dspType = 0;
		
		for(var i=0; i<items.length; i++){
			items[i].style.display = "block";
		}
		for(var i=0; i<ScrollBars.length; i++){
			if(ScrollBars[i].Name == "Scroll_1"){
				ScrollBars[i].Disable();
			}
		}
		
	} else {
		//document.getElementById('list_layer').style.paddingRight = "100px";
		//document.getElementById('list_form').style.backgroundImage = "url("+pageURL+"/ximg/slider_back.gif)";
		document.getElementById('slider_layer').className = "";
		document.getElementById('prods_list').style.width = slider_list_width;
		document.getElementById('prods_list').style.height = "350px";
		document.getElementById('prods_list').style.overflow = "visible";
		//document.getElementById('mask_list_left').style.display = "block";
		//document.getElementById('mask_list_right').style.display = "block";
		//document.getElementById('Scroll_1').style.display = "block";
		//document.getElementById('slider_layer').style.display = "block";
		//document.getElementById('prods_list_all').style.display = "none";
		//document.getElementById("prods_list").style.left = scrollPos;
		dspType = 1;

		for(var i=0; i<items.length; i++){
			items[i].style.display = (items[i].getAttribute("page") == currentPage)? "block" : "none" ;
		}
		for(var i=0; i<ScrollBars.length; i++){
			if(ScrollBars[i].Name == "Scroll_1"){
				ScrollBars[i].Enable();
				ScrollBars[i].Resize();
			}
		}
		
	}
}

/*------------------- BLOCK PANIER ---------------------*/

function remove(prod) {
	document.cart_block_form.action.value = "update";
	eval("document.cart_block_form.quantite_"+ prod +".value = 0");
	document.cart_block_form.submit();
}

function update_cart_display() {
	
	/*if(document.getElementById('full_cart_label')) {
	
		var nb_prod = document.getElementById('full_cart_label').innerHTML;
		if(nb_prod.length==1) var tmp_HTML = "<img class='spacer' src='"+pageURL+"ximg/shim.gif'>";
		else var tmp_HTML = "";
		
		for(i=0;i<nb_prod.length;i++) {
			tmp_HTML += "<img src='"+pageURL+"ximg/"+nb_prod.charAt(i)+".png'>";
		}
		
		//tmp_HTML += "<img class='label_art' src='"+pageURL+"ximg/label_articles_"+current_lang+".png'>";
		document.getElementById('full_cart_label').innerHTML = tmp_HTML;
		
	}
	
	alert(nb_prod);
	
	document.getElementById('full_cart_label').innerHTML = "";
	
	if(nb_prod>1) {
		document.getElementById('full_cart_label').innerHTML += "<img src='"+pageURL+"ximg/"+nb_prod.charAt(0)+".png'>"
		document.getElementById('full_cart_label').innerHTML += "<img src='"+pageURL+"ximg/"+nb_prod.charAt(1)+".png'>"
	} else {
		document.getElementById('full_cart_label').innerHTML += "<img class='spacer' src='"+pageURL+"ximg/shim.gif'>"
		document.getElementById('full_cart_label').innerHTML += "<img src='"+pageURL+"ximg/"+nb_prod.charAt(1)+".png'>"
	}*/
	
}

/*------------------------------------ BLOCK LOGIN --------------------------*/

function topMenuOver(menuID,over) {
		
	var tmpImg = document.getElementById('login_toolBar_list').getElementsByTagName('a')[menuID];

	if(over) tmpImg.className = "hover";
	else tmpImg.className = "";
	
}

/*------------------- PANIER --------------------*/

function PanierDelete(prod) {
	document.cart_form.action.value = "update";
	eval("document.cart_form.quantite_"+ prod +".value = 0");
	document.cart_form.submit();
}

/*-------------------- LIVRAISON ---------------------*/

function chgLivMode(radioID,radioNB) {

	var tmp_list = document.getElementById('shipMode_list').getElementsByTagName('li');
	
	for( i=1; i<(1+radioNB); i++) {
		tmp_list[i].className = "";
		document.getElementById('ml_'+i).checked = false;
	}
	
	tmp_list[radioID].className = "odd";
	document.getElementById('ml_'+radioID).checked = true;
}

function checkCGV(action) {

	if((CGV+action) == 0) {
		CGV = 1;
		if(document.all) document.getElementById('cont_btn').style.filter = "alpha(opacity='100')";
		else document.getElementById('cont_btn').style.opacity = "1";
		document.getElementById('cont_btn').href = "javascript:check_form('shipping_infos_form')";
		document.getElementById('cgv_check').checked = true;
	} else {
		CGV = 0;
		if(document.all) document.getElementById('cont_btn').style.filter = "alpha(opacity='20')";
		else document.getElementById('cont_btn').style.opacity = "0.2";
		document.getElementById('cont_btn').href = "javascript: if(!document.getElementById('shipping_infos_form').cgv_check.checked) {alert('#label_accepte_CGV#');void(0);}";
		document.getElementById('cgv_check').checked = false;
	}

}

function check_str(value,msg_error){
	
	if(value == ""){
		alert(msg_error);
		return 1;
	}
	return 0;
	
}

function radioCheck(val) { 

	var tmp_form = document.getElementById('shipping_infos_form');

	for( i=0; i<tmp_form.mode_livraison.length; i++){ 
		if (tmp_form.mode_livraison[i].value==val) tmp_form.mode_livraison[i].checked = true;
	}
	
}

/*----------------------------- PAIEMENT -----------------------------*/

function pmSelect(pmID,pmValue) {
	
	document.getElementById("payment_form").mode_reglement.value = pmValue;
	var tmp_TR_list = document.getElementById('payment_table').getElementsByTagName('tr');
	
	for(i=1;i<tmp_TR_list.length;i++) {
		tmp_TR_list[i].className = "";
		document.getElementById('pm_img'+i).src = document.getElementById('pm_img'+i).src.substring(0,(document.getElementById('pm_img'+i).src.length-5)) + "0.png";
	}
	
	tmp_TR_list[pmID].className = "odd";
	document.getElementById('pm_img'+pmID).src = pageURL + "ximg/ico_paiement_" + pmValue + "_1.png";
		
}

/*------------------------------ COMPTE --------------------------------*/

function menuOver(menuID,over) {
		
	/*var tmpImg = document.getElementById('account_toolBar_list').getElementsByTagName('img')[menuID];

	if(over) tmpImg.src = tmpImg.src.substring(0,(tmpImg.src.length-5)) + "1.png";
	else tmpImg.src = tmpImg.src.substring(0,(tmpImg.src.length-5)) + "0.png";*/

	var tmpImg = document.getElementById('account_toolBar_list').getElementsByTagName('a')[menuID];

	if(over) tmpImg.className = "hover";
	else tmpImg.className = "";
	
}
/*panier ajax*/
function del_lg_panier(pid){
	ColdFusion.navigate(urlprod + 'blocks/panier.cfm?frmaction=delete&xml=1&panier_id=' + pid,'navCartItem' ,callBack,errorhandler);
	//alert(urlprod + 'blocks/panier.cfm?frmaction=delete&xml=1&panier_id=' + pid);
 	delete_ligne(pid);
}
function upd_qte_block(pid){
 	if( document.cart_form["quantite_"+ pid].value == 0) {
 		del_lg_panier(pid);
 	}
 	else PanierUpdateSubmit();
 	if(document.getElementById("panier" + pid) != null){
		document.getElementById("upd_panier" + pid).innerHTML=eval("document.cart_form.quantite_"+ pid + ".value");
		
		nb_prods = parseInt(nb_prods)  + parseInt(document.cart_form["quantite_"+ pid].value) - parseInt(document.cart_form["old_qte_" + pid].value);
		nb_prods_label = nb_prods.toString();
		update_cart_display();
		document.cart_form["old_qte_" + pid].value = document.cart_form["quantite_"+ pid].value;	
	}
}
function delete_ligne(pid){
	//update_cart_display();
	if(document.getElementById("panier" + pid) != null)
		document.getElementById("panier" + pid).parentNode.removeChild(document.getElementById("panier" + pid));
	//alert(nb_prods);
	if(nb_prods==1) {
		if(document.getElementById('empty_cart_layer')) document.getElementById('empty_cart_layer').style.display = "block";
		if(document.getElementById('full_cart_layer')) document.getElementById('full_cart_layer').style.display = "none";
	}
		
	
} 
var callBack = function(){
	//test
} 
var errorhandler = function(errorCode,errorMessage){
    alert("[In Error Handler]" + "\n\n" + "Error Code: " + errorCode + "\n\n" + "Error Message: " + errorMessage);
} 

function dspPopup() {
	jQuery("#popupBack").css({height: jQuery("body").height(), width: jQuery("body").width()}).animate({opacity: 0.5});
	jQuery("#popupProd").css("display","block").animate({opacity: 1});
	jQuery("#popupContent").css("display","block").animate({opacity: 1});
}

function popupClose() {
	jQuery("#popupProd").animate({opacity: 0}, function() {jQuery(this).css("display","none")});
}

function NumberFormat(nStr){
	nStr += '',
	x = nStr.split(','),
	x1 = x[0],
	x2 = x.length > 1 ? ',' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ' ' + '$2');
	}
	var r = x1 + "" + x2;
	return r.replace(".", ",");
}

function BBTool_getPageSize() {
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else {
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {
		if(document.documentElement.clientWidth) windowWidth = document.documentElement.clientWidth; 
		else  windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) {
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	if(yScroll < windowHeight) pageHeight = windowHeight;
	else pageHeight = yScroll;
	if(xScroll < windowWidth) pageWidth = xScroll;		
	else pageWidth = windowWidth;
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
	return arrayPageSize;
};

function BBTool_getPageScroll() {
	var xScroll, yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	} else if (document.body) {
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
	}
	arrayPageScroll = new Array(xScroll,yScroll);
	return arrayPageScroll;
};

jQuery(document).ready(function() {

	var BBTool_pageSizes 			= BBTool_getPageSize();
	var BBTool_pageScroll 			= BBTool_getPageScroll();
	
		BBVars.pageWidth 			= BBTool_pageSizes[0];
		BBVars.pageHeight 			= BBTool_pageSizes[1];
		BBVars.windowWidth 			= BBTool_pageSizes[2];
		BBVars.windowHeight 		= BBTool_pageSizes[3];
		BBVars.pageScrollX 			= BBTool_pageScroll[0];
		BBVars.pageScrollY 			= BBTool_pageScroll[1];
		win							= jQuery(window);
		
	win.bind('resize', function() {
		BBTool_pageSizes		= BBTool_getPageSize(),
		BBVars.pageWidth		= BBTool_pageSizes[0],
		BBVars.pageHeight		= BBTool_pageSizes[1],
		BBVars.windowWidth		= BBTool_pageSizes[2],
		BBVars.windowHeight		= BBTool_pageSizes[3],
		BBVars.dspAreaWidth		= win.width(),
		BBVars.dspAreaHeight	= win.height();
	}).bind("scroll", function() {
		BBTool_pageScroll 		= BBTool_getPageScroll(),
		BBVars.pageScrollX 		= BBTool_pageScroll[0],
		BBVars.pageScrollY 		= BBTool_pageScroll[1];
	}); 
	
	switch(BBVars.currentPageName) {
		case "univers":
			listingInit();
			break;
		case "recherche":
			listingInit();
			break;
		case "fiche":

			var mainProdImg = jQuery("#mainProdImg"),
				mainGallleryList = jQuery("#prodImgLayer ul.galleryList"),
				kitItemsGalllery = jQuery("#kitProdList .kitItemGalLayer"),
				attribsList = jQuery(".attribsList");
				
			/*mainProdImg.bind("load", function() {
				jQuery(this).stop().animate({opacity: 1});
			});*/
			
			jQuery("#cross_list .prodLink img").bind("load", function() {
				jQuery(this).stop().animate({opacity: 1});
			});
			
			jQuery(".galleryList li.thumb").each( function() {
				var item = jQuery(this),
					link = jQuery("a", this),
					imgURL = link.attr("href");
					colorID = link.attr("rel");
					
				link.bind("click", function(e) {
					e.preventDefault();
					//mainProdImg.stop().animate({opacity:0}, function() {
						mainProdImg.attr("src", imgURL);
					//});
				});
				
			/*	if(colorID==BBVars.currentColorID) 
					link.trigger("click");*/
					
			});
			
			attribsList.each( function(i,el) {
			
				var list = jQuery(this),
					listInfo = eval( "(" + jQuery(this).attr("data-prod") + ")" ),
					colorList = jQuery(".color", list),
					sizeList = jQuery(".sizeList", list);
			
				BBCart("getOptions", listInfo);
				
				sizeList.bind("change", function(e) {
					selectedItem = jQuery(":selected", this).attr("id");
					BBCart('setAttrib', selectedItem);
				})
				
				colorList.each( function() {
				
					var color = jQuery(this),
						colorID = color.attr("rel");
					
					color.bind("click", function(e) {
					
						var galleryItems = jQuery("li.thumb", mainGallleryList),
							currentSizeList = jQuery("[data-colorID="+colorID+"]", sizeList),
							nbImg = 0;
						
						galleryItems.each( function() {
						
							var item = jQuery(this),
								itemInf = eval( "(" + item.attr("data-inf") + ")" );
								
							if(itemInf.prodID==listInfo.prodID&&colorID==itemInf.colorID) {
								nbImg++;
								item.css("display", "inline");
								if(nbImg==1) {
									jQuery("a", item).trigger("click");
									//jQuery("#item" + itemInf.prodID).attr("src", jQuery("a img", item).attr("src") );
								}
							} else item.css("display", "none");
							
						});
						
						if(nbImg<=1) galleryItems.css("display", "none" );
						
						colorList.not(color).removeClass("selected");
						color.addClass("selected");
						
						sizeList.parent().css("display", "block");
						sizeList.not("[data-colorID="+colorID+"]").parent().css("display", "none");
						
						BBCart("colorChange", colorID);
						
						if(jQuery("option", sizeList).length-jQuery("option.disabled", sizeList).length==1)
							BBCart("setAttrib", "item" + jQuery("#option_dispo"+colorID).val() );
						else
							BBCart("setAttrib", "item" + jQuery("option", sizeList).eq(1).attr("id") );
						
					});
					
					if(colorID==BBVars.currentColorID)
						color.trigger("click");
					
				})
				
				if(BBVars.currentColorID==0||colorList.length==1||attribsList.length>1)
					colorList.eq(0).trigger("click");

			});

			BBSlider();
			
			kitItemsGalllery.each( function(i,el) {
				var thumbs = jQuery("li.thumb", this);
				thumbs.each( function(j,elt) {
					if(j>0) jQuery(this).appendTo( mainGallleryList );
				})
			});
			
			listingInit("cross_list");
			
				
			break;
	}
	
	/*MagicMagnify_findMagnifiers();

	


	jQuery("#noAttribLayer")
		.css("display", "block")
		.animate({opacity: 0})
*/
});

function addedToCart( nb, total, kit ) {

	if(nb==0) {
		alert("Un incident est survenu veuillez reesayer")
	} else {
		if (nb==1&&!kit) {
			var cartLabel = jQuery("#navCartItem"),
				btn = jQuery("#cartBtn"),
				from = { top: btn.offset().top, left: btn.offset().left },
				to = { top: cartLabel.offset().top, left: cartLabel.offset().left, width: "146px", height: "24px", fontSize: "7px" };
				
			jQuery("<div class='addToCartLayer'>&nbsp;</div>").appendTo("body")
				.css( from )
				.animate( to, function() {
					jQuery("a", cartLabel).html("Panier "+total+" Produit(s)").addClass("active");
					jQuery(this).animate({opacity: 0}, function() {
						jQuery(this).remove();
					});
				});
		} else {
			var contener = jQuery("#kitCompoLayer .kitLayer"),
				list = jQuery("ul", contener),
				label = jQuery("#kitCompoLayer .labelLink"),
				cartLabel = jQuery("#navCartItem"),
				from = { top: label.offset().top, left: label.offset().left },
				to = { top: cartLabel.offset().top, left: cartLabel.offset().left, width: "126px", height: "24px", fontSize: "7px" };
				
			contener.animate({height: 0}, function() {
				list.html("");
			});
			
			label.clone( true ).appendTo("body")
				.css( from )
				.animate( to, function() {
					jQuery("a", cartLabel).html("Panier "+total+" Produit(s)").addClass("active");
					jQuery(this).animate({opacity: 0}, function() {
						jQuery(this).remove();
					});
				});
			
			label.animate({opacity: 0});
			
		}
		
	}

}

function addToKit( prodID ) {
	
	var itemAttribs = jQuery("#attribs" + prodID + " .sizeList:visible option:selected");
	
	if(itemAttribs.val()!="") {
		
		var contener = jQuery("#kitCompoLayer .kitLayer"),
			list = jQuery("ul", contener),
			prod = jQuery(".thumb", jQuery("#item" + prodID).closest(".galleryList") ).clone( true ),
			label = jQuery("#kitCompoLayer .labelLink"),
			nbProd = jQuery("li", list).length+1,
			totalLabel = jQuery("#kitCompoLayer .totalLayer span strong");
			
		if(jQuery("li[oID="+itemAttribs.attr("optionID")+"]", list).length==0) {	
		
			jQuery("img", prod).attr("id", "kitItemImg" + prodID);
			
			prod.attr("pID", itemAttribs.attr("prodID") ),
			prod.attr("ref", itemAttribs.attr("ref") ),
			prod.attr("oID", itemAttribs.attr("optionID") ),
			prod.attr("price", itemAttribs.attr("price") );
			
			prod.append(
				jQuery("<a class='delBtn' href='#'>Taille: <strong>"+itemAttribs.html()+"</strong></a>")
					.bind("click", function(e) {
						e.preventDefault();
						
						var allItems = jQuery("li", list),
							nbItem = allItems.length-1;
							
						if(nbItem==0) {
							label.animate({opacity: 0});
							contener.animate({height: 0});
						}
						
						if(allItems.index(prod.next())-1==0) {
							prod.next().animate( {marginLeft: 20, paddingLeft: 0}, function() { jQuery(this).removeClass("plus"); });
						}
						
						firstItems = [],
						secondItems = [];
						allItems.each( function(i,el) {
							if(i%4==0&&i>allItems.index(prod)) firstItems.push( el );
							if(i%4==1&&i>allItems.index(prod)) secondItems.push( el );
						});
							
						jQuery(firstItems).animate({marginLeft: 7, paddingLeft: 40}, function() { jQuery(this).addClass("plus"); });
						jQuery(secondItems).animate({marginLeft: 20, paddingLeft: 0}, function() { jQuery(this).removeClass("plus"); });
						
						if(nbItem % 4 == 0)
							contener.animate({height: "-=118"});
						
						total = eval(totalLabel.attr("data-total")) - eval(prod.attr("price"));
						totalLabel.html(total+"&euro;");
						totalLabel.attr("data-total", total);
						
						prod.animate({width: 0, marginLeft: 0, paddingLeft: 0}, function() {
							jQuery(this).remove();
							jQuery("span", label).html( nbItem );
						})
					} )
				);
			
			total = eval(totalLabel.attr("data-total")) + eval(itemAttribs.attr("price"));
			totalLabel.html(total+"&euro;");
			totalLabel.attr("data-total", total);
			
			jQuery("span", label).html( nbProd );
			
			if(contener.height()==0) {
				contener.animate({ height: 161 });
				label.css({display: "block", opacity: 0}).animate({opacity: 1});
				list.append( prod.css({width: 0, marginLeft: 0}) );
				prod.animate({width: 62, marginLeft: 20, height: 108});
			} else {
				if(nbProd % 4 != 1) prod.addClass("plus");
				else contener.animate({height: "+=118"});
				list.append( prod.css({width: 0, marginLeft: 0, paddingLeft: 0}) );
				prod.animate({width: 62, height: 108, marginLeft: ( (nbProd % 4 != 1) ? 9 : 20), paddingLeft: ( (nbProd % 4 != 1) ? 40 : 0)});
			}
		}
	
	} else alert(BBLabels.label_errorAttribs);
	
}

function listingInit( target ) {

	layer = jQuery("#" + ((typeof(target)!="undefined") ? target : "prods_list") + " .colorLayer");

	if(layer.length>0) {
	
		layer.each( function(i,el) {
		
			var currentLayer = jQuery(this),
				colors = jQuery("a", currentLayer),
				defaultImg = jQuery( "#" + currentLayer.attr("data-defaultImg") ),
				defaultImgURL = defaultImg.attr("src"),
				prodLinks = jQuery(".prodLink", currentLayer.parent() ),
				prodURL = prodLinks.eq(0).attr("href");
			
			colors.each( function(j,elt) {
				var item = jQuery(this),
					img = item.attr("href"),
					color = item.attr("rev"),
					colorLabel = jQuery("img", item).attr("alt");
				
				item.attr("href", colorLabel);
				item.bind("click", function(e) {
					e.preventDefault();
				}).bind("mouseenter", function() {
					if(defaultImg.data("color")!=color) {
						defaultImg.data("color", color);
						defaultImg.stop().animate({opacity: 0}, "fast", function() {
							defaultImg.attr("src", img);
							defaultImg.parent().attr("rel", color);
							prodLinks.attr("href", prodURL + "?coul_att_detailID=" + color);
						});
					}
				});
				
			});

		});
		
	} 
	
	jQuery("a.prodLink img", target).each( function(i,el) {
		jQuery(this).css({opacity: 0, display: "block"}).bind("load", function() {
			jQuery(this).stop().animate({opacity: 1}, "fast");
		});
		setTimeout( "jQuery('#"+jQuery(this).attr("id")+"').trigger('load')", i*100);
	})
	
}

function showImg( img ) {
		jQuery("#"+img);
	}

function BBTool_closeMsgBox() {
	jQuery('#BBTool_msgBox').fadeOut(function(){
		jQuery('#BBTool_msgBox').remove();
		jQuery('#BBTool_overlay').fadeOut(function(){
			jQuery('#BBTool_overlay').remove();
		});
	});
	jQuery('embed, object, select').css({ 'visibility' : 'visible' });
	void(0);
};

function BBTool_openMsgBox(msgData, isAjax, params) {
	
	if(typeof(msgData)!="undefined"||typeof(msgData)!="undefined") {
		if(msgData!="") {
			if(isAjax) {
				var BBTool_msgLabel			= '<div class="content">'+jQuery("#msgLabel", msgData).html()+'</div>',
					BBTool_msgBody			= jQuery("#msgBody", msgData).html(),
					BBTool_msgData			= jQuery("#msgData", msgData),
					BBTool_msgIsError		= (jQuery(msgData).attr("status")=="0") ? true : false,
					BBTool_msgShow			= (jQuery(msgData).attr("status")=="2"||typeof(jQuery(msgData).attr("status"))=="undefined"||jQuery(msgData).attr("status")==null) ? false : true,
					BBTool_msgCallback		= (jQuery(msgData).attr("callback")=="") ? false : jQuery(msgData).attr("callback");
		
				if(BBTool_msgShow) {
		
					// Creation des parametres de l overlay a partir des settings par defaut
					// Ajout de la largeur et de la hauteur de la page			
					var BBTool_msgBox_overlaySettings = 
								jQuery.extend( {}, {
										width:		BBVars.pageWidth+"px",
										height:		BBVars.pageHeight+"px"
									}, BBSettings.BBPopup.overlaySettings
								);
							//jQuery.extend(BBTool_msgBox_overlaySettings, params.overlay);
		
					// Creation des parametres de la popup a partir des settings par defaut
					// Ajout de la position calculee par rapport aux dimensions de la page
					var BBTool_msgBox_boxSettings = 
								jQuery.extend( {}, {
										top:		BBVars.pageScrollY + (BBVars.windowHeight / 10)+"px",
										left:		BBVars.pageScrollX +"px"
									}, BBSettings.BBPopup.msgBoxSettings
								);
							//jQuery.extend(BBTool_msgBox_boxSettings, params.box);
								
					// Creation des parametres du contenu de la popup a partir des settings par defaut
					// Si non specifie dans les parametres par defaut, ajout de la largeur du contenu en fonction de la largeur de la page
					var BBTool_msgBox_elementsSettings = 
								jQuery.extend( {}, {
									width: 		Math.floor(BBVars.pageWidth/3)+"px",
									height:		"auto"
									}, BBSettings.BBPopup.elementsSettings
								);
						//jQuery.extend(BBTool_msgBox_elementsSettings, params.popup);
						
					if(jQuery('#BBTool_msgBox').length==0) {
						jQuery('<div id="BBTool_overlay">&nbsp;</div><div id="BBTool_msgBox"><div id="BBTool_msgBoxContent"><a id="BBTool_msgBoxCloseBtn" class="btn" href="javascript: BBTool_closeMsgBox();"><span>'+BBLabels.label_popupClose+'</span></a><div id="BBTool_msgBoxHeader">'+BBTool_msgLabel+'</div><div id="BBTool_msgBoxBody">'+BBTool_msgBody+'</div><div id="BBTool_msgBoxFooter"></div></div></div>').appendTo("body");
						//jQuery('#BBTool_msgBox div').css({width: Math.floor(BBVars.pageWidth/3)+"px", display: "block"});
					} else {
						jQuery('#BBTool_msgBoxHeader div.content').animate({opacity: 0}, function() {
							parent = jQuery(this).parent();
							parent.html(BBTool_msgLabel);
							parent.animate({opacity: 1}, function() {
									if(BBVars.isMsIE) jQuery(this).css('filter','none');
							});
						});
						var contentWidth = jQuery("#BBTool_msgBoxBody").width(),
							contentHeight = jQuery("#BBTool_msgBoxBody").height();
						jQuery('#BBTool_msgBoxBody div.content').animate({opacity: 0}, function() {
							var contener = jQuery(this);
							contener.parent().append("<img id='loader' src='"+BBSettings.BBPopup.msgBoxSettings.loaderURL+"'>");
							jQuery("#loader").css({opacity: 0})
									.bind( "load", function() {
										jQuery(this).css({
											position:	"absolute",
											top:		(Math.floor((contentHeight-jQuery(this).height())/2) + jQuery("#BBTool_msgBoxHeader").height()) + "px",
											left:		Math.floor((contentWidth-jQuery(this).width())/2) + "px"
										});
										jQuery(this).animate({opacity: 1}, 200);
									});
							contener.html(BBTool_msgBody);
							contener.animate({opacity: 1}, function() {
									if(BBVars.isMsIE) jQuery(this).css('filter','none');
							});
						});
					}
					
					jQuery('#BBTool_msgBoxContent').css(BBTool_msgBox_elementsSettings);
					
					if(BBTool_msgIsError) jQuery('#BBTool_msgBox').addClass("error");
					else jQuery('#BBTool_msgBox').removeClass("error");
				
					jQuery('embed, object, select').css({ 'visibility' : 'hidden' });
		
					if( typeof(jQuery("#BBTool_overlay").css("position")) == "undefined" || jQuery("#BBTool_overlay").css("position") != "absolute") {
						jQuery('#BBTool_msgBox').css(BBTool_msgBox_boxSettings);
						jQuery('#BBTool_overlay').css(BBTool_msgBox_overlaySettings).css({display: "block", opacity: 0}).animate({opacity: BBSettings.BBPopup.overlaySettings.opacity}, "fast", function() {
							jQuery('#BBTool_msgBox').css({display: "block", opacity: 0}).animate({opacity: 1}, "fast", function() { if(BBVars.isMsIE) jQuery(this).css('filter','none'); } );
						});
						
					}	
					
				}
				
				var dataLayer = jQuery(".msgData", BBTool_msgData);
				
				if(dataLayer.length==0 ) {
					
					if(jQuery.isFunction(eval(BBTool_msgCallback))) 
						eval(BBTool_msgCallback+"(msgData)");
					
				} else {
					//jQuery(".msgData", BBTool_msgData).each( function() { alert(jQuery(this).attr("target")+" "+jQuery(this).html())});
					
					// Affichage du contenu de chaque div contenant des donnees
					dataLayer.each( function() {

						// Recuperation de la cible pour affichage
						// Si aucune cible n est definie, on affiche les donnees dans le corps de la popup
						var layer		= jQuery(this),
							target		= layer.attr("target"),
							HTMLTarget	= jQuery( ( (target=="none") ? "#BBTool_msgBoxBody" : "#"+layer.attr("target") ) ),
							HTML		= layer.html(),
							append		= (layer.attr("append")=="true") ? true : false,
							objWidth	= HTMLTarget.width(),
							objHeight	= HTMLTarget.height(),
							newPopup	= (target=="none") && (HTMLTarget.length==0);
						
						// On rajoute un div container pour pouvoir calculer la hauteur du contenu
						// On check si ce div n existe pas deja pour eviter la duplication du contenu
						
						if(jQuery("div.content", HTMLTarget).length==0) {
							if(!append) HTMLTarget.html("");
							HTMLTarget.append('<div class="content" />');
						}
		
						// On check si le contenu a afficher n est pas deja dans un container dont le contenu a ete charge dynamiquement
						// Si c est le cas, vu que sa hauteur a ete fixee par les fonctions d animation dans l attribut style
						// On force sa hauteur sur "auto" dans l attribut style du container afin que sa hauteur s ajuste apres chargement du nouveau contenu
						
						var parent = HTMLTarget.closest("div.content").parent();
						if( parent.length > 0) parent.attr("style","height: auto !important;");
						
						// On fixe en css les dimensions du conteneur
						if(HTMLTarget.length>0) {
							HTMLTarget.css({overflow: "hidden", width: objWidth, height: objHeight});
					
							// On met a jour le contenu de la cible
							jQuery("div.content", HTMLTarget).animate({opacity: 0}, "fast", function() {

								(append) ? jQuery(this).append(HTML) : jQuery(this).html(HTML);
					
								if(jQuery("img", HTMLTarget).length>0) {
									jQuery("img", HTMLTarget).batchImageLoad({
										loadingCompleteCallback: BBTool_popUpDspContent(HTMLTarget, msgData, BBTool_msgCallback)
									});
								} else BBTool_popUpDspContent(HTMLTarget, msgData, BBTool_msgCallback);
							
							});
							
						} else if(jQuery.isFunction(eval(BBTool_msgCallback))) 
							eval(BBTool_msgCallback+"(msgData)");
					});
					
				}
				
			} else alert(msgData);
			
		}
		
	}
	
	void(0);
	
};

function BBTool_popUpDspContent(HTMLTarget, msgData, BBTool_msgCallback) {

	jQuery("#loader").animate({
			top: Math.floor((jQuery("div.content", HTMLTarget).outerHeight()+jQuery("#BBTool_msgBoxHeader").height())/2) + "px",
			opacity: 0
		}, function() {jQuery(this).remove(); }
	);
	
	var contener = jQuery("div.content", HTMLTarget);
	
	HTMLTarget.animate({
		width: contener.outerWidth(),
		height: contener.outerHeight()
	}, function() {
		contener.animate({opacity: 1}, "fast", function() {
			HTMLTarget.css({overflow: "visible"});
			// Si une callback est definie et qu elle existe, on l appelle en lui passant les donnees retournees par l ajax
			// On attend que la page soit mise a jour avant de manipuler l HTML
			if(jQuery.isFunction(eval(BBTool_msgCallback))) 
				eval(BBTool_msgCallback+"(msgData)");
			if(BBVars.isMsIE) jQuery(this).css('filter','none');
		});
	});
	
}
