function submitForm() {
  var formlist = "";
  var missingreq = false;
  var frm = document.forms["SUBSCRIBERPREFS"];
  // check first to see if we are unsubscribing
  // if so no need to validate...
  if (frm.elements["wanttodo"] && frm.wanttodo[0].checked)          
      return true;
  if (frm.elements["email"].value == "")
      missingreq = true;
  if (frm.elements["email2"].value == "")
      missingreq = true;
  // validate email is of correct format
  var emailregex = /^[\w\_\-\.]+@[\w\_\-\.]+\.\w+$/;
  var emailresult = frm.email.value.match(emailregex);
  if (emailresult == null) {
      alert("The email address \'" + frm.email.value + "\' is not in a correct format.\n Please try again");
      return false;
  }
  if (frm.email.value.toLowerCase() != frm.email2.value.toLowerCase()) {
      alert('The e-mail address you retyped does not match.');
      return false;
  }
  // naming of form elements is as follows:
  // CUSTOM##  - not required custom demographic
  // RCUSTOM## - required custom demographic
  for (i = 0; i < frm.elements.length; i++) {
      if (frm.elements[i].type == "text" && frm.elements[i].name.substring(0, 7) == "RCUSTOM") {
          if (frm.elements[i].value == "")
              missingreq = true;
      }
      if (frm.elements[i].type == "radio" && frm.elements[i].name.substring(0, 7) == "RCUSTOM") {
          var onechecked = false;
          for (r = 0; r < frm.elements.length; r++) {
              if (frm.elements[r].name == frm.elements[i].name && frm.elements[r].checked)
                  onechecked = true;
          }
          if (!onechecked)
              missingreq = true;
      }
      if (frm.elements[i].type == "select-one" && frm.elements[i].name.substring(0, 7) == "RCUSTOM") {
          if (frm.elements[i].selectedIndex == 0)
              missingreq = true;
      }
  }
  if (missingreq) {
      alert("The form was not submitted because required fields were not filled.\nPlease fill in all required fields and re-submit.");
      return false;
  }
  return true;
}
function OpenAlertWindow() {
  window.open('http://www.knelson.com/mp/enewsletter-alertdesc-mp.html','alertwindow', 'menubar=0,toolbar=0,location=0,directories=0,status=0,resizable=0,scrollbars=0,width=300,height=320');
}
function OpenQuarterlyWindow() {
  window.open('http://www.knelson.com/mp/enewsletter-newsdesc-mp.html','quarterlywindow', 'menubar=0,toolbar=0,location=0,directories=0,status=0,resizable=0,scrollbars=0,width=300,height=320');
}
function OpenWorkshopWindow() {
  window.open('http://www.knelson.com/mp/ew-descriptionpopup.html','workshopwindow', 'menubar=0,toolbar=0,location=0,directories=0,status=0,resizable=0,scrollbars=0,width=400,height=550');
}
function OpenPartsWindow() {
  window.open('http://www.knelson.com/mp/enewsletter-partsdesc.html','partswindow', 'menubar=0,toolbar=0,location=0,directories=0,status=0,resizable=0,scrollbars=0,width=400,height=300');
}