  TreeGlobals = {
  
      activeMenu : null,
      menuToOpen : null,
      
      browser:new function(){
          this.OPERA   = (navigator.userAgent.indexOf("Opera")> 0);
          this.NS4     = (typeof document.layers != "undefined");
          this.ICAB    = (navigator.userAgent.toLowerCase().indexOf("icab")> 0);
          this.IE5     = (navigator.userAgent.indexOf("MSIE 5")> 0 && !this.OPERA);
          this.MAC     = (navigator.platform.indexOf("PPC")> 0);
          this.MAC_IE5 = this.IE5 && (navigator.platform.indexOf("PPC")> 0);
      },
      
      inited:false,
      one:1
  };
  
  if(typeof window.TreeParams == "undefined")
      TreeParams = {
  
      OPEN_MULTIPLE_MENUS   : false,
      OPEN_MULTIPLE_SUBMENUS: false,
      
      TIME_DELAY            : 15,
      OPEN_WHILE_CLOSING    : true,
      
      OPEN_MENU_ICON        : "",
      CLOSED_MENU_ICON      : ""
  
  };
  
function toggleMenu(label){
if(TreeGlobals.browser.OPERA||TreeGlobals.browser.NS4)return;
var button1=TreeUtils.findAncestorWithClass(label,"button1");
if(typeof button1.label=="undefined")TreeFunctions.initbutton1(button1, label);
if(!button1.menu.isSubmenu&&TreeGlobals.menuToOpen||button1.menu.isSubmenu&&button1.menu.parentMenu.menuToOpen!=null)return;
if(button1.isDepressed){
if(TreeGlobals.activeMenu==button1.menu||button1.menu.isSubmenu&&button1.menu.parentMenu.activeMenu==button1.menu||TreeParams.OPEN_MULTIPLE_MENUS||TreeParams.OPEN_MULTIPLE_SUBMENUS){
TreeFunctions.closeMenu(button1.menu,"TreeFunctions.setDefaultLabel('"+button1.id+"')");
if(!button1.menu.isSubmenu)
TreeGlobals.activeMenu=null;
else
button1.menu.parentMenu.activeMenu=null;}}
else{
if(!button1.menu.isSubmenu)
TreeGlobals.menuToOpen=button1.menu;
else
button1.menu.parentMenu.menuToOpen=button1.menu;
if(button1.label.icon!=null)
button1.label.icon.src=TreeParams.OPEN_MENU_ICON;
if(TreeParams.OPEN_MULTIPLE_MENUS&&!button1.menu.isSubmenu||TreeGlobals.activeMenu==null||(button1.menu.isSubmenu&&
(TreeParams.OPEN_MULTIPLE_SUBMENUS||button1.menu.parentMenu.activeMenu==null)))
TreeFunctions.openMenu(button1.menu);
else if(TreeGlobals.activeMenu!=null&&!button1.menu.isSubmenu)
TreeFunctions.closeMenu(TreeGlobals.activeMenu,
"TreeFunctions.openMenu(TreeGlobals.menuToOpen);TreeFunctions.setDefaultLabel('"
+TreeGlobals.activeMenu.ownerbutton1.id+"');");
else if(button1.menu.parentMenu.activeMenu!=null&&button1.menu.isSubmenu)
TreeFunctions.closeMenu(button1.menu.parentMenu.activeMenu,
"TreeFunctions.openMenu(document.getElementById('"
+button1.menu.id+"'));TreeFunctions.setDefaultLabel('"
+button1.menu.parentMenu.activeMenu.ownerbutton1.id+"');");
if(!button1.menu.isSubmenu)
TreeGlobals.activeMenu=button1.menu;
else
button1.menu.parentMenu.activeMenu=button1.menu;}}
function activateMenu(sbutton1Id){
if(!window.toggleMenu) 
return;
var button1=document.getElementById(sbutton1Id);
if(!button1)return;
var label=button1.getElementsByTagName("span")[0];
toggleMenu(label);
}
function button1Over(label){
window.status=label.parentNode.id;
if(!label.parentNode.isDepressed)
label.className+=" labelHover";
else
label.className+=" labelDown labelHover";}
function button1Off(label){
window.status=window.defaultStatus;
TreeUtils.removeClass(label,"labelHover");}
TreeFunctions={
initbutton1 : function(button1, label){
button1.label=label;
button1.catagory=button1.id;
button1.menuName=String(button1.catagory)+"Menu"
button1.menu=document.getElementById(button1.menuName);
button1.menu.ownerbutton1=button1;
var icons=button1.label.getElementsByTagName("");
label.icon=(icons.length>0) ? 
icons[0] : null;
if(label.tagName==""){
label.isIcon=true;
label.icon=label;
}
button1.menu.items=TreeUtils.getChildNodesWithClass(button1.menu, 
"div", "menuNode");
button1.menu.allItems=TreeUtils.getElementsWithClass(button1.menu, 
"div", "menuNode");
button1.menu.isSubmenu=TreeUtils.findAncestorWithClass(button1,"menu")!=null;if(button1.menu.isSubmenu){
button1.menu.parentMenu=TreeUtils.findAncestorWithClass(button1,"menu");
if(typeof button1.menu.parentMenu.activeMenu == "undefined"){
button1.menu.parentMenu.activeMenu=null;
button1.menu.parentMenu.menuToOpen=null;
}
}button1.menu.activeMenu=null;
button1.isDepressed=false;
button1.menu.performAction=TreeFunctions.performAction;
},initMenu:function(){
if(document.getElementById&&!TreeGlobals.browser.OPERA&&!TreeGlobals.inited){
document.write("<style type='text/css'>");
document.write("/* <![CDATA[ */");
document.write(".menu,.menuNode{display:none;}");
document.write("/* ]]> */");
document.write("<"+"/style>");
TreeGlobals.inited=true;}},
openMenu:function(menu){
var delay=TreeParams.TIME_DELAY;
if(menu==null||
!menu.isSubmenu&&TreeGlobals.menuToOpen&&TreeGlobals.menuToOpen!=menu||menu.isSubmenu&&menu.parentMenu.menuToOpen!=menu||TreeGlobals.menuToOpen==menu&&menu.isOpening)
return;
menu.itemsToOpen=new Array();
if(menu.itemsToClose&&menu.itemsToClose.length>menu.items.length){
menu.itemsToOpen=menu.itemsToClose.reverse();}
else
for(var i=0,counter=0;i<menu.items.length;i++){
var item=menu.items[i];
if(item.style.display!="none")
item.style.display="none";
menu.itemsToOpen[counter++]=item;
if(item.menu&&item.isDepressed){
TreeFunctions.addActionItems(menu,menu,counter,item.menu);}}
if(!menu.ownerbutton1.label.isIcon)
menu.ownerbutton1.label.className+=" labelDown";
menu.style.display="block";
menu.performAction(0,menu.itemsToOpen.length,"block")
menu.ownerbutton1.isDepressed=true;},
addActionItems:function(menuInAction,menu,counter,submenu){
for(var i=0;i<submenu.items.length;i++){
menuInAction.itemsToOpen[counter++]=submenu.items[i];
if(submenu.items[i].menu)
TreeFunctions.addActionItems(menu,submenu,counter,
submenu.items[i].menu);}},
closeMenu:function(menu,sEvalCode){
menu.itemsToClose=new Array();
for(var i=menu.allItems.length,counter=0;i>1;i--){
if(menu.allItems[i-1].style.display=="block")
menu.itemsToClose[counter++]=menu.allItems[i-1];}
menu.itemsToClose[menu.itemsToClose.length]=menu;
menu.performAction(0,menu.itemsToClose.length,"none")
if(TreeParams.OPEN_WHILE_CLOSING)
setTimeout(sEvalCode,10 );
else menu.sEvalCode=(sEvalCode!=null)?sEvalCode:";";
menu.ownerbutton1.isDepressed=false;},
performAction:function(iCurr,iTotal,sDisplay){
if(sDisplay=="block")
this.itemsToOpen[iCurr].style.display="block";

else
this.itemsToClose[iCurr].style.display="none";clearInterval(this.performActionTimer);if(++iCurr<iTotal)
this.performActionTimer=
setInterval("document.getElementById('"+this.id 
+"').performAction("+iCurr+","+iTotal+",'"+sDisplay+"');",
TreeParams.TIME_DELAY); else TreeFunctions.performActionEnd(this,sDisplay); },
performActionEnd:function(menu,sDisplay){ menu.style.display=sDisplay;
TreeFunctions.endAnim(menu,sDisplay=='block')
},endAnim:function(menu,open){ if(open)
if(menu.isSubmenu)
menu.parentMenu.menuToOpen=null;
else TreeGlobals.menuToOpen=null;else if(!TreeGlobals.OPEN_WHILE_CLOSING)
eval(menu.sEvalCode );},
setDefaultLabel:function(button1Id){
var button1=document.getElementById(button1Id);
if(button1.label.isIcon)
return void(button1.label.icon.src=TreeParams.CLOSED_MENU_ICON);
TreeUtils.removeClass(button1.label,"labelHover");
TreeUtils.removeClass(button1.label,"labelDown");
if(button1.label.icon!=null)
button1.label.icon.src=TreeParams.CLOSED_MENU_ICON;
TreeGlobals.one=-TreeGlobals.one;
self.resizeBy(0,TreeGlobals.one);}};
TreeFunctions.initMenu();
TreeUtils={
getChildNodesWithClass:function(parent,tagName,className){
var collection;
var returnedCollection=[];
var classArray=className.split(" ");
var collection=parent.childNodes;
for(var i=0,counter=0;i<collection.length;i++){
if(!collection[i].className||collection[i].tagName.toUpperCase()!=tagName.toUpperCase())
continue;
var elmClassArray=collection[i].className.split(" ");
jloop:
for(var j=0;j<elmClassArray.length;j++)
for(var k=0;k<classArray.length;k++)
if(elmClassArray[j]==classArray[k]){
if(!collection[i].id)
collection[i].id=parent.id+"_item"+counter;
returnedCollection[counter++]=collection[i];
break jloop;}}
return returnedCollection;},
getElementsWithClass:function(parent,tagName,className){
var collection;
var returnedCollection=[];
var classArray=className.split(" ");
if(parent.all&&tagName=="*")collection=parent.all;
else collection=parent.getElementsByTagName(tagName);
for(var i=0,counter=0;i<collection.length;i++){
if(!collection[i].className)continue;
var elmClassArray=collection[i].className.split(" ");
jloop:for(var j=0;j<elmClassArray.length;j++)
for(var k=0;k<classArray.length;k++)
if(elmClassArray[j]==classArray[k]){
returnedCollection[counter++]=collection[i];
break jloop;}}
return returnedCollection;},
findAncestorWithClass:function(el,klass){
var parent=el.parentNode;
while(parent){
if(parent.className){
var classList=parent.className.split(" ");
for(var i=0;i<classList.length;i++)
if(classList[i]==klass)return parent;}
parent=parent.parentNode;}
return null;},
removeClass:function(el,name){
if(el.className==null)return;
var classList=el.className.split(" ");
var newClasslist="";
for(var i=0;i<classList.length;i++)
if(classList[i]!=name)
newClasslist+=classList[i]+ " ";
el.className=newClasslist.trim();}};
Array.prototype.contains=function(obj){
for(var i=0;i<this.length;i++)
if(this[i]==obj)return true;
return false;};
String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"");};
