function initBubbles() {
	var divList = $('MENU').getElements('div.bubbleInfo');
	$each(divList, function(bubble) {
		var hideDelayTimer = null;
		
		// tracker
		var beingShown = false;
		var shown = false;
	    
		var popup = bubble.getElement('div.popup');
		popup.setStyle('opacity', 0);
		bubble.addEvents({
			'mouseover': function() {
				if (hideDelayTimer) clearTimeout(hideDelayTimer);
				
				if (beingShown || shown) {
					return;
				} else {
					beingShown = true;
				}
				
				popup.setStyle('display', 'block');
				popup.setStyle('left', 0);
				popup.setStyle('z-index', 999);
				
				var myFx = new Fx.Style(popup, 'opacity').addEvent('onComplete', function(){
					beingShown = false;
					shown = true;
				});
			
				myFx.start(0, 1);
			},'mouseout': function() {
				if (hideDelayTimer) clearTimeout(hideDelayTimer);
				
				hideDelayTimer = setTimeout(function () {
					var myFx = new Fx.Style(popup, 'opacity').addEvent('onComplete', function(){
						shown = false;
						popup.setStyle('z-index', 1);
					});
					myFx.start(1, 0);
				}, 200);
			}
		});
		
	});
}
window.onDomReady(initBubbles);