text: window.onload = function() {
    document.forms[0].onsubmit= validForm;
  }
  
  function validForm() {
    var allTags = document.forms[0].getelementsByTagName("*");
  
    for(var i=0; i<allTags.length; i++) {
      validTag(allTags[i]);
    }
    return false;
  
    function validTag(thisTag) {
      var outClass = "";
      var allClasses = thisTag.className.split(" ");
  
      for(var j=0; j<allClasses.length; j++) {
        outClass += validBasedOnClass(allClasses[j]) + " ";
      }
  
      thisTag.className = outClass;
  
      if(outClass.indexOf("invalid") > -1) {
        invalidLabel(thisTag.parentNode);
        thisTag.focus();
        if(thisTag.nodeName == "INPUT") {
          thisTag.select();
        }
      }
  
      function validBasedOnClass(thisClass) {
        var classBack = "";
  
        switch(thisClass) {
          case "":
          case "invalid":
            break;
          case "phone":
            if(!validPhone(thisTag.value)) {
              classBack = "invalid ";
            }
          default:
            classBack += thisClass;
        }
        return classBack;
      }
  
      function validPhone(phoneNum) {
        var re = /^\(?(\d{3})\)?[\.\-\/]?(\d{3})[\.\-\/ ]?(\d{4})$/;
  
        var phoneArray = re.exec(phoneNum);
        if(phoneArray) {
          document.getElementById("phoneField").value = "(" + phoneArray[1] + ") " + phoneArray[2] + "-" + phoneArray[3];
          return true;
        }
        return false;
      }
  
      function invalidLabel(parentTag) {
        if(parentTag.nodeName == "LABEL") {
          parentTag.className += "invalid";
        }
      }
    }
  }
  