
var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

if (checkIt('konqueror'))
{
    browser = "Konqueror";
    OS = "Linux";
}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) {
  if (!(window.XMLHttpRequest)) {
    browser = "Internet Explorer";
  }
}
else if (!checkIt('compatible'))
{
    browser = "Netscape Navigator"
    version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
    if (checkIt('linux')) OS = "Linux";
    else if (checkIt('x11')) OS = "Unix";
    else if (checkIt('mac')) OS = "Mac"
    else if (checkIt('win')) OS = "Windows"
    else OS = "an unknown operating system";
}

function checkIt(string)
{
    place = detect.indexOf(string) + 1;
    thestring = string;
    return place;
}

    document.write("<link rel='stylesheet' href='cssmenu.css' type='text/css' />");

    var currentMenu = null;
    var lastMenuStarter = null;
    var mytimer = null;
    var timerOn = false;
    var opera = window.opera ? true : false;

    if (!document.getElementById)
	document.getElementById = function() { return null; }

    function initialiseDummy(dummy, root) {
	dummy.onmouseover = function() {
	    containingMenu = this.parentNode.parentNode;
	    for (var x=0;x<containingMenu.childNodes.length;x++) {
		if (containingMenu.childNodes[x].nodeName.toUpperCase()=="LI") {
		    if (containingMenu.childNodes[x].getElementsByTagName("ul").length>0) {
			containingMenu.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden';
		    }
		}
	    }
	}
	dummy.onfocus = function() {
	    dummy.onmouseover();
	}
    }
    
    function initialiseMenu(menu, starter, root) {
	var leftstarter = false;
    
	if (menu == null || starter == null) return;
	    currentMenu = menu;
    
	starter.onmouseover = function() {
	    if (currentMenu) {
		if (this.parentNode.parentNode!=currentMenu) {
		    currentMenu.style.visibility = "hidden";
		    hideAllMenus(currentMenu, root);

		}
		if (this.parentNode.parentNode==root) {
		    while (currentMenu.parentNode.parentNode!=root) {
			currentMenu.parentNode.parentNode.style.visibility = "hidden";
			currentMenu = currentMenu.parentNode.parentNode;
		    }
		}
		currentMenu = null;
		this.showMenu();
        	}
	}
    
	menu.onmouseover = function() {
	    if (currentMenu) {
		currentMenu = null;
		this.showMenu();
        	}
	}	
    
	starter.showMenu = function() {
                    var tmpleft = 0;
	    if (browser!='Opera') {
		if (this.parentNode.parentNode==root) {
		    tmpleft = this.offsetLeft
                                        if (browser == "Internet Explorer") { tmpleft = tmpleft - 620;}
                                        menu.style.left = tmpleft + "px";
		    menu.style.top = this.offsetTop + this.offsetHeight + "px";
		    if (menu.offsetWidth < this.offsetWidth) menu.style.width = this.offsetWidth;
		}
		else {
		    menu.style.left = this.offsetLeft + this.offsetWidth + "px";
		    menu.style.top = this.offsetTop + "px";
		}
	    }
	    else {
		var rootOffset = root.parentNode.offsetLeft;
		if (this.parentNode.parentNode==root) {
		    menu.style.left = this.offsetLeft - rootOffset + "px";
		    menu.style.width = this.offsetWidth;
		    menu.style.top = this.offsetHeight + "px";
		}
		else {
		    menu.style.left = this.offsetWidth - rootOffset + "px";
		    menu.style.top = this.offsetTop + "px"; //menu.style.top - menu.style.offsetHeight + "px";
		}
	    }
	    menu.style.visibility = "visible";
	    currentMenu = menu;
	}

	starter.onfocus	 = function() {
	    starter.onmouseover();
	}
    
	menu.onfocus	 = function() {
//			currentMenu.style.visibility="hidden";
	}

	menu.showMenu = function() {
	    menu.style.visibility = "visible";
	    currentMenu = menu;
	    stopTime();
	}

	menu.hideMenu = function()  {
	    if (!timerOn) {
		mytimer = setInterval("killMenu('" + this.id + "', '" + root.id + "');", 500);
		timerOn = true;
		for (var x=0;x<menu.childNodes.length;x++) {
		    if (menu.childNodes[x].nodeName=="LI") {
			if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
			    menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
			    menuItem.style.visibility = "hidden";
			}
		    }
		}
	    }
	}

	menu.onmouseout = function(event) {
	    this.hideMenu();
	}
	menu.onblur = function() {
	    this.hideMenu();
	}
	starter.onmouseout = function() {
	    for (var x=0;x<menu.childNodes.length;x++) {
		if (menu.childNodes[x].nodeName=="LI") {
		    if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
			menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
			menuItem.style.visibility = "hidden";
		    }
		}
	    }
	    menu.style.visibility = "hidden";
	}
}
    function killMenu(menu, root) {
	var menu = document.getElementById(menu);
	var root = document.getElementById(root);
	menu.style.visibility = "hidden";
	for (var x=0;x<menu.childNodes.length;x++) {
	    if (menu.childNodes[x].nodeName=="LI") {
		if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
		    menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
		    menuItem.style.visibility = "hidden";
		}
	    }
	}
	while (menu.parentNode.parentNode!=root) {
	    menu.parentNode.parentNode.style.visibility = "hidden";
	    menu = menu.parentNode.parentNode;
	}
	stopTime();
    }
    function stopTime() {
	if (mytimer) {
	     clearInterval(mytimer);
	     mytimer = null;
	     timerOn = false;
	}
    } 

    window.onload = function() {
	var root = document.getElementById("menuList");
	var rootOffset = root.offsetLeft;
	getMenus(root, root);
    }

function getMenus(elementItem, root) {
    var selectedItem;
    var menuStarter;
    var menuItem;
    for (var x=0;x<elementItem.childNodes.length;x++) {
	if (elementItem.childNodes[x].nodeName.toUpperCase()=="LI") {
	    if (elementItem.childNodes[x].getElementsByTagName("ul").length>0) {
		menuStarter = elementItem.childNodes[x].getElementsByTagName("A").item(0);
		menuItem = elementItem.childNodes[x].getElementsByTagName("UL").item(0);
		getMenus(menuItem, root);
		initialiseMenu(menuItem, menuStarter, root);
	    }
	    else {
		initialiseDummy(elementItem.childNodes[x].getElementsByTagName("A").item(0), root);
	    }
	}
    }
}
function hideAllMenus(elementItem, root) {
    for (var x=0;x<elementItem.childNodes.length;x++) {
	if (elementItem.childNodes[x].nodeName.toUpperCase()=="LI") {
	    if (elementItem.childNodes[x].getElementsByTagName("ul").length>0) {
		elementItem.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden';
		hideAllMenus(elementItem.childNodes[x].getElementsByTagName("UL").item(0), root);
	    }
	}
    }
}