
function BBTool_closeMsgBox() {
	if(typeof(BBVars.tmpProID)!=undefined) {
		BBVars.currentProdID	= BBVars.tmpProdID;
		BBVars.currentProdEAN	= BBVars.tmpProdEAN;
		BBVars.currentProdSale	= 1;
		BBVars.currentOptionID	= BBVars.tmpOptionID;
		BBVars.currentProdQty	= BBVars.tmpProdQty;
	}
	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>';
				var BBTool_msgBody			= jQuery("#msgBody", msgData).html();
				var BBTool_msgData			= jQuery("#msgData", msgData);
				var BBTool_msgIsError		= (jQuery(msgData).attr("status")=="0") ? true : false;
				var BBTool_msgShow			= (jQuery(msgData).attr("status")=="2"||typeof(jQuery(msgData).attr("status"))=="undefined"||jQuery(msgData).attr("status")==null) ? false : true;
				var BBTool_msgCallback		= (jQuery(msgData).attr("callback")=="") ? false : jQuery(msgData).attr("callback");
				var BBTool_pageScroll		= BBTool_getPageScroll();
		
				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:		BBTool_pageScroll[1] + (BBVars.windowHeight / 10)+"px",
										left:		BBTool_pageScroll[0]+"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");
						//$('#BBTool_msgBox div').css({width: Math.floor(BBVars.pageWidth/3)+"px", display: "block"});
					} else {
						jQuery('#BBTool_msgBoxHeader div.content').animate({opacity: 0}, function() { 
								jQuery(this).parent().html(BBTool_msgLabel);
								jQuery(this).parent().animate({opacity: 1}, function() {
										if(BBVars.isMsIE) jQuery(this).css('filter','none');
								});
							});
						var contentWidth = $("#BBTool_msgBoxBody").width();
						var contentHeight = $("#BBTool_msgBoxBody").height();
						$('#BBTool_msgBoxBody div.content').animate({opacity: 0}, function() {
								jQuery(this).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});
										});
								jQuery(this).html(BBTool_msgBody);
								jQuery(this).animate({opacity: 1}, function() {
										if(BBVars.isMsIE) jQuery(this).css('filter','none');
										jQuery(this).css("height","auto");
								});
							});
					}
					
					$('#BBTool_msgBoxContent').css(BBTool_msgBox_elementsSettings);
					
					if(BBTool_msgIsError) $('#BBTool_msgBox').addClass("error");
					else $('#BBTool_msgBox').removeClass("error");
				
					$('embed, object, select').css({ 'visibility' : 'hidden' });
		
					if( typeof($("#BBTool_overlay").css("position")) == "undefined" || $("#BBTool_overlay").css("position") != "absolute") {
						$('#BBTool_msgBox').css(BBTool_msgBox_boxSettings);
						$('#BBTool_overlay').css(BBTool_msgBox_overlaySettings).fadeIn("normal", function() {
							$('#BBTool_msgBox').fadeIn("normal", function() {});
						});
						
					}	
					
				}
				
					//$(".msgData", BBTool_msgData).each( function() { alert($(this).attr("target")+" "+$(this).html())});
					
					// Affichage du contenu de chaque div contenant des donnees
					$(".msgData", BBTool_msgData).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 HTMLTarget	= ($(this).attr("target")=="none") ? "#BBTool_msgBoxBody" : "#"+$(this).attr("target");
						var HTML		= $(this).html();
						var append		= ($(this).attr("append")=="true") ? true : false;
						var objWidth	= jQuery(HTMLTarget).width()+"px";
						var objHeight	= jQuery(HTMLTarget).height()+"px";
						
						// 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) jQuery(HTMLTarget).html("");
							jQuery(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 = jQuery(HTMLTarget).closest("div.content").parent();
						if( parent.length > 0) parent.attr("style","height: auto !important;");
						
						// On fixe en css les dimensions du conteneur
						jQuery(HTMLTarget).css({
							height:		objHeight,
							width:		objWidth,
							overflow: 	"hidden"
							
						// On cache le contenu de la cible
						}).animate({
							height: 	objHeight,
							width:		objWidth
						}, function() {

							// On met a jour le contenu de la cible
							jQuery("div.content", HTMLTarget).animate({opacity: 0}, function() {

								(append) ? jQuery("div.content", HTMLTarget).append(HTML) : jQuery("div.content", HTMLTarget).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);
							
							});
							
							//jQuery(this).css({overflow: "auto"});
							
						})
						
					});
				
				//alert(jQuery("*[style!='']").length);
				
				
			} 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
	});
	
	jQuery(HTMLTarget).animate({
		width: jQuery("div.content", HTMLTarget).outerWidth()+"px",
		height: jQuery("div.content", HTMLTarget).outerHeight()+"px"
	}, function() {
	
		jQuery("#loader").animate({opacity: 0}, function() {jQuery(this).remove();});
		jQuery("div.content",HTMLTarget).animate({opacity: 1}, function() {
	
			//jQuery(HTMLTarget).css("height","auto");
			jQuery(HTMLTarget).css({height: "auto", width: "auto"});
			
			// 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($.isFunction(eval(BBTool_msgCallback))) 
				eval(BBTool_msgCallback+"(msgData)");
			
			if(BBVars.isMsIE) jQuery(this).css('filter','none');
		});
	});
	
}
