/**
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("");
}
function jsonhandler(response) {
var feed = response.feed;
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 += '- ' + getMonthName(itemTime)+ ' ' + itemTime.getUTCDate() + '
';
outputHTML += '- ';
if (!isAllDay) outputHTML += getTimeFormatted(itemTime) + ' - ';
//And here as well, I added the location and description to the list item.
outputHTML += ' ' + itemTitle + '
';
itemTimePrev.setTime(itemTime); //Save the last timestamp for next iteration comparison
}
outputHTML += "
";
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);
}