function checkform(of) {
	var reqfields, em, i, f, ty;
 	if(document.getElementById('required')) {
  	reqfields=document.getElementById('required').value.split(',');
  	
  	if(document.getElementById('errormsg')){
  		em=document.getElementById('errormsg');
   		em.parentNode.removeChild(em);
  	}
  	
  	for(i=0;i<reqfields.length;i++) {
   		f=document.getElementById(reqfields[i]);
   
   		if(f.previousSibling && /img/i.test(f.previousSibling.nodeName)){
    		f.parentNode.removeChild(f.previousSibling);
   		}
   		
   		f.style.background='transparent';
   		
   		if(f){
  		  ty=f.type.toLowerCase();
    		switch(ty){
    			case 'textarea':
      			if(f.value==''){adderr(f.id,of)}       
     				break;
     				
     			case 'text':
      			if(f.value==''){adderr(f.id,of)}       
      			if(f.id=='email' && !isEmailAddr(f.value)){ 
       				adderr(f.id,fieldnames[f.id],of)
      			}							
     				break;
     

     			
     			case 'checkbox':
      			if(!f.checked){adderr(f.id,of)}       
     				break;
    			 /* extend as needed */
    		}
   		}
  	}
	}
	
	// falls eine Fehlermeldung vorhanden ist, dann wird die submit-Aktion abgebrochen
	if(document.getElementById('errormsg')) {
  	return false;
 	}
}

function adderr(id,of) {
	var se,i,nli,na;
	
	i=document.createElement('img');
	i.src='../../images/alert.gif';
	i.alt='Fehler';
	i.title='Das Feld ist falsch ausgef&uuml;llt!';
	se=document.getElementById(id);
	se.parentNode.insertBefore(i,se)
	se.style.background='#fcc';
	
	if(!document.getElementById('errormsg')){
  	var em=document.createElement('p');
  	em.id='errormsg';
  	em.style.border='2px solid #c00';
  	em.style.padding='5px';
  	em.style.width='20em';
  	em.appendChild(document.createTextNode('Hinweis: Bitte f&uuml;llen Sie die Felder aus, die mit dem folgenden Symbol gekennzeichnet sind: '));
  	i=document.createElement('img');
  	i.src='../../images/alert.gif';
  	i.alt='Fehler';
  	i.title='Das Feld ist falsch ausgef&uuml;llt!';
  	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('Your email seems to be invalid'));
  		document.getElementById('errormsg').appendChild(pn);
  	}
	}
}

function isEmailAddr(str) {
    return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
}
