$(document).ready(function(){
	var elems = new Array('download', 'burncd', 'livecd', 'install', 'usb', 'network', 'shell');
	for( var i = 0; i < elems.length; i++  ){
		$('#menu_' + elems[i]).each(function () {
	            	var distance = 10;
	            	var time = 250;
	            	var hideDelay = 10;
	
	            	var hideDelayTimer = null;
	
	            	var beingShown = false;
	            	var shown = false;
	            	var trigger = $('.' + elems[i], this);
	            	var info = $('#dpop' + i , this).css('opacity', 0)
	            	var left = $('#dpop' + i , this).css('margin-left');
	            	var top = $('#dpop' + i , this).css('margin-top');
		            $([trigger.get(0), info.get(0)]).mouseover(function () {
		                if (hideDelayTimer) clearTimeout(hideDelayTimer);
		                if (beingShown || shown) {
		                    // don't trigger the animation again
		                    return;
		                } else {
		                    // reset position of info box
		                    beingShown = true;
		
		                    info.css({
		                        top: top,
		                        left: left,
		                        display: 'block'
		                    }).animate({
		                        top: '-=' + distance + 'px',
		                        opacity: 1
		                    }, time, 'swing', function() {
		                        beingShown = false;
		                        shown = true;
		                    });
		                }
		
		                return false;
		            }).mouseout(function () {
		                if (hideDelayTimer) clearTimeout(hideDelayTimer);
		                hideDelayTimer = setTimeout(function () {
		                    hideDelayTimer = null;
		                    info.animate({
		                        top: '-=' + distance + 'px',
		                        opacity: 0
		                    }, time, 'swing', function () {
		                        shown = false;
		                        info.css('display', 'none');
		                    });
		
		                }, hideDelay);
		
		                return false;
		            });
	        });
	}
});