var activeMenus = new Array();

function registerMenu(menu) {
	var headerName = "header" + menu.charAt(0).toUpperCase() + menu.substring(1, menu.length);
	var headerElement = document.getElementById(headerName);
	if (headerElement) {
		headerElement.onmouseover = showMenu;
		headerElement.onmouseout = hideMenu;
	}
	var containerName = "container" + menu.charAt(0).toUpperCase() + menu.substring(1, menu.length);
	var containerElement = document.getElementById(containerName);
	if (containerElement) {
		containerElement.onmouseout = hideMenu;
		var itemElements = containerElement.getElementsByTagName("a");
		for (var i = 0; i < itemElements.length; i++) {
			itemElements[i].onmouseover = hiliteItem;
			itemElements[i].onmouseout = loliteItem;
		}
	}
}

function hiliteMenuHeader(menu, flag) {
	var imgName = "img" + menu.charAt(0).toUpperCase() + menu.substring(1, menu.length);
	var imgElement = (document.getElementsByName(imgName) ? document.getElementsByName(imgName)[0] : null);
	if (imgElement) {
		if (flag) {
			imgElement.src = "/img/big_arrow_hi.gif";
		} else {
			imgElement.src = "/img/big_arrow.gif";		
		}
	}
}

function showMenuContainer(menu, flag) {
	var containerName = "container" + menu.charAt(0).toUpperCase() + menu.substring(1, menu.length);
	var containerElement = document.getElementById(containerName);
	if (containerElement) {
		if (flag) {
			containerElement.style.display = "block";
			activeMenus[activeMenus.length] = menu;			
		} else {
			containerElement.style.display = "none";
			activeMenus.length--;
		}
	}
}

function showMenu(evt) {
	if (!evt)
		evt = window.event;
	var menu = "";
	var element = (evt.target ? evt.target : evt.srcElement);
	while (element) {
		if ((element.id) && (element.id.indexOf("header") == 0)) {
			menu = element.id.charAt(6).toLowerCase() + element.id.substring(7, element.id.length);			
			break;
		}
		element = element.parentNode;
	}
	hiliteMenuHeader(menu, true);
	showMenuContainer(menu, true);
}

function hideMenu(evt) {
	if (!evt)
		evt = window.event;
	var menu = null;
	var submenu = null;
	var toElement = (evt.relatedTarget ? evt.relatedTarget : evt.toElement);
	while (toElement) {
		if (toElement.id) {
			if (toElement.id.indexOf("header") == 0) {
				menu = toElement.id.charAt(6).toLowerCase() + toElement.id.substring(7, toElement.id.length);
				if (menu != activeMenus[0])
					hiliteMenuHeader(activeMenus[0], false);
				break;
			}
			if (toElement.id.indexOf("container") == 0) {
				menu = toElement.id.charAt(9).toLowerCase() + toElement.id.substring(10, toElement.id.length);
				hiliteMenuHeader(activeMenus[0], false);
				break;
			}
			if (toElement.id.indexOf("submenu") == 0)
				submenu = toElement.id.charAt(7).toLowerCase() + toElement.id.substring(8, toElement.id.length);		
		}
		toElement = toElement.parentNode;
	}
	if (!toElement)
		hiliteMenuHeader(activeMenus[0], false);
	var i = activeMenus.length - 1;
	if ((submenu != null) && (submenu == activeMenus[i]))
		return;
	while ((i >= 0) && (menu != activeMenus[i])) {
		showMenuContainer(activeMenus[i], false);
		i--;
	}		
}

function hiliteItem(evt) {
	if (!evt)
		evt = window.event;
	var element = (evt.target ? evt.target : evt.srcElement);
	var imgElement = null;
	if (element.tagName != "A") {
		element = element.parentNode;
	}
	var imgElement = (element.childNodes ? element.childNodes[0] : null);
	if (imgElement)
		imgElement.src = "/img/arrow_hi.gif";
	if ((element.id) && (element.id.indexOf("submenu") == 0)) {
		var menu = element.id.charAt(7).toLowerCase() + element.id.substring(8, element.id.length);
		showMenuContainer(menu, true);
	}
}

function loliteItem(evt) {
	if (!evt)
		evt = window.event;
	var element = (evt.target ? evt.target : evt.srcElement);
	var toElement = (evt.relatedTarget ? evt.relatedTarget : evt.toElement);	
	if (element.tagName == "A") {
		if ((toElement.tagName == "IMG") && (toElement.parentNode == element))
			return;
	} else {
		if ((toElement.tagName == "A") && (element.parentNode == toElement))
			return;
		element = element.parentNode;
	}
	var imgElement = (element.childNodes ? element.childNodes[0] : null);	
	if (imgElement)
		imgElement.src = "/img/arrow.gif";
}
