function Marquee()
{
 this.ID = 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;
 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;
 }
}