var domSMenu = null; var oldDomSMenu = null; var t = 0; var lDelay = 3; var lCount = 0; var pause = 500; var lCurMenuNum; var isDHTML = 0; var bitControlsHidden = 0; var isWindows = 0; if (navigator.platform.indexOf ("Win32") != -1 ) { isWindows = 1;} function popMenu(menuNum){ if (isDHTML) { if (bitControlsHidden == 0 && isWindows ==1) { var i; i=0; while (i < document.forms[0].elements.length) { if (document.forms[0].elements[i].type == 'select-one') document.forms[0].elements[i].style.visibility='hidden'; i++; } bitControlsHidden=1; } ///// Defines the DOMs of the menu objects var idMenu = 'menuHeader'; var domMenu = findDOM(idMenu,0); var idMenuOpt = 'menuHead' + menuNum; var domMenuOpt = findDOM(idMenuOpt,0); var idSMenu = 'menu' + menuNum; domSMenu = findDOM(idSMenu,1); var domSubStyle = findDOM(idSMenu,0); t = 2; if ((oldDomSMenu)) { if(oldDomSMenu != domSMenu){ oldDomSMenu.visibility = 'hidden'; oldDomSMenu.zIndex = '0'; t = 2; lCount = 0; } } lCurMenuNum=menuNum; ///// Defines the positions of the sub-menus if (isID || isAll) { var menuLeft = (DL_GetElementLeft(domMenuOpt)); var menuTop = ((DL_GetElementTop(domMenuOpt) - parseInt(domSubStyle.offsetHeight))); //alert(domSubStyle.offsetWidth); //var menuWidth = domSubStyle.offsetWidth; //alert(menuTop); //(parseInt(domSMenu.height))*-1; } if (isLayers) { var menuLeft = document.layers[idMenu].layers[idMenuOpt].pageX; var menuTop = domMenu.pageY + domMenu.clip.height; } ///// Positions and shows the menu if (oldDomSMenu != domSMenu) { domSMenu.left = menuLeft; domSMenu.top = menuTop; //domSMenu.width = menuWidth; domSMenu.visibility = 'visible'; domSMenu.zIndex = '1900'; oldDomSMenu = domSMenu;; } } ////// Returns a 'null' value for non-DHTML Browsers else { return null; } } function delayHide() { ///// Checks to see if there is a menu showing and whether ///// the global variable 't' has been set to 0 if ((oldDomSMenu) && (t == 0)) { ///// Hides the old menu, resets menu conditions, ///// and stops the function running oldDomSMenu.visibility = 'hidden'; oldDomSMenu.zIndex = '0'; oldDomSMenu = null; lCount = 0; return false; } ///// Interupts the function if another menu is opened if (t == 2) { lCount = 0; return false; } ///// Repeats the function adding 1 to lCount each time until ///// lCount is equal to lDelay and then sets 't' to 0 so that ///// the menu will hide when it runs again if (t == 1) { lCount = lCount + 1; if (lDelay = lCount) { t = 0; } //if (lDelay > lCount) { setTimeout('delayHide()',pause); } setTimeout('delayHide()',pause); } } function DL_GetElementLeft(eElement) { var nLeftPos = eElement.offsetLeft; // initialize var to store calculations var eParElement = eElement.offsetParent; // identify first offset parent element while (eParElement != null) { // move up through element hierarchy nLeftPos += eParElement.offsetLeft; // appending left offset of each parent eParElement = eParElement.offsetParent; // until no more offset parents exist } return nLeftPos; // return the number calculated } function DL_GetElementTop(eElement) { var nTopPos = eElement.offsetTop; // initialize var to store calculations var eParElement = eElement.offsetParent; // identify first offset parent element while (eParElement != null) { // move up through element hierarchy nTopPos += eParElement.offsetTop; // appending top offset of each parent eParElement = eParElement.offsetParent; // until no more offset parents exist } return nTopPos; // return the number calculated } function popMenuDown(menuNum){ if (isDHTML) { ///// Defines the DOMs of the menu objects var idMenu = 'menuHeader'; var domMenu = findDOM(idMenu,0); var idMenuOpt = 'menuHead' + menuNum; var domMenuOpt = findDOM(idMenuOpt,0); var idSMenu = 'menu' + menuNum; domSMenu = findDOM(idSMenu,1); var domSubStyle = findDOM(idSMenu,0); ////hides windows controls if (bitControlsHidden == 0 && isWindows ==1) { var i; i=0; while (i < document.forms[0].elements.length) { if (document.forms[0].elements[i].type == 'select-one') document.forms[0].elements[i].style.visibility='hidden'; i++; } bitControlsHidden=1; } t = 2; if ((oldDomSMenu)) { if(oldDomSMenu != domSMenu){ oldDomSMenu.visibility = 'hidden'; oldDomSMenu.zIndex = '0'; t = 2; lCount = 0; } } lCurMenuNum=menuNum; ///// Defines the positions of the sub-menus if (isID || isAll) { var menuLeft = (DL_GetElementLeft(domMenuOpt)); var menuTop = (DL_GetElementTop(domMenuOpt)+domMenuOpt.offsetHeight); //alert(domSubStyle.offsetWidth); //var menuWidth = domSubStyle.offsetWidth; //alert(domMenuOpt.offsetHeight); //(parseInt(domSMenu.height))*-1; } if (isLayers) { var menuLeft = document.layers[idMenu].layers[idMenuOpt].pageX; var menuTop = domMenu.pageY + domMenu.clip.height; } ///// Positions and shows the menu if (oldDomSMenu != domSMenu) { domSMenu.left = menuLeft; domSMenu.top = menuTop; //domSMenu.width = menuWidth; domSMenu.visibility = 'visible'; domSMenu.zIndex = '1900'; oldDomSMenu = domSMenu;; } } ////// Returns a 'null' value for non-DHTML Browsers else { return null; } } function delayHide() { ///// Checks to see if there is a menu showing and whether ///// the global variable 't' has been set to 0 if ((oldDomSMenu) && (t == 0)) { ///// Hides the old menu, resets menu conditions, ///// and stops the function running oldDomSMenu.visibility = 'hidden'; oldDomSMenu.zIndex = '0'; oldDomSMenu = null; lCount = 0; ////shows windows controls again if (bitControlsHidden == 1 && isWindows == 1) { var i; i=0; while (i < document.forms[0].elements.length) { if (document.forms[0].elements[i].type == 'select-one') document.forms[0].elements[i].style.visibility='visible'; i++ } bitControlsHidden=0; } return false; } ///// Interupts the function if another menu is opened if (t == 2) { lCount = 0; return false; } ///// Repeats the function adding 1 to lCount each time until ///// lCount is equal to lDelay and then sets 't' to 0 so that ///// the menu will hide when it runs again if (t == 1) { lCount = lCount + 1; if (lDelay = lCount) { t = 0; } //if (lDelay > lCount) { setTimeout('delayHide()',pause); } setTimeout('delayHide()',pause); } }