// Field-by-field validation for email_form.php

function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

// Validate the 'email' field
function form_check()
  {
  var err1_msg = "Please complete the following required fields:\n\n";
  var err2_msg;
  var err1_flag = false;
  var err2_flag = false;
  var err3_flag = false;
  var err4_flag = false;

  if (document.form1.enquirers_name.value == "")
    {
    err1_msg = err1_msg + " - Name\n";
	err1_flag = true;
	}

  if (document.form1.enquirers_email.value == "")
    {
    err1_msg = err1_msg + " - Email Address\n";
	err1_flag = true;
	}

  if (document.form1.enquirers_email_confirm.value == "")
    {
    err1_msg = err1_msg + " - Confirm Email\n";
	err1_flag = true;
	}

  if (document.form1.enquirers_email.value != document.form1.enquirers_email_confirm.value)
     {
	 err2_msg = "The 'Email Address' field does not match the 'Confirm Email' field\n";
	 err2_flag = true;
	 }

  if( !isEmail( document.form1.enquirers_email.value ) )
	{
    err3_flag = true;
    }

  if( !isEmail( document.form1.enquirers_email_confirm.value ) )
	{
    err4_flag = true;
    }

// -----------------

  if (err1_flag == true)
     {
	 alert(err1_msg);
	 return false;
	 } 
  else if (err2_flag == true)
    {
	alert(err2_msg);
	return false;
    } 
  else if (err3_flag == true)
    {
	alert("The 'Email Address' field does not contain a valid address");
	return false;
    } 
  else if (err4_flag == true)
    {
	alert("The 'Confirm Email' field does not contain a valid address");
	return false;
    } 
  else
    {
	 return true;
	}
  }