window.onload = function()
{
	var marqueeElement = document.getElementById ("marquee");
	if (marqueeElement)
		new marquee (marqueeElement, 1000, 1.15);
};

function marquee (marqueeElement, pause, speed)
{
	var self = this;
	this.offset = 0;
	this.mouse = false;
	this.scrollTimeout = null;
	this.main = marqueeElement;
	this.width = this.main.offsetWidth;
	this.prev = this.main.childNodes.length - 1;
	this.curr = 0;

	this.main.onmouseover = function() { self.mouse = true; };
	this.main.onmouseout = function()
	{
		self.mouse = false;
		self.scrollTimeout = setTimeout (self.scroll, 200);
	};
	
	this.scroll = function()
	{
		if (self.scrollTimeout)
		{
			clearTimeout (self.scrollTimeout);
			self.scrollTimeout = null;
		}

		if (!self.offset && self.mouse)
			return;

		self.offset = (self.offset ? Math.floor (self.offset / speed) : self.width);
		self.scrollTimeout = setTimeout (self.scroll, self.offset ? 30 : pause);
		self.main.childNodes[self.curr].style.left = -self.offset + "px";
		self.main.childNodes[self.prev].style.left = self.width - self.offset + "px";

		if (!self.offset)
		{
			self.prev = self.curr;
			if (++self.curr >= self.main.childNodes.length)
				self.curr = 0;
		}
	};

	self.scroll();
}