﻿/*
**
*** Google Calendar Events
**
*/

function initialize() {
	var feed = new google.feeds.Feed("http://www.google.com/calendar/feeds/eohighschool@gmail.com/public/full?orderby=starttime&sortorder=ascending&ctz=America/Phoenix&futureevents=true&max-results=5");
	feed.setResultFormat(google.feeds.Feed.XML_FORMAT);
	// Default value displays only four feed entries
	feed.setNumEntries(5);
	feed.load(function(result) {
		var container = document.getElementById("feed");
		if (!result.error) {
			var whenstring = '';
			var entries = google.feeds.getElementsByTagNameNS(result.xmlDocument, "http://www.w3.org/2005/Atom", "entry");
			var ul = document.createElement("ul");
			for (var i = 0; i < entries.length; i++) {
				var titleElement = google.feeds.getElementsByTagNameNS(entries[i], "http://www.w3.org/2005/Atom", "title")[0];
				var title = titleElement.firstChild.nodeValue;
				var mylinkElement = google.feeds.getElementsByTagNameNS(entries[i], "http://www.w3.org/2005/Atom", "link")[0];
				var mylink = "calendar.html";//mylinkElement.getAttribute('href');
				// change the link for adding the calendar to make it so that it adds to the user's ASU domain calendar
				var newlink = mylink;//.replace("calendar/event", "calendar/event");
				var whenElement = google.feeds.getElementsByTagNameNS(entries[i], "http://schemas.google.com/g/2005", "when")[0];
				var starttime = whenElement.getAttribute('startTime');
				var endtime = whenElement.getAttribute('endTime');
				var startdate = new Date();
				startdate.setISO8601(starttime);
				var enddate = new Date();
				enddate.setISO8601(starttime);
				var startstring = (startdate.getMonth() + 1) + '/' + (startdate.getDate() + 1) + '/' + startdate.getFullYear();
				var endstring = (enddate.getMonth() + 1) + '/' + (enddate.getDate() + 1) + '/' + enddate.getFullYear();
				if (startstring == endstring) {
					whenstring = startstring;
				} else {
					whenstring = 'starting: ' + startstring + ' ' + 'ending: ' + endstring;
				}
				//embed the event date in a span element with class="when"
				var spanwhen = document.createElement("span");
				spanwhen.setAttribute("class", "when");
				spanwhen.appendChild(document.createTextNode(whenstring));
				//each feed entry is embedded in an HTML li element
				var li = document.createElement("li");
				var a = document.createElement("a");
				a.setAttribute("href", newlink);
				a.appendChild(document.createTextNode(title + ' '));
				var br = document.createElement("br");
				
				li.appendChild(a);
				//li.appendChild(br);
				//li.appendChild(spanwhen);
				ul.appendChild(li);
			}
			container.appendChild(ul);
		}
	});
}

Date.prototype.setISO8601 = function(dString){
	var regexp = /(\d\d\d\d)(-)?(\d\d)(-)?(\d\d)(T)?(\d\d)(:)?(\d\d)(:)?(\d\d)(\.\d+)?(Z|([+-])(\d\d)(:)?(\d\d))/;
	if (dString.toString().match(new RegExp(regexp))) {
		var d = dString.match(new RegExp(regexp));
		var offset = 0;
		this.setUTCDate(1);
		this.setUTCFullYear(parseInt(d[1],10));
		this.setUTCMonth(parseInt(d[3],10) - 1);
		this.setUTCDate(parseInt(d[5],10));
		this.setUTCHours(parseInt(d[7],10));
		this.setUTCMinutes(parseInt(d[9],10));
		this.setUTCSeconds(parseInt(d[11],10));
		if (d[12])
			this.setUTCMilliseconds(parseFloat(d[12]) * 1000);
		else
			this.setUTCMilliseconds(0);
		if (d[13] != 'Z') {
			offset = (d[15] * 60) + parseInt(d[17],10);
			offset *= ((d[14] == '-') ? -1 : 1);
			this.setTime(this.getTime() - offset * 60 * 1000);
		}
	}
	else {
		this.setTime(Date.parse(dString));
	}
	return this;
};


