var dateString = new String("");
var dateArray = new Array();

function submissionCheck() {
	if (document.main.terms_conditions.checked == false) {
		alert('You must agree to the terms and conditions before registering.');
		return false;
	}
	if (document.main.propID_primary_site_id.selectedIndex==0) {
		alert('You must select a mysask Region');
		return false;
	}
	if (document.main.propID_mysask_weather_region.selectedIndex==0) {
		alert('You must select a mysask Weather Region');
		return false;
	}
	if (document.main.propID_email.value.length == 0) {
		alert('You must enter an e-mail address');
		return false;
	}
	if (document.main.propID_email.value != document.main.email2.value) {
		alert('The E-mail fields do not match. Please enter the same E-mail in both fields. ');
		return false;
	}	
	if ((document.main.propID_username.value.length < 6) || (document.main.propID_username.value.length > 16)) {
		alert('Your User Name must be 6 - 16 characters long.');
		return false;
	}
	if (document.main.propID_pass1.value.length < 6 || (document.main.propID_pass1.value.length > 16)) {
		alert('Your password must be 6 - 16 characters long.');
		return false;
	}
	if (document.main.propID_pass2.value.length < 6 || (document.main.propID_pass2.value.length > 16)) {
		alert('Your password must be 6 - 16 characters long.');
		return false;
	}
	if (document.main.propID_dob.value != '')
	{
		dateString = document.main.propID_dob.value;
		dateArray = dateString.split('/');


		//alert(dateString);
		//alert('month = (' + dateArray[0] + ')');
		//alert('day = (' + dateArray[1] + ')');
		//alert('year = (' + dateArray[2] + ')');

		// check month
		var month = parseInt(dateArray[0], 10);
		var day = parseInt(dateArray[1], 10);
		var year = parseInt(dateArray[2]);
		var currentDate = new Date();

		//alert(month);
		//alert(day);
		//alert(year);


		// Validate year
		if ((month > 0) && (month < 13))
		{
			//alert("month is between 0 and 13");

			// Validate the day for 31 day months
			if ((month == 1) || (month == 3) || (month == 5)
				|| (month == 7) || (month == 8) || (month == 10) || (month == 12))
			{

				//alert("month is a 31 day month");

				if ((day > 0) && (day < 32))
				{
					// validate year
					if (year >= 1000 && year < currentDate.getFullYear())
					{

						//alert("year is valid (1)");

						return true;
					} // end if year
				} // end if day
			} // end if 31-day months

			// Validate day for 30 day months
			if ((month == 4) || (month == 6) || (month == 9) || (month == 11))
			{
				if ((day > 0) && (day < 31))
				{
					// validate year
					if (year >= 1000 && year < currentDate.getFullYear())
					{

						//alert("year is valid (2)");

						return true;
					}
				}
			}

			// Validate day & year for
			if (month == 2)
			{
				//alert("month = 2");
				if (isLeapYear(year))
				{

					//alert("year is a leap year");

					if ((day > 0) && (day < 30))
					{

						//alert("day is between 0 and 30");

						// validate year
						if (year < currentDate.getFullYear())
						{

							//alert("year is valid (3)");

							return true;
						}
					}
				}
				else
				{
					if ((day > 0) && (day < 29))
					{

						//alert("day is between 0 and 29");

						// validate year
						if (year < currentDate.getFullYear())
						{

							//alert("year is valid (4)");

							return true;
						}
					}
				}
			}
		}

		alert('Invalid Date of Birth');
		//redirect a DOB error to a special page to be used for debugging purposes
		//20051121tz rediect removed as this problem has been fixed
		//var URL = new String("/portal/registrationError.jsp?DOB=" + dateString);
		//window.location = URL;
		return false;
	}
	return true;
}

// Function to determin if it's a leap year
// or not.  Calculates to 400 year accuracy but
// does not accommodate the full Gregorian calendar (1000 years).
function isLeapYear(value) {
	var inYear = parseInt(value);
	if (inYear % 4 == 0) {
		if (inYear % 100 == 0) {
			return (inYear % 400 == 0);
		} else {
			return (true);
		}
	} else {
		return (false);
	}
}