/* ------------------------------------------------------------------------------------------------------------------

Formhandling Library

Muss in jede HTML-Seite eingebunden werden in den Header Bereich:
<script language="javascript" src="js_libraries/formhandling.js" type="text/javascript"></script>

Um einen Text aus der hash table zu lesen, ist folgende Syntax zu verwenden (Key = F_Hilfe als Beispiel):
<script language="JavaScript">window.document.write( getSprachtext("F_Hilfe","F_Hilfe","","") )</script>

Sobald irgendwelche Buttons und/oder Inputfelder verwendet werden, ist die fieldhalding-Library ebenfalls
mit einzubinden:
<script language="javascript" src="js_libraries/fieldhandling.js" type="text/javascript"></script>

Wird dies gemacht, ist es absolut zwingend, dass die Feld-Initialiaiserung ebenfalls in die HTMl Seite kommt:
<script language="JavaScript">
	// Namen der obligatorischen Input-Felder:
	var slMussFelder = new Array (  "Feld1", "Feld3" )	
</script>

Beim submit eines Buttons wird die CheckFelder Function gestartet, welche die Feldnamen aus der obigen kleinen
Funktion als initialisiert erwartet.


René Thalmann
06.07.2005

*/


// Falls der aufrufende Link keine Sprache enthält, neu laden und mit Sprachzusatz noch einmal laden. Andererfalls
// gefunde Sprache in die globale Variable QuerySprache zur Weiterverwendung abfüllen

var QuerySprache='D';
vPos = location.href.indexOf('Sprache=');
if (vPos < 0)
{
	// keine Sprache gefunden, also reload mit deutsch
	self.location.href = location.href + '?Sprache=' + QuerySprache;
}
else
{
	//ok Sprache gefunden, aber welche?
	QuerySprache = self.location.href.substring(vPos + 8, vPos + 9);
}


// Funktion um Sprachtexte zu holen
function getSprachtext( pSprachtextKey, pDefault, pStyle, pClass ){
	// Nur klein suchen hilft bei Gross-/Klein-Schreibfehler beim Key
	pSprachtextKey	= pSprachtextKey.toLowerCase();

	// SprachtextKey abfragen (Wenn nicht gefunden, SprachtextKey oder falls gegeben den DefaultWert ausgeben)
	if( typeof( hashSprachtexte[pSprachtextKey] ) == "undefined" ){
		if( typeof( pDefault ) == "undefined" || pDefault == "" ){
			// Sprachtext nicht gefunden und kein Default-Text --> Sprachtext ausgeben
			var sSprachtext	= pSprachtextKey
		}
		else{
			// Sprachtext nicht gefunden --> Default-Text ausgeben
			var sSprachtext	=pDefault
			//var sSprachtext	="Sprachtext nicht gefunden, Default-Text ausgeben"
		}
	}
	else{
		if( hashSprachtexte[pSprachtextKey] == "" ){
			if( typeof( pDefault ) == "undefined" || pDefault == "" ){
				// Sprachtext leer und kein Default-Text --> Sprachtext ausgeben
				var sSprachtext	=pSprachtextKey
			}
			else{
				// Sprachtext leer --> Default-Text ausgeben
				var sSprachtext	=pDefault
			}
		}
		else{
			// Sprachtext gefunden
			var sSprachtext	= hashSprachtexte[pSprachtextKey]
		}

	}

	// Abfragen ob eine Style-Zuweisung erfolgen soll
	if( typeof( pStyle ) == "undefined" || pStyle == ""  ){
		if( typeof( pClass ) == "undefined" || pClass == "" ){
			// Kein Style und keine Klasse
			var sValue		= sSprachtext;
		}
		else{
			// Klasse zugeteilt
			var sValue		= '<span class="' + pClass + '">' + sSprachtext + '</span>';
		}
	}
	else{
		if( typeof( pClass ) == "undefined" || pClass == "" ){
			// Style zugeteilt
			var sValue		= '<span style="' + pStyle + '">' + sSprachtext + '</span>';
		}
		else{
			// Klasse und Style zugeteilt
			var sValue		= '<span class="' + pClass + '" style="' + pStyle + '">' + sSprachtext + '</span>';
		}
	};

	// Ausgabe
	return sValue;
}

