//Month length integer array
var lMonthArray  = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

//Weekday name array
var sWeekdayArray = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");

//Other local variables
var fReloadRequired = false;

//Change the day combo
function ChangeDayCombo(lCombo)
{
	ChangeDayName(lCombo);
}

//Change the day name
function ChangeDayName(lCombo)
{

	//Netscape 4 trap
	//if (navigator.appName == 'Netscape' && parseInt(navigator.appVersion) < 5)  {
	//	return false;
	//}

	//Locals
	var sYear;
	var sMonth;
	var sDay;

	//Get the date parts
	if (lCombo == 0)  {
		sMonth = document.forms[0].cboSMonth.options[document.forms[0].cboSMonth.selectedIndex].value;
		sDay = document.forms[0].cboSDay.options[document.forms[0].cboSDay.selectedIndex].value;
		sYear = document.forms[0].cboSYear.options[document.forms[0].cboSYear.selectedIndex].value;
	}
	else  {
		sMonth = eval(document.forms[0].cboEMonth.options[document.forms[0].cboEMonth.selectedIndex].value);
		sDay = document.forms[0].cboEDay.options[document.forms[0].cboEDay.selectedIndex].value;
		sYear = document.forms[0].cboEYear.options[document.forms[0].cboEYear.selectedIndex].value;
	}

	//Check for a valid date
	if (!ValidateDate(sYear, sMonth, sDay)) {
		if (lCombo == 0)  {
			document.forms[0].txtStartWeekday.value = "Not a valid date";
			if (document.forms[0].txtMessage)  {
				document.forms[0].txtMessage.value = "Incorrect start date - please review!";
			}
		}
		else  {
			document.forms[0].txtEndWeekday.value = "Not a valid date";
			if (document.forms[0].txtMessage)  {
				document.forms[0].txtMessage.value = "Incorrect end date - please review!";
			}
		}
	}
	else  {
		var dtMyDate = new Date(sMonth + '/' + sDay + '/' + sYear);
		if (lCombo == 0)  {
			document.forms[0].txtStartWeekday.value = sWeekdayArray[dtMyDate.getDay()];
			if (document.forms[0].txtEndWeekday)  {
				if (document.forms[0].txtEndWeekday != "Not a valid date")  {
					document.forms[0].txtMessage.value = "";
				}
			}
			else  {
				if (document.forms[0].txtMessage)  {
					document.forms[0].txtMessage.value = "";
				}
			}
		}
		else  {
			document.forms[0].txtEndWeekday.value = sWeekdayArray[dtMyDate.getDay()];
			if (document.forms[0].txtStartWeekday.value != "Not a valid date")  {
				if (document.forms[0].txtMessage)  {
					document.forms[0].txtMessage.value = "";
				}
			}
		}
		if (fReloadRequired == true)  {
			ValidateForm();
			return false;
		}
	}

}

function IsLeapYear(aYear) {

	var LeapYearStatus;

	if (aYear%4 == 0)
	{
		LeapYearStatus = true;
		if (aYear%100 == 0)
		{
			LeapYearStatus = false;
			if (aYear%400 == 0)
			{
				LeapYearStatus = true;
			}
		}
	}
	else
	{	LeapYearStatus = false;	}

	return (LeapYearStatus);
}

function ValidateDate(iYear, iMonth, iDay) {

	//February leap year check
	if (IsLeapYear(iYear)) {
		if ((iMonth == 2) && (iDay < 30)) {
			return true;
		}
		// any other month than Feb
		else {
			// checks for all other months except feb in a leap year
			if (iDay > (lMonthArray[iMonth -1])) {
				return false;
			}
		}
	}
	else {
		// checks for all other months, including non leap year februarys
		if (iDay > (lMonthArray[iMonth -1])) {
			return false;
		}
	}

	//if we make it this far can return true
	return true;
}

