String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }

var reqFields = new Array('name', 'email', 'message');
function validate() {
  valid = true;
  filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  
  name = getValue('name');
  email = getValue('email');
  message = getValue('message');
  for(i=0; i<reqFields.length; i++) {
    val = window[reqFields[i]];    
    if(val == null || val.trim() == '') {
      valid = false;
      document.getElementById('userMessage').innerHTML = 'Please fill the ' + reqFields[i] + ' field';
      document.getElementById(reqFields[i]).focus;
      break;
    } else if(reqFields[i] == 'email') {
      if(!filter.test(email)) {
        document.getElementById('userMessage').innerHTML = 'Please enter a valid email address';
        document.getElementById('email').focus;
        valid = false;
        break;
      }
    }
  }
  
  return valid;
}

function getValue(field) {
  value = null;
  obj = document.getElementById(field);
  value = (obj.selectedIndex) ? obj.selectedIndex.value : obj.value;
  return value;
}