/*
 * jQuery UI Tabs
 *
 * Copyright (c) 2007 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Tabs
 *
 * Depends:
 *   ui.base.js
 *
 * Revision: $Id: ui.tabs.js 5149 2008-03-31 10:51:18Z rdworth $
 */
;(function($){$.fn.tabs=function(){var b=typeof arguments[0]=='string'&&arguments[0];var c=b&&Array.prototype.slice.call(arguments,1)||arguments;return b=='length'?$.data(this[0],'tabs').$tabs.length:this.each(function(){if(b){var a=$.data(this,'tabs');if(a)a[b].apply(a,c)}else new $.ui.tabs(this,c[0]||{})})};$.ui.tabs=function(d,e){var f=this;this.options=$.extend({},$.ui.tabs.defaults,e);this.element=d;if(e.selected===null)this.options.selected=null;this.options.event+='.tabs';$(d).bind('setData.tabs',function(a,b,c){if((/^selected/).test(b))f.select(c);else{f.options[b]=c;f.tabify()}}).bind('getData.tabs',function(a,b){return f.options[b]});$.data(d,'tabs',this);this.tabify(true)};$.ui.tabs.defaults={selected:0,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'};$.extend($.ui.tabs.prototype,{tabId:function(a){return a.title&&a.title.replace(/\s/g,'_').replace(/[^A-Za-z0-9\-_:\.]/g,'')||this.options.idPrefix+$.data(a)},ui:function(a,b){return{instance:this,options:this.options,tab:a,panel:b}},tabify:function(e){this.$lis=$('li:has(a[href])',this.element);this.$tabs=this.$lis.map(function(){return $('a',this)[0]});this.$panels=$([]);var f=this,o=this.options;this.$tabs.each(function(i,a){if(a.hash&&a.hash.replace('#',''))f.$panels=f.$panels.add(a.hash);else if($(a).attr('href')!='#'){$.data(a,'href.tabs',a.href);$.data(a,'load.tabs',a.href);var b=f.tabId(a);a.href='#'+b;var c=$('#'+b);if(!c.length){c=$(o.panelTemplate).attr('id',b).addClass(o.panelClass).insertAfter(f.$panels[i-1]||f.element);c.data('destroy.tabs',true)}f.$panels=f.$panels.add(c)}else o.disabled.push(i+1)});if(e){$(this.element).hasClass(o.navClass)||$(this.element).addClass(o.navClass);this.$panels.each(function(){var a=$(this);a.hasClass(o.panelClass)||a.addClass(o.panelClass)});this.$tabs.each(function(i,a){if(location.hash){if(a.hash==location.hash){o.selected=i;if($.browser.msie||$.browser.opera){var b=$(location.hash),toShowId=b.attr('id');b.attr('id','');setTimeout(function(){b.attr('id',toShowId)},500)}scrollTo(0,0);return false}}else if(o.cookie){var c=parseInt($.cookie('ui-tabs'+$.data(f.element)),10);if(c&&f.$tabs[c]){o.selected=c;return false}}else if(f.$lis.eq(i).hasClass(o.selectedClass)){o.selected=i;return false}});this.$panels.addClass(o.hideClass);this.$lis.removeClass(o.selectedClass);if(o.selected!==null){this.$panels.eq(o.selected).show().removeClass(o.hideClass);this.$lis.eq(o.selected).addClass(o.selectedClass)}var g=o.selected!==null&&$.data(this.$tabs[o.selected],'load.tabs');if(g)this.load(o.selected);o.disabled=$.unique(o.disabled.concat($.map(this.$lis.filter('.'+o.disabledClass),function(n,i){return f.$lis.index(n)}))).sort();$(window).bind('unload',function(){f.$tabs.unbind('.tabs');f.$lis=f.$tabs=f.$panels=null})}for(var i=0,li;li=this.$lis[i];i++)$(li)[$.inArray(i,o.disabled)!=-1&&!$(li).hasClass(o.selectedClass)?'addClass':'removeClass'](o.disabledClass);if(o.cache===false)this.$tabs.removeData('cache.tabs');var h,showFx,baseFx={'min-width':0,duration:1},baseDuration='normal';if(o.fx&&o.fx.constructor==Array)h=o.fx[0]||baseFx,showFx=o.fx[1]||baseFx;else h=showFx=o.fx||baseFx;var j={display:'',overflow:'',height:''};if(!$.browser.msie)j.opacity='';function hideTab(a,b,c){b.animate(h,h.duration||baseDuration,function(){b.addClass(o.hideClass).css(j);if($.browser.msie&&h.opacity)b[0].style.filter='';if(c)showTab(a,c,b)})}function showTab(a,b,c){if(showFx===baseFx)b.css('display','block');b.animate(showFx,showFx.duration||baseDuration,function(){b.removeClass(o.hideClass).css(j);if($.browser.msie&&showFx.opacity)b[0].style.filter='';$(f.element).triggerHandler('tabsshow',[f.ui(a,b[0])],o.show)})}function switchTab(a,b,c,d){b.addClass(o.selectedClass).siblings().removeClass(o.selectedClass);hideTab(a,c,d)}this.$tabs.unbind('.tabs').bind(o.event,function(){var b=$(this).parents('li:eq(0)'),$hide=f.$panels.filter(':visible'),$show=$(this.hash);if((b.hasClass(o.selectedClass)&&!o.unselect)||b.hasClass(o.disabledClass)||$(this).hasClass(o.loadingClass)||$(f.element).triggerHandler('tabsselect',[f.ui(this,$show[0])],o.select)===false){this.blur();return false}f.options.selected=f.$tabs.index(this);if(o.unselect){if(b.hasClass(o.selectedClass)){f.options.selected=null;b.removeClass(o.selectedClass);f.$panels.stop();hideTab(this,$hide);this.blur();return false}else if(!$hide.length){f.$panels.stop();var a=this;f.load(f.$tabs.index(this),function(){b.addClass(o.selectedClass).addClass(o.unselectClass);showTab(a,$show)});this.blur();return false}}if(o.cookie)$.cookie('ui-tabs'+$.data(f.element),f.options.selected,o.cookie);f.$panels.stop();if($show.length){var a=this;f.load(f.$tabs.index(this),$hide.length?function(){switchTab(a,b,$hide,$show)}:function(){b.addClass(o.selectedClass);showTab(a,$show)})}else throw'jQuery UI Tabs: Mismatching fragment identifier.';if($.browser.msie)this.blur();return false});if(!(/^click/).test(o.event))this.$tabs.bind('click.tabs',function(){return false})},add:function(a,b,c){if(c==undefined)c=this.$tabs.length;var o=this.options;var d=$(o.tabTemplate.replace(/#\{href\}/,a).replace(/#\{label\}/,b));d.data('destroy.tabs',true);var e=a.indexOf('#')==0?a.replace('#',''):this.tabId($('a:first-child',d)[0]);var f=$('#'+e);if(!f.length){f=$(o.panelTemplate).attr('id',e).addClass(o.panelClass).addClass(o.hideClass);f.data('destroy.tabs',true)}if(c>=this.$lis.length){d.appendTo(this.element);f.appendTo(this.element.parentNode)}else{d.insertBefore(this.$lis[c]);f.insertBefore(this.$panels[c])}o.disabled=$.map(o.disabled,function(n,i){return n>=c?++n:n});this.tabify();if(this.$tabs.length==1){d.addClass(o.selectedClass);f.removeClass(o.hideClass);var g=$.data(this.$tabs[0],'load.tabs');if(g)this.load(c,g)}$(this.element).triggerHandler('tabsadd',[this.ui(this.$tabs[c],this.$panels[c])],o.add)},remove:function(a){var o=this.options,$li=this.$lis.eq(a).remove(),$panel=this.$panels.eq(a).remove();if($li.hasClass(o.selectedClass)&&this.$tabs.length>1)this.select(a+(a+1<this.$tabs.length?1:-1));o.disabled=$.map($.grep(o.disabled,function(n,i){return n!=a}),function(n,i){return n>=a?--n:n});this.tabify();$(this.element).triggerHandler('tabsremove',[this.ui($li.find('a')[0],$panel[0])],o.remove)},enable:function(a){var o=this.options;if($.inArray(a,o.disabled)==-1)return;var b=this.$lis.eq(a).removeClass(o.disabledClass);if($.browser.safari){b.css('display','inline-block');setTimeout(function(){b.css('display','block')},0)}o.disabled=$.grep(o.disabled,function(n,i){return n!=a});$(this.element).triggerHandler('tabsenable',[this.ui(this.$tabs[a],this.$panels[a])],o.enable)},disable:function(a){var b=this,o=this.options;if(a!=o.selected){this.$lis.eq(a).addClass(o.disabledClass);o.disabled.push(a);o.disabled.sort();$(this.element).triggerHandler('tabsdisable',[this.ui(this.$tabs[a],this.$panels[a])],o.disable)}},select:function(a){if(typeof a=='string')a=this.$tabs.index(this.$tabs.filter('[href$='+a+']')[0]);this.$tabs.eq(a).trigger(this.options.event)},load:function(b,c){var d=this,o=this.options,$a=this.$tabs.eq(b),a=$a[0],bypassCache=c==undefined||c===false,url=$a.data('load.tabs');c=c||function(){};if(!url||($.data(a,'cache.tabs')&&!bypassCache)){c();return}if(o.spinner){var e=$('span',a);e.data('label.tabs',e.html()).html('<em>'+o.spinner+'</em>')}var f=function(){d.$tabs.filter('.'+o.loadingClass).each(function(){$(this).removeClass(o.loadingClass);if(o.spinner){var a=$('span',this);a.html(a.data('label.tabs')).removeData('label.tabs')}});d.xhr=null};var g=$.extend({},o.ajaxOptions,{url:url,success:function(r,s){$(a.hash).html(r);f();c();if(o.cache)$.data(a,'cache.tabs',true);$(d.element).triggerHandler('tabsload',[d.ui(d.$tabs[b],d.$panels[b])],o.load);o.ajaxOptions.success&&o.ajaxOptions.success(r,s)}});if(this.xhr){this.xhr.abort();f()}$a.addClass(o.loadingClass);setTimeout(function(){d.xhr=$.ajax(g)},0)},url:function(a,b){this.$tabs.eq(a).removeData('cache.tabs').data('load.tabs',b)},destroy:function(){var o=this.options;$(this.element).unbind('.tabs').removeClass(o.navClass).removeData('tabs');this.$tabs.each(function(){var b=$.data(this,'href.tabs');if(b)this.href=b;var c=$(this).unbind('.tabs');$.each(['href','load','cache'],function(i,a){c.removeData(a+'.tabs')})});this.$lis.add(this.$panels).each(function(){if($.data(this,'destroy.tabs'))$(this).remove();else $(this).removeClass([o.selectedClass,o.unselectClass,o.disabledClass,o.panelClass,o.hideClass].join(' '))})}});$.extend($.ui.tabs.prototype,{rotation:null,rotate:function(a,b){b=b||false;var c=this,t=this.options.selected;function start(){c.rotation=setInterval(function(){t=++t<c.$tabs.length?t:0;c.select(t)},a)}function stop(e){if(!e||e.clientX){clearInterval(c.rotation)}}if(a){start();if(!b)this.$tabs.bind(this.options.event,stop);else this.$tabs.bind(this.options.event,function(){stop();t=c.options.selected;start()})}else{stop();this.$tabs.unbind(this.options.event,stop)}}})})(jQuery);