(function($){$.fn.marquee=function(klass){var newMarquee=[],last=this.length;function getReset(newDir,marqueeRedux,marqueeState){var behavior=marqueeState.behavior,width=marqueeState.width,dir=marqueeState.dir;var r=0;if(behavior=='alternate'){r=newDir==1?marqueeRedux[marqueeState.widthAxis]-(width*2):width}else if(behavior=='slide'){if(newDir==-1){r=dir==-1?marqueeRedux[marqueeState.widthAxis]:width}else{r=dir==-1?marqueeRedux[marqueeState.widthAxis]-(width*2):0}}else{r=newDir==-1?marqueeRedux[marqueeState.widthAxis]:0}return r}function animateMarquee(){var i=newMarquee.length,marqueeRedux=null,$marqueeRedux=null,marqueeState={},newMarqueeList=[],hitedge=false;while(i--){marqueeRedux=newMarquee[i];$marqueeRedux=$(marqueeRedux);marqueeState=$marqueeRedux.data('marqueeState');if($marqueeRedux.data('paused')!==true){marqueeRedux[marqueeState.axis]+=(marqueeState.scrollamount*marqueeState.dir);hitedge=marqueeState.dir==-1?marqueeRedux[marqueeState.axis]<=getReset(marqueeState.dir*-1,marqueeRedux,marqueeState):marqueeRedux[marqueeState.axis]>=getReset(marqueeState.dir*-1,marqueeRedux,marqueeState);if((marqueeState.behavior=='scroll'&&marqueeState.last==marqueeRedux[marqueeState.axis])||(marqueeState.behavior=='alternate'&&hitedge&&marqueeState.last!=-1)||(marqueeState.behavior=='slide'&&hitedge&&marqueeState.last!=-1)){if(marqueeState.behavior=='alternate'){marqueeState.dir*=-1}marqueeState.last=-1;$marqueeRedux.trigger('stop');marqueeState.loops--;if(marqueeState.loops===0){if(marqueeState.behavior!='slide'){marqueeRedux[marqueeState.axis]=getReset(marqueeState.dir,marqueeRedux,marqueeState)}else{marqueeRedux[marqueeState.axis]=getReset(marqueeState.dir*-1,marqueeRedux,marqueeState)}$marqueeRedux.trigger('end')}else{newMarqueeList.push(marqueeRedux);$marqueeRedux.trigger('start');marqueeRedux[marqueeState.axis]=getReset(marqueeState.dir,marqueeRedux,marqueeState)}}else{newMarqueeList.push(marqueeRedux)}marqueeState.last=marqueeRedux[marqueeState.axis];$marqueeRedux.data('marqueeState',marqueeState)}else{newMarqueeList.push(marqueeRedux)}}newMarquee=newMarqueeList;if(newMarquee.length){setTimeout(animateMarquee,50)}}this.each(function(i){var $marquee=$(this),width=$marquee.attr('width')||$marquee.width(),height=$marquee.attr('height')||$marquee.height(),$marqueeRedux=$marquee.after('<div '+(klass?'class="'+klass+'" ':'')+'style="display: block-inline; width: '+width+'px; height: '+height+'px; overflow: hidden;"><div style="float: left; '+(($marquee.attr('direction')=='up')?'':' white-space: nowrap;')+'">'+$marquee.html()+'</div></div>').next(),marqueeRedux=$marqueeRedux.get(0),hitedge=0,direction=($marquee.attr('direction')||'left').toLowerCase(),marqueeState={dir:/down|right/.test(direction)?-1:1,axis:/left|right/.test(direction)?'scrollLeft':'scrollTop',widthAxis:/left|right/.test(direction)?'scrollWidth':'scrollHeight',last:-1,loops:$marquee.attr('loop')||-1,scrollamount:$marquee.attr('scrollamount')||this.scrollAmount||2,behavior:($marquee.attr('behavior')||'scroll').toLowerCase(),width:/left|right/.test(direction)?width:height};if($marquee.attr('loop')==-1&&marqueeState.behavior=='slide'){marqueeState.loops=1}$marquee.remove();if(/left|right/.test(direction)){$marqueeRedux.find('> div').css('padding','0 '+width+'px')}else{$marqueeRedux.find('> div').css('padding',height+'px 0')}$marqueeRedux.bind('stop',function(){$marqueeRedux.data('paused',true)}).bind('pause',function(){$marqueeRedux.data('paused',true)}).bind('start',function(){$marqueeRedux.data('paused',false)}).bind('unpause',function(){$marqueeRedux.data('paused',false)}).data('marqueeState',marqueeState);newMarquee.push(marqueeRedux);marqueeRedux[marqueeState.axis]=getReset(marqueeState.dir,marqueeRedux,marqueeState);$marqueeRedux.trigger('start');if(i+1==last){animateMarquee()}});return $(newMarquee)}}(jQuery));