
function BilderGeladen (BildUrl) 
{
	var bild = new Image();
	bild.src = BildUrl;
	if(bild.complete == true)
		{
		 //alert('Bildgröße: '+bild.height+'/'+bild.width+' Pixel.');
		 document.getElementById("seitenanfang").style.visibility = "visible";
		}
	if(bild.complete == false)
	{
 		//alert(' nciht geladen Bildgröße: '+bild.height+'/'+bild.width+' Pixel.');
 		bild.onload = function()
						{
							document.getElementById("seitenanfang").style.visibility = "visible";
						}
	}
}


function adr() 
{	
	/* Carola */
	var emailarray=[99,97,114,111,108,97,46,103,108,111,98,117,108,105,64,97,114,99,111,114,46,100,101]
	/* Heinz */
	//var emailarray=[104,101,105,110,122,46,119,97,108,100,101,110,64,111,110,108,105,110,101,46,100,101]
	var emailadr='' 
	for (var i=0; i<emailarray.length; i++)
		emailadr+=String.fromCharCode(emailarray[i])
	zString = document.FormKontakt.recipient;
	varObject = eval(zString);
	varObject.value = emailadr;
	//document.forms["FormKontakt"].elements[recipient].value =  emailadr;
}

/*******************************************************************************************************
Allgemeine Definitionen
*******************************************************************************************************/	
var varBack
var varMessage

var isW3C = false;			//false = alert -- true = Ausgabe im dokument
if(document.getElementById && document.createElement)
	{
		isW3C = true;
	}

/*******************************************************************************************************
Eine bereits angelegte Fehlernachricht löschen
*******************************************************************************************************/	
function removeRow()
{ 
	if (document.getElementById) 
	{
		var td = document.getElementById('error');
		if(td)
		{
			td.id = "";
		}
		var tr = document.getElementById("errorRow");
		if (tr)
		{
			(tr.parentNode).removeChild(tr);
		}
	}
}

/*******************************************************************************************************
Erstellen einer neuen Row für Fehlerausgabe (hier = TR und TD's)
count = Anzahl der zu erstellenden TD; im letzten TD wird Fehler geschrieben
*******************************************************************************************************/
function createNewRow(count)
{ 
	var newRow = document.createElement("tr");
	newRow.id = "errorRow";
	newRow.className = "fehler1";
	for (var i=0; i<count; i++)
	{
		var newData = document.createElement("td");
		newRow.appendChild(newData);
	}
	return newRow
}

/*******************************************************************************************************
Fehlernachricht erstellen
*******************************************************************************************************/
function setError(varObject)
{ 
	if (varMessage.length == 0) {return}
	var zString = ""
	if (isW3C)
	{
		removeRow();										//bestehende Fehlernachricht erst löschen
		var currentRow = varObject;
		while (currentRow.tagName.toLowerCase() != "tr")	//suchen vom Object den Anfang von TR
		{
			currentRow = currentRow.parentNode;
		}
		var table = currentRow.parentNode;
		var newRow = createNewRow(3);	//in das dritte td schreiben
		
		var varWoerterArray = varMessage.split("<br>");		//Umbrüche berücksichtigen
		for(var i = 0; i < varWoerterArray.length; i=i+1)
		{
			newRow.lastChild.appendChild(document.createTextNode(varWoerterArray[i]));
			newRow.lastChild.appendChild(document.createElement("BR"));
		}
		table.insertBefore(newRow,currentRow);
		var td = currentRow.firstChild;
		td.id = "error";
		td.ClassName = "fehler1";
	}
	else
	{
		var varWoerterArray = varMessage.split("<br>");	
		for(var i = 0; i < varWoerterArray.length; i=i+1)
		{
			zString = zString + varWoerterArray[i] + "\n";
		}
		alert(zString)
	}
	varBack = false;
}


