function Marquee(newScrollerName, scrollerDivId, scrollerTrId, shiftBy, interval, align)
{
	this.name     	= newScrollerName;
	this.id       	= scrollerDivId;
	this.shiftBy  	= shiftBy ? shiftBy : 1;
	this.interval 	= interval ? interval : 100;
	this.runId		= null;
	this.divObj		= document.getElementById(scrollerDivId);
	this.trObj 		= document.getElementById(scrollerTrId);
	this.align		= align ? align : this.divObj.parentNode.offsetWidth;

	RemoveTextObjects(this.divObj);
	this.divObj.style.width = 2 * screen.availWidth;
}

function init()
{
	var nodes = this.trObj.childNodes;

	if(nodes.length > 0)
	{
		this.left 				= this.align;
		this.shiftLeftAt 		= this.trObj.firstChild.offsetWidth;
		this.divObj.style.height= this.trObj.firstChild.offsetHeight;
	}
}

function RemoveTextObjects(ele)
{
	var node = ele.firstChild;
	var next;
	
	while (node)
	{
		next = node.nextSibling;
		
		if (node.nodeType == 3)
			ele.removeChild(node);
			
		node = next;
	}
}

function startMarquee()
{
	var ftr = this.trObj.firstChild;
	
	this.stop();
	this.left -= this.shiftBy;

	if (this.left <= this.shiftLeftAt * (-1))
	{
	    this.stop();
		this.left = 0;
		this.trObj.appendChild(this.trObj.firstChild);
		this.shiftLeftAt = this.trObj.firstChild.offsetWidth;
	}

  this.divObj.style.left = (this.left + 'px');
  this.runId = setTimeout(this.name + '.start()', this.interval);
}

function stopMarquee()
{
	if (this.runId)
		clearTimeout(this.runId);
		
	this.runId = null;
}

Marquee.prototype.start			= startMarquee;
Marquee.prototype.stop 			= stopMarquee;
Marquee.prototype.initialize	= init;
