// Modified from Warren Brown's original by DE, Apr-18-05

var monthDaysArr = new Array;
var daysArr = new Array;
var monthArr = new Array;

monthDaysArr[0]  = 0;
monthDaysArr[1]  = 31;
monthDaysArr[2]  = 28;
monthDaysArr[3]  = 31;
monthDaysArr[4]  = 30;
monthDaysArr[5]  = 31;
monthDaysArr[6]  = 30;
monthDaysArr[7]  = 31;
monthDaysArr[8]  = 30;
monthDaysArr[9]  = 30;
monthDaysArr[10] = 31;
monthDaysArr[11] = 31;
monthDaysArr[12] = 30;

monthArr[0]  = "";
monthArr[1]  = "January";
monthArr[2]  = "February";
monthArr[3]  = "March";
monthArr[4]  = "April";
monthArr[5]  = "May";
monthArr[6]  = "June";
monthArr[7]  = "July";
monthArr[8]  = "August";
monthArr[9]  = "September";
monthArr[10]  = "October";
monthArr[11] = "November";
monthArr[12] = "December";


function
fillSelect(thisform, prefix)
{
	var str;
	var i;
	var elemMonth;
	var monthID;
	var yearID;
	var dayID;
	var curDate;
	var curMonth;
	var elemDay;

	curDate = new Date();
	curMonth = curDate.getMonth();

	if (prefix == 'start') {
		monthID = 'start_month';
		yearID  = 'start_year';
		dayID   = 'start_day';
	}
	else if (prefix == 'end') {
		monthID = 'end_month';
		yearID  = 'end_year';
		dayID   = 'end_day';
	}
	str = "<select id=" + prefix + "_month name=" + prefix + "_month onchange=\"updateDays(" + thisform.name + ", '" + prefix + "', 0)\">";

	document.writeln(str);
	for (i = 0; i < 12; i++) {
		selected = "";
		if (i == curMonth) {
			selected = " selected";
		}
        document.writeln("<option value=" + (i + 1) + selected + ">" + monthArr[i+1]);
	}
	document.writeln("</select>");

	str = "<select id=" + prefix + "_day name=" + prefix + "_day onchange=\"updateDays(" + thisform.name + ", '" + prefix + "', 0)\"><option value=1>1</select>";
	document.writeln(str);
}

function
updateDays(thisform, prefix, init)
{
	var oldIndex;
	var i;
	var elemMonth;
	var elemDay;
	var elemYear;
	var monthID;
	var yearID;
	var dayID;
	var monthNum;
	var curDate;
	var curDay;

	if (prefix == 'start') {
		monthID = 'start_month';
		yearID  = 'start_year';
		dayID   = 'start_day';
	}
	else if (prefix == 'end') {
		monthID = 'end_month';
		yearID  = 'end_year';
		dayID   = 'end_day';
	}

	elemDay   = document.getElementById(dayID);
	elemMonth = document.getElementById(monthID);
	elemYear  = document.getElementById(yearID);

	oldIndex = elemDay.selectedIndex;
	for (i = daysArr.length; i > 0; i--)
	{
		daysArr[i] = null;
		document.getElementById(dayID).options[i] = null;
	}
	monthNum = parseInt(elemMonth[elemMonth.selectedIndex].value);
	numDays = monthDaysArr[monthNum];

	leapdelta = 0;

	if (numDays == 28)
	{
		year = parseInt(elemYear.options[elemYear.selectedIndex].value);
		if (year % 4 != 0 || year % 100 == 0 ) {
			leapdelta = 0;
		}
		else {
			leapdelta = 1;
			if (year % 400 == 0)  {
				leapdelta = 0;
			}
		}
	}

	numDays = numDays + leapdelta;
	for (i = 0; i < numDays; i++)
	{
		daysArr[i] = new Option(i + 1);
		elemDay.options[i] = daysArr[i];
	}

	if (oldIndex == -1) {
		elemDay.options[0].selected = true;
	}
	else {
		elemDay.options[oldIndex].selected = true;
	}

	if (prefix == 'start') {
		elemEndYear  = document.getElementById('end_year');
		elemEndMonth = document.getElementById('end_month');
		elemEndDay   = document.getElementById('end_day');

		if (elemEndYear) {
			elemEndYear.options[elemYear.selectedIndex].selected = true;
		}
		elemEndMonth = document.getElementById('end_month');
		if (elemEndMonth) {
			elemEndMonth.options[elemMonth.selectedIndex].selected = true;
		}
		elemEndDay = document.getElementById('end_day');
		if (elemEndDay) {
			elemEndDay.options[elemDay.selectedIndex].selected = true;
		}
	}
	
	if (init) {
		curDate = new Date();
		curDay = curDate.getDate();
		elemDay.options[curDay - 1].selected = true;
	}
}

function
yearInstall(thisform, prefix)
{
	var i;
	var str;
	var curdate;

	curdate = new Date();
	curyear = curdate.getFullYear();
	yearcount = 4;

	str = "<select name=" + prefix + "_year id=" + prefix + "_year onchange=\"updateDays(" + thisform.name + "," + "'" + prefix + "', 0)\">";
	document.writeln(str);

	for (i = curyear; i < curyear + yearcount; i++) {
		document.writeln("<option value=" + i + ">" + i);
	}
	document.writeln("</select>");
	updateDays(thisform, prefix, 1)
}

function
changetime(thisform, prefix)
{
	if (prefix == 'start') {
		elemHour   = document.getElementById('start_hour');
		elemEndHour  = document.getElementById('end_hour');

		if (elemEndHour) {
			elemEndHour.options[elemHour.selectedIndex].selected = true;
		}
		elemAMPM = document.getElementById('start_ampm');
		elemEndAMPM = document.getElementById('end_ampm');

		if (elemEndAMPM) {
			elemEndAMPM.options[elemAMPM.selectedIndex].selected = true;
		}
	}
}