var calendarAgendaTarget;
var calendarAgendaTargetObj;

var maxResults=10;
var daysInFuture=7;
function loadGoogleCalendarIntoDivId(target){
	calendarAgendaTarget=target;
	google.load("gdata", "1");
	google.setOnLoadCallback(getMyFeed);
}
function getMyFeed() {
  var myService = new google.gdata.calendar.CalendarService('capoeira-eventfeed-0.2a');
  var query = new google.gdata.calendar.CalendarEventQuery( "http://www.google.com/calendar/feeds/besele6ra8saltfjgvscuc8b5s@group.calendar.google.com/public/full?alt=json");
  var startMin = new google.gdata.DateTime(new Date() );
  var endDate=new Date();
  endDate.setDate( endDate.getDate()+ daysInFuture );
  var startMax = new google.gdata.DateTime( endDate );
  query.setFutureEvents(true);
  query.setMaxResults( maxResults );
  query.setSingleEvents(true);
  query.setMinimumStartTime(startMin);
  query.setMaximumStartTime(startMax);
  query.setOrderBy(query.ORDERBY_START_TIME);
  query.setSortOrder(query.SORTORDER_ASCENDING);
  myService.getEventsFeed(query, listCalendarEvents, handleError);
}

function getMyFeed2() {
  var myService = new google.gdata.calendar.CalendarService('capoeira-eventfeed-0.2a');
  var query = new google.gdata.calendar.CalendarEventQuery( "http://www.google.com/calendar/feeds/besele6ra8saltfjgvscuc8b5s@group.calendar.google.com/public/full?alt=json");
  var startMin = new google.gdata.DateTime(new Date() );
  var endDate=new Date();
  endDate.setDate( endDate.getDate()+ daysInFuture );
  var startMax = new google.gdata.DateTime( endDate );
  query.setFutureEvents(true);
  query.setMaxResults( maxResults );
  query.setSingleEvents(false);
  query.setMinimumStartTime(startMin);
  query.setMaximumStartTime(startMax);
  query.setOrderBy(query.ORDERBY_START_TIME);
  query.setSortOrder(query.SORTORDER_ASCENDING);
  myService.getEventsFeed(query, listCalendarEvents, handleError);
}


function handleError(e) {
	//var calendarAgendaTarget=document.getElementById("agenda");
	calendarAgendaTarget.innerHTML = "Events not available";
}

function listCalendarEventsDojo(result) {
    var titlelist = new Array();
    result.feed.entry.sort(sortEvents);
    for (var i = 0; i < result.feed.entry.length; i++) {
      var entry = result.feed.entry[i];
      var title = entry.getTitle().getText();
	var val = "";
   	var times = entry.getTimes();
	for (var f in times){
		var startDate =times[f].getStartTime().getDate();
		var endDate = times[f].getEndTime().getDate();
      	var startDay = (startDate).toLocaleDateString();
		var endDay = (endDate).toLocaleDateString()
		var startTime = reformTime((startDate).toLocaleTimeString());
		var endTime = reformTime((endDate).toLocaleTimeString());	
		if(startDay==endDay) val+= ""+ startDay + ": "+  startTime + " - "+ endTime+"<br>";
    		else val+= "starting " + startDay + " at "+  startTime + " <br> ending " + endDay + " at "+ endTime+"<br>";
	}
	var find=false;
	for (var j in titlelist)
	{
		if(j==title){
			var t=titlelist[j];
			t[t.length]=val;
			find=true;
			break;
		}
	}
	if(find==false){
		titlelist[title] = new Array();
		titlelist[title][0] = val;
	}
   }
      for (var j in titlelist)
	{
		var acc="";
      	for (var k in titlelist[j])
		{
			acc = acc + titlelist[j][k];
		}
    		/*dojo.addOnLoad(function(){
			var aContainer = dijit.byId("agenda");
			aContainer.addChild(new dijit.layout.AccordionPane({
                            title:j,
                            content:acc
      		}));
			aContainer.resize(); 
			aContainer.layout();
			//aContainer.startup();
  		});*/
		dojo.addOnLoad(function(){
			var container = dijit.byId("agenda");
			container._singleChild = pane;
			var pane = new dijit.TitlePane( {title:j}, dojo.byId("agenda1"));
			pane.innerHTML=acc;
			pane.startup();
			container.startup();
			alert("this ran");
  		});
 		//calendarAgendaTargetObj=document.getElementById("agenda");

		//calendarAgendaTargetObj.innerHTML=calendarAgendaTargetObj.innerHTML+("<div dojoType=\"dijit.layout.AccordionPane\" title=\""+j+"\">"+acc+"</div>");
	}
}



