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;
};

function BBTool_check( type, inputValue) {
	if(type.indexOf("?")!=-1) {
		var rule = type.slice(1,type.length);
			type = "rule";
	}
	switch(type) {
		case "rule":
			var regExp = /\[([^\]]+)\]/g;
			return !eval(rule.replace(regExp, "$('#$1').attr('value')"));
			break;
		case "alpha":
		  	//return !inputValue.match("/^[a-zA-Z-' éèêïîëôûüàâöäèòìóñÑ]+$/");
			return !inputValue.match(/^[a-zA-Z-' ]+$/);
			break;
		case "mail":
			var invalidChars	= '\/\'\\ ";:?!()[]\{\}^|';
			var atPos			= inputValue.indexOf('@',0);
			var suffix			= inputValue.substring(inputValue.lastIndexOf('.')+1);
			for (i=0; i<invalidChars.length; i++) {
	   			if (inputValue.indexOf(invalidChars.charAt(i),0) > -1) return true
			}
			for (i=0; i<inputValue.length; i++) {
	   			if (inputValue.charCodeAt(i)>127) return true;
	   		}
			if (atPos <= 0 || inputValue.indexOf('@', atPos + 1) > - 1 || inputValue.indexOf('.', atPos) == -1 || inputValue.indexOf('@.',0) != -1 || inputValue.indexOf('.@',0) != -1 || inputValue.indexOf('..',0) != -1) 
				return true;
			if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' && suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum')
				return true;
			return false;
			break;
		case "phone":
			var inputValue = inputValue.replace(/ /g, "");
				inputValue = inputValue.replace(/\./g, "");
				inputValue = inputValue.replace(/\-/g, "");
			if (BBVars.currentCountry == 'fr' && inputValue.length != 10) return true;
		  	return !inputValue.match(/^[0-9]+$/);
			break;
		case "zip":
			if(BBVars.currentCountry == 'fr') {
				if (inputValue.length != 5 || !inputValue.match(/^[0-9]+$/)) return true;
			}
			return false;
		case "pass":
			/*if(BBVars.currentCountry == 'fr') {
				if (inputValue.length != 5 || !inputValue.match(/^[0-9]+$/)) return true;
			}*/
			return false;
		case "date":
			var inputValue = inputValue.replace(/ /g, "");
				inputValue = inputValue.replace(/\./g, "");
				inputValue = inputValue.replace(/\-/g, "");
				inputValue = inputValue.replace(/\//g, "");
				inputValue = inputValue.replace(/\\/g, "");
			if(BBVars.currentCountry == 'fr') {
				if (inputValue.length != 8 || !inputValue.match(/^[0-9]+$/)) return true;
			}
			return false;
		case "cBox":
			return !inputValue;
			break;
		default:
			break;
	}
	return false;
}

function BBTool_processInput(input, inputs) {

	var regExp = /\[([^\]]+)\]/g;
	var inputProcess = $(input).attr("process");
	var inputValue = eval(inputProcess.replace(regExp, "$('#$1').attr('value')"));
	$(input).attr("value",inputValue);

}

function BBTool_checkForm(inputs, haltOnError) {

	var inputError = false;
	var inputErrorString = "";
	
	$(inputs).each( function() {
	
		var inputName		= ( $(this).attr("label")=="" || $(this).attr("label")==null ) ? $("label[for='"+$(this).attr("id")+"']").html() : $(this).attr("label");
		var inputCheck		= ( $(this).attr("check")=="" || $(this).attr("check")==null ) ? "" : $(this).attr("check");
		var inputMessage	= ( $(this).attr("msg")=="" || $(this).attr("msg")==null ) ? false : $(this).attr("msg");
		var inputProcess	= ( $(this).attr("process")=="" || $(this).attr("process")==null ) ? false : true;
		//var inputType		= $(this).attr("type");
		var inputRequired	= ( $(this).attr("required")=="true" ) ? true : false;
		if(inputProcess) BBTool_processInput($(this));
		var inputValue		= ( $(this).attr("type")=="checkbox" ) ? $(this).attr("checked") : $(this).attr("value");
		
		//alert(inputCheck);
		
		//if(inputType!="hidden") {
			if(inputRequired && inputValue=="") {
				//inputErrorString += "<p>" + BBLabels.label_errorEmptyField + inputName + "</p>";
				if(inputMessage) inputErrorString += inputMessage + "\n";
				else inputErrorString += BBLabels.label_errorFieldValue + inputName + "\n";
				if(haltOnError) return true;
				else inputError = true;
			} else if(inputValue!="") {
				$.each( inputCheck.split(","), function( index, checkOp) {
					if(BBTool_check(checkOp, inputValue)) {
						if(inputMessage) inputErrorString += inputMessage + "\n";
						else inputErrorString += BBLabels.label_errorFieldValue + inputName + "\n";
						if(haltOnError) return true;
						else inputError = true;
					}
				});
			}
		//}
		
		/*if(BBTool_check(inputCheck, inputValue)) {
			if(haltOnError) return true;
			inputError = true;
			inputErrorString += "<p>" + BBLabels.label_inputError + inputName + "</p>";
		}*/
		
	});
	
	if(inputError) BBTool_openMsgBox(inputErrorString, false);
	
	return inputError;
}

