<!--
/* ------------------------------------------------------------
  --- JS			validation.js
  --- Autor			Yves Holenstein
  --- Erstellt		12.09.2002
  --- Version      	Release 1.0
  ---
-------------------------------------------------------------- */


var msgErrorHeader = "Eingabefehler!\n"
var PREC_ABSOLUT = 2;
var TAUSEND_SEP = "'";
var DECIMAL_SEP = ".";



// Diese Funktion testet, ob ein String eine gültige Email-Adresse sein kann
function isEmail(elm) 
{
	if (elm.indexOf("@") != "-1" &&
		elm.indexOf(".") != "-1" &&
		elm != " ")
	{
		return true;
	}
	else return false;
}


// Diese Funktion returnt true, wenn ein String nur whitespace characters enthält
function isBlank(s) {
	s = s.toString();
	for (var i=0; i < s.length; i++) {
		var c=s.charAt(i); 
		if ((c!=' ') && (c!='\n') && (c!='\t')) 
		{
			return false;
		}
	}
	return true; 
}



// Funktion checkt, ob ein Werte eine positive Ganzzahl ist
function isPositiveInteger(inputWert) {
	inputStr = inputWert.toString();
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i);
		if (oneChar < "0" || oneChar > "9") {
			return false;
		}
	}
	return true;
}




// Checkt, ob ein Input-Wert eine Mindestlänge hat
function isValidMinimumLength(inputWert,laenge)
{
	inputStr = inputWert.toString();
	if (inputStr.length < parseInt(laenge)) 
	{
		return false;
	}
	return true;
}



// Check, dass kein "\n" oder "\t" oder "\" im String enthalten ist
function isValidString(inputVal) {
	var inputStr = inputVal.toString();
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i);
		if (oneChar=="\t" || oneChar=='\n' || oneChar=="\\") {
			return false;
		}
	}
	return true;
}

function isValidFile() {
	return true;
}





// Funktion lässt nur gültige Zahlen, bzw. einen Separator zu
function checknumber(pole, e, csep, sepsign)
{
	var key;
	var keychar;
	if (!sepsign)
	{
		sepsign=".";
	}
	
	if (window.event)
	{
		key = window.event.keyCode;
	}
	else
	{
		if (e)
		{
			key = e.which;
		}
		else
		{
			return true;
		}
	}
	keychar = String.fromCharCode(key);
	
	var len=pole.value.length;
	
	// spezielle Steuertasten, welche erlaubt werden...
	// 0=NULL, 8=Backspace, 9=Horizontal Tabulator, 13=Carriage Return, 27=Escape
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
	{
		return true;
	}
	else
	{
		if ((("0123456789").indexOf(keychar) > -1))
		{
			// Zahl eingetippt
			return true;
		}
		else
		{
			if (keychar == sepsign)
			{
				if (csep==0)
				{
					return false;
				}
				else
				{
					for (var i=0; i<len; i++)
					{
						if (pole.value.charAt(i)==sepsign)
						{
							return false;
						}
					}
				}
			return true;
			}
			else
			{
				return false;
			}
		}
	}
}


// Funktion lässt nur gültige Zahlen, bzw. Separatoren zu
function checkPhoneNumber(pole, e, csep, sepsign)
{
	var key;
	var keychar;
	if (!sepsign)
	{
		sepsign=" ";
	}

	if (window.event)
	{
		key = window.event.keyCode;
	}
	else
	{
		if (e)
		{
			key = e.which;
		}
		else
		{
			return true;
		}
	}
	keychar = String.fromCharCode(key);

	var len=pole.value.length;

	// spezielle Steuertasten, welche erlaubt werden...
	// 0=NULL, 8=Backspace, 9=Horizontal Tabulator, 13=Carriage Return, 27=Escape
	if ((key==null) || (key==0) || (key==8) ||(key==9) || (key==13) || (key==27) )
	{
		return true;
	}
	else
	{
		if ( (("0123456789").indexOf(keychar) > -1) )
		{
			// Zahl eingetippt
			return true;
		}
		else
		{
			if ( ((sepsign).indexOf(keychar) > -1) )
			{
				var k=len-1;
				if (pole.value.charAt(k)==keychar)  // Keine zwei Separatoren hintereinander
				{
					return false;
				}
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}


function checkFeld(inputFeld, strFeldTyp, booMandatory, strFeldname) {
	var num = inputFeld.value;

	if (booMandatory == true) {
		if ((num==null) || isBlank(num) == true) {
			alert(msgErrorHeader + "Das Feld " + strFeldname + " muss ausgefüllt werden!");
			return false;
		}
	}


	if ("Integer" == strFeldTyp){
		if (isPositiveInteger(num) == false) {
			alert(msgErrorHeader + "Das Feld " + strFeldname + " enthält eine ungültige Zahl!");
			return false;
		}
	}
	
	if ("Text" == strFeldTyp){
		if (isValidString(num) == false) {
			alert(msgErrorHeader + "Unerlaubtes Sonderzeichen im Feld " + strFeldname + " !");
			return false;
		}
	}

	if ("File" == strFeldTyp){
		if (isValidFile(num) == false) {
			alert(msgErrorHeader + "Unerlaubtes Sonderzeichen im Feld " + strFeldname + " !");
			return false;
		}
		/*
		if (isValidFileType(num) == false) {
			alert(msgErrorHeader + "Unerlaubtes Dateityp wurde für das Feld " + strFeldname + " gewählt!\nBitte verwenden Sie nur Dokument-Typen oder ZIP-Dateien...");
			return false;
		}
		*/
	}

	if ("Email" == strFeldTyp){
		if (isEmail(num) == false) {
			alert(msgErrorHeader + "Das Feld " + strFeldname + " enthält keine gültige Email-Adresse!");
			return false;
		}
	}
}

//-->
