(function(A){A.tools=A.tools||{version:{}};A.tools.version.scrollable="1.0.4";var C=null;function B(F,I){var S=this;if(!C){C=S;}function H(U,T){A(S).bind(U,function(V,W){if(T&&T.call(this,W.index)===false&&W){W.proceed=false;}});return S;}A.each(I,function(U,T){if(A.isFunction(T)){H(U,T);}});var R=!I.vertical;var P=A(I.items,F);var L=0;function J(T,U){return T.indexOf("#")!=-1?A(T).eq(0):U.siblings(T).eq(0);}var E=J(I.navi,F);var O=J(I.prev,F);var M=J(I.next,F);var N=J(I.prevPage,F);var G=J(I.nextPage,F);A.extend(S,{getIndex:function(){return L;},getConf:function(){return I;},getSize:function(){return S.getItems().size();},getPageAmount:function(){return Math.ceil(this.getSize()/I.size);},getPageIndex:function(){return Math.ceil(L/I.size);},getRoot:function(){return F;},getItemWrap:function(){return P;},getItems:function(){return P.children();},getVisibleItems:function(){return S.getItems().slice(L,L+I.size);},seekTo:function(Y,a,U){a=a||I.speed;if(A.isFunction(a)){U=a;a=I.speed;}if(Y<0){Y=0;}if(Y>S.getSize()-I.size){return S;}var T=S.getItems().eq(Y);if(!T.length){return S;}var b={index:Y,proceed:true};A(S).trigger("onBeforeSeek",b);if(!b.proceed){return S;}if(R){var Z=-T.position().left;P.animate({left:Z},a,I.easing,U?function(){U.call(S);}:null);}else{var V=-T.position().top;P.animate({top:V},a,I.easing,U?function(){U.call(S);}:null);}if(E.length){var X=I.activeClass;var W=Math.ceil(Y/I.size);W=Math.min(W,E.children().length-1);E.children().removeClass(X).eq(W).addClass(X);}if(Y===0){O.add(N).addClass(I.disabledClass);}else{O.add(N).removeClass(I.disabledClass);}if(Y>=S.getSize()-I.size){M.add(G).addClass(I.disabledClass);}else{M.add(G).removeClass(I.disabledClass);}C=S;L=Y;A(S).trigger("onSeek",{index:Y});return S;},move:function(U,V,W){var T=L+U;if(I.loop&&T>(S.getSize()-I.size)){T=0;}return this.seekTo(T,V,W);},next:function(T,U){return this.move(1,T,U);},prev:function(T,U){return this.move(-1,T,U);},movePage:function(T,U,V){return this.move(I.size*T,U,V);},setPage:function(T,Y,V){var W=I.size;var X=W*T;var U=X+W>=this.getSize();if(U){X=this.getSize()-I.size;}return this.seekTo(X,Y,V);},prevPage:function(T,U){return this.setPage(this.getPageIndex()-1,T,U);},nextPage:function(T,U){return this.setPage(this.getPageIndex()+1,T,U);},begin:function(T,U){return this.seekTo(0,T,U);},end:function(T,U){return this.seekTo(this.getSize()-I.size,T,U);},reload:function(){return D();},click:function(W,T,V){var U=S.getItems().eq(W);var X=I.activeClass;if(W<0||W>=this.getSize()){return S;}if(I.size==2){if(W==S.getIndex()){W--;}S.getItems().removeClass(X);U.addClass(X);return this.seekTo(W,T,V);}if(!U.hasClass(X)){S.getItems().removeClass(X);U.addClass(X);var Y=Math.floor(I.size/2);var Z=W-Y;if(Z>S.getSize()-I.size){Z=S.getSize()-I.size;}if(Z!==W){return this.seekTo(Z,T,V);}}return S;},onBeforeSeek:function(T){return H("onBeforeSeek",T);},onSeek:function(T){return H("onSeek",T);}});if(A.isFunction(A.fn.mousewheel)){F.bind("mousewheel.scrollable",function(U,T){var V=A.browser.opera?1:-1;S.move(T>0?V:-V,50);return false;});}O.addClass(I.disabledClass).click(function(){S.prev();});M.click(function(){S.next();});G.click(function(){S.nextPage();});N.addClass(I.disabledClass).click(function(){S.prevPage();});if(I.keyboard){A(document).unbind("keydown.scrollable").bind("keydown.scrollable",function(U){var T=C;if(!T||U.altKey||U.ctrlKey){return ;}if(R&&(U.keyCode==37||U.keyCode==39)){T.move(U.keyCode==37?-1:1);return U.preventDefault();}if(!R&&(U.keyCode==38||U.keyCode==40)){T.move(U.keyCode==38?-1:1);return U.preventDefault();}return true;});}function D(){if(E.is(":empty")||E.data("me")==S){E.empty();E.data("me",S);for(var U=0;U<S.getPageAmount();U++){var T=A("<"+I.naviItem+"/>").attr("href",U).click(function(W){var X=A(this);X.parent().children().removeClass(I.activeClass);X.addClass(I.activeClass);S.setPage(X.attr("href"));return W.preventDefault();});if(U===0){T.addClass(I.activeClass);}E.append(T);}}else{var V=E.children();V.each(function(X){var W=A(this);W.attr("href",X);if(X===0){W.addClass(I.activeClass);}W.click(function(){E.find("."+I.activeClass).removeClass(I.activeClass);W.addClass(I.activeClass);S.setPage(W.attr("href"));});});}if(I.clickable){S.getItems().each(function(W,X){var Y=A(this);if(!Y.data("set")){Y.bind("click.scrollable",function(){S.click(W);});Y.data("set",true);}});}if(I.hoverClass){S.getItems().hover(function(){A(this).addClass(I.hoverClass);},function(){A(this).removeClass(I.hoverClass);});}return S;}D();var Q=null;function K(){Q=setInterval(function(){if(I.interval===0){clearInterval(Q);}S.next();},I.interval);}if(I.interval>0){F.hover(function(){clearInterval(Q);},function(){K();});K();}}A.fn.scrollable=function(F){var E=this.eq(typeof F=="number"?F:0).data("scrollable");if(E){return E;}var D={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",api:false,onBeforeSeek:null,onSeek:null};A.extend(D,F);this.each(function(){E=new B(A(this),D);A(this).data("scrollable",E);});return D.api?E:this;};})(jQuery);(function(A){A.event.special.mousewheel={setup:function(){var B=A.event.special.mousewheel.handler;if(A.browser.mozilla){A(this).bind("mousemove.mousewheel",function(C){A.data(this,"mwcursorposdata",{pageX:C.pageX,pageY:C.pageY,clientX:C.clientX,clientY:C.clientY});});}if(this.addEventListener){this.addEventListener((A.browser.mozilla?"DOMMouseScroll":"mousewheel"),B,false);}else{this.onmousewheel=B;}},teardown:function(){var B=A.event.special.mousewheel.handler;A(this).unbind("mousemove.mousewheel");if(this.removeEventListener){this.removeEventListener((A.browser.mozilla?"DOMMouseScroll":"mousewheel"),B,false);}else{this.onmousewheel=function(){};}A.removeData(this,"mwcursorposdata");},handler:function(D){var B=Array.prototype.slice.call(arguments,1);D=A.event.fix(D||window.event);A.extend(D,A.data(this,"mwcursorposdata")||{});var E=0,C=true;if(D.wheelDelta){E=D.wheelDelta/120;}if(D.detail){E=-D.detail/3;}if(A.browser.opera){E=-D.wheelDelta;}D.data=D.data||{};D.type="mousewheel";B.unshift(E);B.unshift(D);return A.event.handle.apply(this,B);}};A.fn.extend({mousewheel:function(B){return B?this.bind("mousewheel",B):this.trigger("mousewheel");},unmousewheel:function(B){return this.unbind("mousewheel",B);}});})(jQuery);
