
var RSSRequestObject = false; // XMLHttpRequest Object
var Backend = 'eventrss.php'; // 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");

// begin: Alan's additions for date/time manipulations
// make array of month names
var monthNames = new Array ('', 'January', 'February', 'March', 'April', 'May', 'June', 'July' , 'August', 'September', 'October', 'November', 'December');

// offset to GMT time from the time zone setting in Google Calendar
// var GMToffset = -7;
// end: Alan's additions for date/time manipulations

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


	// If data received correctly
	if (RSSRequestObject.readyState==4) {
	
		// if data is valid
		if (RSSRequestObject.responseText.indexOf('invalid') == -1) 
		{ 	
			// Parsing Feeds
			var node = RSSRequestObject.responseXML.documentElement; 

				// BEGIN: Alan changes the output since on my site, I manually insert a header
				
				// Get the calendar title
				 var title = node.getElementsByTagName('title').item(0).firstChild.data;
				
				 content = '<div class="channeltitle">'+title+'</div>';
				
				// Display the current time zone
				// content = '<p><a href="calendar.htm">Full Calendar</a></p>';
				
				// END: Alan changes the output since on my site, I manually insert a header
			 
			 
			// Browse events
			
			var items = node.getElementsByTagName('entry');
			if (items.length == 0) {
				content += '<ul class="Bullet"><li><div class=error>No events</div></li></ul>';
			} else {
				content += '<ul class="Bullet">';
				
			
			// BEGIN: Alan changes the data looping to be reverse chronological
			
				//for (var n=items.length-1; n >= 0; n--)
			
					// change to reverse ordering
					for (var n=0; n < items.length; n++)
					
			// END: Alan changes the data looping to be reverse chronological
				
				{
					var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data;
					var Summary = items[n].getElementsByTagName('summary').item(0).firstChild.data;
					// var itemLink = items[n].getElementsByTagName('id').item(0).firstChild.data;
					var itemLink = items[n].getElementsByTagName('link').item(0).getAttribute('href');
					try 
					{ 
					
						// BEGIN: Alan's date/time conversions
						
						// Date clean up suggestion by Chrissy
						// var atomdate = items[n].getElementsByTagName('published').item(0).firstChild.data;
						
						// Alan's reformatting starts here
						// get the time in 00:00:00
						var itemPubDateTime = atomdate.substr(11, 8);
						
						// get the year
						var itemYear= atomdate.substr(0, 4);
						
						// get the month, parse to integer, and fetch string version
						var itemMon = monthNames[parseInt(atomdate.substr(5,2),10)];
						
						// get the day
						var itemDay = parseInt(atomdate.substr(8,2),10);
						
						// create new Date object by parsing the epoch version, and accounting for offset from GTM
						var myNewDate = new Date( Date.parse(itemMon+' ' + itemDay + ', ' + itemYear + ' ' + itemPubDateTime) + 3600 * 1000 * GMToffset);
						
						var itemPubDate = myNewDate.toLocaleString();
						
						
					} 
					catch (e) 
					{ 
						var itemPubDate = '';		
					}
							
					content += '<li>'+itemPubDate + ' <a href="'+itemLink+'">'+itemTitle+'</a></li>';
					
					// END: Alan's date/time conversions
				}
				
	
				content += '</ul>';
			}
			// Display the result
			document.getElementById("ajaxreader").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() {

	// change the status to requesting data
	HideShow('status');
	document.getElementById("status").innerHTML = "Requesting data ...";
	
	// Prepare the request
	RSSRequestObject.open("GET", Backend , 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);
}
