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