(function($){var t=$.tools.tabs;t.plugins=t.plugins||{};t.plugins.slideshow={version:'1.0.2',conf:{next:'.forward',prev:'.backward',disabledClass:'disabled',autoplay:false,autopause:true,interval:7000,clickable:true,api:false}};$.prototype.slideshow=function(conf){var globals=$.extend({},t.plugins.slideshow.conf),len=this.length,ret;conf=$.extend(globals,conf);this.each(function(){var tabs=$(this),api=tabs.tabs(),$api=$(api),ret=api;$.each(conf,function(name,fn){if($.isFunction(fn)){api.bind(name,fn)}});function find(query){return len==1?$(query):tabs.parent().find(query)}var nextButton=find(conf.next).click(function(){api.next()});var prevButton=find(conf.prev).click(function(){api.prev()});var timer,hoverTimer,startTimer,stopped=false;$.extend(api,{play:function(){if(timer){return}var e=$.Event("onBeforePlay");$api.trigger(e);if(e.isDefaultPrevented()){return api}stopped=false;timer=setInterval(api.next,conf.interval);$api.trigger("onPlay");api.next()},pause:function(){if(!timer){return api}var e=$.Event("onBeforePause");$api.trigger(e);if(e.isDefaultPrevented()){return api}timer=clearInterval(timer);startTimer=clearInterval(startTimer);$api.trigger("onPause")},stop:function(){api.pause();stopped=true},onBeforePlay:function(fn){return api.bind("onBeforePlay",fn)},onPlay:function(fn){return api.bind("onPlay",fn)},onBeforePause:function(fn){return api.bind("onBeforePause",fn)},onPause:function(fn){return api.bind("onPause",fn)}});if(conf.autopause){var els=api.getTabs().add(nextButton).add(prevButton).add(api.getPanes());els.hover(function(){api.pause();hoverTimer=clearInterval(hoverTimer)},function(){if(!stopped){hoverTimer=setTimeout(api.play,conf.interval)}})}if(conf.autoplay){startTimer=setTimeout(api.play,conf.interval)}else{api.stop()}if(conf.clickable){api.getPanes().click(function(){api.next()})}if(!api.getConf().rotate){var cls=conf.disabledClass;if(!api.getIndex()){prevButton.addClass(cls)}api.onBeforeClick(function(e,i){if(!i){prevButton.addClass(cls)}else{prevButton.removeClass(cls);if(i==api.getTabs().length-1){nextButton.addClass(cls)}else{nextButton.removeClass(cls)}}})}});return conf.api?ret:this}})(jQuery);
