﻿
var month_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var day_names = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
var long_day_names = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
var days_in_month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

var current_date = new Date();

function Calendar(month, year) {
	this.month = (isNaN(month) || month == null) ? current_date.getMonth() : month;
	this.year  = (isNaN(year) || year == null) ? current_date.getFullYear() : year;
	this.html = '';
}

Calendar.prototype.generateHTML = function(){
	var firstDay = new Date(this.year, this.month, 1);
	var startingDay = firstDay.getDay();
	var monthLength = days_in_month[this.month];
	var currentDay = new Date();
	var today = currentDay.getDate();
	var today_day = currentDay.getDay();
	
	//for leap year, compliments Google code
	if (this.month == 1) {
		if((this.year % 4 == 0 && this.year % 100 != 0) || this.year % 400 == 0) {
			monthLength = 29;
		}
	}
	
	var monthName = month_names[this.month];
	var html = '<div id="purple-date"></div>';
	html += '<table class="calendar-table">';
	html += '<tr class="top_row"><td colspan="5" class="calendar-white">';
	html += long_day_names[today_day];
	html += '</td><td colspan="2" rowspan="2" class="calendar-date">';
	html += today;
	html += '</td></tr><tr><td colspan="5" class="calendar-black">';
	html += monthName + '&nbsp;' + this.year;
	html += '</td></tr><tr class="calendar-header">';
	for(var i=0; i<=6; i++) {
		html += '<td class="calendar-header-day">';
		html += day_names[i];
		html += '</td>';
	}
	html += '</tr><tr>';
	
	var day = 1;
	//loop of the week rows
	for(var i=0; i<9; i++) {
		//loop of the day cells
		for(var j=0; j<=6; j++) {
			if(day <= monthLength && (i>0 || j>= startingDay)) {
				if(day == today) {
					html += '<td class="calendar-today">';
					html += '<a href="calendar.html">' + day + '</a>';
					day++;
					html += '</td>';
				} else {
					html += '<td class="calendar-day">';
					html += '<a href="calendar.html">' + day + '</a>';
					day++;
					html += '</td>';
				}
			} else {
				html += '<td></td>';
			}
			
		}
		//stop making rows if we're out of days
		if(day > monthLength) {
			break;
		} else {
			html += '</tr><tr>';
		}
	}
	html += '</tr></table>';
	
	this.html = html;
				
}

Calendar.prototype.getHTML = function() {
	return this.html;
}

