var tryClosePause=1000;var bookTag="DIV";var menuTag="UL";var menuItemTag="LI";var menuItemLinkTag="A";var menuHookTag="DIV";var bookClassRegex=new RegExp("bea-portal-book(?:-(primary))?$");var menuClassRegex=new RegExp("bea-portal-book(?:-(primary))?-menu$");var hookClassRegex=new RegExp("bea-portal-book(?:-(primary))?-menu-hook$");var itemClassRegex=new RegExp("bea-portal-book(?:-(primary))?-menu-item(?:-(active))?$");var linkClassRegex=new RegExp("bea-portal-book(?:-(primary))?-menu-item-link$");var rootClassRegex=new RegExp("bea-portal-book(?:-(primary))?-menu-root$");var nestedClassRegex=new RegExp("bea-portal-book(?:-(primary))?-menu-nested$");var books=new Array();var currentMenuItem;function initDynamicMenus(){initBooks();createMenus()}function initBooks(){var c=document.getElementsByTagName(bookTag);for(var b=0;b<c.length;b++){if(c[b].tagName&&c[b].tagName==bookTag&&c[b].className&&c[b].className.match(bookClassRegex)){var a=initBook(c[b]);if(a){books[books.length]=a}}}}function initBook(a){var d;var c=getFirstChildByClassRegex(a,menuTag,menuClassRegex,bookClassRegex);var b=getFirstChildByClassRegex(a,menuHookTag,hookClassRegex,bookClassRegex);if(a&&c&&b){var f=initMenu(c);var e=initMenuHook(b);if(f&&e){d=new Book(a,f,e)}}return d}function initMenu(b){if(!b){alert("No tag defined!")}b.style.display="none";var c=new Array();var g=b.firstChild;while(g!=null){if(g.tagName&&g.tagName==menuItemTag&&g.className.match(itemClassRegex)){var f=g.className?g.className.match(itemClassRegex):null;if(f&&f.length>=1){var e=false;if((f.length==2&&f[1]=="active")||(f.length==3&&f[2]=="active")){e=true}c[c.length]=initMenuItem(g,e)}}g=g.nextSibling}var a=b.className.match(menuClassRegex);var d=(a&&a.length>=2&&a[1]=="primary"?"-primary":"");return new Menu(b,c,d)}function initMenuHook(a){return new MenuHook(a)}function initMenuItem(a,c){var d;var e;var f=a.firstChild;while(f!=null){if(f.tagName&&f.tagName==menuItemLinkTag&&f.className.match(linkClassRegex)){var b=(f.innerText?f.innerText:f.text);d=new Link(f,b)}else{if(f.tagName&&f.tagName==menuTag){e=initMenu(f)}}f=f.nextSibling}return new MenuItem(a,d,c,e)}function createMenus(){for(var a=0;a<books.length;a++){createRootMenu(books[a].menu,books[a].hook,a)}}function createRootMenu(d,b,f){var c=document.createElement("UL");c.className="bea-portal-book"+d.bookClassQualifier+"-menu-root";c.id="menu-"+f;b.tag.appendChild(c);var e="bea-portal-book"+d.bookClassQualifier+"-menu-root-item";for(var a=0;a<d.menuItems.length;a++){createMenuItem(d.menuItems[a],c,e,a,"LI",true)}}function createSubMenu(e,c,a){var d=document.createElement("div");d.style.display="none";d.className="bea-portal-book"+e.bookClassQualifier+"-menu-nested";d.id=a+"-menu";c.tag.appendChild(d);var f="bea-portal-book"+e.bookClassQualifier+"-menu-nested-item";for(var b=0;b<e.menuItems.length;b++){createMenuItem(e.menuItems[b],d,f,b,"DIV",false)}return d}function createMenuItem(a,f,g,h,c,d){var b=document.createElement(c);b.className=g+(a.isActive?"-active":"");f.appendChild(b);b.id=f.id+"-item-"+h;if(a.link){var i=document.createElement("a");i.href=a.link.tag.href;var j=document.createTextNode(a.link.label);addEventToElement(i,"mouseover",menuItemHoverIn,false);addEventToElement(i,"mouseout",menuItemHoverOut,false);b.appendChild(i);i.appendChild(j)}if(a.menu){var e=createSubMenu(a.menu,new MenuHook(b),b.id);b.appendChild(e)}}function menuItemHoverIn(a){var c=getEvent(a);var d=getEventSource(c);var b=d.parentNode;currentMenuItem=b;b.renderedHeight=b.offsetHeight;b.renderedWidth=b.offsetWidth;closeAll(b);openPath(b)}function menuItemHoverOut(a){var c=getEvent(a);var d=getEventSource(c);var b=d.parentNode;currentMenuItem=null;tryClose(b)}var tmpMenuItem;function tryClose(a){if(!currentMenuItem){tmpMenuItem=a;setTimeout("wlp_default_close(tmpMenuItem)",tryClosePause)}}function wlp_default_close(a){if(a&&!currentMenuItem){closeAll(a)}}function getMenuChild(b){var c=b.firstChild;var a=false;while(!a&&c){if(c&&c.className&&c.className.match(nestedClassRegex)){a=true}else{c=c.nextSibling}}return c}function openPath(b){var d=new Array();var c=getMenuChild(b);if(c){d[d.length]=new Array();d[d.length-1][0]=b;d[d.length-1][1]=c}var e=b.parentNode;while(e&&!e.className.match(rootClassRegex)){b=e.parentNode;d[d.length]=new Array();d[d.length-1][0]=b;d[d.length-1][1]=e;e=b.parentNode}for(var a=0;a<d.length;a++){openMenu(d[a][0],d[a][1],d.length-1-a)}}function openMenu(c,f,e){var b=(c.offsetWidth==0?c.renderedWidth:c.offsetWidth);var g=(e==0?1:getMenuItemPosition(c));var a=(c.offsetHeight==0?c.renderedHeight:c.offsetHeight);var d=(e==0?getDocumentOffset(c):[c.offsetLeft,c.offsetTop]);f.style.position="absolute";f.style.display="block";f.style.left=d[0]+(e==0?0:b)+"px";f.style.top=d[1]+(g*a)+"px"}function getDocumentOffset(a){var b=new Array();b[0]=a.offsetLeft;b[1]=a.offsetTop;while((a=a.offsetParent)!=null){b[0]+=a.offsetLeft;b[1]+=a.offsetTop}return b}function getMenuItemPosition(b){var e=0;var a=b.parentNode;var d=a.firstChild;var c=false;while(d){if(d==b){c=true;break}e++;d=d.nextSibling}if(!c){alert("Parent menu does not contain child menu item!")}return e}function closeAll(b){var a=b.parentNode;while(a&&!a.className.match(rootClassRegex)){a=a.parentNode.parentNode}closeAllChildren(a)}function closeAllChildren(b){var c=b.firstChild;while(c){var a=getMenuChild(c);if(a){closeAllChildren(a);a.style.display="none"}c=c.nextSibling}}function Book(a,c,b){this.tag=a;this.menu=c;this.hook=b}function Menu(a,b,c){this.tag=a;this.menuItems=b;this.bookClassQualifier=c}function MenuHook(a){this.tag=a}function MenuItem(a,c,b,d){this.tag=a;this.link=c;this.isActive=b;this.menu=d}function Link(a,b){this.tag=a;this.label=b};
