var blinker = 0;
var processIntervalID;
var blinkerIntervalID;

var accessorCount = 0;

var uid = new Date().getTime();

updateTickerRef = document.getElementById( "updateTicker" );

var lines = new Array();
var typing = false;

function addMessage( message )
{
	lines = lines.concat( message.split( "<br />" ) );
	
	if( processIntervalID > 0 )
	{
		suspendRunning();
		typeText( lines.shift() );
	}
}

function typeText( textToPrint ) 
{
	updateTickerRef.innerHTML = updateTickerRef.innerHTML.substring( 0, updateTickerRef.innerHTML.length - 1 );
	
	if( textToPrint.length > 0 )
	{
		updateTickerRef.innerHTML =  updateTickerRef.innerHTML + textToPrint + "<br />_";
		updateTickerRef.scrollTop = updateTickerRef.scrollHeight;
		textToPrint = "";
	}
	else
		updateTickerRef.innerHTML =  updateTickerRef.innerHTML + "_";	
	/*textLength = textToPrint.length;
	
	updateTickerRef.innerHTML = updateTickerRef.innerHTML.substring( 0, updateTickerRef.innerHTML.length - 1 );
	
	thisPrint = textToPrint.substr( 0, 1 );
	
	if( thisPrint == "<" )
	{
		var index = textToPrint.search( ">" );
		
		if( index > 0 )
		{
			updateTickerRef.innerHTML = updateTickerRef.innerHTML + textToPrint.substr( 0, index+1 ) + "_";
			
			textToPrint = textToPrint.substr( index + 1, textToPrint.length );
			 
			thisPrint = "";
		}
	}
	else if( thisPrint == "&" )
	{
		var index = textToPrint.search( ";" );
		
		if( index > 0 )
		{
			updateTickerRef.innerHTML = updateTickerRef.innerHTML + textToPrint.substr( 0, index + 1 ) + "_";
			
			textToPrint = textToPrint.substr( index + 1, textToPrint.length );
			
			thisPrint = "";
		}
	}
	else
	{
		updateTickerRef.innerHTML =  updateTickerRef.innerHTML + thisPrint + ( textLength % 2 == 0 ? '_' : '.' );
		
		textToPrint = textToPrint.substr( 1, textLength );
		updateTickerRef.scrollTop = updateTickerRef.scrollHeight;
	}*/
	
	if( textToPrint.length > 0 ) 
		setTimeout( "typeText( '" + textToPrint + "' )", 500);
	else
	{
		if( lines.length > 0 )
		{
			var message = lines.shift();
			setTimeout( "typeText( '" + message + "' )", 1000);
		}
		else
			resumeRunning();
	}
}

function resumeRunning()
{
	processIntervalID = setInterval( "processUpdate()", 10000 );
	blinkerIntervalID = setInterval( "blink()", 500 );
	blinker = 0;
}

function suspendRunning()
{
	clearInterval( processIntervalID );
	clearInterval( blinkerIntervalID );
}

function processUpdate()
{	
	if( document.getElementById ) 
	{
		if( window.ActiveXObject )
			var x = new ActiveXObject("Microsoft.XMLHTTP") 
		else
			var x = new XMLHttpRequest();
	}
			
	if (x)
	{
		x.onreadystatechange = function()
		{
			if (x.readyState == 4 && x.status == 200)
			{
				var getheadTag = document.getElementsByTagName('head')[0];
				setjs = document.createElement('script'); 
				setjs.setAttribute('type', 'text/javascript');
				getheadTag.appendChild(setjs); 
				setjs.text = x.responseText;
			}
		}
		
		x.open("GET", "./custom/liveUpdate.cfm?id=" + new Date().getTime(), true);
		x.send(null);
		
		return 0;
	}
	
	return -1;
}

function blink()
{
	updateTickerRef = document.getElementById( "updateTicker" );
	
	if( (blinker = !blinker) )
		updateTickerRef.innerHTML = updateTickerRef.innerHTML.substring( 0, updateTickerRef.innerHTML.length - 1 ) + ".";
	else
		updateTickerRef.innerHTML = updateTickerRef.innerHTML.substring( 0, updateTickerRef.innerHTML.length - 1 ) + "_";					

	updateTickerRef.scrollTop = updateTickerRef.scrollHeight;
}