function BBTool_formPost( formID, isAjax) {

	var BBTool_form				= $("#"+formID);
	var BBTool_formAction		= BBTool_form.attr("action");
	var BBTool_formCheck		= (BBTool_form.attr("check")=="true") ? true : false;
	var BBTool_haltOnError		= (BBTool_form.attr("haltOnError")=="true") ? true : false;
	var BBTool_checkFunction	= (BBTool_form.attr("checkFunction")=="") ? "BBTool_checkForm" : BBTool_form.attr("checkFunction");
	var BBTool_extCheck			= (BBTool_form.attr("checkFunction")=="") ? false : true;
	//var BBTool_submitFunction	= (BBTool_form.attr("submitFunction")=="") ? "BBTool_submitForm" : BBTool_form.attr("submitFunction");
	var BBTool_formInputs		= $(":input",BBTool_form);
	//var BBTool_formPostInputs	= $(":input[type!='hidden']",BBTool_form);
	//var BBTool_formInputs		= $("input[check!=''][type!='hidden']",BBTool_form);
	var BBTool_formError		= false;
	
	/*if($.isFunction(eval(BBTool_submitFunction))) 
		eval(BBTool_checkFunction+"(BBTool_formInputs)");*/
	
	if(BBTool_formCheck) {
		if($.isFunction(eval(BBTool_checkFunction)) && BBTool_extCheck) 
			BBTool_formError = eval(BBTool_checkFunction+"(BBTool_formInputs, BBTool_haltOnError)");
		BBTool_formError |= BBTool_checkForm(BBTool_formInputs, BBTool_haltOnError);
	}

	if(!BBTool_formError) {
		if(isAjax) {
			$.post(
				BBTool_formAction,
				BBTool_form.serialize(),
				function(data) {BBTool_openMsgBox(data, true)},
				"html"
			);
		} else BBTool_form.submit();
	}
}

function BBGallery_swapItem(itemID) {

	$("#BBGallery_list li").each( function(i) {
		$(this).removeClass().css("position", "relative");
		(i==itemID) ? $(this).addClass("BBTool_galMainImg").css("position", "absolute") : $(this).addClass("BBTool_galImg");
	});

}

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;
	}
	$('#BBTool_msgBox').BBFadeOut("fast", function(){
		$('#BBTool_msgBox').remove();
		$('#BBTool_overlay').BBFadeOut("fast", function(){
			$('#BBTool_overlay').remove();
		});
	});
	$('embed, object, select').css({ 'visibility' : 'visible' });
	void(0);
};

