// class divu se submenu
var subMenuClass = 'subMenu';
// element rozbaleneho menu
var activeMenuElm = null;
// timeout rozbaleni [ms]
var closeTimeout = 500;
// nas timeout
var closeTimeoutControl;

// najde v elementu prislusny div se submenu
function getSubMenu(menuElement)
{
	// najdeme submenu
	divs = menuElement.getElementsByTagName('div');
	subMenu = false;
	for (var i = 0; i < divs.length; i++)
	{
		if (cls.has(divs[i],subMenuClass))
		{
			// nasli jsme
			subMenu = divs[i];
			break;
		}
	}
	return subMenu;
}

// otevre - ukaze menu
function openMenu(menuElmId)
{
	if (menuElement = document.getElementById(menuElmId))
	{
		// mame otevrene submenu?
		if (activeMenuElm)
		{
			// schovame ho
			hideMenu();
		}
		if (subMenu = getSubMenu(menuElement))
		{
			// mame nase submenu? ukazem ho
			subMenu.style.display = 'block';
			activeMenuElm = subMenu;
		} else {
			return false;
		}
	} else {
		// no menu
		return false;
	}
}

// schova menu - nastavi timeout
function closeMenu()
{
	if (activeMenuElm)
	{
		closeTimeoutControl = setTimeout('hideMenu();',closeTimeout);
	} else {
		return false;
	}
}

// zabrani schovani menu
function preventMenuClose()
{
	clearTimeout(closeTimeoutControl);
}

// schova menu
function hideMenu()
{
	clearTimeout(closeTimeoutControl);
	if (activeMenuElm)
	{
		activeMenuElm.style.display = 'none';
		activeMenuElm = null;
	}
}