ovMenuItemClass = 'ovMenuItem';
ovMenuItemClassDisabled = 'ovMenuItemDisabled';
ovMenuItemClassOver = 'ovMenuItemOver';

// ovMenu object template
// ********************************************************************************
function ovMenu(menuLayer)
{
	this.menuLayer = menuLayer;
	this.items = new Array();
	this.timer = null;

	this.show = ovMenuShow;
	this.hide = ovMenuHide;
	this.mouseMotion = ovMenuMouseMotion;
	
}


// ovMenu function definitions
// ********************************************************************************
function ovMenuShow(fromLayer, actionID)
{
	if (ovDisplayedMenu)
		ovDisplayedMenu.hide();
	this.actionID = actionID;
	ovDisplayedMenu = this;
	this.timer = setTimeout('ovDisplayedMenu.hide()', 3000);
	// see if there is an item-enabled list
	var i = 0;
	if (arguments.length > 2) {
		for (i; i < arguments[2].length; i++)
			this.items[i][4] = arguments[2][i];
	}
	for (i; i < this.items.length; i++)
		this.items[i][4] = this.items[i][2];
	for (i = 0; i < this.items.length; i++)
		this.items[i][3] = this.items[i][1].replace('[actionID]', actionID)

	var itemText = '<table>';
	for (i in this.items) {
		if (this.items[i][4])	// enabled
			itemText += "<tr><td class='" + ovMenuItemClass + "' id='ovItem_" + i + "' onmouseover=" + '"' + "ovDisplayedMenu.mouseMotion(true); pushClass('ovItem_" + i + "', '" + ovMenuItemClassOver + "')" + '"' + " onmouseout=" + '"' + "ovDisplayedMenu.mouseMotion(false); popClass('ovItem_" + i + "')" + '"' + " onclick=" + '"ovDisplayedMenu.hide();' + this.items[i][3] + ";return false" + '">' + this.items[i][0] + "</td></tr>";
		else
			itemText += "<tr><td class='" + ovMenuItemClassDisabled + "' onmouseover='ovDisplayedMenu.mouseMotion(true)' onmouseout='ovDisplayedMenu.mouseMotion(false)'>" + this.items[i][0] + "</td></tr>";
	}
	itemText += '</table>';

	writeLayer(this.menuLayer, itemText);
	dim = findDim(getElement(this.menuLayer));
	pos = findPos(getElement(fromLayer));
	positionLayer(this.menuLayer, pos[0] - dim[0], pos[1]);
	showLayer(this.menuLayer);

}

function ovMenuHide()
{
	if (this.timer) {
		clearTimeout(this.timer);
		hideLayer(this.menuLayer);
		this.timer = null;
	}
}

function ovMenuMouseMotion(inMenu)
{
	clearTimeout(this.timer);
	if (!inMenu)
		this.timer = setTimeout('ovDisplayedMenu.hide()', 1000);
}