//
var currentPageItemId = null;

//	Array containing last hovered menu div and all parent menu divs
var lastHoveredSubMenus = Array();

function setLastHoveredMenuItem (id) {
	var menuItem = $('#menu_item_' + id);
//	$('.hover').attr('class', '');
//	if ($('#menu_item_' + id).attr('class') != 'active') {
//		$('#menu_item_' + id).attr('class', 'hover');
//	}
	
	if (menuItem.length > 0) {
		
		subMenus = getHoverSubMenus(menuItem, id);
		if (subMenus[0] != lastHoveredSubMenus[0]) {
			
			//	Hide all old menuItems
			for (var i = 0; i < lastHoveredSubMenus.length; i++) {
				lastHoveredSubMenus[i].css('display', 'none');
			}
			
			//	Show all new menuItems
			for (var i = 0; i < subMenus.length; i++) {
				subMenus[i].css('display', 'block');
			}
			
			lastHoveredSubMenus = subMenus;
		}
	}
	
}

//	Returns all submenu elements that should be visible when hovering over menuItem with supplied id
function getHoverSubMenus (menuItem, id) {
	var subMenus = Array();
	
	var element = menuItem;
	
	//	See if menuItem has a submenu
	var subMenu = $('#submenu_' + id);
	if (subMenu.length > 0) {
		subMenus.push(subMenu);
		element = subMenu;
	}
	
	var parentSubMenus = element.parents(".submenu_inner");
	subMenus.splice(0, 0, parentSubMenus);
	
	return subMenus;
}

function setOriginalItem () {
	if (currentPageItemId) {
		setLastHoveredMenuItem(currentPageItemId);
	}
}

function isChildOf (parent, child) {
	if(parent != null && child != null) {			
		while(child.parentNode) {
			if((child = child.parentNode) == parent) {
				return true;
			}
		}
	}
	return false;
}

function fixOnMouseOut (element, event) {
	var current_mouse_target = null;
	if (event.toElement) {				
		current_mouse_target = event.toElement;
	} else if (event.relatedTarget) {				
		current_mouse_target = event.relatedTarget;
	}
	if (!isChildOf(element, current_mouse_target) && element != current_mouse_target) {
		setOriginalItem();
	}
}