function listCalendarEvents(result) {
    var titlelist = new Array();
    calendarAgendaTargetObj=document.getElementById(calendarAgendaTarget);
    result.feed.entry.sort(sortEvents);
    for (var i = 0; i < result.feed.entry.length; i++) {
      var entry = result.feed.entry[i];
      var title = entry.getTitle().getText();
	var val = "";
   	var times = entry.getTimes();
	for (var f in times){
		var startDate =times[f].getStartTime().getDate();
		var endDate = times[f].getEndTime().getDate();
      	var startDay = (startDate).toLocaleDateString();
		var endDay = (endDate).toLocaleDateString()
		var startTime = reformTime((startDate).toLocaleTimeString());
		var endTime = reformTime((endDate).toLocaleTimeString());	
		//var titlehtml = "<B>" +title + "</B> <br>";
		if(startDay==endDay) val+= ""+ startDay + ": "+  startTime + " - "+ endTime+"<br>";
    		else val+= "starting " + startDay + " at "+  startTime + " <br> ending " + endDay + " at "+ endTime+"<br>";
	}
	var find=false;
	for (var j in titlelist)
	{
		if(j==title){
			var t=titlelist[j];
			t[t.length]=val;
			find=true;
			break;
		}
	}
	if(find==false){
		titlelist[title] = new Array();
		titlelist[title][0] = val;
	}
   }
      for (var j in titlelist)
	{
		calendarAgendaTargetObj.innerHTML = calendarAgendaTargetObj.innerHTML + "<B>" +j + "</B> <br>";
      	for (var k in titlelist[j])
		{
			calendarAgendaTargetObj.innerHTML = calendarAgendaTargetObj.innerHTML + titlelist[j][k];
		}
	}

}
function listCalendarEventEvents(result) {
    result.feed.entry.sort(sortEvents);
    for (var i = 0; i < result.feed.entry.length; i++) {
      var entry = result.feed.entry[i];
      var title = entry.getTitle().getText();
	var startDate = entry.getTimes()[0].getStartTime().getDate();
	var endDate = entry.getTimes()[0].getEndTime().getDate();
      var startDay = (startDate).toLocaleDateString();
	var endDay = (endDate).toLocaleDateString()
	var startTime = reformTime((startDate).toLocaleTimeString());
	var endTime = reformTime((endDate).toLocaleTimeString());
	if(startDay==endDay) calendarAgendaTarget.innerHTML = calendarAgendaTarget.innerHTML + "<B>" +title + "</B> <br>" + startDay + "<i>-</i>"+  startTime + " <i>to</i> "+ endTime+"<br>";
    	else calendarAgendaTarget.innerHTML = calendarAgendaTarget.innerHTML + "<B><i>" +title + "</i></B> <br> starting " + startDay + " at "+  startTime + " <br> ending " + endDay + " at "+ endTime+"<br>";
	}
}
function reformTime(a){
	var reg=new RegExp(":00"); 	
      var str = a.replace(reg,"");
	return str.replace(reg,"");
}
function sortEvents(a_entry,b_entry){
   var a_times=a_entry.getTimes();
   a_times.sort(sortEventEntries);
   var b_times=b_entry.getTimes();
   b_times.sort(sortEventEntries);
   return sortEventEntries(a_times[0],b_times[0]);
}
function sortEventEntries(a_entry,b_entry){
   var a = a_entry.startTime;
   var b = b_entry.startTime;
   if(a > b) return 1;
   if(a < b) return -1;
   return 0 ;
}

