(function(A){var B=A.serialScroll=function(C){A.scrollTo.window().serialScroll(C)
};
B.defaults={duration:1000,axis:"x",event:"click",start:0,step:1,lock:true,cycle:true,constant:true};
A.fn.serialScroll=function(D){D=A.extend({},B.defaults,D);
var F=D.event,E=D.step,C=D.lazy;
return this.each(function(){var J=D.target?this:document,H=A(D.target||this,J),L=H[0],R=D.items,N=D.start,S=D.interval,G=D.navigation,I;
if(!C){R=K()
}if(D.force){T({},N)
}A(D.prev||[],J).bind(F,-E,M);
A(D.next||[],J).bind(F,E,M);
if(!L.ssbound){H.bind("prev.serialScroll",-E,M).bind("next.serialScroll",E,M).bind("goto.serialScroll",T)
}if(S){H.bind("start.serialScroll",function(U){if(!S){O();
S=true;
P()
}}).bind("stop.serialScroll",function(){O();
S=false
})
}H.bind("notify.serialScroll",function(W,V){var U=Q(V);
if(U>-1){N=U
}});
L.ssbound=true;
if(D.jump){(C?H:K()).bind(F,function(U){T(U,Q(U.target))
})
}if(G){G=A(G,J).bind(F,function(U){U.data=Math.round(K().length/G.length)*G.index(this);
T(U,this)
})
}function M(U){U.data+=N;
T(U,this)
}function T(a,Y){if(!isNaN(Y)){a.data=Y;
Y=L
}var b=a.data,U,c=a.type,Z=D.exclude?K().slice(0,-D.exclude):K(),X=Z.length,V=Z[b],W=D.duration;
if(c){a.preventDefault()
}if(S){O();
I=setTimeout(P,D.interval)
}if(!V){U=b<0?0:X-1;
if(N!=U){b=U
}else{if(!D.cycle){return 
}else{b=X-U-1
}}V=Z[b]
}if(!V||c&&N==b||D.lock&&H.is(":animated")||c&&D.onBefore&&D.onBefore.call(Y,a,V,H,K(),b)===false){return 
}if(D.stop){H.queue("fx",[]).stop()
}if(D.constant){W=Math.abs(W/E*(N-b))
}H.scrollTo(V,W,D).trigger("notify.serialScroll",[b])
}function P(){H.trigger("next.serialScroll")
}function O(){clearTimeout(I)
}function K(){return A(R,L)
}function Q(V){if(!isNaN(V)){return V
}var W=K(),U;
while((U=W.index(V))==-1&&V!=L){V=V.parentNode
}return U
}})
}
})(jQuery);
