function checkEmail (obj) {
   var error="";
   if (obj.value == "") {
      document.getElementById(obj.id + "_err").style.color = "#f00";
      document.getElementById(obj.id + "_err_msg").innerHTML = "<small>You didn't enter an email address.</small>";
      return true;
   }
   var emailFilter=/^.+@.+\..{2,3}$/;
   if (!(emailFilter.test(obj.value))) { 
      document.getElementById(obj.id + "_err").style.color = "#f00";
      document.getElementById(obj.id + "_err_msg").innerHTML = "<small>Please enter a valid email address.</small>";
      return true;
   }
   else {
      //test email for illegal characters
      var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
      if (obj.value.match(illegalChars)) {
         document.getElementById(obj.id + "_err").style.color = "#f00";
         document.getElementById(obj.id + "_err_msg").innerHTML = "<small>The email address contains illegal characters.</small>";
         return true;
     }
   }
   document.getElementById(obj.id + "_err").style.color = "#000";
   document.getElementById(obj.id + "_err_msg").innerHTML = "";
   return false;    
}


// phone number - strip out delimiters and check for 10 digits
function checkPhone (obj) {
   var error = "";
   if (obj.value == "") {
      document.getElementById(obj.id + "_err").style.color = "#f00";
      document.getElementById(obj.id + "_err_msg").innerHTML = "<small>You didn't enter a phone number.</small>";
      return true;
   }
   var stripped = obj.value.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
   if (isNaN(parseInt(stripped))) {
      document.getElementById(obj.id + "_err").style.color = "#f00";
      document.getElementById(obj.id + "_err_msg").innerHTML = "<small>The phone number contains illegal characters.</small>";
      return true;
   }
   document.getElementById(obj.id + "_err").style.color = "#000";
   document.getElementById(obj.id + "_err_msg").innerHTML = "";
   return false;
}

// non-empty textbox
function isEmpty(obj) {
   if (obj.value.length == 0)  {
      if (obj.id == "text_affiliation") document.getElementById("select_affiliation").style.color = "#f00";
      else if (obj.id == "text_role") document.getElementById("select_role").style.color = "#f00";
      else document.getElementById(obj.id + "_err").style.color = "#f00";
      return true;
   }
      if (obj.id == "text_affiliation") document.getElementById("select_affiliation").style.color = "#000";
      else if (obj.id == "text_role") document.getElementById("select_role").style.color = "#000";
      else document.getElementById(obj.id + "_err").style.color = "#000";
   return false;
}

// exactly one radio button is chosen
function checkButtons(obj,id) {
   for (i=0, n=obj.length; i<n; i++) {
      if (obj[i].checked) {
         var checkvalue = obj[i].value;
         break;
      } 
   }
   if (!(checkvalue)) {
      document.getElementById(id + "_err").innerHTML = "<small>Please check at least one box.</small>";
      return true;
   }
   document.getElementById(id + "_err").innerHTML = "";
   return false;
}

// valid selector from dropdown list
function checkDropdown(obj) {
   if (obj.selectedIndex == 0) {
      document.getElementById(obj.name + "_err").style.color = "#f00";
      return true;
   }    
   document.getElementById(obj.name + "_err").style.color = "#000";
   return false;
}    

