function initMenu(){
	var _menu = $('#menu');
	_duration = 500;
	var _box = [];
	var sub_box = [];
	var _list = _menu.children('li:has(div)');
	var sub_list = $('li:has(div)', _list);
	var _ul = $('ul',_menu).each(function(i,_el){ $(_el).width($(_el).width());});
	$('li',_ul).css('width','100%');
	$('a',_ul).css('width','100%');

    $('div',_menu).each(function(i,_el){ $(_el).css('visibility', 'visible');});

	for(var i = 0; i < _list.length; i++){
		_box[i] = _list.eq(i);
		_box[i]._hold = _box[i].children('div')
		_box[i]._drop = _box[i]._hold.children('ul');
		_box[i]._h = _box[i]._drop.outerHeight();
		_box[i]._hold.width(_box[i]._drop.outerWidth());
		_box[i]._drop.css('margin-top', -_box[i]._h);
	}

	for(var i =0; i < sub_list.length; i++){
		sub_box[i] = sub_list.eq(i);
		sub_box[i]._hold = sub_box[i].children('div');
		sub_box[i]._drop = sub_box[i]._hold.children('ul');
		sub_box[i]._w = sub_box[i]._drop.outerWidth();
		sub_box[i]._hold.css('left', sub_box[i].parent().width()).width(0);
		sub_box[i]._drop.css('margin-left', -sub_box[i]._w);
	}
	
	_list.hover(
		function () {
			displayDrop(_list.index(this));
		}, 
		function () {
			hideDrop(_list.index(this));
		}
	);
	
	
	function displayDrop(_ind){
		_box[_ind].css('z-index','2');
		_box[_ind]._hold.animate({height: _box[_ind]._h}, {queue:false, duration: _duration, complete:function(){_SHid(this);}});
		_box[_ind]._drop.animate({marginTop: 0}, {queue:false, duration: _duration});
	}
	function hideDrop(_ind){
		_box[_ind].css('z-index','1');
        if(sub_box[_ind])
            {sub_box[_ind]._hold.css('overflow','hidden');}
		_box[_ind]._hold.animate({height: 0}, {queue:false, duration: _duration, complete:function(){$(this).css('overflow','hidden');}});
		_box[_ind]._drop.animate({marginTop: -_box[_ind]._h}, {queue:false, duration: _duration});
	}
	

	sub_list.hover(
		function () {
			displaySDrop(sub_list.index(this));
		}, 
		function () {
			hideSDrop(sub_list.index(this));
		}
	);
	function displaySDrop(_ind){
		sub_box[_ind]._hold.animate({width: sub_box[_ind]._w}, {queue:false, duration: _duration, complete:function(){_SHid(this);}});
		sub_box[_ind]._drop.animate({marginLeft: 0}, {queue:false, duration: _duration});
	}
	function hideSDrop(_ind){
		sub_box[_ind]._hold.css('overflow','hidden');
		sub_box[_ind]._hold.animate({width: 0}, {queue:false, duration: _duration, complete:function(){$(this).css('overflow','hidden');}});
		sub_box[_ind]._drop.animate({marginLeft: -sub_box[_ind]._w}, {queue:false, duration: _duration});
	}
	
	function _SHid(_elem){
		_elem = $(_elem);
		setTimeout(function(){
			if(_elem.is(':animated')){ _elem.css('overflow','hidden');}
			else{ _elem.css('overflow','visible');}
		}, 2);
	}
	
}
if (window.addEventListener){
	window.addEventListener("load", initMenu, false);
}
else if (window.attachEvent){
	window.attachEvent("onload", initMenu);
}