jQuery.noConflict(); 
		var $j = jQuery;	
		$j(function($) {
		  $('.bubbleInfo').each(function () {
			// options
			var distance = 5;
			var time = 250;
			var hideDelay = 500;
			var z = 10;
			
			var toppos = $('.popup', this).css('top');
			var leftpos = $('.popup', this).css('left');
		
			var hideDelayTimer = null;
		
			// fwmouseoutcode
			var fwMouseOut;
			
			// tracker
			var beingShown = false;
			var shown = false;
			
			var trigger = $('.trigger', this);
			var popup = $('.popup', this).css('opacity', 0);
		
			// 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
				$('.bubbleInfo').css('z-index', z);
				popup.parent().css('z-index', 99);
				popup.css({
				  'top': toppos,
				  'left': leftpos,
				  'display': 'block' // brings the popup back in to view
				})
		
				// (we're using chaining on the popup) now animate it's opacity and position
// 				.animate({
// 				  top: '-=' + distance + 'px',
// 				  opacity: 1
// 				}, time, function() {
// 				  // once the animation is complete, set the tracker variables
// 				  beingShown = false;
// 				  shown = true;
// 				});
				
				.animate({opacity: 1}, { queue: false, duration: 125, easing: 'swing'})
				.animate({top: '-=' + distance + 'px'}, {queue:false, duration: time, easing: 'easeOutBounce', complete: function() {
				  // once the animation is complete, set the tracker variables
				  beingShown = false;
				  shown = true;
				  }
				});
				
				//store Freeway rollover mouse out code to use later
				fwMouseOut = trigger.children('a').attr("onmouseout");
				trigger.children('a').removeAttr("onmouseout");
				
			  }
			}).mouseout(function () {
			  // reset the timer if we get fired again - avoids double animations
			  if (hideDelayTimer) clearTimeout(hideDelayTimer);
			  
			  // store the timer so that it can be cleared in the mouseover if required
			  hideDelayTimer = setTimeout(function () {
				hideDelayTimer = null;
				jQuery.globalEval(fwMouseOut);
				trigger.children('a').attr("onmouseout", fwMouseOut);
				popup.parent().css('z-index', z);
				popup.animate({
				  top: '-=' + 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);
			})
		  });
		});
