var lastMenuItem = false;
var lastSubMenuItem = false;

function openMenuItem(item)
{
	var item = jQuery(item);
	if (item.hasClass('selected')) return;
	if (item.hasClass('open')) {
		item.addClass('selected');
	} else {
		item.addClass('selected');
		item.addClass('open');
	}

	var subMenu = item.find('.submenu:first');
	subMenu.show();

	if (lastMenuItem) closeMenuItem(lastMenuItem);
	lastMenuItem = item;

	item.unbind('mouseover');
	
	item.mouseout(function() {
		closeMenuItem(item);
	});

	subMenu.mouseout(function() {
		closeMenuItem(item);
	});
}

function closeMenuItem(item)
{
	if (item.hasClass('open')) {
		item.removeClass('open');
	}
	
	if (item.hasClass('selected')) {
		item.removeClass('selected');
	}

	var subMenu = item.find('.submenu:first');
	subMenu.hide();
	lastMenuItem = false;

	item.unbind('mouseout');
	subMenu.unbind('mouseout');
	item.mouseover(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);
	}
}
