
//---------------------------------------------------------------------------
// Funktion checkMonthYear
//	Prüft den Inhalt des übergebenen Feldes auf das Format mm.jjjj
//---------------------------------------------------------------------------
function checkMonthYear(strMonthYear, strSeparator)
{
	var regEx;	
	bOk = true;
	
	if (strMonthYear != "")
	{				
		regEx = new RegExp("^[0-9]{1,2}[" + strSeparator + "]{1}[0-9]{4}$");
		
		if(!regEx.test(strMonthYear))
		{
			bOk = false;
		}
		else
		{
			aDate = strMonthYear.split(strSeparator);

			strMonth = aDate[0];
			strYear = aDate[1];
		
			nMonth = parseInt(strMonth, 10);
			nYear = parseInt(strYear, 10);

			if (nYear < 1900 || nYear >= 9999)
			{
				bOk = false;
			}
		
			if (nMonth > 12 || nMonth < 1)
			{
				bOk = false;
			}
		}
	}
	
	return bOk;
}

//---------------------------------------------------------------------------
// Funktion checkDate
//	Prüft das übergebene Datum auf Gültigkeit
//---------------------------------------------------------------------------
function checkDate(strDatum, strSeparator)
{
	var regEx;
	bOk = false;		
	
	if (strDatum != "")
	{
		regEx = new RegExp("^[0-9]{1,2}[" + strSeparator + "]{1}[0-9]{1,2}[" + strSeparator + "]{1}[0-9]{4}$")
		
		if(!regEx.test(strDatum))
		{
			bOk = false;
		}
		else
		{
			aDate = strDatum.split(strSeparator);
			strTag = aDate[0];
			strMonat = aDate[1];
			strJahr = aDate[2];
			nMonat = parseInt(strMonat,10);
			nTag = parseInt(strTag,10);
			nJahr = parseInt(strJahr,10);
      
			if (nJahr <= 1900 || nJahr >= 9999)
			{
				bOk = false;
			}    
   
			if (nMonat == 1 || nMonat == 3 || nMonat == 5 || nMonat == 7 || nMonat == 8 || nMonat == 10 || nMonat == 12)
			{
				if (nTag >= 1 && nTag <= 31)
					bOk = true;
			}
			else if (nMonat == 4 || nMonat == 6 || nMonat == 9 || nMonat == 11)
			{
				if (nTag >= 1 && nTag <= 30)
					bOk = true;
			}
			else if (nMonat == 2)
			{  
				if (nJahr % 4 == 0)
				{
					if (nTag >= 1 && nTag <= 29)
						bOk = true;
				}
				else if (nJahr % 4 != 0)
					if (nTag >= 1 && nTag <= 28)
						bOk = true;
			}
		}
	}        
	else {
		bOk = true
	}
    return bOk;
}

//---------------------------------------------------------------------------
// Funktion checkTime
// Prüft die übergebene Uhrzeit auf Gültigkeit
//---------------------------------------------------------------------------
function checkTime(strUhrzeit,strSeparator) {
	var regEx;
	
	bOk = false;				
	if (strUhrzeit != "")
	{
		regEx = new RegExp("^[0-9]{2}[" + strSeparator + "][0-9]{2}$")
		if(!regEx.test(strUhrzeit))
		{
			bOk = false;
		}
		else
		{
			aUhrzeit = strUhrzeit.split(strSeparator);
			valStunden = aUhrzeit[0]
			valMinuten = aUhrzeit[1]
			
			if((valStunden >= 0 && valStunden <=23) && (valMinuten >= 0 && valMinuten <=59)) {
				bOk = true;
			}
			else {
				bOk = false;
			}
		}		
	}
	else {
		bOk = true;
	}
	return bOk;
}

//---------------------------------------------------------------------------
// Funktion checkDecimalNumber
//	Prüft die übergebene Zahl auf Gültigkeit
//---------------------------------------------------------------------------
function checkNumber(strZahl, strSeparator, cAnzahlDez)
{	
	var regEx;

	if (strZahl != "") {
		if (cAnzahlDez > 0) {
			regEx = new RegExp("^[0-9]+[" + strSeparator + "]?[0-9]{0," + cAnzahlDez + "}$")
		}
		else {
			regEx = new RegExp("^[0-9]+$")
		}
	
		return regEx.test(strZahl);	
	}
	else {
		return true;
	}
}

