var aTickerItems = new Array();
var iTickerTimer = -1;
var iNextTicker  = -1;
var iCurrentTicker = 0;

function populateObjects()
{
	// Older browsers need not apply
	if(!document.getElementById){ return false; }
	if(!document.createElement) { return false; }
	if(!document.getElementsByTagName){ return false; }
	// Get a reference to the ticker
	var oTicker = document.getElementById("ticker");
	if(!oTicker){ return false; }
	// Get all <li>s
	var aListItems = oTicker.getElementsByTagName("LI");
	if(!aListItems){ return false; }
	for(var i=0; i<aListItems.length; i++)
	{
		aTickerItems.push(aListItems[i].innerHTML);
	}
	// Remove the current items
	oTicker.removeChild(oTicker.getElementsByTagName("UL")[0]);
	// Start the ticker
	showTickerItem(0);
}

function showTickerItem(iID)
{
	// Validate
	iID = parseInt(iID, 10);
	iID = isNaN(iID) ? 0 : iID;
	if(iID >= aTickerItems.length){ iID = 0; }
	if(iID < 0){ iID = 0; }
	// Get next text
	var sNextText = aTickerItems[iID];
	iCurrentTicker = iID;
	// Lose the current ticker timer
	if(iNextTicker  > 0){ clearInterval(iNextTicker ); iNextTicker  = -1; }
	if(iTickerTimer > 0){ clearInterval(iTickerTimer); iTickerTimer = -1; }
	// Move the SPAN away
	var oCurrentTicker = document.getElementById("currentTickerItem");
	oCurrentTicker.style.left = "750px";
	// Put the HTML in
	oCurrentTicker.innerHTML = aTickerItems[iID];
	// Start moving
	iTickerTimer = setInterval("moveTicker()", 30);
}

function moveTicker()
{
	// Get reference
	var oCurrentTicker = document.getElementById("currentTickerItem");
	// What's the next position?
	var iNextPos = parseInt(oCurrentTicker.style.left, 10) - 4;
	var iWidth = parseInt(oCurrentTicker.offsetWidth);
	var iMinimum = 10;
	if(isNaN(iWidth) == false)
	{
		//if(top.location.href.indexOf("smartways") > -1){ document.body.appendChild(document.createTextNode("width: " + iWidth)); }
		if(iWidth > 720)
		{
			if(top.location.href.indexOf("smartways") > -1)
			{
				iMinimum = 750 - iWidth;
				//document.body.appendChild(document.createTextNode(" " + iMinimum));
			}
		}
	}
	// Can we move no further?
	if(iNextPos <= iMinimum)
	{
		clearInterval(iTickerTimer);
		iTickerTimer = -1;
		// Set a timeout to move to the next one.
		iNextTicker = setTimeout("showTickerItem(" + (++iCurrentTicker) + ")", 4000);
		return false;
	}
	// Move
	oCurrentTicker.style.left = iNextPos + "px";
}

populateObjects();