/*  JS Resource: cms/js/bean/MenuBean.js  */

if(typeof MB=='undefined'){var MB={};}
MB.array=function(nl){var i,l=[];for(i=0;i<nl.length;i++)l.push(nl.item(i));return l;};MB.lastEventTime=new Date();MB.addClassName=function(el,cn){if(!MB.hasClassName(el,cn))
el.className=((el.className||'') +' ' +cn);};MB.err=function(m,e){if(typeof log4js!='undefined')log4js.logger.error(m,e);else if(typeof console!='undefined')console.log(m);};MB.data=window.localStorage;MB.getData=function(key){if(!!MB.data)return MB.data[key];else{var i=0,c,cn=key+"=",ca=document.cookie.split(';');for(;c=ca[i];i++){while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(cn)==0)return c.substring(cn.length,c.length);}
return null;}};MB.setData=function(key,val){if(!!MB.data)MB.data[key]=val;else{var d=new Date();d.setDate(d.getDate()+5);document.cookie=key +"=" +val +"; expires=" +d.toUTCString() +"; path=/";}};MB.removeClassName=function(el,cn){if(!MB.hasClassName(el,cn))return;el.className=(el.className||'').replace(RegExp("(^|\\s+)" +cn +"(\\s+|$)",'g'),' ');};MB.hasClassName=function(el,cn){var cur=(el.className||'');return cur==cn||(RegExp('\\b'+cn+'\\b').test(cur));};MB.getTarget=function(evt){evt=evt||window.event;var el=(evt.srcElement||evt.target);while(el&&el.nodeName.toLowerCase()!="li")
el=el.parentNode;return el;};MB.getTop=function(li){var parent=li;while(parent&&parent.className!='menubean'&&parent.nodeName.toLowerCase()!='div'){parent=parent.parentNode;}
if(parent==null)
throw new Error("Unable to find top of menu");return parent;};MB.GetChildUL=function(li){if(!MB.hasClassName(li,'mi_parent'))return null;var h,ul,hb,t;var children=li.getElementsByTagName("ul");if(!children||children.length==0){children=li.getElementsByTagName("UL");}
for(h=0,hb=children.length;(t=children[h]);h++){if(t.parentNode===li){if(ul){MB.err("Invalid DOM structure for menu. li.id = "+li.id+", children.length = " +(children==null?"null":children.length));break;}else{ul=t;}}}
return ul;};MB.SetInactiveClass=function(el){var elements=el.getElementsByTagName("li");if(!elements||elements.length==0){try{elements=el.getElementsByTagName("LI");}catch(e){}}
var liElements=MB.array(elements);var node=null;while((node=liElements.pop())){MB.removeClassName(node,'mi_active');MB.addClassName(node,'mi_inactive');}};MB.SetActive=function(li,activate){if(!MB.hasClassName(li,'over')){MB.addClassName(li,'over');var ul=MB.GetChildUL(li);if(ul&&ul.className.match("_persistent")){var nodelist=MB.GetOpenState(li);var entry=new RegExp("\\b" +li.id +"\\b");if(!entry.test(nodelist)){nodelist=(nodelist +"," +li.id);}
MB.SetOpenState(li,nodelist)}}
if(activate){var top=MB.getTop(li);MB.SetInactiveClass(top);if(!MB.hasClassName(li,'mi_active')){MB.removeClassName(li,'mi_inactive');MB.addClassName(li,'mi_active');}}
var ps=li.previousSibling,ns=li.nextSibling;if(ps&&!MB.hasClassName(ps,'prev_sibling')){MB.addClassName(ps,'prev_sibling');}
if(ns&&!MB.hasClassName(ns,'next_sibling')){MB.addClassName(ns,'next_sibling');}};MB.SetInActive=function(li){if(!MB.hasClassName(li,'over'))
return;MB.removeClassName(li,'over');var ul=MB.GetChildUL(li);if(ul&&ul.className.match("_persistent")){var nodelist=MB.GetOpenState(li);nodelist=nodelist.replace(new RegExp("," +li.id +"\\b"),"");MB.SetOpenState(li,nodelist);}
var ps=li.previousSibling,ns=li.nextSibling;if(ps){MB.removeClassName(ps,'prev_sibling');}
if(ns){MB.removeClassName(ns,'next_sibling');}};MB.GetOpenState=function(li){return MB.getData(MB.getTop(li).id +"-CMO")||"";};MB.SetOpenState=function(li,nodelist){MB.setData(MB.getTop(li).id +"-CMO",nodelist);};MB.MenuBeanInit=function(div){if(typeof div=='string')div=document.getElementById(div);if(!!div.mbinited)return;div.mbinited=true;var nodelist=MB.getData(div.id +"-CMO")||"";var item=null;var elements=div.getElementsByTagName("li");var liElements=MB.array(elements);while((item=liElements.pop())){var pn=item.parentNode;if(pn&&pn.nodeName.toLowerCase()=="ul"){pn=pn.parentNode;if(pn&&pn.nodeName.toLowerCase()=="li"&&!MB.hasClassName(pn,'mi_parent')){MB.addClassName(pn,'mi_parent');}}
item.onclick=function(evt){var now=new Date();if((now -MB.lastEventTime)<200)return;MB.lastEventTime=new Date();var target=MB.getTarget(evt);if(MB.hasClassName(target,'over')){MB.SetInActive(target,true);}
else{MB.SetActive(target);}};if(!item.parentNode.className.match(/_persistent/)){item.onmouseover=function(evt){try{MB.SetActive(this);}catch(e){}};item.onmouseout=function(evt){try{MB.SetInActive(this);}catch(e){}};}else{var tmpId="," +item.id;if(nodelist.indexOf(tmpId)== -1){MB.SetInActive(item);}}}
if(document.getElementById){var liList=nodelist.split(",");for(var h=0;h<liList.length;h++){var id=liList[h];if(id){var li=document.getElementById(id);if(li){MB.SetActive(li);}}}}};MB.scan=function(start){if(typeof start=='string')start=document.getElementById(start);var m,div,s=(start||document),i,ib;if(document.evalute){var result=document.evaluate("//div[contains(@class,'menubean')]",s,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(i=0,ib=result.snapshotLength;i<ib;i++){m[m.length]=result.snapshotItem(i);}}else{m=s.getElementsByTagName("div");}
for(i=0,ib=m.length;i<ib;i++){div=m[i];if((div.className||'').match(/menubean/))
MB.MenuBeanInit(div);}};
if(typeof cms_js_includes != 'undefined') {
 cms.addJSInclude('/resources/dyn/docroot/cms/js/bean/MenuBean.js/_fn/MenuBean.js');
}

