var domSMenu = null; var domSubMenu = null; var oldDomSMenu = null; var oldDomSubMenu = null; var oldDomSubSubMenu = null; //3rd tier var t = 0; var lDelay = 3; var lCount = 0; var pause = 100; var lCurMenuNum; var lCurSubMenuNum; var oldMenuTopImage = null; var oldMenuNum = null; var oldSubMenuNum = null; var imgLocation = '/App_Common/Images/Localized/en-us/'; var curSubMenuParent = null; var curSubSubMenuParent = null; //see if it's a mac...this is important to know for menus, //because in windows, must hide drop down boxes. hiding in macs is unnecessary var bitControlsHidden = 0; var isWindows = 0; var isMacIE = 0; var menuOffset = 0; var isSafari = -1; var browserName = ""; var ua //browser detection to see if it is Safari - Troy Rios Ticket:2116 var ua = navigator.userAgent.toLowerCase(); if ( ua.indexOf( "opera" ) != -1 ) { browserName = "opera"; isSafari = -1; } else if ( ua.indexOf( "msie" ) != -1 ) { browserName = "msie"; isSafari = -1; } else if ( ua.indexOf( "safari" ) != -1 ) { browserName = "safari"; isSafari = 1; } else if ( ua.indexOf( "mozilla" ) != -1 ) { browserName = "mozilla"; isSafari = -1; } else { browserName = "unknown"; isSafari = -1; } if (navigator.platform.indexOf ("Win32") != -1 ) { isWindows = 1;} if(navigator.platform.indexOf ("Win32") == -1 && navigator.appName == "Microsoft Internet Explorer"){ isMacIE = 1; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Joer - Added optional parameter to function to change getting element to not use the last element // because Safari 2 adds extra area onto the offsetParent of the last element. function DL_GetElementLeft(eElement, blnIsNavigation) { // alert (eElement.style.width); 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 { if(blnIsNavigation == true) { if(eParElement.offsetParent != null) // appending left offset of each parent nLeftPos += eParElement.offsetLeft; }else{ nLeftPos += eParElement.offsetLeft; } eParElement = eParElement.offsetParent; // until no more offset parents exist } return nLeftPos; // return the number calculated } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Joer - Added optional parameter to function to change getting element to not use the last element // because Safari 2 adds extra area onto the offsetParent of the last element. function DL_GetElementTop(eElement, blnIsNavigation) { 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 { if(blnIsNavigation == true) { if(eParElement.offsetParent != null) // appending left offset of each parent nTopPos += eParElement.offsetTop; }else{ 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, whichImage, objTD){ /////activates mouseover image var largeImageDiv = findDOM('largeImageDiv'); var menuTopImage = findDOM('imgHead' + menuNum, 0); if (isDHTML && isMacIE != 1) { menuTopImage.src= imgLocation + 'nav_' + menuNum + '_on.gif'; ///// 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; if (largeImageDiv != null){ largeImageDiv.style.visibility = 'hidden'; } } t = 2; if ((oldDomSMenu)) { if(oldDomSMenu != domSMenu){ oldDomSMenu.visibility = 'hidden'; oldDomSMenu.zIndex = '0'; t = 2; lCount = 0; oldMenuTopImage.src = imgLocation + 'nav_' + oldMenuNum + '.gif'; } } lCurMenuNum=menuNum; ///// Defines the positions of the sub-menus if (isID || isAll) { var menuLeft = (DL_GetElementLeft(domMenuOpt)); var menuTop = (DL_GetElementTop(domMenuOpt)+domMenuOpt.offsetHeight); } if (isLayers) { var menuLeft = document.layers[idMenu].layers[idMenuOpt].pageX+1; var menuTop = domMenu.pageY + domMenu.clip.height1; } ///// Positions and shows the menu if (oldDomSMenu != domSMenu) { domSMenu.left = menuLeft + 'px' ; domSMenu.top = menuTop+ 'px' ; domSMenu.visibility = 'visible'; domSMenu.zIndex = '1900'; oldDomSMenu = domSMenu; oldMenuTopImage = menuTopImage; oldMenuNum = lCurMenuNum; } } ////// Returns a 'null' value for non-DHTML Browsers else { return null; } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function popSubMenuDown(menuNum, offsetElement){ if (isDHTML && isMacIE != 1) { ///// Defines the DOMs of the menu objects var idMenu = 'menuHeader'; var domMenu = findDOM(idMenu,0); if (curSubMenuParent !=null ) curSubMenuParent.className='DropdownMenuCell_Off'; curSubMenuParent = offsetElement; curSubMenuParent.className='DropdownMenuCell_On'; //if menuNum = -1, then you saying that this td does not have a submenu div that exists. if (menuNum == -1) return; var idMenuOpt = 'menuHead' + menuNum; var domMenuOpt = findDOM(idMenuOpt,0); var idSMenu = 'submenu' + menuNum; domSubMenu = findDOM(idSMenu,1); var domSubStyle = findDOM(idSMenu,0); t = 2; if (oldDomSubMenu) { if(oldDomSubMenu != domSubMenu) { oldDomSubMenu.visibility = 'hidden'; oldDomSubMenu.zIndex = '0'; t = 2; lCount = 0; //oldMenuTopImage.src = imgLocation + 'nav_' + oldMenuNum + '.gif'; } } if (oldDomSubSubMenu) { oldDomSubSubMenu.visibility='hidden'; oldDomSubSubMenu.zIndex='0'; oldDomSubSubMenu = null; } lCurSubMenuNum=menuNum; //////////////////////////////////////////////////////////////////////Old Way of using dropdown display/////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// Defines the positions of the sub-sub-menus /*------------------------------------------------------------------------------------------------------------ if (isID || isAll) { if(isSafari == 1) //fix spacing problems in Safari on Mac { menuOffset = 143; var menuLeft = (DL_GetElementLeft(offsetElement, true))+menuOffset; //spacing of menus var menuTop = (DL_GetElementTop(offsetElement, true))-0; } else if(isSafari != 1) { menuOffset = 151; var menuLeft = (DL_GetElementLeft(offsetElement, true))+menuOffset; //spacing of menus var menuTop = (DL_GetElementTop(offsetElement, true))-0; } } if (isLayers) { if(isSafari == 1) //fix spacing problems in Safari on Mac { menuOffset = 143; var menuLeft = document.layers[idMenu].layers[idMenuOpt].pageX+menuOffset; //spacing of menus var menuTop = domMenu.pageY + domMenu.clip.height1-0; } else if(isSafari != 1) { menuOffset = 151; var menuLeft = document.layers[idMenu].layers[idMenuOpt].pageX+menuOffset; //spacing of menus var menuTop = domMenu.pageY + domMenu.clip.height1-0; } }---------------------------------------------------------------------------------------------*/ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////New Way of doing Dropdown/////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////DROPDOWN Nav Position///////////////////////////////////////////////////////////////////////////////////// ///// Defines the positions of the sub-sub-menus if (isID || isAll) { menuOffset = 151; var menuLeft = (DL_GetElementLeft(offsetElement, true))+menuOffset; //spacing of menus var menuTop = (DL_GetElementTop(offsetElement, true))-0; } if (isLayers) { menuOffset = 151; var menuLeft = document.layers[idMenu].layers[idMenuOpt].pageX+menuOffset; //spacing of menus var menuTop = domMenu.pageY + domMenu.clip.height1-0; } if(isSafari == 1){ menuTop -= 3; } ///// Positions and shows the menu // if (oldDomSubMenu != domSubMenu) { domSubMenu.left = menuLeft+ 'px' ; domSubMenu.top = menuTop+ 'px' ; domSubMenu.visibility = 'visible'; domSubMenu.zIndex = '1900'; oldDomSubMenu = domSubMenu; //oldMenuTopImage = menuTopImage; oldSubMenuNum = lCurSubMenuNum; // } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////// Returns a 'null' value for non-DHTML Browsers else { return null; } } function popSubSubMenuDown(menuNum, offsetElement){ if (isDHTML && isMacIE != 1) { ///// Defines the DOMs of the menu objects var idMenu = 'menuHeader'; var domMenu = findDOM(idMenu,0); if (curSubSubMenuParent !=null ) curSubSubMenuParent.className='DropdownMenuCell_Off'; curSubSubMenuParent = offsetElement; curSubSubMenuParent.className='DropdownMenuCell_On'; //if menuNum = -1, then you saying that this td does not have a submenu div that exists. if (menuNum == -1) return; var idMenuOpt = 'menuHead' + menuNum; var domMenuOpt = findDOM(idMenuOpt,0); var idSMenu = 'submenu' + menuNum; domSubMenu = findDOM(idSMenu,1); var domSubStyle = findDOM(idSMenu,0); t = 2; if (oldDomSubSubMenu) { if(oldDomSubSubMenu != domSubMenu) { oldDomSubSubMenu.visibility = 'hidden'; oldDomSubSubMenu.zIndex = '0'; t = 2; lCount = 0; } } ///// Defines the positions of the sub-sub-menus lCurSubMenuNum=menuNum; //////////////////////////////////////////////////////////////////////Old Way of using dropdown display/////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------------------------- if (isID || isAll) { if(isSafari == 1) //fix spacing problems in Safari on Mac { menuOffset = 143; var menuLeft = (DL_GetElementLeft(offsetElement))+menuOffset; //spacing of menus var menuTop = (DL_GetElementTop(offsetElement))-0; } else if(isSafari != 1) { menuOffset = 151; var menuLeft = (DL_GetElementLeft(offsetElement))+menuOffset; //spacing of menus var menuTop = (DL_GetElementTop(offsetElement))-0; } } if (isLayers) { if(isSafari == 1) //fix spacing problems in Safari on Mac { menuOffset = 143; var menuLeft = document.layers[idMenu].layers[idMenuOpt].pageX+menuOffset; //spacing of menus var menuTop = domMenu.pageY + domMenu.clip.height1-0; } else if(isSafari != 1) { menuOffset = 151; var menuLeft = document.layers[idMenu].layers[idMenuOpt].pageX+menuOffset; //spacing of menus var menuTop = domMenu.pageY + domMenu.clip.height1-0; } } ---------------------------------------------------------------------------------------------------------------*/ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////New Way of doing Dropdown/////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (isID || isAll) { menuOffset = 151; var menuLeft = (DL_GetElementLeft(offsetElement, true))+menuOffset; //spacing of menus var menuTop = (DL_GetElementTop(offsetElement, true)); } if (isLayers) { menuOffset = 151; var menuLeft = document.layers[idMenu].layers[idMenuOpt].pageX+menuOffset; //spacing of menus var menuTop = domMenu.pageY + domMenu.clip.height; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// Positions and shows the menu // if (oldDomSubMenu != domSubMenu) { domSubMenu.left = menuLeft+ 'px' ; domSubMenu.top = menuTop+ 'px' ; domSubMenu.visibility = 'visible'; domSubMenu.zIndex = '1900'; oldDomSubSubMenu = domSubMenu; //oldMenuTopImage = menuTopImage; oldSubMenuNum = lCurSubMenuNum; // } } ////// Returns a 'null' value for non-DHTML Browsers else { return null; } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function delayHide(whichImage, imageOverURL) { ///// 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 /////removes rollover image var menuTopImage = findDOM('imgHead' + lCurMenuNum, 0); menuTopImage.src= imgLocation + 'nav_' + lCurMenuNum + '.gif'; 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; } delaySubHide(); //hide any sub-sub menus showing 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; } setTimeout('delayHide()',pause); } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function delaySubHide() { ///// Checks to see if there is a menu showing and whether ///// the global variable 't' has been set to 0 if ((oldDomSubMenu) && (t == 0)) { ///// Hides the old menu, resets menu conditions, ///// and stops the function running /////removes rollover image var menuTopImage = findDOM('imgHead' + lCurMenuNum, 0); // menuTopImage.src= imgLocation + 'nav_' + lCurMenuNum + '.gif'; oldDomSubMenu.visibility = 'hidden'; oldDomSubMenu.zIndex = '0'; oldDomSubMenu = null; if (oldDomSubSubMenu) { oldDomSubSubMenu.visibility='hidden'; oldDomSubSubMenu.zIndex='0'; oldDomSubSubMenu = null; } lCount = 0; curSubMenuParent.className='DropdownMenuCell_Off'; delayHide(); //hide any menus showing 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; } setTimeout('delaySubHide()',pause); } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function killSubMenu() { if (oldDomSubMenu) { oldDomSubMenu.visibility = 'hidden'; oldDomSubMenu.zIndex = '0'; oldDomSubMenu = null; lCount = 0; curSubMenuParent.className='DropdownMenuCell_Off'; } if (oldDomSubSubMenu) { oldDomSubSubMenu.visibility='hidden'; oldDomSubSubMenu.zIndex='0'; oldDomSubSubMenu = null; if (curSubSubMenuParent) curSubSubMenuParent.className='DropdownMenuCell_Off'; } }