/*******************************************************************************************************
Allgemeine Routine zum Prüfen von Zeichen
*******************************************************************************************************/
function SuchenUndErsetzen(QuellText, SuchText, ErsatzText)
        {   // Erstellt von Ralf Pfeifer
            // Fehlerpruefung
            if ((QuellText == null) || (SuchText == null))           { return null; }
            if ((QuellText.length == 0) || (SuchText.length == 0))   { return QuellText; }

            // Kein ErsatzText ?
            if ((ErsatzText == null) || (ErsatzText.length == 0))    { ErsatzText = ""; }

            var LaengeSuchText = SuchText.length;
            var LaengeErsatzText = ErsatzText.length;
            var Pos = QuellText.indexOf(SuchText, 0);

            while (Pos >= 0)
            {
                QuellText = QuellText.substring(0, Pos) + ErsatzText + QuellText.substring(Pos + LaengeSuchText);
                Pos = QuellText.indexOf(SuchText, Pos + LaengeErsatzText);
            }
            return QuellText;
        }
		
/*******************************************************************************************************
Führende Blanks entfernen (Funktioniert im Moment nur mit führende Blanks)
*******************************************************************************************************/
function LinkeZeichenErsetzen(QuellText, SuchText, ErsatzText)
        {   
            if ((QuellText == null) || (SuchText == null))           { return null; }
            if ((QuellText.length == 0) || (SuchText.length == 0))   { return QuellText; }

            // Kein ErsatzText ?
            if ((ErsatzText == null) || (ErsatzText.length == 0))    { ErsatzText = ""; }

            var LaengeSuchText = SuchText.length;
            var LaengeErsatzText = ErsatzText.length;
            var Pos = QuellText.indexOf(SuchText, 0);

            while (Pos == 0)
            {
                QuellText = QuellText.substring(0, Pos) + ErsatzText + QuellText.substring(Pos + LaengeSuchText);
                Pos = QuellText.indexOf(SuchText, Pos + LaengeErsatzText);
            }
            return QuellText;
        }

/*******************************************************************************************************
Allgemeine Routine zum Prüfen von Zeichen
*******************************************************************************************************/
function PruefeZeichen(varObjekt, ZugelasseneZeichen, zMessage)
{  // Erstellt von Ralf Pfeifer (www.arstechnica.de)
	varMessage = zMessage
	for (var Pos = 0; Pos < varObjekt.value.length; Pos++)
	{
		if (ZugelasseneZeichen.indexOf(varObjekt.value.charAt(Pos)) == -1)
		{
			varMessage += "<br><br>Ihre Eingabe enthält das Zeichen '";
			varMessage += varObjekt.value.charAt(Pos);
			varMessage += "'. <br><br>Hier dürfen nur folgende Zeichen verwendet werden:<br>";
			varMessage += ZugelasseneZeichen;
			if (ZugelasseneZeichen.indexOf(" ") == -1)
			   { varMessage += "<br>Leerzeichen sind nicht erlaubt" }
			else
			   { varMessage += "<br>und das Leerzeichen" }
			varBack = false;
			return;
		} 
	}
   varMessage = "";
}

/*******************************************************************************************************
Allgemeine Routine zum Prüfen von Ziffern
*******************************************************************************************************/
function PruefeAnzahlZiffern(varObjekt, ZugelasseneZeichen,  AnzahlZiffern, zMessage)
{  
	var Zahl = 0;
	for (var Pos = 0; Pos < varObjekt.value.length; Pos++)
	{
		if (ZugelasseneZeichen.indexOf(varObjekt.value.charAt(Pos)) == -1)
		{ 
			Zahl = Zahl + 1;
		} 
	}
	Zahl = varObjekt.value.length - Zahl;
	if (AnzahlZiffern > Zahl) {varMessage=zMessage}
}

