/**
gCalJSON
Copyright 2006 Mark Percival -  SquarePush, LLC
mark@squarepush.com
Released under GPL
A JSON implementation of gCalAjax.
**/


var today = new Date();
var startDate = today.getFullYear() + '-';
startDate += (today.getMonth()+1 < 10) ? '0'+(today.getMonth()+1) : today.getMonth()+1; 
startDate += '-';
startDate += (today.getDate() < 10) ? '0'+today.getDate() : today.getDate(); 

gCalFeed += '?alt=json-in-script&callback=jsonhandler&singleevents=true&orderby=starttime&sortorder=a';
gCalFeed += '&start-min='+startDate;
gCalFeed += '&max-results=' + maxResults;

RSSRequest(gCalFeed);


function RSSRequest(url) {
document.write("<script type='text/javascript' language='javascript' src='");
document.write(gCalFeed);
document.write("'></script>");
}

function jsonhandler(response) {
	var feed = response.feed;
	
	var outputHTML = '<table border="0" cellpadding="0" cellspacing="0"><tr><td>';
	//var outputHTML = '';
	var itemTimePrev = new Date();
	itemTimePrev.setTime(0);
	
	if(feed.entry) { 
		for (var i = 0 ; i < feed.entry.length; i++) {
	      var entry = feed.entry[i];
	      var itemTitle = entry['title'].$t;
		  var itemLink = entry['link'][0].href;
		  var itemTimeRaw = entry['gd$when'][0].startTime;
		  // What I added - Mark
		  // *****
		  var itemLocation = entry['gd$where'][0].valueString;
		  var itemDescr = entry['content'].$t;
		  // *****
		  var isAllDay = false; //init isAllDay variable
	      if (itemTimeRaw.length <= 10) isAllDay = true; //just the date is only 10 digits = all day event
	      var itemTime = new Date();
	      itemTime.setTime (Date.UTC(itemTimeRaw.substr(0,4),(itemTimeRaw.substr(5,2)-1),itemTimeRaw.substr(8,2),itemTimeRaw.substr(11,2),itemTimeRaw.substr(14,2)));
	      if ((itemTime.getUTCDate()!=itemTimePrev.getUTCDate())||(itemTime.getUTCMonth()!=itemTimePrev.getUTCMonth())) {
			// Don't add extra few lines if it's the first line
			if(i==0) outputHTML += '';
			else outputHTML += '<br><br>';
			
	        //outputHTML += '<tr><td><b><font color="CCCCCC">' + itemTime.getUTCDate()+ ' ' + getMonthName(itemTime) + '</font></b></td></tr>';
			outputHTML += '<img src="http://www.ebcmelbourne.org/images/arrow.gif" /> ';
			//outputHTML += '<b><font color="CCCCCC">' + itemTime.getUTCDate()+ ' ' + getMonthName(itemTime) + '</font></b>';
			outputHTML += '<font color="black">' + itemTime.getUTCDate()+ ' ' + getMonthName(itemTime) +
							' ' + itemTime.getUTCFullYear() + '</font>';
	                    
		  }
		  
	      //outputHTML += '<ul><li>'; 
	      //outputHTML += '<tr><td>'; 
		  
		  //And here as well, I added the location and description to the list item.
	      outputHTML += '<br><a href="' + itemLink + '">' + itemTitle + '</a>';
		  /*if (!isAllDay) outputHTML += " (" + getTimeFormatted(itemTime) + ')';     
		  else outputHTML += " (All Day)";*/
		  //outputHTML+= "</td></tr>";
		  //outputHTML+= "</ul></li>";
		  
	      itemTimePrev.setTime(itemTime); //Save the last timestamp for next iteration comparison	  
	    }
	outputHTML += "</td></tr></table>";
	
	
	/*var outputHTML = "";
	var itemTimePrev = new Date();
	itemTimePrev.setTime(0);
	
	if(feed.entry) { 
		for (var i = 0 ; i < feed.entry.length; i++) {
	      var entry = feed.entry[i];
	      var itemTitle = entry['title'].$t;
		  var itemLink = entry['link'][0].href;
		  var itemTimeRaw = entry['gd$when'][0].startTime;
		  // What I added - Mark
		  // *****
		  var itemLocation = entry['gd$where'][0].valueString;
		  var itemDescr = entry['content'].$t;
		  // *****
		  var isAllDay = false; //init isAllDay variable
	      if (itemTimeRaw.length <= 10) isAllDay = true; //just the date is only 10 digits = all day event
	      var itemTime = new Date();
	      itemTime.setTime (Date.UTC(itemTimeRaw.substr(0,4),(itemTimeRaw.substr(5,2)-1),itemTimeRaw.substr(8,2),itemTimeRaw.substr(11,2),itemTimeRaw.substr(14,2)));
	      if ((itemTime.getUTCDate()!=itemTimePrev.getUTCDate())||(itemTime.getUTCMonth()!=itemTimePrev.getUTCMonth()))
	        outputHTML += '<b>' + itemTime.getUTCDate()+ ' ' + getMonthName(itemTime) + '</b>';
	                    
	      outputHTML += '<ul><li>'; 
	      
		  //And here as well, I added the location and description to the list item.
	      outputHTML += ' <a href="' + itemLink + '">' + itemTitle + '</a>';
		  if (!isAllDay) outputHTML += " (" + getTimeFormatted(itemTime) + ')';     
		  else outputHTML += " (All Day)";
		  outputHTML+= "</li></ul>";
		  
	      itemTimePrev.setTime(itemTime); //Save the last timestamp for next iteration comparison	  
	    }
	outputHTML += "</ul>";*/
	
	/*outputHTML += '<br>';	
	outputHTML += '<table><tr><td><a href="http://www.google.com/calendar/embed?src=webmaster%40ebcmelbourne.org">' + 
				  '<img src="http://www.ebcmelbourne.org/images/calendar.jpg" width="30" height="32" /></a>'+
				  '</td><td>' + 
				  '<a href="http://www.google.com/calendar/embed?src=webmaster%40ebcmelbourne.org">' + 
				  '<b>:: Go to Calendar ::</b></a> </td></tr></table><br>';	*/
	setHTML("gcalajax", outputHTML);
	setHTML("status", "");
	}
	else {setHTML("status", "No future events.");}
}

/*
* Time Format - Month
*/
function getMonthName(dateObject) {
    var m_names = new Array("January", "February", "March", 
    "April", "May", "June", "July", "August", "September", 
    "October", "November", "December");
    return(m_names[dateObject.getUTCMonth()]);
}

/*
* Time Format - Hour
*/
function getTimeFormatted(dateObject) {
    var hours = dateObject.getUTCHours();
    var minutes = dateObject.getUTCMinutes();
    var formattedTime = null;
    if (is24Hour) {
        if (minutes < 10){minutes = "0" + minutes;}
        formattedTime = hours + ':' + minutes;
        return (formattedTime);
    }
    else {
        var ampm = "AM";
        if (hours > 12){
            hours = hours - 12;
            ampm = "PM";}
        if (hours == 12){ampm = 'PM';}
        if (hours == 0) {hours = 12;}
        if (minutes < 10){minutes = "0" + minutes;}
        formattedTime = hours + ':' + minutes + ' ' + ampm;
		return (formattedTime);
    }
}

function setHTML(div, data)
{
	document.write(data);
}   
