//---------------------------------------------
// Laguna Honda and Google Calendar integration
//---------------------------------------------

var myService;
var calendarUrl = "http://www.google.com/calendar/feeds/lagunahondavolunteers@gmail.com/public/full";

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

function setupMyService() {
    myService = new google.gdata.calendar.CalendarService('LagunaHonda-CalendarApp-1');
}

function getMyFeed() {
    $('ul.events').html('<li>Loading events...</li>');

    setupMyService();

    var query = new google.gdata.calendar.CalendarEventQuery(calendarUrl);
    query.setOrderBy('starttime');
    query.setSortOrder('ascending');
    query.setFutureEvents(true);
    query.setSingleEvents(true);
    query.setMaxResults(3);

    myService.getEventsFeed(query, handleMyFeed, handleError);
}

function handleMyFeed(result) {
    var entries = result.feed.entry;
    var string = '';

    if (entries.length > 0) {
	for (var i = 0; i < entries.length; i++ ) {
	    var entry = entries[i];
	    var eventTitle = entry.getTitle().getText();
	    var startDateTime = null;
	    var startJSDate = null;
	    var eventYear = null;
	    var times = entry.getTimes();
	    
	    if (times.length > 0) {
		startDateTime = times[0].getStartTime();
		startJSDate = startDateTime.getDate();	    
	    }
	    
	    var dateString = padNumber(startJSDate.getMonth() + 1) + "/" + padNumber(startJSDate.getDate()) + "/" + padNumber(startJSDate.getYear()-100);
	    /*
	    if (!startDateTime.isDateOnly()) {
		dateString += " " + startJSDate.getHours() + ":" + 
		    padNumber(startJSDate.getMinutes());
	    }
	    */
	    string += '<li><span class="date">' + ' ' + dateString + ' ' + '</span>' + ' ' + eventTitle + ' ' + '</li>';
	}
    }
    else {
	string += '<li>No events found.</li>';
    }

    $('ul.events').html(string);
}

function handleError(e) {
    $('ul.events').html('<li>Sorry, events cannot be loaded at this time.</li>');
}

function padNumber(num) {
    if (num <= 9) {
	return "0" + num;
    }
    return num;
}