// Code to determine the browser and version.
function Browser()
{var ua,s,i;this.isIE=false;this.isNS=false;this.version=null;ua=navigator.userAgent;
 s="MSIE";if((i=ua.indexOf(s))>=0){this.isIE=true;this.version=parseFloat(ua.substr(i+s.length));return;}
 s="Netscape6/";if((i=ua.indexOf(s))>=0){this.isNS=true;this.version=parseFloat(ua.substr(i+s.length));return;}
 s="Gecko";if((i=ua.indexOf(s))>=0){this.isNS=true;this.version=6.1;return;}
}
var browser=new Browser();
// Code for handling the Menu bar and active button.
var activeButton=null;
if(browser.isIE){document.onmousedown=pageMousedown;}else{document.addEventListener("mousedown",pageMousedown,true);}
function pageMousedown(event)
{var el;
 if(activeButton==null){return;}
 if(browser.isIE){el=window.event.srcElement;}else{el=(event.target.tagName?event.target:event.target.parentNode);}
 if(el==activeButton){return;}
 if(getContainerWith(el,"DIV","Menu")==null){resetButton(activeButton);activeButton=null;}
}
function buttonClick(event,MenuId)
{var button;
 if(browser.isIE){button=window.event.srcElement;}else{button=event.currentTarget;}
 button.blur();
 if(button.Menu==null){button.Menu=document.getElementById(MenuId);if(button.Menu.isInitialized==null){MenuInit(button.Menu);}}
 if(button.onmouseout==null){button.onmouseout=buttonOrMenuMouseout;}
 if(button==activeButton){return false;}
 if(activeButton!=null){resetButton(activeButton);}
 if(button!=activeButton){depressButton(button);activeButton=button;}else{activeButton=null;}
 return false;
}
function buttonMouseover(event,MenuId)
{var button;
 if(activeButton==null){buttonClick(event, MenuId);return;}
 if(browser.isIE){button=window.event.srcElement;}else{button=event.currentTarget;}
 if(activeButton!=null&&activeButton!=button){buttonClick(event,MenuId);}
}
function depressButton(button)
{var x, y;
 button.className+=" MenuButtonActive";
 if(button.onmouseout==null){button.onmouseout=buttonOrMenuMouseout;}
 if(button.Menu.onmouseout==null){button.Menu.onmouseout=buttonOrMenuMouseout;}
 x=getPageOffsetLeft(button);y=getPageOffsetTop(button)+button.offsetHeight;
 if(browser.isIE){x+=button.offsetParent.clientLeft;y+=button.offsetParent.clientTop;}
 button.Menu.style.left=x+"px";button.Menu.style.top=y+"px";button.Menu.style.visibility="visible";
}
function resetButton(button)
{removeClassName(button,"MenuButtonActive");
 if(button.Menu!=null){closeSubMenu(button.Menu);button.Menu.style.visibility="hidden";}
}
// Code to handle the Menus and sub Menus.
function MenuMouseover(event)
{var Menu;
 if(browser.isIE){Menu=getContainerWith(window.event.srcElement,"DIV","Menu");}else{Menu=event.currentTarget;}
 if(Menu.activeItem!=null){closeSubMenu(Menu);}
}
function MenuItemMouseover(event,MenuId)
{var item,Menu,x,y;
 if(browser.isIE){item=getContainerWith(window.event.srcElement,"A","MenuItem");}else{item=event.currentTarget;}
 Menu=getContainerWith(item,"DIV","Menu");
 if(Menu.activeItem!=null){closeSubMenu(Menu);}
 Menu.activeItem=item;item.className+=" MenuItemHighlight";
 if(item.subMenu==null){item.subMenu=document.getElementById(MenuId);if(item.subMenu.isInitialized==null){MenuInit(item.subMenu);}}
 if(item.subMenu.onmouseout==null){item.subMenu.onmouseout=buttonOrMenuMouseout;}
 x=getPageOffsetLeft(item)+item.offsetWidth;y=getPageOffsetTop(item);
 var maxX,maxY;
 if(browser.isNS){maxX=window.scrollX +window.innerWidth;maxY=window.scrollY+window.innerHeight;}
 if(browser.isIE){maxX=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft)+(document.documentElement.clientWidth!=0?document.documentElement.clientWidth:document.body.clientWidth);maxY=Math.max(document.documentElement.scrollTop,document.body.scrollTop)+(document.documentElement.clientHeight!=0?document.documentElement.clientHeight:document.body.clientHeight);}
 maxX-=item.subMenu.offsetWidth;maxY-=item.subMenu.offsetHeight;
 if(x>maxX){x=Math.max(0,x-item.offsetWidth-item.subMenu.offsetWidth+(Menu.offsetWidth-item.offsetWidth));}
 y=Math.max(0,Math.min(y,maxY));
 item.subMenu.style.left=x+"px";item.subMenu.style.top=y+"px";item.subMenu.style.visibility="visible";
 if(browser.isIE){window.event.cancelBubble=true;}else{event.stopPropagation();}
}
function closeSubMenu(Menu)
{if(Menu==null||Menu.activeItem==null){return;}
 if(Menu.activeItem.subMenu!=null){closeSubMenu(Menu.activeItem.subMenu);Menu.activeItem.subMenu.style.visibility="hidden";Menu.activeItem.subMenu=null;}
 removeClassName(Menu.activeItem,"MenuItemHighlight");
 Menu.activeItem=null;
}
function buttonOrMenuMouseout(event)
{var el;
 if(activeButton==null){return;}
 if(browser.isIE){el=window.event.toElement;}else if(event.relatedTarget!=null){el=(event.relatedTarget.tagName?event.relatedTarget:event.relatedTarget.parentNode);}
 if(getContainerWith(el,"DIV","Menu")==null){resetButton(activeButton);activeButton = null;}
}
// Code to initialize Menus.
function MenuInit(Menu)
{var itemList,spanList,textEl,arrowEl,itemWidth,w,dw,i,j;
 itemList=Menu.getElementsByTagName("A");
 if(itemList.length>0){itemWidth=itemList[0].offsetWidth;}else{return;}
 for(i=0;i<itemList.length;i++)
 {spanList=itemList[i].getElementsByTagName("SPAN");
  textEl=null;arrowEl=null;
  for(j=0;j<spanList.length;j++)
  {if(hasClassName(spanList[j],"MenuItemText")){textEl=spanList[j];}
   if(hasClassName(spanList[j],"MenuItemArrow")){arrowEl=spanList[j];}
  }
  if(textEl!=null&&arrowEl!=null){textEl.style.paddingRight=(itemWidth-(textEl.offsetWidth+arrowEl.offsetWidth))+"px";}
 }
 if(browser.isIE)
 {w=itemList[0].offsetWidth;itemList[0].style.width=w+"px";dw=itemList[0].offsetWidth-w;w-=dw;itemList[0].style.width=w+"px";}
 Menu.isInitialized=true;
}
// General utility functions.
function getContainerWith(node,tagName,className)
{while(node!=null)
 {if(node.tagName!=null&&node.tagName==tagName&&hasClassName(node,className)){return node;}
  node=node.parentNode;}
 return node;
}
function hasClassName(el,name)
{var i,list;
 list=el.className.split(" ");
 for(i=0;i<list.length;i++)
 if(list[i]==name){return true;}
 return false;
}
function removeClassName(el,name)
{var i,curList,newList;
 if(el.className==null){return;}
 newList=new Array();curList=el.className.split(" ");
 for(i=0;i<curList.length;i++){if(curList[i]!=name){newList.push(curList[i]);}}
 el.className = newList.join(" ");
}
function getPageOffsetLeft(el)
{var x;
 x=el.offsetLeft;
 if(el.offsetParent!=null){x+=getPageOffsetLeft(el.offsetParent);}
 return x;
}
function getPageOffsetTop(el)
{var y;
 y=el.offsetTop;
 if(el.offsetParent!=null){y+=getPageOffsetTop(el.offsetParent);}
 return y;
}

