
var theMonths=["January","February","March","April","May","June","July","August","September","October","November","December"];function CalTime(date,isDay){this.date=date;this.isDay=isDay;}
function formatTime(ld){return((ld.getHours()>12)?(ld.getHours()-12):(ld.getHours()==0?12:ld.getHours()))+":"+
((ld.getMinutes()<10)?("0"+ld.getMinutes()):(ld.getMinutes()))+" "+((ld.getHours()>=12)?"PM":"AM");}
function formatDate(ld){return theMonths[ld.getMonth()]+" "+ld.getDate()+", "+ld.getFullYear();}
function formatGCalTime(gCalTime){var re=/^(\d{4})\-?(\d{2})\-?(\d{2})(T(\d{2})\:?(\d{2})\:?(\d{2})(\.\d{3})?(Z$|([\+\-])(\d{2})\:?(\d{2})))?/;var dtParsed=re.exec(gCalTime);var year=Number(dtParsed[1]);var month=Number(dtParsed[2]);var dateMonth=Number(dtParsed[3]);var hours=0;var mins=0;var correctionMinutes=0;var dateString;if(typeof dtParsed[4]!="undefined"){hours=dtParsed[5];mins=dtParsed[6];if(dtParsed[9]!="Z"){correctionMinutes=(dtParsed[10]=="+"?-1:1)*(Number(dtParsed[11])*60+
(typeof dtParsed[12]=="undefined"?0:Number(dtParsed[12])));}
var originalDateEpoch=Date.UTC(year,month-1,dateMonth,hours,mins);var gmtDateEpoch=originalDateEpoch+correctionMinutes*1000*60;var ld=new Date(gmtDateEpoch);return new CalTime(ld,false);}else{return new CalTime(new Date(year,month-1,dateMonth),true);}
return dateString;}
function gdWhen(e){return e['gd$when'][0];}
function dateGetDay(d){return new Date(d.getFullYear(),d.getMonth(),d.getDate());}
function getEventDays(entries){var dates=entries.collect(function(entry){var start=formatGCalTime(gdWhen(entry).startTime).date;return dateGetDay(start).getTime();}).flatten().uniq().sort();return dates.collect(function(d){var myentries=entries.findAll(function(entry){var event_date=formatGCalTime(gdWhen(entry).startTime).date;return dateGetDay(event_date).getTime()==d;});return{date:new Date(d),entries:myentries};});}
function padLeft(s,f,n){s=s.toString();while(s.length<n)
s=f+s;return s;}
function dateToGDataDate(d){return d.getFullYear()+"-"+padLeft((d.getMonth()+1),"0",2)+"-"+padLeft(d.getDate(),"0",2)+"T00:00:00";}
function addDays(d,n){return new Date(d.getTime()+n*1000*60*60*24);}
function nextWeek(){curDatePos=addDays(curDatePos,7);updateCal();}
function prevWeek(){curDatePos=addDays(curDatePos,-7);updateCal();}