function navbar_textmenu_stack(m_root){this.element=[];this.m_root=m_root}
function navbar_textmenu(menubarid,navtree,options,styleOptions)
{var me=this;me.m_timeout=null;me.showItem=function(e,bShow)
{function doslowfadein(){e.m_opacity+=bShow?10:-10;if((bShow&&e.m_opacity>=me.styleOptions.level1.m_iOpacity)||
(!bShow&&e.m_opacity<=0)){clearInterval(e.m_interval);e.m_interval=e.m_opacity=undefined;if(!bShow)
{e.style.visibility='hidden'}navbar_textmenu.setOpacity(e,me.styleOptions.level1.m_iOpacity)}
else{navbar_textmenu.setOpacity(e,e.m_opacity)}}if(me.styleOptions.level1.m_bFade){if(e.m_interval!==undefined)
{clearInterval(e.m_interval)}else{e.m_opacity=bShow?0:me.styleOptions.level1.m_iOpacity}e.style.visibility='visible';
navbar_textmenu.setOpacity(e,e.m_opacity);e.m_interval=setInterval(doslowfadein,75/me.styleOptions.level1.m_iFadeSpeed)}
else{e.style.visibility=bShow?'visible':'hidden'}};me.mouseOver=function(id){function domouseover()
{clearTimeout(me.m_timeout);me.m_stack.pushMenu(id)}return domouseover};me.mouseOut=function()
{function domouseout(){function dotimeout(){me.m_stack.pushMenu(null)}clearTimeout(me.m_timeout);me.m_timeout=setTimeout
(dotimeout,me.options.m_iTimeOut)}return domouseout};me.subMenuClick=function()
{function dosubmenuclick(){clearTimeout(me.m_timeout);me.m_stack.pushMenu(null)}
return dosubmenuclick};me.selectStart=function(){return false};
me.options={'m_bIsPreview':false,'m_sCssClass':'','m_sScriptId':'','m_bNoScript':false,'m_bStaticScript':
false,'m_bVertical':false,'m_iTimeOut':500,'m_bPopupBelow':1,'m_bPopupRight':1,'m_iPopupAlignmentH':0,
'm_iPopupAlignmentV':0};if(options){me.options=NavBar.mergeOptions
(me.options,options)}me.styleOptions={'m_iMaxCssLevel':1,'top':
{'m_sSpacerText':'','m_sPrefix':'','m_sPostfix':'','m_bNumbersOnly':true,'link':{'m_sPrefix':'','m_sPostfix':''}}
,'level1':{'m_iFirstPopupOffset':1,'m_iInterPopupOffset':1,'m_bFirstPopupSameSize':true,'m_iMinWidth':0,'m_iOpacity':100,
'm_bFade':false,'m_iFadeSpeed':5,'separator':{'m_bAllowSeparators':true}}};if(styleOptions)
{me.styleOptions=NavBar.mergeOptions(me.styleOptions,styleOptions)}if(navtree===null||navtree.childArray===null)
{return}var elemDiv=document.getElementById(menubarid);if(elemDiv===null){var elemScript=document.getElementById
(this.options.m_sScriptId);if(elemScript===null){return}elemDiv=document.createElement('DIV');
elemScript.parentNode.insertBefore(elemDiv,elemScript);
elemDiv.id=this.options.m_sId;elemDiv.className=this.options.m_sCssClass;elemDiv.style.position='absolute';
elemDiv.style.left=this.options.m_iLeft+'px';elemDiv.style.top=this.options.m_iTop+'px';
elemDiv.style.width=this.options.m_iWidth+'px';elemDiv.style.height=this.options.m_iHeight+'px'}
else{this.options.m_sCssClass=elemDiv.className}me.createBar=function(menubarid,navtree,elemDiv)
{if(!navtree||!navtree.childArray){return}me.addTree(elemDiv,menubarid,null,null,navtree,
0,false,false,false,!this.options.m_bNoScript)};me.createMenu=function(elemDiv,idParent,idMenu,parenttree,level)
{var bAnyChildren=navbar_textmenu.hasChildren(parenttree);var cssLevel=(level>this.styleOptions.m_iMaxCssLevel)
?this.styleOptions.m_iMaxCssLevel:level;var levelStyleOptions=me.styleOptions['level'+cssLevel];
var elemTable=document.createElement('TABLE');
elemTable.className=this.options.m_sCssClass+'_level'+cssLevel;elemTable.id=idMenu;
elemTable.style.visibility='hidden';navbar_textmenu.setOpacity(elemTable,levelStyleOptions.m_iOpacity);
elemTable.style.zIndex='100';elemTable.style.position='absolute';elemDiv.parentNode.insertBefore(elemTable,elemDiv);
var elemTBody=document.createElement('TBODY');elemTable.appendChild(elemTBody);
me.addTree(elemDiv,idMenu,elemTBody,idParent,parenttree,level,this.styleOptions.level1.separator.m_bAllowSeparators,
true,bAnyChildren,true)};me.addTree=function(elemDiv,idMenu,elemTBody,idParent,navtree,level,allowSeparators,allowImage,
forceImage,allowSubMenus){var linkArray=[];if(level===0&&this.styleOptions.top.m_sPrefix!==''){elemDiv.appendChild
(document.createTextNode(this.styleOptions.top.m_sPrefix))}for(var index=0;index<navtree.childArray.length;index+=1)
{if(level===0&&index!==0){var elemSpacer=document.createTextNode(this.styleOptions.top.m_sSpacerText);elemDiv.appendChild
(elemSpacer)}var treeitem=navtree.childArray[index];var bHasChildren=treeitem.childArray&&(treeitem.childArray.length>0);
var idItem=idMenu+'_I'+index.toString();var idSubMenu=(bHasChildren)?(idMenu+'_P'+index.toString()):null;
var addImage=(bHasChildren||forceImage)&&allowImage;if(treeitem.bSeparator&&allowSeparators)
{this.addLink(elemDiv,idMenu,elemTBody,idParent,index,idItem+'_sep',null,null,true,level,false)}
var elemItem=me.addLink(elemDiv,idMenu,elemTBody,idParent,index,idItem,treeitem,idSubMenu,false,level,addImage,allowSubMenus);
me.addRollover(elemItem,idItem);linkArray.push(elemItem)}if(level===0&&this.styleOptions.top.m_sPrefix!=='')
{elemDiv.appendChild(document.createTextNode(this.styleOptions.top.m_sPostfix))}return linkArray};me.addLink=function
(elemDiv,idMenu,elemTBody,idParent,index,idItem,menuitem,idSubMenu,bSeparator,level,addImage,allowSubMenus)
{var elemParent=(level===0)?elemDiv:me.addRow(elemTBody,idItem);var elemItem=null;if(bSeparator)
{elemItem=document.createElement('HR')}else if(menuitem.sUrl===''){elemItem=document.createElement('SPAN')}
else{elemItem=document.createElement('A');elemItem.href=menuitem.sUrl;elemItem.target=(menuitem.sTarget)
?menuitem.sTarget:'_self'}elemItem.m_depth=level;elemItem.m_parent=(level===0)
?null:idParent;elemItem.id=idItem;elemItem.className='';if(!bSeparator){if(level!==0)
{elemItem.style.display='block'}var sTitle=level===0&&this.styleOptions.top.m_bNumbersOnly?(index+1).toString()
:menuitem.sTitle;sTitle=level===0?(this.styleOptions.top.link.m_sPrefix+sTitle+this.styleOptions.top.link.m_sPostfix)
:sTitle;var elemText=document.createTextNode(sTitle);elemItem.appendChild(elemText);
elemItem.m_idchild=idSubMenu;elemItem.m_menu=(level===0)?null:idMenu;if(idSubMenu)
{elemItem.className+=' hassubmenu'}if(addImage){if(idSubMenu){elemItem.className+=
(this.options.m_bPopupRight)?' hassubmenu_right':' hassubmenu_left'}var elemImg=document.createElement('IMG');
elemImg.src='';elemImg.style.borderStyle='none';elemImg.style.visibility='hidden';elemImg.style.height='1px';
if(this.options.m_bPopupRight){elemItem.appendChild(elemImg)}else{elemItem.insertBefore(elemImg,elemText)}}
if(menuitem.bIsCurrentPage===true){elemItem.className+=' currentpage'}}elemParent.appendChild(elemItem);
if(idSubMenu&&allowSubMenus){this.createMenu(elemDiv,idItem,idSubMenu,menuitem,level+1)}return elemItem}
;me.addRow=function(elemTBody,idItem){var elemTr=elemTBody.insertRow(-1);var elemTd=elemTr.insertCell(-1);
me.addRollover(elemTd,idItem);elemTd.onclick=this.subMenuClick();return elemTd};me.addRollover=function(e,idItem)
{e.onmouseover=this.mouseOver(idItem);e.onmouseout=this.mouseOut();e.onselectstart=me.selectStart};
me.m_stack=new navbar_textmenu_stack(me);me.createBar(menubarid,navtree,elemDiv);if(this.options.m_bNoScript)
{external.NavNoScriptWrite(elemDiv.outerHTML+'\n');external.NavNoScriptComplete()}}navbar_textmenu.setOffsetWidth=function
(elem,desiredWidth){elem.style.width=desiredWidth+'px';var iNewOffsetWidth=elem.offsetWidth;
var iNewWidth=(desiredWidth*2-iNewOffsetWidth);elem.style.width=iNewWidth+'px'};
navbar_textmenu.setOffsetHeight=function(elem,desiredHeight){elem.style.height=desiredHeight+'px';
var iNewOffsetHeight=elem.offsetHeight;var iNewHeight=(desiredHeight*2-iNewOffsetHeight);
elem.style.height=iNewHeight+'px'};navbar_textmenu.setOpacity=function(e,opacity){e.style.opacity=(opacity==100)?'':
(opacity/100);e.style.filter=(opacity==100)?'':'alpha(opacity='+opacity+')'};navbar_textmenu.hasChildren=function
(navtree){for(var index=0;index<navtree.childArray.length;index+=1){var treeitem=navtree.childArray[index];
if(treeitem.childArray&&(treeitem.childArray.length>0)){return true}}return false};
navbar_textmenu_stack.prototype.pushMenu=function(idelem){var newelements=[];for(var id=idelem;id;)
{newelements.unshift(id);id=document.getElementById(id).m_parent}for(var index=this.element.length-1;index>=0;index-=1)
{if((index>=newelements.length)||(this.element[index]!=newelements[index])){this.popMenu()}else{break}}index+=1;
for(;index<newelements.length;index+=1){var e=document.getElementById(newelements[index]);e.className+=' open';
this.element.push(e.id);if(e.m_idchild){this.showMenu(e)}}};navbar_textmenu_stack.prototype.popMenu=function()
{if(this.element.length>0){var e=document.getElementById(this.element.pop());var i=e.className.lastIndexOf(' open');
if(i!==-1){e.className=e.className.substring(0,i)}if(e.m_idchild){this.m_root.showItem(document.getElementById
(e.m_idchild),false)}}};navbar_textmenu_stack.prototype.showMenu=function(p){var e=document.getElementById
(p.m_idchild);var pm=(p.m_menu)?document.getElementById(p.m_menu):p;var top=0;var left=0;if(p.m_depth!==0)
{top-=e.childNodes[0].childNodes[0].offsetTop}var c=p;while(c&&c.style.position!=='relative')
{top+=c.offsetTop;c=c.offsetParent}c=pm;while(c&&c.style.position!=='relative')
{left+=c.offsetLeft;c=c.offsetParent}if(this.m_root.options.m_bVertical||p.m_depth!==0)
{var k=p.m_depth===0?this.m_root.styleOptions.level1.m_iFirstPopupOffset:
this.m_root.styleOptions.level1.m_iInterPopupOffset;if(this.m_root.options.m_bPopupRight)
{left+=pm.offsetWidth+k}else{left-=e.offsetWidth+k}if(!this.m_root.options.m_bPopupBelow)
{top-=(e.offsetHeight-p.offsetHeight-(this.m_root.styleOptions.level1.m_iInterPopupOffset*2))}}else
{if(p.m_depth===0){if(this.m_root.options.m_bPopupBelow){top+=p.offsetHeight+
this.m_root.styleOptions.level1.m_iFirstPopupOffset}else{top-=(e.offsetHeight+
this.m_root.styleOptions.level1.m_iFirstPopupOffset)}}}if(p.m_depth===0)
{if(this.m_root.options.m_bVertical){if(this.m_root.options.m_iPopupAlignmentV===1)
{top+=(p.offsetHeight-e.offsetHeight)/2}else if(this.m_root.options.m_iPopupAlignmentV===2)
{top+=p.offsetHeight-e.offsetHeight}}else{if(this.m_root.options.m_iPopupAlignmentH===1)
{left+=(p.offsetWidth-e.offsetWidth)/2}else if(this.m_root.options.m_iPopupAlignmentH===2)
{left+=p.offsetWidth-e.offsetWidth}}}top=Math.max(0,Math.min
(document.body.scrollTop+document.body.clientHeight-e.offsetHeight,top));left=Math.max
(0,Math.min(document.body.scrollLeft+document.body.clientWidth-e.offsetWidth,left));e.style.top=top+'px';
e.style.left=left+'px';this.m_root.showItem(e,true)};
