/** Animated TreeMenu script by Garrett Smith.
 *
 *  URL:   http://dhtmlkitchen.com/
 *  email: admin@dhtmlkitchen.com
 *
 *  Usage: http://dhtmlkitchen.com/dhtml/ui/menutree/
 *
 */
TreeGlobals={
browser:new function(){var ua=navigator.userAgent;this.OPERA=ua.indexOf("Opera")>0;this.NS4=typeof document.layers!="undefined";this.ICAB=ua.toLowerCase().indexOf("icab")>0;this.IE5=ua.indexOf("MSIE 5")>0&&!this.OPERA;this.MAC=navigator.platform.indexOf("PPC")>0;this.MAC_IE5=this.MAC>0&&this.IE5;},inited:false};
if(typeof window.TreeParams=="undefined")TreeParams={
OPEN_MULTIPLE_MENUS:false,OPEN_MULTIPLE_SUBMENUS:false,TIME_DELAY:TreeGlobals.browser.MAC_IE5?20:30,TIME_DELAY_OPEN:this.TIME_DELAY,TIME_DELAY_CLOSE:this.TIME_DELAY,OPEN_WHILE_CLOSING:true,OPEN_MENU_ICON:"img/open-menu-blue.gif",CLOSED_MENU_ICON:"img/closed-menu-blue.gif"};function toggleMenu(HtmlLabel){if(TreeGlobals.browser.OPERA||TreeGlobals.browser.NS4) return;var l=TreeFunctions.getLabel(HtmlLabel);if(l.menu.blocked) return;var root=l.menu.root();if(!l.menu.isSub&&root.mto||l.menu.isSub&&l.menu.pM.mto!=null) return;if(l.isDepressed){if (root.aM==l.menu||l.menu.isSub&&l.menu.pM.aM==l.menu){TreeFunctions.cls(l.menu);if(!l.menu.isSub)root.aM=null;else
l.menu.pM.aM=null;}}
else{if(!l.menu.isSub)root.mto=l.menu;else
l.menu.pM.mto=l.menu;if(l.icon!=null)l.icon.src=TreeParams.OPEN_MENU_ICON;if(TreeParams.OPEN_MULTIPLE_MENUS&&!l.menu.isSub||root.aM==null||(l.menu.isSub&&(TreeParams.OPEN_MULTIPLE_SUBMENUS||l.menu.pM.aM==null)))TreeFunctions.opn(l.menu);else if(root.aM!=null&&!l.menu.isSub){TreeFunctions.cls(root.aM);if(TreeParams.OPEN_WHILE_CLOSING)TreeFunctions.opn(l.menu);else
root.aM.queued=l.menu;}
else if(l.menu.isSub){if(TreeParams.OPEN_WHILE_CLOSING)TreeFunctions.cls(l.menu.pM.aM,l.menu);else
root.aM.queued=l.menu;TreeFunctions.opn(l.menu);}
if(!l.menu.isSub)root.aM=l.menu;else
l.menu.pM.aM=l.menu;}}
function activateMenu(sButtonId){if(!window.toggleMenu)return;var button=document.getElementById(sButtonId);if(!button) return;toggleMenu(button.getElementsByTagName("span")[0]);}
function buttonOver(el){window.status=el.parentNode.id;l=TreeFunctions.getLabel(el);if(new RegExp("labelHover").test(l.el.className))return;l.el.className+=" labelHover";}
function buttonOff(l){window.status=window.defaultStatus;TreeUtils.removeClass(l,"labelHover");}
if(typeof document.getElementsByTagName!="function"||TreeGlobals.browser.OPERA)buttonOver=buttonOff=function(){};Button=function(el,cat){this.el=el;this.cat=cat;this.menu=new Menu(document.getElementById(this.cat+"Menu"),this);var icons=el.getElementsByTagName("img");this.icon=(icons.length>0) ?
icons[0]:null;this.isIcon=false;if(el.tagName=="IMG"){this.isIcon=true;this.icon=el;}
this.isDepressed=false;};Menu=function(el,l){this.ownerButton=l;this.id=l.cat;this.el=el;this.items=TreeUtils.getChildNodesWithClass(this.el,"div","menuNode");this.all=TreeUtils.getElementsWithClass(this.el,"div","menuNode");this.cur=0;this.blocked=false;this.pM=TreeUtils.findAncestorWithClass(l.el,"menu");this.isSub=this.pM!=null;this._root=null;if(this.isSub)this.pM.mto=null;this.mto=null;this.aM=null;this.queued=null;};Menu.prototype={open:function(){this.ito[this.cur].style.display="block";if(++this.cur==this.ito.length)this.performActionEnd("block");},close:function(){this.itc[this.cur].style.display="none";if(++this.cur==this.itc.length)this.performActionEnd("none");},performActionEnd:function(sDisplay){this.el.style.display=sDisplay;this.timer=clearInterval(this.timer);if(sDisplay=='block')if(this.isSub)this.pM.mto=null;else TreeList[this.root().id].mto=null;else{TreeFunctions.setDefaultLabel(this.ownerButton);if(!TreeGlobals.OPEN_WHILE_CLOSING&&this.queued!=null)TreeFunctions.opn(this.queued);this.queued=null;}
TreeUtils.repaintFix(this._root);this.blocked=false;},root:function(){if(this._root==null){var rt=TreeUtils.findAncestorWithClass(this.el,"AnimTree");if(rt==null)rt=document.body;if(!rt.id)rt.id="AnimTree_"+Math.round(Math.random() * 100);if(TreeList[rt.id]!=null){this._root=TreeList[rt.id];this._root.menus[this.id]=this;}
else
this._root=new Tree(rt,this);}
return this._root;}};Tree=function(el,menu){this.el=el;this.aM=null;this.menus[menu.id]=menu;this.mto=null;this.id=el.id;TreeList[this.id]=this;};Tree.prototype.menus=new Object();TreeList={};TreeFunctions={
getLabel:function(el){var menuName=TreeUtils.findAncestorWithClass(el,"button").id;var b;for(var tree in TreeList)if(TreeList[tree].menus[menuName]!=null)return TreeList[tree].menus[menuName].ownerButton;return new Button(el,menuName);},initMenu:function(){if(document.getElementById&&!TreeGlobals.browser.OPERA&&!TreeGlobals.inited){document.writeln("<style type='text/css'>");document.writeln("/*<![CDATA[ */");document.write(".menu,.menuNode{display:none;}");document.writeln("/* ]]>*/");document.write("<"+"/style>");TreeGlobals.inited=true;}},opn:function(menu){menu.blocked=true;menu.cur=0;menu.ito=new Array();menu.el.style.display="block";if(menu.itc&&menu.itc.length>menu.items.length)menu.ito=menu.itc.reverse();else
menu.ito=menu.items;if(!menu.ownerButton.isIcon)menu.ownerButton.el.className+=" labelDown";menu.timer=setInterval(
"TreeList."+menu.root().id+".menus."+menu.id+".open()",TreeParams.TIME_DELAY);menu.ownerButton.isDepressed=true;},cls:function(menu){menu.blocked=true;menu.cur=0;menu.itc=new Array();for(var i=menu.all.length,counter=0;i>1;i--)if(menu.all[i-1].style.display=="block")menu.itc[counter++]=menu.all[i-1];menu.itc[menu.itc.length]=menu.el;menu.timer=setInterval(
"TreeList."+menu.root().id+".menus."+menu.id+".close()",TreeParams.TIME_DELAY);menu.ownerButton.isDepressed=false;},setDefaultLabel:function(button){if(button.isIcon)return void( button.icon.src=TreeParams.CLOSED_MENU_ICON);TreeUtils.removeClass(button.el,"labelHover");TreeUtils.removeClass(button.el,"labelDown");if(button.icon!=null)button.icon.src=TreeParams.CLOSED_MENU_ICON;}};TreeFunctions.initMenu();
TreeUtils={getChildNodesWithClass:function(parent,tagName,klass){var coll;var rtn=[];var coll=parent.childNodes;for(var i=0,counter=0;i<coll.length;i++){if(!coll[i].className||coll[i].tagName.toUpperCase()!=tagName.toUpperCase())continue;if(coll[i].className.test(klass," "))rtn[counter++]=coll[i];}
return rtn;},getElementsWithClass:function(parent,tagName,klass){var coll;var rtn=[];if(parent.all&&tagName=="*") coll=parent.all;else coll=parent.getElementsByTagName(tagName);for(var i=0,counter=0;i<coll.length;i++){if(coll[i].className!=null&&coll[i].className.test(klass," "))rtn[counter++]=coll[i];}
return rtn;},findAncestorWithClass:function(el,klass){for(var parent=el.parentNode;parent!=null;){if(parent.className!=null&&parent.className.test(klass," "))return parent;parent=parent.parentNode;}
return null;},removeClass:function(el,klass){var newClass="";var list=el.className.split(" ");for(var i=0;i<list.length;i++)if(list[i]!=klass)newClass+=list[i]+" ";el.className=newClass.normalize();},repaintFix:function(tree){if(!tree.aM) return;tree.aM.el.style.visibility="hidden";tree.aM.el.style.visibility="";}};String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"");};String.prototype.normalize=function(){return this.trim().replace(/\s\s+/g," ");};
String.prototype.test=function(inp,delim){var exps=getTokenizedExps(inp,delim);return(exps.global.test(this)||exps.ends.test(this));};function getTokenizedExps(inp,delim){return{global:new RegExp(delim+inp+delim,"\g"),ends:new RegExp("^"+inp+delim+"|^"+inp+"$|"+delim+inp+"$","\g")};}
