(function(a){a.fn.marquee=function(b){var f=[],d=this.length;function c(m,h,g){var l=g.behavior,j=g.width,i=g.dir;var k=0;if(l=="alternate"){k=m==1?h[g.widthAxis]-(j*2):j}else{if(l=="slide"){if(m==-1){k=i==-1?h[g.widthAxis]:j}else{k=i==-1?h[g.widthAxis]-(j*2):0}}else{k=m==-1?h[g.widthAxis]:0}}return k}function e(){var l=f.length,j=null,m=null,h={},g=[],k=false;while(l--){j=f[l];m=a(j);h=m.data("marqueeState");if(m.data("paused")!==true){j[h.axis]+=(h.scrollamount*h.dir);k=h.dir==-1?j[h.axis]<=c(h.dir*-1,j,h):j[h.axis]>=c(h.dir*-1,j,h);if((h.behavior=="scroll"&&h.last==j[h.axis])||(h.behavior=="alternate"&&k&&h.last!=-1)||(h.behavior=="slide"&&k&&h.last!=-1)){if(h.behavior=="alternate"){h.dir*=-1}h.last=-1;m.trigger("stop");h.loops--;if(h.loops===0){if(h.behavior!="slide"){j[h.axis]=c(h.dir,j,h)}else{j[h.axis]=c(h.dir*-1,j,h)}m.trigger("end")}else{g.push(j);m.trigger("start");j[h.axis]=c(h.dir,j,h)}}else{g.push(j)}h.last=j[h.axis];m.data("marqueeState",h)}else{g.push(j)}}f=g;if(f.length){setTimeout(e,25)}}this.each(function(j){var n=a(this),g=n.attr("width")||n.width(),m=n.attr("height")||n.height(),l=n.after("<div "+(b?'class="'+b+'" ':"")+'style="display: block-inline; width: '+g+"px; height: "+m+'px; overflow: hidden;"><div style="float: left; white-space: nowrap;">'+n.html()+"</div></div>").next(),o=l.get(0),k=0,p=(n.attr("direction")||"left").toLowerCase(),h={dir:/down|right/.test(p)?-1:1,axis:/left|right/.test(p)?"scrollLeft":"scrollTop",widthAxis:/left|right/.test(p)?"scrollWidth":"scrollHeight",last:-1,loops:n.attr("loop")||-1,scrollamount:n.attr("scrollamount")||this.scrollAmount||2,behavior:(n.attr("behavior")||"scroll").toLowerCase(),width:/left|right/.test(p)?g:m};if(n.attr("loop")==-1&&h.behavior=="slide"){h.loops=1}n.remove();if(/left|right/.test(p)){l.find("> div").css("padding","0 "+g+"px")}else{l.find("> div").css("padding",m+"px 0")}l.bind("stop",function(){l.data("paused",true)}).bind("pause",function(){l.data("paused",true)}).bind("start",function(){l.data("paused",false)}).bind("unpause",function(){l.data("paused",false)}).data("marqueeState",h);f.push(o);o[h.axis]=c(h.dir,o,h);l.trigger("start");if(j+1==d){e()}});return a(f)}}(jQuery));