<script language="JavaScript1.1" type="text/javascript">
<!--
	function validate(form) {
		var i = 0;
		var msg = '';
		var focusField;
		for (i = 0; i < form.elements.length; i++) {
			if (form.elements[i].type != undefined) {
				if (form.elements[i].name.indexOf("_required") > 0
					&& form.elements[i].value == ''
					&& form.elements[i].name.substring(0,2) != 'h.'
					&& form.elements[i].disabled == false) {
					msg = msg + formatFieldName(form.elements[i].name.substring(0, form.elements[i].name.indexOf("_required"))) + ' is a required field.\n';
					setColor(form.elements[i], false);
					if (focusField == undefined) {
						focusField = form.elements[i];
					}
				}
				else {
					if ((form.elements[i].type != 'submit') && (form.elements[i].type != 'reset') && (form.elements[i].type != 'button')) {
						setColor(form.elements[i], true);
					}
				}
				if (form.elements[i].name.toLowerCase().indexOf("email") > -1
					&& form.elements[i].value.length > 0
					&& form.elements[i].disabled == false) {
					if (!isEmail(form.elements[i].value)) {
						msg = msg + formatFieldName(form.elements[i].name) + ' does not appear to be a valid email address.\n';
						setColor(form.elements[i], false);
					}
				}
			}
		}
		if (msg.length > 0) {
			msg = 'The following fields are required.\nThey have been highlighted to help you locate the required fields.\n\n'+ msg;
			alert(msg);
			if (focusField.type == 'text') {
				focusField.select();
			}
			focusField.focus();
			return false;
		}
		else {
			return true;
		}
	}
	function setColor(el, normal) {
		if (el.style) {
			if (normal) {
				el.style.fontWeight = "normal";
				el.style.color = "black";
				el.style.backgroundColor = "white";
			} else {
				el.style.fontWeight = "bold";
				el.style.color = "black";
				el.style.backgroundColor = "#FFCBCD";
			}
		}
	}
	function formatFieldName(name) {
		//remove the _ 
		var tmp = name;
		while (tmp.indexOf('_') > 0) {
			tmp = tmp.replace('_', ' ');
		}
		tmp = toTitleCase(tmp);
		return tmp;
	}
	function toTitleCase(str) {
		var tmp = str.toLowerCase();
		var newStr = '';
		var currentIndex = 0;
		var nextIndex = 0;
		do  {
			newStr = newStr + tmp.substring(currentIndex, currentIndex + 1).toUpperCase();
			nextIndex = tmp.indexOf(' ', currentIndex + 1);
			if (nextIndex == -1) {
				nextIndex = tmp.length;
			}
			newStr = newStr + tmp.substring(currentIndex + 1, nextIndex) + ' ';
			currentIndex = nextIndex + 1;
		} while (currentIndex < tmp.length && currentIndex != -1)
		return newStr;
	}
	function isEmail(string) {
		if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
			return true;
		else
			return false;
	}
	function copyValue(fromField, to) {
		var value = fromField.value;
		var toField = eval('document.' + fromField.form.name + '.' + to);
		toField.value = value;
	}
	function spotCheckCreditCardNumber(field) {
		// this check is basically just to make sure enough digits have been entered, nothing more.
		if (field.value.search(/^((?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$/) != -1) {
			return true;
		}
		else {
			alert('The credit card does not appear to be valid, please verify that is correct.');
			field.focus();
			field.select();
			setColor(field, false);
			return false;
		}
	}
//-->
</script>