/*******************************************************************************************************
Prüft Zeichen, die für eine Telefonnummer üblich sind
Möglicher Aufruf: OnBlur="NurTelefon(this,"ja")"
*******************************************************************************************************/
function NurTelefon(varObjekt, Pruefzeichen)
{ 
	varObjekt.value = LinkeZeichenErsetzen(varObjekt.value, " ", "");
	if (Pruefzeichen == "Ja" && varObjekt.value.length == 0) 
	{
		varMessage = "Bitte Telefonnummer eintragen (Pflichtfeld)";
		setError(varObjekt);
		return varBack;
	}
	else
	{
		PruefeZeichen(varObjekt, "0123456789 /-+()", "Bitte prüfen Sie die Telefonnummer");
		setError(varObjekt);
		if (varBack == false || varObjekt.value.length == 0) {return varBack}
		PruefeAnzahlZiffern(varObjekt, "0123456789", "7", "Bitte prüfen Sie die Telefonnummer<br>Diese muss mindestens 7 Ziffern beinhalten");
		setError(varObjekt);
		return varBack;
	}
}

/*******************************************************************************************************
Prüft Eingabe auf PLZ
*******************************************************************************************************/
function PruefePLZ(varObjekt, Pruefzeichen)
{ 
	varObjekt.value = LinkeZeichenErsetzen(varObjekt.value, " ", "");
	if (Pruefzeichen == "Ja" && varObjekt.value.length == 0) 
	{
		varMessage = "Bitte PLZ eintragen (Pflichtfeld)";
		setError(varObjekt);
		return varBack;
	}
	else
	{
		PruefeAnzahlZiffern(varObjekt, "0123456789", "5", "Bitte prüfen Sie die PLZ<br>Diese muss aus 5 Ziffern bestehen");
		setError(varObjekt);
		return varBack;
	}
}

/*******************************************************************************************************
Prüft, ob ein Select-Statement gewählt wurde
*******************************************************************************************************/
function NurSelect(varObjekt, Pruefzeichen, Fehlertext)
{ 
	if (Pruefzeichen == "Ja" && varObjekt.selectedIndex == 0) 
	{
		varMessage = Fehlertext;
		setError(varObjekt);
		return varBack;
	}
}

/*******************************************************************************************************
Prüft, ob eine Checkbox gewählt wurde (Im moment nur eine Checkbox möglich)
*******************************************************************************************************/
function NurCheckbox(varObjekt, Pruefzeichen, Fehlertext)
{ 
	if (Pruefzeichen == "Ja" && !varObjekt.checked ) 
	{
		varMessage = Fehlertext;
		setError(varObjekt);
		return varBack;
	}
}

/*******************************************************************************************************
Prüft Eingabe auf mindestens 1 Wort
*******************************************************************************************************/
function NichtBlank(varObjekt, Pruefzeichen, AnzZeichen, Fehlertext)
{ 
	varObjekt.value = LinkeZeichenErsetzen(varObjekt.value, " ", "");
	var zString = SuchenUndErsetzen(varObjekt.value, " ", "");
	if (Pruefzeichen == "Ja") 
	{
		if (AnzZeichen > zString.length)
		{
			varMessage = Fehlertext;
			setError(varObjekt);
			return varBack;
		}
	}
}

/*******************************************************************************************************
Prüft E-Mail auf korrekte E-Mail-Adresse
*******************************************************************************************************/
function eMailAdresseOK(varObjekt, Pruefzeichen)
{  // Erstellt von Ralf Pfeifer (www.arstechnica.de)
	
	var zFehler = "Bitte korregieren Sie Ihre eMail-Adresse"
	var zString
	
	if (Pruefzeichen == "Ja" && varObjekt.value.length == 0) 
		{
			varMessage = "Bitte Ihre E-Mail eintragen (Pflichtfeld)";
			setError(varObjekt);
			return varBack;
		}
	varObjekt.value = LinkeZeichenErsetzen(varObjekt.value, " ", "");
	if (varObjekt.value.length==0) { return true }		// Falls das Feld leer ist, ohne Prüfung aussteigen
	var PosEt = varObjekt.value.indexOf("@");			// Position des @ herausfinden
	if (PosEt == -1) 
		{
	   		varMessage = zFehler + "<br>Es fehlt ein @";
	   		setError(varObjekt);
			return varBack;
		}
	 if (PosEt == 0) 
	 	{
	   		varMessage = zFehler + "<br>Es fehlt der Empfänger";
			setError(varObjekt);
			return varBack;
		}
	 if (varObjekt.value.indexOf("@", PosEt + 1) > PosEt) 
	 	{
	   		varMessage = zFehler + "<br>Es darf nur ein @ enthalten sein";
			setError(varObjekt);
			return varBack;
		}
	
	 var PosPt = varObjekt.value.indexOf(".", PosEt);	// Position des ersten . nach dem @ herausfinden
	
	 if ((PosPt == -1) || (PosPt - PosEt < 2) || (varObjekt.value.length - PosPt < 3)) 
	 	{
	   		varMessage = zFehler + "<br>Aufbau einer eMail-Adresse:<br> x@x.xx<br>Jedes x steht für mindestens ein Zeichen";
			setError(varObjekt);
			return varBack;
		}
	var ZugelasseneZeichen = new String("abcdefghijklmnopqrstuvwxyz");			// Zulässige Zeichen für eMails definieren
	ZugelasseneZeichen += "0123456789.-_@";
	varObjekt.value = varObjekt.value.toLowerCase();
	PruefeZeichen(varObjekt, ZugelasseneZeichen, zFehler);					// eMail-Adresse auf zulässige Zeichen überprüfen
	setError(varObjekt);
	return varBack;
}

