/*globals ActiveXObject */
var feed_title = "";
var display_element;
var curr_index = 0;
var timeout_id;
var paused = false;
var aRssRequest = false;
var aFeedUrl = "http://www.rolsma.com/wordpress/?feed=rss2";


var currChar = 0;
var currDesc = '';

var titles = [];
var descriptions = [];
var links = [];

function updateRss(){
	currChar = 0;
	
	if(curr_index >= titles.length){curr_index = 0;}
	
	if(display_element !== null){
		display_element.innerHTML = feed_title + '<div class="rssTitle"><a href="' + links[curr_index] + '">' + titles[curr_index] + '</a></div><div id="rssDesc" class="rssDesc">' + descriptions[curr_index] + '</div>';
	}
	
	//currDesc = descriptions[curr_index];
	
	//type();
	
	curr_index += 1;
	timeout_id = setTimeout(updateRss, 3000);	
}

function startRss(){
	var aRssDoc = aRssRequest.responseXML;

	// Get Feed Title	
	feed_title = '<span id="feedTitle"><a href="' + aRssDoc.getElementsByTagName("link")[0].firstChild.nodeValue + '">' + aRssDoc.getElementsByTagName("title")[0].firstChild.nodeValue + '</a></span>';
	
	
	// Get Items
	var itemList = aRssDoc.getElementsByTagName("item");
	
	for(var i = 0; i < itemList.length; i++)
	{
		titles.push(itemList[i].getElementsByTagName("title")[0].firstChild.nodeValue);
		descriptions.push(itemList[i].getElementsByTagName("description")[0].firstChild.nodeValue);
		links.push(itemList[i].getElementsByTagName("link")[0].firstChild.nodeValue);
	}
	
	display_element = document.getElementById("rss");
	if (titles.length > 0 && titles[0] !== undefined){updateRss();}
}

function processReqChange() {
    // only if aRssRequest shows "loaded"
    if (aRssRequest.readyState == 4) {
        // only if "OK"
        if (aRssRequest.status == 200) {
            startRss();
        } 
    }
}

function RequestRss() {
	
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    	try {
			aRssRequest = new XMLHttpRequest();
        } catch(e) {
			aRssRequest = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	aRssRequest = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e2) {
        	try {
          		aRssRequest = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e3) {
          		aRssRequest = false;
        	}
		}
    }
	if(aRssRequest) {
		aRssRequest.onreadystatechange = processReqChange;
		aRssRequest.open("GET", aFeedUrl, true);
		aRssRequest.send("");
	}
}

function type(){
	var rssElement = document.getElementById('rssDesc');
		
	if(currChar < currDesc.length){
		rssElement.innerHTML += currDesc.charAt(currChar);
		currChar++;
		timeout_id = setTimeout(type, 60);	
	}
	else {
		timeout_id = setTimeout(updateRss, 4000);	
	}	
}

function reStartRss(){
	
	if(timeout_id !== null){
		clearTimeout(timeout_id);
	} 
	
	if(currChar > 0 && paused) {
		paused = false;
		type();
	} else if (titles.length > 0){
		curr_index++;
		updateRss();
	}
}

function pauseRss(){
	clearTimeout(timeout_id);
	paused = true;
}



