﻿var RSSRequestObject = false; // XMLHttpRequest Object
//var Backend = 'http://www.itnews.com.au/rss.aspx?SCID=32'; // Backend url
window.setInterval("update_timer()", 1200000); // update the data every 20 mins


//if (window.XMLHttpRequest) // try to create XMLHttpRequest
//	RSSRequestObject = new XMLHttpRequest();

//if (window.ActiveXObject)	// if ActiveXObject use the Microsoft.XMLHTTP
//	RSSRequestObject = new ActiveXObject("Microsoft.XMLHTTP");


var RSSRequestObject = null;
if (typeof XMLHttpRequest != 'undefined') {  // if ECMA version of object is available
  try {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
    RSSRequestObject = new XMLHttpRequest();          // instantiate it
  } catch (err) {
    alert("Error initializing XMLHttpRequest.\n"+
          err); // show error
  }
} else {                                     // else assume this is IE and
  var msobj = new Array("Msxml2.XMLHTTP.6.0",
                        "Msxml2.XMLHTTP.4.0",
                        "Msxml2.XMLHTTP.3.0",
                        "Msxml2.XMLHTTP",
                        "Microsoft.XMLHTTP");
  var x, len = msobj.length;
  for(x=0; x<len; ++x) {                     // try each MS ActiveX object in turn
    try {
      RSSRequestObject = new ActiveXObject(msobj[x]);
      break;
    } catch (err) {};
  }
}


// Navigation Menu Functions
var rssHighLightColour = "#FFCF31";
var rssBaseColour = "#FFFFFF";
function colourRss(elmnt){document.getElementById(elmnt).style.backgroundColor=rssHighLightColour;}
function unColourRss(elmnt){document.getElementById(elmnt).style.backgroundColor=rssBaseColour;}

/*
* onreadystatechange function
*/
function ReqChange() {

	// If data received correctly
	if (RSSRequestObject.readyState==4) {
	
		// if data is valid
		if (RSSRequestObject.responseText.indexOf('invalid') == -1) 
		{ 	
			// Parsing RSS
			var node = RSSRequestObject.responseXML.documentElement; 
			
			
			// Get Channel information
			var channel = node.getElementsByTagName('channel').item(0);
			var title = channel.getElementsByTagName('title').item(0).firstChild.data;
			var link = channel.getElementsByTagName('link').item(0).firstChild.data;
			
			//content = '<div class="channeltitle"><a href="'+link+'">'+title+'</a></div>';
		    content = '';
		
			// Browse items
			var items = channel.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 = '<font color=gray>['+items[n].getElementsByTagName('pubDate').item(0).firstChild.data+']</font>';
				} 
				catch (e) 
				{ 
					var itemPubDate = '';
				}
				
			
				/* content += '<li>'+itemPubDate+'</font><a href="'+itemLink+'">'+itemTitle+'</a></li>'; */
			    content += '<div id="rss'+n+'" style="cursor:hand;border:1px solid #9CBFF9;background-color:white;font-family:verdana,sans-serif;font-size:10pt;" onmouseover="colourRss(\'rss'+n+'\');" onmouseout="unColourRss(\'rss'+n+'\');" onclick="HideShow(\'rssLink'+n+'\');">'+itemTitle;
			    content += '<div id="rssLink'+n+'" class="rssDesc" style="display:none;font-family:verdana,sans-serif;font-size:8pt;">'+itemPubDate+'<br/><a href="'+itemLink+'" target="_new">'+itemDesc+'</a></div></div>';
			    //alert(content);
			}
			
			
			//content += '</ul>';
			// Display the result
			document.getElementById("crtrss").innerHTML = content;

			// Tell the reader the everything is done
			document.getElementById("status").innerHTML = "Done.";
			
		}
		else {
			// Tell the reader that there was error requesting data
			document.getElementById("status").innerHTML = "<div class=error>Error requesting data.<div>";
		}
		
		HideShow('status');
	}
	
}

/*
* Main AJAX RSS reader request
*/
function RSSRequest(rssUrl) {
	// change the status to requesting data
	HideShow('status');
	document.getElementById("status").innerHTML = "Requesting data ...";
	
	// Prepare the request
	RSSRequestObject.open("GET", rssUrl , true);
	// Set the onreadystatechange function
	RSSRequestObject.onreadystatechange = ReqChange;
	// Send
	RSSRequestObject.send(null); 
}

/*
* Timer
*/
function update_timer() {
	RSSRequest();
}


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);
}