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