var tickerCursorOffImageGif = new Image();
var tickerCursorOnImageGif = new Image();
var tickerCursorFinalImageGif = new Image();
var tickerContainer;
var tickerImage;
var tickerCurrentDynamicLength = 0;
var tickerCurrentHeadline = -1;
var tickerCharacterTimeout;
var tickerHeadlineTimeout;
var tickerHeadlines;
var tickerUrls;
var tickerTitle

function tickerStartTicker(tickerId, title, headlines, urls, headlineTimeout, characterTimeout, tickerImageId, offImageSrc, onImageSrc, finalImageSrc)
{
    // Locate base objects

	// Load headlines and urls and title
	tickerTitle = title;
	tickerHeadlines = headlines;
	tickerUrls = urls;
	
	// Set speed of characters and time between headlines.
	tickerCharacterTimeout = characterTimeout;
	tickerHeadlineTimeout = headlineTimeout;

	// Preload images
	tickerCursorOffImageGif.src = offImageSrc;
	tickerCursorOnImageGif.src = onImageSrc;
	tickerCursorFinalImageGif.src = finalImageSrc;

	// Locate ticker image.
	if (document.images) 
	{
		if (document.layers)
			tickerImage = document.layers['tickerContainer'].document.images['tickerCursorImageTag'];
		else 
			tickerImage = document.images['tickerCursorImageTag'];
	}

	// Locate ticker container
	if (document.getElementById) 
	{
	    tickerContainer = document.getElementById(tickerId);
	}

	// Run ticker
	if (tickerContainer != null)
	{
		tickerRunTicker();
	}
	else
	{
		document.write("<style>.ticki{display:none;}.tickl{border:0px; padding:0px;}</style>");
		return true;
	}
}

// Play Ticker, on endless loop.
function tickerRunTicker()
{
	var tickerTimeout;

	// Load next headline.
	if(tickerCurrentDynamicLength == 0)
	{
		tickerCurrentHeadline++;
		tickerCurrentHeadline = tickerCurrentHeadline % tickerHeadlines.length;
		tickerCurrentHeadlineText = tickerHeadlines[tickerCurrentHeadline].replace(/&quot;/g,'"');
		tickerCurrentHeadlineURL = tickerUrls[tickerCurrentHeadline];
		tickerContainer.href = tickerCurrentHeadlineURL;
		tickerPrefix = '<span class="tickerPrefix">' + tickerTitle + '&nbsp;&nbsp;</span>';
	}

	// Insert headline text into Ticker container.
	tickerContainer.innerHTML = tickerPrefix + tickerCurrentHeadlineText.substring(0,tickerCurrentDynamicLength);

	// Update image.
	tickerGetCursorFrame();

	// Expand the length of the leadline and how long to wait before running again.
	if(tickerCurrentDynamicLength != tickerCurrentHeadlineText.length)
	{
		tickerCurrentDynamicLength++;
		tickerTimeout = tickerCharacterTimeout;
	}
	else
	{
		tickerCurrentDynamicLength = 0;
		tickerTimeout = tickerHeadlineTimeout;
	}
	// Call up the next cycle of the ticker
	setTimeout("tickerRunTicker()", tickerTimeout);
}

// Cursor animator
function tickerGetCursorFrame()
{
	var imgSrc;

	// Select image based on position in headline.
	if(tickerCurrentDynamicLength == tickerCurrentHeadlineText.length)
	{
		imgSrc = tickerCursorFinalImageGif.src;
	}
	else if((tickerCurrentDynamicLength % 2) == 1)
	{
		imgSrc = tickerCursorOffImageGif.src;
	}
	else
	{
		imgSrc = tickerCursorOnImageGif.src;
	}

	// Update image source
	if (tickerImage != null) 
	{
		tickerImage.src = imgSrc;
	}

}

function tickerHTML()
{
	var spantag;
	spantag = document.getElementById('Ticker1');
	if (spantag != null)
		return spantag.innerHTML;
	else
		return 'Tag not found';
}
