/*
 * This script for drop-down menus was written by Mike Burrell.  Please copy and
 * distribute.  Last modified August 16, 2006
 *
 */

var allMenus = new Array();
var selectedMenu = -1;

function clickMenu(menu) {
	for (var i = 0; i < allMenus.length; i++)
		if (menu != i) {
			allMenus[i][0].id = null;
			allMenus[i][1].style.visibility = "hidden";
		}
	if (menu != -1 && selectedMenu != menu) {
		allMenus[menu][0].id = "selectedmenu";
		allMenus[menu][1].style.visibility = "visible";
		selectedMenu = menu;
	} else
		selectedMenu = -1;
}

function generateDropDown(parent, opts) {
	var m = document.createElement("table");
	m.className = "dropdown";
	m.style.visibility = "hidden";
	m.style.position = "absolute";
	for (var i = 0; i < opts.length; i++) {
		if (opts[i].nodeName.toLowerCase() != "li")     continue;
		
		var row = document.createElement("tr");
		m.appendChild(row);
		var e = document.createElement("td");
		row.appendChild(e);
		
		e.appendChild(opts[i].childNodes[0]);
	}
	
	return m;
}

function displayMenus() {
	var agt = navigator.userAgent.toLowerCase();
	if (agt.indexOf("msie") != -1 && agt.indexOf("opera") == -1)
		return;

	var menuRoot = document.getElementById("menu");
	menuRoot.style.display = "none";
	
	menuRoot = menuRoot.childNodes[3];
	var menu = document.createElement("table");
	menu.id = "menugui";
	var menuRow = document.createElement("tr");
	menu.appendChild(menuRow);
	document.body.insertBefore(menu, document.body.childNodes[3]);
	for (var i = 0; i < menuRoot.childNodes.length; i++) {
		var c = menuRoot.childNodes[i];
		if (c.nodeName.toLowerCase() != "li")   continue;
		
		var menuItem = document.createElement("td");
		menuRow.appendChild(menuItem);
		
		if (c.childNodes[1]) {  /* it's a compound menu */
			menuItem.innerHTML = c.childNodes[0].data;
			var dropDown = generateDropDown(menuItem,
				c.childNodes[1].childNodes);
			allMenus[allMenus.length] = [menuItem, dropDown];
			document.body.appendChild(dropDown);
			menuItem.onmouseover = new Function("clickMenu("
				+ (allMenus.length - 1) + ");");
		} else                  /* it's a simple menu item */
			menuItem.appendChild(c.childNodes[0]);
		menuRow.appendChild(menuItem);
	}
	var name = document.createElement("td");
	name.style.width = (menu.offsetWidth - 100 * menuRow.childNodes.length)
		+ "px";	/* FIXME */
	name.style.textAlign = "right";
	name.innerHTML = "&nbsp;";
	menuRow.appendChild(name);
	for (var i = 0; i < allMenus.length; i++) {
		var padding = 6;        /* FIXME */
		
		allMenus[i][1].style.left = (allMenus[i][0].offsetLeft
			+ padding + 3 * (i + 1)) + "px";
		allMenus[i][1].style.top = (allMenus[i][0].offsetTop
			+ allMenus[i][0].offsetHeight + padding + 95) + "px";
			/* FIXME */
	}
	
	document.getElementById("body").onclick = new
		Function("clickMenu(-1);");
}

