var timer;

function AttachMenuObservers()
{
	$$('.menu_item').each(function(mi) 
	{
		mi.observe('mouseover', MenuMouseOver);
		mi.observe('mouseout', MenuMouseOut);
	});
}

function MenuMouseOver(event)
{
	var submenu = this.down('.submenu');
	if (submenu && (!submenu.visible()) && submenu.down('.menu_item'))
	{
		if (submenu.up(0).hasClassName('down'))
		{
			var menuOffsetTop = $('menu').cumulativeOffset().top;
			var menuItemOffsetLeft = submenu.up(0).cumulativeOffset().left;
			if (submenu.up(0).hasClassName('first'))
			{
				if (Prototype.Browser.IE)
				{
					menuItemOffsetLeft -= 2;
				}
				else
				{
					menuItemOffsetLeft -= 1;
				}
			}
			var menuHeight = $('menu').getHeight();
			
			if (Prototype.Browser.IE)
			{
				var submenuLeft = (menuItemOffsetLeft - submenu.getOffsetParent().cumulativeOffset().left) + 'px';
				var submenuTop = (menuOffsetTop + menuHeight - submenu.getOffsetParent().cumulativeOffset().top - 2) + 'px';
			}
			else
			{
				var submenuLeft = menuItemOffsetLeft + 'px'
				var submenuTop = (menuOffsetTop + menuHeight - 1) + 'px';
			}

			submenu.setStyle({ top: submenuTop, left: submenuLeft });

		}

		submenu.show();
	}

}

function MenuMouseOut(event)
{
	
	this.down('.submenu').hide();

	var MenuItemGoneTo = event.relatedTarget.up('div');
	var parentSubMenu = event.target.up('.submenu');
	if (Prototype.Browser.IE)
	{
		if (MenuItemGoneTo.descendantOf(parentSubMenu) || event.target.descendantOf(MenuItemGoneTo))
		{
			event.stopPropagation();
		}
	}
}

document.observe('dom:loaded', AttachMenuObservers);