var formChk_errorMsgPre	= "Please answer or correct the following fields(s):\n\n";
var formChk_hiColor		= '#ff0000';
var formChk_loColor		= '#666666';
var formChk_formOk		= true;
var formChk_autoInit	= true;

function formChk_actOnError(lbl, test, msg) {
	if (test) {
		formChk_updateErrorMsg(msg);
		if (lbl != null) lbl.style.color = formChk_hiColor;
		formChk_formOk = false;
	}
}
function formChk_init(lbls) {
	if (formChk_autoInit) {
		if (lbls.length > 0) {
			formChk_loColor		= lbls[0].style.color;
		}
		formChk_autoInit	= false;
	}
	formChk_formOk		= true;
	formChk_errorMsg	= "";
	for (var i=0; i < lbls.length; i++) {
		lbls[i].style.color = formChk_loColor;
	}
}
function formChk_isFormOkAndAlert() {
	if (!formChk_formOk) {
		alert(formChk_errorMsgPre + formChk_errorMsg);
	}
	return formChk_formOk;
}

/****************************************************/
/****************************************************/

var reWhitespace	= /^\s+$/;
var reEmail			= /^.+@.+\..{2,3}$/;
var reInteger		= /(^-?\d\d*$)/;
var reDollarAmount	= /(^\d*([.]\d?\d?)?$)/;
var reUSPhone		= /^\d?\D?\d{3}\D?\d{3}\D?\d{4}$/;

function isAllowedEmail(s) {
	return (!(isEmpty(s)));
}

function isEmpty(s) {
	return ((s == null) || (s.length == 0));
}

function isWhitespace(s) {
	return (isEmpty(s) || reWhitespace.test(s));
}

function isInteger(s) {
	return (!(isEmpty(s)) && reInteger.test(s));
}

function isDollarAmount(s) {
	return (!(isEmpty(s)) && reDollarAmount.test(s));
}

function isEmail(s) {
	return (!(isEmpty(s)) && reEmail.test(s));
}

function isUSPhoneNumber(s) {
	return (!(isEmpty(s)) && reUSPhone.test(s));
}

function fieldsMatch(s1, s2) {
	return (s1 == s2);
}

function isRadioChecked(obj) {
	if (obj.length > 0) {
		for (var i = 0; i < obj.length; i++) {
			if (obj[i].checked == true) {
				return true;
			}
		}
	} else {
		return obj.checked;
	}
	return false;
}

function isCheckboxChecked(obj) {
	if (obj.length > 0) {
		for (var i = 0; i < obj.length; i++) {
			if (obj[i].checked == true) {
				return true;
			}
		}
	} else {
		return obj.checked;
	}
	return false;
}

function minCheckboxesChecked(obj, n) {
	var c = 0;
	for (var i = 0; i < obj.length; i++) {
		if (obj[i].checked == true) {
			c++;
			if (c >= n)	return true;
		}
	}
	return false;
}

function isCheckedFieldFilled(obj, t, o) {
	for (var i = 0; i < obj.length; i++) {
		if (o.toString().indexOf(i) != -1) continue;
		if (obj[i].checked == true) {
			if (isWhitespace(t[i].value)) {
				return false;
			}
		} else {
			if (!isWhitespace(t[i].value)) {
				return false;
			}
		}
	}
	return true;
}

function isDropdownSelected(obj) {
	if (obj.value == "") {
		return false;
	} else {
		return true;
	}
}

/****************************************************/
/****************************************************/

var formChk_errorMsg	= "";

function highlightLabel(styleObj) {
	styleObj.color = "#ff0000";
	styleObj.fontWeight = "bold";
}

function normalLabel(styleObj) {
	styleObj.color = "#000000";
	styleObj.fontWeight = "normal";
}

function formChk_updateErrorMsg(s) {
	formChk_errorMsg += ('- ' + s + '\n');
}

