// MenuSelectHandler V1.0
// José Proença
// 2004-09-02

var MenuSelectMenuID = new Array();
var MenuSelectSelItemID = new Array();
var MenuSelectJustSelItemID = new Array();

function MenuSelectFindIdx(menuID)
{
	var bFound = false;
	var n = MenuSelectMenuID.length-1;
	while ((n>=0) && !bFound)
	{
		if (MenuSelectMenuID[n] == menuID)
			bFound = true;
		else
			n--;
	}
	if (bFound)
		return n;
	else
		return null;
}

function MenuSelectGetSelItemID(menuID)
{
	var n = MenuSelectFindIdx(menuID);
	if (n != null)
		return MenuSelectSelItemID[n];
	else
		return null;
}

function MenuSelectSetSelItemID(menuID, value)
{
	var n = MenuSelectFindIdx(menuID);
	if (n == null)
	{
		n = MenuSelectMenuID.length;
		MenuSelectMenuID[n] = menuID;
		MenuSelectJustSelItemID[n] = null;
	}
	MenuSelectSelItemID[n] = value;
	return;
}

function MenuSelectGetJustSelItemID(menuID)
{
	var n = MenuSelectFindIdx(menuID);
	if (n != null)
		return MenuSelectJustSelItemID[n];
	else
		return null;
}

function MenuSelectSetJustSelItemID(menuID, value)
{
	var n = MenuSelectFindIdx(menuID);
	if (n == null)
	{
		n = MenuSelectMenuID.length;
		MenuSelectMenuID[n] = menuID;
		MenuSelectSelItemID[n] = null;
	}
	MenuSelectJustSelItemID[n] = value;
	return;
}


// To be called on onmouseover handler of item with id equal to itemID
function MenuSelectOnMouseOver(menuID, itemID, attrName, attrValue)
{
	if ((MenuSelectGetJustSelItemID(menuID) == null) && (MenuSelectGetSelItemID(menuID) != itemID))
	{
		// highlight the itemID element
		var item = document.getElementById(itemID);
		if (item)
		{
			var attr = item.attributes[attrName];
			if (attr)
			{
				attr.nodeValue = attrValue;
			}
		}
	}
}

// To be called on onmouseout handler of item with id equal to itemID
function MenuSelectOnMouseOut(menuID, itemID, attrName, attrValue)
{
	if ((MenuSelectGetJustSelItemID(menuID) == null) && (MenuSelectGetSelItemID(menuID) != itemID))
	{
		// de-highlight the itemID element
		var item = document.getElementById(itemID);
		if (item)
		{
			var attr = item.attributes[attrName];
			if (attr)
			{
				attr.nodeValue = attrValue;
			}
		}
	}
}

// To be called on onselect/onclick handler of item with id equal to itemID of menu with ID menuID. Returns true if selection was sucessful
function MenuSelectOnSelect(menuID, itemID, attrName, attrValue)
{
		MenuSelectOnMouseOver(menuID, itemID, attrName, attrValue);
		MenuSelectSetJustSelItemID(menuID, itemID);
}

// To be called on the initial menu selected item with id equal to itemID
function MenuSelectSelected(menuID, itemID, attrName, attrValue)
{
	MenuSelectOnMouseOver(menuID, itemID, attrName, attrValue);
	MenuSelectSetSelItemID(menuID, itemID);
}
