// Load up the stylesheet for the menus. This code is here rather than in the html // document to allow for non-javascript browsers to render a seperately styled non- // interactive list rather than the DHTML menu document.write(""); 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;x0) { 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() { if (!opera) { if (this.parentNode.parentNode==root) { menu.style.left = this.offsetLeft + "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.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 + "');", 2000); timerOn = true; for (var x=0;x0) { 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;x0) { 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;x0) { 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;x0) { 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;x0) { elementItem.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden'; hideAllMenus(elementItem.childNodes[x].getElementsByTagName("UL").item(0), root); } } } }