function checkValidElements(names, form){

  var invalidDisplaynames = "";

  for (ii=0; ii<names.length; ii++) {
    var name = names[ii][0];
    var displayname = name;
    if (names[ii].length > 1)
      displayname = names[ii][1];

    // radio buttons are somewhat special, they're an array of radio objects which are selected or not.
    if (form.elements[name].length && form.elements[name][0].type == "radio"){
      form.elements[name][0].parentNode.style.backgroundColor = "white";

      var oneChecked = false;
      for (jj=0; jj<form.elements[name].length; jj++){
        if (form.elements[name][jj].checked){
          oneChecked = true;
          break;
        }
      }

      if (!oneChecked){
        invalidDisplaynames += displayname + "\n";
        form.elements[name][0].parentNode.style.backgroundColor = "#FFAAAA";
      }

      continue;
    } // end radio button

    form.elements[name].style.backgroundColor = "white";
    
    if (form.elements[name].value == ""){
      form.elements[name].style.backgroundColor = "#FFAAAA";
//      form.elements[name].focus();
      invalidDisplaynames += displayname + "\n";

    } else if (names[ii].length > 2){ // regular expression check
      re = names[ii][2];

      if (!form.elements[name].value.match(re)) {
        form.elements[name].style.backgroundColor = "#FFAAAA";
//        form.elements[name].focus();
        invalidDisplaynames += displayname + "\n";
      }
    }
  }

  if ("" != invalidDisplaynames){
    alert("Please enter valid values for the fields:\n\n" + invalidDisplaynames);
    return false;
  }

  return true;
}

