var DynMenu = Class.create();
var gohide = false;
var curmenu = 0;

DynMenu.prototype = {
	initialize: function() {
		var nodeList = document.getElementsByClassName('mainli', "navi");
		var nodes = $A(nodeList);
		var i = 0;
		
		nodes.each( function( node ) {
			var inList = $(node).getElementsByTagName('ul');
			var aList = $(node).getElementsByTagName('a');
			if ( inList.length )
			{
				node.onmouseover = function() { curmenu = aList.item(aList.length-1).id; myDynMenu.showMenu( inList.item(0), aList.item(aList.length-1) ); return false; }
				node.onmouseout = function() { myDynMenu.startTimeout( inList.item(0), aList.item(aList.length-1), aList.item(aList.length-1).id ); return false; }
			}
			i++;
		});
	},
	
	showMenu: function( obj, xa ) {
		gohide = false;
		xa.onmouseover();
		$(obj).style.zIndex = 25;
		if ( $(obj).visible() == false )
			$(obj).show();
	},
	
	startTimeout: function( obj, xa, q ) {
		$(obj).style.zIndex = 20;
		if ( gohide == false || curmenu != q )
		{
			setTimeout( function () { myDynMenu.finishTimeout(obj, xa, q); }, 20 );
			gohide = true;
		}
	},
	
	finishTimeout: function( obj, xa, q ) {
		if ( gohide || curmenu != q )
		{
			if ( $(obj).visible() )
				$(obj).hide();
			xa.onmouseout();
			curmenu = 0;
			gohide = false;
		}
	}
};

function initMenu() { myDynMenu = new DynMenu(); }
Event.observe(window, 'load', initMenu, false);