
	var month				= new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec");
	var day					= new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");

	var today				= new Date();
	var currentMonth		= new Date(today.getFullYear(), today.getMonth(), 1);
	var theStartMonth		= "";
	var theEndMonth			= "";
	var calendarContainer	= "";


	$(document).ready(function() {
		initializeCalendar("calendar", currentMonth);
		theStartMonth		= new Date(calendarStartYear, (calendarStartMonth - 1), 1);
		theEndMonth			= new Date(calendarEndYear, (calendarEndMonth - 1), 1);
	});


	function initializeCalendar(container, currentMonth) {
		calendarContainer	= container;
		buildCalendar(currentMonth);
	}


	function retrieveCurrentMonth() {
		return currentMonth; // Not sure why I have to do this, but I can't return this variable any other way in buildNextMonthCalendar() &  buildPreviousMonthCalendar().
	}


	function buildNextMonthCalendar() {
		var nextMonth	= retrieveCurrentMonth().getMonth() + 1;
		var nextYear	= retrieveCurrentMonth().getFullYear();

		if (nextMonth == 12) {
			nextMonth	= 0;
			nextYear	= (nextYear + 1);
		}

		currentMonth	= new Date(nextYear, nextMonth, 1);
		buildCalendar(currentMonth);
		return false;
	}


	function buildPreviousMonthCalendar() {
		var previousMonth	= retrieveCurrentMonth().getMonth() - 1;
		var previousYear	= retrieveCurrentMonth().getFullYear();

		if (previousMonth == -1) {
			previousMonth	= 11;
			previousYear	= (previousYear - 1);
		}

		currentMonth	= new Date(previousYear, previousMonth, 1);
		buildCalendar(currentMonth);
		return false;
	}


	function buildCalendar(buildMonth) {
		var calendar	= "";

			calendar	+= '<table id="calendar">';
			calendar	+= '<tbody>';
			calendar	+= '<tr>';
			calendar	+= '<td colspan="7">';
			calendar	+= '<table id="calendarHeader">';
			calendar	+= '<tbody>';
			calendar	+= '<tr>';
			if (buildMonth > theStartMonth) {
				calendar	+= '<td id="calendarPrevious"><a href="#-Previous-Month" onclick="return buildPreviousMonthCalendar();">&lt;&lt;</a></td>';
			}
			else {
				calendar	+= '<td id="calendarPrevious">&nbsp;</td>';
			}
			calendar	+= '<td id="calendarMonth">' + month[buildMonth.getMonth()] + " " + buildMonth.getFullYear(); + '</td>';
			if (buildMonth < theEndMonth) {
				calendar	+= '<td id="calendarNext"><a href="#-Next-Month" onclick="return buildNextMonthCalendar();">&gt;&gt;</a></td>';
			}
			else {
				calendar	+= '<td id="calendarNext">&nbsp;</td>';
			}
			calendar	+= '</tr>';
			calendar	+= '</tbody>';
			calendar	+= '</table>';
			calendar	+= '</td>';
			calendar	+= '</tr>';

			var totalDays	= daysInMonth(buildMonth.getMonth(), buildMonth.getFullYear());
			var start		= false;
			var day			= 1;

			for (var week = 1; week <= 6; week++) {
				calendar += '<tr>';
				for (var dayOfWeek = 1; dayOfWeek <= 7; dayOfWeek++) {
					((dayOfWeek == 1) || (dayOfWeek == 7)) ? style = "calendarWeekEnd" : style = "calendarWeekDay";

					if ((!start) && (dayOfWeek > buildMonth.getDay())) {
						start = true;
					}

					if ((start) && (day <= totalDays)) {
						calendar += '<td class="' + style + '" id="calendarDay-' + day + '">' + day + '</td>';
						day	= (day + 1);
					} else {
						calendar += '<td class="' + style + '">&nbsp;</td>';
					}
				}
				calendar += '</tr>';
			}

			calendar += '</tbody>';
			calendar += '</table>';

		$("#" + calendarContainer).html(calendar);
		highlightEvents((buildMonth.getMonth() + 1), buildMonth.getFullYear()); // Found in home.js - this type of funciton should be kept away from the primary calendar js so we can keep this easy to customize.
	}


	function daysInMonth(month, year) {
		var datenextmonth;
		if (((month + 1) % 12) == 0) {
			datenextmonth = new Date((year + 1), (month + 1), 1);
		}
		else {
			datenextmonth = new Date(year, (month + 1), 1);
		}
		datenextmonth.setDate(datenextmonth.getDate() - 1);
		return datenextmonth.getDate();
	}
