/* combine : /javascript/common/libraries/jquery/jquery.overlay.js*/
/*
Options
	
	overlay.create({
		bindTo  //Element you wish to bind the overlay to... 
		behindOverlay [true,false],
		showDelay [int], //	time it takes for the please wait to appear
		closeDelay [int] //	time taken to close overlay from when it is created IF NOT SET A MANUAL CLOSE IS NEEDED
	});

	/***************************** /
	
		When clicking the 'addtobag' button the following below is used to execute the overlay message, however on execution the overlay is shown with 100% transparency
		'showDelay' specifies the time delay to show the overlay, 'closeDelay' is the time it takes to remove it. 
		
		however! a overlay.closeOverlay can be executed to break the operation and close the overlay sooner, possibly before the 'showDelay' is over.
		
		overlay.create('#prodOptionsPanelContainer .boxCurveContainer:eq(0)', {height:310,  'showDelay' : 200, 'closeDelay' : 4000});
	
	/***************************** /

*/
var overlay = {
	options : {  
			opacity : 0.8,
			showDelay : 1000,
			displayProcessing : 3000,
			displayTime : 0
	}, 
	
	delayCloseOverlay : function (delay) {
		$('body').animate({'dummy':'1'}, delay, function () {
				$('body').prop('style','');
				$('.overlay').prop('closeNow', '1');
				overlay.closeOverlay({closeNow : true });
		});
	}, 
	
	closeOverlay : function () {
						
			var removeOverlay = 0;
			var closeNow = 1;
										   
			if($('.overlay').css('opacity') > 0 && $('.overlay').prop('closeNow') == 0)
				var closeNow = 0;
				
			if(closeNow == 0 && $('.overlay').prop('closeNow') == 0) {
				var removeOverlay = (this.options.displayTime + this.options.displayProcessing) - new Date().getTime();
				
				if (removeOverlay < 0)
					removeOverlay = 0;
					
				this.delayCloseOverlay(removeOverlay);
			} else {
				$('.overlay').stop().animate({opacity:0}, function () {
					$(this).remove();
				});
			}

			return removeOverlay;
	},
	
	showPleaseWait : function () {
		if($('.overlay').size() == 1) {
			$('.overlay').fadeTo(1000, this.options.opacity);
			$('.overlay div').fadeIn(1000);
			
			this.options.displayTime = new Date().getTime();
		}
	},	
	setStyles : function (ele, overlayMods) {
			
			if(ele.css('width') && ele.prop('class') =='boxCurveContainer')
				$('.overlay').css({'width': (ele.width() + 6) + 'px', 'margin-left': '-3px'});
			else if(ele.css('width'))
				$('.overlay').css({'width': ele.css('width'), 'margin-left': '0px'});
			if(overlayMods.width)
				$('.overlay').css({'width': overlayMods.width + 'px'});
			if(overlayMods.height)
				$('.overlay').css({'height': overlayMods.height + 'px'});
			if(overlayMods.behindOverlay == true)
			   	$('.overlay').css({'zIndex': '4561'});
			if(overlayMods.cssStyle)
				$('.overlay').css(overlayMods.cssStyle);
	},
	create : function (overlayMods) {
					
			if(!overlayMods)
				var overlayMods = {};
			
			if(!overlayMods.msg) {
				overlayMods.msg = "Please Wait";
			}
			
			if($('.' + overlayMods.trigger).parents('div.displayOverlay').size() == 1){
				var ele = $('.' + overlayMods.trigger).parents('div.displayOverlay');
			} else {
				var ele = $('.' + overlayMods.trigger);
			}
			
		//	$('.' + overlayMods.trigger).removeClass(overlayMods.trigger);
			
			var opacity = this.options.opacity;
			var showDelay = (overlayMods.showDelay ? overlayMods.showDelay : 0);
			
			if(ele.css('position') == 'static' || !ele.css('position'))
				//ele.css('position', 'relative')			
			if(showDelay > 0)
				opacity = 0;
			
			ele.append('<div class="overlay" closeNow="0" style="display:' + (opacity == 0 ? 'none' : 'block') + ';"><div id="mLoadingMessage" class="formOverlayBorder" style="display:' + (opacity == 0 ? 'none' : 'block') + ';"><div class="curveLT"></div><div class="curveRT"></div><div class="overlayCornerBL"></div><div class="overlayCornerBR"></div>' + overlayMods.msg + '</div></div>')
			.find('.overlay').animate({opacity:opacity},function(){$('.overlay').css('display', 'block');})
			
			if($('.formOverlayBorder').size() > 0)
				$('.formOverlayBorder').css({
					'margin-top':'-' + ($('.formOverlayBorder').height()) + 'px'
				});
			
			
			if(overlayMods.showDelay) {
				this.options.showDelay = overlayMods.showDelay;
				setTimeout("overlay.showPleaseWait()", showDelay);
			} else if(this.options.showDelay) {
				this.options.showDelay = 0;
			}
			
			this.setStyles(ele, overlayMods);
			
		   	if(overlayMods.closeDelay)
				overlay.delayCloseOverlay(overlayMods.closeDelay);
			
	}
};

/* complete : /javascript/common/libraries/jquery/jquery.overlay.js*/


