      dont_validate = new Array('submit');

      window.onload = function() { 
        document.getElementById('form_emailer').onsubmit = function() { return validateForm(this); };	
      }
      
      function validateForm(form) {
      	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
      	var msg = '';
      	var label = '';
      	var elements = form.elements;
      	for (var i = 0; i < elements.length; i++) {
      		var obj = elements[i];
       		obj.className = obj.className.replace('form_error', '');
      		if (!in_array(dont_validate, obj.name) && obj.value == '') {
      			if (document.getElementById('label_' + obj.name))
      	      label = document.getElementById('label_' + obj.name).innerHTML;
      	    else
      	      label = obj.name.toUpperCase();
      		  obj.className += ' form_error';
      		  if (obj.type != 'select-one')
      			  msg += label + " is a required field.\n";
      			else
      			  msg += "Please choose an option from the " + label + " menu.\n";
      		} else if (obj.value != '' && obj.name.indexOf('email') > -1) {
      	    var label = document.getElementById('label_' + obj.name).innerHTML;
            if (!filter.test(obj.value)) {
        		  obj.className += ' form_error';
              msg += label + " must be a valid email address.\n";
            }
      		}
      	}
    	  if (msg != '') {
    		  alert(msg);
    	    return false;
      	}
      	return true;
      }
      
      function in_array(arr,key) {
      	for (var i = 0; i < arr.length; i++) {
      		if (arr[i] == key)
      		  return true;
      	}
      	return false;
      }
