/*
			Validator_Array = 
			[
				[1, "form", "glob-id"], version 1: [ver, formularname, global-validator-stil]
				
				["anrede", ["d_anrede", "anrede", "anrede_achtung"], "Anrede"],
			];		


*/


function ___GetMyElement(Id)
{
	if (document.getElementById != null)
	{
		return document.getElementById(Id);
	}
	if (document.all != null)
	{
		return document.all(Id);
	}
	
}


function validator__ValidateElement(Id)
{
	var o,t;
	
	o = ___GetMyElement(Id);
	if (o==null) return false;
	
	t = o.type;
	if (t=="checkbox")
	{
		return o.checked;
	}
	else
	if ((t=="text") || (t=="textarea"))
	{
		var c,i,s;
		s	= String(o.value);
		c	= s.length;

		for(i=0; i<c; ++i)
		{
			if (s.charCodeAt(i) != 0x20) return true;
		}
		return false;
	}
	else
	if (t=="select-one")
	{
		return o.selectedIndex > 0;
	}
}

function validator__SetClassNames(a,n)
{
	var c,i;
	
	c = a.length;
	for(i=0; i<c; ++i)
	{
		___GetMyElement(a[i]).className=n;
	}
}

function validator__ValidateAll()
{
	var c, i, valid, s, nl, GlobValidId;
	
	valid	= true;
	c		= Validator_Array.length;
	s		= "";
	nl		= "\r\n";
	
	for(i=1; i<c; ++i)
	{
		s_input	= Validator_Array[i][0];
		a_desc	= Validator_Array[i][1];
		if (validator__ValidateElement(s_input))
		{
			validator__SetClassNames(a_desc, "validator-valid");
		}
		else
		{
			validator__SetClassNames(a_desc, "validator-invalid");
			s += nl + Validator_Array[i][2];
			valid = false;
		}
	}
	
	validator__ErrorString = new String();
	validator__ErrorString += s;
	
	GlobValidId = Validator_Array[0][2];
	if (GlobValidId != "")
	{
		var o;
		o = ___GetMyElement(GlobValidId);
		
		if(o != null)
		{
			o.className = valid ? "validator-valid" : "validator-invalid";		
		}
	}
	
	
	return valid;
}

function validator__Submit()
{
	var err, nl;
	
	nl		= "\r\n";
	err	= "";

	if (validator__ValidateAll())
	{
		___GetMyElement(Validator_Array[0][1]).submit();
	}
	else
	{
		err += "Sie haben das Formular noch nicht komplett ausgefüllt!";
		err += nl + nl + "Es fehlen Angaben für folgende Felder:";
		err += nl + validator__ErrorString;
		
		alert(err);
	}
}


