var browser = new Browser(); var activeButton = null; if (browser.isIE) document.onmouseover = page_mousedown; else document.addEventListener("mouseover", page_mousedown, true); function td_mouseover(td, new_color, sb_text) { if (!browser.isMac) { if(document.getElementById||(document.all && !(document.getElementById))) { td.style.backgroundColor = new_color; td.style.cursor="hand"; self.status = sb_text; } } } function td_mouseout(td, new_color) { if (!browser.isMac) { if(document.getElementById||(document.all && !(document.getElementById))) { td.style.backgroundColor=new_color; td.style.cursor='normal'; self.status = 'Done'; } } } function clear_menus() { menuList = document.getElementsByTagName("DIV"); for (i = 0; i < menuList.length; i++) if ( a5(menuList[i], "menu")) { if (menuList[i].style.visibility == "visible") { set_status(menuList[i].id + " is visible. clearing..."); menuList[i].style.visibility = "hidden"; } } activeButton = null; } function page_mousedown(event) { try { if (activeButton == null) { clear_menus(); return; } element = a18(event); if ( a3(element, "menubar")) return; if ( a3(element, "mbr_button")) return; if ( a3(element, "menu")) return; a6(activeButton, "mbr_activebutton"); if(activeButton.menu) a16(activeButton.menu); activeButton = null; } catch(e) { alert("page_mouseover exception: " + e); } } function show_menu(element, menu_id) { try { var button = a3(element, "mbr_button"); if (button.menu == null) { button.menu = document.getElementById(menu_id); if (button.menu && button.menu.isInitialized == null) a17(button.menu); } if (button != activeButton) { if (activeButton) { a6(activeButton, "mbr_activebutton"); if (activeButton.menu) a16(activeButton.menu); activeButton = null; } if (button) { button.className += " mbr_activebutton"; if (button.menu) { var x, y; if ( a3(button, "menubar_left") != null) { x = a7(button) + button.offsetWidth; y = a8(button); } else { x = a7(button); y = a8(button) + button.offsetHeight; } /* if (browser.isMac && browser.isIE) { x = button.offsetLeft; y = a8(button) + button.offsetHeight; } else { if (browser.isIE) { x += button.offsetParent.clientLeft; y += button.offsetParent.clientTop; } } */ if (browser.isIE && !browser.isMac) { x += button.offsetParent.clientLeft; y += button.offsetParent.clientTop; } var maxX, maxY; if( typeof( window.innerWidth ) == 'number' ) { maxX = window.innerWidth; maxY = window.innerHeight; } else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { maxX = document.documentElement.clientWidth; maxY = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { maxX = document.body.clientWidth; maxY = document.body.clientHeight; } /* if (browser.isNS) { if (browser.isMac) { if( typeof( window.innerWidth ) == 'number' ) { maxX = window.innerWidth; maxY = window.innerHeight; } else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { maxX = document.documentElement.clientWidth; maxY = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { maxX = document.body.clientWidth; maxY = document.body.clientHeight; } alert("max screen size x: " + maxX); alert("max screen size y: " + maxY); } else { maxX = window.scrollX + window.innerWidth - 10; maxY = window.scrollY + window.innerHeight; } } if (browser.isIE) { if (browser.isMac) { x -= 7; y -= 3; maxX = screen.availWidth; maxY = screen.availHeight; } else { maxX = (document.documentElement.scrollLeft != 0 ? document.documentElement.scrollLeft : document.body.scrollLeft) + (document.documentElement.clientWidth != 0 ? document.documentElement.clientWidth : document.body.clientWidth); maxY = (document.documentElement.scrollTop != 0 ? document.documentElement.scrollTop : document.body.scrollTop) + (document.documentElement.clientHeight != 0 ? document.documentElement.clientHeight : document.body.clientHeight); } } */ if (browser.isMac && browser.isIE) { x -= 12; y -= 3; } maxX -= button.menu.menuwidth; maxY -= button.menu.menuheight; if (x > maxX) x = Math.max(0, Math.min(x, maxX)); y = Math.max(0, Math.min(y, maxY)); button.menu.style.left = x + "px"; button.menu.style.top = y + "px"; button.menu.style.visibility = "visible"; } activeButton = button; } } return false; } catch(e) { alert("show_menu exception: " + e); return false; } } function menuMouseover(event) { try { var element = a18(event); var menu = a2(element, "DIV", "menu");; if (menu.activeItem) a6(menu.activeItem, "mnu_activeitem"); if (menu.activeItem && menu.activeItem.subMenu) a16(menu.activeItem.subMenu); } catch(e) { alert("menuMouseover exception: " + e); return; } } function menuItemMouseover(event, menu_id) { try { var x, y; var element = a18(event); var item = a2(element, "A", "mnu_item"); var menu = a2(item, "DIV", "menu"); if (menu.activeItem) a6(menu.activeItem, "mnu_activeitem"); if (menu.activeItem && menu.activeItem.subMenu) a16(menu.activeItem.subMenu); menu.activeItem = item; item.className += " mnu_activeitem"; if (item.subMenu == null) { item.subMenu = document.getElementById(menu_id); if (item.subMenu.isInitialized == null) a17(item.subMenu); } x = a7(item) + item.offsetWidth; y = a8(item); var maxX, maxY; if( typeof( window.innerWidth ) == 'number' ) { maxX = window.innerWidth; maxY = window.innerHeight; } else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { maxX = document.documentElement.clientWidth; maxY = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { maxX = document.body.clientWidth; maxY = document.body.clientHeight; } /* if (browser.isNS) { maxX = window.scrollX + window.innerWidth; maxY = window.scrollY + window.innerHeight; } if (browser.isMac && browser.isIE) { x -= 12; y -= 3; maxX = screen.availWidth - 3; maxY = screen.availHeight - 3; } else { if (browser.isIE) { maxX = (document.documentElement.scrollLeft != 0 ? document.documentElement.scrollLeft : document.body.scrollLeft) + (document.documentElement.clientWidth != 0 ? document.documentElement.clientWidth : document.body.clientWidth); maxY = (document.documentElement.scrollTop != 0 ? document.documentElement.scrollTop : document.body.scrollTop) + (document.documentElement.clientHeight != 0 ? document.documentElement.clientHeight : document.body.clientHeight); } } */ maxX -= item.subMenu.offsetWidth; maxY -= item.subMenu.offsetHeight; if (browser.isMac && browser.isIE) { x -= 12; y -= 3; } if (x > maxX) x = Math.max(0, x - item.offsetWidth - item.subMenu.offsetWidth + (menu.offsetWidth - item.offsetWidth)); y = Math.max(0, Math.min(y, maxY)); item.subMenu.style.left = x + "px"; item.subMenu.style.top = y + "px"; item.subMenu.style.visibility = "visible"; if (browser.isIE) window.event.cancelBubble = true; else event.stopPropagation(); } catch(e) { alert(e); return; } } function a16(menu) { if (menu == null) return; try { if (menu.activeItem) { if (menu.activeItem.subMenu) { a16(menu.activeItem.subMenu); menu.activeItem.subMenu = null; } a6(menu.activeItem, "mnu_activeitem"); menu.activeItem = null; } menu.style.visibility = "hidden"; } catch(e) { alert("MenuItemMO exception: " + e); return; } } function a17(menu) { var itemList, spanList; var textEl, arrowEl; var max_width; var w, dw; var i, j; try { if (browser.isIE) { menu.style.lineHeight = "2.5ex"; spanList = menu.getElementsByTagName("SPAN"); for (i = 0; i < spanList.length; i++) if ( a5(spanList[i], "mnu_arrow")) { spanList[i].style.fontFamily = "Webdings"; spanList[i].firstChild.nodeValue = "4"; } } max_width = 0; is_px = false; max_px = 0; max_em = 0; itemList = menu.getElementsByTagName("A"); if (itemList.length > 0) { if (browser.isMac && browser.isIE) { for (i = 0; i < itemList.length; i++) { spanList = itemList[i].getElementsByTagName("SPAN"); if (is_px || spanList.length > 0) { textEl = null; arrowEl = null; for (j = 0; j < spanList.length; j++) { if ( a5(spanList[j], "mnu_label")) textEl = spanList[j]; if ( a5(spanList[j], "mnu_arrow")) arrowEl = spanList[j]; } if (textEl != null && arrowEl != null) { if (textEl.offsetWidth + arrowEl.offsetWidth > max_px) max_px = textEl.offsetWidth + arrowEl.offsetWidth; is_px = true; } } else { if (itemList[i].innerHTML.length > max_em) max_em = itemList[i].innerHTML.length; } } if (is_px) max_width = max_px + 5; else max_width = max_em + 1; if (is_px) menu.style.width = max_width + "px"; else menu.style.width = max_width + "em"; } else { max_width = itemList[0].offsetWidth; } } else return; for (i = 0; i < itemList.length; i++) { spanList = itemList[i].getElementsByTagName("SPAN"); textEl = null; arrowEl = null; for (j = 0; j < spanList.length; j++) { if ( a5(spanList[j], "mnu_label")) textEl = spanList[j]; if ( a5(spanList[j], "mnu_arrow")) arrowEl = spanList[j]; } if (textEl != null && arrowEl != null) { if (browser.isMac && browser.isIE) { if (is_px) { textEl.style.paddingRight = (max_width - (textEl.offsetWidth + arrowEl.offsetWidth)) + "px"; itemList[i].style.width = max_width + 12 + "px"; } else { textEl.style.paddingRight = (max_width - (textEl.innerHTML.length + arrowEl.innerHTML.length)) + "em"; itemList[i].style.width = max_width + "em"; } } else textEl.style.paddingRight = (max_width - (textEl.offsetWidth + arrowEl.offsetWidth)) + "px"; } } if (browser.isIE && !browser.isMac) { /* if (browser.isMac) { if (is_px) { w = itemList[0].offsetWidth; itemList[0].style.width = w + "px"; dw = itemList[0].offsetWidth - w; w -= dw; itemList[0].style.width = w + "px"; } else { w = itemList[0].innerHTML.length; itemList[0].style.width = w + "em"; dw = itemList[0].innerHTML.length - w; w -= dw; itemList[0].style.width = w + "em"; } } else { */ w = itemList[0].offsetWidth; itemList[0].style.width = w + "px"; dw = itemList[0].offsetWidth - w; w -= dw; itemList[0].style.width = w + "px"; } menu.menuwidth = menu.offsetWidth; menu.menuheight = menu.offsetHeight; menu.isInitialized = true; } catch(e) { alert("init exception: " + e); return; } } function a18(event) { var element = null; try { if (browser.isIE) element = window.event.srcElement; else element = (event.target.tagName ? event.target : event.target.parentNode); return element; } catch(e) { alert("getEventElemnt exception: " + e); return element; } } 