function validateForm(form) {
  if(isChosen(form.Subject)){
    if(isNotEmpty(form.Name)){
      if(isNotEmpty(form.Address)){
        if(isNotEmpty(form.City)){
	  if(isChosen(form.State)){
	    if(isNotEmpty(form.Zip)){
	      if(isNotEmpty(form.Phone)){
	        if(isValidEmail(form.Email)){
		  if(isNotEmpty(form.Message)){
		    return true;
		  }
  		}
	      }
	    }
	  }
	}
      }
    }
  }
  return false;
}

function isNotEmpty(input){
  var str = input.value;
  var re = /.+/;
  if(!str.match(re)) {
    alert("This field is required.");
    setTimeout("setFocus('" + input.name + "')", 0);
    return false;
  } else {
    return true;
  }
}

function isChosen(select){
  if(select.selectedIndex == 0) {
    alert("Please select an option from the list.");
    setTimeout("setFocus('" + select.name + "')", 0);
    return false;
  } else {
    return true;
  }
}

function isValidEmail(input){
  var str = input.value;
  var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
  if(!str.match(re)) {
    alert("The email address you've entered has not been formatted correctly. Please enter a valid email address.");
    setTimeout("setFocus('" + input.name + "')", 0);
    return false;
  } else {
    return true;
  }
}
function setFocus(elemName) {
  elem = document.forms["contact"].elements[elemName];
  elem.focus();
  if(elem.tagName != "SELECT") {
    elem.select();
  }
}