newsticker = "newsticker";
newssource = "/news.php";

cancelUpdate = false;
maxarticlenum = 1;
currentnum = 1;

var xhRequest;
try {
	xhRequest = new XMLHttpRequest();
} catch (error) {
	try {
		xhRequest = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (error) {
		var curdate = new Date();
		addEvent(window, "load", function() { tickerContentTo(newsticker, 'Error', null, 'Sorry, your browser does not support dynamic news updates..', '#'); }, false);
	}
}

function tickerContentTo(tickerID, rcategory, rdate, rtitle, rid) {
	var ticker = document.getElementById(tickerID).firstChild;
	var snews = "";
	if(rdate != null && rdate != "") snews = "<a href='/article.php?id=" + rid + "'><span style='color: #CCC;'>(" + rdate + ")</span> ";
	if (rcategory != null && rcategory != "") snews += "<span id='overme'><b>" + rcategory + "</b>: ";
	snews += rtitle + "</span>";
	document.getElementById(tickerID).innerHTML = snews;
}

function tickerUpdate() {
	if (cancelUpdate == true) return;
	
	if(currentnum >= maxarticlenum) currentnum = 1;
	xhRequest.open("GET", "/news.php?itemno=" + currentnum++, true);
	
	xhRequest.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	
	try {
		xhRequest.send(null);
	} catch (error) {
		tickerContentTo(newsticker, 'Error', null, 'Connection to the internet lost. Please reconnect for dynamic news updates.', '#');		
	}
	
	xhRequest.onreadystatechange = function() {
		if (xhRequest.readyState == 4) {
			if (xhRequest.status && /200|304/.test(xhRequest.status)) {
				eval(xhRequest.responseText);
				maxarticlenum = metadata.count;
				if (typeof(news) != "undefined") tickerContentTo(newsticker, news.category, news.date, news.title, news.id);
				else tickerContentTo(newsticker, 'Error', null, 'Couldn\'t retrieve news updates.', '#');
			} else {
				tickerContentTo(newsticker, 'Error', null, 'Connection to the internet lost. Please reconnect for dynamic news updates.', '#');
			}
		}
	};
}

addEvent(window, "load", function() {
	addEvent(document.getElementById(newsticker), "mouseover", function() { cancelUpdate = true; }, false);
	addEvent(document.getElementById(newsticker), "mouseout", function() { cancelUpdate = false; }, false);
}, false);

setInterval(tickerUpdate, 5000);