// -------------------------------------------------------------------------------------------------
// Funktion     : trim()
// Beschreibung : schneidet führende und abschliessende Leerzeichen ab
// History      : C. Schmitz, 22.01.2003, Erstellung
//								O. Schrauth, 04.04.2003, Komplett neu implementiert, da sich der Browser in 
//																				 manchen Situatuionen aufgehängt hat
// Parameter    : thisString [string] - String, der getrimmt werden soll
// Return       : [string] - getrimmter String
// -------------------------------------------------------------------------------------------------
function trim(thisString)
{
	// Leerzeichen am Ende entfernen
	var	trimmedString = thisString.replace(/([^ ]*) *$/,"$1")
	// Leerzeichen am Anfang entfernen
	trimmedString = trimmedString.replace(/^ *([^ ]*)/,"$1")
	
	return trimmedString;
}

// -------------------------------------------------------------------------------------------------
// Funktion     : checkMaxLen()
// Beschreibung : Überprüft ein Formfeld auf maximal erlaubte Länge
// History      : C. Schmitz, 31.01.2003, Erstellung
// Parameter    : field [object] - zu prüfendes Feld
//								maxLen [number] - geforderte Maximallänge
// Return       : boolean true oder false
// -------------------------------------------------------------------------------------------------
function checkMaxLen(field, maxLen)
{
	if(trim(field.value).length > maxLen)
		return false;
	else
		return true;
}
// -------------------------------------------------------------------------------------------------
// Funktion     : restrictLength
// Beschreibung : beschränkt Eingabe auf maxLen Zeichen
// History      : O. Schrauth, 12.02.2004
// Parameter    : -
// Return       : -
// -------------------------------------------------------------------------------------------------
function restrictLength(field, maxLen)
{
	if (!checkMaxLen(field, maxLen))
		field.value = field.value.substring(0,maxLen)
}

// -------------------------------------------------------------------------------------------------
// Funktion     : dumpArray
// Beschreibung : gibt die Felder eines Arrays in einer alertbox aus
// History      : O. Schrauth, 21.08.2003, Erstellung
// Parameter    : - arr [array] - Array, das ausgegeben werden soll
// Return       :
// -------------------------------------------------------------------------------------------------
function dumpArray(arr)
{
	var dumpText = "";
	
	for(var i=0; i < arr.length; i++)
		dumpText += i + ": [" + typeof(arr[i]) + "] " + arr[i] + "\n";
	
	alert(dumpText)
}

// -------------------------------------------------------------------------------------------------
// Funktion     : checkInteger()
// Beschreibung : Überprüft, ob field.value ein Integerwert ist
// History      : O. Schrauth, 04.02.2003, Erstellung
// Parameter    : - field [object]
//								- acceptWhiteSpaces	[boolean] optional - Sollen Leerzeichen vor und nach der zu
//																												 prüfenden Zahl zugelassen werden?
// Return       : boolean true oder false
// -------------------------------------------------------------------------------------------------
function checkInteger(field, acceptWhiteSpace)
{	
	if (acceptWhiteSpace)
		var reg = /^ *([1-9]+[0-9]*) *$/;
	else
		var reg = /^([1-9]+[0-9]*)|(0)$/;
		
	return reg.test(field.value);
}

