(function(C){function B(J,H,F,E){var I=J[H];if(C.isFunction(I)){try{return I.call(F,E)}catch(G){if(J.alert){alert("Error calling scrollable."+H+": "+G)}else{throw G}return false}}return true}var D=null;function A(O,M){var R=this;if(!D){D=R}var E=!M.vertical;var G=C(M.items,O);var K=0;var P=O.siblings(M.navi).eq(0);var H=O.siblings(M.prev).eq(0);var J=O.siblings(M.next).eq(0);var I=O.siblings(M.prevPage).eq(0);var N=O.siblings(M.nextPage).eq(0);C.extend(R,{getVersion:function(){return[1,0,1]},getIndex:function(){return K},getConf:function(){return M},getSize:function(){return R.getItems().size()},getPageAmount:function(){return Math.ceil(this.getSize()/M.size)},getPageIndex:function(){return Math.ceil(K/M.size)},getRoot:function(){return O},getItemWrap:function(){return G},getItems:function(){return G.children()},seekTo:function(T,Z,U){Z=Z||M.speed;if(C.isFunction(Z)){U=Z;Z=M.speed}if(T<0){T=0}if(T>R.getSize()-M.size){return R}var V=R.getItems().eq(T);if(!V.length){return R}if(B(M,"onBeforeSeek",R,T)===false){return R}if(E){var Y=-(V.outerWidth(true)*T);G.animate({left:Y},Z,M.easing,U?function(){U.call(R)}:null)}else{var X=-(V.outerHeight(true)*T);G.animate({top:X},Z,M.easing,U?function(){U.call(R)}:null)}if(P.length){var S=M.activeClass;var W=Math.ceil(T/M.size);W=Math.min(W,P.children().length-1);P.children().removeClass(S).eq(W).addClass(S)}if(T===0){H.add(I).addClass(M.disabledClass)}else{H.add(I).removeClass(M.disabledClass)}if(T>=R.getSize()-M.size){J.add(N).addClass(M.disabledClass)}else{J.add(N).removeClass(M.disabledClass)}D=R;K=T;B(M,"onSeek",R,T);return R},move:function(U,T,S){var V=K+U;if(M.loop&&V>(R.getSize()-M.size)){V=0}return this.seekTo(V,T,S)},next:function(T,S){return this.move(1,T,S)},prev:function(T,S){return this.move(-1,T,S)},movePage:function(U,T,S){return this.move(M.size*U,T,S)},setPage:function(W,X,U){var T=M.size;var S=T*W;var V=S+T>=this.getSize();if(V){S=this.getSize()-M.size}return this.seekTo(S,X,U)},prevPage:function(T,S){return this.setPage(this.getPageIndex()-1,T,S)},nextPage:function(T,S){return this.setPage(this.getPageIndex()+1,T,S)},begin:function(T,S){return this.seekTo(0,T,S)},end:function(T,S){return this.seekTo(this.getSize()-M.size,T,S)},reload:function(){return Q()},click:function(T,W,U){var V=R.getItems().eq(T);var S=M.activeClass;if(!V.hasClass(S)&&(T>=0||T<this.getSize())){R.getItems().removeClass(S);V.addClass(S);var Y=Math.floor(M.size/2);var X=T-Y;if(X>R.getSize()-M.size){X--}if(X!==T){return this.seekTo(X,W,U)}}return R}});if(C.isFunction(C.fn.mousewheel)){O.bind("mousewheel.scrollable",function(T,U){var S=C.browser.opera?1:-1;R.move(U>0?S:-S,50);return false})}H.addClass(M.disabledClass).click(function(){R.prev()});J.click(function(){R.next()});N.click(function(){R.nextPage()});I.addClass(M.disabledClass).click(function(){R.prevPage()});if(M.keyboard){C(window).unbind("keypress.scrollable").bind("keypress.scrollable",function(S){var T=D;if(!T){return}if(E&&(S.keyCode==37||S.keyCode==39)){T.move(S.keyCode==37?-1:1);return S.preventDefault()}if(!E&&(S.keyCode==38||S.keyCode==40)){T.move(S.keyCode==38?-1:1);return S.preventDefault()}return true})}function Q(){P.each(function(){var V=C(this);if(V.is(":empty")||V.data("me")==R){V.empty();V.data("me",R);for(var T=0;T<R.getPageAmount();T++){var U=C("<"+M.naviItem+"/>").attr("href",T).click(function(X){var W=C(this);W.parent().children().removeClass(M.activeClass);W.addClass(M.activeClass);R.setPage(W.attr("href"));return X.preventDefault()});if(T===0){U.addClass(M.activeClass)}V.append(U)}}else{var S=V.children();S.each(function(W){var X=C(this);X.attr("href",W);if(W===0){X.addClass(M.activeClass)}X.click(function(){V.find("."+M.activeClass).removeClass(M.activeClass);X.addClass(M.activeClass);R.setPage(X.attr("href"))})})}});if(M.clickable){R.getItems().each(function(T,S){var U=C(this);if(!U.data("set")){U.bind("click.scrollable",function(){R.click(T)});U.data("set",true)}})}if(M.hoverClass){R.getItems().hover(function(){C(this).addClass(M.hoverClass)},function(){C(this).removeClass(M.hoverClass)})}return R}Q();var F=null;function L(){F=setInterval(function(){R.next()},M.interval)}if(M.interval>0){O.hover(function(){clearInterval(F)},function(){L()});L()}}jQuery.prototype.scrollable=function(E){var F=this.eq(typeof E=="number"?E:0).data("scrollable");if(F){return F}var G={size:5,vertical:false,clickable:true,loop:false,interval:0,speed:400,keyboard:true,activeClass:"active",disabledClass:"disabled",hoverClass:null,easing:"swing",items:".items",prev:".prev",next:".next",prevPage:".prevPage",nextPage:".nextPage",navi:".navi",naviItem:"a",onBeforeSeek:null,onSeek:null,alert:true};C.extend(G,E);this.each(function(){var H=new A(C(this),G);C(this).data("scrollable",H)});return this}})(jQuery);