function ApplicationMenu(timeoutTime)
{
	this.menuTimeoutTime = timeoutTime;
	this.menuTimeout = null;
	this.currentSubs = new Array();
}

ApplicationMenu.prototype =
{
	resetMenuTimeout: function()
	{
		if (this.menuTimeout != null)
		{
			window.clearTimeout(this.menuTimeout);
		}
		var self = this;
		this.menuTimeout = window.setTimeout(function(){self._hideCurrentSubs(null)}, this.menuTimeoutTime);
	},
	
	showSubMenu: function(anchor, eventObj, submenu, parentSubmenu, offsetX, offsetY)
	{
		this._hideCurrentSubs($(parentSubmenu));
		if(eventObj) { eventObj.cancelBubble = true; }
		var c = $(anchor).positionedOffset();

		$(submenu).style.left  = (c.left + offsetX) + 'px';
		$(submenu).style.top   = (c.top + offsetY) + 'px';
		this.currentSubs[this.currentSubs.length] = $(submenu);
		$(submenu).style.visibility = 'visible';
		$(submenu).style.display = 'block';
		//$(submenu).setOpacity(0.85);
		this.resetMenuTimeout();
	},

	_hideCurrentSubs: function(parentSubmenu)
	{
		var i = this.currentSubs.length - 1;
		var j = i;
		var removing = true;
		while (removing && (j >= 0))
		{
			if (this.currentSubs[j] == parentSubmenu)
			{
				removing = false;
			}
			else
			{
				this.currentSubs[j].style.visibility = 'hidden';
				this.currentSubs[j].style.display = '';
				this.currentSubs.pop();
			}
			j--;
		}
	}
}