(function(n){function i(n,t){if(!(n.originalEvent.touches.length>1)){n.preventDefault();var i=n.originalEvent.changedTouches[0],r=document.createEvent("MouseEvents");r.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null);n.target.dispatchEvent(r)}}if(n.support.touch="ontouchend"in document,n.support.touch){var t=n.ui.mouse.prototype,u=t._mouseInit,f=t._mouseDestroy,r;t._touchStart=function(n){var t=this;!r&&t._mouseCapture(n.originalEvent.changedTouches[0])&&(r=!0,t._touchMoved=!1,i(n,"mouseover"),i(n,"mousemove"),i(n,"mousedown"))};t._touchMove=function(n){r&&(this._touchMoved=!0,i(n,"mousemove"))};t._touchEnd=function(n){r&&(i(n,"mouseup"),i(n,"mouseout"),this._touchMoved||i(n,"click"),r=!1)};t._mouseInit=function(){var t=this;t.element.bind({touchstart:n.proxy(t,"_touchStart"),touchmove:n.proxy(t,"_touchMove"),touchend:n.proxy(t,"_touchEnd")});u.call(t)};t._mouseDestroy=function(){var t=this;t.element.unbind({touchstart:n.proxy(t,"_touchStart"),touchmove:n.proxy(t,"_touchMove"),touchend:n.proxy(t,"_touchEnd")});f.call(t)}}})(jQuery),function(n){n.fn.draggableTouch=function(t){return("ontouchstart"in document.documentElement)?t=="disable"?(this.unbind("touchstart"),this.unbind("touchmove"),this.unbind("touchend"),this.unbind("touchcancel"),this):(this.each(function(){var t=n(this),i=null,r=function(n){n.preventDefault();var r=n.originalEvent;t.trigger("dragend",{top:r.changedTouches[0].pageY-i.y,left:r.changedTouches[0].pageX-i.x})};t.bind("touchstart",function(r){var f=r.originalEvent,u=n(this).position();i={x:f.changedTouches[0].pageX-u.left,y:f.changedTouches[0].pageY-u.top};t.trigger("dragstart",u)});t.bind("touchmove",function(t){t.preventDefault();var r=t.originalEvent;r.targetTouches.length>1||n(this).css({top:r.changedTouches[0].pageY-i.y,left:r.changedTouches[0].pageX-i.x})});t.bind("touchend",r);t.bind("touchcancel",r)}),this):this.draggableMouse(t)};n.fn.draggableMouse=function(t){return t=="disable"?(this.unbind("mousedown"),this.unbind("mouseup"),this):(this.each(function(){var t=n(this),i=null,r=function(n){t.css({top:n.pageY-i.y,left:n.pageX-i.x})},u=function(f){t.unbind("mouseup",u);n(document).unbind("mousemove",r);t.trigger("dragend",{top:f.pageY-i.y,left:f.pageX-i.x})};t.bind("mousedown",function(f){var e=t.position();i={x:f.pageX-e.left,y:f.pageY-e.top};n(document).bind("mousemove",r);t.bind("mouseup",u);t.trigger("dragstart",e)})}),this)}}(jQuery),function(n){typeof define=="function"&&define.amd?define(["jquery"],n):n(jQuery)}(function(){!function(n,t,i,r){"use strict";function u(t,i){t||(i=i?": "+i:"",n.error("Fancytree assertion failed"+i))}function e(n,i){var r,u,f=t.console?t.console[n]:null;if(f)try{f.apply(t.console,i)}catch(e){for(u="",r=0;r<i.length;r++)u+=i[r];f(u)}}function nt(n){return!(!n.tree||n.statusNodeType===r)}function tt(t){for(var r,u,e=n.map(n.trim(t).split("."),function(n){return parseInt(n,10)}),f=n.map(Array.prototype.slice.call(arguments,1),function(n){return parseInt(n,10)}),i=0;i<f.length;i++)if(r=e[i]||0,u=f[i]||0,r!==u)return r>u;return!0}function w(n,t,i,r,u){return function(){var i=t[n],f=r[n],e=t.ext[u],o=function(){return i.apply(t,arguments)},s=function(n){return i.apply(t,n)};return function(){var n=t._local,i=t._super,r=t._superApply;try{return t._local=e,t._super=o,t._superApply=s,f.apply(t,arguments)}finally{t._local=n;t._super=i;t._superApply=r}}}()}function it(t,i,r,u){for(var f in r)"function"==typeof r[f]?"function"==typeof t[f]?t[f]=w(f,t,i,r,u):"_"===f.charAt(0)?t.ext[u][f]=w(f,t,i,r,u):n.error("Could not override tree."+f+". Use prefix '_' to create tree."+u+"._"+f):"options"!==f&&(t.ext[u][f]=r[f])}function f(t,i){return t===r?n.Deferred(function(){this.resolve()}).promise():n.Deferred(function(){this.resolveWith(t,i)}).promise()}function y(t,i){return t===r?n.Deferred(function(){this.reject()}).promise():n.Deferred(function(){this.rejectWith(t,i)}).promise()}function b(n,t){return function(){n.resolveWith(t)}}function p(t){var i=n.extend({},t.data()),r=i.json;return delete i.fancytree,r&&(delete i.json,i=n.extend(i,r)),i}function k(n){return n=n.toLowerCase(),function(t){return t.title.toLowerCase().indexOf(n)>=0}}function rt(n){var t=new RegExp("^"+n,"i");return function(n){return t.test(n.title)}}function c(t,i){var f,s,r,e;for(this.parent=t,this.tree=t.tree,this.ul=null,this.li=null,this.statusNodeType=null,this._isLoading=!1,this._error=null,this.data={},f=0,s=h.length;s>f;f++)r=h[f],this[r]=i[r];i.data&&n.extend(this.data,i.data);for(r in i)v[r]||n.isFunction(i[r])||g[r]||(this.data[r]=i[r]);null==this.key?this.tree.options.defaultKey?(this.key=this.tree.options.defaultKey(this),u(this.key,"defaultKey() must return a unique key")):this.key="_"+o._nextNodeKey++:this.key=""+this.key;i.active&&(u(null===this.tree.activeNode,"only one active node allowed"),this.tree.activeNode=this);i.selected&&(this.tree.lastSelectedNode=this);this.children=null;e=i.children;e&&e.length&&this._setChildren(e);this.tree._callHook("treeRegisterNode",this.tree,!0,this)}function l(t){this.widget=t;this.$div=t.element;this.options=t.options;this.options&&(n.isFunction(this.options.lazyload)&&!n.isFunction(this.options.lazyLoad)&&(this.options.lazyLoad=function(){return o.warn("The 'lazyload' event is deprecated since 2014-02-25. Use 'lazyLoad' (with uppercase L) instead."),t.options.lazyload.apply(this,arguments)}),n.isFunction(this.options.loaderror)&&n.error("The 'loaderror' event was renamed since 2014-07-03. Use 'loadError' (with uppercase E) instead."),this.options.fx!==r&&o.warn("The 'fx' options was replaced by 'toggleEffect' since 2014-11-30."));this.ext={};this.data=p(this.$div);this._id=n.ui.fancytree._nextId++;this._ns=".fancytree-"+this._id;this.activeNode=null;this.focusNode=null;this._hasFocus=null;this.lastSelectedNode=null;this.systemFocusElement=null;this.lastQuicksearchTerm="";this.lastQuicksearchTime=0;this.statusClassPropName="span";this.ariaPropName="li";this.nodeContainerAttrName="li";this.$div.find(">ul.fancytree-container").remove();var i,u={tree:this};this.rootNode=new c(u,{title:"root",key:"root_"+this._id,children:null,expanded:!0});this.rootNode.parent=null;i=n("<ul>",{"class":"ui-fancytree fancytree-container"}).appendTo(this.$div);this.$container=i;this.rootNode.ul=i[0];null==this.options.debugLevel&&(this.options.debugLevel=o.debugLevel);this.$container.attr("tabindex",this.options.tabbable?"0":"-1");this.options.aria&&this.$container.attr("role","tree").attr("aria-multiselectable",!0)}if(n.ui&&n.ui.fancytree)return void n.ui.fancytree.warn("Fancytree: ignored duplicate include");u(n.ui,"Fancytree requires jQuery UI (http://jqueryui.com)");for(var o=null,ut={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},ft={16:!0,17:!0,18:!0},et={8:"backspace",9:"tab",10:"return",13:"return",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",59:";",61:"=",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},ot={0:"",1:"left",2:"middle",3:"right"},a="active expanded focus folder hideCheckbox lazy selected unselectable".split(" "),d={},h="expanded extraClasses folder hideCheckbox key lazy refKey selected title tooltip unselectable".split(" "),v={},g={active:!0,children:!0,data:!0,focus:!0},s=0;s<a.length;s++)d[a[s]]=!0;for(s=0;s<h.length;s++)v[h[s]]=!0;c.prototype={_findDirectChild:function(n){var t,r,i=this.children;if(i)if("string"==typeof n){for(t=0,r=i.length;r>t;t++)if(i[t].key===n)return i[t]}else{if("number"==typeof n)return this.children[n];if(n.parent===this)return n}return null},_setChildren:function(n){u(n&&(!this.children||0===this.children.length),"only init supported");this.children=[];for(var t=0,i=n.length;i>t;t++)this.children.push(new c(this,n[t]))},addChildren:function(t,i){var r,o,e,s=null,f=[];for(n.isPlainObject(t)&&(t=[t]),this.children||(this.children=[]),r=0,o=t.length;o>r;r++)f.push(new c(this,t[r]));return s=f[0],null==i?this.children=this.children.concat(f):(i=this._findDirectChild(i),e=n.inArray(i,this.children),u(e>=0,"insertBefore must be an existing child"),this.children.splice.apply(this.children,[e,0].concat(f))),(!this.parent||this.parent.ul||this.tr)&&this.render(),3===this.tree.options.selectMode&&this.fixSelection3FromEndNodes(),s},addNode:function(n,t){switch((t===r||"over"===t)&&(t="child"),t){case"after":return this.getParent().addChildren(n,this.getNextSibling());case"before":return this.getParent().addChildren(n,this);case"firstChild":var i=this.children?this.children[0]:null;return this.addChildren(n,i);case"child":case"over":return this.addChildren(n)}u(!1,"Invalid mode: "+t)},appendSibling:function(n){return this.addNode(n,"after")},applyPatch:function(t){if(null===t)return this.remove(),f(this);var i,u,r,e={children:!0,expanded:!0,parent:!0};for(i in t)r=t[i],e[i]||n.isFunction(r)||(v[i]?this[i]=r:this.data[i]=r);return t.hasOwnProperty("children")&&(this.removeChildren(),t.children&&this._setChildren(t.children)),this.isVisible()&&(this.renderTitle(),this.renderStatus()),u=t.hasOwnProperty("expanded")?this.setExpanded(t.expanded):f(this)},collapseSiblings:function(){return this.tree._callHook("nodeCollapseSiblings",this)},copyTo:function(n,t,i){return n.addNode(this.toDict(!0,i),t)},countChildren:function(n){var t,u,i,r=this.children;if(!r)return 0;if(i=r.length,n!==!1)for(t=0,u=i;u>t;t++)i+=r[t].countChildren();return i},debug:function(){this.tree.options.debugLevel>=2&&(Array.prototype.unshift.call(arguments,this.toString()),e("log",arguments))},discard:function(){return this.warn("FancytreeNode.discard() is deprecated since 2014-02-16. Use .resetLazy() instead."),this.resetLazy()},findAll:function(t){t=n.isFunction(t)?t:k(t);var i=[];return this.visit(function(n){t(n)&&i.push(n)}),i},findFirst:function(t){t=n.isFunction(t)?t:k(t);var i=null;return this.visit(function(n){if(t(n))return(i=n,!1)}),i},_changeSelectStatusAttrs:function(n){var t=!1;switch(n){case!1:t=this.selected||this.partsel;this.selected=!1;this.partsel=!1;break;case!0:t=!this.selected||!this.partsel;this.selected=!0;this.partsel=!0;break;case r:t=this.selected||!this.partsel;this.selected=!1;this.partsel=!0;break;default:u(!1,"invalid state: "+n)}return t&&this.renderStatus(),t},fixSelection3AfterClick:function(){var n=this.isSelected();this.visit(function(t){t._changeSelectStatusAttrs(n)});this.fixSelection3FromEndNodes()},fixSelection3FromEndNodes:function(){function n(t){var i,h,c,e,u,o,s,f=t.children;if(f&&f.length){for(o=!0,s=!1,i=0,h=f.length;h>i;i++)c=f[i],e=n(c),e!==!1&&(s=!0),e!==!0&&(o=!1);u=o?!0:s?r:!1}else u=!!t.selected;return t._changeSelectStatusAttrs(u),u}u(3===this.tree.options.selectMode,"expected selectMode 3");n(this);this.visitParents(function(n){for(var t,f,e=n.children,o=!0,s=!1,i=0,u=e.length;u>i;i++)t=e[i],(t.selected||t.partsel)&&(s=!0),t.unselectable||t.selected||(o=!1);f=o?!0:s?r:!1;n._changeSelectStatusAttrs(f)})},fromDict:function(t){for(var i in t)v[i]?this[i]=t[i]:"data"===i?n.extend(this.data,t.data):n.isFunction(t[i])||g[i]||(this.data[i]=t[i]);t.children&&(this.removeChildren(),this.addChildren(t.children));this.renderTitle()},getChildren:function(){return this.hasChildren()===r?r:this.children},getFirstChild:function(){return this.children?this.children[0]:null},getIndex:function(){return n.inArray(this,this.parent.children)},getIndexHier:function(t){t=t||".";var i=[];return n.each(this.getParentList(!1,!0),function(n,t){i.push(t.getIndex()+1)}),i.join(t)},getKeyPath:function(n){var t=[],i=this.tree.options.keyPathSeparator;return this.visitParents(function(n){n.parent&&t.unshift(n.key)},!n),i+t.join(i)},getLastChild:function(){return this.children?this.children[this.children.length-1]:null},getLevel:function(){for(var t=0,n=this.parent;n;)t++,n=n.parent;return t},getNextSibling:function(){if(this.parent)for(var t=this.parent.children,n=0,i=t.length-1;i>n;n++)if(t[n]===this)return t[n+1];return null},getParent:function(){return this.parent},getParentList:function(n,t){for(var r=[],i=t?this:this.parent;i;)(n||i.parent)&&r.unshift(i),i=i.parent;return r},getPrevSibling:function(){if(this.parent)for(var t=this.parent.children,n=1,i=t.length;i>n;n++)if(t[n]===this)return t[n-1];return null},hasChildren:function(){return this.lazy?null==this.children?r:0===this.children.length?!1:1===this.children.length&&this.children[0].isStatusNode()?r:!0:!(!this.children||!this.children.length)},hasFocus:function(){return this.tree.hasFocus()&&this.tree.focusNode===this},info:function(){this.tree.options.debugLevel>=1&&(Array.prototype.unshift.call(arguments,this.toString()),e("info",arguments))},isActive:function(){return this.tree.activeNode===this},isChildOf:function(n){return this.parent&&this.parent===n},isDescendantOf:function(n){if(!n||n.tree!==this.tree)return!1;for(var t=this.parent;t;){if(t===n)return!0;t=t.parent}return!1},isExpanded:function(){return!!this.expanded},isFirstSibling:function(){var n=this.parent;return!n||n.children[0]===this},isFolder:function(){return!!this.folder},isLastSibling:function(){var n=this.parent;return!n||n.children[n.children.length-1]===this},isLazy:function(){return!!this.lazy},isLoaded:function(){return!this.lazy||this.hasChildren()!==r},isLoading:function(){return!!this._isLoading},isRoot:function(){return this.isRootNode()},isRootNode:function(){return this.tree.rootNode===this},isSelected:function(){return!!this.selected},isStatusNode:function(){return!!this.statusNodeType},isTopLevel:function(){return this.tree.rootNode===this.parent},isUndefined:function(){return this.hasChildren()===r},isVisible:function(){for(var i=this.getParentList(!1,!1),n=0,t=i.length;t>n;n++)if(!i[n].expanded)return!1;return!0},lazyLoad:function(n){return this.warn("FancytreeNode.lazyLoad() is deprecated since 2014-02-16. Use .load() instead."),this.load(n)},load:function(n){var i,t,r=this;return u(this.isLazy(),"load() requires a lazy node"),n||this.isUndefined()?(this.isLoaded()&&this.resetLazy(),t=this.tree._triggerNodeEvent("lazyLoad",this),t===!1?f(this):(u("boolean"!=typeof t,"lazyLoad event must return source in data.result"),i=this.tree._callHook("nodeLoadChildren",this,t),this.expanded&&i.always(function(){r.render()}),i)):f(this)},makeVisible:function(t){for(var e=this,u=[],r=new n.Deferred,f=this.getParentList(!1,!1),o=f.length,s=!(t&&t.noAnimation===!0),h=!(t&&t.scrollIntoView===!1),i=o-1;i>=0;i--)u.push(f[i].setExpanded(!0,t));return n.when.apply(n,u).done(function(){h?e.scrollIntoView(s).done(function(){r.resolve()}):r.resolve()}),r.promise()},moveTo:function(t,i,f){(i===r||"over"===i)&&(i="child");var o,s=this.parent,e="child"===i?t:t.parent;if(this!==t){if(!this.parent)throw"Cannot move system root";if(e.isDescendantOf(this))throw"Cannot move a node to its own descendant";if(1===this.parent.children.length){if(this.parent===e)return;this.parent.children=this.parent.lazy?[]:null;this.parent.expanded=!1}else o=n.inArray(this,this.parent.children),u(o>=0,"invalid source parent"),this.parent.children.splice(o,1);if(this.parent=e,e.hasChildren())switch(i){case"child":e.children.push(this);break;case"before":o=n.inArray(t,e.children);u(o>=0,"invalid target parent");e.children.splice(o,0,this);break;case"after":o=n.inArray(t,e.children);u(o>=0,"invalid target parent");e.children.splice(o+1,0,this);break;default:throw"Invalid mode "+i;}else e.children=[this];f&&t.visit(f,!0);this.tree!==t.tree&&(this.warn("Cross-tree moveTo is experimantal!"),this.visit(function(n){n.tree=t.tree},!0));s.isDescendantOf(e)||s.render();e.isDescendantOf(s)||e===s||e.render()}},navigate:function(t,i){function u(r){if(r){try{r.makeVisible()}catch(u){}return n(r.span).is(":visible")?i===!1?r.setFocus():r.setActive():(r.debug("Navigate: skipping hidden node"),void r.navigate(t,i))}}var e,o,s=!0,f=n.ui.keyCode,r=null;switch(t){case f.BACKSPACE:this.parent&&this.parent.parent&&u(this.parent);break;case f.LEFT:this.expanded?(this.setExpanded(!1),u(this)):this.parent&&this.parent.parent&&u(this.parent);break;case f.RIGHT:this.expanded||!this.children&&!this.lazy?this.children&&this.children.length&&u(this.children[0]):(this.setExpanded(),u(this));break;case f.UP:for(r=this.getPrevSibling();r&&!n(r.span).is(":visible");)r=r.getPrevSibling();for(;r&&r.expanded&&r.children&&r.children.length;)r=r.children[r.children.length-1];!r&&this.parent&&this.parent.parent&&(r=this.parent);u(r);break;case f.DOWN:if(this.expanded&&this.children&&this.children.length)r=this.children[0];else for(o=this.getParentList(!1,!0),e=o.length-1;e>=0;e--){for(r=o[e].getNextSibling();r&&!n(r.span).is(":visible");)r=r.getNextSibling();if(r)break}u(r);break;default:s=!1}},remove:function(){return this.parent.removeChild(this)},removeChild:function(n){return this.tree._callHook("nodeRemoveChild",this,n)},removeChildren:function(){return this.tree._callHook("nodeRemoveChildren",this)},render:function(n,t){return this.tree._callHook("nodeRender",this,n,t)},renderTitle:function(){return this.tree._callHook("nodeRenderTitle",this)},renderStatus:function(){return this.tree._callHook("nodeRenderStatus",this)},resetLazy:function(){this.removeChildren();this.expanded=!1;this.lazy=!0;this.children=r;this.renderStatus()},scheduleAction:function(n,t){this.tree.timer&&clearTimeout(this.tree.timer);this.tree.timer=null;var i=this;switch(n){case"cancel":break;case"expand":this.tree.timer=setTimeout(function(){i.tree.debug("setTimeout: trigger expand");i.setExpanded(!0)},t);break;case"activate":this.tree.timer=setTimeout(function(){i.tree.debug("setTimeout: trigger activate");i.setActive(!0)},t);break;default:throw"Invalid mode "+n;}},scrollIntoView:function(e,o){o!==r&&nt(o)&&(this.warn("scrollIntoView() with 'topNode' option is deprecated since 2014-05-08. Use 'options.topNode' instead."),o={topNode:o});var v,a,g,w,c=n.extend({effects:e===!0?{duration:200,queue:!1}:e,scrollOfs:this.tree.options.scrollOfs,scrollParent:this.tree.options.scrollParent||this.tree.$container,topNode:null},o),y=new n.Deferred,rt=this,tt=n(this.span).height(),s=n(c.scrollParent),b=c.scrollOfs.top||0,it=c.scrollOfs.bottom||0,k=s.height(),p=s.scrollTop(),d=s,ut=s[0]===t,h=c.topNode||null,l=null;return n(this.span).is(":visible")?(ut?(a=n(this.span).offset().top,v=h&&h.span?n(h.span).offset().top:0,d=n("html,body")):(u(s[0]!==i&&s[0]!==i.body,"scrollParent should be an simple element or `window`, not document or body."),w=s.offset().top,a=n(this.span).offset().top-w+p,v=h?n(h.span).offset().top-w+p:0,g=Math.max(0,s.innerHeight()-s[0].clientHeight),k-=g),p+b>a?l=a-b:a+tt>p+k-it&&(l=a+tt-k+it,h&&(u(h.isRoot()||n(h.span).is(":visible"),"topNode must be visible"),l>v&&(l=v-b))),null!==l?c.effects?(c.effects.complete=function(){y.resolveWith(rt)},d.stop(!0).animate({scrollTop:l},c.effects)):(d[0].scrollTop=l,y.resolveWith(this)):y.resolveWith(this),y.promise()):(this.warn("scrollIntoView(): node is invisible."),f())},setActive:function(n,t){return this.tree._callHook("nodeSetActive",this,n,t)},setExpanded:function(n,t){return this.tree._callHook("nodeSetExpanded",this,n,t)},setFocus:function(n){return this.tree._callHook("nodeSetFocus",this,n)},setSelected:function(n){return this.tree._callHook("nodeSetSelected",this,n)},setStatus:function(n,t,i){return this.tree._callHook("nodeSetStatus",this,n,t,i)},setTitle:function(n){this.title=n;this.renderTitle()},sortChildren:function(n,t){var i,u,r=this.children;if(r){if(n=n||function(n,t){var i=n.title.toLowerCase(),r=t.title.toLowerCase();return i===r?0:i>r?1:-1},r.sort(n),t)for(i=0,u=r.length;u>i;i++)r[i].children&&r[i].sortChildren(n,"$norender$");"$norender$"!==t&&this.render()}},toDict:function(t,i){var u,o,f,r={},e=this;if(n.each(h,function(n,t){(e[t]||e[t]===!1)&&(r[t]=e[t])}),n.isEmptyObject(this.data)||(r.data=n.extend({},this.data),n.isEmptyObject(r.data)&&delete r.data),i&&i(r),t&&this.hasChildren())for(r.children=[],u=0,o=this.children.length;o>u;u++)f=this.children[u],f.isStatusNode()||r.children.push(f.toDict(!0,i));return r},toggleExpanded:function(){return this.tree._callHook("nodeToggleExpanded",this)},toggleSelected:function(){return this.tree._callHook("nodeToggleSelected",this)},toString:function(){return"<FancytreeNode(#"+this.key+", '"+this.title+"')>"},visit:function(n,t){var r,f,i=!0,u=this.children;if(t===!0&&(i=n(this),i===!1||"skip"===i))return i;if(u)for(r=0,f=u.length;f>r&&(i=u[r].visit(n,!0),i!==!1);r++);return i},visitAndLoad:function(t,i,r){var o,u,s,e=this;return t&&i===!0&&(u=t(e),u===!1||"skip"===u)?r?u:f():e.children||e.lazy?(o=new n.Deferred,s=[],e.load().done(function(){for(var i=0,r=e.children.length;r>i;i++){if(u=e.children[i].visitAndLoad(t,!0,!0),u===!1){o.reject();break}"skip"!==u&&s.push(u)}n.when.apply(this,s).then(function(){o.resolve()})}),o.promise()):f()},visitParents:function(n,t){if(t&&n(this)===!1)return!1;for(var i=this.parent;i;){if(n(i)===!1)return!1;i=i.parent}return!0},warn:function(){Array.prototype.unshift.call(arguments,this.toString());e("warn",arguments)}};l.prototype={_makeHookContext:function(t,i,u){var f,e;return t.node!==r?(i&&t.originalEvent!==i&&n.error("invalid args"),f=t):t.tree?(e=t.tree,f={node:t,tree:e,widget:e.widget,options:e.widget.options,originalEvent:i}):t.widget?f={node:null,tree:t,widget:t.widget,options:t.widget.options,originalEvent:i}:n.error("invalid args"),u&&n.extend(f,u),f},_callHook:function(t,i){var f=this._makeHookContext(i),r=this[t],u=Array.prototype.slice.call(arguments,2);return n.isFunction(r)||n.error("_callHook('"+t+"') is not a function"),u.unshift(f),r.apply(this,u)},_requireExtension:function(t,i,r,f){r=!!r;var e=this._local.name,s=this.options.extensions,c=n.inArray(t,s)<n.inArray(e,s),o=i&&null==this.ext[t],h=!o&&null!=r&&r!==c;return u(e&&e!==t,"invalid or same name"),o||h?(f||(o||i?(f="'"+e+"' extension requires '"+t+"'",h&&(f+=" to be registered "+(r?"before":"after")+" itself")):f="If used together, `"+t+"` must be registered "+(r?"before":"after")+" `"+e+"`"),n.error(f),!1):!0},activateKey:function(n){var t=this.getNodeByKey(n);return t?t.setActive():this.activeNode&&this.activeNode.setActive(!1),t},applyPatch:function(t){for(var o,r,f,s,e,c=t.length,h=[],i=0;c>i;i++)r=t[i],u(2===r.length,"patchList must be an array of length-2-arrays"),f=r[0],s=r[1],e=null===f?this.rootNode:this.getNodeByKey(f),e?(o=new n.Deferred,h.push(o),e.applyPatch(s).always(b(o,e))):this.warn("could not find node with key '"+f+"'");return n.when.apply(n,h).promise()},count:function(){return this.rootNode.countChildren()},debug:function(){this.options.debugLevel>=2&&(Array.prototype.unshift.call(arguments,this.toString()),e("log",arguments))},findNextNode:function(t,i){var u=null,e=i.parent.children,f=null,r=function(n,t,i){var f,e,o=n.children,s=o.length,u=o[t];if(u&&i(u)===!1||u&&u.children&&u.expanded&&r(u,0,i)===!1)return!1;for(f=t+1;s>f;f++)if(r(n,f,i)===!1)return!1;return e=n.parent,e?r(e,e.children.indexOf(n)+1,i):r(n,0,i)};return t="string"==typeof t?rt(t):t,i=i||this.getFirstChild(),r(i.parent,e.indexOf(i),function(r){return r===u?!1:(u=u||r,n(r.span).is(":visible")?t(r)&&(f=r,f!==i)?!1:void 0:void r.debug("quicksearch: skipping hidden node"))}),f},generateFormElements:function(t,i,r){r=r||{};var f,o="string"==typeof t?t:"ft_"+this._id+"[]",s="string"==typeof i?i:"ft_"+this._id+"_active",e="fancytree_result_"+this._id,u=n("#"+e),h=3===this.options.selectMode&&r.stopOnParents!==!1;u.length?u.empty():u=n("<div>",{id:e}).hide().insertAfter(this.$container);t!==!1&&(f=this.getSelectedNodes(h),n.each(f,function(t,i){u.append(n("<input>",{type:"checkbox",name:o,value:i.key,checked:!0}))}));i!==!1&&this.activeNode&&u.append(n("<input>",{type:"radio",name:s,value:this.activeNode.key,checked:!0}))},getActiveNode:function(){return this.activeNode},getFirstChild:function(){return this.rootNode.getFirstChild()},getFocusNode:function(){return this.focusNode},getNodeByKey:function(n,t){var r,u;return!t&&(r=i.getElementById(this.options.idPrefix+n))?r.ftnode?r.ftnode:null:(t=t||this.rootNode,u=null,t.visit(function(t){if(t.key===n)return(u=t,!1)},!0),u)},getRootNode:function(){return this.rootNode},getSelectedNodes:function(n){var t=[];return this.rootNode.visit(function(i){if(i.selected&&(t.push(i),n===!0))return"skip"}),t},hasFocus:function(){return!!this._hasFocus},info:function(){this.options.debugLevel>=1&&(Array.prototype.unshift.call(arguments,this.toString()),e("info",arguments))},loadKeyPath:function(t,i,u){function w(n,t,r){i.call(c,t,"loading");t.load().done(function(){c.loadKeyPath.call(c,o[n],i,t).always(b(r,c))}).fail(function(){c.warn("loadKeyPath: error loading: "+n+" (parent: "+s+")");i.call(c,t,"error");r.reject()})}var y,p,a,l,f,o,e,s,h,v=this.options.keyPathSeparator,c=this;for(n.isArray(t)||(t=[t]),o={},a=0;a<t.length;a++)for(s=u||this.rootNode,l=t[a],l.charAt(0)===v&&(l=l.substr(1)),h=l.split(v);h.length;){if(f=h.shift(),e=s._findDirectChild(f),!e){this.warn("loadKeyPath: key not found: "+f+" (parent: "+s+")");i.call(this,f,"error");break}if(0===h.length){i.call(this,e,"ok");break}if(e.lazy&&e.hasChildren()===r){i.call(this,e,"loaded");o[f]?o[f].push(h.join(v)):o[f]=[h.join(v)];break}i.call(this,e,"loaded");s=e}y=[];for(f in o)e=s._findDirectChild(f),p=new n.Deferred,y.push(p),w(f,e,p);return n.when.apply(n,y).promise()},reactivate:function(n){var i,t=this.activeNode;return t?(this.activeNode=null,i=t.setActive(),n&&t.setFocus(),i):f()},reload:function(n){return this._callHook("treeClear",this),this._callHook("treeLoad",this,n)},render:function(n,t){return this.rootNode.render(n,t)},setFocus:function(n){return this._callHook("treeSetFocus",this,n)},toDict:function(n,t){var i=this.rootNode.toDict(!0,t);return n?i:i.children},toString:function(){return"<Fancytree(#"+this._id+")>"},_triggerNodeEvent:function(n,t,i,u){var f=this._makeHookContext(t,i,u),e=this.widget._trigger(n,i,f);return e!==!1&&f.result!==r?f.result:e},_triggerTreeEvent:function(n,t,i){var u=this._makeHookContext(this,t,i),f=this.widget._trigger(n,t,u);return f!==!1&&u.result!==r?u.result:f},visit:function(n){return this.rootNode.visit(n,!1)},warn:function(){Array.prototype.unshift.call(arguments,this.toString());e("warn",arguments)}};n.extend(l.prototype,{nodeClick:function(n){var t,i,r=n.targetType,u=n.node;if("expander"===r)this._callHook("nodeToggleExpanded",n);else if("checkbox"===r)this._callHook("nodeToggleSelected",n),n.options.focusOnSelect&&this._callHook("nodeSetFocus",n,!0);else{if(i=!1,t=!0,u.folder)switch(n.options.clickFolderMode){case 2:i=!0;t=!1;break;case 3:t=!0;i=!0}t&&(this.nodeSetFocus(n),this._callHook("nodeSetActive",n,!0));i&&this._callHook("nodeToggleExpanded",n)}},nodeCollapseSiblings:function(n,t){var r,i,f,u=n.node;if(u.parent)for(r=u.parent.children,i=0,f=r.length;f>i;i++)r[i]!==u&&r[i].expanded&&this._callHook("nodeSetExpanded",r[i],!1,t)},nodeDblclick:function(n){"title"===n.targetType&&4===n.options.clickFolderMode&&this._callHook("nodeToggleExpanded",n);"title"===n.targetType&&n.originalEvent.preventDefault()},nodeKeydown:function(t){var f,e,a,s,r=t.originalEvent,u=t.node,i=t.tree,h=t.options,v=r.which,c=String.fromCharCode(v),y=!(r.altKey||r.ctrlKey||r.metaKey||r.shiftKey),p=n(r.target),l=!0,w=!(r.ctrlKey||!h.autoActivate);if(u||(s=this.getActiveNode()||this.getFirstChild(),s&&(s.setFocus(),u=t.node=this.focusNode,u.debug("Keydown force focus on active node"))),h.quicksearch&&y&&/\w/.test(c)&&!p.is(":input:enabled"))return e=(new Date).getTime(),e-i.lastQuicksearchTime>500&&(i.lastQuicksearchTerm=""),i.lastQuicksearchTime=e,i.lastQuicksearchTerm+=c,f=i.findNextNode(i.lastQuicksearchTerm,i.getActiveNode()),f&&f.setActive(),void r.preventDefault();switch(o.eventToString(r)){case"+":case"=":i.nodeSetExpanded(t,!0);break;case"-":i.nodeSetExpanded(t,!1);break;case"space":h.checkbox?i.nodeToggleSelected(t):i.nodeSetActive(t,!0);break;case"enter":i.nodeSetActive(t,!0);break;case"backspace":case"left":case"right":case"up":case"down":a=u.navigate(r.which,w);break;default:l=!1}l&&r.preventDefault()},nodeLoadChildren:function(t,i){var o,f,s,r=t.tree,e=t.node;return n.isFunction(i)&&(i=i()),i.url&&(o=n.extend({},t.options.ajax,i),o.debugDelay?(f=o.debugDelay,n.isArray(f)&&(f=f[0]+Math.random()*(f[1]-f[0])),e.debug("nodeLoadChildren waiting debug delay "+Math.round(f)+"ms"),o.debugDelay=!1,s=n.Deferred(function(t){setTimeout(function(){n.ajax(o).done(function(){t.resolveWith(this,arguments)}).fail(function(){t.rejectWith(this,arguments)})},f)})):s=n.ajax(o),i=new n.Deferred,s.done(function(u){var o,f;if("json"===this.dataType&&"string"==typeof u&&n.error("Ajax request returned a string (did you get the JSON dataType wrong?)."),t.options.postProcess){if(f=r._triggerNodeEvent("postProcess",t,t.originalEvent,{response:u,error:null,dataType:this.dataType}),f.error)return o=n.isPlainObject(f.error)?f.error:{message:f.error},o=r._makeHookContext(e,null,o),void i.rejectWith(this,[o]);u=n.isArray(f)?f:u}else u&&u.hasOwnProperty("d")&&t.options.enableAspx&&(u="string"==typeof u.d?n.parseJSON(u.d):u.d);i.resolveWith(this,[u])}).fail(function(n,t,u){var f=r._makeHookContext(e,null,{error:n,args:Array.prototype.slice.call(arguments),message:u,details:n.status+": "+u});i.rejectWith(this,[f])})),n.isFunction(i.then)&&n.isFunction(i["catch"])&&(s=i,i=new n.Deferred,s.then(function(n){i.resolve(n)},function(n){i.reject(n)})),n.isFunction(i.promise)&&(u(!e.isLoading(),"recursive load"),r.nodeSetStatus(t,"loading"),i.done(function(){r.nodeSetStatus(t,"ok")}).fail(function(n){var i;i=n.node&&n.error&&n.message?n:r._makeHookContext(e,null,{error:n,args:Array.prototype.slice.call(arguments),message:n?n.message||n.toString():""});r._triggerNodeEvent("loadError",i,null)!==!1&&r.nodeSetStatus(t,"error",i.message,i.details)})),n.when(i).done(function(t){var i;n.isPlainObject(t)&&(u(n.isArray(t.children),"source must contain (or be) an array of children"),u(e.isRoot(),"source may only be an object for root nodes"),i=t,t=t.children,delete i.children,n.extend(r.data,i));u(n.isArray(t),"expected array of children");e._setChildren(t);r._triggerNodeEvent("loadChildren",e)})},nodeLoadKeyPath:function(){},nodeRemoveChild:function(t,i){var f,s=t.node,o=t.options,e=n.extend({},t,{node:i}),r=s.children;return 1===r.length?(u(i===r[0],"invalid single child"),this.nodeRemoveChildren(t)):(this.activeNode&&(i===this.activeNode||this.activeNode.isDescendantOf(i))&&this.activeNode.setActive(!1),this.focusNode&&(i===this.focusNode||this.focusNode.isDescendantOf(i))&&(this.focusNode=null),this.nodeRemoveMarkup(e),this.nodeRemoveChildren(e),f=n.inArray(i,r),u(f>=0,"invalid child"),i.visit(function(n){n.parent=null},!0),this._callHook("treeRegisterNode",this,!1,i),o.removeNode&&o.removeNode.call(t.tree,{type:"removeNode"},e),void r.splice(f,1))},nodeRemoveChildMarkup:function(t){var i=t.node;i.ul&&(i.isRoot()?n(i.ul).empty():(n(i.ul).remove(),i.ul=null),i.visit(function(n){n.li=n.ul=null}))},nodeRemoveChildren:function(t){var r,u=t.tree,i=t.node,e=i.children,f=t.options;e&&(this.activeNode&&this.activeNode.isDescendantOf(i)&&this.activeNode.setActive(!1),this.focusNode&&this.focusNode.isDescendantOf(i)&&(this.focusNode=null),this.nodeRemoveChildMarkup(t),r=n.extend({},t),i.visit(function(n){n.parent=null;u._callHook("treeRegisterNode",u,!1,n);f.removeNode&&(r.node=n,f.removeNode.call(t.tree,{type:"removeNode"},r))}),i.children=i.lazy?[]:null,this.nodeRenderStatus(t))},nodeRemoveMarkup:function(t){var i=t.node;i.li&&(n(i.li).remove(),i.li=null);this.nodeRemoveChildMarkup(t)},nodeRender:function(t,r,f,e,o){var h,b,l,c,p,k,d,s=t.node,g=t.tree,a=t.options,nt=a.aria,tt=!1,w=s.parent,v=!w,y=s.children;if(v||w.ul){if(u(v||w.ul,"parent UL must exist"),v||(s.li&&(r||s.li.parentNode!==s.parent.ul)&&(s.li.parentNode!==s.parent.ul&&this.debug("Unlinking "+s+" (must be child of "+s.parent+")"),this.nodeRemoveMarkup(t)),s.li?this.nodeRenderStatus(t):(tt=!0,s.li=i.createElement("li"),s.li.ftnode=s,s.key&&a.generateIds&&(s.li.id=a.idPrefix+s.key),s.span=i.createElement("span"),s.span.className="fancytree-node",nt&&n(s.span).attr("aria-labelledby","ftal_"+s.key),s.li.appendChild(s.span),this.nodeRenderTitle(t),a.createNode&&a.createNode.call(g,{type:"createNode"},t)),a.renderNode&&a.renderNode.call(g,{type:"renderNode"},t)),y){if(v||s.expanded||f===!0){for(s.ul||(s.ul=i.createElement("ul"),(e===!0&&!o||!s.expanded)&&(s.ul.style.display="none"),nt&&n(s.ul).attr("role","group"),s.li?s.li.appendChild(s.ul):s.tree.$div.append(s.ul)),c=0,p=y.length;p>c;c++)d=n.extend({},t,{node:y[c]}),this.nodeRender(d,r,f,!1,!0);for(h=s.ul.firstChild;h;)l=h.ftnode,l&&l.parent!==s?(s.debug("_fixParent: remove missing "+l,h),k=h.nextSibling,h.parentNode.removeChild(h),h=k):h=h.nextSibling;for(h=s.ul.firstChild,c=0,p=y.length-1;p>c;c++)b=y[c],l=h.ftnode,b!==l?s.ul.insertBefore(b.li,l.li):h=h.nextSibling}}else s.ul&&(this.warn("remove child markup for "+s),this.nodeRemoveChildMarkup(t));v||tt&&w.ul.appendChild(s.li)}},nodeRenderTitle:function(n,t){var a,l,h,c,v,y,i=n.node,p=n.tree,u=n.options,s=u.aria,w=i.getLevel(),e=[],f=i.data.icon;t!==r&&(i.title=t);i.span&&(w<u.minExpandLevel?(i.lazy||(i.expanded=!0),w>1&&e.push(s?"<span role='button' class='fancytree-expander fancytree-expander-fixed'><\/span>":"<span class='fancytree-expander fancytree-expander-fixed''><\/span>")):e.push(s?"<span role='button' class='fancytree-expander'><\/span>":"<span class='fancytree-expander'><\/span>"),u.checkbox&&i.hideCheckbox!==!0&&!i.isStatusNode()&&e.push(s?"<span role='checkbox' class='fancytree-checkbox'><\/span>":"<span class='fancytree-checkbox'><\/span>"),c=s?" role='img'":"",(f===!0||f!==!1&&u.icons!==!1)&&(f&&"string"==typeof f?(f="/"===f.charAt(0)?f:(u.imagePath||"")+f,e.push("<img src='"+f+"' class='fancytree-icon' alt='' />")):(l=u.iconClass&&u.iconClass.call(p,i,n)||i.data.iconclass||null,e.push(l?"<span "+c+" class='fancytree-custom-icon "+l+"'><\/span>":"<span "+c+" class='fancytree-icon'><\/span>"))),h="",u.renderTitle&&(h=u.renderTitle.call(p,{type:"renderTitle"},n)||""),h||(y=i.tooltip?" title='"+o.escapeHtml(i.tooltip)+"'":"",a=s?" id='ftal_"+i.key+"'":"",c=s?" role='treeitem'":"",v=u.titlesTabbable?" tabindex='0'":"",h="<span "+c+" class='fancytree-title'"+a+y+v+">"+i.title+"<\/span>"),e.push(h),i.span.innerHTML=e.join(""),this.nodeRenderStatus(n))},nodeRenderStatus:function(t){var i=t.node,s=t.tree,h=t.options,c=i.hasChildren(),o=i.isLastSibling(),f=h.aria,e=n(i.span).find(".fancytree-title"),r=h._classNames,u=[],l=i[s.statusClassPropName];l&&(u.push(r.node),s.activeNode===i&&u.push(r.active),s.focusNode===i?(u.push(r.focused),f&&e.attr("aria-activedescendant",!0)):f&&e.removeAttr("aria-activedescendant"),i.expanded?(u.push(r.expanded),f&&e.attr("aria-expanded",!0)):f&&e.removeAttr("aria-expanded"),i.folder&&u.push(r.folder),c!==!1&&u.push(r.hasChildren),o&&u.push(r.lastsib),i.lazy&&null==i.children&&u.push(r.lazy),i.partsel&&u.push(r.partsel),i.unselectable&&u.push(r.unselectable),i._isLoading&&u.push(r.loading),i._error&&u.push(r.error),i.selected?(u.push(r.selected),f&&e.attr("aria-selected",!0)):f&&e.attr("aria-selected",!1),i.extraClasses&&u.push(i.extraClasses),u.push(c===!1?r.combinedExpanderPrefix+"n"+(o?"l":""):r.combinedExpanderPrefix+(i.expanded?"e":"c")+(i.lazy&&null==i.children?"d":"")+(o?"l":"")),u.push(r.combinedIconPrefix+(i.expanded?"e":"c")+(i.folder?"f":"")),l.className=u.join(" "),i.li&&(i.li.className=o?r.lastsib:""))},nodeSetActive:function(t,i,r){r=r||{};var h,o=t.node,e=t.tree,c=t.options,s=r.noEvents===!0,l=r.noFocus===!0,a=o===e.activeNode;return i=i!==!1,a===i?f(o):i&&!s&&this._triggerNodeEvent("beforeActivate",o,t.originalEvent)===!1?y(o,["rejected"]):(i?(e.activeNode&&(u(e.activeNode!==o,"node was active (inconsistency)"),h=n.extend({},t,{node:e.activeNode}),e.nodeSetActive(h,!1),u(null===e.activeNode,"deactivate was out of sync?")),c.activeVisible&&o.makeVisible({scrollIntoView:!1}),e.activeNode=o,e.nodeRenderStatus(t),l||e.nodeSetFocus(t),s||e._triggerNodeEvent("activate",o,t.originalEvent)):(u(e.activeNode===o,"node was not active (inconsistency)"),e.activeNode=null,this.nodeRenderStatus(t),s||t.tree._triggerNodeEvent("deactivate",o,t.originalEvent)),f(o))},nodeSetExpanded:function(t,i,u){u=u||{};var h,o,c,p,a,w,e=t.node,b=t.tree,s=t.options,l=u.noAnimation===!0,v=u.noEvents===!0;if((i=i!==!1,e.expanded&&i||!e.expanded&&!i)||i&&!e.lazy&&!e.hasChildren())return f(e);if(!i&&e.getLevel()<s.minExpandLevel)return y(e,["locked"]);if(!v&&this._triggerNodeEvent("beforeExpand",e,t.originalEvent)===!1)return y(e,["rejected"]);if(l||e.isVisible()||(l=u.noAnimation=!0),o=new n.Deferred,i&&!e.expanded&&s.autoCollapse){a=e.getParentList(!1,!0);w=s.autoCollapse;try{for(s.autoCollapse=!1,c=0,p=a.length;p>c;c++)this._callHook("nodeCollapseSiblings",a[c],u)}finally{s.autoCollapse=w}}return o.done(function(){i&&s.autoScroll&&!l?e.getLastChild().scrollIntoView(!0,{topNode:e}).always(function(){v||t.tree._triggerNodeEvent(i?"expand":"collapse",t)}):v||t.tree._triggerNodeEvent(i?"expand":"collapse",t)}),h=function(r){var f,o,u=s.toggleEffect;if(e.expanded=i,b._callHook("nodeRender",t,!1,!1,!0),e.ul)if(f="none"!==e.ul.style.display,o=!!e.expanded,f===o)e.warn("nodeSetExpanded: UL.style.display already set");else{if(u&&!l)return void n(e.ul).toggle(u.effect,u.options,u.duration,function(){r()});e.ul.style.display=e.expanded||!parent?"":"none"}r()},i&&e.lazy&&e.hasChildren()===r?e.load().done(function(){o.notifyWith&&o.notifyWith(e,["loaded"]);h(function(){o.resolveWith(e)})}).fail(function(n){h(function(){o.rejectWith(e,["load failed ("+n+")"])})}):h(function(){o.resolveWith(e)}),o.promise()},nodeSetFocus:function(t,i){var f,r=t.tree,u=t.node;if(i=i!==!1,r.focusNode){if(r.focusNode===u&&i)return;f=n.extend({},t,{node:r.focusNode});r.focusNode=null;this._triggerNodeEvent("blur",f);this._callHook("nodeRenderStatus",f)}i&&(this.hasFocus()||(u.debug("nodeSetFocus: forcing container focus"),this._callHook("treeSetFocus",t,!0,{calledByNode:!0})),u.makeVisible({scrollIntoView:!1}),r.focusNode=u,this._triggerNodeEvent("focus",t),t.options.autoScroll&&u.scrollIntoView(),this._callHook("nodeRenderStatus",t))},nodeSetSelected:function(n,t){var i=n.node,r=n.tree,u=n.options;if(t=t!==!1,i.debug("nodeSetSelected("+t+")",n),!i.unselectable){if(i.selected&&t||!i.selected&&!t||this._triggerNodeEvent("beforeSelect",i,n.originalEvent)===!1)return!!i.selected;t&&1===u.selectMode?r.lastSelectedNode&&r.lastSelectedNode.setSelected(!1):3===u.selectMode&&(i.selected=t,i.fixSelection3AfterClick());i.selected=t;this.nodeRenderStatus(n);r.lastSelectedNode=t?i:null;r._triggerNodeEvent("select",n)}},nodeSetStatus:function(t,i,r,u){function s(){var n=f.children?f.children[0]:null;if(n&&n.isStatusNode()){try{f.ul&&(f.ul.removeChild(n.li),n.li=null)}catch(t){}1===f.children.length?f.children=[]:f.children.shift()}}function o(t,i){var r=f.children?f.children[0]:null;return r&&r.isStatusNode()?(n.extend(r,t),e._callHook("nodeRenderTitle",r)):(t.key="_statusNode",f._setChildren([t]),f.children[0].statusNodeType=i,e.render()),f.children[0]}var f=t.node,e=t.tree;switch(i){case"ok":s();f._isLoading=!1;f._error=null;f.renderStatus();break;case"loading":f.parent||o({title:e.options.strings.loading+(r?" ("+r+") ":""),tooltip:u,extraClasses:"fancytree-statusnode-wait"},i);f._isLoading=!0;f._error=null;f.renderStatus();break;case"error":o({title:e.options.strings.loadError+(r?" ("+r+") ":""),tooltip:u,extraClasses:"fancytree-statusnode-error"},i);f._isLoading=!1;f._error={message:r,details:u};f.renderStatus();break;default:n.error("invalid node status "+i)}},nodeToggleExpanded:function(n){return this.nodeSetExpanded(n,!n.node.expanded)},nodeToggleSelected:function(n){return this.nodeSetSelected(n,!n.node.selected)},treeClear:function(n){var t=n.tree;t.activeNode=null;t.focusNode=null;t.$div.find(">ul.fancytree-container").empty();t.rootNode.children=null},treeCreate:function(){},treeDestroy:function(){},treeInit:function(n){this.treeLoad(n)},treeLoad:function(t,i){var e,u,r=t.tree,f=t.widget.element,o=n.extend({},t,{node:this.rootNode});if(r.rootNode.children&&this.treeClear(t),i=i||this.options.source)"string"==typeof i&&n.error("Not implemented");else switch(e=f.data("type")||"html"){case"html":u=f.find(">ul:first");u.addClass("ui-fancytree-source ui-helper-hidden");i=n.ui.fancytree.parseHtml(u);this.data=n.extend(this.data,p(u));break;case"json":i=n.parseJSON(f.text());i.children&&(i.title&&(r.title=i.title),i=i.children);break;default:n.error("Invalid data-type: "+e)}return this.nodeLoadChildren(o,i).done(function(){r.render();3===t.options.selectMode&&r.rootNode.fixSelection3FromEndNodes();r._triggerTreeEvent("init",null,{status:!0})}).fail(function(){r.render();r._triggerTreeEvent("init",null,{status:!1})})},treeRegisterNode:function(){},treeSetFocus:function(n,t){t=t!==!1;t!==this.hasFocus()&&(this._hasFocus=t,!t&&this.focusNode&&this.focusNode.setFocus(!1),this.$container.toggleClass("fancytree-treefocus",t),this._triggerTreeEvent(t?"focusTree":"blurTree"))}});n.widget("ui.fancytree",{options:{activeVisible:!0,ajax:{type:"GET",cache:!1,dataType:"json"},aria:!1,autoActivate:!0,autoCollapse:!1,autoScroll:!1,checkbox:!1,clickFolderMode:4,debugLevel:null,disabled:!1,enableAspx:!0,extensions:[],toggleEffect:{effect:"blind",options:{direction:"vertical",scale:"box"},duration:200},generateIds:!1,icons:!0,idPrefix:"ft_",focusOnSelect:!1,keyboard:!0,keyPathSeparator:"/",minExpandLevel:1,quicksearch:!1,scrollOfs:{top:0,bottom:0},scrollParent:null,selectMode:2,strings:{loading:"Loading&#8230;",loadError:"Load error!"},tabbable:!0,titlesTabbable:!1,_classNames:{node:"fancytree-node",folder:"fancytree-folder",combinedExpanderPrefix:"fancytree-exp-",combinedIconPrefix:"fancytree-ico-",hasChildren:"fancytree-has-children",active:"fancytree-active",selected:"fancytree-selected",expanded:"fancytree-expanded",lazy:"fancytree-lazy",focused:"fancytree-focused",partsel:"fancytree-partsel",unselectable:"fancytree-unselectable",lastsib:"fancytree-lastsib",loading:"fancytree-loading",error:"fancytree-error"},lazyLoad:null,postProcess:null},_create:function(){this.tree=new l(this);this.$source=this.source||"json"===this.element.data("type")?this.element:this.element.find(">ul:first");for(var i,t,e=this.options.extensions,o=this.tree,f=0;f<e.length;f++)t=e[f],i=n.ui.fancytree._extensions[t],i||n.error("Could not apply extension '"+t+"' (it is not registered, did you forget to include it?)"),this.tree.options[t]=n.extend(!0,{},i.options,this.tree.options[t]),u(this.tree.ext[t]===r,"Extension name must not exist as Fancytree.ext attribute: '"+t+"'"),this.tree.ext[t]={},it(this.tree,o,i,t),o=i;this.tree._callHook("treeCreate",this.tree)},_init:function(){this.tree._callHook("treeInit",this.tree);this._bind()},_setOption:function(t,i){var r=!0,u=!1;switch(t){case"aria":case"checkbox":case"icons":case"minExpandLevel":case"tabbable":this.tree._callHook("treeCreate",this.tree);u=!0;break;case"source":r=!1;this.tree._callHook("treeLoad",this.tree,i)}this.tree.debug("set option "+t+"="+i+" <"+typeof i+">");r&&n.Widget.prototype._setOption.apply(this,arguments);u&&this.tree.render(!0,!1)},destroy:function(){this._unbind();this.tree._callHook("treeDestroy",this.tree);this.tree.$div.find(">ul.fancytree-container").remove();this.$source&&this.$source.removeClass("ui-helper-hidden");n.Widget.prototype.destroy.call(this)},_unbind:function(){var t=this.tree._ns;this.element.unbind(t);this.tree.$container.unbind(t);n(i).unbind(t)},_bind:function(){var r=this,i=this.options,n=this.tree,t=n._ns;this._unbind();n.$container.on("focusin"+t+" focusout"+t,function(t){var i=o.getNode(t),r="focusin"===t.type;i?n._callHook("nodeSetFocus",i,r):n._callHook("treeSetFocus",n,r)}).on("selectstart"+t,"span.fancytree-title",function(n){n.preventDefault()}).on("keydown"+t,function(t){if(i.disabled||i.keyboard===!1)return!0;var r,u=n.focusNode,f=n._makeHookContext(u||n,t),e=n.phase;try{return n.phase="userEvent",r=u?n._triggerNodeEvent("keydown",u,t):n._triggerTreeEvent("keydown",t),"preventNav"===r?r=!0:r!==!1&&(r=n._callHook("nodeKeydown",f)),r}finally{n.phase=e}}).on("click"+t+" dblclick"+t,function(n){if(i.disabled)return!0;var u,f=o.getEventTarget(n),e=f.node,t=r.tree,s=t.phase;if(!e)return!0;u=t._makeHookContext(e,n);try{switch(t.phase="userEvent",n.type){case"click":return u.targetType=f.type,t._triggerNodeEvent("click",u,n)===!1?!1:t._callHook("nodeClick",u);case"dblclick":return u.targetType=f.type,t._triggerNodeEvent("dblclick",u,n)===!1?!1:t._callHook("nodeDblclick",u)}}finally{t.phase=s}})},getActiveNode:function(){return this.tree.activeNode},getNodeByKey:function(n){return this.tree.getNodeByKey(n)},getRootNode:function(){return this.tree.rootNode},getTree:function(){return this.tree}});o=n.ui.fancytree;n.extend(n.ui.fancytree,{version:"2.9.0",buildType:"production",debugLevel:1,_nextId:1,_nextNodeKey:1,_extensions:{},_FancytreeClass:l,_FancytreeNodeClass:c,jquerySupports:{positionMyOfs:tt(n.ui.version,1,9)},assert:function(n,t){return u(n,t)},debounce:function(n,t,i,r){var u;return 3===arguments.length&&"boolean"!=typeof i&&(r=i,i=!1),function(){var f=arguments;r=r||this;i&&!u&&t.apply(r,f);clearTimeout(u);u=setTimeout(function(){i||t.apply(r,f);u=null},n)}},debug:function(){n.ui.fancytree.debugLevel>=2&&e("log",arguments)},error:function(){e("error",arguments)},escapeHtml:function(n){return(""+n).replace(/[&<>"'\/]/g,function(n){return ut[n]})},fixPositionOptions:function(t){if((t.offset||(""+t.my+t.at).indexOf("%")>=0)&&n.error("expected new position syntax (but '%' is not supported)"),!n.ui.fancytree.jquerySupports.positionMyOfs){var i=/(\w+)([+-]?\d+)?\s+(\w+)([+-]?\d+)?/.exec(t.my),r=/(\w+)([+-]?\d+)?\s+(\w+)([+-]?\d+)?/.exec(t.at),u=(i[2]?+i[2]:0)+(r[2]?+r[2]:0),f=(i[4]?+i[4]:0)+(r[4]?+r[4]:0);t=n.extend({},t,{my:i[1]+" "+i[3],at:r[1]+" "+r[3]});(u||f)&&(t.offset=""+u+" "+f)}return t},getEventTargetType:function(n){return this.getEventTarget(n).type},getEventTarget:function(t){var u=t&&t.target?t.target.className:"",i={node:this.getNode(t.target),type:r};return/\bfancytree-title\b/.test(u)?i.type="title":/\bfancytree-expander\b/.test(u)?i.type=i.node.hasChildren()===!1?"prefix":"expander":/\bfancytree-checkbox\b/.test(u)||/\bfancytree-radio\b/.test(u)?i.type="checkbox":/\bfancytree-icon\b/.test(u)?i.type="icon":/\bfancytree-node\b/.test(u)?i.type="title":t&&t.target&&n(t.target).closest(".fancytree-title").length&&(i.type="title"),i},getNode:function(n){if(n instanceof c)return n;for(n.selector!==r?n=n[0]:n.originalEvent!==r&&(n=n.target);n;){if(n.ftnode)return n.ftnode;n=n.parentNode}return null},info:function(){n.ui.fancytree.debugLevel>=1&&e("info",arguments)},eventToString:function(n){var i=n.which,r=n.type,t=[];return n.altKey&&t.push("alt"),n.ctrlKey&&t.push("ctrl"),n.metaKey&&t.push("meta"),n.shiftKey&&t.push("shift"),"click"===r||"dblclick"===r?t.push(ot[n.button]+r):ft[i]||t.push(et[i]||String.fromCharCode(i).toLowerCase()),t.join("+")},keyEventToString:function(n){return this.warn("keyEventToString() is deprecated: use eventToString()"),this.eventToString(n)},parseHtml:function(t){var o,i,f,s,u,c,l,e,y=t.find(">li"),v=[];return y.each(function(){var b,w=n(this),g=w.find(">span:first",this),k=g.length?null:w.find(">a:first"),y={tooltip:null,data:{}};for(g.length?y.title=g.html():k&&k.length?(y.title=k.html(),y.data.href=k.attr("href"),y.data.target=k.attr("target"),y.tooltip=k.attr("title")):(y.title=w.html(),s=y.title.search(/<ul/i),s>=0&&(y.title=y.title.substring(0,s))),y.title=n.trim(y.title),i=0,f=a.length;f>i;i++)y[a[i]]=r;for(l=this.className.split(" "),o=[],i=0,f=l.length;f>i;i++)e=l[i],d[e]?y[e]=!0:o.push(e);if(y.extraClasses=o.join(" "),u=w.attr("title"),u&&(y.tooltip=u),u=w.attr("id"),u&&(y.key=u),b=p(w),b&&!n.isEmptyObject(b)){for(i=0,f=h.length;f>i;i++)u=h[i],c=b[u],null!=c&&(delete b[u],y[u]=c);n.extend(y.data,b)}t=w.find(">ul:first");y.children=t.length?n.ui.fancytree.parseHtml(t):y.lazy?r:null;v.push(y)}),v},registerExtension:function(t){u(null!=t.name,"extensions must have a `name` property.");u(null!=t.version,"extensions must have a `version` property.");n.ui.fancytree._extensions[t.name]=t},unescapeHtml:function(n){var t=i.createElement("div");return t.innerHTML=n,0===t.childNodes.length?"":t.childNodes[0].nodeValue},warn:function(){e("warn",arguments)}})}(jQuery,window,document);!function(n){"use strict";n.ui.fancytree._FancytreeClass.prototype.countSelected=function(n){var t=this;return t.options,t.getSelectedNodes(n).length};n.ui.fancytree._FancytreeNodeClass.prototype.toUpper=function(){var n=this;return n.setTitle(n.title.toUpperCase())};n.ui.fancytree.prototype.widgetMethod1=function(n){return this.tree,n};n.ui.fancytree.registerExtension({name:"childcounter",version:"1.0.0",options:{deep:!0,hideZeros:!0,hideExpanded:!1},foo:42,_appendCounter:function(){},treeInit:function(n){n.options;n.options.childcounter;this._superApply(arguments);this.$container.addClass("fancytree-ext-childcounter")},treeDestroy:function(){this._superApply(arguments)},nodeRenderTitle:function(t){var i=t.node,r=t.options.childcounter,u=null==i.data.childCounter?i.countChildren(r.deep):+i.data.childCounter;this._superApply(arguments);!u&&r.hideZeros||i.isExpanded()&&r.hideExpanded||n("span.fancytree-icon",i.span).append(n("<span class='fancytree-childcounter'/>").text(u))},nodeSetExpanded:function(n){var t=n.tree;return n.node,this._superApply(arguments).always(function(){t.nodeRenderTitle(n)})}})}(jQuery);!function(n){"use strict";function t(t,i){t||(i=i?": "+i:"",n.error("Assertion failed"+i))}function i(n,t){for(var i=n.length-1;i>=0;i--)if(n[i]===t)return n.splice(i,1),!0;return!1}function r(n,t,i){for(var s,r,h=3&n.length,c=n.length-h,u=i,e=3432918353,o=461845907,f=0;c>f;)r=255&n.charCodeAt(f)|(255&n.charCodeAt(++f))<<8|(255&n.charCodeAt(++f))<<16|(255&n.charCodeAt(++f))<<24,++f,r=(65535&r)*e+(((r>>>16)*e&65535)<<16)&4294967295,r=r<<15|r>>>17,r=(65535&r)*o+(((r>>>16)*o&65535)<<16)&4294967295,u^=r,u=u<<13|u>>>19,s=5*(65535&u)+((5*(u>>>16)&65535)<<16)&4294967295,u=(65535&s)+27492+(((s>>>16)+58964&65535)<<16);switch(r=0,h){case 3:r^=(255&n.charCodeAt(f+2))<<16;case 2:r^=(255&n.charCodeAt(f+1))<<8;case 1:r^=255&n.charCodeAt(f);r=(65535&r)*e+(((r>>>16)*e&65535)<<16)&4294967295;r=r<<15|r>>>17;r=(65535&r)*o+(((r>>>16)*o&65535)<<16)&4294967295;u^=r}return u^=n.length,u^=u>>>16,u=2246822507*(65535&u)+((2246822507*(u>>>16)&65535)<<16)&4294967295,u^=u>>>13,u=3266489909*(65535&u)+((3266489909*(u>>>16)&65535)<<16)&4294967295,u^=u>>>16,t?("0000000"+(u>>>0).toString(16)).substr(-8):u>>>0}function u(t){var u,i=n.map(t.getParentList(!1,!0),function(n){return n.refKey||n.key});return i=i.join("/"),u="id_"+r(i,!0)}n.ui.fancytree._FancytreeNodeClass.prototype.getCloneList=function(t){var r,u=this.tree,i=u.refMap[this.refKey]||null,f=u.keyMap;return i&&(r=this.key,t?i=n.map(i,function(n){return f[n]}):(i=n.map(i,function(n){return n===r?null:f[n]}),i.length<1&&(i=null))),i};n.ui.fancytree._FancytreeNodeClass.prototype.isClone=function(){var n=this.refKey||null,t=n&&this.tree.refMap[n]||null;return!!(t&&t.length>1)};n.ui.fancytree._FancytreeNodeClass.prototype.reRegister=function(t,i){t=null==t?null:""+t;i=null==i?null:""+i;var h=this.tree,e=this.key,f=this.refKey,o=h.keyMap,r=h.refMap,u=r[f]||null,s=!1;return null!=t&&t!==this.key&&(o[t]&&n.error("[ext-clones] reRegister("+t+"): already exists: "+this),delete o[e],o[t]=this,u&&(r[f]=n.map(u,function(n){return n===e?t:n})),this.key=t,s=!0),null!=i&&i!==this.refKey&&(u&&(1===u.length?delete r[f]:r[f]=n.map(u,function(n){return n===e?null:n})),r[i]?r[i].append(t):r[i]=[this.key],this.refKey=i,s=!0),s};n.ui.fancytree._FancytreeClass.prototype.getNodesByRef=function(t,i){var u=this.keyMap,r=this.refMap[t]||null;return r&&(r=i?n.map(r,function(n){var t=u[n];return t.isDescendantOf(i)?t:null}):n.map(r,function(n){return u[n]}),r.length<1&&(r=null)),r};n.ui.fancytree._FancytreeClass.prototype.changeRefKey=function(n,t){var i,u,f=this.keyMap,r=this.refMap[n]||null;if(r){for(i=0;i<r.length;i++)u=f[r[i]],u.refKey=t;delete this.refMap[n];this.refMap[t]=r}};n.ui.fancytree.registerExtension({name:"clones",version:"0.0.3",options:{highlightActiveClones:!0,highlightClones:!1},treeCreate:function(n){this._superApply(arguments);n.tree.refMap={};n.tree.keyMap={}},treeInit:function(n){this.$container.addClass("fancytree-ext-clones");t(null==n.options.defaultKey);n.options.defaultKey=function(n){return u(n)};this._superApply(arguments)},treeClear:function(n){return n.tree.refMap={},n.tree.keyMap={},this._superApply(arguments)},treeRegisterNode:function(r,u,f){var e,c,a=r.tree,s=a.keyMap,l=a.refMap,o=f.key,h=f&&null!=f.refKey?""+f.refKey:null;return"_statusNode"===o?this._superApply(arguments):(u?(null!=s[f.key]&&n.error("clones.treeRegisterNode: node.key already exists: "+f),s[o]=f,h&&(e=l[h],e?(e.push(o),2===e.length&&r.options.clones.highlightClones&&s[e[0]].renderStatus()):l[h]=[o])):(null==s[o]&&n.error("clones.treeRegisterNode: node.key not registered: "+f.key),delete s[o],h&&(e=l[h],e&&(c=e.length,1>=c?(t(1===c),t(e[0]===o),delete l[h]):(i(e,o),2===c&&r.options.clones.highlightClones&&s[e[0]].renderStatus())))),this._superApply(arguments))},nodeRenderStatus:function(t){var i,r,u=t.node;return r=this._superApply(arguments),t.options.clones.highlightClones&&(i=n(u[t.tree.statusClassPropName]),i.length&&u.isClone()&&i.addClass("fancytree-clone")),r},nodeSetActive:function(t,i){var r,f=t.tree.statusClassPropName,u=t.node;return r=this._superApply(arguments),t.options.clones.highlightActiveClones&&u.isClone()&&n.each(u.getCloneList(!0),function(t,r){n(r[f]).toggleClass("fancytree-active-clone",i!==!1)}),r}})}(jQuery,window,document);!function(n,t,i,r){"use strict";function f(n){return 0===n?"":n>0?"+"+n:""+n}function e(t){var i=t.options.dnd||null;i&&o();i&&i.dragStart&&t.widget.element.draggable(n.extend({addClasses:!1,appendTo:t.$container,containment:!1,delay:0,distance:4,revert:!1,scroll:!0,scrollSpeed:7,scrollSensitivity:10,connectToFancytree:!0,helper:function(t){var i,u,r=n.ui.fancytree.getNode(t.target);return r?(u=n(r.span),i=n("<div class='fancytree-drag-helper'><span class='fancytree-drag-helper-img' /><\/div>").css({zIndex:3,position:"relative"}).append(u.find("span.fancytree-title").clone()),i.data("ftSourceNode",r),i):"<div>ERROR?: helper requested but sourceNode not found<\/div>"},start:function(n,t){var i=t.helper.data("ftSourceNode");return!!i}},t.options.dnd.draggable));i&&i.dragDrop&&t.widget.element.droppable(n.extend({addClasses:!1,tolerance:"intersect",greedy:!1},t.options.dnd.droppable))}function o(){u||(n.ui.plugin.add("draggable","connectToFancytree",{start:function(t,i){var r=n(this).data("ui-draggable")||n(this).data("draggable"),u=i.helper.data("ftSourceNode")||null;if(u)return(r.offset.click.top=-2,r.offset.click.left=16,u.tree.ext.dnd._onDragEvent("start",u,null,t,i,r))},drag:function(t,i){var s,o,e=n(this).data("ui-draggable")||n(this).data("draggable"),f=i.helper.data("ftSourceNode")||null,u=i.helper.data("ftTargetNode")||null,r=n.ui.fancytree.getNode(t.target);return t.target&&!r&&(s=n(t.target).closest("div.fancytree-drag-helper,#fancytree-drop-marker").length>0)?(o=f||u||n.ui.fancytree,void o.debug("Drag event over helper: ignored.")):(i.helper.data("ftTargetNode",r),u&&u!==r&&u.tree.ext.dnd._onDragEvent("leave",u,f,t,i,e),void(r&&r.tree.options.dnd.dragDrop&&(r===u?r.tree.ext.dnd._onDragEvent("over",r,f,t,i,e):r.tree.ext.dnd._onDragEvent("enter",r,f,t,i,e))))},stop:function(t,i){var e,f=n(this).data("ui-draggable")||n(this).data("draggable"),r=i.helper.data("ftSourceNode")||null,u=i.helper.data("ftTargetNode")||null,s=t.type,o="mouseup"===s&&1===t.which;o||(e=r||u||n.ui.fancytree,e.debug("Drag was cancelled"));u&&(o&&u.tree.ext.dnd._onDragEvent("drop",u,r,t,i,f),u.tree.ext.dnd._onDragEvent("leave",u,r,t,i,f));r&&r.tree.ext.dnd._onDragEvent("stop",r,null,t,i,f)}}),u=!0)}var u=!1;n.ui.fancytree.registerExtension({name:"dnd",version:"0.1.0",options:{autoExpandMS:1e3,draggable:null,droppable:null,focusOnClick:!1,preventVoidMoves:!0,preventRecursiveMoves:!0,dragStart:null,dragStop:null,dragEnter:null,dragOver:null,dragDrop:null,dragLeave:null},treeInit:function(t){var i=t.tree;this._superApply(arguments);i.options.dnd.dragStart&&i.$container.on("mousedown",function(i){if(t.options.dnd.focusOnClick){var r=n.ui.fancytree.getNode(i);r&&r.debug("Re-enable focus that was prevented by jQuery UI draggable.");setTimeout(function(){n(i.target).closest(":tabbable").focus()},10)}});e(i)},nodeKeydown:function(t){var i=t.originalEvent;return i.which===n.ui.keyCode.ESCAPE&&this._local._cancelDrag(),this._superApply(arguments)},nodeClick:function(){return this._superApply(arguments)},_setDndStatus:function(t,i,r,u,e){var l=0,c="center",h=this._local,s=t?n(t.span):null,o=n(i.span);if(h.$dropMarker||(h.$dropMarker=n("<div id='fancytree-drop-marker'><\/div>").hide().css({"z-index":1e3}).prependTo(n(this.$div).parent())),"after"===u||"before"===u||"over"===u){switch(u){case"before":h.$dropMarker.removeClass("fancytree-drop-after fancytree-drop-over").addClass("fancytree-drop-before");c="top";break;case"after":h.$dropMarker.removeClass("fancytree-drop-before fancytree-drop-over").addClass("fancytree-drop-after");c="bottom";break;default:h.$dropMarker.removeClass("fancytree-drop-after fancytree-drop-before").addClass("fancytree-drop-over");o.addClass("fancytree-drop-target");l=8}h.$dropMarker.show().position(n.ui.fancytree.fixPositionOptions({my:"left"+f(l)+" center",at:"left "+c,of:o}))}else o.removeClass("fancytree-drop-target"),h.$dropMarker.hide();"after"===u?o.addClass("fancytree-drop-after"):o.removeClass("fancytree-drop-after");"before"===u?o.addClass("fancytree-drop-before"):o.removeClass("fancytree-drop-before");e===!0?(s&&s.addClass("fancytree-drop-accept"),o.addClass("fancytree-drop-accept"),r.addClass("fancytree-drop-accept")):(s&&s.removeClass("fancytree-drop-accept"),o.removeClass("fancytree-drop-accept"),r.removeClass("fancytree-drop-accept"));e===!1?(s&&s.addClass("fancytree-drop-reject"),o.addClass("fancytree-drop-reject"),r.addClass("fancytree-drop-reject")):(s&&s.removeClass("fancytree-drop-reject"),o.removeClass("fancytree-drop-reject"),r.removeClass("fancytree-drop-reject"))},_onDragEvent:function(t,i,u,f,e,o){"over"!==t&&this.debug("tree.ext.dnd._onDragEvent(%s, %o, %o) - %o",t,i,u,this);var w,b,y,l,s,c,k=this.options,h=k.dnd,v=this._makeHookContext(i,f,{otherNode:u,ui:e,draggable:o}),a=null,p=n(i.span);switch(t){case"start":i.isStatusNode()?a=!1:h.dragStart&&(a=h.dragStart(i,v));a===!1?(this.debug("tree.dragStart() cancelled"),e.helper.trigger("mouseup").hide()):p.addClass("fancytree-drag-source");break;case"enter":c=h.preventRecursiveMoves&&i.isDescendantOf(u)?!1:h.dragEnter?h.dragEnter(i,v):null;a=c?n.isArray(c)?{over:n.inArray("over",c)>=0,before:n.inArray("before",c)>=0,after:n.inArray("after",c)>=0}:{over:c===!0||"over"===c,before:c===!0||"before"===c,after:c===!0||"after"===c}:!1;e.helper.data("enterResponse",a);this.debug("helper.enterResponse: %o",a);break;case"over":l=e.helper.data("enterResponse");s=null;l===!1||("string"==typeof l?s=l:(w=p.offset(),b={x:f.pageX-w.left,y:f.pageY-w.top},y={x:b.x/p.width(),y:b.y/p.height()},l.after&&y.y>.75?s="after":!l.over&&l.after&&y.y>.5?s="after":l.before&&y.y<=.25?s="before":!l.over&&l.before&&y.y<=.5?s="before":l.over&&(s="over"),h.preventVoidMoves&&(i===u?(this.debug("    drop over source node prevented"),s=null):"before"===s&&u&&i===u.getNextSibling()?(this.debug("    drop after source node prevented"),s=null):"after"===s&&u&&i===u.getPrevSibling()?(this.debug("    drop before source node prevented"),s=null):"over"===s&&u&&u.parent===i&&u.isLastSibling()&&(this.debug("    drop last child over own parent prevented"),s=null)),e.helper.data("hitMode",s)));"over"===s&&h.autoExpandMS&&i.hasChildren()!==!1&&!i.expanded&&i.scheduleAction("expand",h.autoExpandMS);s&&h.dragOver&&(v.hitMode=s,a=h.dragOver(i,v));this._local._setDndStatus(u,i,e.helper,s,a!==!1&&null!==s);break;case"drop":s=e.helper.data("hitMode");s&&h.dragDrop&&(v.hitMode=s,h.dragDrop(i,v));break;case"leave":i.scheduleAction("cancel");e.helper.data("enterResponse",null);e.helper.data("hitMode",null);this._local._setDndStatus(u,i,e.helper,"out",r);h.dragLeave&&h.dragLeave(i,v);break;case"stop":p.removeClass("fancytree-drag-source");h.dragStop&&h.dragStop(i,v);break;default:n.error("Unsupported drag event: "+t)}return a},_cancelDrag:function(){var t=n.ui.ddmanager.current;t&&t.cancel()}})}(jQuery,window,document);!function(n,t,i){"use strict";var r=/Mac/.test(navigator.platform),u=n.ui.fancytree.escapeHtml,f=n.ui.fancytree.unescapeHtml;n.ui.fancytree._FancytreeNodeClass.prototype.editStart=function(){var r,t=this,e=this.tree,o=e.ext.edit,u=e.options.edit,h=n(".fancytree-title",t.span),s={node:t,tree:e,options:e.options,isNew:n(t.span).hasClass("fancytree-edit-new"),orgTitle:t.title,input:null,dirty:!1};return u.beforeEdit.call(t,{type:"beforeEdit"},s)===!1?!1:(n.ui.fancytree.assert(!o.currentNode,"recursive edit"),o.currentNode=this,o.eventData=s,e.widget._unbind(),n(i).on("mousedown.fancytree-edit",function(i){n(i.target).hasClass("fancytree-edit-input")||t.editEnd(!0,i)}),r=n("<input />",{"class":"fancytree-edit-input",type:"text",value:f(s.orgTitle)}),o.eventData.input=r,null!=u.adjustWidthOfs&&r.width(h.width()+u.adjustWidthOfs),null!=u.inputCss&&r.css(u.inputCss),h.html(r),r.focus().change(function(){r.addClass("fancytree-edit-dirty")}).keydown(function(i){switch(i.which){case n.ui.keyCode.ESCAPE:t.editEnd(!1,i);break;case n.ui.keyCode.ENTER:return t.editEnd(!0,i),!1}i.stopPropagation()}).blur(function(n){return t.editEnd(!0,n)}),void u.edit.call(t,{type:"edit"},s))};n.ui.fancytree._FancytreeNodeClass.prototype.editEnd=function(t){var e,f=this,s=this.tree,o=s.ext.edit,r=o.eventData,h=s.options.edit,l=n(".fancytree-title",f.span),c=l.find("input.fancytree-edit-input");return h.trim&&c.val(n.trim(c.val())),e=c.val(),r.dirty=e!==f.title,r.save=t===!1?!1:r.isNew?""!==e:r.dirty&&""!==e,h.beforeClose.call(f,{type:"beforeClose"},r)===!1?!1:r.save&&h.save.call(f,{type:"save"},r)===!1?!1:(c.removeClass("fancytree-edit-dirty").unbind(),n(i).off(".fancytree-edit"),r.save?(f.setTitle(u(e)),f.setFocus()):r.isNew?(f.remove(),f=r.node=null,o.relatedNode.setFocus()):(f.renderTitle(),f.setFocus()),o.eventData=null,o.currentNode=null,o.relatedNode=null,s.widget._bind(),n(s.$container).focus(),r.input=null,h.close.call(f,{type:"close"},r),!0)};n.ui.fancytree._FancytreeNodeClass.prototype.editCreateNode=function(t,i){var r,u=this;return t=t||"child",null==i?i={title:""}:"string"==typeof i?i={title:i}:n.ui.fancytree.assert(n.isPlainObject(i)),"child"!==t||this.isExpanded()||this.hasChildren()===!1?(r=this.addNode(i,t),void r.makeVisible().done(function(){n(r.span).addClass("fancytree-edit-new");u.tree.ext.edit.relatedNode=u;r.editStart()})):void this.setExpanded().done(function(){u.editCreateNode(t,i)})};n.ui.fancytree._FancytreeClass.prototype.isEditing=function(){return this.ext.edit.currentNode};n.ui.fancytree._FancytreeNodeClass.prototype.isEditing=function(){return this.tree.ext.edit.currentNode===this};n.ui.fancytree.registerExtension({name:"edit",version:"0.2.0",options:{adjustWidthOfs:4,allowEmpty:!1,inputCss:{minWidth:"3em"},triggerCancel:["esc","tab","click"],triggerStart:["f2","shift+click","mac+enter"],trim:!0,beforeClose:n.noop,beforeEdit:n.noop,close:n.noop,edit:n.noop,save:n.noop},currentNode:null,treeInit:function(){this._superApply(arguments);this.$container.addClass("fancytree-ext-edit")},nodeClick:function(t){return n.inArray("shift+click",t.options.edit.triggerStart)>=0&&t.originalEvent.shiftKey?(t.node.editStart(),!1):this._superApply(arguments)},nodeDblclick:function(t){return n.inArray("dblclick",t.options.edit.triggerStart)>=0?(t.node.editStart(),!1):this._superApply(arguments)},nodeKeydown:function(t){switch(t.originalEvent.which){case 113:if(n.inArray("f2",t.options.edit.triggerStart)>=0)return t.node.editStart(),!1;break;case n.ui.keyCode.ENTER:if(n.inArray("mac+enter",t.options.edit.triggerStart)>=0&&r)return t.node.editStart(),!1}return this._superApply(arguments)}})}(jQuery,window,document);!function(n){"use strict";function t(n){return(n+"").replace(/([.?*+\^\$\[\]\\(){}|-])/g,"\\$1")}n.ui.fancytree._FancytreeClass.prototype._applyFilterImpl=function(n,i,r){var u,f,e,o=0,s="hide"===this.options.filter.mode;return r=r||{},u=!!r.leavesOnly&&!i,"string"==typeof n&&(f=t(n),e=new RegExp(".*"+f+".*","i"),n=function(n){return!!e.exec(n.title)}),this.enableFilter=!0,this.lastFilterArgs=arguments,this.$div.addClass("fancytree-ext-filter"),this.$div.addClass(s?"fancytree-ext-filter-hide":"fancytree-ext-filter-dimm"),this.visit(function(n){delete n.match;delete n.subMatch}),this.visit(function(t){if((!u||null==t.children)&&n(t)&&(o++,t.match=!0,t.visitParents(function(n){n.subMatch=!0;r.autoExpand&&!n.expanded&&(n.setExpanded(!0,{noAnimation:!0,noEvents:!0,scrollIntoView:!1}),n._filterAutoExpanded=!0)}),i))return(t.visit(function(n){n.match=!0}),"skip")}),this.render(),o};n.ui.fancytree._FancytreeClass.prototype.filterNodes=function(n,t){return"boolean"==typeof t&&(t={leavesOnly:t},this.warn("Fancytree.filterNodes() leavesOnly option is deprecated since 2015-04-20.")),this._applyFilterImpl(n,!1,t)};n.ui.fancytree._FancytreeClass.prototype.applyFilter=function(){return this.warn("Fancytree.applyFilter() is deprecated since 2014-05-10. Use .filterNodes() instead."),this.filterNodes.apply(this,arguments)};n.ui.fancytree._FancytreeClass.prototype.filterBranches=function(n){return this._applyFilterImpl(n,!0,null)};n.ui.fancytree._FancytreeClass.prototype.clearFilter=function(){this.visit(function(n){delete n.match;delete n.subMatch;n._filterAutoExpanded&&n.expanded&&n.setExpanded(!1,{noAnimation:!0,noEvents:!0,scrollIntoView:!1});delete n._filterAutoExpanded});this.enableFilter=!1;this.lastFilterArgs=null;this.$div.removeClass("fancytree-ext-filter fancytree-ext-filter-dimm fancytree-ext-filter-hide");this.render()};n.ui.fancytree.registerExtension({name:"filter",version:"0.4.0",options:{autoApply:!0,mode:"dimm"},nodeLoadChildren:function(n){return this._superApply(arguments).done(function(){n.tree.enableFilter&&n.tree.lastFilterArgs&&n.options.filter.autoApply&&n.tree._applyFilterImpl.apply(n.tree,n.tree.lastFilterArgs)})},nodeSetExpanded:function(n){return delete n.node._filterAutoExpanded,this._superApply(arguments)},nodeRenderStatus:function(t){var r,i=t.node,u=t.tree,f=n(i[u.statusClassPropName]);return r=this._superApply(arguments),f.length&&u.enableFilter?(f.toggleClass("fancytree-match",!!i.match).toggleClass("fancytree-submatch",!!i.subMatch).toggleClass("fancytree-hide",!(i.match||i.subMatch)),r):r}})}(jQuery,window,document);!function(n){"use strict";function t(n,t){return n.map[t]}n.ui.fancytree.registerExtension({name:"glyph",version:"0.2.0",options:{map:{checkbox:"icon-check-empty",checkboxSelected:"icon-check",checkboxUnknown:"icon-check icon-muted",error:"icon-exclamation-sign",expanderClosed:"icon-caret-right",expanderLazy:"icon-angle-right",expanderOpen:"icon-caret-down",doc:"icon-file-alt",noExpander:"",docOpen:"icon-file-alt",loading:"icon-refresh icon-spin",folder:"icon-folder-close-alt",folderOpen:"icon-folder-open-alt"}},treeInit:function(n){var t=n.tree;this._superApply(arguments);t.$container.addClass("fancytree-ext-glyph")},nodeRenderStatus:function(i){var f,u,r=i.node,o=n(r.span),e=i.options.glyph,s=e.map;this._superApply(arguments);r.isRoot()||(u=o.children("span.fancytree-expander").get(0),u&&(f=r.isLoading()?"loading":r.expanded?"expanderOpen":r.isUndefined()?"expanderLazy":r.hasChildren()?"expanderClosed":"noExpander",u.className="fancytree-expander "+s[f]),u=r.tr?n("td",r.tr).children("span.fancytree-checkbox").get(0):o.children("span.fancytree-checkbox").get(0),u&&(f=r.selected?"checkboxSelected":r.partsel?"checkboxUnknown":"checkbox",u.className="fancytree-checkbox "+s[f]),u=o.children("span.fancytree-icon").get(0),u&&(f=r.folder?r.expanded?t(e,"folderOpen"):t(e,"folder"):r.expanded?t(e,"docOpen"):t(e,"doc"),u.className="fancytree-icon "+f))},nodeSetStatus:function(i,r){var u,e=i.options.glyph,f=i.node;this._superApply(arguments);u=f.parent?n("span.fancytree-expander",f.span).get(0):n(".fancytree-statusnode-wait, .fancytree-statusnode-error",f[this.nodeContainerAttrName]).find("span.fancytree-expander").get(0);"loading"===r?u.className="fancytree-expander "+t(e,"loading"):"error"===r&&(u.className="fancytree-expander "+t(e,"error"))}})}(jQuery,window,document);!function(n){"use strict";function i(t,i){var r,f=i.get(0),u=0;return t.children().each(function(){return this===f?!1:(r=n(this).prop("colspan"),void(u+=r?r:1))}),u}function r(t,i){var r,u=null,f=0;return t.children().each(function(){return f>=i?(u=n(this),!1):(r=n(this).prop("colspan"),void(f+=r?r:1))}),u}function u(n,u){var f,s,o=n.closest("td"),e=null;switch(u){case t.LEFT:e=o.prev();break;case t.RIGHT:e=o.next();break;case t.UP:case t.DOWN:for(f=o.parent(),s=i(f,o);;){if(f=u===t.UP?f.prev():f.next(),!f.length)break;if(!f.is(":hidden")&&(e=r(f,s),e&&e.find(":input").length))break}}return e}var t=n.ui.keyCode,f={text:[t.UP,t.DOWN],checkbox:[t.UP,t.DOWN,t.LEFT,t.RIGHT],radiobutton:[t.UP,t.DOWN,t.LEFT,t.RIGHT],"select-one":[t.LEFT,t.RIGHT],"select-multiple":[t.LEFT,t.RIGHT]};n.ui.fancytree.registerExtension({name:"gridnav",version:"0.0.1",options:{autofocusInput:!1,handleCursorKeys:!0},treeInit:function(t){this._requireExtension("table",!0,!0);this._superApply(arguments);this.$container.addClass("fancytree-ext-gridnav");this.$container.on("focusin",function(i){var u,r=n.ui.fancytree.getNode(i.target);r&&!r.isActive()&&(u=t.tree._makeHookContext(r,i),t.tree._callHook("nodeSetActive",u,!0))})},nodeSetActive:function(t,i){var u,e=t.options.gridnav,r=t.node,o=t.originalEvent||{},f=n(o.target).is(":input");i=i!==!1;this._superApply(arguments);i&&(t.options.titlesTabbable?(f||(n(r.span).find("span.fancytree-title").focus(),r.setFocus()),t.tree.$container.attr("tabindex","-1")):e.autofocusInput&&!f&&(u=n(r.tr||r.span),u.find(":input:enabled:first").focus()))},nodeKeydown:function(t){var r,e,i,h=t.options.gridnav,o=t.originalEvent,s=n(o.target);return r=s.is(":input:enabled")?s.prop("type"):null,r&&h.handleCursorKeys?(e=f[r],e&&n.inArray(o.which,e)>=0&&(i=u(s,o.which),i&&i.length)?(i.find(":input:enabled").focus(),!1):!0):this._superApply(arguments)}})}(jQuery,window,document);!function(n,t,i,r){"use strict";function s(t,i,r,u,e){var o,l,a,h,v=!1,y=[],c=[];for(r=r||[],e=e||n.Deferred(),o=0,a=r.length;a>o;o++)l=r[o],h=t.getNodeByKey(l),h?u&&h.isUndefined()?(v=!0,t.debug("_loadLazyNodes: "+h+" is lazy: loading..."),y.push("expand"===u?h.setExpanded():h.load())):(t.debug("_loadLazyNodes: "+h+" already loaded."),h.setExpanded()):(c.push(l),t.debug("_loadLazyNodes: "+h+" was not yet found."));return n.when.apply(n,y).always(function(){if(v&&c.length>0)s(t,i,c,u,e);else{if(c.length)for(t.warn("_loadLazyNodes: could not load those keys: ",c),o=0,a=c.length;a>o;o++)l=r[o],i._appendKey(f,r[o],!1);e.resolve()}}),e}var h=n.ui.fancytree.assert,e="active",f="expanded",o="focus",u="selected";n.ui.fancytree._FancytreeClass.prototype.clearCookies=function(n){var t=this.ext.persist,i=t.cookiePrefix;n=n||"active expanded focus selected";n.indexOf(e)>=0&&t._data(i+e,null);n.indexOf(f)>=0&&t._data(i+f,null);n.indexOf(o)>=0&&t._data(i+o,null);n.indexOf(u)>=0&&t._data(i+u,null)};n.ui.fancytree._FancytreeClass.prototype.getPersistData=function(){var n=this.ext.persist,i=n.cookiePrefix,r=n.cookieDelimiter,t={};return t[e]=n._data(i+e),t[f]=(n._data(i+f)||"").split(r),t[u]=(n._data(i+u)||"").split(r),t[o]=n._data(i+o),t};n.ui.fancytree.registerExtension({name:"persist",version:"0.3.0",options:{cookieDelimiter:"~",cookiePrefix:r,cookie:{raw:!1,expires:"",path:"",domain:"",secure:!1},expandLazy:!1,overrideSource:!0,store:"auto",types:"active expanded focus selected"},_data:function(t,i){var u=this._local.localStorage;return i===r?u?u.getItem(t):n.cookie(t):void(null===i?u?u.removeItem(t):n.removeCookie(t):u?u.setItem(t,i):n.cookie(t,i,this.options.persist.cookie))},_appendKey:function(t,i,r){i=""+i;var f=this._local,c=this.options.persist,e=c.cookieDelimiter,o=f.cookiePrefix+t,s=f._data(o),u=s?s.split(e):[],h=n.inArray(i,u);h>=0&&u.splice(h,1);r&&u.push(i);f._data(o,u.join(e))},treeInit:function(i){var l=i.tree,v=i.options,c=this._local,a=this.options.persist;return h("localStore"===a.store||n.cookie,"Missing required plugin for 'persist' extension: jquery.cookie.js"),c.cookiePrefix=a.cookiePrefix||"fancytree-"+l._id+"-",c.storeActive=a.types.indexOf(e)>=0,c.storeExpanded=a.types.indexOf(f)>=0,c.storeSelected=a.types.indexOf(u)>=0,c.storeFocus=a.types.indexOf(o)>=0,c.localStorage="cookie"!==a.store&&t.localStorage?"local"===a.store?t.localStorage:t.sessionStorage:null,l.$div.bind("fancytreeinit",function(){var i,p,y,h,t,w=c._data(c.cookiePrefix+o);i=c._data(c.cookiePrefix+f);h=i&&i.split(a.cookieDelimiter);p=c.storeExpanded?s(l,c,h,a.expandLazy?"expand":!1,null):(new n.Deferred).resolve();p.done(function(){if(c.storeSelected){if(i=c._data(c.cookiePrefix+u))for(h=i.split(a.cookieDelimiter),y=0;y<h.length;y++)t=l.getNodeByKey(h[y]),t?(t.selected===r||a.overrideSource&&t.selected===!1)&&(t.selected=!0,t.renderStatus()):c._appendKey(u,h[y],!1);3===l.options.selectMode&&l.visit(function(n){if(n.selected)return(n.fixSelection3AfterClick(),"skip")})}c.storeActive&&(i=c._data(c.cookiePrefix+e),!i||!v.persist.overrideSource&&l.activeNode||(t=l.getNodeByKey(i),t&&(t.debug("persist: set active",i),t.setActive(!0,{noFocus:!0}))));c.storeFocus&&w&&(t=l.getNodeByKey(w),t&&(l.options.titlesTabbable?n(t.span).find(".fancytree-title").focus():n(l.$container).focus()));l._triggerTreeEvent("restore",null,{})})}),this._superApply(arguments)},nodeSetActive:function(n,t){var r,i=this._local;return t=t!==!1,r=this._superApply(arguments),i.storeActive&&i._data(i.cookiePrefix+e,this.activeNode?this.activeNode.key:null),r},nodeSetExpanded:function(n,t){var i,u=n.node,r=this._local;return t=t!==!1,i=this._superApply(arguments),r.storeExpanded&&r._appendKey(f,u.key,t),i},nodeSetFocus:function(n,t){var r,i=this._local;return t=t!==!1,r=this._superApply(arguments),i.storeFocus&&i._data(i.cookiePrefix+o,this.focusNode?this.focusNode.key:null),r},nodeSetSelected:function(t,i){var e,r,o=t.tree,s=t.node,f=this._local;return i=i!==!1,e=this._superApply(arguments),f.storeSelected&&(3===o.options.selectMode?(r=n.map(o.getSelectedNodes(!0),function(n){return n.key}),r=r.join(t.options.persist.cookieDelimiter),f._data(f.cookiePrefix+u,r)):f._appendKey(u,s.key,i)),e}})}(jQuery,window,document);!function(n,t,i){"use strict";function r(t,i){i=i||"";t||n.error("Assertion failed "+i)}function f(n,t){n.parentNode.insertBefore(t,n.nextSibling)}function u(n,t){n.visit(function(n){var i=n.tr;return i&&(i.style.display=n.hide||!t?"none":""),n.expanded?void 0:"skip"})}function e(t){var o,f,i,e=t.parent,u=e?e.children:null;if(u&&u.length>1&&u[0]!==t)for(o=n.inArray(t,u),i=u[o-1],r(i.tr);i.children&&(f=i.children[i.children.length-1],f.tr);)i=f;else i=e;return i}n.ui.fancytree.registerExtension({name:"table",version:"0.2.1",options:{checkboxColumnIdx:null,customStatus:!1,indentation:16,nodeColumnIdx:0},treeInit:function(t){var u,f,e,r=t.tree,o=r.widget.element;for(o.addClass("fancytree-container fancytree-ext-table"),r.tbody=o.find("> tbody")[0],r.columnCount=n("thead >tr >th",o).length,n(r.tbody).empty(),r.rowFragment=i.createDocumentFragment(),f=n("<tr />"),e="",t.options.aria&&(f.attr("role","row"),e=" role='gridcell'"),u=0;u<r.columnCount;u++)f.append(t.options.table.nodeColumnIdx===u?"<td"+e+"><span class='fancytree-node' /><\/td>":"<td"+e+" />");r.rowFragment.appendChild(f.get(0));r.statusClassPropName="tr";r.ariaPropName="tr";this.nodeContainerAttrName="tr";this._superApply(arguments);n(r.rootNode.ul).remove();r.rootNode.ul=null;r.$container=o;this.$container.attr("tabindex",this.options.tabbable?"0":"-1");this.options.aria&&r.$container.attr("role","treegrid").attr("aria-readonly",!0)},nodeRemoveChildMarkup:function(t){var i=t.node;i.visit(function(t){t.tr&&(n(t.tr).remove(),t.tr=null)})},nodeRemoveMarkup:function(t){var i=t.node;i.tr&&(n(i.tr).remove(),i.tr=null);this.nodeRemoveChildMarkup(t)},nodeRender:function(t,i,o,s,h){var y,d,b,g,a,p,w,k,v=t.tree,c=t.node,l=t.options,nt=!c.parent;if(h||(t.hasCollapsedParents=c.parent&&!c.parent.expanded),!nt)if(c.tr)i?this.nodeRenderTitle(t):this.nodeRenderStatus(t);else{if(t.hasCollapsedParents)return void c.debug("nodeRender ignored due to unrendered parent");a=v.rowFragment.firstChild.cloneNode(!0);p=e(c);r(p);s===!0&&h?a.style.display="none":o&&t.hasCollapsedParents&&(a.style.display="none");p.tr?f(p.tr,a):(r(!p.parent,"prev. row must have a tr, or is system root"),v.tbody.appendChild(a));c.tr=a;c.key&&l.generateIds&&(c.tr.id=l.idPrefix+c.key);c.tr.ftnode=c;l.aria&&n(c.tr).attr("aria-labelledby","ftal_"+c.key);c.span=n("span.fancytree-node",c.tr).get(0);this.nodeRenderTitle(t);l.createNode&&l.createNode.call(v,{type:"createNode"},t)}if(l.renderNode&&l.renderNode.call(v,{type:"renderNode"},t),y=c.children,y&&(nt||o||c.expanded))for(b=0,g=y.length;g>b;b++)k=n.extend({},t,{node:y[b]}),k.hasCollapsedParents=k.hasCollapsedParents||!c.expanded,this.nodeRender(k,i,o,s,!0);y&&!h&&(w=c.tr||null,d=v.tbody.firstChild,c.visit(function(n){if(n.tr){if(n.parent.expanded||"none"===n.tr.style.display||(n.tr.style.display="none",u(n,!1)),n.tr.previousSibling!==w){c.debug("_fixOrder: mismatch at node: "+n);var t=w?w.nextSibling:d;v.tbody.insertBefore(n.tr,t)}w=n.tr}}))},nodeRenderTitle:function(t){var u,r=t.node,i=t.options;this._superApply(arguments);i.checkbox&&null!=i.table.checkboxColumnIdx&&(u=n("span.fancytree-checkbox",r.span).detach(),n(r.tr).find("td").eq(+i.table.checkboxColumnIdx).html(u));r.isRoot()||this.nodeRenderStatus(t);!i.table.customStatus&&r.isStatusNode()||i.renderColumns&&i.renderColumns.call(t.tree,{type:"renderColumns"},t)},nodeRenderStatus:function(t){var r,i=t.node,u=t.options;this._superApply(arguments);n(i.tr).removeClass("fancytree-node");r=(i.getLevel()-1)*u.table.indentation;n(i.span).css({marginLeft:r+"px"})},nodeSetExpanded:function(t,i,r){function e(n){i=i!==!1;u(t.node,i);n?i&&t.options.autoScroll&&!r.noAnimation&&t.node.hasChildren()?t.node.getLastChild().scrollIntoView(!0,{topNode:t.node}).always(function(){r.noEvents||t.tree._triggerNodeEvent(i?"expand":"collapse",t);f.resolveWith(t.node)}):(r.noEvents||t.tree._triggerNodeEvent(i?"expand":"collapse",t),f.resolveWith(t.node)):(r.noEvents||t.tree._triggerNodeEvent(i?"expand":"collapse",t),f.rejectWith(t.node))}var f=new n.Deferred,o=n.extend({},r,{noEvents:!0,noAnimation:!0});return r=r||{},this._super(t,i,o).done(function(){e(!0)}).fail(function(){e(!1)}),f.promise()},nodeSetStatus:function(t,i){if("ok"===i){var u=t.node,r=u.children?u.children[0]:null;r&&r.isStatusNode()&&n(r.tr).remove()}return this._superApply(arguments)},treeClear:function(){return this.nodeRemoveChildMarkup(this._makeHookContext(this.rootNode)),this._superApply(arguments)}})}(jQuery,window,document);!function(n){"use strict";n.ui.fancytree.registerExtension({name:"themeroller",version:"0.0.1",options:{activeClass:"ui-state-active",foccusClass:"ui-state-focus",hoverClass:"ui-state-hover",selectedClass:"ui-state-highlight"},treeInit:function(t){this._superApply(arguments);var i=t.widget.element;"TABLE"===i[0].nodeName?(i.addClass("ui-widget ui-corner-all"),i.find(">thead tr").addClass("ui-widget-header"),i.find(">tbody").addClass("ui-widget-conent")):i.addClass("ui-widget ui-widget-content ui-corner-all");i.delegate(".fancytree-node","mouseenter mouseleave",function(t){var i=n.ui.fancytree.getNode(t.target),r="mouseenter"===t.type;i.debug("hover: "+r);n(i.span).toggleClass("ui-state-hover ui-corner-all",r)})},treeDestroy:function(n){this._superApply(arguments);n.widget.element.removeClass("ui-widget ui-widget-content ui-corner-all")},nodeRenderStatus:function(t){var i=t.node,r=n(i.span);this._superApply(arguments);r.toggleClass("ui-state-active",i.isActive());r.toggleClass("ui-state-focus",i.hasFocus());r.toggleClass("ui-state-highlight",i.isSelected())}})}(jQuery,window,document)})