function isInteger(Val)
{
	if (isNaN(Number(Val))==false && Val.length>0)
	{
		if(Val.indexOf(".")==-1)
		{
			return true

        }
	}
    return false;
}

function isDecimal(Val)
{

	if (isNaN(Number(Val))==false && Val.length>0)
	{
		return true;
	}
	return false;
}

function isDate(Val)
{
	//(Schritt 1) Fehlerbehandlung
	if (!Val) return false;
	Val=Val.toString();

    //(Schritt 2) Aufspaltung des Vals
	Val=Val.split(".");
	if (Val.length!=3) return false;

    //(Schritt 3) Entfernung der fuehrenden Nullen und Anpassung des Monats
	Val[0]=parseInt(Val[0],10);
	Val[1]=parseInt(Val[1],10)-1;

    //(Schritt 4) Behandlung Jahr nur zweistellig
	if (Val[2].length==2) Val[2]="20"+Val[2];

    //(Schritt 5) Erzeugung eines neuen Dateobjektes
	var kontrollVal=new Date(Val[2],Val[1],Val[0]);

    //(Schritt 6) Vergleich, ob das eingegebene Val gleich dem JS-Val ist
	if (kontrollVal.getDate()==Val[0] && kontrollVal.getMonth()==Val[1] && kontrollVal.getFullYear()==Val[2])

    return true; else return false;

}

function checkForm(frm)
{

	ElementsCount=frm.elements.length;
	sendFrm=true;
	
	for(i=0;i<ElementsCount;i++)
	{		
		checkType=frm.elements[i].getAttribute("checkType");
        if(frm.elements[i].className.substr(0, 5)=="error")
        {
            //frm.elements[i].className=frm.elements[i].getAttribute("txtClassName");
            frm.elements[i].className=frm.elements[i].className.substr(6);
        }
		switch(checkType)
		{
			case "integer":
				if(!isInteger(trim(frm.elements[i].value)))
				{      
					frm.elements[i].className="error "+frm.elements[i].className;
					sendFrm=false;
				}
				break;

			case "date":
				if(!isDate(trim(frm.elements[i].value)))
				{      
					frm.elements[i].className="error "+frm.elements[i].className;
					sendFrm=false;
				}
				break;
			case "notNull":
				if(trim(frm.elements[i].value)=="")
				{      
					frm.elements[i].className="error "+frm.elements[i].className;
					sendFrm=false;
				}
				break;
			case "not-1":
				if(trim(frm.elements[i].value)=="-1")
				{      
					frm.elements[i].className="error "+frm.elements[i].className;
					sendFrm=false;
				}
				break;
			case "real":
				if(!isDecimal(trim(frm.elements[i].value)))
				{
					frm.elements[i].className="error "+frm.elements[i].className;
					sendFrm=false;				
				}
				break;
			case "mail":

				var derSatz = frm.elements[i].value;
				var Suche = /^(([a-z0-9])+(([\-|\_])+([a-z0-9])+)*(\.([a-z0-9])+([\-|\_]+([a-z0-9])+)*)*\@((([a-z0-9](\-[a-z0-9])*)+\.)*([a-z0-9](\-[a-z0-9])*)+\.([a-z]){2,6}))$/i;
				var Ergebnis;
				Ergebnis = Suche.exec(derSatz)
				if(Ergebnis!=null)
				{
					if(Ergebnis[0].length!=derSatz.length)
					{
						frm.elements[i].className="error "+frm.elements[i].className;
						sendFrm=false;										
					}
				}
				else
				{
					frm.elements[i].className="error "+frm.elements[i].className;
					sendFrm=false;					
				}
				break;
		}

	}

    if(!sendFrm)
	{
		alert("Bitte f�llen Sie alle Felder korrekt aus. Die rot gekennzeicheten Felder zeigen Ihnen an, wo Fehler in der Eingabe passiert sind.");
		return false;
	}
	else
	{
		return true;
	}

}

function runde(zahl,nachkommastellen)
{
	if (nachkommastellen<1)
	return Math.round(zahl);

	var retzahl=Math.round(zahl*10*nachkommastellen);
	return retzahl/nachkommastellen/10;
}

function trim(str)
{
	s = str.replace(/^(\s)*/, '');
	s = s.replace(/(\s)*$/, '');
	return s;
}

