/*
CREDITS:
This menu script is largely base on Sam Hampton-Smith's version
at http://www.digital-halide.com/cssmenu/multi/
*/

var currentMenu = null;
var mytimer = null;
var timerOn = false;
var opera = window.opera ? true : false;
var macIe = (document.all && navigator.userAgent.indexOf("Mac") != '-1') ? true : false;

if (!document.getElementById) 
  document.getElementById = function() { return null; }
	
function initialiseMenu(menu, starter, root) {
  // var menuId = menu.attributes(0).value;
  var leftstarter = false;
  if (menu == null || starter == null) return;
  currentMenu = menu;
  starter.onmouseover = function() {
  if (currentMenu) {
    //alert(this.parentNode.parentNode.id + ' ' + currentMenu.id);
    if (this.parentNode.parentNode!=currentMenu) {
      currentMenu.style.visibility = "hidden";
    }
    if (this.parentNode.parentNode == root) {
      tempCurrentMenu = currentMenu
      while (tempCurrentMenu.parentNode.parentNode != root) {
        tempCurrentMenu.parentNode.parentNode.style.visibility = "hidden";
        tempCurrentMenu = tempCurrentMenu.parentNode.parentNode;
      }
    }
    currentMenu = null;
    this.showMenu();
  }
}
	
menu.onmouseover = function() {
	if (currentMenu) {
		currentMenu = null;
		this.showMenu();
	}
}	

starter.showMenu = function() {
	if (!opera) {
		if (this.parentNode.parentNode==root) {
			menu.style.left = this.offsetLeft + "px";
			menu.style.top = this.offsetTop + this.offsetHeight + "px";
		}
		else {
			menu.style.left = this.offsetLeft + this.offsetWidth + "px";
			menu.style.top = this.offsetTop + "px";
		}
	}
	else {
		if (this.parentNode.parentNode==root) {
			menu.style.left = this.offsetLeft + "px";
			menu.style.top = this.offsetHeight + "px";
		}
		else {
			menu.style.left = this.offsetWidth + "px";
//					alert(this.offsetTop);
			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) {
		//alert(this.id);
		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();
}

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";
	//menu.hideMenu();
}
}
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() {
if (macIe == false){
  var root = document.getElementById("menuList");
  getMenus(root, root);
}
}

function getMenus(elementItem, root) {
  var selectedItem;
  var menuStarter;
  var menuItem;
  //alert("in getmenus");
  //alert(elementItem.childNodes.length);
  for (var i = 0; i < elementItem.childNodes.length; i++) {
    //alert(elementItem.childNodes[x].nodeName);
    if (elementItem.childNodes[i].nodeName=="LI") {
      //alert("Yes!");
      if (elementItem.childNodes[i].getElementsByTagName("UL").length > 0) {
        //alert("Set up");
        menuStarter = elementItem.childNodes[i].getElementsByTagName("A").item(0);
        menuItem = elementItem.childNodes[i].getElementsByTagName("UL").item(0);
        getMenus(menuItem, root);
        initialiseMenu(menuItem, menuStarter, root);
      }
    }
  }
  //return true;
}