//----------------------------------------------------------------------------------------------------------
// Emailadresse testen
// gibt true zurück, wenn sie richtig ist, sonst false
// mode = 0 -> obj = string
// mode = 1 -> obj = form.object
function test_email(obj,mode)
{
	var regEmail = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*\.([a-zA-Z]{2,3})$/;
	
	if (mode == 0)
	{ 
		var sValue = obj;
	}
	else if (mode == 1)
	{
		var sValue = obj.value;
	}
	
	if (regEmail.test(sValue) == true)
	{
		return true;
	}
	else
	{
		return false;
	}
}

//----------------------------------------------------------------------------------------------------------
// Integer testen
// gibt true zurück, wenn Int ist, sonst false
// mode = 0 -> obj = string
// mode = 1 -> obj = form.object
function test_int(obj,mode)
{
	var regInt = /^[0-9]+$/;
	
	if (mode == 0)
	{ 
		var sValue = obj;
	}
	else if (mode == 1)
	{
		var sValue = obj.value;
	}
	
	if (regInt.test(sValue) == true)
	{
		return true;
	}
	else
	{
		return false;
	}
}

//----------------------------------------------------------------------------------------------------------
// Float testen
// gibt true zurück, wenn Float ist, sonst false
// mode = 0 -> obj = string
// mode = 1 -> obj = form.object
function test_float(obj,mode)
{
	var regFloat = /^[0-9]+(\.[0-9]+)*$/;
	
	if (mode == 0)
	{ 
		var sValue = obj;
	}
	else if (mode == 1)
	{
		var sValue = obj.value;
	}
	
	if (regFloat.test(sValue) == true)
	{
		return true;
	}
	else
	{
		return false;
	}
}

//----------------------------------------------------------------------------------------------------------
// Zeit testen  (hh:mm[:ss])
// gibt true zurück, wenn es ein gültiges Zeit Format ist, sonst false
// mode = 0 -> obj = string
// mode = 1 -> obj = form.object
function test_time(obj,mode)
{
	var regTime = /^([0-2]?[0-9]):[0-5][0-9](:[0-5][0-9])?$/;
	var iIndex;
	var iValue;
	
	if (mode == 0)
	{ 
		var sValue = obj;
	}
	else if (mode == 1)
	{
		var sValue = obj.value;
	}
	
	if (regTime.test(sValue) == true)
	{
		iIndex = sValue.indexOf(":");
		iValue = sValue.substr(0,iIndex);
		  
		if (iValue <= 23 && iValue >=0)
		{
			return true;
		}
		else
		{
			return false;
		}	
	}
	else
	{
		return false;
	}
}

//----------------------------------------------------------------------------------------------------------
// Datum testen  (dd.mm.yy[yy])
// gibt true zurück, wenn es ein gültiges Datums Format ist, sonst false
// mode = 0 -> obj = string
// mode = 1 -> obj = form.object
function test_date(obj,mode)
{
	var regDate = /^([0-3]?[0-9])\.([0-1]?[0-9])\.[1-9][0-9]{3}$/;
	var iIndex, iIndex2;
	var iMonth,iDay,iYear;
	var arrMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	
	
	if (mode == 0)
	{ 
		var sValue = obj;
	}
	else if (mode == 1)
	{
		var sValue = obj.value;
	}
	
	if (regDate.test(sValue) == true)
	{
		iIndex = sValue.indexOf(".");
		iIndex2 = sValue.indexOf(".",iIndex+1);
		
		iDay = sValue.substr(0,iIndex);
		iMonth = sValue.substring(iIndex+1,iIndex2);
		iYear = sValue.substr(iIndex2+1,sValue.length);		

		if (iMonth < 1 || iMonth > 12)
		{
			return false;		
		}
		
		if (iMonth == 2 && ( ( (iYear % 4) == 0 && (iYear % 100) != 0 ) || (iYear % 400) == 0 ) ) 
		{
			if (iDay < 1 || iDay > 29)
			{
				return false;
			}
		}
		else
		{
			if (iDay < 1 || iDay > arrMonth[iMonth-1])
			{
				return false;
			}
		}		

		return true;

	}
	else
	{
		return false;
	}
}

//----------------------------------------------------------------------------------------------------------
// Geld testen (xx[.yy]) -- 5 Rp. Schritt
// gibt true zurück, wenn es ein gültiges Geldformat ist, sonst false
// mode = 0 -> obj = string
// mode = 1 -> obj = form.object
function test_money(obj,mode)
{
	var regMoney = /(^[1-9][0-9]*|^0)(\.[0-9](0|5))?$/;
	
	if (mode == 0)
	{ 
		var sValue = obj;
	}
	else if (mode == 1)
	{
		var sValue = obj.value;
	}
	
	if (regMoney.test(sValue) == true)
	{
		return true;
	}
	else
	{
		return false;
	}
}


//----------------------------------------------------------------------------------------------------------
// String len testen 
// gibt true zurück, wenn ein String len >= lent ist, sonst false
// mode = 0 -> obj = string
// mode = 1 -> obj = form.object
// len = min. Länge des Strings
function test_string(obj,mode,len)
{
	if (mode == 0)
	{ 
		var sValue = obj;
	}
	else if (mode == 1)
	{
		var sValue = obj.value;
	}
	
	if (sValue.length >= len)
	{
		return true;
	}
	else
	{
		return false;
	}
}

