function fCheckObj(sFORM) {
	this.form = sFORM;
	this.names = new Object();
}
fCheckObj.prototype.addNames = function() {
	for (var i = 0; i < arguments.length; i += 2) {
		this.names[arguments[i]] = arguments[i + 1];
	}
};
fCheckObj.prototype.addNoQuote = function() {
	if (!this.noQuote) { this.noQuote = new Array(); }
	for (var i = 0; i < arguments.length; i++) {
		this.noQuote[this.noQuote.length] = arguments[i];
	}
};
fCheckObj.prototype.addReqIn = function() {
	if (!this.reqInput) { this.reqInput = new Array(); }
	for (var i = 0; i < arguments.length; i++) {
		this.reqInput[this.reqInput.length] = arguments[i];
	}
};
fCheckObj.prototype.addReqCheck = function() {
	if (!this.reqCheck) { this.reqCheck = new Array(); }
	for (var i = 0; i < arguments.length; i++) {
		this.reqCheck[this.reqCheck.length] = arguments[i];
	}
};
fCheckObj.prototype.addReqSel = function() {
	if (!this.reqSelect) { this.reqSelect = new Array(); }
	for (var i = 0; i < arguments.length; i++) {
		this.reqSelect[this.reqSelect.length] = arguments[i];
	}
};
fCheckObj.prototype.addEmail = function() {
	if (!this.email) { this.email = new Array(); }
	for (var i = 0; i < arguments.length; i++) {
		this.email[this.email.length] = arguments[i];
	}
};
fCheckObj.prototype.addMaxVal = function(sID, iVal) {
	if (!this.maxValue) { this.maxValue = new Array(); }
	for (var i = 0; i < arguments.length; i += 2) {
		this.maxValue[this.maxValue.length] = { id: arguments[i], value: arguments[i + 1] } ;
	}
};
fCheckObj.prototype.addMinVal = function(sID, iVal) {
	if (!this.minValue) { this.minValue = new Array(); }
	for (var i = 0; i < arguments.length; i += 2) {
		this.minValue[this.minValue.length] = { id: arguments[i], value: arguments[i + 1] } ;
	}
};
fCheckObj.prototype.addNotEqual = function(sID1, sID2, sMSG) {
	if (!this.notEqual) { this.notEqual = new Array(); }
	this.notEqual[this.notEqual.length] = { val1: sID1, val2: sID2, msg: sMSG };
};
fCheckObj.prototype.addMatch = function(sID1, sID2, sMSG) {
	if (!this.match) { this.match = new Array(); }
	this.match[this.match.length] = { val1: sID1, val2: sID2, msg: sMSG };
};
fCheckObj.prototype.getName = function(sID) {	
	return (this.names[sID]) ? this.names[sID] : sID.toUpperCase();
};
fCheckObj.prototype.submit = function() {
	if (this.validate()) {
		if (!this.onSubmit || this.onSubmit()) { document[this.form].submit(); }
	}
};
fCheckObj.prototype.validate = function() {
	var f = document[this.form];
	var e = f.elements;
	var a;
	var b;
	if (this.reqInput) {
		a = this.reqInput;
		for (var i = 0; i < a.length; i++) {
			b = e[a[i]];
			if (b && !b.disabled && b.value == "") { 
				alert("Value Required: " + this.getName(a[i]));
				b.focus();
				return false;
			}
		}
	}
	if (this.reqCheck) {
		a = this.reqCheck;
		for (var i = 0; i < a.length; i++) {
			b = e[a[i]];
			if (b && !b.disabled && b.checked == false) { 
				alert("Required: " + this.getName(a[i]));
				b.focus();
				return false;
			}
		}
	}
	if (this.reqSelect) {
		a = this.reqSelect;
		for (var i = 0; i < a.length; i++) {
			b = e[a[i]];
			if (b && !b.disabled && b.selectedIndex == 0) { 
				alert("Must Select: " + this.getName(a[i]));
				b.focus();
				return false;
			}
		}
	}
	if (this.maxValue) {
		a = this.maxValue;
		for (var i = 0; i < a.length; i++) {
			b = e[a[i].id];
			if (b && !b.disabled && b.value.length > a[i].value) { 
				alert("Max length for " + this.getName(a[i].id) + " is " + a[i].value + ".\nYou are over by " + (b.value.length - a[i].value) + " characters.");
				b.focus();
				return false;
			}
		}
	}
	if (this.minValue) {
		a = this.minValue;
		for (var i = 0; i < a.length; i++) {
			b = e[a[i].id];
			if (b && !b.disabled && b.value.length < a[i].value) { 
				alert("Minimum length for " + this.getName(a[i].id) + " is " + a[i].value + " characters.");
				b.focus();
				return false;
			}
		}
	}
	if (this.noQuote) {
		a = this.noQuote;
		for (var i = 0; i < a.length; i++) {
			b = e[a[i]];
			if (b && !b.disabled && b.value.indexOf("'") != -1) {
				alert(this.getName(a[i]) + " cannot contain single quote or apostrophe!");
				b.focus();
				return false;
			}
		}
	}
	
	if (this.email) {
		a = this.email;
		for (var i = 0; i < a.length; i++) {
			b = e[a[i]];
			if (b && !b.disabled && b.value != "" && (b.value.indexOf("@") == -1 || b.value.indexOf(".") == -1)) {
				alert(this.getName(a[i]) + " is invalid!");
				b.focus();
				return false;
			}
		}
	}
	
	if (this.notEqual) {
		a = this.notEqual;
		for (var i = 0; i < a.length; i++) {
			b = a[i];
			if (e[b.val1] && e[b.val2] && e[b.val1].value == e[b.val2].value) {
				alert(b.msg);
				e[b.val2].focus();
				return false;
			}
		}
	}
	
	if (this.match) {
		a = this.match;
		for (var i = 0; i < a.length; i++) {
			b = a[i];
			if (e[b.val1] && e[b.val2] && e[b.val1].value != e[b.val2].value) {
				alert(b.msg);
				e[b.val2].focus();
				return false;
			}
		}
	}
	
	return true;
};