function BBTool_openMsgBox(msgData, isAjax, isHTML) {
	
	if(isAjax) {
		var BBTool_msgLabel			= $("#msgLabel", msgData).html();
		var BBTool_msgBody			= $("#msgBody", msgData).html();
		var BBTool_msgData			= $("#msgData", msgData);
		var BBTool_msgIsError		= ($(msgData).attr("status")==0) ? true : false;
		var BBTool_msgShow			= ($(msgData).attr("status")!=2) ? true : false;
		var BBTool_msgCallback		= ($(msgData).attr("callback")=="") ? false : $(msgData).attr("callback");
		var BBTool_pageScroll		= BBTool_getPageScroll();
		
		if(BBTool_msgShow) {
			var BBTool_msgBox_overlaySettings = {
				position:				"absolute",
				top:					0,
				left:					0,
				zIndex:					9999,
				opacity:				BBSettings.popupOpacity,
				backgroundColor:		BBSettings.popupBackgroundColor,
				width:					BBVars.pageWidth+"px",
				height:					BBVars.pageHeight+"px",
				display:				"none"
			};
			var BBTool_msgBox_boxSettings = {
				textAlign:				"center",
				width:					"100%",
				position:				"absolute",
				top:					BBTool_pageScroll[1] + (BBVars.windowHeight / 10)+"px",
				left:					BBTool_pageScroll[0]+"px",
				zIndex:					10000,
				display:				"none"
			};
			var BBTool_msgBox_elementsSettings = {
				textAlign: 				"left",
				margin: 				"0 auto",
				width: 					BBVars.pageWidth/3+"px",
				backgroundColor: 		"#fff",
				padding:				"5px"
			};
		
			if($('#BBTool_msgBox').length==0) {
				$('<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_msgBoxContent').css(BBTool_msgBox_elementsSettings);
			} else {
				$('#BBTool_msgBoxHeader').html(BBTool_msgLabel);
				$('#BBTool_msgBoxBody').html(BBTool_msgBody);
			}
			
			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);
				$('#BBTool_overlay').css(BBTool_msgBox_overlaySettings).BBFadeIn("normal", function() {
					$('#BBTool_msgBox').BBFadeIn();
				});
				
			}	
			
		}
		
		$(".msgData", BBTool_msgData).each( function() {
			var dataTarget = $(this).attr("target");
			var HTMLTo = (dataTarget=="none") ? "#BBTool_msgBoxBody" : "#"+dataTarget;
			var append = ($(this).attr("append")=="true") ? true : false;
			if(append) $(this).appendTo(HTMLTo);
			else {
				var targetHTML = $(this).html();
				if( typeof($(HTMLTo).css("display"))!="undefined" && $(HTMLTo).css("display")!="none") {
					$(HTMLTo).BBFadeOut("normal",function(){
						$(HTMLTo).html(targetHTML);
					});
				} else $(HTMLTo).html(targetHTML);
				$(HTMLTo).BBFadeIn();
			}
		});

		if($.isFunction(eval(BBTool_msgCallback))) eval(BBTool_msgCallback+"(msgData)");
		
		//if($.isFunction((itemID&&callBack)||(itemID||callBack))) ((itemID&&callBack)||(itemID||callBack)).call();
		/*$(window).resize(function() {
			var arrPageSizes = ___getPageSize();
			$('#jquery-overlay').css({
				width:		arrPageSizes[0],
				height:		arrPageSizes[1]
			});
			var arrPageScroll = ___getPageScroll();
			$('#jquery-lightbox').css({
				top:	arrPageScroll[1] + (arrPageSizes[3] / 10),
				left:	arrPageScroll[0]
			});
		});*/
		
	} else alert(msgData);
	
	void(0);
	
};

function BBTool_menu(menuID, action) {

	switch(action) {
		case "show":
			/*if(BBSettings.defaultEffect=="fade") $("#"+menuID).BBFadeIn(BBSettings.defaultEffectSpeed).css("display","block");
			else $("#"+menuID).show("normal").css("display","block");*/
			$("#"+menuID).show();
			$("#top_menu_btn_01").css("background-position","0 -42px");
			break;
		case "hide":
			/*if(BBSettings.defaultEffect=="fade") $("#"+menuID).BBFadeOut(BBSettings.defaultEffectSpeed).css("display","none");
			else $("#"+menuID).hide("normal").css("display","none");*/
			$("#top_menu_btn_01").css("background-position","0 0");
			$("#"+menuID).hide();
			break;
		case "init":
			break;
		default:
			break;
	
	}
	
}

