var timeOut;
var displayMenuIndex = 0;
var fadeDelay = 750;

function displayMenuNew(hoverType, menuId)
{
	if(hoverType == 'hover_out' && one_of_the_parents_was(menuId))
	{
		return false;
	}

	if(!E('smHolder_'+menuId))
	{
		return false;
	}
	
	var menuNormal;
	var menuHover;

	if(menuId == displayMenuIndex)
	{
		// set timer for new submenu if it exists:
		timeOut = setTimeout("hideMenu('"+menuId+"')", fadeDelay);

		displayMenuIndex = menuId;
	}

	else
	{
		// hide old
		if(displayMenuIndex > 0)
		{
			hideMenu(displayMenuIndex, true);
			clearTimeout(timeOut);
		}

		displayMenuIndex = menuId;

		E('smHolder_'+displayMenuIndex).style.display = 'block';

		timeOut = setTimeout("hideMenu('"+displayMenuIndex+"')", fadeDelay);
	}
}

function hideMenu(menuId, hardReset)
{
	if(!hardReset && one_of_the_parents_was(menuId))
	{
		return false;
	}

	E('smHolder_'+menuId).style.display = 'none';

	displayMenuIndex = 0;
}

function one_of_the_parents_was(menuIndex)
{
	if(currentTarget.id == 'smHolder_'+menuIndex || currentTarget.id == 'mmHolder_'+menuIndex)
	{
		timeOut = setTimeout("hideMenu('"+menuIndex+"')", fadeDelay);

		return true;
	}
	else
	{
		// loop parents node:
		tempTarget = currentTarget.parentNode;

		while(tempTarget)
		{
			if(tempTarget.id == 'smHolder_'+menuIndex || tempTarget.id == 'mmHolder_'+menuIndex)
			{
				timeOut = setTimeout("hideMenu('"+menuIndex+"')", fadeDelay);

				return true
				break;
			}
			else
			{
				tempTarget = tempTarget.parentNode;
			}
		}
	}

	return false;
}
