;(function($){var g=$.serialScroll=function(a){$.scrollTo.window().serialScroll(a)};g.defaults={duration:1000,axis:'x',event:'click',start:0,step:1,lock:true,cycle:true,constant:true};$.fn.serialScroll=function(d){d=$.extend({},g.defaults,d);var f=d.event,step=d.step,lazy=d.lazy;return this.each(function(){var c=d.target?this:document,$pane=$(d.target||this,c),pane=$pane[0],items=d.items,active=d.start,auto=d.interval,nav=d.navigation,timer;if(!lazy)items=getItems();if(d.force)jump({},active);$(d.prev||[],c).bind(f,-step,move);$(d.next||[],c).bind(f,step,move);if(!pane.ssbound)$pane.bind('prev.serialScroll',-step,move).bind('next.serialScroll',step,move).bind('goto.serialScroll',jump);if(auto)$pane.bind('start.serialScroll',function(e){if(!auto){clear();auto=true;next()}}).bind('stop.serialScroll',function(){clear();auto=false});$pane.bind('notify.serialScroll',function(e,a){var i=index(a);if(i>-1)active=i});pane.ssbound=true;if(d.jump)(lazy?$pane:getItems()).bind(f,function(e){jump(e,index(e.target))});if(nav)nav=$(nav,c).bind(f,function(e){e.data=Math.round(getItems().length/nav.length)*nav.index(this);jump(e,this)});function move(e){e.data+=active;jump(e,this)};function jump(e,a){if(!isNaN(a)){e.data=a;a=pane}var b=e.data,n,real=e.type,$items=d.exclude?getItems().slice(0,-d.exclude):getItems(),limit=$items.length,elem=$items[b],duration=d.duration;if(real)e.preventDefault();if(auto){clear();timer=setTimeout(next,d.interval)}if(!elem){n=b<0?0:limit-1;if(active!=n)b=n;else if(!d.cycle)return;else b=limit-n-1;elem=$items[b]}if(!elem||real&&active==b||d.lock&&$pane.is(':animated')||real&&d.onBefore&&d.onBefore.call(a,e,elem,$pane,getItems(),b)===false)return;if(d.stop)$pane.queue('fx',[]).stop();if(d.constant)duration=Math.abs(duration/step*(active-b));$pane.scrollTo(elem,duration,d).trigger('notify.serialScroll',[b])};function next(){$pane.trigger('next.serialScroll')};function clear(){clearTimeout(timer)};function getItems(){return $(items,pane)};function index(a){if(!isNaN(a))return a;var b=getItems(),i;while((i=b.index(a))==-1&&a!=pane)a=a.parentNode;return i}})}})(jQuery);