function BBTool_flash() {
	$(".flashLayer").each( function() {
		var flashID			 	= ($(this).attr("flashID")==undefined) ? "flash" : $(this).attr("flashID");
		var flashSrc			= ($(this).attr("flashSrc")==undefined) ? false : $(this).attr("flashSrc");
		var flashWMode			= ($(this).attr("flashWMode")==undefined) ? "transparent" : $(this).attr("flashWMode");
		var flashBG				= ($(this).attr("flashBG")==undefined) ? "transparent" : $(this).attr("flashBG");
		var flashScriptAccess	= ($(this).attr("flashScriptAccess")==undefined) ? "always" : $(this).attr("flashScriptAccess");
		var flashParams			= ($(this).attr("flashParams")==undefined) ? "" : eval("({"+$(this).attr("flashParams")+"})");
		if($(this).attr("flashWidth")==undefined) {
			var flashWidth = ($(this).width()>0) ? $(this).width() : "auto";
		} else var flashWidth = $(this).attr("flashWidth");
		if($(this).attr("flashHeight")==undefined) {
			var flashHeight = ($(this).height()>0) ? $(this).height() : "auto";
		} else var flashHeight = $(this).attr("flashHeight");
		
		if(flashSrc) 
			$(this).flash({
				id:					flashID,
				src:				flashSrc,
				width:				flashWidth,
				height:				flashHeight,
				wmode:				flashWMode,
				allowScriptAccess:	flashScriptAccess,
				flashvars:			flashParams
			});
	});
}

function BBSendMail( action, objID ) {

	switch(action) {
		case "send":
			var data = "";
			if (BBVars.dataSendContentID != "") 
				data = $("#"+BBVars.dataSendContentID).html();
			else if($(".dataSend:last").length == 1)
				data = $(".dataSend:last").html();
			$("#msgData").attr("value", data);
			BBTool_formPost(objID, true);
			break;
		case "msg":
			$.get(
				BBVars.pagesURL + "ajax/envoyer.cfm"
				+ "?formAction=prompt"
				+ "&msgDataType=msg",
				function(data) {BBTool_openMsgBox(data, true);}
			);
			break;
		case "data":
			$.get(
				BBVars.pagesURL + "ajax/envoyer.cfm"
				+ "?formAction=prompt"
				+ "&msgDataType=data",
				function(data) {BBTool_openMsgBox(data, true);}
			);
			break;
		case "url":
			$.get(
				BBVars.pagesURL + "ajax/envoyer.cfm"
				+ "?formAction=prompt"
				+ "&msgDataType=url",
				function(data) {BBTool_openMsgBox(data, true);}
			);
			break;
		case "prod":
			$.get(
				BBVars.pagesURL + "ajax/envoyer.cfm"
				+ "?formAction=prompt"
				+ "&msgDataType=prod"
				+ "&msgShowData=true"
				+ "&msgDataProdID=" + BBVars.currentProdID
				+ "&msgDataColorID=" + BBVars.currentColorID,
				function(data) {BBTool_openMsgBox(data, true);}
			);
			break;
		default:
			$.get(
				BBVars.pagesURL + "ajax/envoyer.cfm?formAction=prompt",
				function(data) {BBTool_openMsgBox(data, true);}
			);
			break;		
	}
	

}

function viewDefil(videoSrc) {
	
	var dsp = ($("#view_defil").css("display")=="none"||$("#view_defil").css("display")==undefined) ? "block" : "none";
	$("#view_defil").css("display",dsp);
	var dsp = ($("#view_sil").css("display")=="none"||$("#view_sil").css("display")==undefined) ? "block" : "none";
	$("#view_sil").css("display", dsp);
		
	$('#video').html("");
	$('#video').flash({
		src: BBVars.pagesURL + 'ximg/flash/video.swf',
		width: 180,
		height: 320,
		wmode: 'transparent',
		allowScriptAccess: 'always',
		flashvars: {
			flvwidth: 180,
			flvheight: 320,
			flvname: videoSrc
		}
	});
}

(function($) {
	$.fn.BBFadeIn = function(speed, callback) {
		$(this).fadeIn(speed, function() {
			if(!$.support.opacity)
				$(this).get(0).style.removeAttribute('filter');
			if(callback != undefined)
				callback();
		});
	};
	$.fn.BBFadeOut = function(speed, callback) {
		$(this).fadeOut(speed, function() {
			if(!$.support.opacity)
				$(this).get(0).style.removeAttribute('filter');
			if(callback != undefined)
				callback();
		});
	};
	$.fn.BBFadeTo = function(speed,to,callback) {
		return this.animate({opacity: to}, speed, function() {
			if (to == 1 && jQuery.browser.msie)
				this.style.removeAttribute('filter');
			if (jQuery.isFunction(callback))
				callback();
		});
	};
})(jQuery);