/* Created by: John Yee */
// set up variables
var monthsArray = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var daysArray = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var prevYears = 10;	// number of years before current date
var futureYears = 10;	// number of years after current date
var today = new Date();
var nowMonth = today.getMonth();
var nowYear = today.getFullYear();
var curMonth = nowMonth;
var curYear = nowYear;
var monthEvents;
today.setDate(1);	// set to first day of the month

var eventsArray = new Array();
/*
Options for groups:
St. Clair
Superior
Plan Evaluation
Study
PIAG
Public
""(empty quotes for no specific group)
*/
// format: dd,mm,yyyy,"title","event","group","frequency (Annual Holiday/Holiday/Monthly/Weekly)" - Delete frequency for once-time occurrences
eventsArray[0] = new newEvent(25,12,2007,"Christmas Day","Christmas Day","","Annual Holiday");
eventsArray[1] = new newEvent(1,1,2007,"New Year's Day","New Year's Day","","Annual Holiday");
eventsArray[2] = new newEvent(0,0,2108,"Hi","Test","","Monthly");
eventsArray[3] = new newEvent(4,7,2007,"Independence Day","Independence Day","","Annual Holiday");
eventsArray[4] = new newEvent(31,12,2007,"New Year's Eve","New Year's Eve","","Annual Holiday");
eventsArray[5] = new newEvent(14,01,2008,"Lake Superior Task Team Meeting","Lake Superior Task Team Meeting Burlington ON","Superior","");
eventsArray[6] = new newEvent(15,01,2008,"Lake Superior Task Team Meeting","Lake Superior Task Team Meeting Burlington ON","Superior","");
eventsArray[7] = new newEvent(20,02,2008,"St. Clair Task Team Modelling Workshop","St. Clair Task Team Modelling Workshop, Port Huron MI","St. Clair","");
eventsArray[8] = new newEvent(21,02,2008,"St. Clair Task Team Modelling Workshop","St. Clair Task Team Modelling Workshop, Port Huron MI","St. Clair","");
eventsArray[9] = new newEvent(22,02,2008,"St. Clair Task Team Modelling Workshop","St. Clair Task Team Modelling Workshop, Port Huron MI","St. Clair","");
eventsArray[10] = new newEvent(22,01,2008,"Hydroclimatic Workshop & GLOS Meeting","Hydroclimatic Workshop & GLOS Meeting, Windsor ON","Plan Evaluation","");
eventsArray[11] = new newEvent(23,01,2008,"Hydroclimatic Workshop & GLOS Meeting","Hydroclimatic Workshop & GLOS Meeting, Windsor ON","Plan Evaluation","");
eventsArray[12] = new newEvent(15,04,2008,"IJC Spring Semi-Annual","IJC Spring Semi-Annual, Washington DC","");
eventsArray[13] = new newEvent(16,04,2008,"IJC Spring Semi-Annual","IJC Spring Semi-Annual, Washington DC","");
eventsArray[14] = new newEvent(17,04,2008,"IJC Spring Semi-Annual","IJC Spring Semi-Annual, Washington DC","");
eventsArray[15] = new newEvent(18,04,2008,"IJC Spring Semi-Annual","IJC Spring Semi-Annual, Washington DC","");
eventsArray[16] = new newEvent(18,2,2008,"Presidents Day","Presidents Day","","Holiday");
eventsArray[17] = new newEvent(20,4,2008,"Passover","Passover","","Holiday");
eventsArray[18] = new newEvent(21,3,2008,"Good Friday","Good Friday","","Holiday");
eventsArray[19] = new newEvent(23,3,2008,"Easter","Easter","","Holiday");
eventsArray[20] = new newEvent(24,3,2008,"Easter Monday","Easter Monday","","Holiday");
eventsArray[21] = new newEvent(1,9,2008,"Labour Day","Labour Day","","Holiday");
eventsArray[22] = new newEvent(29,9,2008,"Rosh Hashanah","Rosh Hashanah","","Holiday");
eventsArray[23] = new newEvent(30,9,2008,"Rosh Hashanah","Rosh Hashanah","","Holiday");
eventsArray[24] = new newEvent(8,10,2008,"Yom Kippur","Yom Kippur","","Holiday");
eventsArray[25] = new newEvent(9,10,2008,"Yom Kippur","Yom Kippur","","Holiday");
eventsArray[26] = new newEvent(13,10,2008,"Canadian Thanksgiving","Canadian Thanksgiving","","Holiday");
eventsArray[27] = new newEvent(13,10,2008,"Columbus Day","Columbus Day","","Holiday");
eventsArray[28] = new newEvent(27,11,2008,"US Thanksgiving","US Thanksgiving","","Holiday");
eventsArray[29] = new newEvent(21,4,2008,"Passover","Passover","","Holiday");
eventsArray[30] = new newEvent(19,5,2008,"Victoria Day","Victoria Day","","Holiday");
eventsArray[31] = new newEvent(26,5,2008,"Memorial Day","Memorial Day","","Holiday");
eventsArray[32] = new newEvent(28,10,2008,"IJC Fall Semi-Annual","IJC Fall Semi-Annual, Ottawa ON","");
eventsArray[33] = new newEvent(29,10,2008,"IJC Fall Semi-Annual","IJC Fall Semi-Annual, Ottawa ON","");
eventsArray[34] = new newEvent(30,10,2008,"IJC Fall Semi-Annual","IJC Fall Semi-Annual, Ottawa ON","");
eventsArray[35] = new newEvent(31,10,2008,"IJC Fall Semi-Annual","IJC Fall Semi-Annual, Ottawa ON","");
eventsArray[36] = new newEvent(1,7,2008,"Canada Day","Canada Day","","Annual Holiday");
eventsArray[37] = new newEvent(29,01,2008,"IUGLS Board Meeting","IUGLS Board Meeting, Washington DC","Study","");
eventsArray[38] = new newEvent(30,01,2008,"IUGLS Board Meeting","IUGLS Board Meeting, Washington DC","Study","");
eventsArray[39] = new newEvent(31,01,2008,"IUGLS Board Meeting","IUGLS Board Meeting, Washington DC","Study","");
eventsArray[40] = new newEvent(19,02,2008,"IUGLS PIAG Public Meeting","IUGLS PIAG Public Meeting, 7-9pm @ the Gross Pointe War Memorial, 32 Lakeshore Dr. Gross Point Farms MI 48236, Phone: (313)881-7511","Public","");
eventsArray[41] = new newEvent(20,02,2008,"IUGLS PIAG Public Presentation","IUGLS PIAG Public Presentation to the Southeast Michigan Council of Governments SEMCOG, 535 Griswold St. Suite 300, Detroit MI 48226-3602","Public","");
eventsArray[42] = new newEvent(21,02,2008,"IUGLS PIAG and St. Clair Region Conservation Authority joint Public Meeting","IUGLS PIAG and St. Clair Region Conservation Authority joint Public Meeting","Public","");
eventsArray[43] = new newEvent(01,05,2008,"IUGLS Board Meeting","IUGLS Board Meeting, Windsor ON","Study","");
eventsArray[44] = new newEvent(02,05,2008,"IUGLS Board Meeting","IUGLS Board Meeting, Windsor ON","Study","");
eventsArray[45] = new newEvent(23,04,2008,"St. Clair Task Team Meeting","St. Clair Task Team Meeting, London ON","St. Clair","");
eventsArray[46] = new newEvent(24,04,2008,"St. Clair Task Team Meeting","St. Clair Task Team Meeting, London ON","St. Clair","");
eventsArray[47] = new newEvent(11,03,2008,"Study Team Meeting","Study Team Meeting, Washington DC","Study","");
eventsArray[48] = new newEvent(12,03,2008,"Study Team Meeting","Study Team Meeting, Washington DC","Study","");
eventsArray[49] = new newEvent(28,04,2008,"Public Meeting","Public Meeting: 7 pm to 9 pm, City Hall, 301 Washington Ave, Bay City, Michigan","Public","");
eventsArray[50] = new newEvent(29,04,2008,"Public Meeting","Public Meeting: 7 pm to 9 pm, Great Lakes Maritime Center, 51 Water Street, Port Huron, Michigan","Public","");
eventsArray[51] = new newEvent(03,05,2008,"Public Meeting","Public Meeting: 10 am to 12 noon, Lake Michigan Center, Robert B. Annis Water Resources Institute, 740 West Shoreline Drive, Muskegon, Michigan","Public","");
eventsArray[52] = new newEvent(21,05,2008,"Presentation on IUGLS by Dr. James Bruce","Presentation on IUGLS by Dr. James Bruce at the International Association for Great Lakes Research, in Peterborough ON.  For more information visit: www.iaglr.org","Public","");
eventsArray[53] = new newEvent(23,05,2008,"Presentation on IUGLS by Mr. Dick Hibma","Presentation on IUGLS by Mr. Dick Hibma, chair of Conservation Ontario, at the Lake Huron Centre for Coastal Conservation Conference, in Port Elgin ON.  For more information visit: www.lakehuron.on.ca","Public","");
eventsArray[54] = new newEvent(30,04,2008,"PIAG Meeting","PIAG Meeting, Port Huron MI","PIAG","");
eventsArray[55] = new newEvent(28,05,2008,"Technical Exchange Meeting","USGS-EC Technical Exchange Meeting, Reston VA","");
eventsArray[56] = new newEvent(09,06,2008,"Hydrology TWG Workshop","Hydrology and Climate TWG Workshop, Cleveland OH","Plan Evaluation","");
eventsArray[57] = new newEvent(10,06,2008,"Hydrology TWG Workshop","Hydrology and Climate TWG Workshop, Cleveland OH","Plan Evaluation","");
eventsArray[58] = new newEvent(09,08,2008,"Public Meeting","Public Meeting: 9 am to 11 am, Royal Canadian Legion Hall, Vankoughnet St. East, Little Current, ON","Public","");
eventsArray[59] = new newEvent(09,08,2008,"Public Meeting","Public Meeting: 3 pm to 5 pm, Stockey Center, 2 Bay St., Parry Sound, ON ","Public","");
eventsArray[60] = new newEvent(11,08,2008,"Public Meeting","Public Meeting: 7 pm to 9 pm, North Simcoe Sports and Recreation Centre, 527 Len Self Boulevard, Midland, ON","Public","");
eventsArray[61] = new newEvent(12,08,2008,"Public Meeting","Public Meeting: 2 pm to 4 pm, Royal Canadian Legion, 490 Ontario St., Collingwood, ON ","Public","");
eventsArray[62] = new newEvent(12,08,2008,"Public Meeting","Public Meeting: 7 pm to 9 pm, Bayshore Community Center, 1900 3rd Ave E., Owen Sound, ON","Public","");
eventsArray[63] = new newEvent(11,08,2008,"PIAG Meeting","PIAG Meeting, Midland ON, 9am-4pm","PIAG","");
eventsArray[64] = new newEvent(27,08,2008,"Lake Superior Task Team Meeting","Lake Superior Task Team Meeting, Burlington ON","Superior","");
eventsArray[65] = new newEvent(28,08,2008,"Lake Superior Task Team Meeting","Lake Superior Task Team Meeting, Burlington ON","Superior","");
eventsArray[66] = new newEvent(10,09,2008,"St. Clair Task Team Meeting","St. Clair Task Team Meeting, Burlington ON","St. Clair","");
eventsArray[67] = new newEvent(11,09,2008,"St. Clair Task Team Meeting","St. Clair Task Team Meeting, Burlington ON","St. Clair","");
eventsArray[68] = new newEvent(17,09,2008,"IUGLS Board Meeting","IUGLS Board Meeting, Niagara Falls, ON","Study","");
eventsArray[69] = new newEvent(18,09,2008,"IUGLS Board Meeting","IUGLS Board Meeting, Niagara Falls, ON","Study","");
eventsArray[70] = new newEvent(06,08,2008,"Uncertainty Workshop","Uncertainty Workshop, Burlington, ON","");
eventsArray[71] = new newEvent(07,08,2008,"Uncertainty Workshop","Uncertainty Workshop, Burlington, ON","");
eventsArray[72] = new newEvent(14,10,2008,"Coastal TWG Expert Workshop","Coastal TWG Expert Workshop, Port Huron, MI","Superior","");
eventsArray[73] = new newEvent(15,10,2008,"Coastal TWG Expert Workshop","Coastal TWG Expert Workshop, Port Huron, MI","Superior","");
eventsArray[74] = new newEvent(16,10,2008,"Coastal TWG Expert Workshop","Coastal TWG Expert Workshop, Port Huron, MI","Superior","");
eventsArray[75] = new newEvent(15,10,2008,"Hydroclimatic Work Group Meeting","Hydroclimatic Work Group Meeting, Burlington, ON","Plan Evaluation","");
eventsArray[76] = new newEvent(16,10,2008,"Hydroclimatic Work Group Meeting","Hydroclimatic Work Group Meeting, Burlington, ON","Plan Evaluation","");
eventsArray[77] = new newEvent(21,10,2008,"Hydraulic Modelling TWG Meeting","Hydraulic Modelling TWG Meeting, Detroit, MI","St. Clair","");
eventsArray[78] = new newEvent(10,11,2008,"Sediment Studies TWG Meeting","Sediment Studies TWG Meeting, Urbana, IL","St. Clair","");
eventsArray[79] = new newEvent(11,11,2008,"Sediment Studies TWG Meeting","Sediment Studies TWG Meeting, Urbana, IL","St. Clair","");
eventsArray[80] = new newEvent(24,11,2008,"St. Clair Task Team Meeting","St. Clair Task Team Meeting, Windsor, ON","St. Clair","");
eventsArray[81] = new newEvent(25,11,2008,"St. Clair Task Team Meeting","St. Clair Task Team Meeting, Windsor, ON","St. Clair","");
eventsArray[82] = new newEvent(02,12,2008,"Lake Superior Regulation Task Team Meeting","Lake Superior Regulation Task Team Meeting, Burlington, ON","Superior","");
eventsArray[83] = new newEvent(03,12,2008,"Lake Superior Regulation Task Team Meeting","Lake Superior Regulation Task Team Meeting, Burlington, ON","Superior","");
eventsArray[84] = new newEvent(10,12,2008,"IUGLS 9th Board Meeting","IUGLS 9th Board Meeting, Windsor, ON","Study","");
eventsArray[85] = new newEvent(11,12,2008,"IUGLS 9th Board Meeting","IUGLS 9th Board Meeting, Windsor, ON","Study","");
eventsArray[86] = new newEvent(12,12,2008,"IUGLS 9th Board Meeting","IUGLS 9th Board Meeting, Windsor, ON","Study","");
eventsArray[87] = new newEvent(22,01,2009,"Hydroclimatic Work Group Progress Meeting","Hydroclimatic Work Group Progress Meeting, Chicago, IL","Plan Evaluation","");
eventsArray[88] = new newEvent(03,02,2009,"St. Clair Task Team Meeting","7th St. Clair Task Team Meeting, Port Huron, MI","St. Clair","");
eventsArray[89] = new newEvent(04,02,2009,"St. Clair Task Team Meeting","7th St. Clair Task Team Meeting, Port Huron, MI","St. Clair","");
eventsArray[90] = new newEvent(09,02,2009,"Lake Superior Task Team Meeting","5th Lake Superior Task Team Meeting, Burlington ON","Superior","");
eventsArray[91] = new newEvent(10,02,2009,"Lake Superior Task Team Meeting","5th Lake Superior Task Team Meeting, Burlington ON","Superior","");
eventsArray[92] = new newEvent(24,02,2009,"IUGLS Board Meeting","10th IUGLS Board Meeting, Location TBA","Study","");
eventsArray[93] = new newEvent(25,02,2009,"IUGLS Board Meeting","10th IUGLS Board Meeting, Location TBA","Study","");
eventsArray[94] = new newEvent(26,02,2009,"IUGLS Board Meeting","10th IUGLS Board Meeting, Location TBA","Study","");
eventsArray[95] = new newEvent(31,03,2009,"IJC Spring Semi-Annual","IJC Spring Semi-Annual, Washington DC","","");
eventsArray[96] = new newEvent(01,04,2009,"IJC Spring Semi-Annual","IJC Spring Semi-Annual, Washington DC","","");
eventsArray[97] = new newEvent(02,04,2009,"IJC Spring Semi-Annual","IJC Spring Semi-Annual, Washington DC","","");
eventsArray[98] = new newEvent(03,04,2009,"IJC Spring Semi-Annual","IJC Spring Semi-Annual, Washington DC","","");
eventsArray[99] = new newEvent(05,05,2009,"GL Coordinating Committee Meeting","GL Coordinating Committee Meeting, Ottawa, ON","","");
eventsArray[100] = new newEvent(06,05,2009,"GL Coordinating Committee Meeting","GL Coordinating Committee Meeting, Ottawa, ON","","");
eventsArray[101] = new newEvent(02,02,2010,"Hydoclimate/Adaptive Management Workshop","Hydoclimate/Adaptive Management Workshop, Toronto, ON","","");
eventsArray[102] = new newEvent(03,02,2010,"Hydoclimate/Adaptive Management Workshop","Hydoclimate/Adaptive Management Workshop, Toronto, ON","","");
eventsArray[103] = new newEvent(04,02,2010,"Hydoclimate/Adaptive Management Workshop","Hydoclimate/Adaptive Management Workshop, Toronto, ON","","");
eventsArray[104] = new newEvent(16,02,2010,"Lake Superior Task Team Meeting","Lake Superior Task Team Meeting, Burlington, ON","","");
eventsArray[105] = new newEvent(17,02,2010,"Lake Superior Task Team Meeting","Lake Superior Task Team Meeting, Burlington, ON","","");
eventsArray[106] = new newEvent(02,03,2010,"IUGLS Board Meeting","IUGLS Board Meeting, Windsor, ON","","");
eventsArray[107] = new newEvent(03,03,2010,"IUGLS Board Meeting","IUGLS Board Meeting, Windsor, ON","","");
eventsArray[108] = new newEvent(04,03,2010,"IUGLS PIAG Meeting","IUGLS PIAG Meeting, Windsor, ON","","");
eventsArray[109] = new newEvent(20,04,2010,"IJC Spring Semi-Annual Meeting","IJC Spring Semi-Annual Meeting, Washington DC","","");
eventsArray[110] = new newEvent(21,04,2010,"IJC Spring Semi-Annual Meeting","IJC Spring Semi-Annual Meeting, Washington DC","","");
eventsArray[111] = new newEvent(22,04,2010,"IJC Spring Semi-Annual Meeting","IJC Spring Semi-Annual Meeting, Washington DC","","");
eventsArray[112] = new newEvent(23,04,2010,"IJC Spring Semi-Annual Meeting","IJC Spring Semi-Annual Meeting, Washington DC","","");
eventsArray[113] = new newEvent(02,02,2010,"Adaptive Management Group Meeting","Adaptive Management Group Meeting, Toronto, ON","","");
eventsArray[114] = new newEvent(29,03,2010,"Plan Formulation Meeting","Plan Formulation Meeting, Burlington, ON","","");
eventsArray[115] = new newEvent(30,03,2010,"Plan Formulation Meeting","Plan Formulation Meeting, Burlington, ON","","");



