AUI.add("aui-tree-node",function(AC){var w=AC.Lang,Ah=w.isString,AY=w.isBoolean,Ao="alwaysShowHitArea",o="",T="boundingBox",H="children",Ad="clearfix",Y="collapsed",B="container",AA="content",W="contentBox",K="expanded",Q="helper",t="hidden",h="hitarea",G="hitAreaEl",s="icon",An="iconEl",AR="id",AI="label",u="labelEl",r="lastSelected",Ac="leaf",R="node",AK="over",x="ownerTree",F="parentNode",Ab="selected",U=" ",I="tree",i="tree-node",Ak=function(){return Array.prototype.slice.call(arguments).join(U);},AO=function(A){return(A instanceof AC.TreeNode);},Aj=function(A){return(A instanceof AC.TreeView);},f=AC.ClassNameManager.getClassName,AF=f(Q,Ad),a=f(I,Y),C=f(I,B),Ap=f(I,K),V=f(I,t),AT=f(I,h),e=f(I,s),M=f(I,AI),d=f(I,R,AA),AU=f(I,R,t,h),J=f(I,R,Ac),Ag=f(I,R,AK),j=f(I,R,Ab),AB='<div class="'+AT+'"></div>',S='<div class="'+e+'"></div>',E='<div class="'+M+'"></div>',Am="<ul></ul>",X="<li></li>",y='<div class="'+Ak(AF,d)+'"></div>';var m=AC.Component.create({NAME:i,ATTRS:{draggable:{value:true,validator:AY},ownerTree:{value:null},label:{value:o,validator:Ah},expanded:{value:false,validator:AY},id:{validator:Ah},leaf:{value:true,setter:function(A){if(A&&this.get(H).length){return false;}return A;},validator:AY},nextSibling:{value:null,validator:AO},prevSibling:{value:null,validator:AO},parentNode:{value:null,validator:function(A){return AO(A)||Aj(A);}},labelEl:{setter:AC.one,valueFn:function(){var A=this.get(AI);return AC.Node.create(E).html(A).unselectable();}},hitAreaEl:{setter:AC.one,valueFn:function(){return AC.Node.create(AB);}},alwaysShowHitArea:{value:true,validator:AY},iconEl:{setter:AC.one,valueFn:function(){return AC.Node.create(S);}},tabIndex:{value:null}},EXTENDS:AC.TreeData,prototype:{BOUNDING_TEMPLATE:X,CONTENT_TEMPLATE:y,initializer:function(){var A=this;A._syncTreeNodeBBId();m.superclass.initializer.apply(this,arguments);},bindUI:function(){var A=this;A.publish("collapse",{defaultFn:A._collapse});A.publish("expand",{defaultFn:A._expand});A.after("childrenChange",AC.bind(A._afterSetChildren,A));A.after("idChange",A._afterSetId,A);},_renderUI:function(A){this._renderBoxClassNames();},renderUI:function(){var A=this;A._renderBoundingBox();A._renderContentBox();},syncUI:function(){var A=this;A._syncHitArea(A.get(H));},_renderContentBox:function(At){var A=this;var L=A.get(W);if(A.isLeaf()){L.addClass(J);}else{var As=A.get(K);L.addClass(As?Ap:a);if(As){A.expand();}}return L;},_renderBoundingBox:function(){var A=this;var As=A.get(T);var L=A.get(W);var At=null;if(!A.isLeaf()){L.append(A.get(G));At=A._createNodeContainer();}L.append(A.get(An));L.append(A.get(u));As.append(L);if(At){if(!A.get(K)){At.addClass(V);}As.append(At);}return As;},_createNodeContainer:function(){var A=this;var L=A.get(B)||AC.Node.create(Am);L.addClass(C);A.set(B,L);A.eachChildren(function(As){A.appendChild(As);});return L;},_syncHitArea:function(L){var A=this;if(A.get(Ao)||L.length){A.showHitArea();}else{A.hideHitArea();A.collapse();}},appendChild:function(){var A=this;if(!A.isLeaf()){m.superclass.appendChild.apply(A,arguments);}},collapse:function(){var A=this;if(A.get(K)){var L=A.getEventOutputMap(A);A.bubbleEvent("collapse",L);}},_collapse:function(At){if(At.stopActionPropagation){return false;}var A=this;if(!A.isLeaf()){var As=A.get(B);var L=A.get(W);L.replaceClass(Ap,a);if(As){As.addClass(V);}A.set(K,false);}},collapseAll:function(){var A=this;m.superclass.collapseAll.apply(A,arguments);A.collapse();},contains:function(A){return A.isAncestor(this);},expand:function(){var A=this;if(!A.get(K)){var L=A.getEventOutputMap(A);A.bubbleEvent("expand",L);}},_expand:function(At){if(At.stopActionPropagation){return false;}var A=this;if(!A.isLeaf()){var As=A.get(B);var L=A.get(W);L.replaceClass(a,Ap);if(As){As.removeClass(V);}A.set(K,true);}},expandAll:function(){var A=this;m.superclass.expandAll.apply(A,arguments);A.expand();},getDepth:function(){var As=0;var L=this;var A=L.get(F);while(A){++As;A=A.get(F);}return As;},hasChildNodes:function(){var A=this;return(!A.isLeaf()&&m.superclass.hasChildNodes.apply(this,arguments));},isSelected:function(){return this.get(W).hasClass(j);},isLeaf:function(){var A=this;return A.get(Ac);},isAncestor:function(As){var L=this;var A=L.get(F);while(A){if(A==As){return true;}A=A.get(F);}return false;},insertAfter:function(As,L){var A=this;m.superclass.insertAfter.apply(this,[As,A]);},insertBefore:function(L){var A=this;m.superclass.insertBefore.apply(this,[L,A]);},removeChild:function(L){var A=this;if(!A.isLeaf()){m.superclass.removeChild.apply(A,arguments);}},toggle:function(){var A=this;if(A.get(K)){A.collapse();}else{A.expand();}},select:function(){var A=this;var L=A.get(x);if(L){L.set(r,A);}A.get(W).addClass(j);A.fire("select");},unselect:function(){var A=this;A.get(W).removeClass(j);A.fire("unselect");},over:function(){this.get(W).addClass(Ag);},out:function(){this.get(W).removeClass(Ag);},showHitArea:function(){var A=this;var L=A.get(G);L.removeClass(AU);},hideHitArea:function(){var A=this;var L=A.get(G);L.addClass(AU);},_syncTreeNodeBBId:function(L){var A=this;A.get(T).attr(AR,A.get(AR));},_afterSetChildren:function(L){var A=this;A._syncHitArea(L.newVal);}}});AC.TreeNode=m;var AW=w.isFunction,g=w.isObject,AD=w.isValue,Ai="cache",AS="end",AJ="io",AZ="limit",Al="loaded",Aq="loading",AH="paginator",AM="start",AQ="tree-node-io",D="paginatorClick",AX=f(I,R,AH),Z=f(I,R,AJ,Aq),AV='<a class="'+AX+'" href="javascript:void(0);">Load more results</a>';var l=AC.Component.create({NAME:AQ,ATTRS:{io:{lazyAdd:false,value:null,setter:function(A){return this._setIO(A);}},loading:{value:false,validator:AY},loaded:{value:false,validator:AY},cache:{value:true,validator:AY},leaf:{value:false,validator:AY},paginator:{setter:function(A){return AC.merge({alwaysVisible:false,autoFocus:true,element:AC.Node.create(AV),endParam:AS,limitParam:AZ,start:0,startParam:AM},A);},validator:g}},EXTENDS:AC.TreeNode,prototype:{renderUI:function(){var A=this;A._inheritOwnerTreeAttrs();l.superclass.renderUI.apply(this,arguments);
},bindUI:function(){var A=this;l.superclass.bindUI.apply(this,arguments);A._bindPaginatorUI();A._createEvents();},_bindPaginatorUI:function(){var A=this;var As=A.get(AH);if(As){var L=AC.bind(A._handlePaginatorClickEvent,A);As.element.on("click",L);}},createNode:function(L){var A=this;AC.each(L,function(At){var As=l.superclass.createNode.apply(A,[At]);A.appendChild(As);});A._syncPaginatorUI(L);},expand:function(){var A=this;var L=A.get(Ai);var Au=A.get(AJ);var As=A.get(Al);var At=A.get(Aq);if(!L){A.set(Al,false);}if(!Au||As){l.superclass.expand.apply(this,arguments);}else{if(!At){if(!L){A.empty();}A.initIO();}}},initIO:function(){var L=this;var As=L.get(AJ);if(AW(As.cfg.data)){As.cfg.data=As.cfg.data.apply(L,[L]);}L._syncPaginatorIOData(As);if(AW(As.loader)){var A=AC.bind(As.loader,L);A(As.url,As.cfg,L);}else{AC.io(As.url,As.cfg);}},ioStartHandler:function(){var A=this;var L=A.get(W);A.set(Aq,true);L.addClass(Z);},ioCompleteHandler:function(){var A=this;var L=A.get(W);A.set(Aq,false);A.set(Al,true);L.removeClass(Z);},ioSuccessHandler:function(){var A=this;var Ax=A.get(AJ);var As=Array.prototype.slice.call(arguments);var Au=As.length;var L=As[0];if(Au>=2){var Aw=As[1];try{L=AC.JSON.parse(Aw.responseText);}catch(Av){}}var At=Ax.formatter;if(At){L=At(L);}A.createNode(L);A.expand();},ioFailureHandler:function(){var A=this;A.set(Aq,false);A.set(Al,false);},_createEvents:function(){var A=this;A.publish(D,{defaultFn:A._defPaginatorClickFn,prefix:AQ});},_defPaginatorClickFn:function(L){var A=this;var As=A.get(AH);if(AD(As.limit)){As.start+=As.limit;}if(A.get(AJ)){A.initIO();}},_handlePaginatorClickEvent:function(At){var A=this;var As=A.get(x);var L=A.getEventOutputMap(A);A.fire(D,L);if(As){As.fire(D,L);}At.halt();},_inheritOwnerTreeAttrs:function(){var L=this;var As=L.get(x);if(As){if(!L.get(AJ)){L.set(AJ,AC.clone(As.get(AJ)));}if(!L.get(AH)){var A=As.get(AH);if(A&&A.element){A.element=A.element.clone();}L.set(AH,A);}}},_setIO:function(As){var A=this;if(!As){return null;}else{if(Ah(As)){As={url:As};}}As=As||{};As.cfg=As.cfg||{};As.cfg.on=As.cfg.on||{};var L={start:AC.bind(A.ioStartHandler,A),complete:AC.bind(A.ioCompleteHandler,A),success:AC.bind(A.ioSuccessHandler,A),failure:AC.bind(A.ioFailureHandler,A)};AC.each(L,function(Av,At){var Aw=As.cfg.on[At];if(AW(Aw)){var Au=function(){Av.apply(A,arguments);Aw.apply(A,arguments);};As.cfg.on[At]=AC.bind(Au,A);}else{As.cfg.on[At]=Av;}});return As;},_syncPaginatorIOData:function(At){var A=this;var As=A.get(AH);if(As&&AD(As.limit)){var L=At.cfg.data||{};L[As.limitParam]=As.limit;L[As.startParam]=As.start;L[As.endParam]=(As.start+As.limit);At.cfg.data=L;}},_syncPaginatorUI:function(L){var A=this;var As=A.get(H);var Aw=A.get(AH);if(Aw){var Av=(L&&L.length);var At=Av&&(As.length>=Aw.limit);if(Aw.alwaysVisible||At){A.get(B).append(Aw.element.show());if(Aw.autoFocus){try{Aw.element.focus();}catch(Au){}}}else{Aw.element.hide();}}}}});AC.TreeNodeIO=l;var N="checkbox",P="checked",z="checkContainerEl",Ae="checkEl",n="checkName",v=".",O="name",b="tree-node-check",AG=f(I,R,N),AN=f(I,R,N,B),AP=f(I,R,P),q='<div class="'+AN+'"></div>',AL='<input class="'+AG+'" type="checkbox" />';var Aa=AC.Component.create({NAME:b,ATTRS:{checked:{value:false,validator:AY},checkName:{value:b,validator:Ah},checkContainerEl:{setter:AC.one,valueFn:function(){return AC.Node.create(q);}},checkEl:{setter:AC.one,valueFn:function(){var A=this.get(n);return AC.Node.create(AL).attr(O,A);}}},EXTENDS:AC.TreeNodeIO,prototype:{renderUI:function(){var L=this;Aa.superclass.renderUI.apply(L,arguments);var As=L.get(u);var A=L.get(Ae);var At=L.get(z);A.hide();At.append(A);As.placeBefore(At);if(L.isChecked()){L.check();}},bindUI:function(){var A=this;var L=A.get(W);var As=A.get(u);Aa.superclass.bindUI.apply(A,arguments);A.publish("check");A.publish("uncheck");L.delegate("click",AC.bind(A.toggleCheck,A),v+AN);L.delegate("click",AC.bind(A.toggleCheck,A),v+M);As.swallowEvent("dblclick");},check:function(){var L=this;var As=L.get(W);var A=L.get(Ae);As.addClass(AP);L.set(P,true);A.attr(P,P);L.fire("check");},uncheck:function(){var L=this;var As=L.get(W);var A=L.get(Ae);As.removeClass(AP);L.set(P,false);A.attr(P,o);L.fire("uncheck");},toggleCheck:function(){var L=this;var A=L.get(Ae);var As=A.attr(P);if(!As){L.check();}else{L.uncheck();}},isChecked:function(){var A=this;return A.get(P);}}});AC.TreeNodeCheck=Aa;var c="child",p="tree-node-task",k="unchecked",Af=function(A){return A instanceof AC.TreeNodeCheck;},AE=f(I,R,c,k);var Ar=AC.Component.create({NAME:p,EXTENDS:AC.TreeNodeCheck,prototype:{check:function(At){var L=this;var A=L.get(F);var As=L.get(W);Ar.superclass.check.apply(this,arguments);if(!At){As.removeClass(AE);L.eachParent(function(Au){if(Af(Au)){var Av=false;Au.check(true);Au.get(W).addClass(AE);Au.eachChildren(function(Aw){if(Af(Aw)&&!Aw.isChecked()){Av=true;}},true);if(!Av){Au.get(W).removeClass(AE);}}});if(!L.isLeaf()){L.eachChildren(function(Au){if(Af(Au)){Au.check();}});}}},uncheck:function(){var A=this;var L=A.get(W);Ar.superclass.uncheck.apply(this,arguments);L.removeClass(AE);A.eachParent(function(As){if(Af(As)&&As.isChecked()){As.get(W).addClass(AE);}});if(!A.isLeaf()){A.eachChildren(function(As){if(As instanceof AC.TreeNodeCheck){As.uncheck();}});}}}});AC.TreeNodeTask=Ar;AC.TreeNode.nodeTypes={task:AC.TreeNodeTask,check:AC.TreeNodeCheck,node:AC.TreeNode,io:AC.TreeNodeIO};},"@VERSION@",{requires:["aui-tree-data","io-base","json","querystring-stringify"],skinnable:false});