(function(A){A.extend(A.fn,{swapClass:function(E,D){var C=this.filter("."+E);this.filter("."+D).removeClass(D).addClass(E);C.removeClass(E).addClass(D);return this},replaceClass:function(D,C){return this.filter("."+D).removeClass(D).addClass(C).end()},hoverClass:function(C){C=C||"hover";return this.hover(function(){A(this).addClass(C)},function(){A(this).removeClass(C)})},heightToggle:function(C,D){C?this.animate({height:"toggle"},C,D):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();if(D){D.apply(this,arguments)}})},heightHide:function(C,D){if(C){this.animate({height:"hide"},C,D)}else{this.hide();if(D){this.each(D)}}},prepareBranches:function(C){if(!C.prerendered){this.filter(":last-child:not(ul)").addClass(B.last);this.filter((C.collapsed?"":"."+B.closed)+":not(."+B.open+")").find(">ul").hide()}return this.filter(":has(>ul)")},applyClasses:function(C,D){this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(E){D.apply(A(this).next())}).add(A("a",this)).hoverClass();if(!C.prerendered){this.filter(":has(>ul:hidden)").addClass(B.expandable).replaceClass(B.last,B.lastExpandable);this.not(":has(>ul:hidden)").addClass(B.collapsable).replaceClass(B.last,B.lastCollapsable);this.prepend('<div class="'+B.hitarea+'"/>').find("div."+B.hitarea).each(function(){var E="";A.each(A(this).parent().attr("class").split(" "),function(){E+=this+"-hitarea "});A(this).addClass(E)})}this.find("div."+B.hitarea).click(D)},treeview:function(D){D=A.extend({cookieId:"treeview"},D);if(D.add){return this.trigger("add",[D.add])}if(D.toggle){var I=D.toggle;D.toggle=function(){return I.apply(A(this).parent()[0],arguments)}}function C(L,N){function M(O){return function(){F.apply(A("div."+B.hitarea,L).filter(function(){return O?A(this).parent("."+O).length:true}));return false}}A("a:eq(0)",N).click(M(B.collapsable));A("a:eq(1)",N).click(M(B.expandable));A("a:eq(2)",N).click(M())}function F(){A(this).parent().find(">.hitarea").swapClass(B.collapsableHitarea,B.expandableHitarea).swapClass(B.lastCollapsableHitarea,B.lastExpandableHitarea).end().swapClass(B.collapsable,B.expandable).swapClass(B.lastCollapsable,B.lastExpandable).find(">ul").heightToggle(D.animated,D.toggle);if(D.unique){A(this).parent().siblings().find(">.hitarea").replaceClass(B.collapsableHitarea,B.expandableHitarea).replaceClass(B.lastCollapsableHitarea,B.lastExpandableHitarea).end().replaceClass(B.collapsable,B.expandable).replaceClass(B.lastCollapsable,B.lastExpandable).find(">ul").heightHide(D.animated,D.toggle)}}function K(){function M(N){return N?1:0}var L=[];J.each(function(N,O){L[N]=A(O).is(":has(>ul:visible)")?1:0});A.cookie(D.cookieId,L.join(""))}function E(){var L=A.cookie(D.cookieId);if(L){var M=L.split("");J.each(function(N,O){A(O).find(">ul")[parseInt(M[N])?"show":"hide"]()})}}this.addClass("treeview");var J=this.find("li").prepareBranches(D);switch(D.persist){case"cookie":var H=D.toggle;D.toggle=function(){K();if(H){H.apply(this,arguments)}};E();break;case"location":var G=this.find("a").filter(function(){return this.href.toLowerCase()==location.href.toLowerCase()});if(G.length){G.addClass("selected").parents("ul, li").add(G.next()).show()}break}J.applyClasses(D,F);if(D.control){C(this,D.control);A(D.control).show()}return this.bind("add",function(M,L){A(L).prev().removeClass(B.last).removeClass(B.lastCollapsable).removeClass(B.lastExpandable).find(">.hitarea").removeClass(B.lastCollapsableHitarea).removeClass(B.lastExpandableHitarea);A(L).find("li").andSelf().prepareBranches(D).applyClasses(D,F)})}});var B=A.fn.treeview.classes={open:"open",closed:"closed",expandable:"expandable",expandableHitarea:"expandable-hitarea",lastExpandableHitarea:"lastExpandable-hitarea",collapsable:"collapsable",collapsableHitarea:"collapsable-hitarea",lastCollapsableHitarea:"lastCollapsable-hitarea",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"};A.fn.Treeview=A.fn.treeview})(jQuery);