var MenuItem = function(text,link){ this.text = text; this.link = link || ''; }; var TwoLevelMenu = function(thisMenuId,idContainer,cssContainer,cssMenuItemHover,cssSubmenuContainer,cssSubmenuItemHover,submenuPosition){ this.html = ''; this.submenus = ''; this.timer = false; this.submenuVisible = false; this.elTrigger = false; // this.thisMenuId = thisMenuId; this.idContainer = idContainer ? ' id="'+idContainer+'"' : ''; this.cssContainer = cssContainer ? ' class="'+cssContainer+'"' : ''; //this.cssMenuItemHover = cssMenuItemHover ? ' class="'+cssMenuItemHover+'"' : ''; this.cssMenuItemHover = cssMenuItemHover || ''; this.cssSubmenuContainer = cssSubmenuContainer ? ' class="'+cssSubmenuContainer+'"' : ''; this.cssSubmenuItemHover = cssSubmenuItemHover ? ' class="'+cssSubmenuItemHover+'"' : ''; this.submenuPosition = typeof submenuPosition == 'object' ? submenuPosition : {x:0,y:'this.offsetHeight+3'} }; TwoLevelMenu.prototype.addItem = function(name,link,cssLi,cssHref,submenuId,submenuItems){ var li = cssLi ? ' class="'+cssLi+'"' : ''; var href = cssHref ? ' class="'+cssHref+'"' : ''; if(submenuId){ this.html += ''+name+''; this.submenus += '' } else{ if(this.cssMenuItemHover) this.html += ''+name+''; else this.html += ''+name+''; } this.html += ''; }; TwoLevelMenu.prototype.render = function(){ document.write(''+this.html+''+this.submenus); }; TwoLevelMenu.prototype.showSubmenu = function(el,submenuId,x,y){ this.killTimer(); this.hideVisible(); // this.elTrigger = el; this.submenuVisible = AWT.e(submenuId); if(this.cssMenuItemHover) AWT.cadd(this.elTrigger,this.cssMenuItemHover); var body = AWT.DOMParent(); var subDim = AWT.dim(this.submenuVisible); var pos = AWT.pos(this.elTrigger); x = parseInt(x); y = parseInt(y); if(pos.y+y+subDim.full.height > body.scrollHeight) pos.y = body.scrollHeight - subDim.full.height - 10; this.submenuVisible.style.left = (pos.x + parseInt(x)) + 'px'; this.submenuVisible.style.top = (pos.y + parseInt(y)) + 'px'; this.submenuVisible.style.visibility = 'visible'; }; TwoLevelMenu.prototype.killTimer = function(){ if(this.timer){ clearTimeout(this.timer); this.timer = false; } }; TwoLevelMenu.prototype.hideVisible = function(){ if(this.submenuVisible){ this.submenuVisible.style.visibility = 'hidden'; this.submenuVisible = false; if(this.cssMenuItemHover) AWT.crmv(this.elTrigger,this.cssMenuItemHover); this.elTrigger = false; } }; TwoLevelMenu.prototype.hideDelay = function(){ this.timer = setTimeout(this.thisMenuId+'.hideVisible()',350); };