function getXMLHttpRequestObj()
{
    var objXHR;
    if (window.XMLHttpRequest) {
        objXHR = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        objXHR = new ActiveXObject('Microsoft.XMLHTTP');
    }
    return objXHR;
}

objHttp = getXMLHttpRequestObj();
var request_active = false;
var newsFeedPosition = -1;
var newsFeedNr = 0;
var newstickerLinkId = 'rssNewsFeedLink';

function getNewsFeed()
{
    if (request_active) {
        return false;
    } else {
        request_active = true;
    }

	objHttp.open('get', 'feed/news_de.js', true);
	objHttp.onreadystatechange = showNewsFeedTicker;
    objHttp.send(null);
}

function showNewsFeedTicker ()
{
	if (objHttp.readyState == 4 && objHttp.status == 200) {
        response = objHttp.responseText;

        do {
        	response = response.replace(/&amp;/, '&');
        } while (/&amp;/.test(response));

        eval(response.match(/^((?:var\s+)?rssFeedNews.*)/gm).join(';').substring(4));
        request_active = false;
		loadNewsFeed();
    } else {
    	return false;
    }
}

function loadNewsFeed()
{
	if (rssFeedNews.length) {
		document.getElementById(newstickerLinkId).href = rssFeedNews[newsFeedNr]['link'];
		parseNewsFeed();
		rssNewsFeedTimes = setInterval('parseNewsFeed()', 50);
	}
}

function parseNewsFeed()
{
	for (i = 0; i < document.getElementById(newstickerLinkId).childNodes.length; i++) {document.getElementById(newstickerLinkId).removeChild(document.getElementById(newstickerLinkId).childNodes[i]);}
//	var rssNewsFeedLink = document.createTextNode(rssFeedNews[newsFeedNr]['title'].substring(0, newsFeedPosition)+'_');
//	document.getElementById(newstickerLinkId).appendChild(rssNewsFeedLink);
	document.getElementById(newstickerLinkId).innerHTML = rssFeedNews[newsFeedNr]['title'].substring(0, newsFeedPosition)+'_';

	if (newsFeedPosition < rssFeedNews[newsFeedNr]['title'].length) {
		newsFeedPosition++;

		if (/&#[0-9]{3,};/.test(rssFeedNews[newsFeedNr]['title'].substring(newsFeedPosition-1,newsFeedPosition+5))) {
			newsFeedPosition +=5;
		}
	} else {
		clearInterval(rssNewsFeedTimes);
		if (newsFeedNr == rssFeedNews.length-1) {
			newsFeedNr = 0;
		} else {
			newsFeedNr++;
		}
		newsFeedPosition = 0;
		setTimeout('loadNewsFeed()', 5000);
	}
}
