var currentTarget;
var timeOut;

var fadeDelay = 5000;

var displayMenuIndex;

function setTarget(event)
{
	var e = event || window.event;

	currentTarget = e.target || e.srcElement;
}

addListener(document, 'mousemove', setTarget, false);

function displayMenu(targetHolder, menuIndex, hoverType, targetId)
{
	//alert(menuIndex);
	var i = 0;

	var menuItems = getElementsByClassName($(targetHolder), 'div', 'menuItem');

	for(i = 0; i < menuItems.length; i++)
	{
		if(hoverType == "hover_in" && menuItems[i].id == targetId+"hover_"+menuIndex)
		{
			menuItems[i - 1].style.display = "none";

			menuItems[i].style.display = "block";
			
			if($('globalBox_'+menuIndex))
			{
				if(displayMenuIndex)
				{
					//alert(displayMenuIndex);
					hideMenu(displayMenuIndex, true);

					clearTimeout(timeOut);
				}

				displayMenuIndex = menuIndex;

				timeOut = setTimeout("hideMenu('"+menuIndex+"')", fadeDelay);

				$('globalBox_'+menuIndex).style.display = 'block';
				$('submenu_'+menuIndex).style.display = 'block';
			}
			else if(displayMenuIndex)
			{
				//alert(displayMenuIndex);
				hideMenu(displayMenuIndex, true);

				clearTimeout(timeOut);
			}
		}
		else if(menuItems[i].id == targetId+"normal_"+Math.floor(i / 2))
		{
			menuItems[i].style.display = "block";
		}
		else
		{
			if(hoverType == "hover_out")
			{
				//$('globalBox_'+menuIndex).style.display = 'none';
				//$('submenu_'+menuIndex).style.display = 'none';
			}

			menuItems[i].style.display = "none";
		}
	}
}

function hideMenu(menuIndex, hardReset)
{
	if(hardReset)
	{
		$('globalBox_'+menuIndex).style.display = 'none';
		$('submenu_'+menuIndex).style.display = 'none';

		displayMenuIndex = 0;
	}
	else
	{
		if(one_of_the_parents_was(menuIndex))
		{
			return false;
		}
		else
		{
			$('globalBox_'+menuIndex).style.display = 'none';
			$('submenu_'+menuIndex).style.display = 'none';
		}
	}
}

function one_of_the_parents_was(menuIndex)
{
	if(currentTarget.id == 'globalBox_'+menuIndex || currentTarget.id == 'submenu_'+menuIndex || currentTarget.id == 'mainMenuholder_'+menuIndex)
	{
		timeOut = setTimeout("hideMenu('"+menuIndex+"')", fadeDelay);

		return true;
	}
	else
	{
		// loop parents node:
		tempTarget = currentTarget.parentNode;

		while(tempTarget)
		{
			if(tempTarget.id == 'globalBox_'+menuIndex || tempTarget.id == 'submenu_'+menuIndex || tempTarget.id == 'mainMenuholder_'+menuIndex)
			{
				timeOut = setTimeout("hideMenu('"+menuIndex+"')", fadeDelay);

				return true
				break;
			}
			else
			{
				tempTarget = tempTarget.parentNode;
			}
		}
	}

	return false;
}

function displayMenuSub(targetHolder, menuIndex, hoverType, targetId)
{
	//alert(menuIndex);
	var i = 0;

	var menuItems = getElementsByClassName($(targetHolder), 'div', 'menuItemSub');

	for(i = 0; i < menuItems.length; i++)
	{
		if(hoverType == "hover_in" && menuItems[i].id == targetId+"hover_"+menuIndex)
		{
			menuItems[i - 1].style.display = "none";

			menuItems[i].style.display = "block";
		}
		else if(menuItems[i].id == targetId+"normal_"+Math.floor(i / 2))
		{
			menuItems[i].style.display = "block";
		}
		else
		{
			menuItems[i].style.display = "none";
		}
	}
}