//---------------------------------------------------------------------------
// Funktion checkEmail
//	Prüft den übergebenen String auf gültige Email Adresse
//---------------------------------------------------------------------------
function checkEmail(strEmail2Check)
{	
	var bOk  = true;
	var at   = "@";
	var lat  = strEmail2Check.indexOf(at);
	var lstr = strEmail2Check.length;
	
	// prüfen ob mehr als einmal ein @ vorkommt
	var anzAt = 0;
	for (var i = 0; i < lstr; i ++)
	{
		s = strEmail2Check.charAt(i);
		if (s == '@')
			anzAt ++;		
	}	
	if (anzAt != 1) {
		bOk = false;
	}
	else
	{	
		// Zeichenkette beim @ splitten und prüfen
		strArr = "";
		strArr = strEmail2Check.split("@");
		
		if (strArr[0].length != 0) {
			if (!checkBadCharacters(strArr[0])) {
				bOk = false;
			}
		}
		
		if (strArr[1].length != 0) {
			if (!checkBadCharacters(strArr[1])) {
				bOk = false;
			}
		}
	
		if (strEmail2Check.indexOf(" ") != -1) {
		    bOk = false;
		}
		
		if (strArr[1].indexOf(".") == -1) {
		    bOk = false;
		}
	
		// prüfen ob die Domainendung mind. zwei Zeichen lang ist
		lastDotPos = strArr[1].lastIndexOf('.') +1;
		if (strArr[1].substr(lastDotPos).length < 2) {
			bOk = false;
		}	
	}
	  
	return bOk;
}

function checkBadCharacters(strText2Check)
{
	var bOk = true;
	var aBC = new Array('?','~','\\','\'','\"','{','}','[',']','|','§','$','%','+','!');
	for (var x = 0; x < strText2Check.length; x ++)
	{
		s = strText2Check.charAt(x);
		
		for (var j = 0; j < aBC.length; j ++)
		{
			if (s == aBC[j])
			{
				bOk = false;
				break;
			}
		}
		
		if (!bOk)
			break;
	}
	
	return bOk;
}

//---------------------------------------------------------------------------
// Funktion checkNotEmpty
// Prüft den übergebenen String ob er nicht leer ist
//---------------------------------------------------------------------------
function checkNotEmpty(str2Check) {
	if(str2Check.length==0) {
		return false;
	}
	else {
		return true;
	}
}

//---------------------------------------------------------------------------
// Funktion checkTelefon
// Prüft die übergebene Telefonnummer auf Gültigkeit
//---------------------------------------------------------------------------
function checkTelefon(strTelefon) {
	var regEx;
	
	bOk = false;				
	if (strTelefon != "") {
		regEx = new RegExp("^[0-9\+\-\/\(\) ]+$");
		bOk = regEx.test(strTelefon);
	}
	else {
		bOk = true;
	}
	
	return bOk;
}

//---------------------------------------------------------------------------
// Funktion checkPlz
// Prüft die übergebene Postleitzahl auf Gültigkeit
//---------------------------------------------------------------------------
function checkPlz(strPlz) {
	var regEx;
	
	bOk = false;				
	if (strPlz != "") {
		regEx = new RegExp("^[0-9\-]+$");
		bOk = regEx.test(strPlz);
	}
	else {
		bOk = true;
	}
	
	return bOk;
}

//---------------------------------------------------------------------------
// Funktion checkMinLength
// Prüft auf Minimal - Länge
//---------------------------------------------------------------------------
function checkMinLength(strValue, valLength) {
	strVergl = new String(strValue);			
	return (parseInt(strVergl.length) >= parseInt(valLength));
}

//---------------------------------------------------------------------------
// Funktion checkMinLength
// Prüft auf Maximal - Länge
//---------------------------------------------------------------------------
function checkMaxLength(strValue, valLength) {
	strVergl = new String(strValue);			
	return (parseInt(strVergl.length) <= parseInt(valLength));
}