<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- ~~~~~~~~~~~~~~~~~~EVENT CALENDAR CODE -DS2009~~~~~~~~~~~~~~~~~~~~ -->
<!-- ~~~~~extenssion/enhancement of google calendar api code~~~~~~~~~~ -->
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->



var beg;
//Given a date, returns a new date object that contains the start of the week
function startOfWeek(d){
    beg = new Date(d);
    beg.setDate(beg.getDate() - beg.getDay());
    beg.setHours(0);
    beg.setMinutes(0);
    beg.setSeconds(0);
    return beg;
}

//Given a date, returns a new date object that contains the end of the week
function endOfWeek(d){
    var end = startOfWeek(d);
    end.setDate(beg.getDate() + 7);
    return end;
}
function trimNumber(s) {
  		while (s.substr(0,1) == '0' && s.length>1) { s = s.substr(1,9999); }
  		return s;
	}
function leadingZero(n){
    if (n<10){
		n = "0" + n;
	}
    return n;
}

//takes a Date d and returns a formatted string given the week
function loadWeek(d){
    var m_names = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
    //finds the beginning date and end date of the week
    var beg = startOfWeek(d);
    var end = endOfWeek(d);
	
	//build the string
	var beginDate = leadingZero(beg.getDate());
	
    var beginMonth = leadingZero(beg.getMonth()+1);
	
	var endDate = leadingZero(end.getDate());
	
	var endMonth = leadingZero(end.getMonth()+1);
	
	
       var  str =  beg.getFullYear() + "-" + beginMonth  + "-" + beginDate;
   
        str += "/";
  
  	str += end.getFullYear() + "-" + endMonth + "-" + endDate;
    // str holds the date
    return str;
}



var today =  new Date();
var thisWeek = loadWeek( today );
	
	var daysArray = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
	var monthArray = ["January","February","March","April","May","June","July","August","September","October","November","December"];
	

		google.load("gdata", "1");
		google.setOnLoadCallback(getMyFeed);
		
	
		var myService;
		
	
	var weekBegEndArray = thisWeek.split("/");
	
	
	var weekBeg = weekBegEndArray[0];
	var weekEnd = weekBegEndArray[1];
	
var feedUrl = "http://www.google.com/calendar/feeds/champs.boston@gmail.com/public/full?orderby=starttime&start-min=" + weekBeg+"T00:00:00&start-max="+weekEnd+"T24:59:00";
function setupMyService() {
  myService = new google.gdata.calendar.CalendarService('GoogleInc-jsguide-1.0');
}

function getMyFeed() {
  setupMyService();
 
  myService.getEventsFeed(feedUrl, handleMyFeed, handleError);
}
function sortableByDate(index,date){
		var dateAndIndex  = date + "~"+ index;
		return dateAndIndex
	}


