function checkform(req,err,of) {
  var reqfields,em,i,f,ty,warn;
  warn='fileadmin/templates/images/warning.gif';
  if (document.getElementById(req)) {
    reqfields=document.getElementById(req).value.split(',');
    if (document.getElementById(err)) {
      em=document.getElementById(err);
      em.parentNode.removeChild(em);
    }
    for (i=0;i<reqfields.length;i++) {
      f=document.getElementById(reqfields[i]);
      if (f.nextSibling && /img/i.test(f.nextSibling.nodeName)) {
        f.parentNode.removeChild(f.nextSibling);
      }
      f.style.background='transparent';
      if (f) {
        ty=f.type.toLowerCase();
        switch(ty) {
          case 'text':
            if (f.value=='') {
              adderr(f.id,of,err,warn);
            } else if (f.id.match('email') && !f.value.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/)) {
              var warn='fileadmin/templates/images/email_invalid.gif';
              adderr(f.id,of,err,warn);
              var em=document.createElement('p');
              em.id=err;
              i=document.createElement('img');
              i.setAttribute('class', 'email_invalid');
              i.src=warn;
              i.alt='Error';
              i.title='Keine korrekte Email-Adresse!';
              em.appendChild(i);
              em.appendChild(document.createTextNode(': Die Email-Adresse ist nicht korrekt!'));
              document.getElementById(err).appendChild(em);
            }
            break;
          case 'textarea':
            if (f.value=='') {
              adderr(f.id,of,err,warn);
            }
            break;
          case 'checkbox':
            if (!f.checked) {
              adderr(f.id,of,err,warn);
            }
            break;
        }
      }
    }
  }
  if (document.getElementById(err)) {
    return false;
  }
}

function adderr(id,of,err,warn) {
  var se,i;
  i=document.createElement('img');
  i.setAttribute('class', 'warning');
  //i.class='warning';
  i.src=warn;
  i.alt='Error';
  i.title='Keine korrekte Eingabe!';
  se=document.getElementById(id);
  se.parentNode.insertBefore(i,se.nextSibling);
  se.style.background='#FF4500';
  if (!document.getElementById(err)) {
    var em=document.createElement('p');
    em.id=err;
    i=document.createElement('img');
    i.setAttribute('class', 'warning');
    i.src=warn;
    i.alt='Error';
    i.title='Keine korrekte Eingabe!';
    em.appendChild(i);
    em.appendChild(document.createTextNode(': Die Eingabe für dieses Feld ist nicht korrekt bzw. leer!'));
    for (var i=0;i<of.getElementsByTagName('input').length;i++) {
      if (/submit/i.test(of.getElementsByTagName('input')[i].getAttribute('type'))) {
        var sb=of.getElementsByTagName('input')[i];
        break;
      }
    }
    em.style.border='2px solid #FF4500';
    em.style.padding='5px 0 3px 0';
    em.style.width='28em';
    sb.parentNode.insertBefore(em,sb);
  }
}