var maxDaysInMonths = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
var monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October",
	"November", "December");

function getMaxDaysInMonth(month) {
	// Assumes January = 1, not 0
	return maxDaysInMonths[month - 1];
}
	
function rectifyDaysAvailable() {
        var mSelect = document.getElementById("mm");
	var mStr = mSelect.options[mSelect.selectedIndex].value;
	var newMonth = mStr * 1; 

	var maxDay = getMaxDaysInMonth(newMonth);

	var dSelect = document.getElementById("dd");
	var curDay = dSelect.options[dSelect.selectedIndex].value;

	var newDay = curDay;
	while ( newDay > maxDay ) { newDay--; }

	setDayOptions(maxDay, newDay);
}

function format(num) {
	if ( num < 10 ) {
		return "0" + num;
	} else {
		return "" + num;
	}
}

function deformat(str) {
	if ( str.startsWith("0") ) {
		return parseInt(str.substring(1));
	} else {
		return parseInt(str);
	}
}

function writeDayOptions(selectedDay) {
	var mSelect = document.getElementById("mm");
        var mStr = mSelect.options[mSelect.selectedIndex].value;
        var month = mStr * 1;	
	var days = getMaxDaysInMonth(month);
	selectedDay = selectedDay * 1;

	var options = "";
	for ( var i = 1; i <= days; i++ ) {
		options += "<option value='";
		options += format(i);
		options += "'";
		if ( i == selectedDay ) { options += " selected='true'"; }
		options += ">";
		options += i;
		options += "</option>\n";
	}
	document.write(options);
}

function writeMonthOptions(selectedMonth) {
	var options = "";
	for ( var i = 1; i <= 12; i++ ) {
		var month = monthNames[i - 1];
		options += "<option value='";
		options += format(i);
		options += "'";
		if ( i == selectedMonth ) { options += " selected='true'"; }
		options += ">";
		options += month;
		options += "</option>\n";
	}
	document.write(options);
}

function setDayOptions(maxDay, newDay) {
	var dSelect = document.getElementById("dd");
	dSelect.options.length = 0
	for ( var i = 1; i <= maxDay; i++ ) {
		var display = i;
		var value = format(i);
		var selected = ( i == newDay );
		var option = new Option(display, value, selected);
		dSelect.options[i] = option;
	}
}
