//
// A function that asks for confirmation before resetting the form:
//

function reset_handler(theform)
{

  if (confirm("Are you certain you want to reset all fields to their default state?"))
  {          
     location.reload();
     return true;
  } 
  else
  {
     return false;
  }
}



// FUNCTION TO TRIM NUMBER TO SPECIFIED NUMBER OF SIG FIGS:

function SigFig(X, N) {

	 var p = Math.pow(10, N-Math.ceil(Math.log(Math.abs(X))/Math.LN10));
	 if (!isFinite(p)) return X;
	 return Math.round(X*p)/p; 
       
} 

// FUNCTION TO TEST IF A STRING IS ACTUALLY AN INTEGER:

function its_integer(string_value)
{
   for( var counter = 0; counter < string_value.length; counter++ )
   {
      current_char = string_value.charAt(counter);
      if( !its_a_digit(current_char)) {
         return false;
      }
   }

  return true;
}

function its_a_digit(character)
{
   var digit_characters = "0123456789";

   // Check to see if there is more than one decimal point

  
   // If it's not in the digit_point characters string, then it's
   // not a valid digit, so return false.

   if (digit_characters.indexOf(character) == -1)
   {
      return false;
   }

   // Otherwise, it's a digit, so return true

   return true;
}

// FUNCTION TO TEST IF A STRING IS ACTUALLY A FLOAT:

function its_floating_point(string_value)
{
  var number_of_negative_signs = 0;
  var number_of_decimals = 0;
 
  for( var counter = 0; counter < string_value.length; counter++ )
  {
     current_char = string_value.charAt(counter)

     if(current_char == "-") {
        number_of_negative_signs += 1;
     }

     if(current_char == ".") {
        number_of_decimals += 1;
     }

     if (!its_a_digit_or_dot(current_char) || number_of_negative_signs >
	  1 || number_of_decimals > 1) {
        return false;
     }
  } 
    
  return true;
}

// FUNCTION TO CHECK IF A CHARACTER IS A DIGIT OR DOT: 

function its_a_digit_or_dot(character)
{
  var floating_point_characters = "-.0123456789e";

  if (floating_point_characters.indexOf(character) == -1)
  {
     return false;
  }

  return true;
}

// FUNCTION TO ROUND A NUMBER TO THE SPECIFIED NUMBER OF DECIMALS:

function round_decimals(value, decimals)
{
   var result1 = value * Math.pow(10, decimals);
   var result2 = Math.round(result1);
   var result3 = result2 / Math.pow(10,decimals);
   return result3;
}

// THE FUNCTION BELOW: LOOPS THROUGH NUMBER OF RADIO BUTTONS AND 
//    DETERMINES WHICH ONE IS CHECKED:

function radio_active(radio_group)
{
    for ( counter = 0; counter < radio_group.length; counter++ )
    {
       if (radio_group[counter].checked)
       {
          return counter;
       }
    }   
    return -1;
}

// FUNCTION TO DEFLECT THE FOCUS FROM A TEXT FIELD:

function deflect_focus(field)
{
     field.blur();
}

