(function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected){return}this.select(b)}else{this.options[a]=b;if(a=="deselectable"){this.options.collapsible=b}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function l(b,c){b.css({display:""});if(a.browser.msie&&c.opacity){b[0].style.removeAttribute("filter")}}this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var c=this,d=this.options;var e=/^#.+/;this.anchors.each(function(b,f){var g=a(f).attr("href");var h=g.split("#")[0],i;if(h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)){g=f.hash;f.href=g}if(e.test(g)){c.panels=c.panels.add(c._sanitizeSelector(g))}else if(g!="#"){a.data(f,"href.tabs",g);a.data(f,"load.tabs",g.replace(/#.*$/,""));var j=c._tabId(f);f.href="#"+j;var k=a("#"+j);if(!k.length){k=a(d.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(c.panels[b-1]||c.list);k.data("destroy.tabs",true)}c.panels=c.panels.add(k)}else{d.disabled.push(b)}});if(b){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(d.selected===undefined){if(location.hash){this.anchors.each(function(a,b){if(b.hash==location.hash){d.selected=a;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(c._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else if(d.selected===null){d.selected=-1}d.selected=d.selected>=0&&this.anchors[d.selected]||d.selected<0?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return c.lis.index(a)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");c.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[d.selected],c.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){c.lis.add(c.anchors).unbind(".tabs");c.lis=c.anchors=c.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var f=0,g;g=this.lis[f];f++){a(g)[a.inArray(f,d.disabled)!=-1&&!a(g).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var h=function(a,b){if(b.is(":not(.ui-state-disabled)")){b.addClass("ui-state-"+a)}};var i=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){h("hover",a(this))});this.lis.bind("mouseout.tabs",function(){i("hover",a(this))});this.anchors.bind("focus.tabs",function(){h("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){i("focus",a(this).closest("li"))})}var j,k;if(d.fx){if(a.isArray(d.fx)){j=d.fx[0];k=d.fx[1]}else{j=k=d.fx}}var m=k?function(b,d){a(b).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");d.hide().removeClass("ui-tabs-hide").animate(k,k.duration||"normal",function(){l(d,k);c._trigger("show",null,c._ui(b,d[0]))})}:function(b,d){a(b).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");d.removeClass("ui-tabs-hide");c._trigger("show",null,c._ui(b,d[0]))};var n=j?function(a,b){b.animate(j,j.duration||"normal",function(){c.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");b.addClass("ui-tabs-hide");l(b,j);c.element.dequeue("tabs")})}:function(a,b,d){c.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");b.addClass("ui-tabs-hide");c.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var b=this,e=a(this).closest("li"),f=c.panels.filter(":not(.ui-tabs-hide)"),g=a(c._sanitizeSelector(this.hash));if(e.hasClass("ui-tabs-selected")&&!d.collapsible||e.hasClass("ui-state-disabled")||e.hasClass("ui-state-processing")||c._trigger("select",null,c._ui(this,g[0]))===false){this.blur();return false}d.selected=c.anchors.index(this);c.abort();if(d.collapsible){if(e.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){c._cookie(d.selected,d.cookie)}c.element.queue("tabs",function(){n(b,f)}).dequeue("tabs");this.blur();return false}else if(!f.length){if(d.cookie){c._cookie(d.selected,d.cookie)}c.element.queue("tabs",function(){m(b,g)});c.load(c.anchors.index(this));this.blur();return false}}if(d.cookie){c._cookie(d.selected,d.cookie)}if(g.length){if(f.length){c.element.queue("tabs",function(){n(b,f)})}c.element.queue("tabs",function(){m(b,g)});c.load(c.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=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 b=a.data(this,"href.tabs");if(b){this.href=b}var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(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(b.cookie){this._cookie(null,b.cookie)}},add:function(b,c,d){if(d===undefined){d=this.anchors.length}var e=this,f=this.options,g=a(f.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,c)),h=!b.indexOf("#")?b.replace("#",""):this._tabId(a("a",g)[0]);g.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var i=a("#"+h);if(!i.length){i=a(f.panelTemplate).attr("id",h).data("destroy.tabs",true)}i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(d>=this.lis.length){g.appendTo(this.list);i.appendTo(this.list[0].parentNode)}else{g.insertBefore(this.lis[d]);i.insertBefore(this.panels[d])}f.disabled=a.map(f.disabled,function(a,b){return a>=d?++a:a});this._tabify();if(this.anchors.length==1){g.addClass("ui-tabs-selected ui-state-active");i.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){e._trigger("show",null,e._ui(e.anchors[0],e.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[d],this.panels[d]))},remove:function(b){var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();if(d.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1<this.anchors.length?1:-1))}c.disabled=a.map(a.grep(c.disabled,function(a,c){return a!=b}),function(a,c){return a>=b?--a:a});this._tabify();this._trigger("remove",null,this._ui(d.find("a")[0],e[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(a,c){return a!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(a){var b=this,c=this.options;if(a!=c.selected){this.lis.eq(a).addClass("ui-state-disabled");c.disabled.push(a);c.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))}},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(b){var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){a(c._sanitizeSelector(e.hash)).html(f);c._cleanup();if(d.cache){a.data(e,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}c.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(a,b){this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.2",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>'}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options;var e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation);c.rotation=setTimeout(function(){var a=d.selected;c.select(++a<c.anchors.length?a:0)},a);if(b){b.stopPropagation()}});var f=c._unrotate||(c._unrotate=!b?function(a){if(a.clientX){c.rotate(null)}}:function(a){t=d.selected;e()});if(a){this.element.bind("tabsshow",e);this.anchors.bind(d.event+".tabs",f);e()}else{clearTimeout(c.rotation);this.element.unbind("tabsshow",e);this.anchors.unbind(d.event+".tabs",f);delete this._rotate;delete this._unrotate}}})})(jQuery)
