
	function addValidation (fieldName,displayName,fieldType,altMessage) {
		thingsToValidate[thingsToValidate.length] = new somethingToValidate(fieldName,displayName,fieldType,altMessage);
	}

	var thingsToValidate = new Array();

	function somethingToValidate (fieldName,displayName,fieldType,altMessage) {
		this.fieldName = fieldName;
		this.displayName = displayName;
		this.fieldType = fieldType;
		this.altMessage = altMessage;
	}

	// hands off validation for each field needing validation based on the validation type
	// to one of the functions below. add validation types as needed.
	function validate(frm) {
		// walk through all the validation objects that have been added
		for (var i = 0; i < thingsToValidate.length; i++) { 
			validateThis = thingsToValidate[i];			
			// calls the specific validation function for this
			// validation object based on the validationType...
			if (validateThis.fieldType=='credit') {
				if (!validate_credit(frm, validateThis)) {return false;};			
			} else {
				if (!eval('validate_' + validateThis.fieldType + '(frm,validateThis)')) {return false};
			}
		}
		return true;
	}


	function validate_text(frm, validateThis) {
		fld = eval('frm.' + validateThis.fieldName);
		if (fld.value=="") {
			if (validateThis.altMessage == '') {
				alert('Please enter a value for ' + validateThis.displayName + '.');
			} else {
				alert(validateThis.altMessage);
			}
			fld.focus();
			return false;
		}
		return true;
	}

        function validate_phone(frm, validateThis) {
                fld = eval('frm.' + validateThis.fieldName);
                if (isNaN(fld.value.substring(0,1)) && fld.value.substring(0,1) != "(") {
                        if (validateThis.altMessage == '') {
                                alert('Please enter a valid phone number for ' + validateThis
.displayName + '.');
                        } else {
                                alert(validateThis.altMessage);
                        }
                        fld.focus();
                        return false;
                }
                return true;
        }



	function validate_select (frm, validateThis) {
		oneChecked = false;
		fld = eval('frm.' + validateThis.fieldName);

		if (fld[fld.selectedIndex].value == '0') {
			if (validateThis.altMessage == '') {
				alert('Please make a selection for ' + validateThis.displayName + '.');				
			} else {
				alert(validateThis.altMessage);
			}
			fld.focus();
			return false;
		}
		return true;
	}

	function validate_checkOne (frm, validateThis) {
		oneChecked = false;
		fld = eval('frm.' + validateThis.fieldName);
		
		//if it's just one checkbox
		if (fld.length == null) {
			if (fld.checked) oneChecked = true;
		}
		// if it's an array of checkboxes
		else {
			for (var x = 0; x < fld.length; x++) {
				if (fld[x].checked) {
					oneChecked = true;
				}
			}
		}
		
		if (!oneChecked) {
			if (validateThis.altMessage == '') {
				alert('Please check at least one box under ' + validateThis.displayName + '.');
			} else {
				alert(validateThis.altMessage);
			}
			return false;
		}
		return true;
	}

