
var eventFormat=0;var newsFormat=1;var jobPostFormat=2;var theFormats=[eventFormat,newsFormat,jobPostFormat];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;var originalDateEpoch;var gmtDateEpoch;var ld;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])));}
originalDateEpoch=Date.UTC(year,month-1,dateMonth,hours,mins);gmtDateEpoch=originalDateEpoch+correctionMinutes*1000*60;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 listEventsEx(root,sDivId,eFmt){function sortByEventDateEx(a,b){var y=a.StartTime;var x=b.StartTime;return((x<y)?-1:((x>y)?1:0));}
var ne_events=[];function AnEvent(title,content,startTime,endTime,where){this.Title=title;this.Content=content;this.StartTime=startTime;this.EndTime=endTime;this.Where=where;}
var feed=root.feed;try{var fLen=feed.entry.length;}
catch(e){document.getElementById(sDivId).innerHTML="Reminders are updated daily."
return(-1);}
var entries=feed.entry||[];var html=[];var entry;for(var j=0;j<fLen;++j){entry=feed.entry[j];ne_events.push(new AnEvent(entry.title.$t,entry.content.$t,entry.gd$when[0].startTime,entry.gd$when[0].endTime,entry.gd$where[0].valueString));}
var title;var content;var start;var end;var sTime;var sDate;var where;switch(eFmt){case eventFormat:for(var i=0;i<fLen;++i){title=ne_events[i].Title;content=ne_events[i].Content;start=formatGCalTime(ne_events[i].StartTime);end=formatGCalTime(ne_events[i].EndTime);var strStartDate=formatDate(start.date);var strEndDate=formatDate(end.date);if(strStartDate===strEndDate){sTime=formatTime(start.date)+" to "+formatTime(end.date);sDate=formatDate(start.date);var strWhen=sDate+" - "+sTime;}
else
{var sStart=strStartDate+" @ "+formatTime(start.date);var sEnd=strEndDate+" @ "+formatTime(end.date);var strWhen=sStart+" to "+sEnd;}
where=ne_events[i].Where;html.push("<span class='feed_item'>");html.push("<h3>",title,"<\/h3>");html.push("<h5>When: <b>",strWhen,"<\/b><\/h5>");html.push("<h5>Where: <b>",where,"<\/b><\/h5>");html.push("<p class='feedp'>",content,"<\/p>");html.push("<\/span>");}
break;case newsFormat:for(var i=0;i<fLen;++i){title=ne_events[i].Title;content=ne_events[i].Content;end=ne_events[i].EndTime;start=formatGCalTime(ne_events[i].StartTime);end=formatGCalTime(ne_events[i].EndTime);sTime=formatTime(start.date)+" to "+formatTime(end.date);sDate=formatDate(start.date);where=ne_events[i].Where;sEndDate=formatDate(end.date);html.push("<span class='feed_item'>");html.push("<h5 class='gcalh5'>",sEndDate,"<\/h5>");html.push("<h4 class='gcalh4'>",title,"<\/h4>");html.push("<p class='gcalp'> <b>",where," &ndash; <\/b>",content,"<\/p>");html.push("<\/span>");}
break;case jobPostFormat:for(var i=0;i<fLen;++i){title=ne_events[i].Title;content=ne_events[i].Content;start=formatGCalTime(ne_events[i].StartTime);end=formatGCalTime(ne_events[i].EndTime);var strStartDate=formatDate(start.date);var strEndDate=formatDate(end.date);if(strStartDate===strEndDate){sTime=formatTime(start.date)+" to "+formatTime(end.date);sDate=formatDate(start.date);var strWhen=sDate+" - "+sTime;}
else
{var sStart=strStartDate+" @ "+formatTime(start.date);var sEnd=strEndDate+" @ "+formatTime(end.date);var strWhen=sStart+" to "+sEnd;}
where=ne_events[i].Where;html.push("<div class='feed_item' style='height:1%;border:1px solid #bbb;border-left:1px solid #ddd;border-top:1px solid #ddd;padding:10px;margin-bottom:15px'>");html.push("<h2 class='graybg_header'>",title,"<\/h2>");html.push("<b>Date Posted:<\/b> ",strStartDate,"<br \/>");html.push("<b>Job Location:<\/b> ",where,"<br \/><br \/>");html.push("<p class='feedp'>",content,"<\/p>");html.push("<\/div>");}
break;default:;}
document.getElementById(sDivId).innerHTML=html.join("");}
function fnPpxShowGoogleCalendarEx(sGuiDivId,eFormat){var strGuiDivId=sGuiDivId;var enuFormat=eFormat;var fnShowCal=function(fdGoogleFeed){listEventsEx(fdGoogleFeed,strGuiDivId,enuFormat);};return fnShowCal;}
function fnDoIt(CBFuncVar,strCBFuncVarName,sGoogleCalendarId){var script=document.createElement('script');var sFeed="http://www.google.com/calendar/feeds/"+sGoogleCalendarId+"/public/full?alt=json-in-script&callback="+strCBFuncVarName;script.setAttribute('src',sFeed);script.setAttribute('id',sGoogleCalendarId);script.setAttribute('type','text/javascript');document.documentElement.firstChild.appendChild(script);}
function fnRenderGoogleCal(strCBFuncVarName,sGoogleCalendarId){var curDatePos=dateGetDay(new Date());var headTag=document.getElementsByTagName("head").item(0);var scriptTag=document.createElement("script");var url="http://www.google.com/calendar/feeds/"+sGoogleCalendarId+"/public/full";var params={alt:"json-in-script",orderby:"starttime","max-results":1000,singleevents:true,sortorder:"ascending","start-min":dateToGDataDate(addDays(curDatePos,-31)),"start-max":dateToGDataDate(addDays(curDatePos,90)),callback:strCBFuncVarName};scriptTag.src=url+"?"+$H(params).toQueryString();headTag.appendChild(scriptTag);}