﻿(function(B){B.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(D,A){if(D=="selected"){if(this.options.collapsible&&A==this.options.selected){return}this.select(A)}else{this.options[D]=A;if(D=="deselectable"){this.options.collapsible=A}this._tabify()}},_tabId:function(A){return A.title&&A.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+B.data(A)},_sanitizeSelector:function(A){return A.replace(/:/g,"\\:")},_cookie:function(){var A=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+B.data(this.list[0]));return B.cookie.apply(null,[A].concat(B.makeArray(arguments)))},_ui:function(D,A){return{tab:D,panel:A,index:this.anchors.index(D)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var A=B(this);A.html(A.data("label.tabs")).removeData("label.tabs")})},_tabify:function(Q){this.list=this.element.children("ul:first");this.lis=B("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return B("a",this)[0]});this.panels=B([]);var Y=this,R=this.options;var V=/^#.+/;this.anchors.each(function(D,I){var E=B(I).attr("href");var G=E.split("#")[0],C;if(G&&(G===location.toString().split("#")[0]||(C=B("base")[0])&&G===C.href)){E=I.hash;I.href=E}if(V.test(E)){Y.panels=Y.panels.add(Y._sanitizeSelector(E))}else{if(E!="#"){B.data(I,"href.tabs",E);B.data(I,"load.tabs",E.replace(/#.*$/,""));var F=Y._tabId(I);I.href="#"+F;var H=B("#"+F);if(!H.length){H=B(R.panelTemplate).attr("id",F).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(Y.panels[D-1]||Y.list);H.data("destroy.tabs",true)}Y.panels=Y.panels.add(H)}else{R.disabled.push(D)}}});if(Q){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(R.selected===undefined){if(location.hash){this.anchors.each(function(D,C){if(C.hash==location.hash){R.selected=D;return false}})}if(typeof R.selected!="number"&&R.cookie){R.selected=parseInt(Y._cookie(),10)}if(typeof R.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){R.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}R.selected=R.selected||0}else{if(R.selected===null){R.selected=-1}}R.selected=((R.selected>=0&&this.anchors[R.selected])||R.selected<0)?R.selected:0;R.disabled=B.unique(R.disabled.concat(B.map(this.lis.filter(".ui-state-disabled"),function(C,D){return Y.lis.index(C)}))).sort();if(B.inArray(R.selected,R.disabled)!=-1){R.disabled.splice(B.inArray(R.selected,R.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(R.selected>=0&&this.anchors.length){this.panels.eq(R.selected).removeClass("ui-tabs-hide");this.lis.eq(R.selected).addClass("ui-tabs-selected ui-state-active");Y.element.queue("tabs",function(){Y._trigger("show",null,Y._ui(Y.anchors[R.selected],Y.panels[R.selected]))});this.load(R.selected)}B(window).bind("unload",function(){Y.lis.add(Y.anchors).unbind(".tabs");Y.lis=Y.anchors=Y.panels=null})}else{R.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[R.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(R.cookie){this._cookie(R.selected,R.cookie)}for(var A=0,O;(O=this.lis[A]);A++){B(O)[B.inArray(A,R.disabled)!=-1&&!B(O).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(R.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(R.event!="mouseover"){var X=function(C,D){if(D.is(":not(.ui-state-disabled)")){D.addClass("ui-state-"+C)}};var S=function(C,D){D.removeClass("ui-state-"+C)};this.lis.bind("mouseover.tabs",function(){X("hover",B(this))});this.lis.bind("mouseout.tabs",function(){S("hover",B(this))});this.anchors.bind("focus.tabs",function(){X("focus",B(this).closest("li"))});this.anchors.bind("blur.tabs",function(){S("focus",B(this).closest("li"))})}var Z,T;if(R.fx){if(B.isArray(R.fx)){Z=R.fx[0];T=R.fx[1]}else{Z=T=R.fx}}function U(D,C){D.css({display:""});if(B.browser.msie&&C.opacity){D[0].style.removeAttribute("filter")}}var P=T?function(D,C){B(D).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");C.hide().removeClass("ui-tabs-hide").animate(T,T.duration||"normal",function(){U(C,T);Y._trigger("show",null,Y._ui(D,C[0]))})}:function(D,C){B(D).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");C.removeClass("ui-tabs-hide");Y._trigger("show",null,Y._ui(D,C[0]))};var W=Z?function(D,C){C.animate(Z,Z.duration||"normal",function(){Y.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");C.addClass("ui-tabs-hide");U(C,Z);Y.element.dequeue("tabs")})}:function(C,E,D){Y.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");E.addClass("ui-tabs-hide");Y.element.dequeue("tabs")};this.anchors.bind(R.event+".tabs",function(){var C=this,E=B(this).closest("li"),F=Y.panels.filter(":not(.ui-tabs-hide)"),D=B(Y._sanitizeSelector(this.hash));if((E.hasClass("ui-tabs-selected")&&!R.collapsible)||E.hasClass("ui-state-disabled")||E.hasClass("ui-state-processing")||Y._trigger("select",null,Y._ui(this,D[0]))===false){this.blur();return false}R.selected=Y.anchors.index(this);Y.abort();if(R.collapsible){if(E.hasClass("ui-tabs-selected")){R.selected=-1;if(R.cookie){Y._cookie(R.selected,R.cookie)}Y.element.queue("tabs",function(){W(C,F)}).dequeue("tabs");this.blur();return false}else{if(!F.length){if(R.cookie){Y._cookie(R.selected,R.cookie)}Y.element.queue("tabs",function(){P(C,D)});Y.load(Y.anchors.index(this));this.blur();return false}}}if(R.cookie){Y._cookie(R.selected,R.cookie)}if(D.length){if(F.length){Y.element.queue("tabs",function(){W(C,F)})}Y.element.queue("tabs",function(){P(C,D)});Y.load(Y.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(B.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var A=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var E=B.data(this,"href.tabs");if(E){this.href=E}var F=B(this).unbind(".tabs");B.each(["href","load","cache"],function(D,C){F.removeData(C+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(B.data(this,"destroy.tabs")){B(this).remove()}else{B(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(A.cookie){this._cookie(null,A.cookie)}},add:function(K,N,M){if(M===undefined){M=this.anchors.length}var P=this,J=this.options,O=B(J.tabTemplate.replace(/#\{href\}/g,K).replace(/#\{label\}/g,N)),A=!K.indexOf("#")?K.replace("#",""):this._tabId(B("a",O)[0]);O.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var L=B("#"+A);if(!L.length){L=B(J.panelTemplate).attr("id",A).data("destroy.tabs",true)}L.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(M>=this.lis.length){O.appendTo(this.list);L.appendTo(this.list[0].parentNode)}else{O.insertBefore(this.lis[M]);L.insertBefore(this.panels[M])}J.disabled=B.map(J.disabled,function(C,D){return C>=M?++C:C});this._tabify();if(this.anchors.length==1){O.addClass("ui-tabs-selected ui-state-active");L.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){P._trigger("show",null,P._ui(P.anchors[0],P.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[M],this.panels[M]))},remove:function(H){var F=this.options,A=this.lis.eq(H).remove(),G=this.panels.eq(H).remove();if(A.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(H+(H+1<this.anchors.length?1:-1))}F.disabled=B.map(B.grep(F.disabled,function(D,C){return D!=H}),function(D,C){return D>=H?--D:D});this._tabify();this._trigger("remove",null,this._ui(A.find("a")[0],G[0]))},enable:function(D){var A=this.options;if(B.inArray(D,A.disabled)==-1){return}this.lis.eq(D).removeClass("ui-state-disabled");A.disabled=B.grep(A.disabled,function(C,F){return C!=D});this._trigger("enable",null,this._ui(this.anchors[D],this.panels[D]))},disable:function(F){var E=this,A=this.options;if(F!=A.selected){this.lis.eq(F).addClass("ui-state-disabled");A.disabled.push(F);A.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[F],this.panels[F]))}},select:function(A){if(typeof A=="string"){A=this.anchors.index(this.anchors.filter("[href$="+A+"]"))}else{if(A===null){A=-1}}if(A==-1&&this.options.collapsible){A=this.options.selected}this.anchors.eq(A).trigger(this.options.event+".tabs")},load:function(A){var L=this,I=this.options,J=this.anchors.eq(A)[0],K=B.data(J,"load.tabs");this.abort();if(!K||this.element.queue("tabs").length!==0&&B.data(J,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(A).addClass("ui-state-processing");if(I.spinner){var H=B("span",J);H.data("label.tabs",H.html()).html(I.spinner)}this.xhr=B.ajax(B.extend({},I.ajaxOptions,{url:K,success:function(C,D){B(L._sanitizeSelector(J.hash)).html(C);L._cleanup();if(I.cache){B.data(J,"cache.tabs",true)}L._trigger("load",null,L._ui(L.anchors[A],L.panels[A]));try{I.ajaxOptions.success(C,D)}catch(E){}L.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(D,A){this.anchors.eq(D).removeData("cache.tabs").data("load.tabs",A)},length:function(){return this.anchors.length}});B.extend(B.ui.tabs,{version:"1.7.1",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"<div></div>",spinner:"<em>Loading&#8230;</em>",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'}});B.extend(B.ui.tabs.prototype,{rotation:null,rotate:function(I,J){var K=this,A=this.options;var L=K._rotate||(K._rotate=function(C){clearTimeout(K.rotation);K.rotation=setTimeout(function(){var D=A.selected;K.select(++D<K.anchors.length?D:0)},I);if(C){C.stopPropagation()}});var H=K._unrotate||(K._unrotate=!J?function(C){if(C.clientX){K.rotate(null)}}:function(C){t=A.selected;L()});if(I){this.element.bind("tabsshow",L);this.anchors.bind(A.event+".tabs",H);L()}else{clearTimeout(K.rotation);this.element.unbind("tabsshow",L);this.anchors.unbind(A.event+".tabs",H);delete this._rotate;delete this._unrotate}}})})(jQuery);