
var reqd_fields = new Array();
reqd_fields[0] = "Your_Name";
reqd_fields[1] = "Email";
reqd_fields[2] = "Phone";
reqd_fields[3] = "Address";
reqd_fields[4] = "Town";

var def_values = new Array();
def_values[0] = " Your Name";
def_values[1] = " Email";
def_values[2] = " Telephone";
def_values[3] = " Address";
def_values[4] = " Town";

function empty_field(textObj) {
  var i;

  if (textObj.value.length == 0)
    return true;
  for (i = 0; i < textObj.value.length; i++) {
    var ch = textObj.value.charAt(i);
    if (ch != ' ' && ch != '\t')
      return false;
  }
  return true;
}


function valid_email(str) {

  var at="@", dot=".";
  var lat=str.indexOf(at);
  var lstr=str.length;
  var ldot=str.indexOf(dot);
  var i, achar, ok = true;

  // "@" and "." must exist, must not be first or last character
  if (lat <= 1 || lat >= lstr-1 || ldot <= 1 || str.charAt(lstr-1) == '.') {
    ok = false
  }

  // can only have one "@"
  else if (str.indexOf(at,(lat+1)) != -1){
    ok = false
  }

  // cannot have a "." next to the "@"
  else if (str.substring(lat-1,lat) == dot || str.substring(lat+1,lat+2) == dot) {
    ok = false
  }

  // domain must contain a "." and must be at least 4 characters
  else if (str.indexOf(dot,(lat+2))==-1 || str.substr(lat+1).length < 4) {
    ok = false
  }
	
  for (i = 0; i < lstr && ok; i++) {
    achar = str.charCodeAt(i);

    // no ctrl, non-ascii, space, slashes or quotes
    if (achar < 33 || achar > 126 || achar == 47 || achar == 92 || achar == 34 || achar == 39 || achar== 96) {
      ok = false;
      break;
    }
    // domains can only have alphanumerics, dashes, or dots
    if (i > lat && !((achar >= 48 && achar <= 57) || (achar >= 65 && achar <= 90) ||
      (achar >= 97 && achar <= 122) || achar == 45 || achar == 46)) {
      ok = false;
      break;
    }
  }
  return ok;					
}


function test_required(formObj, ra) {
  var i, fld, reqd_array;
  if (!ra) {
    reqd_array = reqd_fields;
  }
  else {
    reqd_array = ra;
  }
  //alert("array length = "+ reqd_array.length);
  for (i = 0; i < reqd_array.length; i++) {
    fld = eval("formObj."+reqd_array[i]);
    //alert("i="+i+"  fld="+reqd_array[i]+"  value="+fld.value);
    if (fld) {
      //remove default form values
      if (fld.value == def_values[i]) {
	fld.value = '';
      }
      if (empty_field(fld)) {
	alert("One or more required fields are empty.");
	fld.focus();
	fld.select();
	break;
      }
      else if (reqd_array[i] == "Email" && !valid_email(fld.value)) {
	alert("Invalid email address.");
	fld.focus();
	fld.select();
	break;
      }
    }
    else {
	alert ("cannot find field " + reqd_array[i]);
	break;
    }
  }
  return (i >= reqd_array.length);
}

function send_email(start, subj) {
  var dest;
  dest = "mail" + "to:" + start + "@" + "mazurlaw.com";
  if (subj) {
    dest += "?subject=" + subj;
  }
  document.location.href = dest;
}
