/** Animated TreeMenu script by Garrett Smith. * *  URL:http://dhtmlkitchen.com/ *  email:admin@dhtmlkitchen.com * *  Usage:see url below (subject to change) *  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 };



function toggleMenu(el){
	if(TreeGlobals.browser.OPERA||TreeGlobals.browser.NS4)return;
		var l=TreeFn.getL(el);
		if(l.m.bk)return;
		if(l.m.cnt.mto!=null)return;
		if(l.isDp){
			if(TreeParams.OPEN_MULTIPLE_MENUS||l.m.cnt.am==l.m){TreeFn.c(l.m);
			l.m.cnt.am=null;
	}} 
	else{if(l.i!=null)l.i.src=TreeParams.OPEN_MENU_ICON;
	l.m.cnt.mto=l.m;if(TreeParams.OPEN_MULTIPLE_MENUS||l.m.cnt.am==null){TreeFn.o(l.m);
} 
else{TreeFn.c(l.m.cnt.am);
if(TreeParams.OPEN_WHILE_CLOSING)TreeFn.o(l.m);
else l.m.cnt.am.mic=l.m;
} 
l.m.cnt.am=l.m;}
} 

function activateMenu(id){
	if(!window.toggleMenu)return;
	var b=document.getElementById(id);
	if(!b)return;toggleMenu(b.getElementsByTagName("span")[0]);
} 



function buttonOver(el){
	window.status=el.parentNode.id;
	l=TreeFn.getL(el);
	if(new RegExp("labelHover").test(l.el.className))return;
	l.el.className+=" labelHover";
} 

function buttonOff(l){
	window.status=window.defaultStatus;
	TreeUt.rc(l,"labelHover");
} 

if(typeof document.getElementsByTagName!="function"||TreeGlobals.browser.OPERA)buttonOver=buttonOff=function(){};
Button=function(el,ct){this.el=el;
this.ct=ct;
this.m=new Menu(document.getElementById(this.ct+"Menu"),this);
var ics=el.getElementsByTagName("img");
this.i=(ics.length>0)?ics[0]:null;
this.isi=false;if(el.tagName=="IMG"){this.isi=true;this.i=el;
} 
this.isDp=false;
};
Menu=function(el,l){this.ob=l;
this.id=l.ct;
this.el=el;
this.it=TreeUt.gcwc(this.el,"div","menuNode");
this.all=TreeUt.gewc(this.el,"div","menuNode");
this.cur=0;this.bk=false;
this._r=null;this.cnt=this.getCnt();
this.mto=null;this.am=null;this.mic=null;}; 
Menu.prototype={o:function(){this.ito[this.cur].style.display="block";
if(++this.cur==this.ito.length)this.end("block");},c:function(){this.itc[this.cur].style.display="none";
if(++this.cur==this.itc.length)this.end("none");},end:function(disp){this.el.style.display=disp;
this.tmr=clearInterval(this.tmr);
if(disp=='block')this.cnt.mto=null;else{TreeFn.sdl(this.ob);
if(!TreeGlobals.OPEN_WHILE_CLOSING&&this.mic!=null)TreeFn.o(this.mic);this.mic=null;} 
setTimeout("TreeUt.rpnt(Trees[\""+this._r.id+"\"])",50);
this.bk=false;},rt:function(){if(this._r==null){var rt=TreeUt.fawc(this.el,"AnimTree");
if(rt==null)rt=document.body;if(!rt.id)rt.id="AnimTree_"+Math.round(Math.random()* 100);
if(Trees[rt.id]!=null){this._r=Trees[rt.id];this._r.ms[this.id]=this;} 
else this._r=new Tree(rt,this);} return this._r;},getCnt:function(){var rt=this.rt();
var pm=TreeUt.fawc(this.el,"menu");if(pm!=null)return rt.ms[pm.id.replace(/Menu$/,"")];return rt;} 
};
Tree=function(el,m){this.el=el;this.am=null;
this.ms[m.id]=m;this.mto=null;this.id=el.id;
Trees[this.id]=this;};
Tree.prototype.ms=new Object();Trees={};
TreeFn={getL:function(el){var mId=TreeUt.fawc(el,"button").id;
var b;
for(var tr in Trees)if(Trees[tr].ms[mId]!=null)return Trees[tr].ms[mId].ob;
return new Button(el,mId);},init:function(){if(document.getElementById&&!TreeGlobals.browser.OPERA&&!TreeGlobals.inited)
{document.writeln("<style type='text/css'>\n/*<![CDATA[ */\n.menu,.menuNode{display:none;}\n/* ]]>*/\n<"+"/style>");TreeGlobals.inited=true;} },o:function(m){m.bk=true;m.cur=0;m.ito=new Array();
m.el.style.display="block";
if(m.itc&&m.itc.length>m.it.length)m.ito=m.itc.reverse();else m.ito=m.it;
if(!m.ob.isi)m.ob.el.className+=" labelDown";
m.tmr=setInterval("Trees."+m.rt().id+".ms."+m.id+".o()",TreeParams.TIME_DELAY);
m.ob.isDp=true;},c:function(m){m.bk=true;m.cur=0;m.itc=new Array();
for(var i=m.all.length-1,ctr=0;i>0;i--)if(m.all[i].style.display=="block")m.itc[ctr++]=m.all[i];m.itc[m.itc.length]=m.el;
m.tmr=setInterval("Trees."+m.rt().id+".ms."+m.id+".c()",TreeParams.TIME_DELAY);
m.ob.isDp=false;},sdl:function(b){if(b.isi)return void(b.i.src=TreeParams.CLOSED_MENU_ICON);
TreeUt.rc(b.el,"labelHover");
TreeUt.rc(b.el,"labelDown");
if(b.i!=null)b.i.src=TreeParams.CLOSED_MENU_ICON;} };
TreeFn.init();
TreeUt={gcwc:function(p,tn,cl){var col;
var rCol=[];
var col=p.childNodes;for(var i=0,ctr=0;i<col.length;i++){if(!col[i].className||col[i].tagName.toUpperCase()!=tn.toUpperCase())continue;
if(col[i].className.test(cl," "))rCol[ctr++]=col[i];} 
return rCol;},gewc:function(p,tn,cl){var col;var rCol=[];if(p.all&&tn=="*")col=p.all;
else col=p.getElementsByTagName(tn);
for(var i=0,ctr=0;i<col.length;i++){if(col[i].className!=null&&col[i].className.test(cl," "))rCol[ctr++]=col[i];} 
return rCol;},fawc:function(el,cl){for(var p=el.parentNode;p!=null;){if(p.className!=null&&p.className.test(cl," "))return p;p=p.parentNode;} 
return null;},rc:function(el,cl){var newClass="";
var lst=el.className.split(" ");
for(var i=0;i<lst.length;i++)
if(lst[i]!=cl)newClass+=lst[i]+" ";
el.className=newClass.normalize();},rpnt:function(tr){if(!tr.am)return;
tr.am.el.style.visibility="hidden";
tr.am.el.style.visibility="visible";} };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(i,d){var exps=getTokenizedExps(i,d);return(exps.global.test(this)||exps.ends.test(this));}; 
function getTokenizedExps(i,d){return{global:new RegExp(d+i+d,"\g"),ends:new RegExp("^"+i+d+"|^"+i+"$|"+d+i+"$","\g")};}
