
function handleFormSubmit() {
	try {
	
		if (!handleValidation()) {
			alert('There was a problem validating the information on this page.');
			return false;
		}

		if (!handleEmailSignup())
			alert('There was a problem while processing the email preferences.');
		
		return true;
	} 
	catch(e) {
		alert('There was a problem while processing the information on this page.\n\n');
		return false;
	}
}

function handleValidation() {
	try {
		return validatePage();
	}
	catch(e) {
		return false;
	}
}

function handleEmailSignup() {
	try {
		var optInChecked = (document.getElementById('EmailSignupCheckbox').checked);
		var optOutStatus = document.getElementById('EmailOptOutStatus').value;
		
		if (optInChecked == true && (optOutStatus == 'Y' || optOutStatus == '')) {
			var postUrl = getEmailSignupPostUrl();
			var postParameters = getEmailSignupPostParameters();
			hdiSjax.postAjaxRequest(postUrl, postParameters, processGetPost, 'txt');
		}
		return true;
	}
	catch(e) {
		return false;
	}
}

function getEmailSignupPostParameters() {
	try {
		var emailValue = document.getElementById("EmailAddressText").value;
		var firstNameValue = document.getElementById("FirstNameText").value;
		var lastNameValue = document.getElementById("LastNameText").value;
		var sourceValue = document.getElementById("EmailSignupSource").value;
		var ipAddressValue = document.getElementById("LocalIPAddress").value;
		var divCodeValue = document.getElementById("EmailDivisionCode").value;
		var dateTimeValue = createDateTimeStamp();
		var postStr = "EMAIL_ADDRESS=" + encodeURI(emailValue) + "&" +
						"FIRST_NAME=" + encodeURI(firstNameValue) + "&" +
						"LAST_NAME=" + encodeURI(lastNameValue) + "&" +
						"SOURCE=" + encodeURI(sourceValue) + "&" +
						"IP_ADDRESS=" + encodeURI(ipAddressValue) + "&" +
						"DIV_CODE=" + encodeURI(divCodeValue) + "&" +
						"DATE_TIME=" + encodeURI(dateTimeValue);
		return postStr;
	}
	catch(e) {
		return 'Error building email signup post parameters.';
	}
}

function validatePage() {
	try {
		var errMsg = '';
		var ctrlFirstName = document.getElementById('FirstNameText');
		var ctrlMiddleInit = document.getElementById('MiddleInitialText');
		var ctrlLastName = document.getElementById('LastNameText');
		var ctrlAddress1 = document.getElementById('Address1Text');
		var ctrlAddress2 = document.getElementById('Address2Text');
		var ctrlCity = document.getElementById('CityText');
		var ctrlState = document.getElementById('StateSelect');
		var ctrlZipCode = document.getElementById('ZipCodeText');
		var ctrlCountry = document.getElementById('CountrySelect');
		var ctrlProvince = document.getElementById('ProvinceText');
		var ctrlEmailAddress = document.getElementById('EmailAddressText');
		var ctrlConfirmEmail = document.getElementById('ConfirmEmailText');
		
		if (trimStr(ctrlFirstName.value).length == 0) {
			errMsg += 'First name is a required field. \n';
		}
		
		if (trimStr(ctrlLastName.value).length == 0) {
			errMsg += 'Last name is a required field. \n';
		}
		
		if (trimStr(ctrlAddress1.value).length == 0) {
			errMsg += 'Address is a required field. \n';
		}
		
		if (trimStr(ctrlCity.value).length == 0) {
			errMsg += 'City is a required field. \n';
		}
		
		if (trimStr(ctrlZipCode.value).length == 0) {
			errMsg += 'Zip code is a required field. \n';
		}
		
		if (trimStr(ctrlState.value).length == 0) {
			if (trimStr(ctrlProvince.value).length == 0) 
				errMsg += 'State is a required field. \n';
		}
		
		if (trimStr(ctrlCountry.value).length == 0) {
			errMsg += 'Country is a required field. \n';
		}
			
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(ctrlEmailAddress.value) != true) {
			errMsg += 'Email address is invalid. \n';
		}
		
		if (ctrlEmailAddress.value != ctrlConfirmEmail.value) {
			errMsg += 'Email address does not match Confirm email address. \n';
		}
		
		if (errMsg.length != 0) {
			alert(errMsg);
			return false;
		}
		else 
			return true;
	}
	catch(e) {
		return false;
	}
}
