// Validate email against regex
function FRMcheckEmail(el,name) {
  var err = new String();
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

  if (document.all || document.getElementById) {
    elid = document.getElementById(el);
    if (!filter.test(elid.value)) {
      err = "\rThe '" + name + "' field must be a valid email address. ";
    }
  }
  return err;
}

function FRMcheckPhone(el,name) {

  var err = new String();
  var filter  = /\(?\d{3}\)?([-\/\.])\d{3}\1\d{4}/;

  if (document.all || document.getElementById) {
    elid = document.getElementById(el);
    if (!filter.test(elid.value)) {
      err = "\rThe '" + name + "' field must be a valid phone number with area code. ";
    }
  }
  return err;
}

// Validate that two fields match
function FRMmustMatch(el1,name1,el2,name2) {

  var err = new String();

  if (document.all || document.getElementById) {
    el1id = document.getElementById(el1);
    el2id = document.getElementById(el2);
    if (el1id.value != el2id.value) {
      err = "The values of '" + name1 + "' and '" + name2 + "' ";
      err += "do not match. ";
    }
  }
  return err;
}

// Validate length of field
function FRMcheckLength(el,name,minlength,maxlength) {

  var err = new String();

  if (document.all || document.getElementById) {
    elid = document.getElementById(el);
    if ((elid.value.length < minlength) &&
        (minlength != 0)) {
      err = "The '" + name + "' field must be at least ";
      err += minlength + " characters long"
    }
    if ((elid.value.length > maxlength) &&
        (maxlength != 0)) {
      err += "The '" + name + "' field must be less than ";
      err += maxlength + " characters long. "
    }
  }
  return err;
}

// Validate field is not blank
function FRMnonBlank(el,name) {

  var err = new String();

  if (document.all || document.getElementById) {
    elid = document.getElementById(el);
    if (elid.value == "") {
      err = "\rThe '" + name + "' field cannot be blank. ";
    }
  }
  return err;
}

// Validation engine
function FRMvalidate() {

  // Init error string
  var err = new String();

  // Do validation, building error string as we go
  //  No error = blank string
  err += FRMnonBlank("Name","Name");
  err += FRMcheckEmail("Email","Email");
  err += FRMcheckPhone("Phone","Phone");
  err += FRMnonBlank("Company","Company");
//  err += FRMnonBlank("My_Sponsor","My Sponsor");

  if (document.all || document.getElementById) {
    if (err.length != 0) {
	    alert(err);
//      errid = document.getElementById("errtext");
//      errid.innerHTML = err;
      return(false);
    } else {
//      validateid = document.getElementById("validated");
//      validateid.value = "true";
    }
  }
  return(true);
}