//----------------------------------------------------------------------------------------------------------
// String len testen 
// gibt true zurück, wenn ein String len = len ist, sonst false
// mode = 0 -> obj = string
// mode = 1 -> obj = form.object
// len = min. Länge des Strings
function test_string2(obj,mode,len)
{
	if (mode == 0)
	{ 
		var sValue = obj;
	}
	else if (mode == 1)
	{
		var sValue = obj.value;
	}
	
	if (sValue.length == len)
	{
		return true;
	}
	else
	{
		return false;
	}
}

//----------------------------------------------------------------------------------------------------------
// Datum vergleichen  (dd.mm.yyyy)
// gibt true zurück, wenn erstes Datum (obj) kleiner gleich zweites Datum (obj2) ist, sonst false
// DATUM MUSS ZUERST MIT "test_date()"-Funktion ÜBERPRÜFT WERDEN!!!
// mode = 0 -> obj = string
// mode = 1 -> obj = form.object

function compare_date(obj,obj2,mode)
{
	if (mode == 0)
	{ 
		var sValue = obj;
		var sValue2 = obj2;		
	}
	else if (mode == 1)
	{
		var sValue = obj.value;
		var sValue2 = obj2.value;
	}
	
	iIndex = sValue.indexOf(".");
	iIndex2 = sValue.indexOf(".",iIndex+1);
	
	iDay = sValue.substr(0,iIndex);
	iDay = (iDay.length == 2) ? iDay : iDay = "0" + iDay ; 
	iMonth = sValue.substring(iIndex+1,iIndex2);
	iMonth = (iMonth.length == 2) ? iMonth : iMonth = "0" + iMonth ; 
	iYear = sValue.substr(iIndex2+1,sValue.length);	

	iIndex = sValue2.indexOf(".");
	iIndex2 = sValue2.indexOf(".",iIndex+1);
	
	iDay2 = sValue2.substr(0,iIndex);
	iDay2 = (iDay2.length == 2) ? iDay2 : iDay2 = "0" + iDay2 ; 
	iMonth2 = sValue2.substring(iIndex+1,iIndex2);
	iMonth2 = (iMonth2.length == 2) ? iMonth2: iMonth2 = "0" + iMonth2 ; 
	iYear2 = sValue2.substr(iIndex2+1,sValue.length);		
	
	iDate = parseInt(iYear + iMonth + iDay);
	iDate2 = parseInt(iYear2 + iMonth2 + iDay2);
	
	//alert(iDate + ", " + iDate2);
	
	if(iDate <= iDate2)
	{
		return true
	}
	else
	{
		return false;
	}
}

//----------------------------------------------------------------------------------------------------------
// Zeit vergleichen  (hh:mm[:ss])
// gibt true zurück, wenn erste Zeit (obj) kleiner gleich zweite Zeit (obj2) ist, sonst false
// ZEIT MUSS ZUERST MIT "test_time()"-Funktion ÜBERPRÜFT WERDEN!!!
// mode = 0 -> obj = string
// mode = 1 -> obj = form.object

function compare_time(obj,obj2,mode)
{
	if (mode == 0)
	{ 
		var sValue = obj;
		var sValue2 = obj2;		
	}
	else if (mode == 1)
	{
		var sValue = obj.value;
		var sValue2 = obj2.value;
	}

	bSec = true;

	iIndex = sValue.indexOf(":");
	iHour = sValue.substr(0,iIndex);

	iIndex2 = sValue.indexOf(":",iIndex+1);
	if (iIndex2 != -1)
	{
		alert("fgdfg");
		iMin = sValue.substring(iIndex+1,iIndex2);
		iSec = sValue.substr(iIndex2+1,sValue.length);	
		iSec = (iSec.length == 2) ? iSec : iSec = "0" + iSec;

	}
	else
	{
		iMin = sValue.substring(iIndex+1,sValue.length);
		bSec = false;
	}
	
	iMin = (iMin.length == 2) ? iMin : iMin = "0" + iMin;		
	
	iIndex = sValue2.indexOf(":");
	iHour2 = sValue2.substr(0,iIndex);	

	iIndex2 = sValue2.indexOf(":",iIndex+1);
	if (bSec && iIndex2 != -1)	
	{
		iMin2 = sValue2.substring(iIndex+1,iIndex2);
		iSec2 = sValue2.substr(iIndex2+1,sValue2.length);	
		iSec2 = (iSec2.length == 2) ? iSec2 : iSec2 = "0" + iSec2;		
	}
	else
	{
		iMin2 = sValue2.substring(iIndex+1,sValue2.length);
		bSec = false;
	}
	
	iMin2 = (iMin2.length == 2) ? iMin2 : iMin2 = "0" + iMin2;		

	
	iHour = RemoveNull(iHour);
	iHour2 = RemoveNull(iHour2);
	
	if (iHour == "")
	{
		iMin = RemoveNull(iMin);
	}
	if (iHour2 == "")
	{
		iMin2 = RemoveNull(iMin2);
	}
	
	if (bSec)
	{

		iTime = parseInt(iHour + iMin + iSec);
		iTime2 = parseInt(iHour2 + iMin2 + iSec2);	
	}
	else
	{
		iTime = parseInt(iHour + iMin);
		iTime2 = parseInt(iHour2 + iMin2);		
	}

	if(iTime <= iTime2)
	{
		return true
	}
	else
	{
		return false;
	}

}

function RemoveNull(iTemp)
{
	bFinish = false;
	
	do 
	{ 
		iIndex = iTemp.indexOf("0");
		
		if (iIndex == 0)
		{
			iTemp = iTemp.substring(iIndex+1,iTemp.length);
		}
		else
		{
			bFinish = true;
		}
	}
	while (!bFinish);

	return iTemp;

}