
/**
 * Adds a leading zero to a single-digit number.  Used for displaying dates.
 */
function padNumber(num) 
{
  if (num <= 9) 
  {
    return "0" + num;
  }
  return num;
}

/**
 * Adds a leading zero to a single-digit number.  Used for displaying dates.
 */
function dateToString(sourceDate)
{
	var hour = sourceDate.getHours();
	var amPm = 'am';
	if (hour > 12)
	{
		hour -= 12;
		amPm = 'pm';
	}
	return hour + ':' + padNumber(sourceDate.getMinutes()) + amPm;
}
/**
 * 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();
  var eventDiv = document.getElementById('calendar');
  var prevDateString = null;
  var monthArray = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
  var dayArray = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
  /* create a new unordered list */
  var dl = document.createElement('dl');
  /* loop through each event in the feed */
  var len = entries.length;
  var dateString = new Array();
  var timeString = new Array();
  var title = new Array();
  var link = new Array();
  for (var i = 0; i < len; i++) 
  {
    
	var entry = entries[i];
    title[i] = entry.getTitle().getText();
    var startDateTime = null;
    var startJSDate = null;

	link[i] = null;
	if (entry.getHtmlLink() != null)
	{
		link[i] = entry.getHtmlLink().getHref();
	}
    var times = entry.getTimes();
    if (times.length > 0) 
	{
      startDateTime = times[0].getStartTime();
      startJSDate = startDateTime.getDate();
    }
    dateString[i] = dayArray[startJSDate.getDay()] + ', ' + monthArray[startJSDate.getMonth()] + '. ' + startJSDate.getDate();
    timeString[i] = 'All Day';
	if (!startDateTime.isDateOnly()) 
	{
      timeString[i] = dateToString(startJSDate);
    }

	var dt = document.createElement('dt');
	dt.innerHTML = dateString[i];
	dl.appendChild(dt);

	var dd = document.createElement('dd');
	dd.innerHTML ='<a href="' + link[i] + '">' + '<i>' + timeString[i] + '</i> - ' + title[i] + '</a>';	    

    dl.appendChild(dd);
  }
  
  eventDiv.appendChild(dl);
  if (len == 0)
	  eventDiv.innerHTML += '<a href="calendar.html">[Nothing Scheduled]</a>';
  else
  eventDiv.innerHTML += '<a href="calendar.html">More events...</a>';
}

function toggleCalendar()
{
  $("#calendar").slideToggle(1000);
}
function hideCalendar()
{
  $("#calendar").slideUp(1000);
}
