function webClient() { var i; this.IE = false; this.NS = false; this.OP = false; this.release = null; if ((i = navigator.userAgent.indexOf("Opera")) >= 0) { this.OP = true; this.version = parseFloat(navigator.userAgent.substr(i + 5)); return; } if ((i = navigator.userAgent.indexOf("MSIE")) >= 0) { this.IE = true; this.release = parseFloat(navigator.userAgent.substr(i + 4)); return; } if ((i = navigator.userAgent.indexOf("Netscape6/")) >= 0) { this.NS = true; this.release = parseFloat(navigator.userAgent.substr(i + 10)); return; } if ((i = navigator.userAgent.indexOf("Netscape7/")) >= 0) { this.NS = true; this.release = parseFloat(navigator.userAgent.substr(i + 10)); return; } if ((i = navigator.userAgent.indexOf("Gecko")) >= 0) { this.NS = true; this.release = 6.1; return; } } var webClient = new webClient(); var activeButton = null; var activeSubButton = null; if (webClient.IE) document.onmousedown = pageMouseDown; else document.addEventListener("mousedown", pageMouseDown, true); function pageMouseDown(event) { var el; //if (activeButton == null) // return; if (webClient.IE) el = window.event.srcElement; else el = (event.target.tagName ? event.target : event.target.parentNode); if (el == activeButton || el == activeSubButton) return; if (el.className != "menuButton" && el.className != "menuItem" && el.className != "menuItemSep" && el.className != "menu") { if (activeButton) closeMenu(activeButton); if (activeSubButton) closeSubMenu(activeSubButton); } } function menuTouch(event, menuName) { var button; if (webClient.IE) button = window.event.srcElement; else button = (event.target.tagName ? event.target : event.target.parentNode); if (!button.menu && menuName) button.menu = document.getElementById(menuName); if (activeButton && activeButton != button) closeMenu(activeButton); if (activeSubButton && activeSubButton != button) closeSubMenu(activeSubButton); if (!button.isactive) if (menuName) { openMenu(button); //} else { // activeButton=button; // button.isactive=true; // button.className = "menuButtonActive"; } return false; } function subMenuTouch(event, menuName) { var button; if (webClient.IE) button = window.event.srcElement; else button = (event.target.tagName ? event.target : event.target.parentNode); if (!button.menu && menuName) button.menu = document.getElementById(menuName); if (activeSubButton && activeSubButton != button) closeSubMenu(activeSubButton); if (!button.isactive && menuName) openSubMenu(button); return false; } function openSubMenu(button) { var w, dw, x, y; button.className = "menuItemActive"; if (webClient.IE && !button.menu.firstChild.style.width) { w = button.menu.firstChild.offsetWidth; button.menu.firstChild.style.width = w + "px"; dw = button.menu.firstChild.offsetWidth - w; w -= dw; button.menu.firstChild.style.width = w + "px"; } x = getPageOffsetLeft(button)+ button.offsetWidth;; y = getPageOffsetTop(button); x++; y++; button.menu.style.left = x + "px"; button.menu.style.top = y + "px"; button.menu.style.visibility = "visible"; button.isactive = true; activeSubButton = button; } function openMenu(button) { var w, dw, x, y; button.className = "menuButtonActive"; if (webClient.IE && !button.menu.firstChild.style.width) { w = button.menu.firstChild.offsetWidth; button.menu.firstChild.style.width = w + "px"; dw = button.menu.firstChild.offsetWidth - w; w -= dw; button.menu.firstChild.style.width = w + "px"; } x = getPageOffsetLeft(button)+ button.offsetWidth; y = getPageOffsetTop(button); button.menu.style.left = x + "px"; button.menu.style.top = y + "px"; button.menu.style.visibility = "visible"; button.isactive = true; activeButton = button; } function closeMenu(button) { button.className = "menuButton"; if (button.menu) button.menu.style.visibility = "hidden"; button.isactive = false; activeButton = null; } function closeSubMenu(button) { button.className = "menuItem"; if (button.menu) button.menu.style.visibility = "hidden"; button.isactive = false; activeSubButton = null; } function getPageOffsetLeft(el) { return el.offsetLeft + (el.offsetParent ? getPageOffsetLeft(el.offsetParent) : 0); } function getPageOffsetTop(el) { return el.offsetTop + (el.offsetParent ? getPageOffsetTop(el.offsetParent) : 0); }