function init()
{
	// assign classes & events to the menu elements
	for (var i = 1; getElement("menu" + i) != null; i++) {
		var menu = getElement("menu" + i);
		var submenu = getElement("sub" + i);
		var alt = getElement("alt" + i)
		if (menu) {
			if (menu.childNodes) {
				var text = menu.childNodes[0];
				var nobr = document.createElement("nobr");
				nobr.innerHTML = text.data;
				nobr.onmouseover = mouseover;
				menu.replaceChild(nobr, text);
			}			
			menu.className = "menu";
			menu.onmouseover = mouseover;
			menu.onmouseout = mouseout;
			if (ns4) menu.captureEvents(Event.MOUSEMOVE);
		}
		if (submenu) { 
			submenu.className = "submenu";
			submenu.onmouseout = mouseout;
			submenu.innerHTML = "<nobr>" + submenu.innerHTML + "</nobr>";
		}
		if (alt) {
			alt.className = "alt";
		}
	}
	
	// set the links to all the same width and give them events
	if (submenu.childNodes)
	  for (var i = 1; getElement("menu" + i) != null; i++) {
		show(i);
		var submenu = getElement("sub" + i).childNodes[0]; // allow for the nobr tag we added
		var max = 0;
		for(var j = 0,cNode; j < submenu.childNodes.length; cNode=submenu.childNodes[j++]) {
			if (cNode && cNode.tagName == "A") {
				if (cNode.offsetWidth > max) max = cNode.offsetWidth;
			}
		}
		for(var j = 0,cNode; j < submenu.childNodes.length; cNode=submenu.childNodes[j++]) {
			if (cNode && cNode.tagName == "A") {
				cNode.style.width = (max+10) + "px";
				cNode.onmouseover = mouseover;
			}
		}
	}
	out();
}

function getElement(e) { return eval('document.getElementById("' + e + '")'); }

var timerID = null;
function mouseover(e)
{
	if (ns6) {menu=e.target;}
	if (ie4) {menu=event.srcElement;}
	//if (ie5) {mouse_x=event.x+mouse_frame.document.body.scrollLeft; mouse_y=event.y+mouse_frame.document.body.scrollTop;}
	
	if (menu.nodeName == "#text") menu = menu.parentNode;
	if (menu.nodeName == "NOBR") menu = menu.parentNode;
	if (menu.nodeName == "TD") {
		if ((menu.id != null) && (menu.id.substring(0, 4) == "menu")) {
			var i = menu.id.substr(4);
			if (i != lastmenu)
				show(i);
		}
	} else if (menu.nodeName == "A") {
		
	}
	if (timerID) {
		clearTimeout(timerID);
		timerID = null;
	}
}

function mouseout(e)
{
	if (ns6) {menu=e.target;}
	if (ie4) {menu=event.srcElement;}
	//if (ie5) {mouse_x=event.x+mouse_frame.document.body.scrollLeft; mouse_y=event.y+mouse_frame.document.body.scrollTop;}
	
	if (!timerID) timerID = setTimeout(out, 200);
}

var lastmenu = null;
function show(i) {
	out();
	var menu = getElement("menu" + i);
	var submenu = getElement("sub" + i);
	var alt = getElement("alt" + i)

	if (menu)
		menu.className = "menuselected";
	if (alt)
		window.status = alt.innerHTML;
	else
		window.status = "";
	var o_x = 0, o_y = 0;
	for (var obj = menu; obj != null; obj = obj.offsetParent) {
		o_x += obj.offsetLeft;
		o_y += obj.offsetTop;
	}
	if (submenu) {
		submenu.style.display = "block";
		x = o_x + menu.offsetWidth / 2 - submenu.offsetWidth / 2;
		if (x < 0) x = 0;
		y = o_y + menu.offsetHeight + 2;
		submenu.style.left = x + "px";
		submenu.style.top = y + "px";
	}

	lastmenu = i;
}

function out() {
	if (lastmenu != null) {
		var i = lastmenu;
		var menu = getElement("menu" + i);
		var submenu = getElement("sub" + i);
		var alt = getElement("alt" + i)
		menu.className = "menu";
		submenu.style.display = "";
		window.status = "";
		lastmenu = null;
	}
}

function show_props(obj, objName) {
	var result = ""
	for (var i in obj) {
		if (i != 'parentRule') {
			result += objName + "." + i + " = " + obj[i] + "\n"
		}
	}
	return result
}

// Decide browser version
var ns4 = (document.layers)? true:false;
var ns6 = (document.getElementById)? true:false;
var ie4 = (document.all)? true:false;
var ie5 = false;

// Microsoft Stupidity Check(tm).
if (ie4) {
	if (navigator.userAgent.indexOf('MSIE 5')>0) {
		ie5 = true;
	}
	if (ns6) {
		ns6 = false;
	}
}
