(function(a){a.widget("ui.tabs",{init:function(){this.options.event+=".tabs";this.tabify(true)},setData:function(b,c){if((/^selected/).test(b)){this.select(c)}else{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+a.data(b)},ui:function(c,b){return{options:this.options,tab:c,panel:b,index:this.$tabs.index(c)}},tabify:function(q){this.$lis=a("li:has(a[href])",this.element);this.$tabs=this.$lis.map(function(){return a("a",this)[0]});this.$panels=a([]);var r=this,d=this.options;this.$tabs.each(function(s,o){if(o.hash&&o.hash.replace("#","")){r.$panels=r.$panels.add(o.hash)}else{if(a(o).attr("href")!="#"){a.data(o,"href.tabs",o.href);a.data(o,"load.tabs",o.href);var u=r.tabId(o);o.href="#"+u;var t=a("#"+u);if(!t.length){t=a(d.panelTemplate).attr("id",u).addClass(d.panelClass).insertAfter(r.$panels[s-1]||r.element);t.data("destroy.tabs",true)}r.$panels=r.$panels.add(t)}else{d.disabled.push(s+1)}}});if(q){this.element.addClass(d.navClass);this.$panels.each(function(){var i=a(this);i.addClass(d.panelClass)});if(d.selected===undefined){if(location.hash){this.$tabs.each(function(t,o){if(o.hash==location.hash){d.selected=t;if(a.browser.msie||a.browser.opera){var s=a(location.hash),u=s.attr("id");s.attr("id","");setTimeout(function(){s.attr("id",u)},500)}scrollTo(0,0);return false}})}else{if(d.cookie){var k=parseInt(a.cookie("ui-tabs"+a.data(r.element)),10);if(k&&r.$tabs[k]){d.selected=k}}else{if(r.$lis.filter("."+d.selectedClass).length){d.selected=r.$lis.index(r.$lis.filter("."+d.selectedClass)[0])}}}}d.selected=d.selected===null||d.selected!==undefined?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.$lis.filter("."+d.disabledClass),function(s,o){return r.$lis.index(s)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.$panels.addClass(d.hideClass);this.$lis.removeClass(d.selectedClass);if(d.selected!==null){this.$panels.eq(d.selected).show().removeClass(d.hideClass);this.$lis.eq(d.selected).addClass(d.selectedClass);var l=function(){a(r.element).triggerHandler("tabsshow",[r.fakeEvent("tabsshow"),r.ui(r.$tabs[d.selected],r.$panels[d.selected])],d.show)};if(a.data(this.$tabs[d.selected],"load.tabs")){this.load(d.selected,l)}else{l()}}a(window).bind("unload",function(){r.$tabs.unbind(".tabs");r.$lis=r.$tabs=r.$panels=null})}for(var g=0,p;p=this.$lis[g];g++){a(p)[a.inArray(g,d.disabled)!=-1&&!a(p).hasClass(d.selectedClass)?"addClass":"removeClass"](d.disabledClass)}if(d.cache===false){this.$tabs.removeData("cache.tabs")}var c,j,b={"min-width":0,duration:1},e="normal";if(d.fx&&d.fx.constructor==Array){c=d.fx[0]||b,j=d.fx[1]||b}else{c=j=d.fx||b}var h={display:"",overflow:"",height:""};if(!a.browser.msie){h.opacity=""}function n(o,i,s){i.animate(c,c.duration||e,function(){i.addClass(d.hideClass).css(h);if(a.browser.msie&&c.opacity){i[0].style.filter=""}if(s){m(o,s,i)}})}function m(o,s,i){if(j===b){s.css("display","block")}s.animate(j,j.duration||e,function(){s.removeClass(d.hideClass).css(h);if(a.browser.msie&&j.opacity){s[0].style.filter=""}a(r.element).triggerHandler("tabsshow",[r.fakeEvent("tabsshow"),r.ui(o,s[0])],d.show)})}function f(o,t,i,s){t.addClass(d.selectedClass).siblings().removeClass(d.selectedClass);n(o,i,s)}this.$tabs.unbind(".tabs").bind(d.event,function(){var t=a(this).parents("li:eq(0)"),i=r.$panels.filter(":visible"),s=a(this.hash);if((t.hasClass(d.selectedClass)&&!d.unselect)||t.hasClass(d.disabledClass)||a(this).hasClass(d.loadingClass)||a(r.element).triggerHandler("tabsselect",[r.fakeEvent("tabsselect"),r.ui(this,s[0])],d.select)===false){this.blur();return false}r.options.selected=r.$tabs.index(this);if(d.unselect){if(t.hasClass(d.selectedClass)){r.options.selected=null;t.removeClass(d.selectedClass);r.$panels.stop();n(this,i);this.blur();return false}else{if(!i.length){r.$panels.stop();var o=this;r.load(r.$tabs.index(this),function(){t.addClass(d.selectedClass).addClass(d.unselectClass);m(o,s)});this.blur();return false}}}if(d.cookie){a.cookie("ui-tabs"+a.data(r.element),r.options.selected,d.cookie)}r.$panels.stop();if(s.length){var o=this;r.load(r.$tabs.index(this),i.length?function(){f(o,t,i,s)}:function(){t.addClass(d.selectedClass);m(o,s)})}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}return false});if(!(/^click/).test(d.event)){this.$tabs.bind("click.tabs",function(){return false})}},add:function(e,d,c){if(c==undefined){c=this.$tabs.length}var g=this.options;var i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d));i.data("destroy.tabs",true);var h=e.indexOf("#")==0?e.replace("#",""):this.tabId(a("a:first-child",i)[0]);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).addClass(g.hideClass).data("destroy.tabs",true)}f.addClass(g.panelClass);if(c>=this.$lis.length){i.appendTo(this.element);f.appendTo(this.element[0].parentNode)}else{i.insertBefore(this.$lis[c]);f.insertBefore(this.$panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this.tabify();if(this.$tabs.length==1){i.addClass(g.selectedClass);f.removeClass(g.hideClass);var b=a.data(this.$tabs[0],"load.tabs");if(b){this.load(c,b)}}this.element.triggerHandler("tabsadd",[this.fakeEvent("tabsadd"),this.ui(this.$tabs[c],this.$panels[c])],g.add)},remove:function(b){var d=this.options,e=this.$lis.eq(b).remove(),c=this.$panels.eq(b).remove();if(e.hasClass(d.selectedClass)&&this.$tabs.length>1){this.select(b+(b+1<this.$tabs.length?1:-1))}d.disabled=a.map(a.grep(d.disabled,function(g,f){return g!=b}),function(g,f){return g>=b?--g:g});this.tabify();this.element.triggerHandler("tabsremove",[this.fakeEvent("tabsremove"),this.ui(e.find("a")[0],c[0])],d.remove)},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}var d=this.$lis.eq(b).removeClass(c.disabledClass);if(a.browser.safari){d.css("display","inline-block");setTimeout(function(){d.css("display","block")},0)}c.disabled=a.grep(c.disabled,function(f,e){return f!=b});this.element.triggerHandler("tabsenable",[this.fakeEvent("tabsenable"),this.ui(this.$tabs[b],this.$panels[b])],c.enable)},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.$lis.eq(c).addClass(d.disabledClass);d.disabled.push(c);d.disabled.sort();this.element.triggerHandler("tabsdisable",[this.fakeEvent("tabsdisable"),this.ui(this.$tabs[c],this.$panels[c])],d.disable)}},select:function(b){if(typeof b=="string"){b=this.$tabs.index(this.$tabs.filter("[href$="+b+"]")[0])}this.$tabs.eq(b).trigger(this.options.event)},load:function(g,k){var l=this,d=this.options,e=this.$tabs.eq(g),j=e[0],h=k==undefined||k===false,b=e.data("load.tabs");k=k||function(){};if(!b||!h&&a.data(j,"cache.tabs")){k();return}var m=function(n){var o=a(n),p=o.find("*:last");return p.length&&p.is(":not(img)")&&p||o};var c=function(){l.$tabs.filter("."+d.loadingClass).removeClass(d.loadingClass).each(function(){if(d.spinner){m(this).parent().html(m(this).data("label.tabs"))}});l.xhr=null};if(d.spinner){var i=m(j).html();m(j).wrapInner("<em></em>").find("em").data("label.tabs",i).html(d.spinner)}var f=a.extend({},d.ajaxOptions,{url:b,success:function(o,n){a(j.hash).html(o);c();if(d.cache){a.data(j,"cache.tabs",true)}a(l.element).triggerHandler("tabsload",[l.fakeEvent("tabsload"),l.ui(l.$tabs[g],l.$panels[g])],d.load);d.ajaxOptions.success&&d.ajaxOptions.success(o,n);k()}});if(this.xhr){this.xhr.abort();c()}e.addClass(d.loadingClass);setTimeout(function(){l.xhr=a.ajax(f)},0)},url:function(c,b){this.$tabs.eq(c).removeData("cache.tabs").data("load.tabs",b)},destroy:function(){var b=this.options;this.element.unbind(".tabs").removeClass(b.navClass).removeData("tabs");this.$tabs.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.$lis.add(this.$panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass([b.selectedClass,b.unselectClass,b.disabledClass,b.panelClass,b.hideClass].join(" "))}})},fakeEvent:function(b){return a.event.fix({type:b,target:this.element[0]})}});a.ui.tabs.defaults={unselect:false,event:"click",disabled:[],cookie:null,spinner:"Loading&#8230;",cache:false,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"};a.ui.tabs.getter="length";a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(c,f){f=f||false;var b=this,e=this.options.selected;function g(){b.rotation=setInterval(function(){e=++e<b.$tabs.length?e:0;b.select(e)},c)}function d(h){if(!h||h.clientX){clearInterval(b.rotation)}}if(c){g();if(!f){this.$tabs.bind(this.options.event,d)}else{this.$tabs.bind(this.options.event,function(){d();e=b.options.selected;g()})}}else{d();this.$tabs.unbind(this.options.event,d)}}})})(jQuery);