/*******************************************************************************************************
Ab hier Anfang Routinen für Formularprüfung Kontakte
*******************************************************************************************************/
function PruefenFormKontakt()
{  
	adr();
	var zString 	=  ""
	var varObject 	= ""
	var Pruefja		= "Ja"
	var Pruefnein	= "Nein"
	
	varBack	= true
	varMessage = ""			//eventuelle vorhandene Fehlernachricht löschen(1)
	removeRow()				//eventuelle vorhandene Fehlernachricht löschen(2)	
	

	// Prüfen Name
	zString = document.FormKontakt.Name;
	varObject = eval(zString);
	NichtBlank(varObject, Pruefja, "3", "Bitte Namen eingeben (Pflichtfeld)<br>Name muss mindestens 3 Zeichen <br>(ohne Leerstellen) lang sein")
	if(varBack == false) { return false; }			
	
	// Prüfen Vornamen
	zString = document.FormKontakt.Vorname;
	varObject = eval(zString);
	NichtBlank(varObject, Pruefja, "3", "Bitte Vornamen eingeben (Pflichtfeld)<br>Name muss mindestens 3 Zeichen <br>(ohne Leerstellen) lang sein");
	if(varBack == false) { return false; }			
	
	// Prüfen E-Mail
	zString = document.FormKontakt.E_Mail;
	varObject = eval(zString);
	eMailAdresseOK(varObject, Pruefja);
	if(varBack == false) {  return false; }
	
	// Prüfen Telefonnummer
	zString = document.FormKontakt.Telefon;
	varObject = eval(zString);
	NurTelefon(varObject,Pruefnein);
	if(varBack == false) {  return false; }
	
	// Prüfen Betreff
	zString = document.FormKontakt.Betreff;
	varObject = eval(zString);
	NichtBlank(varObject, Pruefja, "3", "Bitte Betreff eingeben (Pflichtfeld)<br>Der Betreff muss mindestens 3 Zeichen <br>(ohne Leerstellen) lang sein");
	if(varBack == false) { return false; }
	document.FormKontakt.s_subject.value = "Kontaktformular aus Kurswerkstatt: " + document.FormKontakt.Betreff.value
	
	// Prüfen Nachricht
	zString = document.FormKontakt.Nachricht;
	varObject = eval(zString);
	NichtBlank(varObject, Pruefja, "10", "Bitte Nachricht eingeben (Pflichtfeld)<br>Die Nachricht muss mindestens 10 Zeichen <br>(ohne Leerstellen) lang sein");
	if(varBack == false) { return false; }	
			
	//Alle Prüfungen O.K.
	return true;	// Senden wird nicht durchgeführt
}


/*******************************************************************************************************
Ab hier Ende Routinen für Formularprüfung Kontakte
*******************************************************************************************************/		

						 
					
				
			
		
		
	
