//updated 7/9/04 djb, use dropdown for birthdate year, per wo#27649
function ValidateCustomForm(objForm, nSignUpAge)
{
	if (objForm == null) objForm = document.customForm;
	if (nSignUpAge == null) nSignUpAge = 13;
	var isOK = true;
	var today = new Date();
	var theYear = today.getFullYear();
	var theMonth = today.getMonth();
	with (objForm) {
		if (objForm.NameRequired) {
			if (isOK && (FirstName.value.length < 2)) {
				alert("Please enter your First Name.");
				FirstName.focus();
				isOK = false;
			}
			if (isOK && (LastName.value.length < 2)) {
				alert("Please enter your Last Name.");
				LastName.focus();
				isOK = false;
			}
		}
		if (objForm.AddressRequired) {
			if (isOK && (Address.value.length < 2)) {
				alert("Please enter your Address.");
				Address.focus();
				isOK = false;
			}
		}
		if (objForm.CityRequired) {
			if (isOK && (City.value.length < 2)) {
				alert("Please enter the City where you live.");
				City.focus();
				isOK = false;
			}
		}
		if (objForm.StateRequired && isOK) {
			var nStateLen = parseInt(StateSize.value);
			if ( (nStateLen > 0 && State.value.length < nStateLen) || (State.value.length == 0)	) {
				alert("Please enter your " + StateLabel.value + ".");
				State.focus();
				isOK = false;
			}
		}
		if (objForm.PostalCodeRequired && isOK) {
			var nZipLen = parseInt(PostalCodeSize.value);
			if ( (nZipLen > 0 && PostalCode.value.length < nZipLen) || (PostalCode.value.length == 0)	) {
				alert("Please enter your " + PostalCodeLabel.value + ".");
				PostalCode.focus();
				isOK = false;
			}
		}
		if (objForm.CountryRequired) {
			if (isOK && (Country.value.length < 2)) {
				alert("Please enter your Country.");
				Country.focus();
				isOK = false;
			}
		}
		if (objForm.DayPhoneRequired) {
			if (isOK && (DayPhone.value.length < 10)) {
				alert("Please enter your Daytime Phone. (Please include your area code.)");
				DayPhone.focus();
				isOK = false;
			}
		}
		if (objForm.MobilePhoneRequired) {
			if (isOK && (MobilePhone.value.length < 10)) {
				alert("Please enter your Mobile Phone. (Please include your area code.)");
				MobilePhone.focus();
				isOK = false;
			}
		}
		if (objForm.EvePhoneRequired) {
			if (isOK && (EvePhone.value.length < 10)) {
				alert("Please enter your Evening Phone. (Please include your area code.)");
				EvePhone.focus();
				isOK = false;
			}
		}
		if (objForm.BirthdateRequired) {
			if (isOK && (BirthMonth.selectedIndex == 0)) {
				alert("Please select the month of your birth.");
				BirthMonth.focus();
				isOK = false;
			}
			if (isOK && (BirthDay.selectedIndex == 0)) {
				alert("Please select the day of your birth.");
				BirthDay.focus();
				isOK = false;
			}
			if (isOK && (BirthYear.selectedIndex == "" || BirthYear.value == "" || isNaN(BirthYear.value)) ) {
				alert("Please enter the Year of your Birthdate.");
				BirthYear.focus();
				isOK = false;
			}
			else if (isOK) { // Validate Age
				var nAge, dBirthDay;
				if (BirthYear.options) {
					dBirthDay = new Date(BirthMonth.options[BirthMonth.selectedIndex].value + "/" + BirthDay.options[BirthDay.selectedIndex].value + "/" + BirthYear.options[BirthYear.selectedIndex].value);
				}
				else {
					dBirthDay = new Date(BirthMonth.options[BirthMonth.selectedIndex].value + "/" + BirthDay.options[BirthDay.selectedIndex].value + "/19" + BirthYear.value);
				}
	  
				//Define a variable to hold the anniversary of theBirthdate in the current year
				var dBirthdateThisYear = new Date(today);
				dBirthdateThisYear.setDate(dBirthDay.getDate());
				dBirthdateThisYear.setMonth(dBirthDay.getMonth());
	  
				//Compare current date to dBirthdateThisYear
				//Calculate age based on whether or not we have reached dBirthdateThisYear
				if (today < dBirthdateThisYear) {
					nAge = today.getFullYear() - dBirthDay.getFullYear() - 1;
				}
				else {
					nAge = today.getFullYear() - dBirthDay.getFullYear();
				}
				if (nAge < nSignUpAge) {
					alert("Sorry, you must be at least " + nSignUpAge + " to complete this form.");
					BirthYear.focus();
					isOK = false;
				}
			}
		}
		else if (objForm.BirthYear) {
			if (isOK) {
				var nYear = 0;
				if (BirthYear.options) {
					if (BirthYear.selectedIndex > 0) nYear = BirthYear.options[BirthYear.selectedIndex].value;
				}
				else {
					if (BirthYear.value != "" && !isNaN(BirthYear.value)) nYear = parseInt("19" + BirthYear.value);
				}
				
				if ((theYear - nYear) < nSignUpAge) {
					alert("Sorry, you must be at least " + nSignUpAge + " to complete this form.");
					BirthYear.focus();
					isOK = false;
				}
			}
		}
		if (objForm.GenderRequired) {
			if (isOK && !Gender[0].checked && !Gender[1].checked) {
				alert("Please select your gender.");
				Gender[0].focus();
				isOK = false;
			}
		}
		if (objForm.EmailFromRequired) {
			if (isOK && ! (EmailFrom.value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)) {
				alert("Please enter a valid Email Address.\n\r A valid email address should look like yourname@yourdomain.com");
				EmailFrom.focus();
				isOK = false;
			}
		}
	}

	return isOK;
}

function funFillForm(objForm) {
//Fill in the Form with the ELS User's Values

	if (objForm == null) objForm = document.customForm;

	with (objForm) {
		if (objForm.FirstName) FirstName.value = sFirstName;
		if (objForm.LastName) LastName.value = sLastName;
		if (objForm.Address) Address.value = sAddress;
		if (objForm.City) City.value = sCity;
		if (objForm.State) State.value = sState;
		if (objForm.PostalCode) PostalCode.value = sPostCode;
		if (objForm.DayPhone) DayPhone.value = sDayPhone;
		if (objForm.EvePhone) EvePhone.value = sEvePhone;
		if (objForm.EmailFrom) EmailFrom.value = sEmailFrom;
		if (objForm.Gender) {
			if (sGender.toLowerCase() == "m") Gender[1].checked = true;
			else if (sGender.toLowerCase() == "f") Gender[0].checked = true;
		}
		if (sBirthdate != "") {
			var dBirthDate = new Date(sBirthdate);
			BirthMonth.selectedIndex = dBirthDate.getMonth()+1;
			BirthDay.selectedIndex = dBirthDate.getDate();
			var TheYear = dBirthDate.getFullYear();
			for (i=0;i<BirthYear.options.length;i++) {
				if (BirthYear.options[i].value == TheYear) {
					BirthYear.selectedIndex = i;
				}
			}
		}
	}
}
