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