//Author: jmorrey
//This function validates that a value is in HH24:MI format (military time)
//I based it on a DFA model to make sure it was correct.  See me for details.
function checkMilitaryTime(form_object, input_object, object_value)
{
    //empty string ok...
    if(object_value.length == 0)
	   return true;
	if(object_value.length > 5 || object_value.length < 4)
	   return false;
	//states...
	var state1 = "012";
	var state2 = "3456789";
	var state3andFinal = "0123456789";
	var state4 = ":";
	var state5 = "012345";
	var check_char;
	if(state1.indexOf(object_value.charAt(0)) > 0){
	   if(state3andFinal.indexOf(object_value.charAt(1)) > 0){
	      if(state4.indexOf(object_value.charAt(2)) > 0){
		     if(state5.indexOf(object_value.charAt(3)) > 0){
			    if(state3andFinal.indexOf(object_value.charAt(4)) > 0){
				   return true;}}}}}
	else if(state2.indexOf(object_value.charAt(0)) > 0){
	       if(state4.indexOf(object_value.charAt(1)) > 0){
		     if(state5.indexOf(object_value.charAt(2)) > 0){
			    if(state3andFinal.indexOf(object_value.charAt(3)) > 0){
				   return true;}}}}
	else
	  return false;
}


function checkOracleNumber(form_object, input_object, 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.
	//   contains % or _.
	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
} 