// create event object
function newEvent(day, month, year, title, memo, group, occurrence) {
	this.day = day;
	this.month = month;
	this.year = year;
	this.title = title;
	this.memo = memo;
	this.occurrence = occurrence;
	this.createMonth = createMonth;
	this.group = group;
}

// creates calendar for the current month
function createMonth() {
	var startDay = today.getDay();	// first day of the month
	var monLength = monthLength();	// number of days in month
	var lastDay = startDay+monLength-1;	// last day of the month
	monthEvents = new Array();	// array to hold events for current month

	// search through events for current month
	for(i=0;i<eventsArray.length;i++) {
		if(eventsArray[i].month == (curMonth+1) && (eventsArray[i].year == curYear || eventsArray[i].occurrence == "Annual" || eventsArray[i].occurrence == "Annual Holiday")) {
			monthEvents[monthEvents.length] = i;
		}
		else if(eventsArray[i].occurrence == "Monthly" || eventsArray[i].occurrence == "Weekly") {
			monthEvents[monthEvents.length] = i;
		}
	}
	
	/////////////////////////inserting code that counts events per day and puts them in nested arrays//////////////////////////////////////////
	
	//create array for events
	var Events = new Array(4);
	Events[0] = new Array(); //nested array for day of month
	Events[1] = new Array(); //nested array for event title
	Events[2] = new Array(); //nested array for event description (memo)
	Events[3] = new Array(); //nested array for holding the group name for colour coding
	//ensure that you only store the events for that particular month
	var counter = 0;
	for(i=0;i<eventsArray.length;i++){	
		if(eventsArray[i].month == curMonth+1){ //curMonth + 1 due to the cur month being one month behind for some reason
		//ensure that you only store the events for that particular year, or if the events are annual or a holiday
			if(eventsArray[i].year == curYear || eventsArray[i].occurrence == "Annual" || eventsArray[i].occurrence == "Annual Holiday"){
				var temp = counter;
				Events[0][counter] = eventsArray[i].day;
				Events[1][counter] = eventsArray[i].title;
				Events[2][counter] = eventsArray[i].memo;
				Events[3][counter] = eventsArray[i].group;			
				counter++;
			}
		}
		//store the events from month to month
		else if(eventsArray[i].occurrence == "Monthly"){
				var temp = counter;
				Events[0][counter] = eventsArray[i].day;
				Events[1][counter] = eventsArray[i].title;
				Events[2][counter] = eventsArray[i].memo;
				Events[3][counter] = eventsArray[i].group;			
				counter++;

		}
	}
	
	
	/////////////////////////DONE inserting code that counts events per day and puts them in nested arrays/////////////////////////////////////	

	var content = "<table class=\"calendar\" cellspacing=\"0\">\n";
	// create headers
	content += "<tr>\n<th><a class=\"button\" href=\"javascript:void(prev())\">prev</a></th>\n";
	content += "<th colspan=\"5\">" + monthsArray[curMonth] + " " + curYear + "</th>\n";
	content += "<th><a class=\"button\" href=\"javascript:void(next())\">next</a></th>\n</tr><tr>\n";
	for(i=0;i<7;i++) {
		content += "<th>" + daysArray[i] + "</th>\n";
	}
	content += "</tr>\n<tr>\n";

	// create main content of calendar
	for(i=0;i<42;i++) {
		//this is going through each day in teh calendar
		var occ = "";
		var curDay = i+1-startDay;
		
		for(j=0;j<monthEvents.length;j++) {
				var occDate = new Date();
				occDate.setDate(eventsArray[monthEvents[j]].day);
				occDate.setMonth(eventsArray[monthEvents[j]].month);
				occDate.setFullYear(eventsArray[monthEvents[j]].year);

				if(curDay == eventsArray[monthEvents[j]].day && (eventsArray[monthEvents[j]].occurrence == "Annual Holiday" || eventsArray[monthEvents[j]].occurrence == "Holiday")) {	// deal with day, monthly and annual events
					occ = " class=\"holiday\"";
				}

				else if(curDay == eventsArray[monthEvents[j]].day && eventsArray[monthEvents[j]].occurrence != "Weekly") {	// deal with day, monthly and annual events
					occ = " class=\"occassion\"";
				}
				else if(occDate.getDate() == (i%7) && eventsArray[monthEvents[j]].occurrence == "Weekly") {	// deal with weekly events
					occ = " class=\"occassion\"";
				}
		}		

		if(i>lastDay && i==35) {	// do not show last row if not needed
			break;
		}
		 if(i<startDay || i>lastDay) {	// show blank cells before and after month
			content += "<td class=\"blank\"> </td>\n";
		}
		else {
			if(!(i%7) || !((i+1)%7) ) {	// get days of the weekend
				if(!(i%7)&& i>0) {
					content += "</tr>\n<tr>\n";
				}				
				content += "<td" + occ + "><span class=\"weekend\">"+curDay+"</span><br />"
				var colour = "";
				for(x=0;x<counter;x++){
					if(Events[0][x] == curDay){
						switch(Events[3][x]){
							case "St. Clair":
								colour = "stclair";
								break;
							case "Superior":
								colour = "superior";
								break;
							case "Plan Evaluation":
								colour = "planEval";
								break;
							case "Study":
								colour = "study";
								break;
							case "PIAG":
								colour = "piag";
								break;
							case "Public":
								colour = "public";
								break;
							default:
								colour = "norm";
						}
						
					
						content += "<span class="+colour+">";

						//check to see if the day stored matches the curday and chooses whether or not to display.
						content += "<a href=\"javascript:void(alert('"+Events[2][x]+"'));s\">"+Events[1][x]+"</a><br /><br />"
						content += "</span>";
					}

				}
				content += "</td>\n";
			}
			else {
				content += "<td" + occ + ">"+curDay+"<br />";
				
				for(x=0;x<counter;x++){
					if(Events[0][x] == curDay){
						switch(Events[3][x]){
							case "St. Clair":
								colour = "stclair";
								break;
							case "Superior":
								colour = "superior";
								break;
							case "Plan Evaluation":
								colour = "planEval";
								break;
							case "Study":
								colour = "study";
								break;
							case "PIAG":
								colour = "piag";
								break;
							case "Public":
								colour = "public";
								break;
							default:
								colour = "norm";
						}
						
					
						content += "<span class="+colour+">";

						//check to see if the day stored matches the curday and chooses whether or not to display.
						content += "<a href=\"javascript:void(alert('"+Events[2][x]+"'));s\">"+Events[1][x]+"</a><br /><br />"
						content += "</span>";
					}

				}

				content += "</td>\n";
			}
		}
	}
	//end of for loop
	content += "</tr></table>\n";

	return content;
}

