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

