if (document.createElement && document.getElementsByTagName) {
 var eersteKeer = true, evtValidatie = window.onload;
 window.onload = (typeof(window.onload) != 'function' ? checkAllForms : function() { evtValidatie(); checkAllForms(); });
}

function checkAllForms() {
 for (var i = 0; i < document.getElementsByTagName('form').length; i++) {
  var thisForm = document.getElementsByTagName('form')[i];
  thisForm.onsubmit = function() {
   eersteKeer = true;
   var gelukt = true;
   for (var i = 0; i < this.length; i++) {
    var field = this.elements[i];
    var cls = field.className.toLowerCase();
    if (cls != '') {
     if (cls.indexOf('required') != -1) {
      if (field.value == '' || trim(field.value) == '') {
       if (!field.error) {
        makeError(field, '↑ Dit veld is vereist om het formulier te versturen');
       }
       gelukt = false;
      }
      if (!gelukt && eersteKeer) {
       if (field.select) field.select();
       if (field.focus) field.focus();
       eersteKeer = false;
      }
     }
    }
   }
   return gelukt;
  }
 }
}

function trim(text) {
 var tmpEmpty = new String(' \t\n\r');
 var tmpString = new String(text);
 if (tmpEmpty.indexOf(tmpString.charAt(0)) != -1) {
  var j = 0;
  var i = tmpString.length;
  while (j < i && tmpEmpty.indexOf(tmpString.charAt(j)) != -1) {
   j++;
  }
  tmpString = tmpString.substring(j, i);
 }
 if (tmpEmpty.indexOf(tmpString.charAt(tmpString.length - 1)) != -1) {
  var i = tmpString.length - 1;
  while (i >= 0 && tmpEmpty.indexOf(tmpString.charAt(i)) != -1) {
   i--;
  }
  tmpString = tmpString.substring(0, i + 1);
 }
 return tmpString;
}

function makeError(field, text) {
 field.parentNode.className = 'error';
 field.onchange = function() {
  removeError(this);
 }
 var help = document.createElement('dd');
 help.className = 'help';
 DOM_insertAfter(help, field.parentNode);
 help.appendChild(document.createTextNode(text));
 field.error = help;
}

function removeError(field) {
 field.parentNode.className = '';
 if (field.error) {
  field.parentNode.parentNode.removeChild(field.error);
  field.error = null;
 }
}

function DOM_insertAfter(newChild, refChild) {
 var parent = refChild.parentNode;
 if (parent.lastChild == refChild) {
  return parent.appendChild(newChild);
 } else {
  return parent.insertBefore(newChild, refChild.nextSibling);
 }
}