function Marquee(){  
  this.ID=document.getElementById(arguments[0]);  
  this.Direction=arguments[1];  
  this.Step=arguments[2];  
  this.Width=arguments[3];  
  this.Height=arguments[4];  
  this.Timer=arguments[5];  
  this.WaitTime=arguments[6];  
  this.StopTime=arguments[7];  
  if(arguments[8]){this.ScrollStep=arguments[8];}else{this.ScrollStep=this.Direction>1?this.Width:this.Height;}  
  this.CTL=this.StartID=this.Stop=this.MouseOver=0;  
  this.ID.style.overflowX=this.ID.style.overflowY="hidden";  
  this.ID.noWrap=true;  
  this.ID.style.width=this.Width;  
  this.ID.style.height=this.Height;
  if(window.navigator.userAgent.toLowerCase().indexOf("msie 6.0")!=-1)
	{
	  window.attachEvent("onload",this.Bind(this,this.Init));
	}
	else
	{
	  this.Init();
	}
}
Marquee.prototype.Bind=function(oThis, Func) 
{
	return function() {Func.apply(oThis, arguments);};
}
Marquee.prototype.Init=function()
{
  this.ClientScroll=this.Direction>1?this.ID.scrollWidth:this.ID.scrollHeight;
  this.ID.innerHTML+=this.ID.innerHTML;  
  this.Start(this,this.Timer,this.WaitTime,this.StopTime);
}
Marquee.prototype.Start=function(msobj,timer,waittime,stoptime){  
  msobj.StartID=function(){msobj.Scroll();}  
  msobj.Continue=function(){  
    if(msobj.MouseOver==1){setTimeout(msobj.Continue,waittime);}  
    else{clearInterval(msobj.TimerID); msobj.CTL=msobj.Stop=0; msobj.TimerID=setInterval(msobj.StartID,timer);}  
    }  
  msobj.Pause=function(){msobj.Stop=1; clearInterval(msobj.TimerID); setTimeout(msobj.Continue,waittime);}  
  msobj.Begin=function(){  
    msobj.TimerID=setInterval(msobj.StartID,timer);  
    msobj.ID.onmouseover=function(){msobj.MouseOver=1; clearInterval(msobj.TimerID);}  
    msobj.ID.onmouseout=function(){msobj.MouseOver=0; if(msobj.Stop==0){clearInterval(msobj.TimerID); msobj.TimerID=setInterval(msobj.StartID,timer);}}  
    }  
  setTimeout(msobj.Begin,stoptime);  
  }  
Marquee.prototype.Scroll=function(){  
  switch(this.Direction){  
    case 0:  
      this.CTL+=this.Step;
      if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollTop+=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}  
      else{if(this.ID.scrollTop>=this.ClientScroll) this.ID.scrollTop-=this.ClientScroll; this.ID.scrollTop+=this.Step;}  
      break;  
    case 1:  
      this.CTL+=this.Step;  
      if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollTop-=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}  
      else{if(this.ID.scrollTop<=0) this.ID.scrollTop+=this.ClientScroll; this.ID.scrollTop-=this.Step;}  
      break;  
    case 2:  
      this.CTL+=this.Step;  
      if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollLeft+=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}  
      else{if(this.ID.scrollLeft>=this.ClientScroll) this.ID.scrollLeft-=this.ClientScroll; this.ID.scrollLeft+=this.Step;}  
      break;  
    case 3:  
      this.CTL+=this.Step;  
      if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollLeft-=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}  
      else{if(this.ID.scrollLeft<=0) this.ID.scrollLeft+=this.ClientScroll; this.ID.scrollLeft-=this.Step;}  
      break;  
    }  
  } 
