(function(a){a.extend(a.fn,{swapClass:function(a,b){var c=this.filter("."+a);this.filter("."+b).removeClass(b).addClass(a);c.removeClass(a).addClass(b);return this},replaceClass:function(a,b){return this.filter("."+a).removeClass(a).addClass(b).end()},hoverClass:function(b){b=b||"hover";return this.hover(function(){a(this).addClass(b)},function(){a(this).removeClass(b)})},heightToggle:function(a,b){a?this.animate({height:"toggle"},a,b):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();if(b)b.apply(this,arguments)})},heightHide:function(a,b){if(a){this.animate({height:"hide"},a,b)}else{this.hide();if(b)this.each(b)}},prepareBranches:function(a){if(!a.prerendered){this.filter(":last-child:not(ul)").addClass(b.last);this.filter((a.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").unbind("click.treeview").bind("click.treeview",function(b){if(this==b.target)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);var e=this.find("div."+b.hitarea);if(!e.length)e=this.prepend('<div class="'+b.hitarea+'"/>').find("div."+b.hitarea);e.removeClass().addClass(b.hitarea).each(function(){var b="";a.each(a(this).parent().attr("class").split(" "),function(){b+=this+"-hitarea "});a(this).addClass(b)})}this.find("div."+b.hitarea).click(d)},treeview:function(c){function h(){var b=a.cookie(c.cookieId);if(b){var d=b.split("");i.each(function(b,c){a(c).find(">ul")[parseInt(d[b])?"show":"hide"]()})}}function g(){function b(a){return a?1:0}var d=[];i.each(function(b,c){d[b]=a(c).is(":has(>ul:visible)")?1:0});a.cookie(c.cookieId,d.join(""),c.cookieOptions)}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(c.animated,c.toggle);if(c.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(c.animated,c.toggle)}}function e(c,d){function e(d){return function(){f.apply(a("div."+b.hitarea,c).filter(function(){return d?a(this).parent("."+d).length:true}));return false}}a("a:eq(0)",d).click(e(b.collapsable));a("a:eq(1)",d).click(e(b.expandable));a("a:eq(2)",d).click(e())}c=a.extend({cookieId:"treeview"},c);if(c.toggle){var d=c.toggle;c.toggle=function(){return d.apply(a(this).parent()[0],arguments)}}this.data("toggler",f);this.addClass("treeview");var i=this.find("li").prepareBranches(c);switch(c.persist){case"cookie":var j=c.toggle;c.toggle=function(){g();if(j){j.apply(this,arguments)}};h();break;case"location":var k=this.find("a").filter(function(){return this.href.toLowerCase()==location.href.toLowerCase()});if(k.length){var l=k.addClass("selected").parents("ul, li").add(k.next()).show();if(c.prerendered){l.filter("li").swapClass(b.collapsable,b.expandable).swapClass(b.lastCollapsable,b.lastExpandable).find(">.hitarea").swapClass(b.collapsableHitarea,b.expandableHitarea).swapClass(b.lastCollapsableHitarea,b.lastExpandableHitarea)}}break}i.applyClasses(c,f);if(c.control){e(this,c.control);a(c.control).show()}return this}});a.treeview={};var b=a.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"}})(jQuery)

