function checkRequired(field, msg) {
	//checks if the value entered in the field is blank
	//and displays an alert box 
	if (field.value.length == 0) {
		alert("Please enter the " + msg + ".");
		field.focus();
		return false;
	}
	return true;
}

function checkDropDown(field, msg) {
	//checks if an item from the drop down box is selected.
	//and displays an alert box 
	if (field.selectedIndex < 0) {
		alert("Please select the " + msg + " from the list provided.");
		field.focus();
		return false;
	}
	return true;
}

function validateSSN(ssn) {
	//checks for SSN - 123-45-6789
	var ssnExpr = /^(\d){3}-(\d){2}-(\d){4}$/;
	if (ssn.value.length > 0) 
		if (!ssn.value.match(ssnExpr)) {
			alert("Please enter a valid SSN in the format xxx-xx-xxxx");
			ssn.focus();
			return false;
		}
	return true;
}

function validateFedEmpID(fedempid) {
	//checks for Federal Employee ID - 12-3456789
	var fedempidExpr = /^(\d){2}-(\d){7}$/;
	if (fedempid.value.length > 0) 
		if (!fedempid.value.match(fedempidExpr)) {
			alert("Please enter a valid Federal Employee ID in the format xx-xxxxxxx");
			fedempid.focus();
			return false;
		}
	return true;
}


function validateEmail(email) {
	//checks for email that contains any character/number/. followed by @
	//followed by character/number/. and should end with .xx or .xxx
	var emailExpr = /^(\S+@)[A-Za-z0-9\-^\.]+((\.com)|(\.biz)|(\.info)|(\.edu)|(\.gov)|(\.mil)|(\.net)|(\.org)|(\.[A-Za-z]{2}))$/;
	//var emailExpr = /(^(\w)(\w|\d|\.)*@(\w|\d|\.)*(\w)(\.(\w){2,3})$)/;
	if (email.value.length > 0) 
		if (!email.value.match(emailExpr)) {
			alert("Please enter a valid email in the format abc@xyz.com");
			email.focus();
			return false;
		}
	return true;
}

function validateZip(zip) {
	//checks for zip code - 12345-6789
	var zipExpr = /(^((\d){5})$|^((\d){5}-(\d){4})$)/;
	if (zip.value.length) {
		if (!zip.value.match(zipExpr)) {
			alert("Please enter a valid US Zip Code.");
			zip.focus();
			return false;
		}
	}
	return true;
}

function validatePosNumber(field, msg) {
	//checks for a number greater than zero
	if(isNaN(field.value) || (field.value < 0)) {
		alert("Please enter a valid " + msg + ".");
		field.focus();
		return false;
	}
	return true;
}

function validateUSPhone(phone) {
	var phExpr1 = /^\d{3}\-\d{3}\-\d{4}\s*$/g;
	var phExpr2 = /^\(\d{3}\)\d{3}\-\d{4}\s*$/g;
	//var phExpr1 = /^\s*\d{3}([ \-\/\.])?\d{3}([ \-\/\.])?\d{4}\s*$/g;
	//var phExpr2 = /^\s*\(\d{3}\)([ \-\/\.])?\d{3}([ \-\/\.])?\d{4}\s*$/g;
	if (!phone.value.match(phExpr1) && !phone.value.match(phExpr2)) {
		alert("Please enter a valid US phone number in the format 123-456-7890 or (123)456-7890.");
		phone.focus();
		return false;
	}
	return true;
}

function validateUSFax(fax) {
	var faxExpr1 = /^\d{3}\-\d{3}\-\d{4}\s*$/g;
	var faxExpr2 = /^\(\d{3}\)\d{3}\-\d{4}\s*$/g;
	//var faxExpr1 = /^\s*\d{3}([ \-\/\.])?\d{3}([ \-\/\.])?\d{4}\s*$/g;
	//var faxExpr2 = /^\s*\(\d{3}\)([ \-\/\.])?\d{3}([ \-\/\.])?\d{4}\s*$/g;
	if (!fax.value.match(faxExpr1) && !fax.value.match(faxExpr2)) {
		alert("Please enter a valid US fax number (123-456-7890).");
		fax.focus();
		return false;
	}
	return true;
}

function validatePhoneNumber(field1, field2, field3, msg) {
	//checks for a number greater than zero
	if(field1.value.length != 3) {
		alert("Please complete the " + msg + ".");
		field1.focus();
		return false;
	}
	if(field2.value.length != 3) {
		alert("Please complete the " + msg + ".");
		field2.focus();
		return false;
	}
	if(field3.value.length != 4) {
		alert("Please complete the " + msg + ".");
		field3.focus();
		return false;
	}
	if(!validatePosNumber(field1, msg))
		return false;
	if(!validatePosNumber(field2, msg))
		return false;
	if(!validatePosNumber(field3, msg))
		return false;
	return true;
}
