<!--

/* *************************************************************
* set some global variables that will be checked later         *
***************************************************************/
var msg = "";                 // an output message
var missing = "";             // for missing required fields
var invNum = "";              // for invalid numeric fields
  
/* *************************************************************
* The main validation function, calls other sub-functions      *
***************************************************************/
function validate(frm)
  {
  for(i=0; i<frm.elements.length; i++)            // loop through form elements
    {
    var el = frm.elements[i];
    if(el.required)                               // if element has required property
      {                                           // test to see if field is empty
      if(isEmpty(el))
        {
        missing += "\n   - " + el.name + " is a required field";
        }
      }
    if(el.numeric)
      {
      if(notNumeric(el))
        {
        invNum += "\n   - " + el.name + " must be a number";
        }
      }
 //   if(el.minVal)
 //     {
 //     if(parseFloat(el.value) <= el.minVal)
 //       {
 //       outOfRange +=  "\n   - " + el.name + " must be larger than " + el.minVal + ", you entered " + el.value;
 //       }
 //     }
 //   if(el.maxVal)
 //     {
 //     if(parseFloat(el.value) >= el.maxVal)
 //       {
 //      outOfRange +=  "\n   - " + el.name + " must be smaller than " + el.maxVal + ", you entered " + el.value
 //       }
 //     }
    }
  
  // build output message
  if(missing.length !=0 || invNum.length != 0)
    {
    if(missing.length !=0)
      {
      msg += "\n\nThe following required fields are missing:";
      msg += missing;
      }
    if(invNum.length !=0)
      {
      msg += "\n\nYou entered incorrect numeric data in these fields:";
      msg += invNum;
      }
    errMsg(msg);           // call the output function
    msg = ""; missing = ""; invNum = ""; // reset all our variables
    return false;
    }
  else
    {
    return true;
    }
  }

/* *************************************************************
* Sub-functions follow from here to end of file                *
* All sub-functions return true if field is of invalid         *
* format and false if they are valid entries                   *
***************************************************************/
function isEmpty(field)
  {
  str = field.value;
  if(str == "") 
  // make sure not to put a space between those quotes
    {
    return true;
    }
  else
    {
    for(j=0; j<str.length; j++)
      {
      if(str.charAt(j) != " ")
      // make sure to put a space between those quotes!
        {
        return false;
        }
      }
    }
  return true;
  }

function notNumeric(field)
  {
  var errCount = 0;
  var numdecs = 0;                    // number of decimal points
  for(j=0;j<field.value.length;j++)
    {
    c = field.value.charAt(j);        // short hand notation for character at position j
    if((c >= 0 && c <= 9) || c=="." || (j==0 && c == "-"))
      {
      if(c==".") 
        {
        numdecs++;          // count the number of decimal points
        }
      }
    else
      {
      errCount++;                    // if it's none of those, increment error counter
      break;                         // no need to continue looping, it's not a number
      }
    }
  // error if count is non-zero or there are more than one decimal point
  if(errCount > 0 || numdecs > 1)
    {
    return true;
    }
  return false;
  }

function stripNonDigits(str)
  {
  newStr = "";
  for(j=0; j<str.length; j++)
    {
    c = str.charAt(j);
    if(c >= "0" && c <= "9")
      {
      newStr += c;
      }
    }
  return newStr;
  }


function errMsg(msg)
  {
  var theMsg = "You entered some incorrect values into the form. ";
  theMsg += "Please correct your entries then re-submit the form.\n";
  theMsg += "____________________________________________________________________";
  theMsg += msg;
  theMsg += "\n____________________________________________________________________\n";
  alert(theMsg);
  }


//-->

