checker={};
collectCheckers();


function collectCheckers()
{	// todo: onsubmit optional setzen

	checktags=['input','select','textarea','file'];
	checker.els=[];
	checker.frm=document.forms[0];
	for(var i=0;i<checktags.length;i++)
	{var t=document.getElementsByTagName(checktags[i]);
		for(var j=0;j<t.length;j++)
		{	var p=t[j].name.split(' ');
			if(t[j].name!=p[0])
			{	t[j].name=p[0];
				checker.frm.elements[t[j].name]=t[j];
				p.shift();
				t[j].check=p;
				checker.els[checker.els.length]=t[j];
			}
		}
	}
	checker.frm.onsubmit=function(){return false;};
   if(typeof(document.addEventListener)!="undefined")
   {	checker.frm.addEventListener("submit",checkRequiredFields,true);
	}
   else if(typeof(document.attachEvent)!=undefined)
		checker.frm.attachEvent("onsubmit",checkRequiredFields);  

}

function required(f)
{
	if(f.name.indexOf("email")>-1)
		{
		x=getVal(f);
		if(getVal(f)==''||getVal(f).indexOf("@")<0||getVal(f).indexOf(".")<0)
			return false;
		}
	else
		{
		if(getVal(f)=='')
			return false;
		}
	return true;
}

function checkRequiredFields()
{	succ=true;
	for(var i=0;i<checker.els.length;i++)
	{	for(var j=0;j<checker.els[i].check.length;j++)
		{	eval('var fkt='+checker.els[i].check[j]);
			if(fkt!=undefined && !fkt(checker.els[i]))
			{	succ=false;
				checker.els[i].style.backgroundColor='C50028';
				checker.els[i].onfocus=function()
				{	this.style.backgroundColor='F5F5F5';
					this.onfocus=null;
				}
				j+=99;
			}
		}
	}
	if(succ)
	{	if(typeof(document.addEventListener)!="undefined")
			this.submit();
		else
			return succ;
	}
	return false;
}

function getVal(obj)
{	if((obj.type=="textarea")||(obj.type=="text")||(obj.type=="hidden")||(obj.type=="file"))
	{	if(obj.value)
			return obj.value;
		return "";
	}
	if(obj.type=="checkbox")
	{	if(obj.checked)
			return obj.value;
		return '';
	}
	if(obj.options)
	{	retval='';
		if(obj.selectedIndex>=0)
		{	retval=obj.options[obj.selectedIndex].value;
			if(retval==0)
				retval="";
			return retval;
		}
		else
			return "";
	}
	else if(obj.length>1)
	{	for(l=0;l<obj.length;l++)
		{	if(obj[l].checked)
				return obj[l].value;
		}
		return "";
	}
}

function searchInArr(arr,txt)
{	for(var i=0;i<arr.length;i++)
		if(arr[i]==txt)
			return true;
	return false;
}
