var searchStr = (location.search).substr(1,location.search.length);
var currentMonth;
var currentYear;

var path = location.pathname.replace(/\\/g, "/");
var filename = path.substr(path.lastIndexOf("/")+1, path.length - path.lastIndexOf("/")-1);
var today = new Date();
var todayStr = (today.getMonth() + 1) + "/" + today.getDate() + "/" + today.getFullYear();

var calEvents = new Array();
calEvents[0] = "5/31/2007|#053107|Contract Public Hearing";
calEvents[1] = "6/4/2007|#060407|FCRC Hearing and Meeting";
calEvents[2] = "6/6/2007|#060607|FCRC Hearing and Meeting";
calEvents[3] = "6/7/2007|#060707|Contract Public Hearing";
calEvents[4] = "6/13/2007|#061307|Real Property Hearing";
calEvents[5] = "6/14/2007|#061407|Contract Public Hearing";
calEvents[6] = "6/21/2007|#062107|Contract Public Hearing";
calEvents[7] = "6/27/2007|#062707|Real Property Hearing";
calEvents[8] = "6/28/2007|#062807|Contract Public Hearing";
calEvents[9] = "7/9/2007|#070907|FCRC Hearing and Meeting";
calEvents[10] = "7/11/2007|#071107|FCRC Hearing and Meeting, Real Property Hearing";
calEvents[11] = "7/12/2007|#071207|Contract Public Hearing";
calEvents[12] = "7/19/2007|#071907|Contract Public Hearing";
calEvents[13] = "7/26/2007|#072607|Contract Public Hearing";
calEvents[14] = "8/6/2007|#080607|FCRC Hearing and Meeting";
calEvents[15] = "8/8/2007|#080807|FCRC Hearing and Meeting";
calEvents[16] = "8/15/2007|#081507|Real Property Hearing";
calEvents[17] = "8/16/2007|#081607|Contract Public Hearing";
calEvents[18] = "9/5/2007|#090507|Real Property Hearing";
calEvents[19] = "9/6/2007|#090607|Contract Public Hearing";
calEvents[20] = "9/10/2007|#091007|FCRC Hearing and Meeting";
calEvents[21] = "9/12/2007|#091207|FCRC Hearing and Meeting";
calEvents[22] = "9/19/2007|#091907|Real Property Hearing";
calEvents[23] = "9/20/2007|#092007|Contract Public Hearing";
calEvents[24] = "10/9/2007|#100907|FCRC Hearing and Meeting";
calEvents[25] = "10/10/2007|#101007|FCRC Hearing and Meeting, Real Property Hearing";
calEvents[26] = "10/18/2007|#101807|Contract Public Hearing";
calEvents[27] = "10/24/2007|#102407|Real Property Hearing";
calEvents[28] = "11/1/2007|#110107|Contract Public Hearing";
calEvents[29] = "11/5/2007|#110507|FCRC Hearing and Meeting";
calEvents[30] = "11/7/2007|#110707|FCRC Hearing and Meeting, Real Property Hearing";
calEvents[31] = "11/15/2007|#111507|Contract Public Hearing";
calEvents[32] = "11/21/2007|#112107|Real Property Hearing";
calEvents[33] = "12/5/2007|#120507|Real Property Hearing";
calEvents[34] = "12/6/2007|#120607|Contract Public Hearing";
calEvents[35] = "12/10/2007|#121007|FCRC Hearing and Meeting";
calEvents[36] = "12/12/2007|#121207|FCRC Hearing and Meeting";
calEvents[37] = "12/19/2007|#120907|Real Property Hearing";
calEvents[38] = "12/20/2007|#122007|Contract Public Hearing";



function makeMonthQuery(query_how) {
	if(query_how == 0) {
		if(currentMonth == 1) {
			return "12," + (Math.round(currentYear) - 1);
		} else	{
			return (Math.round(currentMonth) - 1) + "," + currentYear;
		}
	} else {
		if(currentMonth == 12) {
			return "1," + (Math.round(currentYear) + 1);
		} else	{
			return (Math.round(currentMonth) + 1) + "," + currentYear;
		}
	}
}

function monthEnglish(theMonth){
	switch (Math.round(theMonth)) {
	case 1:
		return "January";
		break;
	case 2:
		return "February";
		break;
	case 3:
		return "March";
		break;
	case 4:
		return "April";
		break;
	case 5:
		return "May";
		break;
	case 6:
		return "June";
		break;
	case 7:
		return "July";
		break;
	case 8:
		return "August";
		break;
	case 9:
		return "September";
		break;
	case 10:
		return "October";
		break;
	case 11:
		return "November";
		break;
	case 12:
		return "December";
		break;
	default:
		return theMonth;
		break;
	}
}

