/**
 * Main Form validation method.
 */
function validProfile( form ) {
	var fieldErrorCount = 0;
	var fieldErrorMessage = "<b>The following errors were found:</b><br>\n";
	var focusSet = false;
	
	if (oldBorderStyle == 'blank') {
		oldBorderStyle = form.elements[0].style.border;
	} else {
		resetBorders(form);
	}
	
	isFocusSet = false;
	
	if (isEmpty(form.firstName.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "First Name is required.<br>\n";
		setFocus(form.firstName);
	} else {
		fValue = validateName(form.firstName.value);
		if (fValue != f_OK) {
			setFocus(form.firstName);
			fieldErrorCount++;
			fieldErrorMessage += "First Name is invalid.<br>\n";	
		}
	}

	// Middle name is not required, but edit if value is present.
	if (!isEmpty(form.middleName.value)) {
		fValue = validateName(form.middleName.value);
		if (fValue != f_OK) {
			setFocus(form.middleName);
			fieldErrorCount++;
			fieldErrorMessage += "Middle name is invalid.<br>\n";	
		}
	}
		
	if (isEmpty(form.lastName.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "Last Name is required.<br>\n";
		setFocus(form.lastName);
	} else {
		fValue = validateName(form.lastName.value);
		if (fValue != f_OK) {
			setFocus(form.lastName);
			fieldErrorCount++;
			fieldErrorMessage += "Last Name is invalid.<br>\n";	
		}
	}
			
	// Suffix is not required, but edit if value is present.
	if (!isEmpty(form.suffix.value)) {
		fValue = validateName(form.suffix.value);
		if (fValue != f_OK) {
			setFocus(form.suffix);
			fieldErrorCount++;
			fieldErrorMessage += "Name suffix is invalid.<br>\n";	
		}
	}	
	
	// nickName is not required, but edit if value is present.
	if (!isEmpty(form.nickName.value)) {
		fValue = validateName(form.nickName.value);
		if (fValue != f_OK) {
			setFocus(fform.nickName);
			fieldErrorCount++;
			fieldErrorMessage += "Nickname name is invalid.<br>\n";	
		}
	}
		
	if (isEmpty(form.address1.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "Address line 1 is required.<br>\n";
		setFocus(form.address1);
	} else {
		fValue = validateAddress(form.address1.value);
		if (fValue != f_OK) {
			setFocus(form.address1);
			fieldErrorCount++;
			fieldErrorMessage += "Address line 1 is invalid.<br>\n";	
		}
	}

	// Address line 2 is not required, but edit if value is present.
	if (!isEmpty(form.address2.value)) {
		fValue = validateAddress(form.address2.value);
		if (fValue != f_OK) {
			setFocus(form.address2);
			fieldErrorCount++;
			fieldErrorMessage += "Address line 2 is invalid.<br>\n";	
		}
	}
	
	if (isEmpty(form.city.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "City is required.<br>\n";
		setFocus(form.city);
	} else {
		fValue = validateAddress(form.city.value);
		if (fValue != f_OK) {
			setFocus(form.city);
			fieldErrorCount++;
			fieldErrorMessage += "City is invalid.<br>\n";	
		}
	}
		
	if (isEmpty(form.state.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "State is required.<br>\n";
		setFocus(form.state);
	} else {
		fValue = validateState(form.state.value);
		if (fValue != f_OK) {
			setFocus(form.state);
			fieldErrorCount++;
			fieldErrorMessage += "State is invalid.<br>\n";	
		} else {
			form.state.value = formatState(form.state.value);
		}
	}
	
	if (isEmpty(form.postalCode.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "Postal Code is required.<br>\n";
		setFocus(form.postalCode);
	} else {
		fValue = validatePostalCode(form.postalCode.value);
		if (fValue != f_OK) {
			setFocus(form.postalCode);
			fieldErrorCount++;
			fieldErrorMessage += "Postal Code is invalid.<br>\n";	
		} else {
			form.postalCode.value = formatPostalCode(form.postalCode.value);
		}
	}

	// Phone is not required, but edit if value is present.
	if (!isEmpty(form.phone.value)) {
		fValue = validatePhoneNumber(form.phone.value);
		if (fValue != f_OK) {
			setFocus(form.phone);
			fieldErrorCount++;
			fieldErrorMessage += "Phone Number is invalid.<br>\n";
		} else {
			form.phone.value = formatPhoneNumber(form.phone.value);
		}
	}
	
	// Extension is not required, but edit if value is present.
	if (!isEmpty(form.extension.value)) {
		fValue = validateExtension(form.extension.value);
		if (fValue != f_OK) {
			setFocus(form.extension);
			fieldErrorCount++;
			fieldErrorMessage += "Phone extension is invalid.<br>\n";
		}
	}
	
	if ( fieldErrorCount > 0 ) {
		var visElement;
		visElement = document.getElementById("csvDialog");
		visElement.style.display = "block";
		visElement.style.marginBottom = "15px";
				
		visElement = document.getElementById("csvDialogTitle");
		visElement.style.display = "block";

		visElement = document.getElementById("csvDialogWindow");
		visElement.innerHTML = fieldErrorMessage;
		visElement.style.display = "block";
		return false;
	}
	return true;

}
