function ValidateOrderForm(form) {
   var errMsg = "";

   Email    = document.getElementById("Email").value;

   bAddress = document.getElementById("Addressa").value;
   bCity    = document.getElementById("Citya").value;
   bState   = document.getElementById("Statea").value;
   bZip     = document.getElementById("Zipa").value;
   bPhone   = document.getElementById("Phonea").value;

   sAddress = document.getElementById("Address").value;
   sCity    = document.getElementById("City").value;
   sState   = document.getElementById("State").value;
   sZip     = document.getElementById("Zip").value;
   sPhone   = document.getElementById("Phone").value;

   sAccount = document.getElementById("Account").value;
   sVerCode = document.getElementById("VerificationCode").value;

   var rePhone   = /^\d{10}$/;
   var reCC      = /^\d{15,16}$/;
   var reCVV     = /^\d{3,4}$/;

   if (Email.length == 0)          { errMsg += "Please enter your email address.\n";  }

   if (bAddress.length == 0)       { errMsg += "Please enter your billing address.\n";  }
   if (bCity.length == 0)          { errMsg += "Please enter your billing city.\n";  }
   if (bState.length == 0)         { errMsg += "Please enter your billing state.\n";  }
   if (bZip.length == 0)           { errMsg += "Please enter your billing zip.\n";  }
   if (bPhone.length == 0)         { errMsg += "Please enter your billing phone.\n";  }
   else if (!rePhone.test(bPhone)) { errMsg += "Please make sure your billing phone is 10 digits and contains only numbers - no dashes or spaces plese.\n"; }

   if (sAddress.length == 0)       { errMsg += "Please enter your shipping address.\n";  }
   if (sCity.length == 0)          { errMsg += "Please enter your shipping city.\n";  }
   if (sState.length == 0)         { errMsg += "Please enter your shipping state.\n";  }
   if (sZip.length == 0)           { errMsg += "Please enter your shipping zip.\n";  }

   if (sPhone.length == 0)         { errMsg += "Please enter your shipping phone.\n";  }
   else if (!rePhone.test(sPhone)) { errMsg += "Please make sure your shipping phone is 10 digits and contains only numbers - no dashes or spaces plese.\n"; }

   if (sAccount.length == 0)       { errMsg += "Please enter your credit card account number.\n"; }
   else if (!reCC.test(sAccount))  { errMsg += "Please make sure your credit card account number is 15 or 16 digits and contains only numbers - no dashes or spaces plese.\n"; }

   if (sVerCode.length == 0)       { errMsg += "Please enter your credit card verification code.\n"; }
   else if (!reCVV.test(sVerCode)) { errMsg += "Please make sure your credit card verification code is 3 or 4 digits and contains only numbers.\n"; }

   if (errMsg.length > 0) { alert(errMsg); }
   else { form.submit(); }
}

function CopyValue(to, from) {
   if (document.getElementById(from)) document.getElementById(to).value = document.getElementById(from).value;
   else document.getElementById(to).value = from;
}

function CopyShippingInfo(cb) {
   if (cb.checked) {
      CopyValue("FirstNamea", "FirstName");
      CopyValue("LastNamea",  "LastName");
      CopyValue("Addressa",   "Address");
      CopyValue("Address2a",  "Address2");
      CopyValue("Citya",      "City");
      CopyValue("Statea",     "State");
      CopyValue("Zipa",       "Zip");
      CopyValue("Phonea",     "Phone");
  } else {
      CopyValue("FirstNamea", "");
      CopyValue("LastNamea",  "");
      CopyValue("Addressa",   "");
      CopyValue("Address2a",  "");
      CopyValue("Citya",      "");
      CopyValue("Statea",     "");
      CopyValue("Zipa",       "");
      CopyValue("Phonea",     "");
  }
}
