function setFocus(formField) {
	formField.focus();
}

function validRequired(formField, fieldLabel) {
	var result = true;

	if (formField.value == "") {
		alert('Please enter a value in the "' + fieldLabel + '" field.');
		formField.focus();
		result = false;
	}

	return result;
}

function validEmail(formField, fieldLabel, required) {
	var result = true;

	if (required && !validRequired(formField, fieldLabel))
		result = false;

	if (result && formField.value && ((formField.value.length < 3) || !isEmailAddr(formField.value)) ) {
		alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		formField.focus();
		result = false;
	}

	return result;

}

function validNum(formField, fieldLabel, required) {
	var result = true;

	if (required && !validRequired(formField, fieldLabel))
		result = false;

	if (result && formField.value) {
		if (isNaN(formField.value)) {
			alert('Please only enter numbers into the "' + fieldLabel + '" field.');
			formField.focus();
			result = false;
		}
	}

	return result;
}

function validDate(formField, fieldLabel, required) {
	var result = true;

	if (required && !validRequired(formField, fieldLabel))
		result = false;

	if (result && formField.value) {
		var elems = formField.value.split("/");

		result = (elems.length == 3); // should be three components

		if (result) {
			var month = parseInt(elems[0], 10);
			var day 	= parseInt(elems[1]);
			var year	= parseInt(elems[2], 10);
			result		= !isNaN(month) && (month > 0) && (month < 13) &&
									!isNaN(day) && (day > 0) && (day < 32) &&
									!isNaN(year) && (elems[2].length == 4);
		}

		if (!result) {
			alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel + '" field.');
			formField.focus();
		}
	}

	return result;
}

function isEmailAddr(email) {
	var result = false;
	var theStr = new String(email);
	var index	 = theStr.indexOf("@");

	if (index > 0) {
		var pindex = theStr.indexOf(".", index);
		if ((pindex > index+1) && (theStr.length > pindex+1))
			result = true;
	}

	return result;
}

function validTel(formField, fieldLabel, required) {
	var result = true;

	if (required && !validRequired(formField, fieldLabel))
		result = false;

	if (result && formField.value) {
		var alertText = 'Please only use the numbers "0-9", a "+" symbol as the 1st character or spaces in the "'
		var telString = formField.value;
		var newString = "";
		var stringSign = "";

		if (telString.indexOf(".") > -1) {
			newString = "!";
		} else {
			if (telString.charAt(0) == '+') {
				stringSign = "+";
				telString = telString.substr(1, telString.length);
			}

			if (telString.charAt(0) == '-') {
				stringSign = "!";
				telString = telString.substr(1, telString.length);
			}

			if (telString.charAt(0) == ' ') {
				stringSign = "!";
				telString = telString.substr(1, telString.length);
				alertText = 'The 1st character must be either a number between "0-9" or a "+" symbol in the "'
			}

			arrayOfStrings = telString.split(" ")

			for (var i = 0; i < arrayOfStrings.length; i++) {
				newString = newString + arrayOfStrings[i];
			}

			newString = stringSign + newString;
		}

		if (isNaN(newString)) {
			alert(alertText + fieldLabel + '" field.');
			formField.focus();
			result = false;
		}
	}

	return result;
}

function validPasswords(formField, confField) {
	var result = true;

	if (formField.value != confField.value) {
		alert('Both password fields must be the same.');
		confField.focus();
		result = false;
	}

	return result;
}
