function getDateObj(timestamp)
{
	var a = timestamp.split('T');
	var d = a[0].split('-');
	
	if (a.length == 2) var t = a[1].split(':');
	else var t = new Array('00', '00', '00');
	
	if (d[1].charAt(0) == '0') d[1] = d[1].substr(1);
	
	return new Date(d[0], parseInt(d[1]) - 1, d[2], t[0], t[1], 0);
}

function formatEventDate(timestamp)
{
	var date = getDateObj(timestamp);
	return date.getDayTextual() + ", " + date.getMonthTextual() + " " + date.getDate();
}

function formatEventTime(timestamp)
{
	var date = getDateObj(timestamp);
	return date.getHour() + ":" + date.getMinute() + " " + date.getMeridian("pm");
}

function sortByStartTime(a, b)
{
    var x = a['gd$when'][0].startTime;
    var y = b['gd$when'][0].startTime;
    
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function listEvents(root)
{
	var entries = root.feed.entry || [];
	entries.sort(sortByStartTime);
	
    var html = [''];
    var limit = (location.href.indexOf('schedule') != -1) ? entries.length : 2;
    if (limit > entries.length) limit = entries.length;

    for (var i = 0; i < limit; i++)
    {
		var entry = entries[i];
		var title = entry.title.$t;
		var startDate = formatEventDate(entry['gd$when'][0].startTime);
		var startTime = formatEventTime(entry['gd$when'][0].startTime);
		var endTime = formatEventTime(entry['gd$when'][0].endTime);
		var address = entry['gd$where'][0].valueString;
		var website = entry.content.$t;

		html.push('<div class="emphasis">', startDate, '</div>',
				  '<b>', title, '</b><br />',
				  address, '<br />',
				  startTime, '<br />',
				  '<a href="', website, '" target="_blank">Website</a> - ',
				  '<a href="http://maps.google.com/maps?q=', escape(address),
				  '" target="_blank">Directions</a><br /><br />');
    }
	
    document.getElementById("events").innerHTML = html.join("");
}