function checkform(of)
{
 var reqfields,em,i,f,ty;
 if(document.getElementById('required'))
 {
  reqfields=document.getElementById('required').value.split(','); /*required enthält die Namen der Pflichtfelder */
  if(document.getElementById('errormsg')){              // Lösche die Fehlermeldung
     em=document.getElementById('errormsg');
     em.parentNode.removeChild(em);
 }
 for(i=0;i<reqfields.length;i++)
  {
   f=document.getElementById(reqfields[i]);                            // Lösche das Bild
 //  if(f.previousSibling && /img/i.test(f.previousSibling.nodeName)){
 //   f.parentNode.removeChild(f.previousSibling);
  // }
   f.style.background='#ffffff';                                 // Lösche die rote Hintergrundfarbe
   if(f){
    ty=f.type.toLowerCase();
    switch(ty)
    {
     case 'text':                                               //Wenn es ein Textfeld ist und es ist leer, dann füge Fehlermeldung hinzu
      if(f.value==''){adderr(f.id,of)}
  //    if(f.id=='email' && !isEmailAddr(f.value)){               // Wenn es keine emailadresse ist, füge Fehlermeldung hinzu
   //    adderr(f.id,of)
    //  }
     break;
     case 'textarea':                                          //Wenn es Textarea ist und leer, dann füge Fehlermeldung hinzu
      if(f.value==''){adderr(f.id,of)}
     break;
     case 'checkbox':                                          //Wenn es eine Checkbox ist und es ist nicht ausgewählt, dann füge Fehlermeldung hinzu
      if(!f.checked){adderr(f.id,of)}
     break;
     /* extend as needed */
    }
   }
  }
 }
 if(document.getElementById('errormsg'))                     // Wenn es Fehlermeldung gibt, dann Ausführung stoppen und Formulardaten nicht an den Server schicken
 {
  return false;
 }
}

function adderr(id,of)                                // Funktion um eine Fehlermeldung hinzuzufügen
{
 var se,i,nli,na;
/* i=document.createElement('img');                      //Fehlerbild
 i.src='images/alert.gif';
 i.alt='Error';                                        // Fehlertext zum Bild
 i.title='This field has an error!'; */
 se=document.getElementById(id);
// se.parentNode.insertBefore(i,se)                     // Bild einfügen
 se.style.background='#ffcc66';                          // Hintergrund des Feldes einfärben
 if(!document.getElementById('errormsg')){
  var em=document.createElement('p');
  em.id='errormsg';
  em.style.border='2px solid #c00';
  em.style.padding='10px';
  em.style.width='92%';
  em.appendChild(document.createTextNode('Bitte, füllen Sie die farbig hinterlegten Felder noch aus. Es handelt sich um Pflichtfelder!'))
/*  i=document.createElement('img');
  i.src='images/alert.gif';
  i.alt='Error';
  i.title='This field has an error!';
  em.appendChild(i); */
  for(var i=0;i<of.getElementsByTagName('input').length;i++)
  {
   nowelm=of.getElementsByTagName('input')[i];
   if(/submit/i.test(nowelm.getAttribute('type')))
   {
    var sb=nowelm;
    break;
   }
  }
  sb.parentNode.insertBefore(em,sb);
 }
 /*if(id=='email' &&
 !isEmailAddr(document.getElementById(id).value)){
  pn=document.createElement('p');
  pn.appendChild(document.createTextNode('Die eMail scheint nicht richtig zu sein'))
  document.getElementById('errormsg').appendChild(pn);
 } */
}

function isEmailAddr(str)
{
    return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
}