// Funktion um Keywords zu holen
function getKeywordtext( pKeywordKey, pDefault, pStyle, pClass ){

	// Nur klein suchen hilft bei Gross-/Klein-Schreibfehler beim Key
	pKeywordKey	= pKeywordKey.toLowerCase();

	// SprachtextKey abfragen (Wenn nicht gefunden, SprachtextKey oder falls gegeben den DefaultWert ausgeben)
	if( typeof( hashKeyword[pKeywordKey] ) == "undefined" ){
		if( typeof( pDefault ) == "undefined" || pDefault == "" ){
			// Sprachtext nicht gefunden und kein Default-Text --> Sprachtext ausgeben
			var sKeywordtext	= pKeywordKey
		}
		else{
			// Sprachtext nicht gefunden --> Default-Text ausgeben
			var sKeywordtext	=pDefault
		}
	}
	else{
		if( hashKeyword[pKeywordKey] == "" ){
			if( typeof( pDefault ) == "undefined" || pDefault == "" ){
				// Sprachtext leer und kein Default-Text --> Sprachtext ausgeben
				var sKeywordtext	=pKeywordKey
			}
			else{
				// Sprachtext leer --> Default-Text ausgeben
				var sKeywordtext	=pDefault
			}
		}
		else{
			// Sprachtext gefunden
			var sKeywordtext	= hashKeyword[pKeywordKey]
		}

	}

	// Abfragen ob eine Style-Zuweisung erfolgen soll
	if( typeof( pStyle ) == "undefined" || pStyle == ""  ){
		if( typeof( pClass ) == "undefined" || pClass == "" ){
			// Kein Style und keine Klasse
			var sValue		= sKeywordtext;
		}
		else{
			// Klasse zugeteilt
			var sValue		= '<span class="' + pClass + '">' + sKeywordtext + '</span>';
		}
	}
	else{
		if( typeof( pClass ) == "undefined" || pClass == "" ){
			// Style zugeteilt
			var sValue		= '<span style="' + pStyle + '">' + sKeywordtext + '</span>';
		}
		else{
			// Klasse und Style zugeteilt
			var sValue		= '<span class="' + pClass + '" style="' + pStyle + '">' + sKeywordtext + '</span>';
		}
	};

	// Ausgabe
	return sValue;
}

// Funktion um Sprachabhängie Texte aus HashTabellen auszulesen
function getHashWert(pHash, pSprachtextKey, pDefault, pStyle, pClass ){
	// Nur klein suchen hilft bei Gross-/Klein-Schreibfehler beim Key
	pSprachtextKey	= pSprachtextKey.toLowerCase();

	// SprachtextKey abfragen (Wenn nicht gefunden, SprachtextKey oder falls gegeben den DefaultWert ausgeben)
	if( typeof( pHash[pSprachtextKey] ) == "undefined" ){
		if( typeof( pDefault ) == "undefined" || pDefault == "" ){
			// Sprachtext nicht gefunden und kein Default-Text --> Sprachtext ausgeben
			var sSprachtext	= pSprachtextKey
		}
		else{
			// Sprachtext nicht gefunden --> Default-Text ausgeben
			var sSprachtext	=pDefault
		}
	}
	else{
		if( pHash[pSprachtextKey] == "" ){
			if( typeof( pDefault ) == "undefined" || pDefault == "" ){
				// Sprachtext leer und kein Default-Text --> Sprachtext ausgeben
				var sSprachtext	=pSprachtextKey
			}
			else{
				// Sprachtext leer --> Default-Text ausgeben
				var sSprachtext	=pDefault
			}
		}
		else{
			// Sprachtext gefunden
			var sSprachtext	= pHash[pSprachtextKey]
		}

	}

	// Abfragen ob eine Style-Zuweisung erfolgen soll
	if( typeof( pStyle ) == "undefined" || pStyle == ""  ){
		if( typeof( pClass ) == "undefined" || pClass == "" ){
			// Kein Style und keine Klasse
			var sValue		= sSprachtext;
		}
		else{
			// Klasse zugeteilt
			var sValue		= '<span class="' + pClass + '">' + sSprachtext + '</span>';
		}
	}
	else{
		if( typeof( pClass ) == "undefined" || pClass == "" ){
			// Style zugeteilt
			var sValue		= '<span style="' + pStyle + '">' + sSprachtext + '</span>';
		}
		else{
			// Klasse und Style zugeteilt
			var sValue		= '<span class="' + pClass + '" style="' + pStyle + '">' + sSprachtext + '</span>';
		}
	};

	// Ausgabe
	return sValue;
}

