function checkform(of)
		{
			var reqfields,em,i,f,ty;
			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;
				}
			}
			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 'text':
								if(f.value==''){adderr(f.id,fieldnames[f.id],of)}			
								if(f.id=='email' && !isEmailAddr(f.value)){adderr(f.id,fieldnames[f.id],of)}							
								if(f.id=='email_absender' && !isEmailAddr(f.value)){adderr(f.id,fieldnames[f.id],of)}							
								if(f.id=='email_empfaenger' && !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,newa;
			i=document.createElement('img');
			i.src='images/icons/alert.gif';
			i.alt='Error';
			i.title='This field has an error!';
			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.appendChild(document.createTextNode('Bitte füllen Sie folgende Felder aus: '))
				ul=document.createElement('ul');
				ul.id='errorlist';
				em.appendChild(ul);
				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' && !isEmailAddr(document.getElementById(id).value)){
				pn=document.createElement('p');
				pn.appendChild(document.createTextNode('Die Emailadresse scheint ungültig zu sein'))	
				document.getElementById('errormsg').appendChild(pn);
			}
			newli=document.createElement('li');
/* Changes from errorlist example */
			newa=document.createElement('a');
			newa.appendChild(document.createTextNode(name));
			newa.href='#'+id;
			newa.isid=id;
			newa.onclick=function()
			{
				document.getElementById(this.isid).focus();
				return false;
			}
			newli.appendChild(newa)
/* Changes end */
			document.getElementById('errorlist').appendChild(newli);
		}

		function isEmailAddr(str) 
		{
		    return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
		}
		
/***************************************************************/
/* Formular nur einmal abschicken                              */
/* Aufruf: <form method="POST" onSubmit="submitonce(this)">    */
/***************************************************************/
function submitonce(theform){
	//if IE 4+ or NS 6+
	if (document.all||document.getElementById){
	//screen thru every element in the form, and hunt down "submit" and "reset"
		for (i=0;i<theform.length;i++){
		var tempobj=theform.elements[i]
		if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")
		//disable em
		tempobj.disabled=true
		}
	}
}
/***************************************************************/
/* Formular Bestätigung erforderlich                           */
/* 
<form name="agreeform" onSubmit="return defaultagree(this)">
Rest of your form here<br>
<input name="agreecheck" type="checkbox" onClick="agreesubmit(this)"&gt;<b>I agree to the above terms</b><br>
<input type="Submit" value="Submit!" disabled>
</form><script>
//change two names below to your form's names
document.forms.agreeform.agreecheck.checked=false
</script>    
*/
/***************************************************************/

var checkobj

function agreesubmit(el){
checkobj=el
if (document.all||document.getElementById){
for (i=0;i<checkobj.form.length;i++){  //hunt down submit button
var tempobj=checkobj.form.elements[i]
if(tempobj.type.toLowerCase()=="submit")
tempobj.disabled=!checkobj.checked
}
}
}

function defaultagree(el){
if (!document.all&&!document.getElementById){
if (window.checkobj&&checkobj.checked)
return true
else{
alert("Please read/accept terms to submit form")
return false
}
}
}

/***************************************************************/
/* POPup-Script                         */
/* 
<div id="dwindow" style="position:absolute;background-color:#EBEBEB;cursor:hand;left:0px;top:0px;display:none" onMousedown="initializedrag(event)" onMouseup="stopdrag()" onSelectStart="return false">
<div align="right" style="background-color:navy"><img src="max.gif" id="maxname" onClick="maximize()"><img src="close.gif" onClick="closeit()"></div>
<div id="dwindowcontent" style="height:100%">
<iframe id="cframe" src="" width=100% height=100%></iframe>
</div>
</div>

<script>
//Use below code to load DHTML Window as page loads 
if (ns6) window.onload=new Function('loadwindow("http://www.google.com",600,400)')
else
loadwindow("http://www.google.com",600,400)
</script>

<!--Use below code to load DHTML window via link-->
<a href="javascript:loadwindow('http://www.google.com',600,400)">Geocities</a>*/
/***************************************************************/

var dragapproved=false
var minrestore=0
var initialwidth,initialheight
var ie5=document.all&&document.getElementById
var ns6=document.getElementById&&!document.all

function iecompattest(){
return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function drag_drop(e){
if (ie5&&dragapproved&&event.button==1){
document.getElementById("dwindow").style.left=tempx+event.clientX-offsetx+"px"
document.getElementById("dwindow").style.top=tempy+event.clientY-offsety+"px"
}
else if (ns6&&dragapproved){
document.getElementById("dwindow").style.left=tempx+e.clientX-offsetx+"px"
document.getElementById("dwindow").style.top=tempy+e.clientY-offsety+"px"
}
}

function initializedrag(e){
offsetx=ie5? event.clientX : e.clientX
offsety=ie5? event.clientY : e.clientY
document.getElementById("dwindowcontent").style.display="none" //extra
tempx=parseInt(document.getElementById("dwindow").style.left)
tempy=parseInt(document.getElementById("dwindow").style.top)

dragapproved=true
document.getElementById("dwindow").onmousemove=drag_drop
}

function loadwindow(url,width,height){
if (!ie5&&!ns6)
window.open(url,"","width=width,height=height,scrollbars=1")
else{
document.getElementById("dwindow").style.display=''
document.getElementById("dwindow").style.width=initialwidth=width+"px"
document.getElementById("dwindow").style.height=initialheight=height+"px"
document.getElementById("dwindow").style.left="30px"
document.getElementById("dwindow").style.top=ns6? window.pageYOffset*1+30+"px" : iecompattest().scrollTop*1+30+"px"
document.getElementById("cframe").src=url
}
}

function maximize(){
if (minrestore==0){
minrestore=1 //maximize window
document.getElementById("maxname").setAttribute("src","restore.gif")
document.getElementById("dwindow").style.width=ns6? window.innerWidth-20+"px" : iecompattest().clientWidth+"px"
document.getElementById("dwindow").style.height=ns6? window.innerHeight-20+"px" : iecompattest().clientHeight+"px"
}
else{
minrestore=0 //restore window
document.getElementById("maxname").setAttribute("src","max.gif")
document.getElementById("dwindow").style.width=initialwidth
document.getElementById("dwindow").style.height=initialheight
}
document.getElementById("dwindow").style.left=ns6? window.pageXOffset+"px" : iecompattest().scrollLeft+"px"
document.getElementById("dwindow").style.top=ns6? window.pageYOffset+"px" : iecompattest().scrollTop+"px"
}

function closeit(){
document.getElementById("dwindow").style.display="none"
}

function stopdrag(){
dragapproved=false;
document.getElementById("dwindow").onmousemove=null;
document.getElementById("dwindowcontent").style.display="" //extra
}

MS_restrict_field = function(formname, id_or_name, chars) {

	var obj = (document.getElementById && document.getElementById(id_or_name) != null)
			  ? document.getElementById(id_or_name) : ((document[formname][id_or_name] != null)
			  ? document[formname][id_or_name] : '');

	if(obj.type == "text" || obj.type == "textarea") {

		obj.timer = "";
		obj.chars = chars;
		obj.onkeypress = obj.onkeydown = function() {
			var self = this;
			controll = function() {
				for(var t='',x=0; x<self.value.length; ++x) {
					if(self.chars.indexOf(self.value.charAt(x))>-1) {
						t += self.value.charAt(x);
					}
				}
				self.value = t;
			};
			this.timer = setTimeout(controll,1);
		};
		obj.onkeyup = function() {
			clearTimeout(this.timer);
		};
	}
};
