// JavaScript Document
    	function checkform(of)
		{
			
			var reqfields,em,i,f,ty;
			/* Changes from form example */
			// reading all the labels and placing them in an associative 
			// array
			var labels,fieldnames;
			fieldnames=new Array();
			if(document.getElementsByTagName('label').length>0)
			{
				labels=document.getElementsByTagName('label');
				for(i=0;i<labels.length;i++)
				{
					fieldnames[labels[i].htmlFor]=labels[i].firstChild.nodeValue;
				}
			}
			/* end Changes from form example */
			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';
					document.getElementById("label_"+reqfields[i]).style.color="black";
					if(f){
						ty=f.type.toLowerCase();
						switch(ty)
						{
							case 'text':
								if(f.value==''){adderr(f.id,fieldnames[f.id],of)}							
								if(f.value!='' && f.id=='email' && !isEmailAddr(f.value)){adderr(f.id,fieldnames[f.id],of)}							
							break;
							case 'textarea':
								if(f.value==''){adderr(f.id,fieldnames[f.id],of)}							
							break;
							case 'checkbox':
								if(!f.checked){adderr(f.id,fieldnames[f.id],of)}							
							break;
							
							/* extend as needed */
						}
					}
					
				}
				
			}
			if(document.getElementById('errormsg'))
			{
				return false;
			}
		}
		function adderr(id,name,of)
		{
		 	var se,i,nli,na,newli;
			i=document.createElement('img');
			i.src='';
			i.alt='';
			i.title='Fehler bei den Pflichtfeldern:';
			se=document.getElementById(id);
			se.parentNode.insertBefore(i,se)
			se.style.background='#fcc';
			document.getElementById("label_"+id).style.color="red";
			if(!document.getElementById('errormsg'))
			{
				var em=document.createElement('p');
				em.id='errormsg';
				em.appendChild(document.createTextNode('Fehler bei den Pflichtfeldern: '))
			/* Changes from form example */
				ul=document.createElement('ul');
				ul.id='errorlist';
				em.appendChild(ul);
			/* end Changes from form example */
				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 #c00';
				em.style.padding='5px';
				em.style.width='20em';
				sb.parentNode.insertBefore(em,sb);
			}
			if(id=='email' && document.getElementById(id).value != '' && !isEmailAddr(document.getElementById(id).value))
			{
				pn=document.createElement('p');
				pn.appendChild(document.createTextNode('Die E-Mail Adresse ist nicht korrekt'))	
				document.getElementById('errormsg').appendChild(pn);
			}
			/* Changes from form example */
			newli=document.createElement('li');
			newli.appendChild(document.createTextNode(name))
			document.getElementById('errorlist').appendChild(newli);
			/* end Changes from form example */
		}

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