// -------------------------------------------------------------------------------------------------
// Funktion     : checkAlphanumeric()
// Beschreibung : Überprüft, ob field.value nur Buchstaben A-Za-z äöüÄÖÜß und Zahlen besteht
// History      : O. Schrauth, 04.02.2003, Erstellung
//								O. Schrauth, 10.11.2004, Leerzeichen innerhalb eines Strings
// Parameter    : - field [object]
//								- acceptWhiteSpaces	[boolean] optional - Sollen Leerzeichen vor,nach  oder in dem 
//																												 zu prüfenden Wert zugelassen werden?
// Return       : boolean true oder false
// -------------------------------------------------------------------------------------------------
function checkAlphanumeric(field, acceptWhiteSpace)
{	
	if (acceptWhiteSpace)
		var reg = /^ *[A-Za-z0-9 ]+ *$/;
	else
		var reg = /^[A-Za-z0-9]+$/g;
	return reg.test(field.value);
}
// -------------------------------------------------------------------------------------------------
// Funktion     : checkRequired()
// Beschreibung : Überprüft ein Formfeld auf Pflichtangabe
// History      : C. Schmitz, 31.01.2003, Erstellung
//								O. Schrauth, 10.03.2003, case "password"
//								O. Schrauth, 19.11.2003, case "hidden"
// Parameter    : field [object] - zu prüfendes Feld
//								dummyValue [optional] - für ein Select-Feld der Wert der Dummy-Option
// Return       : boolean true (Feld ausgefüllt) oder false (Feld nicht ausgefüllt)
// -------------------------------------------------------------------------------------------------
function checkRequired(field)
{
	var flag=true;
	if(arguments.length > 1)
		dummyValue=arguments[1];
	else
		dummyValue=null;
		
		
	switch(field.type)
	{
		case "hidden":;
		case "file":
			if(trim(field.value)=="")
				flag=false;
				break;
		case "text":
			if(trim(field.value)=="")
				flag=false;
				break
				
		case "password":
			if(trim(field.value)=="")
				flag=false;
				break
								
		case "textarea":
			if(trim(field.value)=="")
				flag=false;
				break
			
		case "select-one":
			if(field.selectedIndex<0 || field.options[field.selectedIndex].value==dummyValue)
				flag=false;
				break;
				
		case "select-multiple":
			if(field.selectedIndex<0)
				flag=false;
			else
			{
				flag=false;
				for(i=0; i<field.options.length; i++)
				{
					if(field.options[i].selected && field.options[i].value != dummyValue)
					{
						flag=true;
						break;
					}
				}
			}
			break;

		default:
			switch(field[0].type)
			{
		
				case "checkbox":
					flag=false;
					for(i=0; i<field.length; i++)
					{
						if(field[i].checked)
						{
							flag=true;
							break;
						}
					}
					break;
					
				case "radio":
					flag=false;
					for(i=0; i<field.length; i++)
					{
						if(field[i].checked)
						{
							flag=true;
							break;
						}
					}
					break;
			}
		break;
	}
		
	return flag;
}


// -------------------------------------------------------------------------------------------------
// Funktion     : checkValidDate()
// Beschreibung : Überprüft ein Datum auf Gültigkeit
// History      : C. Schmitz, 04.02.2003, Erstellung
//								O. Schrauth, 17.03.2004, getFullYear und Number Konvertierung
// Parameter    : day [number] - Tag
//								month [number] - Monat
//								year [number] - Jahr
// Return       : boolean true oder false
// -------------------------------------------------------------------------------------------------
function checkValidDate(day, month, year)
{
	var flag=true;
	
	// falls jahr nicht 4-stellig: Fehler
	if(year.length!=4)
		flag = false;
		
	// wenn bei Tag oder Monat oder Jahr was eingegeben wurde
	if(day.length || month.length || year.length)
	{
		// wenn eines der Felder numerisch ist
		if(!isNaN(day) || !isNaN(month) || !isNaN(year))
		{
			// Testdatum erzeugen
			var testDate = new Date(year, month-1, day);

			// wenn testdatum nicht gültig oder nicht mit eingegebenem Datum übereinstimmt: Fehler	
			if(testDate=='undefined' || testDate.getFullYear() != Number(year) || testDate.getMonth()+1 != Number(month) || testDate.getDate() != Number(day))
				flag = false;
				
		}
		else // alle Felder sind nicht numerisch: Fehler
			flag = false;
	}
	return flag;
}

// -------------------------------------------------------------------------------------------------
// Funktion     : splitDate
// Beschreibung : splittet ein input feld anhand der angegebenen . in ein Array auf und gibt dieses 
//								zurück 
// History      : O. Schrauth, 27.03.2003, Erstellung
// Parameter    : - field [object] 	- input Feld, in dem das Date steht      
// Return       : Array mit immer 3 Elementen
// -------------------------------------------------------------------------------------------------
function splitDate(field)
{
	var dateArray = field.value.split(".");

	if (dateArray.length == 3)
	{
		dateArray[0] = trim(dateArray[0]);
		dateArray[1] = trim(dateArray[1]);
    dateArray[2] = trim(dateArray[2]);
		// drei Datumsbestandteile vorhanden 	
		return dateArray;
	}
	else if (dateArray.length == 1 &&
					 dateArray[0] == "")
	{
		// gar nichts eingegeben
		dateArray.push("","")
		return dateArray;
	}
	else
	{	
		// irgendwas anderes eingegeben		
		dateArrayNew = new Array("x","x","x");
		return dateArrayNew;
	}
}


function onMouseDown(imgId)
{
	document.getElementById(imgId).src = "images/" + imgId + "_down.gif";
  //eval("document.images." + imgName + ".src = 'images/" + imgName + "_down.gif'");
}

function onMouseUp(imgId)
{
	document.getElementById(imgId).src = "images/" + imgId + ".gif";
 // eval("document.images." + imgName + ".src = 'images/" + imgName + ".gif'");
}

