//**************************************************************** // icMainmenu.js (_ic319.txt) // // Copyright (c) 2006 Clifford L. Collins // All rights are Reserved // // Collins Software // 7710 Janak Drive, Houston Texas // //---------------------------------------------------------------- // No distribution/publication/use of this code is permitted //**************************************************************** var ICON_ROOT = "images/icons/"; //============================================================= // getComponent //============================================================= function getComponent(xitem) { var pitem; if (! xitem) return xitem; if ((xitem.component != undefined) && (xitem.component != '')) return xitem; pitem = xitem.parentElement; return getComponent(pitem); } //============================================================= // onMenuOver //============================================================= function onMenuOver(menu) { var xitem; xitem = event.srcElement; xitem = getComponent(xitem); event.returnValue=false; menu.onMouseOver(xitem); } //============================================================= // onMenuClick //============================================================= function onMenuClick(menu) { var xitem; xitem = event.srcElement; xitem = getComponent(xitem); menu.onMouseClick(xitem); } //============================================================= // ic$mainmenu //============================================================= function ic$mainmenu(id,name,bar) { this.id = id; this.name = name.toLowerCase(); this.onMouseOver = menu$onMouseOver; this.onMouseClick = menu$onMouseClick; this.closeMenu = menu$closeMenu; this.close = menu$close; this.submenuOn = menu$submenuOn; this.submenuOff = menu$submenuOff; this.activeMenu = null; this.activeGroup = null; this.activeItem = null; this.activeSubmenu = null; this.mainMenu = bar; this.class_label_normal = "classmm_" + this.name + '_label_normal'; this.class_label_selected = "classmm_" + this.name + '_label_selected'; this.class_item_normal = "classmm_" + this.name + '_item_normal'; this.class_item_selected = "classmm_" + this.name + '_item_selected'; } //============================================================= // menu$close //============================================================= function menu$close() { var i,div,list; return; if (! ((this.activeMenu) && (this.activeMenu.menustatus == "open"))) return this.mainMenu.releaseCapture(); this.activeGroup = eval(this.activeMenu.submenu); this.activeGroup.style.display = "none"; this.activeMenu.menustatus = "closed"; this.activeMenu.className = this.class_label_normal; this.activeMenu = null; event.returnValue=false; } //============================================================= // menu$submenuOff //============================================================= function menu$submenuOff(xitem) { var yitem; if (! this.activeSubmenu) return; if (xitem) { if (xitem.parentElement == this.activeSubmenu) return; } this.activeSubmenu.menustatus = 'closed'; this.activeSubmenu.style.display = 'none'; owner = this.activeSubmenu.owner; this.activeSubmenu = null; if (! owner) return; this.activeSubmenu = owner.parentElement; this.submenuOff(xitem); } //============================================================= // menu$submenuOn //============================================================= function menu$submenuOn(xitem) { this.submenuOff(xitem); if (! xitem) return; if (xitem.component != 'item') return; if ((xitem.submenu == 'undefined') || (xitem.submenu == '')) return; this.activeSubmenu = eval(xitem.submenu); this.activeSubmenu.style.display = "block"; this.activeSubmenu.owner = xitem; } //============================================================= // menu$closeMenu //============================================================= function menu$closeMenu(xitem) { if (! this.activeMenu) return; if (this.activeMenu == xitem) return; this.submenuOff(xitem); if (this.activeItem) { this.activeItem.className = this.class_item_normal; this.activeItem = null; } this.activeGroup = eval(this.activeMenu.submenu); this.activeGroup.style.display = "none"; this.activeMenu.menustatus = "closed"; this.activeMenu.className = this.class_label_normal; this.activeMenu = null; this.mainMenu.releaseCapture(); } //============================================================= // menu$onMouseOver //============================================================= function menu$onMouseOver(xitem) { var checked; var action; var pitem; if (! xitem) return; //--------------- Label --------------------- if (xitem.component == "label") { if (xitem == this.activeMenu) return; this.closeMenu(xitem); this.activeMenu = xitem; this.activeGroup = eval(xitem.submenu); this.activeMenu.menustatus = "open"; this.activeMenu.className = this.class_label_selected; this.activeGroup.style.display = "block"; // block this.mainMenu.setCapture(); return; } //--------------- Menu Item ------------ if (xitem.component == "item") { if (xitem == this.activeItem) return; if (this.activeItem) this.activeItem.className = this.class_item_normal; xitem.className = this.class_item_selected; this.activeItem = xitem; event.returnValue=false; this.submenuOn(xitem); return; } } //============================================================= // menu$onMouseClick //============================================================= function menu$onMouseClick(xitem) { try { if (xitem) { if (xitem.component == 'label') { if (! this.activeMenu) { this.onMouseOver(xitem); return; } } if (xitem.component == "item") if (xitem.menuaction) window.eval(xitem.menuaction); } } catch (e) { } this.closeMenu(null); }