// get length of month
function monthLength() {
	monLength = 31;
	if(curMonth == 3 || curMonth == 5 || curMonth == 8 || curMonth == 10) monLength = 30;
	if(curMonth == 1) {
		if(curYear%4) {
			monLength = 28;
		}
		else {
			monLength = 29;
		}
	}
	return monLength;
}

function droplists() {
	content = "<form name=\"calNav\" method=\"post\" action=\"\">\n";
	content += "<select name=\"month\">\n";
	for(i=0;i<12;i++) {
		content += "<option value=\""+i +"\"";
		if(i == curMonth) {
			content += " selected=\"selected\"";
		}
		content += ">" + monthsArray[i] + "</option>\n";
	}
	content += "</select> <select name=\"year\">\n";
	for(i=(nowYear-prevYears);i<=(nowYear+futureYears);i++) {
		content += "<option value=\""+i +"\"";
		if(i == curYear) {
			content += " selected=\"selected\"";
		}
		content += ">" + i + "</option>\n";
	}
	content += "</select>\n<input type=\"button\" value=\"Go\" onclick=\"newMonth()\" />\n";
	content += "</form>\n";
	return content;
}

function newMonth() {
	var mon = document.calNav.month.selectedIndex;
	curMonth = parseInt(document.calNav.month.options[mon].value);
	var yr = document.calNav.year.selectedIndex;
	curYear = parseInt(document.calNav.year.options[yr].value);
	today.setMonth(curMonth);
	today.setFullYear(curYear);
	document.getElementById("showCal").innerHTML = droplists() + createMonth();
}

// goto previous month
function prev() {
	curMonth -= 1;
	if(curMonth<0) {
		curMonth=11;
		if(curYear>(nowYear-prevYears)) {
			curYear -= 1;
		}
	}
	today.setMonth(curMonth);
	today.setFullYear(curYear);
	document.getElementById("showCal").innerHTML = droplists() + createMonth();
}

// goto next month
function next() {
	curMonth += 1;
	if(curMonth>11) {
		curMonth=0;
		if(curYear<(nowYear+futureYears)) {
			curYear += 1;
		}
	}
	today.setMonth(curMonth);
	today.setFullYear(curYear);
	document.getElementById("showCal").innerHTML = droplists() + createMonth();
}
