
function isblank(s)
//
// A utility function which returns true if a string contains only whitespace
//
{
   for(var i = 0; i < s.length; i++) {
       var c = s.charAt(i);
       if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
   }
   return true;
}


function verify(f)
   //
   // loop through elements of form looking for all text and textarea elements that have the mandantory property defined.
   // Then check for fields that are empty and make a list
   //
{
   var msg;
   var empty_fields = "";
   var errors = "";
   //
   // check for fields marked as mandantory eg this.FIELDNAME.mandantory = true 
   // if null or empty then report error and cancel submit
   //
   for (var i = 0; i< f.length; i++) {
      var e = f.elements[i];
      if (((e.type == "text") || (e.type == "textarea")) && e.mandantory) {
         if ((e.value == null) || (e.value == "") || isblank(e.value)) {
            if (e.descr == null || e.descr == '')
              empty_fields += "\n          - " + e.name;
            else
              empty_fields += "\n          - " + e.descr;
            continue;
         }
      }
      //
      // check fields that are meant to be numeric eg this.FIELDNAME.numeric = true
      // also check if in range if max or min set
      //
      if (e.numeric || (e.min != null) || (e.max != null)) {
         // allow empty field, set mandantory if required
         if ((e.value != "")) {
            var v = parseFloat(e.value);
            if (isNaN(v) || ((e.min != null) && (v < e.min)) || ((e.max != null) && (v > e.max))) {
               if (e.descr == null || e.descr == '')
                 errors += "- The field " + e.name + " must be a number";
               else
                 errors += "- The field " + e.descr + " must be a number";
               if (e.min != null)
                  errors += " that is greater than " + e.min;
               if (e.max != null && e.min != null)
                  errors += " and less than " + e.max;
               else if (e.max != null) 
                  errors += "that is less than " + e.max;
               errors += ".\n";
            }
         }
      }
   }
   // Display message if there are any errors and return false to prevent form 
   // being submitted

   if (!empty_fields && !errors) return true;

   msg  = "____________________________________________________________\n\n"
   msg += "The form was not submitted because of the following error(s).\n";
   msg += "Please correct these error(s) and re-submit.\n";
   msg += "____________________________________________________________\n\n"

   if (empty_fields) {
      msg += "The following required field(s) are empty:" + empty_fields + "\n";
      if (errors) msg += "\n";
   }
   msg += errors;
   alert(msg);
   return false;
}



		