//	Tab Menu Handling routines

//	Copyright (c) gaelITech 2009
//	www.gaelitech.ie
//	Modifications:
//	Date		Who				What

//	Values of oElement.giType Flags:
var	gi_Tab_IsSelected = 8;	// TRUE - MenuItem is selected

var	gi_Tab_Session = "";			// Session suffix to be added to hrefs

//	Add to an Element's saved class, hiding platform differences
function	gi_Tab_Menu_AddClass(oElement, sClass)
{
	if	(oElement.className)
		oElement.className = oElement.giSaveClass + " " + sClass;
	else
		oElement.setAttribute("class", oElement.giSaveClass + " " + sClass);
}

//	React to a MouseOver event on a Menu Item
function	gi_Tab_MenuItem_MouseOver(oEvent)
{
	var	oElement = gi_Common_GetElement(oEvent);
	
	gi_Tab_Menu_AddClass(oElement, "gi_tab_menu_item_hover");
}

//	React to a MouseOut event on a Menu Item
function	gi_Tab_MenuItem_MouseOut(oEvent)
{
	var	oElement = gi_Common_GetElement(oEvent);

	if	(oElement.giType & gi_Tab_IsSelected)
		gi_Tab_Menu_AddClass(oElement, "");
	else
		gi_Tab_Menu_AddClass(oElement, "gi_tab_menu_item_normal");

}

//	React to a MouseClick event on a Menu Item
function	gi_Tab_MenuItem_Click(oEvent)
{
	var	oElement = gi_Common_GetElement(oEvent);

	window.location.href = oElement.giHRef;
}

//	Initialise a Menu Item
function	gi_Tab_InitMenuItem(oItem)
{
	var	th = oItem.title.split("|");
	
	oItem.giType = 0;
	if	(th.length != 2)
		oItem.title = oItem.innerHTML;
	else
		oItem.title = th[1];

	if	(th[0].indexOf("?") >= 0)
		oItem.giHRef = th[0] + "&" + gi_Tab_Session;
	else
		oItem.giHRef = th[0] + "?" + gi_Tab_Session;
	
	oItem.giSaveClass = gi_Common_GetClass(oItem);
	
	if	(oItem.giSaveClass.indexOf("gi_tab_menu_item_selected") != -1)
		oItem.giType += gi_Tab_IsSelected;
	else
		gi_Tab_Menu_AddClass(oItem, "gi_tab_menu_item_normal");
		
	oItem.style.visibility = "visible";

	oItem.onmouseover = gi_Tab_MenuItem_MouseOver;
	oItem.onmouseout = gi_Tab_MenuItem_MouseOut; 
	oItem.onclick = gi_Tab_MenuItem_Click; 
}

//	Initialise a Menu
function	gi_Tab_InitMenu(oItem, nMenu)
{
	oItem.giSaveClass = gi_Common_GetClass(oItem);
	oItem.giMenu = nMenu;
	oItem.giType = 0;
}

//	Initialise all Menus - called after <body> is loaded
function	gi_Tab_InitMenus()
{
	var	oItem;
	var	i;
	var	sItemName;
	var	sAnchor;
	
	sItemName = "gi_session_anchor";
	oItem = document.getElementById(sItemName);	
	if	(oItem != null)
	{
		if	(oItem.href.indexOf("?") >= 0)
		{
			sAnchor = oItem.href.split("?");
			gi_Tab_Session = sAnchor[1];
		}
	}

	for	(i = 1; ; i++)
	{
		sItemName = "gi_tab_menu_" + i;
		oItem = document.getElementById(sItemName);	
		if	(oItem == null)
			break;
		gi_Tab_InitMenu(oItem, i);
	}

	for	(i = 1; ; i++)
	{
		sItemName = "gi_tab_menu_item_" + i;
		oItem = document.getElementById(sItemName);	
		if	(oItem == null)
			break;
		gi_Tab_InitMenuItem(oItem);
	}
}

gi_Handler_Add("onload", "gi_Tab_InitMenus();");

