var xmlHttpRequest;
var xmlDocItems;

var numberOfNewsItems = 3
var currentTickerLength = 0;	
var storyToDisplay = 0;
var tickerSpeed = 99;
var nextStorySpeed = 3000;

var news_titles = [numberOfNewsItems];	//store link titkes
var news_links = [numberOfNewsItems];   //store link addresses



function news_ticker_control(urlIn)
{
	getXmlHttpRequestObject();
	getXmlHttpRequest(urlIn);
}

function getXmlHttpRequestObject()
{
	if(document.getElementById)
		xmlHttpRequest = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
}

function getXmlHttpRequest(urlIn)
{
	if(xmlHttpRequest)
	{
		xmlHttpRequest.onreadystatechange = function()
		{
			updateXml();
		}
		xmlHttpRequest.open("GET", urlIn, true);
		xmlHttpRequest.send(null);
	}
}

function updateXml()
{
	if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200)
	{	
		var xmlDocParsed
		if(navigator.userAgent.toLowerCase().indexOf("opera") != -1)
		{
			alert("asdf");
			var XMLDocString = xmlHttpRequest.responseText;		
			XMLDocString = XMLDocString.replace(/&/g, "and");
			//XMLDocString = escape(XMLDocString);	
			xmlDocParsed = (new DOMParser()).parseFromString(XMLDocString, "text/xml");
		}
		else
		{	
			try
			{
				xmlDocParsed = xmlHttpRequest.responseXML;
			}
			catch(err) 
			{
				alert(err.description)		
			}
		}
				
		if(xmlDocParsed.documentElement != null)
		{
			xmlDocItems = xmlDocParsed.documentElement.getElementsByTagName("item");
				
			if(xmlDocItems.length < numberOfNewsItems)
				numberOfNewsItems = xmlDocItems.length
				
			for(x=0; x<numberOfNewsItems; x++)
			{
				news_titles[x] = xmlDocItems[x].getElementsByTagName("title")[0].childNodes[0].nodeValue.trim()
				news_links[x] = xmlDocItems[x].getElementsByTagName("link")[0].childNodes[0].nodeValue.trim()
			}
			
			doTicker();
		}
		else
		{
			document.getElementById("paraToWrite").innerHTML = "Error: XML feed cannot be parsed."
		}
		
	}
}

function doTicker()
{
		var titleSubString = news_titles[storyToDisplay].substring(0, currentTickerLength++);

		var text = "";
		
		var thisSpeed = "";
		
		if(currentTickerLength <= news_titles[storyToDisplay].length)
		{
			text = "<a href='" + news_links[storyToDisplay] + "' target='_self' >" + titleSubString + "_" + "</a>";
		}
		else
		{
			text = "<a href='" + news_links[storyToDisplay] + "' target='_self'>" + titleSubString + "</a>";
		}
			
		var elementToWriteTo = document.getElementById("paraToWrite"); 
		var linkHref = news_links[storyToDisplay].replace(/ /g, "").replace(/[\r\n]+/g, "");
		var linkToDisplay = "<a href=" + linkHref + ">" + titleSubString + "</a>";
		document.getElementById("paraToWrite").innerHTML = linkToDisplay;

		if(currentTickerLength >= news_titles[storyToDisplay].length+1)
		{
			currentTickerLength = 0;
			storyToDisplay++;
			if(storyToDisplay == 3)
				storyToDisplay = 0;
				
			if(storyToDisplay >= numberOfNewsItems)
				storyToDisplay = 0
				
			thisSpeed = nextStorySpeed;
		}
		else
		{
			thisSpeed = tickerSpeed;
		}
		setTimeout("doTicker()", thisSpeed);
}

function addOnLoadEvent(functionNameIn)
{
	var currentOnLoad = window.onload;
	if(typeof window.onload != "function")
	{
		window.onload = functionNameIn 	
	}	
	else	
	{		
		window.onload = function()		
		{			
			if(currentOnLoad)
			{
				currentOnLoad();
			}
			functionNameIn();
		}	
	}
}

//window.load = news_ticker_control('http://wmatest.solent.ac.uk/news/news.aspx?rss=true');