function handleMyFeed(myResultsFeedRoot) {
  // Obtain the array of CalendarEventEntry
  var entries = myResultsFeedRoot.feed.entry;    
  entries.sort();
  // Print the total number of events
  //alert('Total of ' + entries.length + ' event(s)');
var eventsHTML = "This Week";
var previousDate = ""
var militaryT = 0;
var eventDateTime = new Array();
	if(document.all){
		for (var i = 0; i<entries.length; i++) {
		var eventEntry = entries[i];
		var eventDate = eventEntry.getTimes()[0].startTime.split("T");
	

	//for (var i = entries.length; i >0; i-- ) {
	var eventEntry = entries[i];
	//var eventEntry = entries[tempArray[1]];
	var eventTitle = eventEntry.getTitle().getText();
	//var eventDesc = eventEntry.getDescription().getText();
	
	
	var eventDate = eventEntry.getTimes()[0].startTime.split("T");

	
	
	var eventT = eventDate[1].split(":");
	if (eventT[0]>12){
		eventT[0]= eventT[0]-12;
		if (eventT[0] < 12){
			var cleanTime = eventT[0] + ":" + eventT[1] + " p.m.";
		}
		else{
			var cleanTime = eventT[0] + ":" + eventT[1] + " a.m.";
		}
	}
	else{
		eventT[0] = trimNumber(eventT[0]);
		if (eventT[0]<12){
			var cleanTime = eventT[0] + ":" + eventT[1] + " a.m.";
		}
		else{
			var cleanTime = eventT[0] + ":" + eventT[1] + " p.m.";
		}
	}
	
	var eDate = eventDate[0].split("-");
	var cleanDate =  trimNumber(eDate[1]) + "/" + trimNumber(eDate[2]) + "/" + eDate[0];
	var dDate = new Date(cleanDate);
	var dDay = daysArray[dDate.getUTCDay()];
	var dMonth = monthArray[dDate.getUTCMonth()];
	var dayNumb = eDate[2];
	var imgStr = "";
	var locations = (eventEntry.getLocations()[0].valueString).toLowerCase();
	switch(locations){
		case 'baseball':
			imgStr = "<img src='../assets/images/baseball.gif' vspace='0' hspace='2'> ";
		break
		case 'football':
			imgStr = "<img src='../assets/images/football.gif' vspace='0' hspace='2'> ";
		break
		case 'basketball':
			imgStr = "<img src='../assets/images/basketball.gif' vspace='0' hspace='2'> ";
		break
		case 'hockey':
			imgStr = "<img src='../assets/images/hockey.gif' vspace='0' hspace='2'> ";
		break
		case 'soccer':
			imgStr = "<img src='../assets/images/soccer.gif' vspace='0' hspace='2'> ";
		break
		case 'golf':
			imgStr = "<img src='../assets/images/golf.png' vspace='0' hspace='2'> ";
		break
		default:
			imgStr = "<img src='assets/images/b.png' vspace='0' hspace='2'> ";
		break
	}
	
	
	if (cleanDate != previousDate){
		eventsHTML =  eventsHTML + "<p class='caldate'>" + dDay+" <span class='dateColor'>"+cleanDate+ "</span></p>";
	}
	 eventsHTML =  eventsHTML + "<div class='calevent'><div align='left' style='float:left;'>" + imgStr + eventTitle  + "</div><div style='color:#999999;' align='right' style='padding-top:1px;'>"+ cleanTime + "</div></div>";
   previousDate = cleanDate;
  
   
  }  
	}
	else{
	for (var i = entries.length-1; i>=0; i--) {
		var eventEntry = entries[i];
		var eventDate = eventEntry.getTimes()[0].startTime.split("T");
	

	//for (var i = entries.length; i >0; i-- ) {
	var eventEntry = entries[i];
	//var eventEntry = entries[tempArray[1]];
	var eventTitle = eventEntry.getTitle().getText();
	//var eventDesc = eventEntry.getDescription().getText();
	
	
	var eventDate = eventEntry.getTimes()[0].startTime.split("T");

	
	
	var eventT = eventDate[1].split(":");
	if (eventT[0]>12){
		eventT[0]= eventT[0]-12;
		if (eventT[0] < 12){
			var cleanTime = eventT[0] + ":" + eventT[1] + " p.m.";
		}
		else{
			var cleanTime = eventT[0] + ":" + eventT[1] + " a.m.";
		}
	}
	else{
		eventT[0] = trimNumber(eventT[0]);
		if (eventT[0]<12){
			var cleanTime = eventT[0] + ":" + eventT[1] + " a.m.";
		}
		else{
			var cleanTime = eventT[0] + ":" + eventT[1] + " p.m.";
		}
	}
	
	var eDate = eventDate[0].split("-");
	var cleanDate =  trimNumber(eDate[1]) + "/" + trimNumber(eDate[2]) + "/" + eDate[0];
	var dDate = new Date(cleanDate);
	var dDay = daysArray[dDate.getUTCDay()];
	var dMonth = monthArray[dDate.getUTCMonth()];
	var dayNumb = eDate[2];
	var imgStr = "";
	var locations = (eventEntry.getLocations()[0].valueString).toLowerCase();
	switch(locations){
		case 'baseball':
			imgStr = "<img src='../assets/images/baseball.gif' vspace='0' hspace='2'> ";
		break
		case 'football':
			imgStr = "<img src='../assets/images/football.gif' vspace='0' hspace='2'> ";
		break
		case 'basketball':
			imgStr = "<img src='../assets/images/basketball.gif' vspace='0' hspace='2'> ";
		break
		case 'hockey':
			imgStr = "<img src='../assets/images/hockey.gif' vspace='0' hspace='2'> ";
		break
		case 'soccer':
			imgStr = "<img src='../assets/images/soccer.gif' vspace='0' hspace='2'> ";
		break
		case 'golf':
			imgStr = "<img src='../assets/images/golf.png' vspace='0' hspace='2'> ";
		break
		default:
			imgStr = "<img src='assets/images/b.png' vspace='0' hspace='2'> ";
		break
	}
	
	
	if (cleanDate != previousDate){
		eventsHTML =  eventsHTML + "<p class='caldate'>" + dDay+" <span class='dateColor'>"+cleanDate+ "</span></p>";
	}
	 eventsHTML =  eventsHTML + "<div class='calevent'><div align='left' style='float:left;'>" + imgStr + eventTitle  + "</div><div style='color:#999999;' align='right' style='padding-top:1px;'>"+ cleanTime + "</div></div>";
   previousDate = cleanDate;
  
   
  }   
  
  }

  document.getElementById('scroll').innerHTML =  "<div id='eventDetails'>" + eventsHTML +"</div>";
   //document.getElementById('scroll').offsetHeight =  document.getElementById('eventDetails').offsetHeight;
	ScrollLoad ("scrollholder", "scroll", true);
}

function handleError(e) {
  alert("There was an error!");
  alert(e.cause ? e.cause.statusText : e.message);
}
