var Tree=function(D,E,B){this.parent=E;this.options=B;this.id=D.getAttribute("id");this.label=D.getAttribute("label");if(D.getAttribute("href")){this.href=D.getAttribute("href");}if(E){this.depth=E.depth+1;if(this.depth==1){this.queue={position:"end",scope:this.id};}else{this.queue=E.queue;}E.children[E.children.length]=this;if(this.depth==1){this.category={main:this.label};}else{this.category={main:this.parent.category.main,sub:this.label};}}else{this.depth=0;}this.children=new Array();if(!isUndefinedOrNull(D.childNodes)){if(D.childNodes){for(var C=0;C<D.childNodes.length;C++){var F=D.childNodes[C];if(F.tagName=="element"){new Tree(F,this,B);}}}}this.state="";};Tree.prototype.toHTML=function(C){var B=function(H){var E=LI({id:H.id});addElementClass(E,H.underClass());H.li=E;var F=A(null,H.label);if(H.href){F.href=H.href;}else{F.href="#";H.isNoHref=true;}if(H.children.length>0){connect(F,"onclick",H,function(I){if(this.isNoHref){if(this.state=="open"||this.state=="closed"){this.toggle();}I.stop();}});}appendChildNodes(E,F);H.a=F;if(H.children.length>0){var G=UL();appendChildNodes(G,map(B,H.children));appendChildNodes(E,G);H.ul=G;}H.deactivate(true);return E;};var D=UL();appendChildNodes(D,map(B,this.children));return D;};Tree.prototype.toggle=function(){if(this.state=="closed"){this.activate();}else{this.deactivate();}};Tree.prototype.activate=function(B){if(this.parent&&this.parent.state=="closed"){this.parent.activate(true);}if(isEmpty(this.children)){addElementClass(this.a,this.currentClass());}else{if(this.state=="closed"){if(this.parent.actives){if(this.parent.actives.length>=this.parent.options.maxOpeningMenus){this.parent.actives[0].deactivate();}this.parent.actives=this.parent.actives.concat(this);}else{this.parent.actives=[this];}addElementClass(this.a,this.currentClass());if(B){this.ul.style.display="block";this.state="open";}else{var C=this;toggle(this.ul,"blind",{duration:0.2,queue:C.queue,beforeStart:function(){C.state="opening";},afterFinish:function(){C.state="open";}});}}}};Tree.prototype.deactivate=function(B){if(this.parent.actives){var C=this;this.parent.actives=filter(function(D){return C!=D;},this.parent.actives);}if(isNotEmpty(this.children)){forEach(this.children,function(D){if(D.state=="open"){D.deactivate(B);}});if(B){this.ul.style.display="none";this.state="closed";removeElementClass(this.a,this.currentClass());}else{var C=this;toggle(this.ul,"blind",{duration:0.2,queue:C.queue,beforeStart:function(){C.state="closing";},afterFinish:function(){C.state="closed";removeElementClass(C.a,C.currentClass());}});}}};Tree.prototype.findById=function(D){if(this.id==D){return this;}else{if(isNotEmpty(this.children)){for(var B=0;B<this.children.length;B++){var C=this.children[B].findById(D);if(C!=null){return C;}}}}return null;};Tree.prototype.findByCategory=function(D){if(this.category){if(this.category.main==D.main){if(this.category.sub){if(this.category.sub==D.sub){return this;}}else{if(isEmpty(this.children)){return this;}}for(var B=0;B<this.children.length;B++){var C=this.children[B].findByCategory(D);if(C){return C;}}}}else{for(var B=0;B<this.children.length;B++){var C=this.children[B].findByCategory(D);if(C){return C;}}}};Tree.prototype.currentClass=function(){var B;if(this.children.length>0){B=this.options.currentClasses["under"][this.depth];}else{B=this.options.currentClasses["noUnder"][this.depth];}return B;};Tree.prototype.underClass=function(){var B;if(this.children.length>0){B=this.options.underClasses["under"][this.depth];}else{B=this.options.underClasses["noUnder"][this.depth];}return B;};__loadMenuTree=function(E,H,D){var C=document.getElementById(H);var B=function(K){var J=K.responseXML;var L=J.getElementsByTagName("menu")[0];var I=new Tree(L,null,D);replaceChildNodes(C,I.toHTML(D));forEach(D.activeCategories,function(N){var M=I.findByCategory(N);if(!isUndefinedOrNull(M)){M.activate();}});};var G=function(I){alert(I.message);};var F=getXMLHttpRequest();F.open("GET",E,true);sendXMLHttpRequest(F).addCallback(B).addErrback(G);};var loadMenuTree=function(C,D,E){var B="subNav";__loadMenuTree(C,B,{maxOpeningMenus:2,currentClasses:{noUnder:[null,"current1","current2","current3"],under:[null,"current1","current2","current3"]},underClasses:{noUnder:[null,"noUnder",null,null],under:[null,null,"under",null]},activeCategories:[{main:D,sub:E}]});};

