var form_err = false;
var form_msg = "";

function isBadInputVal(value) {
	return (!value || value == "") ? true : false;
}
function isBadEmailVal(value) {
	var regex = /^[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,6}$/;
	return (!regex.match(value)) ? true : false;
}
function checkField(form, field) {
	if (field.indexOf("-OR-") >= 0) {
		var field_xor = [];
		var field_cnt = 0;
		var field_arr = field.split("-OR-");
		for (var i=0; i<field_arr.length; i++) {
			var field_ent = field_arr[i] || null;
			if (field_ent.indexOf("-AND-") >= 0) {
				var mfield_arr = field_ent.split("-AND-");
				var mfield_xor = [];
				for (var ii=0; ii<mfield_arr.length; ii++) {
					var mfield_ent = mfield_arr[ii] || null;
					var mfield_elm = form[mfield_ent];
					if (mfield_elm) {
						var mfield_val = mfield_elm.value || "";
						if (isBadInputVal(mfield_val)) {
							mfield_xor.push(mfield_ent);
						} else {
						}
					}
				}
				if (mfield_xor.length > 0) {
					var mfield_tmp = mfield_xor.join(" and ")+" fields";
					field_xor.push(mfield_tmp);
				} else {
					field_cnt++;
				}
			} else {
				var field_elm = form[field_ent];
				if (field_elm) {
					var field_val = field_elm.value || "";
					if (isBadInputVal(field_val)) {
						field_xor.push(field_ent+" field");
					} else {
						field_cnt++;
					}
				}
			}
		}
		if (field_xor.length > 0 && field_cnt == 0) {
			form_err = true;
			form_msg += "Please enter a value for either the "+field_xor.join(" or the ")+".\n";
		}
	} else {
		var field_ent = field;
		var field_elm = form[field_ent];
		var field_val = field_elm.value || "";
		if (field_ent == 'email') {
			if (isBadEmailVal(field_val)) {
				form_err = true;
				form_msg += "Please enter a valid email address.\n";
			}
		} else {
			if (isBadInputVal(field_val)) {
				form_err = true;
				form_msg += "Please enter a value for the "+field_ent+" field.\n";
			}
		}
	}
}

function checkForm(form) {
	form_err = false;
	form_msg = "";
	var required_fld = $('validatefields');
	if (required_fld) {
		var required_txt = $F(required_fld);
		if (required_txt && required_txt != "") {
			var frm_fields = required_txt.split(",");
			frm_fields.each(function(s){checkField(form,s);});
			if (form_err) {
				alert(form_msg);
				return false;
			}
		}
	}
	return true;
}