function formSanityCheck(fObj) {
  emailre=/^[A-Z0-9_-]+(\.[A-Z0-9_-]+)*@[A-Z0-9_-]+(\.[A-Z0-9_-]+)+$/i;

  usr_email1=String(document.getElementById("usr_email1").value);
  usr_email2=String(document.getElementById("usr_email2").value);
  usr_pass1=String(document.getElementById("usr_pass1").value);
  usr_pass2=String(document.getElementById("usr_pass2").value);
  usr_fname=String(document.getElementById("usr_fname").value);
  usr_sname=String(document.getElementById("usr_sname").value);
  usr_tel1=String(document.getElementById("usr_tel1").value);
  usr_tel2=String(document.getElementById("usr_tel2").value);
  usr_addr1=String(document.getElementById("usr_addr1").value);
  usr_addr2=String(document.getElementById("usr_addr2").value);
  usr_addr3=String(document.getElementById("usr_addr3").value);
  usr_pcode=String(document.getElementById("usr_pcode").value);
  usr_country=document.getElementById("usr_country");
  usr_country=parseInt(usr_country[usr_country.selectedIndex].value);

  errorFlag=0x0000;

  if (usr_email1=="" || usr_email1.length>128 || !emailre.test(usr_email1)) errorFlag|=0x0001;
  if (usr_email2!=usr_email1) errorFlag|=0x0002;
  if (usr_pass1=="" || usr_pass1.length>32 || usr_pass1.length<6 || usr_pass1.replace(/\W+/g,"")!=usr_pass1) errorFlag|=0x0004;
  if (usr_pass2!=usr_pass1) errorFlag|=0x0008;
  if (usr_fname=="" || usr_fname.length>64) errorFlag|=0x0010;
  if (usr_sname=="" || usr_sname.length>64) errorFlag|=0x0020;
  if (usr_tel1=="" || usr_tel1.length>20) errorFlag|=0x0040;
  if (usr_tel2.length>20) errorFlag|=0x0080;
  if (usr_addr1=="" || usr_addr1.length>128) errorFlag|=0x0100;
  if (usr_addr2.length>128) errorFlag|=0x0200;
  if (usr_addr3.length>128) errorFlag|=0x0400;
  if (usr_pcode=="" || usr_pcode.length>10) errorFlag|=0x0800;
  if (isNaN(usr_country)) errorFlag|=0x1000;

  if (errorFlag & 0x0001) {
    document.getElementById("usr_email1").focus();
    alert("Error: Invalid or Missing E-mail Address");
  } else if (errorFlag & 0x0002) {
    document.getElementById("usr_email2").focus();
    alert("Error: E-mail Confirmation Mismatch");
  } else if (errorFlag & 0x0004) {
    document.getElementById("usr_pass1").focus();
    alert("Error: Invalid or Missing Password (Password must be at least 6 characters, No punctuation allowed)");
  } else if (errorFlag & 0x0008) {
    document.getElementById("usr_pass2").focus();
    alert("Error: Password Confirmation Mismatch");
  } else if (errorFlag & 0x0010) {
    document.getElementById("usr_fname").focus();
    alert("Error: Invalid or Missing Detail: Forename");
  } else if (errorFlag & 0x0020) {
    document.getElementById("usr_sname").focus();
    alert("Error: Invalid or Missing Detail: Surname");
  } else if (errorFlag & 0x0040) {
    document.getElementById("usr_tel1").focus();
    alert("Error: Invalid or Missing Detail: Home Telephone");
  } else if (errorFlag & 0x0080) {
    document.getElementById("usr_tel2").focus();
    alert("Error: Invalid or Missing Detail: Mobile Telephone");
  } else if (errorFlag & 0x0100) {
    document.getElementById("usr_addr1").focus();
    alert("Error: Invalid or Missing Delivery Address");
  } else if (errorFlag & 0x0200) {
    document.getElementById("usr_addr2").focus();
    alert("Error: Invalid Delivery Address (Line 2)");
  } else if (errorFlag & 0x0400) {
    document.getElementById("usr_addr3").focus();
    alert("Error: Invalid Delivery Address (Line 3)");
  } else if (errorFlag & 0x0800) {
    document.getElementById("usr_pcode").focus();
    alert("Error: Invalid or Missing Delivery Postcode");
  } else if (errorFlag & 0x1000) {
    document.getElementById("usr_country").focus();
    alert("Error: Invalid or Missing Delivery Country");
  }

  if (errorFlag==0x0000)
    document.getElementById(fObj).submit();
}

