﻿(function(a){a.tools=a.tools||{};a.tools.scrollable={version:"1.1.2",conf:{size:5,vertical:false,speed:400,keyboard:true,keyboardSteps:null,disabledClass:"disabled",hoverClass:null,clickable:true,activeClass:"active",easing:"swing",loop:false,items:".items",item:null,prev:".prev",next:".next",prevPage:".prevPage",nextPage:".nextPage",api:false}};var b;function c(j,d){var c=this,g=a(this),m=!d.vertical,h=j.children(),e=0,f;if(!b)b=c;a.each(d,function(c,b){if(a.isFunction(b))g.bind(c,b)});if(h.length>1)h=a(d.items,j);function i(b){var c=a(b);return d.globalNav?c:j.parent().find(b)}j.data("finder",i);var n=i(d.prev),k=i(d.next),o=i(d.prevPage),l=i(d.nextPage);a.extend(c,{getIndex:function(){return e},getClickIndex:function(){var a=c.getItems();return a.index(a.filter("."+d.activeClass))},getConf:function(){return d},getSize:function(){return c.getItems().size()},getPageAmount:function(){return Math.ceil(this.getSize()/d.size)},getPageIndex:function(){return Math.ceil(e/d.size)},getNaviButtons:function(){return n.add(k).add(o).add(l)},getRoot:function(){return j},getItemWrap:function(){return h},getItems:function(){return h.children(d.item)},getVisibleItems:function(){return c.getItems().slice(e,e+d.size)},seekTo:function(f,i,p){if(f<0)f=0;if(e===f)return c;if(a.isFunction(i))p=i;if(f>c.getSize()-d.size)return d.loop?c.begin():this.end();var q=c.getItems().eq(f);if(!q.length)return c;var j=a.Event("onBeforeSeek");g.trigger(j,[f]);if(j.isDefaultPrevented())return c;if(i===undefined||a.isFunction(i))i=d.speed;function r(){if(p)p.call(c,f);g.trigger("onSeek",[f])}if(m)h.animate({left:-q.position().left},i,d.easing,r);else h.animate({top:-q.position().top},i,d.easing,r);b=c;e=f;j=a.Event("onStart");g.trigger(j,[f]);if(j.isDefaultPrevented())return c;n.add(o).toggleClass(d.disabledClass,f===0);k.add(l).toggleClass(d.disabledClass,f>=c.getSize()-d.size);return c},move:function(a,c,b){f=a>0;return this.seekTo(e+a,c,b)},next:function(b,a){return this.move(1,b,a)},prev:function(b,a){return this.move(-1,b,a)},movePage:function(b,h,g){f=b>0;var c=d.size*b,a=e%d.size;if(a>0)c+=b>0?-a:d.size-a;return this.move(c,h,g)},prevPage:function(b,a){return this.movePage(-1,b,a)},nextPage:function(b,a){return this.movePage(1,b,a)},setPage:function(b,c,a){return this.seekTo(b*d.size,c,a)},begin:function(b,a){f=false;return this.seekTo(0,b,a)},end:function(e,b){f=true;var a=this.getSize()-d.size;return a>0?this.seekTo(a,e,b):c},reload:function(){g.trigger("onReload");return c},focus:function(){b=c;return c},click:function(a){var i=c.getItems().eq(a),b=d.activeClass,g=d.size;if(a<0||a>=c.getSize())return c;if(g==1){if(d.loop)return c.next();if(a===0||a==c.getSize()-1)f=f===undefined?true:!f;return f===false?c.prev():c.next()}if(g==2){if(a==e)a--;c.getItems().removeClass(b);i.addClass(b);return c.seekTo(a,time,fn)}if(!i.hasClass(b)){c.getItems().removeClass(b);i.addClass(b);var j=Math.floor(g/2),h=a-j;if(h>c.getSize()-g)h=c.getSize()-g;if(h!==a)return c.seekTo(h)}return c},bind:function(a,b){g.bind(a,b);return c},unbind:function(a){g.unbind(a);return c}});a.each("onBeforeSeek,onStart,onSeek,onReload".split(","),function(b,a){c[a]=function(b){return c.bind(a,b)}});n.addClass(d.disabledClass).click(function(){c.prev()});k.click(function(){c.next()});l.click(function(){c.nextPage()});if(c.getSize()<d.size)k.add(l).addClass(d.disabledClass);o.addClass(d.disabledClass).click(function(){c.prevPage()});var p=d.hoverClass,q="keydown."+Math.random().toString().substring(10);c.onReload(function(){if(p)c.getItems().hover(function(){a(this).addClass(p)},function(){a(this).removeClass(p)});if(d.clickable)c.getItems().each(function(b){a(this).unbind("click.scrollable").bind("click.scrollable",function(d){if(a(d.target).is("a"))return;return c.click(b)})});if(d.keyboard)a(document).unbind(q).bind(q,function(a){if(a.altKey||a.ctrlKey)return;if(d.keyboard!="static"&&b!=c)return;var e=d.keyboardSteps;if(m&&(a.keyCode==37||a.keyCode==39)){c.move(a.keyCode==37?-e:e);return a.preventDefault()}if(!m&&(a.keyCode==38||a.keyCode==40)){c.move(a.keyCode==38?-e:e);return a.preventDefault()}return true});else a(document).unbind(q)});c.reload()}a.fn.scrollable=function(b){var d=this.eq(typeof b=="number"?b:0).data("scrollable");if(d)return d;var e=a.extend({},a.tools.scrollable.conf);b=a.extend(e,b);b.keyboardSteps=b.keyboardSteps||b.size;this.each(function(){d=new c(a(this),b);a(this).data("scrollable",d)});return b.api?d:this}})(jQuery);(function(a){var b=a.tools.scrollable;b.plugins=b.plugins||{};b.plugins.circular={version:"0.5.1",conf:{api:false,clonedClass:"cloned"}};a.fn.circular=function(e){var c=a.extend({},b.plugins.circular.conf),d;a.extend(c,e);this.each(function(){var e=a(this).scrollable(),g=e.getItems(),b=e.getConf(),h=e.getItemWrap(),f=0;if(e)d=e;if(g.length<b.size)return false;g.slice(0,b.size).each(function(b){a(this).clone().appendTo(h).click(function(){e.click(g.length+b)}).addClass(c.clonedClass)});var l=a.makeArray(g.slice(-b.size)).reverse();a(l).each(function(b){a(this).clone().prependTo(h).click(function(){e.click(-b-1)}).addClass(c.clonedClass)});var i=h.children(b.item),j=b.hoverClass;if(j)i.hover(function(){a(this).addClass(j)},function(){a(this).removeClass(j)});function k(c){var a=i.eq(c);if(b.vertical)h.css({top:-a.position().top});else h.css({left:-a.position().left})}k(b.size);a.extend(e,{move:function(d,m,j,l){var a=f+d+b.size,h=a>e.getSize()-b.size;if(a<=0||h){var c=f+b.size+(h?-g.length:g.length);k(c);a=c+d}if(l)i.removeClass(b.activeClass).eq(a+Math.floor(b.size/2)).addClass(b.activeClass);if(a===f+b.size)return self;return e.seekTo(a,m,j)},begin:function(c,a){return this.seekTo(b.size,c,a)},end:function(b,a){return this.seekTo(g.length,b,a)},click:function(c,e,d){if(!b.clickable)return self;if(b.size==1)return this.next();var a=c-f,g=b.activeClass;a-=Math.floor(b.size/2);return this.move(a,e,d,true)},getIndex:function(){return f},setPage:function(c,d,a){return this.seekTo(c*b.size+b.size,d,a)},getPageAmount:function(){return Math.ceil(g.length/b.size)},getPageIndex:function(){if(f<0)return this.getPageAmount()-1;if(f>=g.length)return 0;var a=(f+b.size)/b.size-1;return a},getVisibleItems:function(){var a=f+b.size;return i.slice(a,a+b.size)}});e.onStart(function(c,a){f=a-b.size;return false});e.getNaviButtons().removeClass(b.disabledClass)});return c.api?d:this}})(jQuery);(function(a){var b=a.tools.scrollable;b.plugins=b.plugins||{};b.plugins.autoscroll={version:"1.0.1",conf:{autoplay:true,interval:3e3,autopause:true,steps:1,api:false}};a.fn.autoscroll=function(d){if(typeof d=="number")d={interval:d};var c=a.extend({},b.plugins.autoscroll.conf),e;a.extend(c,d);this.each(function(){var b=a(this).scrollable();if(b)e=b;var d,g,f=true;b.play=function(){if(d)return;f=false;d=setInterval(function(){b.move(c.steps)},c.interval);b.move(c.steps)};b.pause=function(){d=clearInterval(d)};b.stop=function(){b.pause();f=true};if(c.autopause)b.getRoot().add(b.getNaviButtons()).hover(function(){b.pause();clearInterval(g)},function(){if(!f)g=setTimeout(b.play,c.interval)});if(c.autoplay)setTimeout(b.play,c.interval)});return c.api?e:this}})(jQuery);(function(a){var b=a.tools.scrollable;b.plugins=b.plugins||{};b.plugins.navigator={version:"1.0.2",conf:{navi:".navi",naviItem:null,activeClass:"active",indexed:false,api:false,idPrefix:null}};a.fn.navigator=function(c){var e=a.extend({},b.plugins.navigator.conf),d;if(typeof c=="string")c={navi:c};c=a.extend(e,c);this.each(function(){var b=a(this).scrollable(),i=b.getRoot(),e=i.data("finder").call(null,c.navi),f=null,j=b.getNaviButtons();if(b)d=b;b.getNaviButtons=function(){return j.add(e)};function h(){if(!e.children().length||e.data("navi")==b){e.empty();e.data("navi",b);for(var d=0;d<b.getPageAmount();d++)e.append(a("<"+(c.naviItem||"a")+"/>"));f=e.children().each(function(d){var e=a(this);e.click(function(a){b.setPage(d);return a.preventDefault()});if(c.indexed)e.text(d);if(c.idPrefix)e.attr("id",c.idPrefix+d)})}else{f=c.naviItem?e.find(c.naviItem):e.children();f.each(function(c){var d=a(this);d.click(function(a){b.setPage(c);return a.preventDefault()})})}f.eq(0).addClass(c.activeClass)}b.onStart(function(){var a=c.activeClass;f.removeClass(a).eq(b.getPageIndex()).addClass(a)});b.onReload(function(){h()});h();var g=f.filter("[href="+location.hash+"]");if(g.length)b.move(f.index(g))});return c.api?d:this}})(jQuery);(function(a){a.fn.wheel=function(a){return this[a?"bind":"trigger"]("wheel",a)};a.event.special.wheel={setup:function(){a.event.add(this,d,c,{})},teardown:function(){a.event.remove(this,d,c)}};var d=!a.browser.mozilla?"mousewheel":"DOMMouseScroll"+(a.browser.version<"1.9"?" mousemove":"");function c(b){switch(b.type){case "mousemove":return a.extend(b.data,{clientX:b.clientX,clientY:b.clientY,pageX:b.pageX,pageY:b.pageY});case "DOMMouseScroll":a.extend(b,b.data);b.delta=-b.detail/3;break;case "mousewheel":b.delta=b.wheelDelta/120}b.type="wheel";return a.event.handle.call(this,b,b.delta)}var b=a.tools.scrollable;b.plugins=b.plugins||{};b.plugins.mousewheel={version:"1.0.1",conf:{api:false,speed:50}};a.fn.mousewheel=function(c){var e=a.extend({},b.plugins.mousewheel.conf),d;if(typeof c=="number")c={speed:c};c=a.extend(e,c);this.each(function(){var b=a(this).scrollable();if(b)d=b;b.getRoot().wheel(function(d,a){b.move(a<0?1:-1,c.speed||50);return false})});return c.api?d:this}})(jQuery)
