// <!-- form_validations.js -->


// ------------------------------------------------------------------------------
//
//    Copyright, 2003 Precision Software Inc.
//
// ------------------------------------------------------------------------------
// Each function returns true if validation passed or false if validation failed
// ------------------------------------------------------------------------------

// Performs the validation and submit functions for a form
// -------------------------------------------------------
function validate_submit(formname)
{
   if(validate())
      formname.submit();
}

// Function Name        Description
// -------------        ----------------------------------------------
// FieldChanged         Field is not the original value
// FieldIsNumber        Value entered is a valid number
// FieldIsValidEmail    Value is a valid email address
// FieldLongEnough      Value contains enough characters
// FieldShortEnough     Value doesn't contain too many characters

function FieldChanged(form_field, msg)
{
   if (form_field.value==form_field.defaultValue)
   {
     alert(msg);
     form_field.select();
     form_field.focus();
     return false;
   }
   else
   {
      return true;
   }
}

function FieldNonEmpty(form_field, msg)
{
   if (form_field.value.length==0)
   {
     alert(msg);
     form_field.select();
     form_field.focus();
     return false;
   }
   else
   {
      return true;
   }
}


function FieldIsNumber(form_field, msg)
{
   form_field.value = str_replace(",", ".", form_field.value);
   form_field.value = str_replace(" ", "", form_field.value);

   if (isNaN(form_field.value))
   {
     alert(msg);
     form_field.select();
     form_field.focus();
     return false;
   }
   else
   {
      return true;
   }
}

function FieldIsNumberBetween(form_field, min_value, max_value, msg)
{
   if (isNaN(form_field.value))
   {
     alert(msg);
     form_field.select();
     form_field.focus();
     return false;
   }
   else
   {
      var   x = parseInt(form_field.value);

      if(x < min_value || x > max_value)
      {
        alert(msg);
        form_field.select();
        form_field.focus();
        return false;
      }

      return true;
   }
}



function FieldIsValidEmail(form_field, msg)
{
   var emailFilter=/^.+@.+\..{2,6}$/;

   if (!(emailFilter.test(form_field.value)))
   {
     alert(msg);
     form_field.select();
     form_field.focus();
     return false;
   }
   else
   {
      return true;
   }

}

function FieldIsValidEmailList(form_field, msg)
{
   var   i=0;
   var   emailFilter =/^.+@.+\..{2,3}$/;
   var   email_list  = form_field.value.split(',');

   for(i=0; i<email_list.length; i++)
   {
      email_list[i] = trim(email_list[i]);

      if (!(emailFilter.test(email_list[i])))
      {
         alert(msg);
         form_field.select();
         form_field.focus();
         return false;
      }
   }

   return(true);
}

function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}


function FieldLongEnough(form_field, min_length, msg)
{
   if (form_field.value.length < min_length)
   {
     alert(msg);
     form_field.select();
     form_field.focus();
     return false;
   }
   else
   {
      return true;
   }
}

function FieldShortEnough(form_field, max_length, msg)
{
   if (form_field.value.length > max_length)
   {
     alert(msg);
     form_field.select();
     form_field.focus();
     return false;
   }
   else
   {
      return true;
   }
}

function PasswordsAreSame(pass_field1, pass_field2, msg)
{
   if (pass_field1.value != pass_field2.value)
   {
     alert(msg);
     pass_field1.select();
     pass_field1.focus();
     return false;
   }
   else
   {
      return true;
   }
}

function FieldRadioIsSelected(form_field, msg)
{
   for (i=0, n=form_field.length; i<n; i++)
   {
      if (form_field[i].checked)
      {
         var checkvalue = form_field[i].value;
         break;
      }
   }

   if(!(checkvalue))
   {
     alert(msg);
//     form_field[0].select();
     form_field[0].focus();
     return false;
   }
   else
   {
      return true;
   }

}

function FieldHasThisValue(form_field, value, msg)
{
   if (form_field.value != value)
   {
     alert(msg);
     form_field.select();
     form_field.focus();
     return false;
   }
   else
   {
      return true;
   }
}

function FieldMustBeChecked(form_field, msg)
{
   if (!form_field.checked)
   {
     alert(msg);
     form_field.select();
     form_field.focus();
     return false;
   }
   else
   {
      return true;
   }
}


