//declare global values for doing string validation
var regexp_phone = /[0-9\-\.\(\)\x ]/;
//var regexp_email1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
//var regexp_email2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; //
var regexp_email1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
//var regexp_email2 = /^(([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,5}|[0-9]{1,3})(\]?))?$/; //
var regexp_email2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; //
var regexp_zip = /[0-9\-]/;
var regexp_state = /[A-Z\a-z]/;
var regexp_cert = /^\d+$/;

function onError(input_object, error_message)
{
	alert(error_message);
	input_object.focus();
 	return false;
}// end onError function

function hasValue(obj, obj_type)
{
if (obj_type == "TEXT"|| obj_type == "TEXTAREA")
	{
	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 && obj.options[i].value != '' && obj.options[i].value != '0')
		return true;
		}

 	return false;
	}

else if (obj_type == "RADIO")
	{
	if (obj.length) {
	for (i=0; i < obj.length; i++)
		{
		if (obj[i].checked)
		return true;
		}
	} else {
		if (obj.checked)
		return true;
	}

 	return false;
	}
}// end hasValue function

function 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
}// end checknumber function

function 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 checknumber(object_value);
	else
	return false;
}// end checkinteger function


function checkemail(emailval) {
	if ( regexp_email1.test(emailval) || !regexp_email2.test(emailval) )
		return false;
	return true;
}// end checkemail function

function checkstate(stateval) {

	if (stateval.length != 2)
		return false;

	for (i=0; i < stateval.length; i++) {
		check_char = stateval.charAt(i);
		if (!regexp_state.test(check_char))
			return false;
		}

	return true;

}// end checkstate function

function checkzip(zipval) {

	if (zipval.length < 5)
		return false;

	for (i=0; i < 5; i++) {
		check_char = zipval.charAt(i);
		if (!regexp_zip.test(check_char))
			return false;
		}

	return true;

}// end checkzip function


function checkphone(phoneval) {

	if (phoneval.length < 10 || phoneval.length > 20)
		return false;

	for (i=0; i < phoneval.length; i++) {
		check_char = phoneval.charAt(i);
		if (!regexp_phone.test(check_char))
			return false;
		}

	return true;

}// end checkphone function
