function isEmpty(field) {
	return (field == null || field == undefined || !field.value.match("\\S"));
}

function isEmptyPhone(f1, f2, f3) {
	return (isEmpty(f1) && isEmpty(f2) && isEmpty(f3));
}
	
function checkText(field, message) {
	if (isEmpty(field)) {
		alert(message);
		field.focus();
		return false;
	}
	return true;
}

function checkNoText(field, message) {
	if (!isEmpty(field)) {
		alert(message);
		field.focus();
		return false;
	}
	return true;
}

function checkPhone(f1, f2, f3, message) {
	if (f1 == null || f2 == null || f3 == null || !f1.value.match("[0-9][0-9][0-9]") || !f2.value.match("[0-9][0-9][0-9]") || !f3.value.match("[0-9][0-9][0-9][0-9]")) {
		alert(message);
		f1.focus();
		return false;
	}
	return true;
}

function checkEmail(field, message) {
	if (!field.value.match("^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\\-+)|([A-Za-z0-9]+\\.+)|([A-Za-z0-9]+\\++))*[A-Za-z0-9]+@((\\w+\\-+)|(\\w+\\.))*\\w{1,63}\\.[a-zA-Z]{2,6}$")) {
		alert(message);
		field.focus();
		return false;
	}
	return true;
}

function checkRadioTF(fieldT,fieldF,message)
{
	if(fieldT == null || fieldF == null) { alert(message); return false; }
	
	if(fieldT.checked || fieldF.checked) return true;
	
	alert(message);
	fieldT.focus();
	return false;
}

function checkRadio(field, message) {
	if (field == null) {
		alert(message);
		return false;
	}
	for (var i = 0; i < field.length; i++)
		if (field[i].checked)
			return true;
	alert(message);
	field[0].focus();
	return false;
}

function checkSelect(field, message) {
	if (valueOfSelect(field) == "") {
		alert(message);
		field.focus();
		return false;
	}
	return true;
}

function valueOfSelect(field) {
	return field.options[field.selectedIndex].value;
}

function valueOfRadio(field) {
	for (var i = 0; i < field.length; i++)
		if (field[i].checked)
			return field[i].value;
	return undefined;
}

function checkDate(field, required, message) {
	if (required && isEmpty(field)) {
		field.value = 'MM/DD/YYYY';
		alert(message);
		field.focus();
		return false;
	}
	else if (!required && isEmpty(field))
		return true;
	else if (!field.value.match("^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d$")) {
		alert(message);
		field.focus();
		return false;
	}
	return true;
}

function dateInFuture(field) {
	// assumes field.value checks out to be a date.	
	var dt = new Date();
	dt.setTime(Date.parse(field.value));
	var dtNow = new Date();
	return (dt > dtNow);
	
}

function checkNumber(field, minimum, maximum, message) {
	if (isEmpty(field)) {
		alert(message);
		field.focus();
		return false;
	}
	if (isNaN(parseInt(field.value))) {
		alert(message);
		field.focus();
		return false;
	}
	var n = parseInt(field.value);
	if (minimum != NaN && n < minimum) {
		alert(message);
		field.focus();
		return false;
	}
	if (maximum != NaN && n > maximum) {
		alert(message);
		field.focus();
		return false;
	}
	return true;
}

function defaultField(field, val) {
	if (isEmpty(field))
		field.value = val;
}

