var lastMenuItem = false;
var lastSubMenuItem = false;

function openMenuItem(item)
{
	if (item.className.indexOf('selected') > -1) return;
	if (item.className.indexOf('open') > -1) {
		item.className = 'selected menu_item open';
	} else {
		item.className = 'selected menu_item';
	}

	var subMenu = findSubMenu(item);
	if (subMenu) {
		subMenu.style.display = 'block';
	
		item.hover = true;
		subMenu.hover = true;
	
		if (lastMenuItem) closeMenuItem(lastMenuItem);
		lastMenuItem = item;
	
		item.onmouseover = null;
		item.onmouseout = function()
		{
			closeMenuItem(this);
		}
	
		subMenu.onmouseout = function()
		{
			closeMenuItem(this.parentNode);
		}
	}
}

function findSubMenu(menu)
{
	for (var i = 0; i < menu.childNodes.length; i++) {
		if (menu.childNodes[i].className && menu.childNodes[i].className.indexOf('submenu') > -1 && menu.childNodes[i].className.indexOf('subsubmenu') == -1) {
			return menu.childNodes[i];
		}
	}
}

function closeMenuItem(item)
{
	if (item.className.indexOf('open') > -1) {
		item.className = 'menu_item open';
	} else {
		item.className = 'menu_item';
	}

	var subMenu = findSubMenu(item);
	subMenu.style.display = 'none';
	lastMenuItem = false;

	item.onmouseover = function()
	{
		openMenuItem(this);
	}
}

function openSubMenuItem(item)
{
	if (item.className.indexOf('selected') > -1) return;
	if (item.className.indexOf('open') > -1) {
		item.className = 'selected submenu_item open';
	} else {
		item.className = 'selected submenu_item';
	}

	var subMenu = findSubSubMenu(item);
	if (subMenu) {
		item.style.borderRight = 'none';
		subMenu.style.display = 'block';
	
		item.hover = true;
		subMenu.hover = true;
	
		if (lastSubMenuItem) closeSubMenuItem(lastSubMenuItem);
		lastSubMenuItem = item;
	
		item.onmouseover = null;
		item.onmouseout = function()
		{
			closeSubMenuItem(this);
		}
	
		subMenu.onmouseout = function()
		{
			closeSubMenuItem(this.parentNode);
		}
	}
}

function findSubSubMenu(menu)
{
	for (var i = 0; i < menu.childNodes.length; i++) {
		if (menu.childNodes[i].className && menu.childNodes[i].className.indexOf('subsubmenu') > -1) {
			return menu.childNodes[i];
		}
	}
}

function closeSubMenuItem(item)
{
	if (item.className.indexOf('open') > -1) {
		item.className = 'submenu_item open';
	} else {
		item.className = 'submenu_item';
	}

	var subMenu = findSubSubMenu(item);
	item.style.borderRight = '1px solid';
	//subMenu.style.display = 'none';
	lastSubMenuItem = false;

	item.onmouseover = function()
	{
		openSubMenuItem(this);
	}
}