// JavaScript Document

RSSRequestObject = new Array();
RSSShown = new Array();

/*
* onreadystatechange function
*/
function ReqChange() {
	var on = true;
	// If data received correctly
	for (key in RSSRequestObject)
	{
		if (RSSRequestObject[key].readyState==4 && !(RSSShown[key])) 
		{
			// if data is valid
			if (RSSRequestObject[key].responseText.indexOf('invalid') == -1) 
			{ 	
				if (window.ActiveXObject)
				{
					var node = new ActiveXObject("Microsoft.XMLDOM");
					node.loadXML(RSSRequestObject[key].responseText);	
				}
				else
				{
					// Parsing RSS
					var node = RSSRequestObject[key].responseXML;
				}
				
				// Get Channel information
				var mychannel = node.getElementsByTagName('channel')[0];
				//var mylink = channel.getElementsByTagName('link').item(0).firstChild.data;
				
				var content = '<ul>';
				
				// Browse items
				var items = mychannel.getElementsByTagName('item');
				for (var n=0; n < items.length; n++)
				{
					var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data;
					var itemLink = items[n].getElementsByTagName('link').item(0).firstChild.data;
					var itemDesc = items[n].getElementsByTagName('description').item(0).firstChild.data;
					try 
					{ 
						var itemPubDate = '';
						//var curdate = getDateFromFormat(items[n].getElementsByTagName('pubDate').item(0).firstChild.data, "E, dd MMM yyyy k:m:s");
						//var itemPubDate = '<font color=gray>['+(formatDate(curdate,"E, dd MMM yyyy"))+'] ';
						//var itemPubDate = '<font color=gray>['+items[n].getElementsByTagName('pubDate').item(0).firstChild.data+'] ';
						
					} 
					catch (e) 
					{ 
						var itemPubDate = '';
					}
					
					if (on) {
						content += '<li class="on">'+itemPubDate+'<a href="'+itemLink+'" style="font-weight:bold;">'+itemTitle+'</a><br>'+itemDesc+'</li>';
						on = false;
					}
					else {
						content += '<li>'+itemPubDate+'<a href="'+itemLink+'" style="font-weight:bold;">'+itemTitle+'</a><br>'+itemDesc+'</li>';
						on = true;
					}
				}
				
				
				content += '</ul>';
				
				// Display the result
				document.getElementById("ajaxreader"+key).innerHTML = content;
	
				// Tell the reader the everything is done
				document.getElementById("status"+key).innerHTML = "";
				
			}
			else {
				// Tell the reader that there was error requesting data
				document.getElementById("status"+key).innerHTML = "<div class=error>Error requesting data.<div>";
			}
			
			HideShow('status'+key);
			RSSShown[key] = true;
		}
	}

}

/*
* Main AJAX RSS reader request
*/
function RSSRequest(Backend) {	
	var i = 1;

	for (key in Backend)
	{
		try
		{
			// try to create XMLHttpRequest object
			RSSRequestObject[i] = new XMLHttpRequest();
		}
		catch(e)
		{
			// assume IE6 or older
			var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
											"MSXML2.XMLHTTP.5.0",
											"MSXML2.XMLHTTP.4.0",
											"MSXML2.XMLHTTP.3.0",
											"MSXML2.XMLHTTP",
											"Microsoft.XMLHTTP");
			// try every prog id until one works
			for (var j=0; i<XmlHttpVersions.length && !RSSRequestObject[i]; j++) 
			{
				try 
				{ 
					// try to create XMLHttpRequest object
					RSSRequestObject[i] = new ActiveXObject(XmlHttpVersions[j]);
				} 
				catch (e) {} // ignore potential error
			}
			
		}
		// change the status to requesting data
		HideShow('status'+i);
		if (RSSRequestObject[i].overrideMimeType) {
     		RSSRequestObject[i].overrideMimeType('text/xml');
    	}

		document.getElementById("status"+i).innerHTML = "Requesting data ...";
		
		RSSShown[i] = false;
		// Set the onreadystatechange function
		RSSRequestObject[i].onreadystatechange = ReqChange;
		// Prepare the request
		RSSRequestObject[i].open("GET", Backend[key] , true);
		// Send
		RSSRequestObject[i].send(""); 
		i++;
	}
}


function HideShow(id){
	var el = GetObject(id);
	if(el.style.display=="none")
	el.style.display='';
	else
	el.style.display='none';
}

function GetObject(id){
	var el = document.getElementById(id);
	return(el);
}
