
/*
Features Stuff needs to be changed here
*/

var theFeaturesUrl = "feeds/features.xml";

//the parser looks for these tags

var featureItemTag = "feature_entry";
var featureTitleTag = "feature_title";
var featureTextTag = "feature_text";



/*
------------
*/

var xhr;
var target;
var type;
var pointer = 0;

//create template arrays
var newsTemplate = { newsTitle: ["news_title","h4"], newsText: ["news_text", "p"]};
var cb = new Date().getTime() + Math.random()*100000;

var feeds = ["js/proxy.php", theFeaturesUrl];
var targs = ["chatdivContent", "featuresDivContent"];
var ty = 	["chat", "features"];

function collectFeeds(){
	getFeed(feeds[pointer], targs[pointer], ty[pointer]);
}

function getFeed(url, t, template){

	if (window.XMLHttpRequest) {
	xhr = new XMLHttpRequest()
	}
	else if (window.ActiveXObject){
	xhr = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
//we're good to go
target = document.getElementById(t);
type= template;
xhr.onreadystatechange = pollRequest;
xhr.open("GET", url, true);
xhr.send(null);
}

function pollRequest(){
  // only if req shows "loaded"
    if (xhr.readyState == 4) {
		try{
        // only if "OK"
				if (xhr.status == 200) {
					////
					parseFeed();
					//////
				} else {
				  errorMessage();
				}
		}//end try
		catch(e){
		//suppress the error	
		}
		
    }
}

function parseFeed(){
removeLoading();

//switch on the type of feed

	switch(type){
		case "news":
			
		var newsXML = xhr.responseXML.documentElement;
		var newsTitles = newsXML.getElementsByTagName('news_title');
		var newsTexts = newsXML.getElementsByTagName('news_text');
		
		var len = newsTitles.length;
				for (var i = 0; i<len; i++){
					//now loop thru props of given template Object
					var newTitle = document.createElement('h4');
					var newTitleText = document.createTextNode(newsTitles[i].childNodes[0].nodeValue);
					newTitle.appendChild(newTitleText);
					target.appendChild(newTitle);
					
					var newText = document.createElement('p');
					target.appendChild(newText);
					newText.innerHTML = newsTexts[i].childNodes[0].nodeValue;
					
					var newHR = document.createElement('hr');
					target.appendChild(newHR);
					
				}
		
		
		break;
	
		case "chat":
	
		var chatXML = xhr.responseXML.documentElement;
		var chatItems = chatXML.getElementsByTagName('item');
		
		
		var len = chatItems.length;
				for (var i = 0; i<len; i++){
					//now loop thru props of given template Object
					var newLink = document.createElement('a');
					var linkData = chatItems[i].getElementsByTagName('link')[0].childNodes[0].nodeValue;
					newLink.setAttribute("href", linkData);
					newLink.setAttribute("target", "_blank");
					var newTitle = document.createElement('p');
					newLink.innerHTML = chatItems[i].getElementsByTagName('title')[0].childNodes[0].nodeValue;
					//var newTitleText = document.createTextNode(chatItems[i].getElementsByTagName('title')[0].childNodes[0].nodeValue);
					
					newTitle.appendChild(newLink);
					//newLink.appendChild(newTitleText)
					target.appendChild(newTitle);
					
					var newHR = document.createElement('hr');
					target.appendChild(newHR);
					
				}
		
		break;
		
		case "features":
		
		var featureXML = xhr.responseXML.documentElement;
		var featureItems = featureXML.getElementsByTagName(featureItemTag);
		
		
		var len = featureItems.length;
				for (var i = 0; i<len; i++){
					//now loop thru props of given template Object
					
					var newTitle = document.createElement('h5');
					newTitle.innerHTML = featureItems[i].getElementsByTagName(featureTitleTag)[0].childNodes[0].nodeValue;
					//var newTitleText = document.createTextNode(chatItems[i].getElementsByTagName('title')[0].childNodes[0].nodeValue);
					
					
					
					var featText = document.createElement('p');
					var featTextCont = document.createTextNode(featureItems[i].getElementsByTagName(featureTextTag)[0].childNodes[0].nodeValue);
					
					featText.innerHTML = featureItems[i].getElementsByTagName(featureTextTag)[0].childNodes[0].nodeValue;
					
					//featText.appendChild(featTextCont);
					
					//newLink.appendChild(newTitleText)
					target.appendChild(newTitle);
					target.appendChild(featText);
					
					
				}
		
		break;
		
		
		
		
	
		default:
		errorMessage();
		return false;
	}
	
	
	if (pointer<feeds.length-1){
	pointer++;
	collectFeeds();
	}
}

function removeLoading(){
	var loading = target.getElementsByTagName('h5')[0];
	var bar = target.getElementsByTagName('img')[0];
	if (bar!=undefined){
	bar.className = "hidden";
	}
	if (loading!=undefined){
	target.removeChild(loading);
	}
	return;
}


function errorMessage(){
	var message = target.getElementsByTagName('h5')[0];
	message.childNodes[0].nodeValue = 'Sorry, no connection at the moment. Please try again later.';
	return false;
}