﻿/// <reference path="jquery.js />
/// <reference path="jquery.class.js />
/// <reference path="calendarGlobals.js" />
/// <reference path="calendarEvents.js" />
/// <reference path="calendarHolidays.js" />

function CreateThisWeek() {
	/// <summary>Writes out the HTML for the "This Week" list</summary>
	/// <returns>Nothing</returns>
	if ($('#thisWeek')) {
		var currentDate = new Date();
		var year = currentDate.getFullYear();
		var month = MonthsOrder[currentDate.getMonth()];
		var monthName = month.name;
		var maxDays = (month.name == Months.february.name) ? GetLeapYearDays(year) : month.days;
		var nextDate = currentDate.getDate();
		currentDate.setFullYear(year, month.id, currentDate.getDate());
		var html = new Array();
		html.push('<img src="images/spacer.gif" width="" height="8" alt="" />');
		var daysInWeek = 7;
		for (var i = 0; i < daysInWeek; i++) {
			if (nextDate > month.days) {
				month =
					(currentDate.getMonth() == MonthsOrder.length - 1) ?
					MonthsOrder[0] :
					MonthsOrder[currentDate.getMonth() + 1];
				monthName = month.name;
				nextDate = 1;
				if (month.id == 0) {
					year = parseInt(year) + 1;
				}
			}
			currentDate.setFullYear(year, month.id, nextDate);
			var dayOfWeek = DaysOrder[currentDate.getDay()].name;
			var dayNumber = currentDate.getDate();
			html.push('<div class="small">' + dayOfWeek + ' ' + monthName + ' ' + dayNumber + '</div>');
			// Add events
			var playTime =
				(currentDate >= OpeningNight && currentDate <= ClosingNight) ?
					month.scheduleType[dayOfWeek.toLowerCase()] :
					null;
			var clubClosed = _ClubClosedEvents['_' + month.id + '_' + dayNumber + '_' + year]; 	// CLOSED DUE TO NON-HOLIDAY REASON
			var specialEvent = _SpecialEvents['_' + month.id + '_' + dayNumber + '_' + year]; 	// SPECIAL EVENT (PLAY IS OPEN)
			var staticHolidays = _StaticHolidays['_' + month.id + '_' + dayNumber]; 							// STATIC HOLIDAYS
			var dynamicHolidays = _DynamicHolidays['_' + month.id + '_' + dayNumber + '_' + year]; // DYNAMIC HOLIDAYS
			var isClosed =
				(clubClosed) ?
					true :
					(staticHolidays) ?
						((staticHolidays.playType == PlayTypes.CLOSED) ?
							true :
							false) :
						(dynamicHolidays) ?
							((dynamicHolidays.playType == PlayTypes.CLOSED) ?
								true :
								false) :
							false;

			// DISPLAY REGULAR PLAY TIME
			if (playTime && !isClosed)
			{
				html.push('<div class="redSmall">' + playTime.startTime + ' - ' + playTime.endTime + '</div>');
			}
			// CLOSED FOR NON-HOLIDAY REASON
			if (clubClosed && !specialEvent)
			{
				html.push('<div class="bold redSmall">' + PlayTypes.CLOSED + '</div>');
			}
			// DISPLAY THE SPECIAL EVENT (SUCH AS "Ladder")
			if (specialEvent)
			{
				html.push('<div class="bold redSmall">' + specialEvent.text + '</div>');
			}
			// DISPLAY EVENT/HOLIDAY
			var eventObj = staticHolidays || dynamicHolidays;
			if (eventObj)
			{
				if (playTime && isClosed)
				{
					html.push('<div class="bold redSmall">' + PlayTypes.CLOSED + '</div>');
				}
				html.push('<div class="redSmall">' + eventObj.text + '</div>');
				if (eventObj.textExtension)
				{
					html.push('<div class="redSmall">' + eventObj.textExtension + '</div>');
				}
			}
			if (i < daysInWeek - 1) {
				html.push('<hr />');
			}
			nextDate += 1;
		}
		$('#thisWeek').html(html.join(''));
	}
}

/**
* jQuery starts it off
*/
$(document).ready(
	function() {
		CreateThisWeek();
	}
);
