//############################################################
//# FORM VALIDATION
//############################################################

var _frm_fld = "";
var _err_msg = "";
var _field_count = 0;
var _field_name = new Array();
var _field_desc = new Array();
var _field_datatype = new Array();
var _field_required = new Array();

function validate(form) {
	validateform(form);
	if (_err_msg.length > 0) {
		alert(_err_msg);
		try { _frm_fld.focus(); } catch(err) {}
		_frm_fld = "";
		_err_msg = "";
		return(false);
	} else {
		return(true);
	}
}

//ADD DATE AND TIME JOINS!!!!!!

function validateform(form) {
	for (f=0; f<form.elements.length; f++) {
		for (n=0; n<_field_name.length; n++) {
			if (_field_name[n] == form.elements[f].name) {
				if (_field_required[n] == "1" && !form.elements[f].value) {
					_frm_fld = form.elements[f];
					_err_msg = "Please complete " + _field_desc[n] + ".";
					break;
				} else if (_field_datatype[n] == "date" && form.elements[f].value && !isdate(form.elements[f].value)) {
					_frm_fld = form.elements[f];
					_err_msg = "Please enter a valid date for " + _field_desc[n] + ".";
					break;
				} else if (_field_datatype[n] == "number" && form.elements[f].value && !isnumeric(form.elements[f].value)) {
					_frm_fld = form.elements[f];
					_err_msg = "Please enter a valid number for " + _field_desc[n] + ".";
					break;
				} else if (_field_datatype[n] == "time" && form.elements[f].value) {
					form.elements[f].value = form.elements[f].value.replace(" pm","")
					form.elements[f].value = form.elements[f].value.replace(" am","")
					if (!istime(form.elements[f].value + " " + form.elements[f + 1].value)) {
						_frm_fld = form.elements[f];
						_err_msg = "Please enter a valid time for " + _field_desc[n] + ".";
						break;
					} else {
						form.elements[f].value = form.elements[f].value + " " + form.elements[f + 1].value;
					}
				}
			}
		}
	}
}

//############################################################
//# NUMERIC FIELDS
//############################################################

function form_add(f) {
	var _field = document.getElementsByName(f)[0];
	if (isnumeric(_field.value) && _field.value.length > 0) {
		_field.value = parseFloat(_field.value) + 1;
	} else if (_field.value.length == 0) {
		_field.value = "1";
	}
}

function form_sub(f) {
	var _field = document.getElementsByName(f)[0];
	if (isnumeric(_field.value) && _field.value.length > 0) {
		_field.value = parseFloat(_field.value) - 1;
	} else if (_field.value.length == 0) {
		_field.value = "0";
	}
}

//############################################################
//# DISABLE/ENABLE
//############################################################

function disableform() {
	document.body.style.cursor = "wait";
	var input = document.getElementsByTagName("INPUT");
	for (i=0; i<input.length; i++) {
		input[i].disabled = true;
	}
}

function enableform() {
	document.body.style.cursor = "auto";
	var input = document.getElementsByTagName("INPUT");
	for (i=0; i<input.length; i++) {
		input[i].disabled = false;
	}
}

//############################################################
//# FORM IDENTIFICATION
//############################################################

function getformobj(f) {
	var _form = f;
	while (_form.tagName != "FORM") {
		_form = _form.parentElement;
	}
	return(_form);
}