/*
 * Retrieve events with a date query
 */ 

// Create the calendar service object
var calendarService = new google.gdata.calendar.CalendarService('GoogleInc-jsguide-1.0');
var feedUri = 'http://www.google.com/calendar/feeds/secnbc@frontiernet.net/public/full';
var query = new google.gdata.calendar.CalendarEventQuery(feedUri);

var startDate = new Date();
var endDate = new Date();
endDate.setDate( (endDate.getDate() + 15) ); // 5 days midnight to midnight.

var startMonth = (startDate.getMonth() + 1);
if(startMonth.toString().substring(0, 2).length == 1)
{
    startMonth = "0" + startMonth.toString();
}
var endMonth = (endDate.getMonth() + 1);
if(endMonth.toString().substring(0, 2).length == 1)
{
    endMonth = "0" + endMonth.toString();
}
var startDay = startDate.getDate();
if(startDay.toString().substring(0, 2).length == 1)
{
    startDay = "0" + startDay.toString();
}
var endDay = endDate.getDate();
if(endDay.toString().substring(0, 2).length == 1)
{
    endDay = "0" + endDay.toString();
}

var startMin = google.gdata.DateTime.fromIso8601(startDate.getFullYear() + "-" + startMonth + "-" + startDay + "T00:00:00.000-00:00");
var startMax = google.gdata.DateTime.fromIso8601(endDate.getFullYear() + "-" + endMonth + "-" + endDay + "T00:00:00.000-00:00");

query.setMinimumStartTime(startMin);
query.setMaximumStartTime(startMax);

// The callback that will be called when getEventsFeed() returns feed data
var callback = function(root)
{
  // Obtain the array of matched CalendarEventEntry
  var eventEntries = root.feed.getEntries();

  // If there is matches for the date query
  if (eventEntries.length > 0)
  {
    var eventList = new Array();
    var j = 0; //Event list counter
  
    for (var i = 0; i < eventEntries.length; i++)
    {
        try
        {
              var event = eventEntries[i];
              var eventInfo = new Array();
              
              eventInfo[0] = event.getTimes()[0].startTime;
              eventInfo[1] = event.getTitle().getText();
              
              if(event.content.getText() != null)
              {
                eventInfo[2] = event.content.getText();
              }
              
              eventList[j] = eventInfo;
              j++;
        }
        catch(e)
        {
            //suppress error
        }
    }
    
    //Sort date
    eventList.sort();
    
    for(var i = 0; i < eventList.length; i++)
    {
        var html;
        var eventDate;
        var year = eventList[i][0].substring(0,4);
        var month = eventList[i][0].substring(5,7);
        var day = eventList[i][0].substring(8,10);
        
        eventDate = month + "/" + day + "/" + year;
        
        html = "<span class='eventsTitle' onclick='window.location = \"events.aspx\"' onmouseover='this.style.cursor =\"pointer\"'>";
        html += eventList[i][1] + " - " + eventDate;
        html += "</span>";
        html += "<br /><br />";
        
        
//Disable showing description        
//        if(eventList[i][2] != null)
//        {
//            html += "<span style='margin-left:15px'>" + eventList[i][2] + "</span>";
//        }
//        else
//        {
//            html += "No Description Provided";
//        }
//        
//        html += "<br /><br />";
        
        document.getElementById("eventsText").innerHTML += html;
    }
  }
}

var handleError = function(error)
{
  //do nothing
}

calendarService.getEventsFeed(query, callback, handleError);
