(function(c){var r=function(q,y){if(y==0)return 0;for(;q<0;)q+=y;return q%y};c.fn.scroller=function(q){var y=arguments;if(typeof q=="string")return c.each(this,function(){var n=c(this).data("jquery-scroller-interface");if(n&&n[q])return n[q].apply(null,c.makeArray(y).slice(1))});var b=c.extend({vertical:false,looping:false,crossfade:false,minItems:1,initialItem:0,scrollSpeed:1,scrollAnimationInterval:50,fadeDurationAuto:2E3,fadeDurationManual:200,fadeInFirst:false,seamless:false,goByPage:false,naviAddSpaces:false, autoAdvanceInterval:-1,autoAdvanceDirection:1,stopOnMouseOver:true,stopOnInteraction:true,interactionRestartDelay:1E4,enteringView:null,enteredView:null,leavingView:null,leftView:null},q);return c.each(this,function(){function n(){if(!b.looping){k[d==0?"addClass":"removeClass"]("ScrollBackDisabled");k[d==z?"addClass":"removeClass"]("ScrollForwardDisabled")}k.find(".ScrollerCurrentItem").text(r(d,l)+1);s&&s.length&&s.find(">li").removeClass("ScrollerNaviActive").eq(r(d,l)).addClass("ScrollerNaviActive")} function O(a){var e=-t;A.each(function(){this.items.each(function(g){var h=e>-f[g].size&&e<o,u=c(this).data("scroller-inview");if(a==1)if(b.enteringView&&h&&!u)b.enteringView(this);else b.leavingView&&!h&&u&&b.leavingView(this);else if(a==2)if(b.enteredView&&h&&!u)b.enteredView(this);else b.leftView&&!h&&u&&b.leftView(this);a==2&&c(this).data("scroller-inview",h);e+=f[g].size})})}function H(){D=true;if(w){clearTimeout(w);w=null}}function x(a,e){e||(D=false);if(b.autoAdvanceInterval>=0&&!w&&!D)w=setTimeout(P, b.autoAdvanceInterval)}function P(){w=null;E(b.autoAdvanceDirection)}function I(){if(!(b.interactionRestartDelay<0)){H();F&&clearTimeout(F);F=setTimeout(Q,b.interactionRestartDelay)}}function Q(){F=null;x()}var k=c(this);k.addClass("ScrollerJS");var K=!!(b.enteringView||b.enteredView||b.leavingView||b.leftView),i=c(".ScrollerItems:first",this);if(i.length==0)i=k;var f=c(">*",i),l=f.length;c(".ScrollerItemCount",this).text(l);var d=r(b.initialItem,l),z=0;if(l==0||l<b.minItems){b.cirular=false;k.addClass("ScrollerNoItems"); n()}else{if(!b.crossfade){var j=0,G=0,o=0;f.each(function(){if(b.vertical){this.size=c(this).outerHeight();var a=c(this).outerWidth()}else{this.size=c(this).outerWidth();a=c(this).outerHeight()}this.position=j;j+=this.size;if(a>G)G=a});var A=c(">*",m);if(b.vertical){i.height(j);i.width(G)}else{i.width(j);i.height(G)}var m=c(".ScrollerArea:first",this);if(m.length==0){i.css("overflow","hidden");m=c('<div class="ScrollerArea" style="position: relative; overflow: hidden;">');m.height(i.outerHeight()); m.width(i.outerWidth());i.after(m);m.append(i)}o=b.vertical?m.innerHeight():m.innerWidth();if(o==0){k.addClass("ScrollerDisabled");n();return}if(b.looping){var L=j;do{m.append(i.clone(true));L+=j}while(L<o+j);A=c(">*",m)}else if(j<=o){k.addClass("ScrollerDisabled");n();return}else f.each(function(a){if(this.position>=j-o&&z==0)z=a});A.css("position","absolute")}K&&A.each(function(){this.items=c(">*",this)});var s=c(".ScrollerNavi",this);if(s.length){f.each(function(a){b.naviAddSpaces&&a>0&&s.append(" "); s.append(c("<li />").append(c('<a href="#" />').text(a+1).click(function(){if(b.stopOnInteraction){H();b.autoAdvanceInterval=-1}v(a);return false})))});s.find(">li:first").addClass("ScrollerNaviFirst");s.find(">li:last").addClass("ScrollerNaviLast")}var p=0,t=0,B=null,F=null;if(b.crossfade){var E=function(a){J(a)},J=function(a){a=d+a;v(b.looping?r(a,l):Math.max(0,Math.min(a,l)))},v=function(a){if(a!=d){var e=d;d=a;e!=-1&&f.eq(e).css("zIndex",1);f.eq(d).css({zIndex:2,visibility:"visible",opacity:0}).animate({opacity:1}, D?b.fadeDurationManual:b.fadeDurationAuto,function(){e!=-1&&f.eq(e).css("visibility","hidden");x(null,true)});n()}},M=function(){var a=false;f.each(function(){this.imgs&&c.each(this.imgs,function(){if(!this.complete){a=true;return false}})});if(a)setTimeout(M,200);else if(b.fadeInFirst){var e=d;d=-1;v(e)}else{f.eq(d).css("visibility","visible");x()}};f.each(function(){c(this).css({visibility:"hidden",position:"absolute",display:"block",zIndex:1});this.imgs=c("img",this);M()})}else{E=function(a){if(b.goByPage){var e= 0,g=d,h;for(h=d;;h+=a){var u=f[r(h,l)].size;if(e+u>o)break;e+=u;g+=a}v(g)}else J(a)};J=function(a){v(d+a)};v=function(a,e){if(b.looping){var g=a-d==0?0:a-d<0?-1:1,h=d;if(g==0)return;for(d=a;h!=a;h+=g)t+=g*f[r(h-(g<0?1:0),l)].size}else{if(a<0)a=0;if(a>=z)a=z;d=a;t=Math.min(f[d].position,j-o)}n();if(e){p=t;C(2)}else if(!B){C(1);B=setTimeout(N,b.scrollAnimationInterval)}};var N=function(){var a=t-p,e=a==0?0:a<0?-1:1,g=Math.sqrt(Math.abs(a))*b.scrollSpeed;if(g>=Math.abs(a)||t==p){d=r(d,l);p=t=f[d].position; b.looping||(p=t=Math.min(p,j-o));B=null;x(null,true)}else{b.seamless?(p+=e):(p+=e*g);B=setTimeout(N,b.scrollAnimationInterval)}C(B?0:2)},C=function(a){var e=-r(p,j);A.each(function(){this.style[b.vertical?"top":"left"]=Math.floor(e)+"px";e+=j});K&&a>0&&O(a)}}var w=null,D=false;if(!b.crossfade){C(1);C(2);x()}n();b.stopOnMouseOver&&c(this).hover(H,x);c(".ScrollerBack",k).click(function(a){b.stopOnInteraction&&I();E(-1);a.preventDefault()});c(".ScrollerForward",k).click(function(a){b.stopOnInteraction&& I();E(1);a.preventDefault()});k.data("jquery-scroller-interface",{gotoindex:v,notifyinteraction:I})}})}})(jQuery);
