/*Built with jQuery 1.2.6 
Original code from http://jqueryfordesigners.com/coda-popup-bubbles/

Adapted to support IE7 - 11.02.2009
*/

$(document).ready(function(){
	$(function () {
	if ($.browser.msie && $.browser.version.substr(0,1)<7) {
	//don't run this for ie6 or 5.5 - it never will finish loading the page
	}else{
		$('.bubbleInfo').each(function () {
			// options
			var distance = 10;
			var time = 250;
			var hideDelay = 150;
			//width and height of bub_bg_xx
			var bub_bg_WandH = 12;
			//css margin for popupInner
			var popupInnerMargin = 12;

			var hideDelayTimer = null;

			// tracker
			var beingShown = false;
			var shown = false;
			
			var trigger = $('.trigger', this);
			var popup = $('.popup', this).css('opacity', 0);
			
			//so we can style for IE in one stylesheet
			if ($.browser.msie) {
				$(popup).addClass("msiePopup");
				//to make sure popupInner extends full width
				$('.popup .popupInner', this).prepend('<img src="/Content/Images/hopUps/clear.gif"> width="100%" height="1" alt="" />');
			}
			
			//create borders of bubble
			var bubWidth = $(popup).width();
			var bubHeight = $(popup).height();
				//subtract margin between the popup and popupInner (x2) and half the width of bub_bg_xx
			bubWidth = bubWidth - ((bub_bg_WandH*2) + (popupInnerMargin/2));
			bubHeight = bubHeight - ((bub_bg_WandH*2) + (popupInnerMargin/2));
			$('.popup .popupInner', this).prepend('<div class="bub_bg bub_bg_n"></div><div class="bub_bg bub_bg_ne"></div><div class="bub_bg bub_bg_e"></div><div class="bub_bg bub_bg_se"></div><div class="bub_bg bub_bg_s"></div><div class="bub_bg bub_bg_sw"></div><div class="bub_bg bub_bg_w"></div><div class="bub_bg bub_bg_nw"></div>');
				//adjust widths for bottom corner 
			$(popup).find("div.bub_bg_s").css("width", bubWidth);
			$(popup).find("div.bub_bg_w").css("height", bubHeight);

			// set the mouseover and mouseout on both element
			$([trigger.get(0), popup.get(0)]).mouseover(function () {
			// stops the hide event if we move from the trigger to the popup element
			if (hideDelayTimer) clearTimeout(hideDelayTimer);

			// don't trigger the animation again if we're being shown, or already visible
			if (beingShown || shown) {
				return;
			} else {
				beingShown = true;

				// reset position of popup box
				popup.css({
				bottom: 5,
				left: 12,
				zIndex: 800000,
				display: 'block' // brings the popup back in to view
				})

				// (we're using chaining on the popup) now animate it's opacity and position
				.animate({
				bottom: '+=' + distance + 'px',
				opacity: 1
				}, time, 'swing', function() {
				// once the animation is complete, set the tracker variables
				beingShown = false;
				shown = true;
				});
			}
			}).mouseout(function () {
			// reset the timer if we get fired again - avoids double animations
			$(popup).css('zIndex', '100');
			if (hideDelayTimer) clearTimeout(hideDelayTimer);
				
			// store the timer so that it can be cleared in the mouseover if required
			hideDelayTimer = setTimeout(function () {
				hideDelayTimer = null;
				popup.animate({
				bottom: '+=' + distance + 'px',
				opacity: 0
				}, time, 'swing', function () {
				// once the animate is complete, set the tracker variables
				shown = false;
				// hide the popup entirely after the effect (opacity alone doesn't do the job)
				popup.css('display', 'none');
				});
			}, hideDelay);
			});
		});//bubbleInfo each
	}
	});
});//document.ready

