var g_menus = new Object();
var FF = document.getElementById&&!document.all;
var IE = document.all;
var SF = navigator.vendor;

var sliderIntervalId = 0;
var sliderHeight = 0;
var sliding = false;
var slideSpeed = 5;
var maxHeight = 26;

function menu_showPopup(parentId, event, _submenuObj, parentObj, position)
{
	var _menu = g_menus["menu" + parentId];
	var submenuObj = _submenuObj;
	
	if (!_menu)
	{
		g_menus["menu" + parentId] = new Object();
		
		_menu = g_menus["menu" + parentId];
	}
	
	if (_menu.doExit)
	{
		window.clearTimeout(_menu.timerHandle);
		//window.clearTimeout(_menu.sliderUp);
		_menu.doExit = false;
	}

	// hide current active submenu
	if (!submenuObj || _menu.currentSubmenu != submenuObj)
		menu_exitPopup(parentId);
	
	// show selected submenu
	if (submenuObj && _menu.currentSubmenu != submenuObj)
	{
		if (position == "bottom")
		{
			submenuObj.style.display = "";
			
			var y = getEventY(event);
			var dim = getScreenDimensions();

			y = getScreenPosY(parentObj) + parentObj.offsetHeight;
		
			if (document.all)
			{
				y -= dim.scrollTop;
			}
		
			if (IE)
			{
				y -= dim.scrollTop;
			}
		
			//var height = submenuObj.offsetHeight;
		
			//submenuObj.style.top =  (y-getScreenPosY(submenuObj.offsetParent)) + "px";
			
			
			var menuDiv = document.getElementById('menuDiv');
			var menuDivH = getScreenPosY(menuDiv) + menuDiv.offsetHeight;
			//submenuObj.style.top = menuDivH + 'px'; //(y-getScreenPosY(submenuObj.offsetParent)) + "px";

			if (parentId == 'menu_-2')
				submenuObj.style.top =  menuDivH + 'px';
			else
				submenuObj.style.top = (getScreenPosY(parentObj)-getScreenPosY(submenuObj.offsetParent) + 26) + "px";

			
		
			submenuObj.style.left = "0px";
		}
		
		_menu.highlighted = parentObj;
	}

	_menu.currentSubmenu = submenuObj;
	
/*	if(!_menu.sliding && submenuObj != null)
	{
		_menu.sliding = true;
		var callback = function() { SlideDownRun(parentId); }
		_menu.sliderDown = window.setTimeout(callback, 10);
	}*/
}

function menu_exitPopup(parentId)
{
	var _menu = g_menus["menu" + parentId];
	if (!_menu)	
		return;
	
	if (_menu.currentSubmenu)
	{
		// exit the submenu's submenu
		menu_exitPopup(_menu.currentSubmenu.id);

		/*if(!_menu.sliding)
		{
			_menu.sliding = true;
			var callback = function() { SlideUpRun(parentId); }
			_menu.sliderUp = window.setTimeout(callback, 10);
		}*/
		
		_menu.currentSubmenu.style.display = "none";
		if (_menu.highlighted.id.search("alphamenu") == -1)
			_menu.highlighted.className = "normal";
	}
	_menu.currentSubmenu = null;
	_menu.highlighted = null;
}

function menu_exitPopup2(parentId)
{
	var _menu = g_menus["menu" + parentId];
	if (!_menu || !_menu.doExit)	
		return;

	menu_exitPopup(parentId);
}

function menu_exitPopupDelayed(parentId, event)
{
	var _menu = g_menus["menu" + parentId];
	if (!_menu)
		return;
		
	if (!_menu.doExit)
	{
		_menu.doExit = true;
		var callback = function() { menu_exitPopup2(parentId); }
		_menu.timerHandle = window.setTimeout(callback, 1000);
	}
}

function menu_cancelExit(parentId, event)
{
	var _menu = g_menus["menu" + parentId];
	if (!_menu)	
		return;

	_menu.doExit = false;
	window.clearTimeout(_menu.timerHandle);
	//window.clearTimeout(_menu.sliderUp);
}

function menu_mouseOver(obj, parent, id, event)
{
	obj.className="hover";
	
	menu_showPopup(parent, event, document.getElementById(id), obj, "bottom"); 
}

function menu_mouseOut(obj, parent, id, event)
{
	var _menu = g_menus["menu" + parent];
	if (!_menu || !_menu.currentSubmenu)
		obj.className="normal";
}

function SlideUpRun(parent)
{
	var _menu = g_menus["menu" + parent];
	var slider = _menu.currentSubmenu;
	if (slider)
	{
		if(sliderHeight <= 0)
		{
			_menu.sliding = false;
			sliderHeight = 0;
			slider.style.height = '0px';
			slider.style.display = "none";
			_menu.currentSubmenu = null;
			_menu.highlighted = null;
		}
		else
		{
			sliderHeight -= slideSpeed;
			if(sliderHeight < 0)
				sliderHeight = 0;
			slider.style.height = sliderHeight + 'px';
			var callback = function() { SlideUpRun(parent); }
			_menu.sliderUp = window.setTimeout(callback, 10);
		}
	}
}

function SlideDownRun(parent)
{
	var _menu = g_menus["menu" + parent];
	var slider = _menu.currentSubmenu;
	if (slider)
	{
		if(sliderHeight >= maxHeight)
		{
			_menu.sliding = false;
			sliderHeight = maxHeight;
			slider.style.height = maxHeight + 'px';
		}
		else
		{
			sliderHeight += slideSpeed;
			if(sliderHeight > maxHeight)
				sliderHeight = maxHeight;
			slider.style.height = sliderHeight + 'px';
			var callback = function() { SlideDownRun(parent); }
			_menu.sliderDown = window.setTimeout(callback, 10);
		}
	}
}
