function validate_required(field,alerttext)
{
with (field)
  {
  if (value==null||value=="")
    {
    alert(alerttext);return false;
    }
  else
    return true;
  }
}

function validate_email(field,alerttext)
{
with (field)
  if (validate_required(field,alerttext)==false)
    {email.focus();return false;}
  else
  {
  atpos=value.indexOf("@");
  dotpos=value.lastIndexOf(".");
  if (atpos<1||dotpos-atpos<2)
    {alert(alerttext);return false;}
  else {return true;}
  }
}

function validate_phone(field,alerttext)
{
  if (validate_required(field,alerttext)==false)
    {phone.focus();return false;}
  else
  {
  var tfield = trim(field.value);
  var numdigits = 0;
  for (var j=0; j<tfield.length; j++)
    {if (tfield.charAt(j)>='0' && tfield.charAt(j)<='9') numdigits++;}

  var telnr = /^\+?[0-9 ()-]+[0-9]$/ ;
  if (!telnr.test(tfield))
    {alert(alerttext);return false;}
  if (numdigits!=10)
    {alert(alerttext);return false;}
  }
}

function trim(str)
{
  if (str.charAt(0)=='1')
  {
    var newstr;
    newstr = str.substr(1);
    return newstr.replace(/^\s+|\s+$/g, '');
  }
  else
  {
    return str.replace(/^\s+|\s+$/g, '');
  }
}

function validate_form(thisform)
{
with (thisform)
  {
  if (validate_required(name,"Please enter your name")==false)
    {name.focus();return false;}
  if (validate_email(email,"Please enter a valid e-mail address")==false)
    {email.focus();return false;}
  if (validate_phone(phone,"Please enter a valid phone number")==false)
    {phone.focus();return false;}
  }
}
