(function(c){function b(f,e,g,d){c.getJSON(f.url,{root:e},function(h){function i(k){var l=c("<li/>").attr("id",this.id||"").html("<span>"+this.text+"</span>").appendTo(k);if(this.classes){l.children("span").addClass(this.classes)}if(this.expanded){l.addClass("open")}if(this.hasChildren||this.children&&this.children.length){var j=c("<ul/>").appendTo(l);if(this.hasChildren){l.addClass("hasChildren");i.call({text:"placeholder",id:"placeholder",children:[]},j)}if(this.children&&this.children.length){c.each(this.children,i,[j])}}}c.each(h,i,[g]);c(d).treeview({add:g})})}var a=c.fn.treeview;c.fn.treeview=function(f){if(!f.url){return a.apply(this,arguments)}var d=this;b(f,"source",this,d);var e=f.toggle;return a.call(this,c.extend({},f,{collapsed:true,toggle:function(){var h=c(this);if(h.hasClass("hasChildren")){var g=h.removeClass("hasChildren").find("ul");g.empty();b(f,this.id,g,d)}if(e){e.apply(this,arguments)}}}))}})(jQuery);
