/* Retrieve all events from calendar */

google.load("gdata", "1");
google.setOnLoadCallback(getMyFeed);

var myService;

// The default "private/full" feed is used to retrieve events from 
// the primary private calendar with full projection:

var feedUrl = "https://www.google.com/calendar/feeds/pctcalenderadmin@googlemail.com/public/full?orderby=starttime&sortorder=ascending&futureevents=true&singleevents=true&max-results=5";

function setupMyService() {
  	myService = new google.gdata.calendar.CalendarService('CHTPCT-EventsList');
}
function getMyFeed() {
  	setupMyService();
  	myService.getEventsFeed(feedUrl, handleMyFeed, handleError);
}
function handleMyFeed(myResultsFeedRoot) {

	var entries = myResultsFeedRoot.feed.entry; 
	var insertionPoint = $$('#cal .shad');
	
	// Print the 10 most recent events as a list
	
	Element.insert(insertionPoint[0], { 'after' : '<ul id="eventList">' });
		
	for (var i = 0; i < entries.length; i++ ) {
		var eventEntry = entries[i];
		var len = "28";
		
		var eventTitle = eventEntry.getTitle().getText();
		
		if (eventTitle.length > len) {
		
		/* Truncate the content of the P, then go back to the end of the
		   previous word to ensure that we don't truncate in the middle of
		   a word */
		eventTitle = eventTitle.substring(0, len);
		eventTitle = eventTitle.replace(/\w+$/, '');
		eventTitle += " [...]";
	}
    
	var eventTimes = eventEntry.getTimes();
	
	var startTime = eventTimes[0].getStartTime();
	var endTime = eventTimes[0].getEndTime();
	var entryLinkHref = null;
    if (eventEntry.getHtmlLink() != null) {
      entryLinkHref = eventEntry.getHtmlLink().getHref();
    }

	// these are the native JavaScript Date objects
	var startDate = startTime.getDate();
	var endDate = endTime.getDate(); 
    
	Element.insert($('eventList'), { 'bottom' : '<li><a target="_blank" href="'+entryLinkHref+'">' + eventTitle + '<\/a><br\/>' + startDate.toLocaleString() + '<\/li>' });
  }
  
  Element.insert(insertionPoint[0], { 'after' : '<\/u>' });
}

function handleError(e) {
  	alert("There was an error!");
  	alert(e.cause ? e.cause.statusText : e.message);
}

