(function(a){a.fn.simplyScroll=function(b){return this.each(function(){new a.simplyScroll(this,b)})};var b={className:"simply-scroll",frameRate:24,speed:1,horizontal:true,autoMode:"off",pauseOnHover:true,startOnLoad:false,localJsonSource:"",flickrFeed:"",jsonImgWidth:240,jsonImgHeight:180};a.simplyScroll=function(c,d){var e=this;this.o=a.extend({},b,d||{});this.auto=this.o.autoMode!=="off"?true:false;this.$list=a(c);this.$list.addClass("simply-scroll-list").wrap('<div class="simply-scroll-clip"></div>').parent().wrap('<div class="'+this.o.className+' simply-scroll-container"></div>');if(!this.o.auto){this.$list.parent().parent().prepend('<div class="simply-scroll-forward"></div>').prepend('<div class="simply-scroll-back"></div>')}if(this.o.flickrFeed){a.getJSON(this.o.flickrFeed+"&format=json&jsoncallback=?",function(b){json=[];a.each(b.items,function(a,b){json.push({src:b.media.m,title:b.title,link:b.link})});e.renderData(json)})}else if(this.o.localJsonSource){a.getJSON(this.o.localJsonSource,function(a){e.renderData(a)})}else{if(!this.o.startOnLoad){this.init()}else{a(window).load(function(){e.init()})}}};a.simplyScroll.fn=a.simplyScroll.prototype={};a.simplyScroll.fn.extend=a.simplyScroll.extend=a.extend;a.simplyScroll.fn.extend({init:function(){this.$items=this.$list.children();this.$clip=this.$list.parent();this.$container=this.$clip.parent();if(!this.o.horizontal){this.itemMax=this.$items.eq(0).outerHeight(true);this.clipMax=this.$clip.height();this.dimension="height";this.moveBackClass="simply-scroll-btn-up";this.moveForwardClass="simply-scroll-btn-down"}else{var b=0;this.$items.each(function(){b=b+a(this).children("a").children("img").width()+60});b=Math.round(b/this.$items.length);this.clipMax=this.$clip.width();this.dimension="width";this.moveBackClass="simply-scroll-btn-left";this.moveForwardClass="simply-scroll-btn-right"}this.posMin=0;this.posMax=this.$items.length*b;this.$list.css(this.dimension,this.posMax+"px");if(this.o.autoMode=="loop"){var c=Math.ceil(this.clipMax/b);this.$items.slice(0,c).clone(true).appendTo(this.$list);this.posMax+=this.clipMax-this.o.speed;this.$list.css(this.dimension,this.posMax+b*c+"px")}this.interval=null;this.intervalDelay=Math.floor(1e3/this.o.frameRate);while(b%this.o.speed!==0){this.o.speed--;if(this.o.speed===0){this.o.speed=1;break}}var d=this;this.trigger=null;this.funcMoveBack=function(){d.trigger=this;d.moveBack()};this.funcMoveForward=function(){d.trigger=this;d.moveForward()};this.funcMoveStop=function(){d.moveStop()};this.funcMoveResume=function(){d.moveResume()};if(this.auto){if(this.o.pauseOnHover){this.$clip.hover(this.funcMoveStop,this.funcMoveResume)}this.moveForward()}else{this.$btnBack=a(".simply-scroll-back",this.$container).addClass("simply-scroll-btn"+" "+this.moveBackClass+" "+"disabled").hover(this.funcMoveBack,this.funcMoveStop);this.$btnForward=a(".simply-scroll-forward",this.$container).addClass("simply-scroll-btn"+" "+this.moveForwardClass).hover(this.funcMoveForward,this.funcMoveStop)}},moveForward:function(){var a=this;this.movement="forward";if(this.trigger!==null){this.$btnBack.removeClass("disabled")}a.interval=setInterval(function(){if(!a.o.horizontal&&a.$clip[0].scrollTop<a.posMax-a.clipMax){a.$clip[0].scrollTop+=a.o.speed}else if(a.o.horizontal&&a.$clip[0].scrollLeft<a.posMax-a.clipMax){a.$clip[0].scrollLeft+=a.o.speed}else if(a.o.autoMode=="loop"){a.resetPos()}else{a.moveStop(a.movement)}},a.intervalDelay)},moveBack:function(){var a=this;this.movement="back";if(this.trigger!==null){this.$btnForward.removeClass("disabled")}a.interval=setInterval(function(){if(!a.o.horizontal&&a.$clip[0].scrollTop>0){a.$clip[0].scrollTop-=a.o.speed}else if(a.o.horizontal&&a.$clip[0].scrollLeft>0){a.$clip[0].scrollLeft-=a.o.speed}else if(a.o.autoMode=="loop"){a.resetPos()}else{a.moveStop(a.movement)}},a.intervalDelay)},moveStop:function(b){clearInterval(this.interval);if(this.trigger!==null){if(typeof b!="undefined"){a(this.trigger).addClass("disabled")}this.trigger=null}if(this.auto){if(this.o.autoMode=="bounce"){b=="forward"?this.moveBack():this.moveForward()}}},moveResume:function(){this.movement=="forward"?this.moveForward():this.moveBack()},resetPos:function(){if(!this.o.horizontal){this.$clip[0].scrollTop=0}else{this.$clip[0].scrollLeft=0}},renderData:function(b){if(b.length>0){var c=this;a.each(b,function(b,d){a("<img/>").attr({src:d.src,title:d.title,alt:d.title,width:c.o.jsonImgWidth,height:c.o.jsonImgHeight}).appendTo(c.$list)});this.init()}}})})(jQuery)
