function formHelpers() {
  var
  required_inputs = document.getElementsByTagName("input"),
  required_textareas = document.getElementsByTagName("textarea"),
  error_msg,
  error_msg_txt,
  id,
  container,
  email = document.getElementById("email"),
  emailRegex = /^([a-zA-Z0-9]{3,})(((\.|\-|\_)[a-zA-Z0-9]{2,})+)?@([a-z]{3,})(\-[a-z0-9]{3,})?(\.[a-z]{2,})+$/,
  fields = ["input","textarea","select"];

  for ( i=0,ilen = fields.length; i<ilen; i++ ) {
    collection = document.getElementsByTagName(fields[i]);
    for (j=0,jlen = collection.length; j<jlen; j++) {
      var element = collection[j];
            
      if (element.className == "required") {
        element.onblur = function() {
          id = this.getAttribute("title").replace(/ /ig,"-");
          if ( (this.value == "") || 
               (this.value == "Name") || 
               (this.value == "Email Address") ||
               (this.value == "Message") ) {
            error_msg = document.createElement("p");
            error_msg_txt = document.createTextNode("Doh! Don't forget to " + this.title + ".");
            error_msg.appendChild(error_msg_txt);
            error_msg.setAttribute("class","error");
            error_msg.setAttribute("id",id);

            if ( !document.getElementById(id) ) {
              insertAfter(error_msg,this);
              this.setAttribute("style","border-color: #E54725");
            }

          } else {
            container = this.parentNode;
            if ( error_msg = document.getElementById(id) ) {
              container.removeChild(error_msg);
              this.setAttribute("style","border-color: #C99D2A");
            }
          }
        }
      }
    }
  }
}

addLoadEvent(formHelpers);
