var mooquee=new Class({initialize:function(element,options){this.setOptions({marHeight:20,marWidth:650,steps:1,speed:20,direction:'left',pauseOnOver:true},options);this.timer=null;this.textElement=null;this.mooqueeElement=element;this.constructMooquee()},constructMooquee:function(){var el=this.mooqueeElement;el.setStyles({'width':this.options.marWidth,'height':this.options.marHeight});this.textElement=new Element('div',{'class':'mooquee-text','id':'mooquee-text'}).set('html',el.innerHTML);el.set('html','');this.textElement.inject(el);if(!this.setStartPos()){return}if(this.options.pauseOnOver){this.addMouseEvents()}this.timer=this.startMooquee.delay(this.options.speed,this)},setStartPos:function(){if(this.options.direction=='bottom')this.textElement.setStyle('bottom',(-1*this.textElement.getCoordinates().height.toInt()));else if(this.options.direction=='top')this.textElement.setStyle('bottom',this.options.marHeight);else if(this.options.direction=='left')this.textElement.setStyle('left',(-1*this.textElement.getCoordinates().width.toInt()));else if(this.options.direction=='right')this.textElement.setStyle('left',this.options.marWidth);else{alert('direction config error: '+this.options.direction);return false}return true},addMouseEvents:function(){this.textElement.addEvents({'mouseenter':function(me){this.clearTimer()}.bind(this),'mouseleave':function(me){this.timer=this.startMooquee.delay(this.options.speed,this)}.bind(this)})},startMooquee:function(){if(this.options.direction=='bottom'||this.options.direction=='top')var pos=this.textElement.getStyle('bottom').toInt();else if(this.options.direction=='left'||this.options.direction=='right')var pos=this.textElement.getStyle('left').toInt();if(this.options.direction=='bottom')this.textElement.setStyle('bottom',(pos+ -1)+'px');else if(this.options.direction=='top')this.textElement.setStyle('bottom',(pos+1)+'px');else if(this.options.direction=='left'){this.textElement.setStyle('left',(pos+ -1)+'px')}else if(this.options.direction=='right')this.textElement.setStyle('left',(pos+1)+'px');this.checkEnd(pos);this.timer=this.startMooquee.delay(this.options.speed,this)},resumeMooquee:function(){this.stopMooquee();if(this.options.pauseOnOver){this.addMouseEvents()}this.timer=this.startMooquee.delay(this.options.speed,this)},stopMooquee:function(){this.clearTimer();this.textElement.removeEvents()},clearTimer:function(){$clear(this.timer)},checkEnd:function(pos){if(this.options.direction=='bottom'){if(pos<-1*(this.textElement.getCoordinates().height.toInt()))this.textElement.setStyle('bottom',this.options.marHeight)}else if(this.options.direction=='top'){if(pos>this.options.marHeight.toInt())this.textElement.setStyle('bottom',-1*(this.textElement.getCoordinates().height.toInt()))}else if(this.options.direction=='left'){if(pos<-1*(this.textElement.getCoordinates().width.toInt()))this.textElement.setStyle('left',this.options.marWidth)}else if(this.options.direction=='right'){if(pos>this.options.marWidth.toInt())this.textElement.setStyle('left',-1*(this.textElement.getCoordinates().width.toInt()))}},setDirection:function(dir){this.options.direction=dir;this.setStartPos()}});mooquee.implement(new Options);