function JSMenu()
{
	this.menuItems = new Array();
	this.currentSubMenu = null;

	this.addMenuItem = function(element)
	{
		var menuItem = new JSMenuItem(element, this);
		this.menuItems.push(menuItem);
	}

	var menus = document.getElementById('header_bottom');

	for (var i = 0; i < menus.childNodes.length; i++)
	{
		if (menus.childNodes[i].tagName == 'UL' &&
			menus.childNodes[i].className == 'menu_top')
		{
			for (var j = 0; j <= menus.childNodes[i].childNodes.length - 1; j++)
			{
				if (menus.childNodes[i].childNodes[j].tagName == 'LI')
					this.addMenuItem(menus.childNodes[i].childNodes[j]);
			}
		}
	}
}

function JSMenuItem(element, menu)
{
	this.menu = menu;
	this.element = element;
	this.subMenu = null;
	this.timer = null;
	this.className = element.className;

	var self = this;

	this.element.onmouseover = function()
	{
		self.cancelHide();

		if (self.menu.currentSubMenu != null)
			self.menu.currentSubMenu.hideNow();

		self.element.className = self.className + ' hover';
		self.menu.currentSubMenu = self;

		if (self.subMenu)
			self.subMenu.style.display = 'block';
	}

	this.element.onmouseout = function()
	{
		self.hide();
	}

	this.hide = function()
	{
		if (self.subMenu)
			this.timer = setTimeout(this.hideNow, 500);
		else
			this.hideNow();
	}

	this.hideNow = function()
	{
		self.element.className = self.className;

		if (self.subMenu)
			self.subMenu.style.display = 'none';
	}

	this.cancelHide = function()
	{
		if (this.timer != null)
		{
			clearTimeout(this.timer);
			this.timer = null;
		}
	}

	this.detectSubMenu = function()
	{
		return this.element.getElementsByTagName('UL')[0];
	}

	this.subMenu = this.detectSubMenu();
}

new JSMenu();
