function validateTextField(field) {
	var result = new Array(METHOD_RESULT_PASS, null);
	if (field.value != null) {
		field.value = trim(field.value);
	}
	var emptyValue = isEmpty(field.value);
	var classes = field.className.split(' ');
	for (var i = 0; (i < classes.length && (result[0] == METHOD_RESULT_PASS)); i++) {
		if (classes[i] == 'required') {
			result = validateRequiredTextFieldValue(field.value);
		} else if (classes[i] == 'requiredIGTZ') {
			result = validateRequiredIntGreaterThanZeroTextFieldValue(field.value);
        } else if (classes[i] == 'requiredSFPN') {
            result = validateRequiredSignedFloatingPointNumberTextFieldValue(field.value);
        } else if (classes[i] == 'requiredSFPNNN') {
            result = validateRequiredSignedFloatingPointNumberNotNegativeTextFieldValue(field.value);
        }
		if (!emptyValue) {
			if (classes[i] == 'email') {
				if (!validateEmail(field.value)) {
					result[0] = METHOD_RESULT_FAIL;
					result[1] = field.value + ' is an invalid e-mail address';
				}
			}
		}
	}
	return result;
}

function validateSelectMultiple(field) {
	var selectedValues = new Array();
	var result = new Array(METHOD_RESULT_PASS, null);
	var theOptions = field.options;
	for (var i = 0; i < theOptions.length; i++) {
		if (theOptions[i].selected) {
			selectedValues.push(theOptions[i].value);
		}
	}
	var emptyValue = isEmptySelectMultipleValue(selectedValues);
	var classes = field.className.split(' ');
	for (var i = 0; (i < classes.length && (result[0] == METHOD_RESULT_PASS)); i++) {
		if (classes[i] == 'required') {
			if (emptyValue) {
				result = new Array(METHOD_RESULT_FAIL, REQUIRED_MSG);
			}
		}
		if (!emptyValue) {
			// add other validation methods here
		}
	}
	return result;
}
function validateSelectOne(field) {
	var result = new Array(METHOD_RESULT_PASS, null);
	var selectValue = getSelectOneValue(field);
	var emptyValue = isEmptySelectValue(field.value);
	var classes = field.className.split(' ');
	for (var i = 0; (i < classes.length && (result[0] == METHOD_RESULT_PASS)); i++) {
		if (classes[i] == 'required') {
			result = validateRequiredSelectOneValue(selectValue);
		}
		if (!emptyValue) {
			// add other validation methods here
		}
	}
	return result;
}

function validateCheckbox(field) {
	var result = new Array(METHOD_RESULT_PASS, null);
	return result;
}

function validateTextArea(field) {
	var result = new Array(METHOD_RESULT_PASS, null);
	if (field.value != null) {
		field.value = trim(field.value);
	}
	var emptyValue = isEmpty(field.value);
	var classes = field.className.split(' ');
	for (var i = 0; (i < classes.length && (result[0] == METHOD_RESULT_PASS)); i++) {
		if (classes[i] == 'required') {
			result = validateRequiredTextFieldValue(field.value);
		}
		if (!emptyValue) {
			// add other validation methods here
		}
	}
	if (result[0] != METHOD_RESULT_PASS) {
		result[1] = '<br/>' + result[1];
	}
	return result;
}
function validateRadio () {
	var result = new Array(METHOD_RESULT_PASS, null);
	return result;
}
function validateHidden () {
	var result = new Array(METHOD_RESULT_PASS, null);
	return result;
}
function validateFile(field) {
	var result = new Array(METHOD_RESULT_PASS, null);
	var value = ""; // seperate var as security violation to set value attribute
	if (field.value != null) {
		value = trim(field.value);
	}
	var classes = field.className.split(' ');
	for (var i = 0; (i < classes.length && (result[0] == METHOD_RESULT_PASS)); i++) {
		if (classes[i] == 'required') {
			result = validateRequiredTextFieldValue(value);
		}
	}
	return result;
}

