  function formatPhone(v) {
    var phone=v.value;
    if (/^\((\d{3})\)\s?(\d{3})[-\s.]?(\d{4})((\s[xX]?|[xX])(\d+))?$/.test(phone) ||
        /^(\d{3})[-\s\.]?(\d{3})[-\s\.]?(\d{4})((\s[xX]?|[xX])(\d+))?$/.test(phone)) {
      phone="("+RegExp.$1+") "+RegExp.$2+"-"+RegExp.$3;
      if (RegExp.$6.length > 0) phone += " x" + RegExp.$6;
      v.value = phone;
      return true;
    }
    else {
      alert("Phone number is blank or entered incorrectly.\n\nPlease enter again.");
      v.value="";
      v.focus();
      return false;
    }
  }

  function validEmail(v) {
    var email=v.value;
    if (/^([\w\d]+\.)*[\w\d]+@([\w\d]+\.)+[\w\d]{2,5}$/.test(email)) {
      return true;
    }
    else {
      alert("Email address is blank or entered incorrectly.\n\nPlease enter again.");
      v.value="";
      v.focus();
      return false;
    }
  }

  function validZip(v) {
    var zip=v.value;
    if (/^\d{5}-?(\d{4})?$/.test(zip)) {
      return true;
    }
    else {
      alert("Zip code is blank or entered incorrectly.\n\nPlease enter again.");
      v.value="";
      v.focus();
      return false;
    }
  }
