var allEvents = new String;
google.load("gdata", "2.x");
function init(){
    google.gdata.client.init(handleGDError);
    loadCalendarByAddress();
}
function padNumber(num){
    if (num <= 9) {
        return "0" + num;
    }
    return num;
}
function returnMonth(x){
    var months = new Array;
    months[1] = "January";
    months[2] = "February";
    months[3] = "March";
    months[4] = "April";
    months[5] = "May";
    months[6] = "June";
    months[7] = "July";
    months[8] = "August";
    months[9] = "September";
    months[10] = "October";
    months[11] = "November";
    months[12] = "December";
    for (var f = 1; f < months.length + 1; f++) {
        if (x == f) {
            month = months[f];
            return month;
        }
    }
}
function loadCalendarByAddress(){
    var calendarUrl = 'http://www.google.com/calendar/feeds/36i9butu5ffa683r0fnibs2ku0@group.calendar.google.com/public/full';
    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(4);	//	Set the max number of events to display
    service.getEventsFeed(query, listEvents, handleGDError);
}
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());
    }
}
function listEvents(feedRoot){
    var entries = feedRoot.feed.getEntries();
    for (var i = 0; i < entries.length; i++) {
        var entry = entries[i];
        var title = entry.getTitle().getText();
        var startDateTime = null;
        var startJSDate = null;
        var times = entry.getTimes();
        if (times.length > 0) {
            startDateTime = times[0].getStartTime();
            startJSDate = startDateTime.getDate();
        }
        var entryLinkHref = null;
        if (entry.getHtmlLink() != null) {
            entryLinkHref = entry.getHtmlLink().getHref();
        }
        var dateString = returnMonth((startJSDate.getMonth() + 1)) + " " + startJSDate.getDate();
        var Time;
        if (!startDateTime.isDateOnly()) {
            var hours = startJSDate.getHours();
            var code;
            if (hours > 12) {
                code = "pm";
                hours = hours - 12;
            }
            else {
                code = "am";
            }
            Time = hours + ":" + padNumber(startJSDate.getMinutes()) + code;
        }
        allEvents = allEvents + (dateString + "<br/>" + Time + " - <b>" + title) + "</b><br/><br/>";
    }
    $('#allevents').html(allEvents + "<a href='calendar.cfm'>Click here for Events.</a>");
}
google.setOnLoadCallback(init);
