function _CF_onError(form_object, input_object, object_value, error_message) {
	alert(error_message);
	return false;
}

function _CF_hasValue(obj, obj_type) {
	if (obj_type == "TEXT" || obj_type == "PASSWORD") {
		if (obj.value.length == 0)
			return false;
		else
			return true;
	}
	else if (obj_type == "SELECT") {
		for (i=0; i < obj.length; i++) {
			if (obj.options[i].selected)
				return true;
		}
		return false;
	}
	else if (obj_type == "SINGLE_VALUE_RADIO" || obj_type == "SINGLE_VALUE_CHECKBOX") {
		if (obj.checked)
			return true;
		else
			return false;
	}
	else if (obj_type == "RADIO" || obj_type == "CHECKBOX") {
		for (i=0; i < obj.length; i++) {
			if (obj[i].checked)
				return true;
		}

		return false;
	}
}

function _CF_checkinteger(object_value) {
	//Returns true if value is a number or is NULL
	//otherwise returns false

	if (object_value.length == 0)
		return true;

	//Returns true if value is an integer defined as
	//   having an optional leading + or -.
	//   otherwise containing only the characters 0-9.
	var decimal_format = ".";
	var check_char;

	//The first character can be + -  blank or a digit.
	check_char = object_value.indexOf(decimal_format)
	//Was it a decimal?
	if (check_char < 1)
		return _CF_checknumber(object_value);
	else
		return false;
}

function _CF_numberrange(object_value, min_value, max_value) {
	// check minimum
	if (min_value != null) {
		if (object_value < min_value)
		return false;
	}

	// check maximum
	if (max_value != null) {
		if (object_value > max_value)
			return false;
	}

	//All tests passed, so...
	return true;
}

function _CF_checknumber(object_value) {
	//Returns true if value is a number or is NULL
	//otherwise returns false

	if (object_value.length == 0)
		return true;

	//Returns true if value is a number defined as
	//   having an optional leading + or -.
	//   having at most 1 decimal point.
	//   otherwise containing only the characters 0-9.
	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

	//The first character can be + - .  blank or a digit.
	check_char = start_format.indexOf(object_value.charAt(0))
	//Was it a decimal?
	if (check_char == 1)
		decimal = true;
	else if (check_char < 1)
		return false;

	//Remaining characters can be only . or a digit, but only one decimal.
	for (var i = 1; i < object_value.length; i++) {
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 1) {
			if (decimal)		// Second decimal.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0) {
			if (decimal || digits)
				trailing_blank = true;
		// ignore leading blanks

		}
			else if (trailing_blank)
			return false;
		else
			digits = true;
	}
	//All tests passed, so...
	return true
}

function _CF_checkrange(object_value, min_value, max_value) {
	//if value is in range then return true else return false

	if (object_value.length == 0)
		return true;

	if (!_CF_checknumber(object_value)) {
		return false;
	}
	else {
		return (_CF_numberrange((eval(object_value)), min_value, max_value));
	}

	//All tests passed, so...
	return true;
}

function _CF_checkphone(object_value) {
	if (object_value.length == 0)
		return true;

	if (object_value.length != 12)
		return false;

	// check if first 3 characters represent a valid area code
	if (!_CF_checknumber(object_value.substring(0,3)))
		return false;
	else
	if (!_CF_numberrange((eval(object_value.substring(0,3))), 100, 1000))
		return false;

	// check if area code/exchange separator is either a'-' or ' '
	if (object_value.charAt(3) != "-" && object_value.charAt(3) != " ")
		return false

	// check if  characters 5 - 7 represent a valid exchange
	if (!_CF_checknumber(object_value.substring(4,7)))
		return false;
	else
	if (!_CF_numberrange((eval(object_value.substring(4,7))), 100, 1000))
		return false;

	// check if exchange/number separator is either a'-' or ' '
	if (object_value.charAt(7) != "-" && object_value.charAt(7) != " ")
		return false;

	// make sure last for digits are a valid integer
	if (object_value.charAt(8) == "-" || object_value.charAt(8) == "+")
		return false;
	else {
		return (_CF_checkinteger(object_value.substring(8,12)));
	}
}

function  _CF_checkCFForm_1(_CF_this) {
	if  (!_CF_hasValue(_CF_this.CLIENT_NAME, "TEXT" )) {
		if  (!_CF_onError(_CF_this, _CF_this.CLIENT_NAME, _CF_this.CLIENT_NAME.value, "Please fill out your name before submitting your inquiry form.")) {
			return false;
		}
	}

	if  (!_CF_hasValue(_CF_this.CLIENT_COMPANY, "TEXT" )) {
		if  (!_CF_onError(_CF_this, _CF_this.CLIENT_COMPANY, _CF_this.CLIENT_COMPANY.value, "Please fill out your company name before submitting your inquiry form")) {
			return false;
		}
	}

	if  (!_CF_checkphone(_CF_this.DAYTIME_PHONE.value)) {
		if  (!_CF_onError(_CF_this, _CF_this.DAYTIME_PHONE, _CF_this.DAYTIME_PHONE.value, "Please enter a valid telephone number before submitting your inquiry form.")) {
			return false;
		}
	}

	if  (!_CF_checkphone(_CF_this.EVENING_PHONE.value)) {
		if  (!_CF_onError(_CF_this, _CF_this.EVENING_PHONE, _CF_this.EVENING_PHONE.value, "Please enter a valid telephone number before submitting your inquiry form.")) {
			return false;
		}
	}

	return true;
}