document.onclick = MainClickHandler;

var is_nav6up, is_ie5up, is_opera5up;
var pos = 0;
var shownSubMenu = null;
var subMenuVisible = false;
checkBrowser();

function MainMenuOn(e) {
	if (is_ie5up) {
		var srcElement = window.event.srcElement;
		window.event.cancelBubble = true;
	}
	else {
		var srcElement = e.target;
		e.stopPropagation();
	}
	
	while (srcElement.nodeName != "TD")
		srcElement = srcElement.parentNode;

	srcElement.style.backgroundColor = "#FFFFFF";

	if ((srcElement.id != "") || (srcElement.className == "subMenuCell")) {
		subMenuVisible = true;
		if (srcElement.className != "subMenuCell")
			ShowSubMenu(srcElement);
	}
}

function MainMenuOff(e) {
	if (is_ie5up) {
		var srcElement = window.event.srcElement;
		window.event.cancelBubble = true;
	}
	else {
		var srcElement = e.target;
		e.stopPropagation();
	}

	while (srcElement.nodeName != "TD")
		srcElement = srcElement.parentNode;

	var classNameSuffix = srcElement.className.substring(8, srcElement.className.length);

	if (classNameSuffix == "ActiveCell")
		srcElement.style.backgroundColor = "#0C0C5C";
	else if (classNameSuffix == "LeafCell")
		srcElement.style.backgroundColor = "#426AC8";
	else /* For className == mainMenuCell and className == subMenuCell */
		srcElement.style.backgroundColor = "#D4D4D4";

	if (((srcElement.id != "") || (srcElement.className == "subMenuCell")) && (shownSubMenu != null)) {
		subMenuVisible = false;
		setTimeout("HideSubMenu()", 500);
	}
}

function ShowSubMenu(srcElement) {
	var newSubMenu = document.getElementById("subMenu" + srcElement.id.substring(8, srcElement.id.length));
	if ((shownSubMenu != null) && (newSubMenu != shownSubMenu)) {
		subMenuVisible = false;
		HideSubMenu();
		subMenuVisible = true;
	}
	shownSubMenu = newSubMenu;
	if (is_ie5up)
		shownSubMenu.style.display = "block";
	else
		shownSubMenu.style.display = "table";
	shownSubMenu.style.left = getElementLeft(document.getElementById("topPanel")) + 124;
	shownSubMenu.style.top = getElementTop(srcElement) + 3;
}

function HideSubMenu() {
	if ((subMenuVisible == false) && (shownSubMenu != null)) {
		shownSubMenu.style.display = "none";
		shownSubMenu = null;
	}
}

function MainClickHandler(e) {
	if (is_ie5up)
		var srcElement = event.srcElement;
	else
		var srcElement = e.target;

	while (srcElement.nodeType != 1 /*srcElement.ELEMENT_NODE*/)
		srcElement = srcElement.parentNode;

	if ((srcElement.className == "mainMenuCell") || (srcElement.className == "mainMenuActiveCell") || (srcElement.className == "mainMenuLeafCell") || (srcElement.className == "subMenuCell"))
		document.location.href = srcElement.firstChild.href;
}

function checkBrowser() {
	// convert all characters to lowercase to simplify testing
	var agt = navigator.userAgent.toLowerCase();

	// Note: On IE5, these return 4, so use is_ie5up to detect IE5.
	var is_major = parseInt(navigator.appVersion);
	var is_minor = parseFloat(navigator.appVersion);

	// Note: Opera and WebTV spoof Navigator.  We do strict client detection.
	// If you want to allow spoofing, take out the tests for opera and webtv.
	var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
				&& (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
				&& (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
	is_nav6up = (is_nav && (is_major >= 5));

	var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
	var is_ie3    = (is_ie && (is_major < 4));
	var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
	var is_ie4up  = (is_ie && (is_major >= 4));
	var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
	var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
	is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
	var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
	var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
	var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);

	var is_opera = (agt.indexOf("opera") != -1);
	var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
	var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
	var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
	var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
	is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
}

function AttachEvents() {
	var tBodyNode = document.getElementById("mainMenuTable").firstChild;

	for (i = 0; i < tBodyNode.childNodes.length; i++) {
		if ((tBodyNode.childNodes[i].nodeType == 1) && (tBodyNode.childNodes[i].childNodes[0].className != "")) {
			tBodyNode.childNodes[i].childNodes[0].onmouseover = MainMenuOn;
			tBodyNode.childNodes[i].childNodes[0].onmouseout = MainMenuOff;
		}
	}

	var parentNode = document.getElementById("mainTable").parentNode;
	
	for (i = 0; i < parentNode.childNodes.length; i++) {
		if ((parentNode.childNodes[i].nodeType == 1) && (parentNode.childNodes[i].className.substring(0, 7) == "subMenu")) {
			tBodyNode = parentNode.childNodes[i].firstChild;
			for (j = 0; j < tBodyNode.childNodes.length; j++) {
				tBodyNode.childNodes[j].childNodes[0].onmouseover = MainMenuOn;
				tBodyNode.childNodes[j].childNodes[0].onmouseout = MainMenuOff;
			}
		}
	}
}

function getElementLeft(eElement)
{
	var nLeftPos = eElement.offsetLeft;
	var eParElement = eElement.offsetParent;
	while (eParElement != null)
	{
		nLeftPos += eParElement.offsetLeft;
		eParElement = eParElement.offsetParent;
	}
	return nLeftPos;
}

function getElementTop(eElement)
{
	var nTopPos = eElement.offsetTop;
	var eParElement = eElement.offsetParent;
	while (eParElement != null)
	{
	nTopPos += eParElement.offsetTop;
	eParElement = eParElement.offsetParent;
	}
	return nTopPos;
}

function LaunchBriefStory(storyId) {
	window.open("/show_brief_story.php?story_id=" + storyId, "briefStory", "width=380, height=300, left=" + ((screen.width - 380) / 2) + ", top=" + ((screen.height - 300) / 2) + "location=no, menubar=no, resizable=no, scrollbars=yes, status=no, toolbar=no");
}
