
var ELEMENT_ICON_TEXT = "icons_text";
var MENU_SPEED = 10;
var MENU_HEIGHT_SPEED = 10;

var onMenu = false;

var srcHeights = new Array();

function showIconText(text)
{
	var element = document.getElementById(ELEMENT_ICON_TEXT);
	
	element.innerHTML = text;
}

function showMenu(name)
{
	if (onMenu) return;
	
	onMenu = true;
	
	// Hide others menus
	for (key in srcHeights)
	{
		var m = document.getElementById(key);
		m.style.display = "none";
		
		if (key != name)
			m.style.height = "0";
	}

	var submenu = document.getElementById(name);
	
	submenu.style.display = "block";

	// Compute parent style
	if (document.defaultView && document.defaultView.getComputedStyle)
	{
		// Normal browsers :)
		var style = document.defaultView.getComputedStyle(submenu, "");
		height = style.getPropertyValue("height");
	}
	else
	{
		// MSIE
		height = submenu.clientHeight;
	}
	
	// store source height
	if (!srcHeights[name])
	{
		srcHeights[name] = height;
		submenu.style.height = 0;
	}
	
	showMenuTimeout(name, parseInt(srcHeights[name]));
}

function showMenuTimeout(elemName, destHeight)
{
	if (!onMenu) return;
	
	var element = document.getElementById(elemName);
	
	var height = parseInt(element.style.height) + MENU_HEIGHT_SPEED;
	
	if (height >= destHeight)
	{
		element.style.height = destHeight + "px";
	}
	else
	{
		element.style.height = height + "px";
	
		setTimeout('showMenuTimeout(\'' + elemName + '\', ' + destHeight + ');', MENU_SPEED);
	}
}

function hideMenu(name)
{
	if (!onMenu) return;
	
	onMenu = false;

	setTimeout('hideMenuTimeout(\'' + name + '\');', 50);
}

function hideMenuTimeout(elemName)
{
	if (onMenu)
		return;
	
	var element = document.getElementById(elemName);
	
	var height = (parseInt(element.style.height) - MENU_HEIGHT_SPEED);
	
	if (height <= 0)
	{
		element.style.display = "none";
		
		element.style.height = 0;
	}
	else
	{
		element.style.height = height + "px";
	
		setTimeout('hideMenuTimeout(\'' + elemName + '\');', MENU_SPEED);
	}
}

