(function(c){c.widget("ui.tabs",{_init:function(){this.options.event+=".tabs";this._tabify(!0)},_setData:function(b,c){/^selected/.test(b)?this.select(c):(this.options[b]=c,this._tabify())},length:function(){return this.$tabs.length},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+c.data(b)},ui:function(b,c){return{options:this.options,tab:b,panel:c,index:this.$tabs.index(b)}},_tabify:function(b){function e(d,b,e){b.animate(h,
h.duration||k,function(){b.addClass(a.hideClass).css(l);if(c.browser.msie&&h.opacity)b[0].style.filter="";e&&f(d,e,b)})}function f(b,e){i===j&&e.css("display","block");e.animate(i,i.duration||k,function(){e.removeClass(a.hideClass).css(l);if(c.browser.msie&&i.opacity)e[0].style.filter="";d._trigger("show",null,d.ui(b,e[0]))})}this.$lis=c("li:has(a[href])",this.element);this.$tabs=this.$lis.map(function(){return c("a",this)[0]});this.$panels=c([]);var d=this,a=this.options;this.$tabs.each(function(b,
e){if(e.hash&&e.hash.replace("#",""))d.$panels=d.$panels.add(e.hash);else if(c(e).attr("href")!="#"){c.data(e,"href.tabs",e.href);c.data(e,"load.tabs",e.href);var f=d._tabId(e);e.href="#"+f;var g=c("#"+f);g.length||(g=c(a.panelTemplate).attr("id",f).addClass(a.panelClass).insertAfter(d.$panels[b-1]||d.element),g.data("destroy.tabs",!0));d.$panels=d.$panels.add(g)}else a.disabled.push(b+1)});if(b){this.element.addClass(a.navClass);this.$panels.each(function(){c(this).addClass(a.panelClass)});if(a.selected===
void 0)if(location.hash)this.$tabs.each(function(b,d){if(d.hash==location.hash){a.selected=b;if(c.browser.msie||c.browser.opera){var e=c(location.hash),f=e.attr("id");e.attr("id","");setTimeout(function(){e.attr("id",f)},500)}scrollTo(0,0);return!1}});else if(a.cookie){if((b=parseInt(c.cookie("ui-tabs-"+c.data(d.element[0])),10))&&d.$tabs[b])a.selected=b}else if(d.$lis.filter("."+a.selectedClass).length)a.selected=d.$lis.index(d.$lis.filter("."+a.selectedClass)[0]);a.selected=a.selected===null||a.selected!==
void 0?a.selected:0;a.disabled=c.unique(a.disabled.concat(c.map(this.$lis.filter("."+a.disabledClass),function(a){return d.$lis.index(a)}))).sort();c.inArray(a.selected,a.disabled)!=-1&&a.disabled.splice(c.inArray(a.selected,a.disabled),1);this.$panels.addClass(a.hideClass);this.$lis.removeClass(a.selectedClass);a.selected!==null&&(this.$panels.eq(a.selected).show().removeClass(a.hideClass),this.$lis.eq(a.selected).addClass(a.selectedClass),b=function(){d._trigger("show",null,d.ui(d.$tabs[a.selected],
d.$panels[a.selected]))},c.data(this.$tabs[a.selected],"load.tabs")?this.load(a.selected,b):b());c(window).bind("unload",function(){d.$tabs.unbind(".tabs");d.$lis=d.$tabs=d.$panels=null})}else a.selected=this.$lis.index(this.$lis.filter("."+a.selectedClass)[0]);a.cookie&&c.cookie("ui-tabs-"+c.data(d.element[0]),a.selected,a.cookie);for(var b=0,g;g=this.$lis[b];b++)c(g)[c.inArray(b,a.disabled)!=-1&&!c(g).hasClass(a.selectedClass)?"addClass":"removeClass"](a.disabledClass);a.cache===!1&&this.$tabs.removeData("cache.tabs");
var h,i,j={"min-width":0,duration:1},k="normal";a.fx&&a.fx.constructor==Array?(h=a.fx[0]||j,i=a.fx[1]||j):h=i=a.fx||j;var l={display:"",overflow:"",height:""};if(!c.browser.msie)l.opacity="";this.$tabs.unbind(".tabs").bind(a.event,function(){var b=c(this).parents("li:eq(0)"),g=d.$panels.filter(":visible"),h=c(this.hash);if(b.hasClass(a.selectedClass)&&!a.unselect||b.hasClass(a.disabledClass)||c(this).hasClass(a.loadingClass)||d._trigger("select",null,d.ui(this,h[0]))===!1)return this.blur(),!1;d.options.selected=
d.$tabs.index(this);if(a.unselect)if(b.hasClass(a.selectedClass))return d.options.selected=null,b.removeClass(a.selectedClass),d.$panels.stop(),e(this,g),this.blur(),!1;else if(!g.length){d.$panels.stop();var i=this;d.load(d.$tabs.index(this),function(){b.addClass(a.selectedClass).addClass(a.unselectClass);f(i,h)});this.blur();return!1}a.cookie&&c.cookie("ui-tabs-"+c.data(d.element[0]),d.options.selected,a.cookie);d.$panels.stop();if(h.length)i=this,d.load(d.$tabs.index(this),g.length?function(){var d=
i;b.addClass(a.selectedClass).siblings().removeClass(a.selectedClass);e(d,g,h)}:function(){b.addClass(a.selectedClass);f(i,h)});else throw"jQuery UI Tabs: Mismatching fragment identifier.";c.browser.msie&&this.blur();return!1});/^click/.test(a.event)||this.$tabs.bind("click.tabs",function(){return!1})},add:function(b,e,f){if(f==void 0)f=this.$tabs.length;var d=this.options,e=c(d.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));e.data("destroy.tabs",!0);var b=b.indexOf("#")==0?b.replace("#",
""):this._tabId(c("a:first-child",e)[0]),a=c("#"+b);a.length||(a=c(d.panelTemplate).attr("id",b).addClass(d.hideClass).data("destroy.tabs",!0));a.addClass(d.panelClass);f>=this.$lis.length?(e.appendTo(this.element),a.appendTo(this.element[0].parentNode)):(e.insertBefore(this.$lis[f]),a.insertBefore(this.$panels[f]));d.disabled=c.map(d.disabled,function(a){return a>=f?++a:a});this._tabify();this.$tabs.length==1&&(e.addClass(d.selectedClass),a.removeClass(d.hideClass),(d=c.data(this.$tabs[0],"load.tabs"))&&
this.load(f,d));this._trigger("add",null,this.ui(this.$tabs[f],this.$panels[f]))},remove:function(b){var e=this.options,f=this.$lis.eq(b).remove(),d=this.$panels.eq(b).remove();f.hasClass(e.selectedClass)&&this.$tabs.length>1&&this.select(b+(b+1<this.$tabs.length?1:-1));e.disabled=c.map(c.grep(e.disabled,function(a){return a!=b}),function(a){return a>=b?--a:a});this._tabify();this._trigger("remove",null,this.ui(f.find("a")[0],d[0]))},enable:function(b){var e=this.options;if(c.inArray(b,e.disabled)!=
-1){var f=this.$lis.eq(b).removeClass(e.disabledClass);c.browser.safari&&(f.css("display","inline-block"),setTimeout(function(){f.css("display","block")},0));e.disabled=c.grep(e.disabled,function(d){return d!=b});this._trigger("enable",null,this.ui(this.$tabs[b],this.$panels[b]))}},disable:function(b){var c=this.options;b!=c.selected&&(this.$lis.eq(b).addClass(c.disabledClass),c.disabled.push(b),c.disabled.sort(),this._trigger("disable",null,this.ui(this.$tabs[b],this.$panels[b])))},select:function(b){typeof b==
"string"&&(b=this.$tabs.index(this.$tabs.filter("[href$="+b+"]")[0]));this.$tabs.eq(b).trigger(this.options.event)},load:function(b,e){var f=this,d=this.options,a=this.$tabs.eq(b),g=a[0],h=e==void 0||e===!1,i=a.data("load.tabs"),e=e||function(){};if(!i||!h&&c.data(g,"cache.tabs"))e();else{var j=function(a){var a=c(a),b=a.find("*:last");return b.length&&b.is(":not(img)")&&b||a},k=function(){f.$tabs.filter("."+d.loadingClass).removeClass(d.loadingClass).each(function(){d.spinner&&j(this).parent().html(j(this).data("label.tabs"))});
f.xhr=null};d.spinner&&(h=j(g).html(),j(g).wrapInner("<em></em>").find("em").data("label.tabs",h).html(d.spinner));var l=c.extend({},d.ajaxOptions,{url:i,success:function(a,h){c(g.hash).html(a);k();d.cache&&c.data(g,"cache.tabs",!0);f._trigger("load",null,f.ui(f.$tabs[b],f.$panels[b]));d.ajaxOptions.success&&d.ajaxOptions.success(a,h);e()}});this.xhr&&(this.xhr.abort(),k());a.addClass(d.loadingClass);setTimeout(function(){f.xhr=c.ajax(l)},0)}},url:function(b,c){this.$tabs.eq(b).removeData("cache.tabs").data("load.tabs",
c)},destroy:function(){var b=this.options;this.element.unbind(".tabs").removeClass(b.navClass).removeData("tabs");this.$tabs.each(function(){var b=c.data(this,"href.tabs");if(b)this.href=b;var f=c(this).unbind(".tabs");c.each(["href","load","cache"],function(b,a){f.removeData(a+".tabs")})});this.$lis.add(this.$panels).each(function(){c.data(this,"destroy.tabs")?c(this).remove():c(this).removeClass([b.selectedClass,b.unselectClass,b.disabledClass,b.panelClass,b.hideClass].join(" "))})}});c.ui.tabs.defaults=
{unselect:!1,event:"click",disabled:[],cookie:null,spinner:"Loading&#8230;",cache:!1,idPrefix:"ui-tabs-",ajaxOptions:{},fx:null,tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>',panelTemplate:"<div></div>",navClass:"ui-tabs-nav",selectedClass:"ui-tabs-selected",unselectClass:"ui-tabs-unselect",disabledClass:"ui-tabs-disabled",panelClass:"ui-tabs-panel",hideClass:"ui-tabs-hide",loadingClass:"ui-tabs-loading"};c.ui.tabs.getter="length";c.extend(c.ui.tabs.prototype,{rotation:null,rotate:function(b,
c){function f(){a.rotation=setInterval(function(){g=++g<a.$tabs.length?g:0;a.select(g)},b)}function d(b){(!b||b.clientX)&&clearInterval(a.rotation)}var c=c||!1,a=this,g=this.options.selected;b?(f(),c?this.$tabs.bind(this.options.event,function(){d();g=a.options.selected;f()}):this.$tabs.bind(this.options.event,d)):(d(),this.$tabs.unbind(this.options.event,d))}})})(jQuery);

