/* Sniffer: */
IE  = (document.all);
NS6 = (document.getElementById && !document.all);
NS  = (navigator.appName == "Netscape" && navigator.appVersion.charAt(0) == "4");

menu = new Array();
drawQueue = new Array();
horizontal = 1;
vertical = 0;

submenuClass = {// Properties:
		name:0,
		id:0,
		drawn:0,
		items:0,
		summonedBy:0,
		// Functions
		addItem:0 };

function submenu(name) {
	for (i in submenuClass)
		this[i] = null;
	this.name = name.toLowerCase();
	this.id = menu.length;
	this.item = new Array();
	this.addItem = item;
}

itemClass = {	// Properties:
		name:0,
		url:0,
		target:0,
		child:0,
		parent:0
		// Functions:
		};

function itemConstructor() {
	for (i in itemClass)
		this[i] = null;
}

function item(name,url,target,child) {
	tmpItem = new itemConstructor();
	tmpItem.name   = name;
	tmpItem.url    = (url) ? url : "#";
	tmpItem.target = target;
	tmpItem.child  = child
	this.item[this.item.length] = tmpItem;
}

function url(address) {
	return address;
}

function keepOpen(id) {
	if (id<=0) return;
	document.getElementById("submenu"+id).style.visibility= "visible";
	keepOpen(menu[id].summonedBy);
}

function writeHeader(menuObj) {
	if (IE || NS6) {
		document.write("<div id=\"submenu" + menuObj.id + "\" class=\"submenu\" onmouseover=\"keepOpen("+menuObj.id+")\" onmouseout=\"closeAllMenus()\">");
		document.write("<table class=\"submenu\">");
	} 
}

function submenuOffset(type,id) {
	submenuObj = document.getElementById('submenu'+id);
	if (!type) 
		return submenuObj.offsetLeft;
	else
		return submenuObj.offsetTop;
}

function makeMouseOver(child,id,leftOffset,topOffset) {
	if (child && (child!=id))
	 	return "onmouseover=\"opensubMenu("+id+","+child+",this,"+leftOffset+","+topOffset+")\"";
	else
		return "";
}

function writeItem(menuObj, itemObj) {
	mouseOverStr = makeMouseOver(findAddress(itemObj.child), menuObj.id,
		 "submenuOffset(0,"+menuObj.id+")+this.offsetWidth", "submenuOffset(1,"+menuObj.id+")");
//	mouseClick = "onClick=\"open('"+itemObj.url+"','_top')\"";
	mouseClick = "onClick=\"parent.location='"+itemObj.url+"'\"";
//	alert(mouseClick);
	document.write("<tr class=\"submenu\"><td "+mouseOverStr+" "+mouseClick+" class=\"submenu\">");
	innards = "<a href=\""+itemObj.url+"\" class=\"menuButton\">"+itemObj.name+"</a>";
//	if (itemObj.child && (menuObj.id!=itemObj.child))
//		innards += "<img src=\"next.gif\">";
	document.write(innards);
	document.write("</td></tr>");
}

function writeFooter(menuObj) {
	document.write("</table></div>");
}

function drawLayer(menuIndex) {
	if ((menuIndex==null) || (menuIndex>=menu.length) || (menu[menuIndex].drawn)) return;
	menuObj = menu[menuIndex];
	if (menuIndex) 
		writeHeader(menuObj);
	for (itemIndex=0; itemIndex<menuObj.item.length; itemIndex++) {
		itemObj = menuObj.item[itemIndex];
		if (menuIndex) 
			writeItem(menuObj,itemObj);
		itemChild = findAddress(itemObj.child)
		if (itemChild < menu.length) {
			drawQueue[drawQueue.length] = itemChild;
		}
	}
	if (menuIndex) 
		writeFooter();
	menuObj.drawn = 1;
	for (queueIndex=0; queueIndex<drawQueue.length; queueIndex++) {
		nextMenu = drawQueue[queueIndex];
		drawQueue[queueIndex] = null;
		drawLayer(nextMenu);
	}
	drawQueue = new Array();
}

function findAddress(c) {
	switch (typeof(c)) {
		case "number": 
			if (c<menu.length)
				return c;
			break;
		case "string":
			for (m=0; m < menu.length; m++)
				if (menu[m].name == c.toLowerCase())
					return m;
			break;
		default:
	}
	return;
}

function drawMain() {
	document.write("<table class=\"mainmenu\" id=\"tab\"><tr>");
	for (itemIndex=0; itemIndex<menu[0].item.length; itemIndex++) {
		mouseOverStr = makeMouseOver(findAddress(menu[0].item[itemIndex].child),0,
			"document.getElementById('tab').offsetLeft","document.getElementById('tab').offsetTop+this.offsetHeight");
//		mouseClick = "onClick=\"parent.open('"+menu[0].item[itemIndex].url+"')\"";
		mouseClick = "onClick=\"parent.location='"+menu[0].item[itemIndex].url+"'\"";
		mouseOut = "onmouseout=\"closeAllMenus()\"";
		document.write("<td class=\"borderCell_B\"></td><td "+ mouseOverStr +" "+mouseClick+" class=\"mButton\" "+mouseOut+" id=good"+itemIndex+">	\
			<a href=\""+menu[0].item[itemIndex].url+"\" class=\"menuButton\">" + menu[0].item[itemIndex].name + "</a></td>");
	}
	document.write("</tr></table>");
}

function closeAllMenus() {
	for (menuIndex=1; menuIndex<menu.length; menuIndex++) 
		document.getElementById("submenu"+menuIndex).style.visibility= "hidden";
}

function inChain(c,p) {
	for (m = menu[p].summonedBy; m>0; m=menu[m].summonedBy)
		if (c==m)
			return 1;
	return 0;

}

function opensubMenu(parent,child,obj,leftOffset,topOffset) {
	if (!inChain(child,parent)) {
		menu[child].summonedBy = parent;
		subMenu = document.getElementById("submenu"+child).style;
		subMenu.visibility = "visible";
		var objx = objy = 0;
		if (!parent) {
			for (; obj.offsetParent; obj = obj.offsetParent) {
				objx += obj.offsetLeft;
				objy += obj.offsetTop;
			}
		} else {
			objx = obj.offsetLeft;
			objy = obj.offsetTop;
			if (NS6)
				objy--;
		}
		subMenu.left = objx + leftOffset - 1;
		subMenu.top = objy + topOffset;
	}
}

