(function(a){function c(c,b,e,f){var d=c[b];if(a.isFunction(d))try{return d.call(e,f)}catch(g){if(c.alert)alert("Error calling scrollable."+b+": "+g);else throw g;return false}return true}var b=null;function d(f,d){var e=this;if(!b)b=e;var j=!d.vertical,i=a(d.items,f),g=0,h=f.siblings(d.navi).eq(0),n=f.siblings(d.prev).eq(0),m=f.siblings(d.next).eq(0),l=f.siblings(d.prevPage).eq(0),k=f.siblings(d.nextPage).eq(0);a.extend(e,{getVersion:function(){return[1,0,1]},getIndex:function(){return g},getConf:function(){return d},getSize:function(){return e.getItems().size()},getPageAmount:function(){return Math.ceil(this.getSize()/d.size)},getPageIndex:function(){return Math.ceil(g/d.size)},getRoot:function(){return f},getItemWrap:function(){return i},getItems:function(){return i.children()},seekTo:function(f,o,p){o=o||d.speed;if(a.isFunction(o)){p=o;o=d.speed}if(f<0)f=0;if(f>e.getSize()-d.size)return e;var q=e.getItems().eq(f);if(!q.length)return e;if(c(d,"onBeforeSeek",e,f)===false)return e;if(j){var t=-(q.outerWidth(true)*f);i.animate({left:t},o,d.easing,p?function(){p.call(e)}:null)}else{var u=-(q.outerHeight(true)*f);i.animate({top:u},o,d.easing,p?function(){p.call(e)}:null)}if(h.length){var s=d.activeClass,r=Math.ceil(f/d.size);r=Math.min(r,h.children().length-1);h.children().removeClass(s).eq(r).addClass(s)}if(f===0)n.add(l).addClass(d.disabledClass);else n.add(l).removeClass(d.disabledClass);if(f>=e.getSize()-d.size)m.add(k).addClass(d.disabledClass);else m.add(k).removeClass(d.disabledClass);b=e;g=f;c(d,"onSeek",e,f);return e},move:function(b,c,f){var a=g+b;if(d.loop&&a>e.getSize()-d.size)a=0;return this.seekTo(a,c,f)},next:function(a,b){return this.move(1,a,b)},prev:function(a,b){return this.move(-1,a,b)},movePage:function(a,b,c){return this.move(d.size*a,b,c)},setPage:function(e,f,g){var b=d.size,a=b*e,c=a+b>=this.getSize();if(c)a=this.getSize()-d.size;return this.seekTo(a,f,g)},prevPage:function(a,b){return this.setPage(this.getPageIndex()-1,a,b)},nextPage:function(a,b){return this.setPage(this.getPageIndex()+1,a,b)},begin:function(a,b){return this.seekTo(0,a,b)},end:function(a,b){return this.seekTo(this.getSize()-d.size,a,b)},reload:function(){return q()},click:function(a,h,i){var f=e.getItems().eq(a),c=d.activeClass;if(!f.hasClass(c)&&(a>=0||a<this.getSize())){e.getItems().removeClass(c);f.addClass(c);var g=Math.floor(d.size/2),b=a-g;if(b>e.getSize()-d.size)b--;if(b!==a)return this.seekTo(b,h,i)}return e}});a.isFunction(a.fn.mousewheel)&&f.bind("mousewheel.scrollable",function(d,c){var b=a.browser.opera?1:-1;e.move(c>0?b:-b,50);return false});n.addClass(d.disabledClass).click(function(){e.prev()});m.click(function(){e.next()});k.click(function(){e.nextPage()});l.addClass(d.disabledClass).click(function(){e.prevPage()});d.keyboard&&a(window).unbind("keypress.scrollable").bind("keypress.scrollable",function(a){var c=b;if(!c)return;if(j&&(a.keyCode==37||a.keyCode==39)){c.move(a.keyCode==37?-1:1);return a.preventDefault()}if(!j&&(a.keyCode==38||a.keyCode==40)){c.move(a.keyCode==38?-1:1);return a.preventDefault()}return true});function q(){h.each(function(){var b=a(this);if(b.is(":empty")||b.data("me")==e){b.empty();b.data("me",e);for(var c=0;c<e.getPageAmount();c++){var f=a("<"+d.naviItem+"/>").attr("href",c).click(function(c){var b=a(this);b.parent().children().removeClass(d.activeClass);b.addClass(d.activeClass);e.setPage(b.attr("href"));return c.preventDefault()});c===0&&f.addClass(d.activeClass);b.append(f)}}else{var g=b.children();g.each(function(f){var c=a(this);c.attr("href",f);f===0&&c.addClass(d.activeClass);c.click(function(){b.find("."+d.activeClass).removeClass(d.activeClass);c.addClass(d.activeClass);e.setPage(c.attr("href"))})})}});d.clickable&&e.getItems().each(function(c){var b=a(this);if(!b.data("set")){b.bind("click.scrollable",function(){e.click(c)});b.data("set",true)}});d.hoverClass&&e.getItems().hover(function(){a(this).addClass(d.hoverClass)},function(){a(this).removeClass(d.hoverClass)});return e}q();var p=null;function o(){p=setInterval(function(){e.next()},d.interval)}if(d.interval>0){f.hover(function(){clearInterval(p)},function(){o()});o()}}jQuery.prototype.scrollable=function(b){var e=this.eq(typeof b=="number"?b:0).data("scrollable");if(e)return e;var c={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};a.extend(c,b);this.each(function(){var b=new d(a(this),c);a(this).data("scrollable",b)});return this}})(jQuery);
