var mooquee=new Class({initialize:function(element,options){this.setOptions({marHeight:15,marWidth:980,steps:1,speed:40,direction:'left',pauseOnOver:true,pauseOnContainerOver: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(){if(!this.options.pauseOnContainerOver){this.textElement.addEvents({'mouseenter':function(me){this.clearTimer();}.bind(this),'mouseleave':function(me){this.timer=this.startMooquee.delay(this.options.speed,this);}.bind(this)});}else{this.mooqueeElement.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);