var currentDate = new Date();
var currentMonth = currentDate.getMonth() + 1;
var currentYear = currentDate.getFullYear();
var baseURL = 'http://calendar.vanderbilt.edu/calendar';

function initMinical() {
	var start = dayOfWeek(currentYear, currentMonth, 1);










	var dom = daysInMonth(currentYear, currentMonth);
	var today = new Date();
	var cal_date = document.getElementById('minical_date');
	cal_date.innerHTML = currentMonth + '/' + currentYear;
	cal_date.title = 'Go to the current month (' + (today.getMonth() + 1) + '/' + today.getFullYear() + ')';
	for (i = 1; i <= 42; i++) {
		var id = document.getElementById('minical_day_' + i);
		var adjust = 0;
		if ((currentMonth == 9) && (currentYear == 1752) && (i > 4)) { adjust = 11; }
		if ((i > start) && (i <= (dom + start))) {
			id.innerHTML = '<a href="' + baseURL + '/cal_list/' + currentYear + '/' + currentMonth + '/' + (i-start+adjust) + '">' + (i-start+adjust) + '</a>';
		} else {
			id.innerHTML = '';
		}
	}






	var last_row = document.getElementById('minical_last_row');
	if ((start + dom) < 36) { last_row.style.display = 'none'; }
	else { last_row.style.display = ''; }
}


function currMonth() {
	var today = new Date();
	currentMonth = today.getMonth() + 1;
	currentYear = today.getFullYear();
	initMinical();
}

function prevMonth() {
	currentMonth--;
	if (currentMonth < 1) {
		currentMonth = 12;
		currentYear--;
	}
	initMinical();
}

function nextMonth() {
	currentMonth++;
	if (currentMonth > 12) {
		currentMonth = 1;
		currentYear++;
	}
	initMinical();
}

function prevYear() {
	currentYear--;
	initMinical();
}

function nextYear() {
	currentYear++;
	initMinical();
}

function dayOfWeek(_year, _month, _day) {
	/* Good for 1700 - 2299 */
	var mcList = [6, 2, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4];
	var ycList = [5, 3, 1, 0, -2, -4, -6];
	var century = Math.floor(_year / 100);
	var yc;
	if ((century >= 17) && (century <= 22)) { yc = ycList[century - 17]; }
	if ((_year < 1752) || ((_year == 1752) && (_month <= 9))) {
		yc = yc - 10;
	}
	var leapYear = isLeapYear(_year);
	var twoYear = (_year % 100);
	var dow = ((twoYear + Math.floor(twoYear / 4) + mcList[_month-1] + Number(_day) + Number(yc)) % 7);
	if (leapYear && ((_month == 1) || (_month == 2))) { dow--; }
	if (dow < 0) { dow = dow + 7; }
	else if (dow > 6) { dow = dow - 7; }
	return dow;
}

function isLeapYear(_year) {
	var leapYear;
	if ((!(_year % 4) && (_year % 100)) || !(_year % 400)) {
		leapYear = 1;
	}
	return leapYear;
}

function daysInMonth(_year, _month) {
	var domList = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	var leapYear = isLeapYear(_year);
	var dom = domList[_month-1];
	if ((_month == 2) && leapYear) {
		dom = 29;
	} else if ((_month == 9) && (_year == 1752)) {
		dom = 19;
	}
	return dom;
}

function toggleLayer(whichLayer) {
	if (document.getElementById) {
		var style2 = document.getElementById(whichLayer).style;
		style2.display = style2.display? "":"block";
	}
	else if (document.all) {
		// this is the way old msie versions work
		var style2 = document.all[whichLayer].style;
		style2.display = style2.display? "":"block";
	}
	else if (document.layers) {
		// this is the way nn4 works
		var style2 = document.layers[whichLayer].style;
		style2.display = style2.display? "":"block";
	}
}

