var fadeout = {};
var fadein = {};
function dropdown_show(e){
	var div = this.tagName=='UL' ? this : $('ul', this)[0];
	if(!div) return;
	var uid = div.id;
	if(!div.innerHTML) return;
	if(fadein[uid]) return;
	div.style.zIndex = 10000;//div.zindex;
	if(fadeout[uid]) {
		for(var i in fadeout[uid]['timers']) if(1*fadeout[uid]['timers'][i] > 0) clearInterval(fadeout[uid]['timers'][i]);
		delete fadeout[uid];
	}
	if(this.tagName=='LI'){
		var offset = $(this).offset();
		div.style.zIndex = 200;
		div.style.left = offset['left']+'px';
		div.style.top = offset['top']+this.offsetHeight+'px';
	}
	fadein[uid] = {'timer': null, 'handler': null};
	var myfunc = function(uid, div){ return function(){
		div.style.visibility = 'visible';
		div.style.opacity = 1;
		if (window.ActiveXObject) div.style.filter = 'alpha(opacity=100)';
		delete fadein[uid];
	}; };
	fadein[uid]['handler'] = myfunc(uid, div);
	fadein[uid]['timer'] = setTimeout(fadein[uid]['handler'], 400, 'JavaScript');
	//e.currentTarget.childNodes[1].className = 'hilite';
}
function dropdown_hide(e){
	var div = this.tagName=='UL' ? this : $('ul', this)[0];
	if(!div) return;
	var uid = div.id;
	if(!div.innerHTML) return;
	if(fadeout[uid]) return;
	if(fadein[uid]) { clearInterval(fadein[uid]['timer']); delete fadein[uid]; }
	div.style.zIndex = 10000;//div.zindex;
	fadeout[uid] = {'timers':[], 'handlers':[]};
	var myfunc = function(div, opacity){ return function(){ div.style.opacity = opacity; if (window.ActiveXObject) div.style.filter = 'alpha(opacity='+opacity*100+')'; }; };
	for(var i=1; i<10; i++){
		var idx = fadeout[uid]['handlers'].length;
		fadeout[uid]['handlers'][idx] = myfunc(div, 1-i/10);
		fadeout[uid]['timers'][idx] = setTimeout(fadeout[uid]['handlers'][idx], 30*i+50, 'JavaScript');
	}
	var idx = fadeout[uid]['handlers'].length;
	fadeout[uid]['handlers'][idx] = function(uid, div, e){
		return function(){
			div.style.visibility='hidden';
			delete fadeout[uid];
			e.currentTarget.childNodes[1].className = '';
		};
	}(uid, div, e);
	fadeout[uid]['timers'][idx] = setTimeout(fadeout[uid]['handlers'][idx], 30*(i+1)+50, 'JavaScript');

}
$(document).ready(function(){
	$('#main_menu > li').bind('mouseover', dropdown_show).bind('mouseout',  dropdown_hide);
	$('#main_menu > li > ul').bind('mouseover', dropdown_show).bind('mouseout',  dropdown_hide);
});