﻿(function(B){B.widget("ui.accordion",{_init:function(){var E=this.options,F=this;this.running=0;if(E.collapsible==B.ui.accordion.defaults.collapsible&&E.alwaysOpen!=B.ui.accordion.defaults.alwaysOpen){E.collapsible=!E.alwaysOpen}if(E.navigation){var A=this.element.find("a").filter(E.navigationFilter);if(A.length){if(A.filter(E.header).length){this.active=A}else{this.active=A.parent().parent().prev();A.addClass("ui-accordion-content-active")}}}this.element.addClass("ui-accordion ui-widget ui-helper-reset");if(this.element[0].nodeName=="UL"){this.element.children("li").addClass("ui-accordion-li-fix")}this.headers=this.element.find(E.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){B(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){B(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){B(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){B(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");this.active=this._findActive(this.active||E.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");B("<span/>").addClass("ui-icon "+E.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(E.icons.header).toggleClass(E.icons.headerSelected);if(B.browser.msie){this.element.find("a").css("zoom","1")}this.resize();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown",function(C){return F._keydown(C)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex","0")}else{this.active.attr("aria-expanded","true").attr("tabIndex","0")}if(!B.browser.safari){this.headers.find("a").attr("tabIndex","-1")}if(E.event){this.headers.bind((E.event)+".accordion",function(C){return F._clickHandler.call(F,C,this)})}},destroy:function(){var A=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");this.headers.find("a").removeAttr("tabindex");this.headers.children(".ui-icon").remove();var D=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(A.autoHeight||A.fillHeight){D.css("height","")}},_setData:function(D,A){if(D=="alwaysOpen"){D="collapsible";A=!A}B.widget.prototype._setData.apply(this,arguments)},_keydown:function(K){var J=this.options,I=B.ui.keyCode;if(J.disabled||K.altKey||K.ctrlKey){return}var L=this.headers.length;var H=this.headers.index(K.target);var A=false;switch(K.keyCode){case I.RIGHT:case I.DOWN:A=this.headers[(H+1)%L];break;case I.LEFT:case I.UP:A=this.headers[(H-1+L)%L];break;case I.SPACE:case I.ENTER:return this._clickHandler({target:K.target},K.target)}if(A){B(K.target).attr("tabIndex","-1");B(A).attr("tabIndex","0");A.focus();return false}return true},resize:function(){var F=this.options,A;if(F.fillSpace){if(B.browser.msie){var H=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}A=this.element.parent().height();if(B.browser.msie){this.element.parent().css("overflow",H)}this.headers.each(function(){A-=B(this).outerHeight()});var G=0;this.headers.next().each(function(){G=Math.max(G,B(this).innerHeight()-B(this).height())}).height(Math.max(0,A-G)).css("overflow","auto")}else{if(F.autoHeight){A=0;this.headers.next().each(function(){A=Math.max(A,B(this).outerHeight())}).height(A)}}},activate:function(D){var A=this._findActive(D)[0];this._clickHandler({target:A},A)},_findActive:function(A){return A?typeof A=="number"?this.headers.filter(":eq("+A+")"):this.headers.not(this.headers.not(A)):A===false?B([]):this.headers.filter(":eq(0)")},_clickHandler:function(L,Q){var K=this.options;if(K.disabled){return false}if(!L.target&&K.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(K.icons.headerSelected).addClass(K.icons.header);this.active.next().addClass("ui-accordion-content-active");var R=this.active.next(),N={options:K,newHeader:B([]),oldHeader:K.active,newContent:B([]),oldContent:R},A=(this.active=B([]));this._toggle(A,R,N);return false}var O=B(L.currentTarget||Q);var M=O[0]==this.active[0];if(this.running||(!K.collapsible&&M)){return false}this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(K.icons.headerSelected).addClass(K.icons.header);this.active.next().addClass("ui-accordion-content-active");if(!M){O.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(K.icons.header).addClass(K.icons.headerSelected);O.next().addClass("ui-accordion-content-active")}var A=O.next(),R=this.active.next(),N={options:K,newHeader:M&&K.collapsible?B([]):O,oldHeader:this.active,newContent:M&&K.collapsible?B([]):A.find("> *"),oldContent:R.find("> *")},P=this.headers.index(this.active[0])>this.headers.index(O[0]);this.active=M?B([]):O;this._toggle(A,R,N,M,P);return false},_toggle:function(O,X,R,Q,S){var P=this.options,W=this;this.toShow=O;this.toHide=X;this.data=R;var V=function(){if(!W){return}return W._completed.apply(W,arguments)};this._trigger("changestart",null,this.data);this.running=X.size()===0?O.size():X.size();if(P.animated){var N={};if(P.collapsible&&Q){N={toShow:B([]),toHide:X,complete:V,down:S,autoHeight:P.autoHeight||P.fillSpace}}else{N={toShow:O,toHide:X,complete:V,down:S,autoHeight:P.autoHeight||P.fillSpace}}if(!P.proxied){P.proxied=P.animated}if(!P.proxiedDuration){P.proxiedDuration=P.duration}P.animated=B.isFunction(P.proxied)?P.proxied(N):P.proxied;P.duration=B.isFunction(P.proxiedDuration)?P.proxiedDuration(N):P.proxiedDuration;var T=B.ui.accordion.animations,A=P.duration,U=P.animated;if(!T[U]){T[U]=function(C){this.slide(C,{easing:U,duration:A||700})}}T[U](N)}else{if(P.collapsible&&Q){O.toggle()}else{X.hide();O.show()}V(true)}X.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();O.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(D){var A=this.options;this.running=D?0:--this.running;if(this.running){return}if(A.clearStyle){this.toShow.add(this.toHide).css({height:"",overflow:""})}this._trigger("change",null,this.data)}});B.extend(B.ui.accordion,{version:"1.7.1",defaults:{active:null,alwaysOpen:true,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},animations:{slide:function(M,R){M=B.extend({easing:"swing",duration:300},M,R);if(!M.toHide.size()){M.toShow.animate({height:"show"},M);return}if(!M.toShow.size()){M.toHide.animate({height:"hide"},M);return}var L=M.toShow.css("overflow"),A,N={},O={},K=["height","paddingTop","paddingBottom"],Q;var P=M.toShow;Q=P[0].style.width;P.width(parseInt(P.parent().width(),10)-parseInt(P.css("paddingLeft"),10)-parseInt(P.css("paddingRight"),10)-(parseInt(P.css("borderLeftWidth"),10)||0)-(parseInt(P.css("borderRightWidth"),10)||0));B.each(K,function(E,D){O[D]="hide";var C=(""+B.css(M.toShow[0],D)).match(/^([\d+-.]+)(.*)$/);N[D]={value:C[1],unit:C[2]||"px"}});M.toShow.css({height:0,overflow:"hidden"}).show();M.toHide.filter(":hidden").each(M.complete).end().filter(":visible").animate(O,{step:function(C,D){if(D.prop=="height"){A=(D.now-D.start)/(D.end-D.start)}M.toShow[0].style[D.prop]=(A*N[D.prop].value)+N[D.prop].unit},duration:M.duration,easing:M.easing,complete:function(){if(!M.autoHeight){M.toShow.css("height","")}M.toShow.css("width",Q);M.toShow.css({overflow:L});M.complete()}})},bounceslide:function(A){this.slide(A,{easing:A.down?"easeOutBounce":"swing",duration:A.down?1000:200})},easeslide:function(A){this.slide(A,{easing:"easeinout",duration:700})}}})})(jQuery);