// Sprachte umstellen (Klick auf eine Flagge)
function changeLanguage ( pLang )
{
	if (self.location.href.indexOf ("Sprache=") == -1)
	{
		newURL = document.URL + "?Sprache=" + pLang;
	}
	else
	{
		vPos = self.location.href.indexOf('Sprache=');
		gSprache = self.location.href.substring(vPos + 8, vPos + 9);
		newURL = document.URL.replace ( "Sprache=" + gSprache , "Sprache=" + pLang );
	}
	self.location.href = newURL;
}


// Link ausführen und mit aktueller Sprache ergänzen
function Link ( pPage )
{
	self.location.href = pPage + "?Sprache=" + QuerySprache;
}


// Funktion um die Buttonbeschriftung zu schreiben, da es input-buttons sind ist die
// Beschriftung mit der getSprachtextfunktion nicht möglich (js im value geht nicht!)
function fctRewriteButtons()
{
	var objButton;
	for(var i = 0; i < document.getElementsByTagName("input").length; i++) {
		objButton = document.getElementsByTagName("input")[i];
		if (objButton.type == "button" && objButton.name != "") {
			objButton.value = objButton.value + " " + getSprachtext("B_" + objButton.name);
		}
	}
}

// Vor-Ladefunktion für Bilder (als array übergeben!)
function fctPicPreload()
{
	document.Vorladen = new Array();
	if(document.images)
	{
		for(var i=0; i<fctPicPreload.arguments.length; i++)
		{
			document.Vorladen[i] = new Image();
			document.Vorladen[i].src = fctPicPreload.arguments[i];
		}
	}
}

// Email-Adresse verstecken
function email(name, domain,tld, link) 
{
	var link = "<a href='mailto:"+name+"@"+domain+"."+tld+"'>"+link+"</a>";
	document.write(link);
}

// Standart Error Medlungen
 JSCheckCurrency="Eingabe von Währung. \nMögliche Formate : ";
 JSCheckDateIncorrect="Die Datumseingabe ist nicht korrekt.\nFormat  TT.MM.JJJJ";
 JSCheckDateWrongDay="Der Tag ist falsch, bitte korrigieren.\nFormat TT.MM.JJJJ";
 JSCheckDateWrongMonth="Der Monat wurde falsch eingegeben!\n        Format TT.MM.JJJJ";
 JSCheckEmail="Email Adresse nicht plausibel.\nBitte korrigieren";
 JSCheckFieldFilled="Eingabe obligatorisch.";
 JSCheckInputCharsAllowed="In diesen Feld dürfen nur folgende Buchstaben eingegeben werden : ";
 JSCheckInputMaxCountChar="Maximal Anzahl erlaubte Buchstaben in diesen Feld : ";
 JSCheckNumericPure="Eingabe numerisch, ohne Punkt oder Vorzeichen.";
 JSCheckNumericDot="Eingabe numerisch, ohne Vorzeichen, Punkt erlaubt.";
 JSCheckNumericSign="Eingabe numerisch, ohne Punkt, Vorzeichen erlaubt.";
 JSCheckNumericDotSign="Eingabe numerisch. Punkt und Vorzeichen sind erlaubt.";
 JSCheckTimeIncorrect="Die Zeiteingabe ist nicht korrekt.\nFormat  : ";
 JSCheckWrongFormat="Falsches Format für dieses Feld. Erwartetes Format : ";