function findEvent(when) {
	whenSplit = when.split("/");
	for(y=0; y < calEvents.length; y++) {
		eventSplit = calEvents[y].split("|");
		if(eventSplit[0] == when) {
			return (whenSplit[1] );
			break;
		}
	}

	return whenSplit[1];
}

function findHref(when) {
	whenSplit = when.split("/");
	for(y=0; y < calEvents.length; y++) {
		eventSplit = calEvents[y].split("|");
		if(eventSplit[0] == when) {
			return (eventSplit[1] );
			break;
		}
	}
	return ("");
}
function findEventTitle(when) {
	whenSplit = when.split("/");
	for(y=0; y < calEvents.length; y++) {
		eventSplit = calEvents[y].split("|");
		if(eventSplit[0] == when) {
			return (eventSplit[2] );
			break;
		}
	}
	return ("");
}

function getLastDay(month, year) {
	var lastday = new Date(year, month-1, 1);
	var lastdaymonth = lastday.getMonth();

	var z = 1;
	do {
		lastday.setDate(z);
		z++;
	} while(lastdaymonth == lastday.getMonth());

	lastday.setMonth(lastday.getMonth() - 1);
	lastday.setDate(z-2);

	return lastday.getDate();
}

function writeTable(type, contents, tdClass, theHref, eventTitle) {
	switch (type) {
		case "open":
			document.write('<table width="161" height="161" border="0" cellspacing="1" cellpadding="0">');
			break;
		case "title":
			document.write('<tr>');
			document.write('<td class="monthName" align="center" colspan="7" height="23">');
			document.write("<a href='" + filename + "?" + makeMonthQuery(0) + "' class='action-links'><b>&lt;</b></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
			document.write(contents);
			document.write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='" + filename + "?" + makeMonthQuery(1) + "' class='action-links'><b>&gt;</b></a>");
			document.write('</td>');
			document.write('</tr>');
			break;
		case "tr_open":
			document.write('<tr>');
			break;
		case "tr_close":
			document.write('</tr>');
			break;
		case "td":
			if(tdClass=="linked"){
				document.write('<td align="center" class="linked" onMouseOver="this.className=\'linked_over\'" onMouseOut="this.className=\'linked\'" onClick="location.href=\''+theHref+'\'" title=\''+eventTitle+'\'>');
			}else{
				document.write('<td align="center" class="'+tdClass+'">');
			}
			document.write(contents);
			document.write('</td>');
			break;
		case "close":
			document.write('</table>');
			break;
	}
}

function makeMonth(month, year) {
	var lastday = getLastDay(month ,year);
	var day = new Date(year, month-1, 1);
	var theTDClass="notLinked";
	var dateHref="";
	var theEventTitle="";
	
	currentMonth = month;
	currentYear = year;

	writeTable("open");
	writeTable("title",monthEnglish(currentMonth) + " " + currentYear);
	writeTable("tr_open");
	writeTable("td", "Su", "dayOfWeek");
	writeTable("td", "M", "dayOfWeek");
	writeTable("td", "Tu", "dayOfWeek");
	writeTable("td", "W", "dayOfWeek");
	writeTable("td", "Th", "dayOfWeek");
	writeTable("td", "F", "dayOfWeek");
	writeTable("td", "Sa", "dayOfWeek");
	writeTable("tr_close");

	if (day.getDay() != 0) {
		writeTable("tr_open");
		for(x=0; x<day.getDay(); x++) {
			writeTable("td", "&nbsp;", "notLinked");
		}
	}

	for (x=1; x<=lastday; x++) {
		cellContent = findEvent(day.getMonth() + 1 + "/" + day.getDate() + "/" + day.getFullYear());
		dateHref=findHref(day.getMonth() + 1 + "/" + day.getDate() + "/" + day.getFullYear());
		theEventTitle=findEventTitle(day.getMonth() + 1 + "/" + day.getDate() + "/" + day.getFullYear());
		if (dateHref.length>0) {
			theTDClass = "linked";
		}else{
			theTDClass="notLinked";
		}
		switch (day.getDay()) {
			case 0:
				writeTable("tr_open");
				writeTable("td", cellContent,theTDClass,dateHref,theEventTitle);
				break;
			case 6:
				writeTable("td", cellContent,theTDClass,dateHref,theEventTitle);
				writeTable("tr_close");
				break;
			default:
				writeTable("td", cellContent, theTDClass,dateHref,theEventTitle);
				break;
		}
		day.setDate(day.getDate() + 1);
	}

	if (day.getDay() < 7 && day.getDay() != 0) {
		for(x=day.getDay(); x<7; x++) {
				writeTable("td", "&nbsp;", "notLinked");
		}
		writeTable("tr_close");
	}

	writeTable("close");
}

if (searchStr == "") {
	makeMonth(today.getMonth() + 1,today.getFullYear());
} else {
	var cal;
	cal = searchStr.split(",");
	makeMonth(cal[0],cal[1]);
}