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