
function disp_message(call_function, call_function_param, error_message)
//Calls function sent as paramater.  If function returns false, error message is displayed.
//Returns true or false based on evaluation of function
//
//This function is useful for displaying a separate dialog box or popup window for each error check
//of error messages
/* **Example:

	disp_message( 'text_required','document.form.tbox','No name was entered!\n');
	disp_message('select_required','document.form.colors','No favorite color was selected\n');

	if( disp_message('text_required','document.form.age','Age not entered\n') )
	//Age was entered
		disp_message('is_integer','document.form.age','Age not entered as integer value\n');

Please enter integer:<input name="int_box" type="text" value="" onchange="disp_message('is_integer','document.form.int_box.value','Please enter an integer!!');
*/
    {
		if( eval( call_function + '(' + call_function_param + ')' ) )
		//Necessary condition was met
			{
				return true;
			}
		else
			{
				alert(error_message);
		       	return false;
			}
    }
	
function return_message(call_function, call_function_param, error_message)
//Calls function sent as paramater.  If function returns false, error message string is returned
//Returns empty string or error string based on evaluation of function
//
//This function is useful for creating a dialog box or popup window with a collective report
//of error messages
/* **Example:

	var full_message = return_message( 'text_required','document.form.tbox','No name was entered!\n');
	full_message += return_message('select_required','document.form.colors','No favorite color was selected\n');
	full_message += return_message('text_required','document.form.age','Age not entered\n');	
	full_message += return_message('is_integer','document.form.age','Age not entered as integer value\n');
*/
    {
		if( eval( call_function + '(' + call_function_param + ')' ) )
		//Necessary condition was met
			{
				return "";
			}
		else
			{
		       	return error_message;
			}
    }

function text_required(obj)
//Returns true if text fields aren't empty
	{
    	if (obj.value.length == 0) 
      		return false;
    	else 
      		return true;
    }

function select_required(obj)
//Returns true if select field (drop down menu) has an option selected
	{
        for (i=0; i < obj.length; i++)
    	{
			if (obj.options[i].selected && obj.options[i].value.length)
				return true;
		}

       	return false;	
	}

function lone_checkbox_required(obj)
//Returns true if a single checkbox or single radio button is checked
	{
		if (obj.checked)
			return true;
		else
       		return false;	
	}

function checkbox_required(obj)
//Returns true if a checkbox or radio field has at least one button checked
	{

        for (i=0; i < obj.length; i++)
	    	{
				if (obj[i].checked)
					return true;
			}

       	return false;	
	}



function is_integer(object_value)
//Returns true if value is a number or is NULL
    {
	    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 is_number(object_value)
//Returns true if value is a number or is NULL
    {
	    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
    }

