function pullFromAdEdCalendar(filter, lim)
{
today = new Date();
m = (1 + today.getMonth()).toString();
if (m.length == 1)
m = "0"+m;
d = today.getDate().toString();
y = today.getFullYear().toString();
tz = today.getTimezoneOffset();
jan = new Date(today.getFullYear(), 0, 1).getTimezoneOffset();
jul = new Date(today.getFullYear(), 6, 1).getTimezoneOffset();
if(Math.max(jan, jul) != tz)
tz += 60;
tz_save = tz;
if(tz%60 == 0)
{
tz = tz/60;
if(tz > 0 && tz < 10)
tzString = '-0'+tz+':00';
if(tz > 0 && tz > 9)
tzString = '-'+tz+':00';
if(tz < 0 && tz > -10)
tzString = '+0'+tz+':00';
if(tz < 0 && tz < -9)
tzString = '+'+tz+':00';
}
else
tzString = 'Z'
if(typeof filter == "undefined" || (typeof filter != "string"))
filter = "all"
filter = filter.trim().toLowerCase();
if(filter === "")
filter = "all";
if(typeof lim == "undefined" || (typeof lim != "number"))
lim = 10;
counter = 0;
url = 'https://www.googleapis.com/calendar/v3/calendars/temple-etzchaim.org_f080sbgj4ef9opqd84a4sbrg1o@group.calendar.google.com/events';
url += '?key=AIzaSyBYLr8AcutfgdiPOc24PyugzAwzBUjQ8a0&singleEvents=True&orderBy=startTime';
url += '&timeMin='+y+'-'+m+'-'+d+'T00:00:00.000'+tzString;
var months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
jQuery.getJSON(url, function(data) {
jQuery.each(data.items, function( index, val ) {
if(filter === "all")
{
counter++;
arr = getCalendarOutput(val, months, tz_save, tzString, filter);
jQuery('#myGCal').append(arr[0] + ' - ' + arr[1] + '
' + arr[2] + '
');
}
else if(val.summary.toLowerCase().indexOf(filter) > -1)
{
counter++
arr = getCalendarOutput(val, months, tz_save, tzString, filter);
jQuery('#myGCal').append(arr[0] + ' - ' + arr[1] + '
' + arr[2] + '
');
}
if(counter >= lim)
return false;
});
if (typeof arr == "undefined")
jQuery('#myGCal').append('No scheduled events
');
});
}
function getCalendarOutput(val, months, tz_save, tzString, filter) {
epoch = 0;
retDate = new Date(val.start.dateTime);
eventM = months[retDate.getMonth()];
// all day events are returned as a string with no timezone info
// convert to epoch, add timezone offset from above and convert back
if(eventM === undefined)
{
tz_millisecs = tz_save*60000;
arr = (val.start.date).split("-");
epoch = Date.UTC(arr[0],(arr[1]-1),arr[2]);
retDate = new Date(epoch+tz_millisecs);
eventM = months[retDate.getMonth()];
}
eventD = retDate.getDate();
eventDate = eventM + ' ' + eventD;
eventH = retDate.getHours();
if(epoch != 0)
eventTime = "All Day";
else
{
eventToD = "am";
if(eventH > 12)
{
eventH = eventH - 12;
eventToD = "pm";
}
if(eventH == 12)
eventToD = "pm";
eventH = eventH.toString();
eventM = retDate.getMinutes();
if(eventM == 0)
eventM = ":00";
else
eventM = ":"+eventM;
eventTime = eventH + eventM + eventToD;
}
eventDate = eventDate + ', ' + eventTime;
eventLoc = val.location;
if(eventLoc === undefined) // assume at the temple building
eventLoc = "Temple Etz Chaim";
eventLoc = eventLoc.split(",")[0];
return [eventDate,val.summary,eventLoc];
}