//jquery.bonsai !function(e){e.fn.bonsai=function(n){var i=arguments;return this.each(function(){var a=e(this).data("bonsai");a||(a=new t(this,n),e(this).data("bonsai",a)),"string"==typeof n&&a[n].apply(a,[].slice.call(i,1))})},e.bonsai={},e.bonsai.defaults={expandAll:!1,expand:null,collapse:null,checkboxes:!1,createCheckboxes:!1,handleDuplicateCheckboxes:!1,selectAllExclude:null};var t=function(t,n){var i=this;n=n||{},this.options=e.extend({},e.bonsai.defaults,n),this.el=e(t).addClass("bonsai").data("bonsai",this),this.update(),this.isRootNode()&&(this.options.handleDuplicateCheckboxes&&this.handleDuplicates(),this.options.checkboxes&&this.el.qubit(this.options),this.options.addExpandAll&&this.addExpandAllLink(),this.options.addSelectAll&&this.addSelectAllLink(),this.el.on("click",".thumb",function(t){i.toggle(e(t.currentTarget).closest("li"))})),this.options.expandAll&&this.expandAll()};t.prototype={isRootNode:function(){return this.options.scope==this.el},toggle:function(t){e(t).hasClass("expanded")?this.collapse(t):this.expand(t)},expand:function(e){this.setExpanded(e,!0)},collapse:function(e){this.setExpanded(e,!1)},setExpanded:function(t,n){if((t=e(t)).length>1){var i=this;t.each(function(){i.setExpanded(this,n)})}else if(n){if(!t.data("subList"))return;t=e(t).addClass("expanded").removeClass("collapsed"),e(t.data("subList")).css("height","auto")}else t=e(t).addClass("collapsed").removeClass("expanded"),e(t.data("subList")).height(0)},expandAll:function(){this.expand(this.el.find("li"))},collapseAll:function(){this.collapse(this.el.find("li"))},update:function(){var t=this;this.options.scope||(this.options.scope=this.el),this.el.children().each(function(){var n=e(this);if(t.options.createCheckboxes&&t.insertCheckbox(n),0==n.children().filter(".thumb").length){var i=e('
');n.prepend(i)}var a=n.children().filter("ol, ul");n.toggleClass("has-children",a.find("li").length>0),a.each(function(){if(0!=e("li",this).length){n.data("subList",this),n.hasClass("expanded")?t.expand(n):t.collapse(n);var i=!!e(this).data("bonsai");e(this).bonsai(i?"update":t.options)}})}),this.expand=this.options.expand||this.expand,this.collapse=this.options.collapse||this.collapse},insertCheckbox:function(t){if(!t.find("> input[type=checkbox]").length){var n=this.generateId(t),i=e(' '),a=t.children(),s=t.contents().filter(function(){return 3==this.nodeType}).first();i.val(t.data("value")),i.prop("checked",t.data("checked")),a.remove(),t.append(i).append(e('