/*

 jQuery Tools 1.2.5 Scrollable - New wave UI design

 NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.

 http://flowplayer.org/tools/scrollable.html

 Since: March 2008
 Date:    Wed Sep 22 06:02:10 2010 +0000
*/
(function(d){function n(f,b){var c=d(b);return c.length<2?c:f.parent().find(b)}function t(f,b){var c=this,m=f.add(c),g=f.children(),l=0,j=b.vertical;k||(k=c);g.length>1&&(g=d(b.items,f));d.extend(c,{getConf:function(){return b},getIndex:function(){return l},getSize:function(){return c.getItems().size()},getNaviButtons:function(){return h.add(o)},getRoot:function(){return f},getItemWrap:function(){return g},getItems:function(){return g.children(b.item).not("."+b.clonedClass)},move:function(a,b){return c.seekTo(l+
a,b)},next:function(a){return c.move(1,a)},prev:function(a){return c.move(-1,a)},begin:function(a){return c.seekTo(0,a)},end:function(a){return c.seekTo(c.getSize()-1,a)},focus:function(){return k=c},addItem:function(a){a=d(a);b.circular?(g.children("."+b.clonedClass+":last").before(a),g.children("."+b.clonedClass+":first").replaceWith(a.clone().addClass(b.clonedClass))):g.append(a);m.trigger("onAddItem",[a]);return c},seekTo:function(a,e,f){a.jquery||(a*=1);if(b.circular&&a===0&&l==-1&&e!==0)return c;
if(!b.circular&&a<0||a>c.getSize()||a<-1)return c;var i=a;a.jquery?a=c.getItems().index(a):i=c.getItems().eq(a);var h=d.Event("onBeforeSeek");if(!f&&(m.trigger(h,[a,e]),h.isDefaultPrevented()||!i.length))return c;i=j?{top:-i.position().top}:{left:-i.position().left};l=a;k=c;if(e===void 0)e=b.speed;g.animate(i,e,b.easing,f||function(){m.trigger("onSeek",[a])});return c}});d.each(["onBeforeSeek","onSeek","onAddItem"],function(a,e){d.isFunction(b[e])&&d(c).bind(e,b[e]);c[e]=function(a){a&&d(c).bind(e,
a);return c}});if(b.circular){var p=c.getItems().slice(-1).clone().prependTo(g),q=c.getItems().eq(1).clone().appendTo(g);p.add(q).addClass(b.clonedClass);c.onBeforeSeek(function(a,b,d){if(!a.isDefaultPrevented())if(b==-1)return c.seekTo(p,d,function(){c.end(0)}),a.preventDefault();else b==c.getSize()&&c.seekTo(q,d,function(){c.begin(0)})});c.seekTo(0,0,function(){})}var h=n(f,b.prev).click(function(){c.prev()}),o=n(f,b.next).click(function(){c.next()});!b.circular&&c.getSize()>1&&(c.onBeforeSeek(function(a,
e){setTimeout(function(){a.isDefaultPrevented()||(h.toggleClass(b.disabledClass,e<=0),o.toggleClass(b.disabledClass,e>=c.getSize()-1))},1)}),b.initialIndex||h.addClass(b.disabledClass));b.mousewheel&&d.fn.mousewheel&&f.mousewheel(function(a,e){if(b.mousewheel)return c.move(e<0?1:-1,b.wheelSpeed||50),!1});if(b.touch){var r,s;g[0].ontouchstart=function(a){a=a.touches[0];r=a.clientX;s=a.clientY};g[0].ontouchmove=function(a){if(a.touches.length==1&&!g.is(":animated")){var b=a.touches[0],d=r-b.clientX,
b=s-b.clientY;c[j&&b>0||!j&&d>0?"next":"prev"]();a.preventDefault()}}}b.keyboard&&d(document).bind("keydown.scrollable",function(a){if(b.keyboard&&!a.altKey&&!a.ctrlKey&&!d(a.target).is(":input")&&!(b.keyboard!="static"&&k!=c)){var e=a.keyCode;if(j&&(e==38||e==40))return c.move(e==38?-1:1),a.preventDefault();if(!j&&(e==37||e==39))return c.move(e==37?-1:1),a.preventDefault()}});b.initialIndex&&c.seekTo(b.initialIndex,0,function(){})}d.tools=d.tools||{version:"1.2.5"};d.tools.scrollable={conf:{activeClass:"active",
circular:!1,clonedClass:"cloned",disabledClass:"disabled",easing:"swing",initialIndex:0,item:null,items:".items",keyboard:!0,mousewheel:!1,next:".next",prev:".prev",speed:400,vertical:!1,touch:!0,wheelSpeed:0}};var k;d.fn.scrollable=function(f){var b=this.data("scrollable");if(b)return b;f=d.extend({},d.tools.scrollable.conf,f);this.each(function(){b=new t(d(this),f);d(this).data("scrollable",b)});return f.api?b:this}})(jQuery);
