<!--

google.load("gdata", "2.x");

var eventsToShow = 10;

/**
 * Uses Google data JS client library to retrieve a calendar feed from the specified
 * URL.  The feed is controlled by several query parameters and a callback
 * function is called to process the feed results.
 *
 * @param {string} calendarUrl is the URL for a public calendar feed
 */
function loadCalendar(calendarUrl) {
  var service = new
      google.gdata.calendar.CalendarService('gdata-js-client-samples-simple');


  var query = new google.gdata.calendar.CalendarEventQuery(calendarUrl);
  query.setOrderBy('starttime');
  query.setSortOrder('ascending');
  query.setFutureEvents(true);
  query.setSingleEvents(true);
  query.setMaxResults(eventsToShow);
  
  //alert("loading calendar");
  
  service.getEventsFeed(query, listEvents, handleGDError);
}

/**
 * Callback function for the Google data JS client library to call with a feed
 * of events retrieved.
 *
 * Creates an unordered list of events in a human-readable form.  This list of
 * events is added into a div called 'events'.  The title for the calendar is
 * placed in a div called 'calendarTitle'
 *
 * @param {json} feedRoot is the root of the feed, containing all entries
 */
function listEvents(feedRoot) {
  var entries = feedRoot.feed.getEntries();
  
  $("#events").empty();
          
  /* loop through each event in the feed */  
  for (var i = 0; i < entries.length; i++) {
    var entry = entries[i];
    var title = entry.getTitle().getText();
    
    //alert(title);
    
    var startDateTime = null;
    var startJSDate = null;
    var times = entry.getTimes();
    if (times.length > 0) {
      startDateTime = times[0].getStartTime();
      startJSDate = startDateTime.getDate();
    }
    
    var entryLinkHref = "#";
    if (entry.getHtmlLink() != null) {
      entryLinkHref = entry.getHtmlLink().getHref();
    }
    
    var dateString = (startJSDate.getMonth() + 1) + "/" + startJSDate.getDate();
    var eventString = dateString + " " + title;


    var rowStart  = "<table><tr><td valign='center'><img src='images/button-bullet.png'/></td><td valign='center' class='text-cell'><a href='";
    var rowMiddle = "' border='none'>";
    var rowEnd = "</a></td></tr></table>";
    
    //alert(rowStart + entryLinkHref + rowMiddle + eventString + rowEnd);
    
    $("#events").append(rowStart + entryLinkHref + rowMiddle + eventString + rowEnd);
   }   
}



/**
 * Callback function for the Google data JS client library to call when an error
 * occurs during the retrieval of the feed.  Details available depend partly
 * on the web browser, but this shows a few basic examples. In the case of
 * a privileged environment using ClientLogin authentication, there may also
 * be an e.type attribute in some cases.
 *
 * @param {Error} e is an instance of an Error
 */
function handleGDError(e) {
  document.getElementById('jsSourceFinal').setAttribute('style',
      'display:none');
  if (e instanceof Error) {
    /* alert with the error line number, file and message */
    alert('Error at line ' + e.lineNumber +
          ' in ' + e.fileName + '\n' +
          'Message: ' + e.message);
    /* if available, output HTTP error code and status text */
    if (e.cause) {
      var status = e.cause.status;
      var statusText = e.cause.statusText;
      alert('Root cause: HTTP error ' + status + ' with status text of: ' +
            statusText);
    }
  } else {
    alert(e.toString());
  }
}


//google.setOnLoadCallback(init);

/*
//function loadLeftNavigation()
//{
//	var rowStart  = "<tr><td valign='center'><img src='images/button-bullet.png'/></td><td class='text-cell'><a href='";
//	var rowMiddle = "' border='none'>";
//	var rowEnd = "</a></td></tr>";
//	for (var itemIndex=0; itemIndex < leftNavigation.items.length; itemIndex++)
//	{
//		var item = leftNavigation.items[itemIndex];
//		$("table#leftnav").append(rowStart + item.targetUrl + rowMiddle + item.linkText + rowEnd);
//	}
//
//	$("table#events").append("<tr><td class='footer'/></tr>");
//}
*/
