// JavaScript Document
//***********************************
function openWindow(theURL,winName,features) { //v2.0
//***********************************
	//if (debug) debug.innerHTML+="<br><strong>openWindow(theURL,winName,features)</strong><br>theURL: "+theURL+"<br>winName: "+winName+"<br>features: "+features+ "<br>opener: "+winName.opener;
	//window.defaultStatus="opener: "+winName.opener;

	if (typeof features == "undefined")
	{
		features="status=yes"
	}
	winName=window.open(theURL,winName,features);
	winName.focus();
	//alert("warten");
	return(winName);

}
function closeWindow(winName) { //v2.0
	winName.close();
}

//***********************************
function writeFlash(file, breite, hoehe, id, wmode, FlashVars){
//***********************************
	if (typeof id =="undefined"){
		id="mainFlash";
	}
	if (typeof wmode =="undefined"){
		wmode="transparent";
	}
	//alert(id);
	document.write('<OBJECT id="'+id+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="'+breite+'" height="'+hoehe+'">\n');
	document.write('<PARAM name="movie" value="'+file+'" />\n');
	document.write('<PARAM name="quality" value="high" />\n');
	document.write('<PARAM name="menu" value="false" />\n');
	document.write('<PARAM name="allowScriptAccess" value="always" />\n');
	document.write('<PARAM name="FlashVars" value="'+FlashVars+'" />\n');

	document.write('<PARAM name="wmode" value="'+wmode+'" />\n');
	document.write('<PARAM name="swliveconnect" value="true" />\n');

	document.write('<EMBED NAME="'+id+'" src="'+file+'" width="'+breite+'" height="'+hoehe+'" TYPE="application/x-shockwave-flash" QUALITY="high" MENU="false" WMODE="'+wmode+'" FlashVars="'+FlashVars+'" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" allowScriptAccess="always" swliveconnect="true" ></embed>\n');
	document.write('</OBJECT>\n');
}




//***********************************
function evalInputFields(feld, sprache){
//***********************************
	myTexte = new Array();
	text = "";
	switch (sprache){
		case 'de':
			myTexte["Meldung"] = "Folgende Angaben brauchen wir um Ihre Anfrage bearbeiten zu können:\n";
			myTexte["Vorname"] = "Vorname";
			myTexte["Nachname"] = "Nachname";
			myTexte["Erwachsene"] = "Anzahl Erwachsene";
			myTexte["Kinder"] = "Anzahl Kinder ('0' wenn keine Kinder)";
			myTexte["KinderAlter"] = "Alter der Kinder";
			myTexte["Zeit"] = "Zeitraum";
			myTexte["Zimmer"] = "Anzahl Zimmer";
			myTexte["Tel"] = "Tel. Nummer";
			myTexte["Plz"] = "PLZ";
			myTexte["Ort"] = "Ort";
			myTexte["Strasse"] = "Strasse";
			myTexte["Mail"] = "eMail-Adresse";
			myTexte["MailTo"] = "Empfänger eMail-Adresse";
			myTexte["MailFrom"] = "Absender eMail-Adresse";
			myTexte["Text"] = "Nachrichtentext";
			myTexte["Land"] = "Land";
			myTexte["MailDetail1"] = "\n\n\tDie eMailadresse entspricht nicht dem Format:\n\tTeil1[.Teil2]@Teil3.Teil4 ([] = optional)\n\tTeile1-3 dürfen nur \"A-Z\", \"a-z\", \"_\" oder \"-\" enthalten.\n\tTeil 4 darf nur \"A-Z\" und \"a-z\" enthalten.";
			myTexte["MailDetail2"] = "\n\n\tZuviele Punkte in der eMail-Adresse hinter dem \"@\"";
			myTexte["MailDetail3"] = "\n\n\tDer letzte Teil der eMail-Adresse (Top Level Domain) ist\n\tkleiner als 2 oder größer als 4 Zeichen lang,\n\toder er enthält andere Zeichen als \"A-Z\" und \"a-z\".";
			break;
		case 'en':
			myTexte["Meldung"] = "We need following informations to edit your request:\n";
			myTexte["Vorname"] = "Name";
			myTexte["Nachname"] = "Surname";
			myTexte["Erwachsene"] = "Number of adults";
			myTexte["Kinder"] = "Anzahl Kinder (Null '0' oder größer Null)";
			myTexte["KinderAlter"] = "Alter der Kinder";
			myTexte["Zeit"] = "Duration";
			myTexte["Zimmer"] = "Anzahl Zimmer";
			myTexte["Tel"] = "Phone Number";
			myTexte["Plz"] = "Postcode";
			myTexte["Ort"] = "City";
			myTexte["Strasse"] = "Street";
			myTexte["Mail"] = "eMail-Address";
			myTexte["MailTo"] = "Receiver eMail-Adresse";
			myTexte["MailFrom"] = "Sender eMail-Adresse";
			myTexte["Text"] = "Message-Text";
			myTexte["Land"] = "Country";
			myTexte["MailDetail1"] = "\n\n\tThe eMail-Adress doesnt match the format:\n\tPart1[.Part2]@Part3.Part4 ([] = optional)\n\tPart1-3 may contain \"A-Z\", \"a-z\", \"_\" or \"-\".\n\tPart 4 may only contain \"A-Z\" and \"a-z\".";
			myTexte["MailDetail2"] = "\n\n\tToo much dots in your eMail-Adress behind the \"@\"";
			myTexte["MailDetail3"] = "\n\n\tThe last part of the eMail-Adress (Top Level Domain) is\n\tsmaller than 2 or larger than 4  letters,\n\tor it contents other letters than \"A-Z\" and \"a-z\".";
			break;
		case 'fr':
			myTexte["Meldung"] = "We need following informations to edit your request:\n";
			myTexte["Vorname"] = "Prénom";
			myTexte["Nachname"] = "Nom";
			myTexte["Erwachsene"] = "Adultes";
			myTexte["Kinder"] = "Anzahl Kinder (Null '0' oder größer Null)";
			myTexte["KinderAlter"] = "Alter der Kinder";
			myTexte["Zeit"] = "Duration";
			myTexte["Zimmer"] = "Anzahl Zimmer";
			myTexte["Tel"] = "Phone Number";
			myTexte["Plz"] = "Code Postal";
			myTexte["Ort"] = "Ville";
			myTexte["Strasse"] = "Rue";
			myTexte["Mail"] = "eMail";
			myTexte["Text"] = "Text";
			myTexte["Land"] = "Pays";
			myTexte["MailDetail1"] = "\n\n\tThe eMail-Adress doesnt match the format:\n\tPart1[.Part2]@Part3.Part4 ([] = optional)\n\tPart1-3 may contain \"A-Z\", \"a-z\", \"_\" or \"-\".\n\tPart 4 may only contain \"A-Z\" and \"a-z\".";
			myTexte["MailDetail2"] = "\n\n\tToo much dots in your eMail-Adress behind the \"@\"";
			myTexte["MailDetail3"] = "\n\n\tThe last part of the eMail-Adress (Top Level Domain) is\n\tsmaller than 2 or larger than 4  letters,\n\tor it contents other letters than \"A-Z\" and \"a-z\".";
			break;
		default:
			alert ("Falsche Sprache angegeben!")
	}
		
	
	//if (debug) debug.innerHTML+=document.getElementsByName("vorname")+"<br>"; else alert((document.getElementsByName("vorname").length));
	if (document.getElementsByName("vorname").length>0){
		if (document.getElementsByName("vorname")[0].value=="debugShowVars" ||
		document.getElementsByName("vorname")[0].value=="debugSendPrima" ||
		document.getElementsByName("vorname")[0].value=="debugSendPrimaAndShowError" ||
		document.getElementsByName("vorname")[0].value=="debugSendPrimaAndShowVars" ||
		document.getElementsByName("vorname")[0].value=="debugShowError"){
		return (true);
		}
	}

	switch (feld){
		case 'undefined':
			alert("Parameter zur Überprüfung fehlt!");
		//=====================================================================================================	
		case 'postkarte':
		//=====================================================================================================	
			if (document.getElementById("emailFrom").value==""){
				text +="\n\t" + myTexte["MailFrom"] + "";
			}else{
				text +=checkEmail(document.getElementById("emailFrom").value)
			}

			if (document.getElementById("emailTo").value==""){
				text +="\n\t" + myTexte["MailTo"] + "";
			}else{
				text +=checkEmail(document.getElementById("emailTo").value)
			}

			if (!text==""){
				text = myTexte["Meldung"] + text + "";
				alert (text);
				return (false);
			}else{
				return (true);
			}

		//=====================================================================================================	
		case 'anfrage':
		//=====================================================================================================	
		text += (document.getElementsByName("vorname")[0].value=="") ? "\n\t" + myTexte["Vorname"] : "";
			text += (document.getElementsByName("name")[0].value=="") ? "\n\t" + myTexte["Nachname"] : "";
			text += (document.getElementsByName("text")[0].value=="") ? "\n\t" + myTexte["Text"] : "";
			
			if (document.getElementsByName("email")[0].value==""){
				text +="\n\t" + myTexte["Mail"] + "";
			}else{
				text +=checkEmail(document.getElementsByName("email")[0].value)
			}

			if (!text==""){
				text = myTexte["Meldung"] + text + "";
				alert (text);
				return (false);
			}else{
				return (true);
			}

		//=====================================================================================================	
		case 'buchung':
		//=====================================================================================================	
			/*if (!validateCard(document.forms[0].kartenNummer.value,document.forms[0].bezahlung.value,document.forms[0].monat.value,document.forms[0].jahr.value)){
				return false;
			}*/
		text += (document.getElementsByName("vorname")[0].value=="") ? "\n\t" + myTexte["Vorname"] : "";
		text += (document.getElementsByName("name")[0].value=="") ? "\n\t" + myTexte["Nachname"] : "";
		text += (document.getElementsByName("tel")[0].value=="") ? "\n\t" + myTexte["Tel"] : "";
		text += (document.getElementsByName("strasse")[0].value=="") ? "\n\t" + myTexte["Strasse"] : "";
		text += (document.getElementsByName("plz")[0].value=="") ? "\n\t" + myTexte["Plz"] : "";
		text += (document.getElementsByName("ort")[0].value=="") ? "\n\t" + myTexte["Ort"] : "";
		text += (document.getElementsByName("land")[0].value=="") ? "\n\t" + myTexte["Land"] : "";
		text += (parseInt(document.getElementsByName("erwachsene")[0].value,10)<1 || document.getElementsByName("erwachsene")[0].value=="") ? "\n\t" + myTexte["Erwachsene"] : "";

		text += (parseInt(document.getElementsByName("kinder")[0].value,10)<0 ) ? "\n\t" + myTexte["Kinder"] : "";
		//text += (parseInt(document.getElementsByName("kinder")[0].value,10)>0 && document.getElementsByName("kinderAlter")[0].value=="") ? "\n\t" + myTexte["KinderAlter"] : "";
		text += (parseInt(document.getElementsByName("kinder")[0].value,10)>0 && 
		document.getElementsByName("kinderAlter1")[0].value+document.getElementsByName("kinderAlter1")[0].value+document.getElementsByName("kinderAlter1")[0].value=="") ? "\n\t" + myTexte["KinderAlter"] : "";

			//text += (document.getElementsByName("von")[0].value=="" || document.getElementsByName("bis")[0].value=="") ? "\n\t" + myTexte["Zeit"] : "";
		text += (parseInt(document.getElementsByName("naechte")[0].value)<=0 || document.getElementsByName("naechte")[0].value=="") ? "\n\t" + myTexte["Zeit"] : "";

			//if (parseInt(document.getElementsByName("dz")[0].value,10)==0 ||document.getElementsByName("dz")[0].value=="" || isNaN(document.getElementsByName("dz")[0].value)) anzahlDz=false; else anzahlDz=true;
			//if (parseInt(document.getElementsByName("mbz")[0].value,10)==0 ||document.getElementsByName("mbz")[0].value=="" || isNaN(document.getElementsByName("mbz")[0].value)) anzahlMbz=false; else anzahlMbz=true;
			//text += (!(anzahlMbz || anzahlDz)) ? "\n\t" + myTexte["Zimmer"] : "";
			
		if (document.getElementsByName("email")[0].value==""){
			text +="\n\t" + myTexte["Mail"] + "";
		} else {
			if (document.getElementsByName("email")[0].value!="") text +=checkEmail(document.getElementsByName("email")[0].value);
		}

		if (!text==""){
			text = myTexte["Meldung"] + text + "";
			alert (text);
			return (false);
		}else{
			return (true);
		}

		//=====================================================================================================	
		case 'buchungsAnfrage':
		case 'zimmerAnfrage':
		//=====================================================================================================	
			text += (document.getElementsByName("vorname")[0].value=="") ? "\n\t" + myTexte["Vorname"] : "";
			text += (document.getElementsByName("name")[0].value=="") ? "\n\t" + myTexte["Nachname"] : "";
			text += (parseInt(document.getElementsByName("erwachsene")[0].value,10)<1 || document.getElementsByName("erwachsene")[0].value=="") ? "\n\t" + myTexte["Erwachsene"] : "";
			text += (parseInt(document.getElementsByName("kinder")[0].value,10)<0 || document.getElementsByName("kinder")[0].value=="") ? "\n\t" + myTexte["Kinder"] : "";
			text += (parseInt(document.getElementsByName("kinder")[0].value,10)>0 && document.getElementsByName("kinderAlter")[0].value=="") ? "\n\t" + myTexte["KinderAlter"] : "";

			text += (document.getElementsByName("von")[0].value=="" || document.getElementsByName("bis")[0].value=="") ? "\n\t" + myTexte["Zeit"] : "";
			
			if (document.getElementsByName("email")[0].value==""){
				text +="\n\t" + myTexte["Mail"] + "";
			} else {
				if (document.getElementsByName("email")[0].value!=""){
					text +=checkEmail(document.getElementsByName("email")[0].value)
				}
			}

			if (!text==""){
				text = myTexte["Meldung"] + text + "";
				alert (text);
				return (false);
			}else{
				return (true);
			}

		//=====================================================================================================	
		case 'call_back':
		//=====================================================================================================	
			text += (document.getElementsByName("vorname")[0].value=="") ? "\n\tVorname" : "";
			text += (document.getElementsByName("name")[0].value=="") ? "\n\tFamilienname" : "";
			//text += (document.getElementsByName("text")[0].value=="") ? "\n\tNachrichtentext" : "";
			text += (document.getElementsByName("telNr")[0].value=="") ? "\n\tTel. Nr." : "";
			
			
			if (!text==""){
				text = myTexte["Meldung"] + text + "";
				alert (text);
				return (false);
			}else{
				return (true);
			}

		//=====================================================================================================	
		case 'katalog':
		//=====================================================================================================	
			text += (document.getElementsByName("vorname")[0].value=="") ? "\n\t" + myTexte["Vorname"] : "";
			text += (document.getElementsByName("name")[0].value=="") ? "\n\t" + myTexte["Nachname"] : "";
			text += (document.getElementsByName("land")[0].value=="") ? "\n\t" + myTexte["Land"] : "";
			/*text += (document.getElementsByName("text")[0].value=="") ? "\n\tNachrichtentext" : "";*/
			text += (document.getElementsByName("plz")[0].value=="") ? "\n\t" + myTexte["Plz"] : "";
			text += (document.getElementsByName("ort")[0].value=="") ? "\n\t" + myTexte["Ort"] : "";
			text += (document.getElementsByName("strasse")[0].value=="") ? "\n\t" + myTexte["Strasse"] : "";

			
			/*if (document.getElementsByName("email")[0].value==""){
				text +="\n\teMail-Adresse";
			} else {
				text +=checkEmail(document.getElementsByName("email")[0].value)
			}*/

			if (!text==""){
				text = myTexte["Meldung"] + text;
				alert (text);
				return (false);
			}else{
				return (true);
			}
			
		//=====================================================================================================	
		case 'newsletter':
		//=====================================================================================================	
			//text += (document.getElementsByName("vorname")[0].value=="") ? "\n\t" + myTexte["Vorname"] : "";
			//text += (document.getElementsByName("name")[0].value=="") ? "\n\t" + myTexte["Nachname"] : "";
			//text += (document.getElementsByName("land")[0].value=="") ? "\n\t" + myTexte["Land"] : "";
			/*text += (document.getElementsByName("text")[0].value=="") ? "\n\tNachrichtentext" : "";*/
			//text += (document.getElementsByName("plz")[0].value=="") ? "\n\t" + myTexte["Plz"] : "";
			//text += (document.getElementsByName("ort")[0].value=="") ? "\n\t" + myTexte["Ort"] : "";
			//text += (document.getElementsByName("strasse")[0].value=="") ? "\n\t" + myTexte["Strasse"] : "";

			
			if (document.getElementsByName("email")[0].value==""){
				text +="\n\teMail-Adresse";
			} else {
				text +=checkEmail(document.getElementsByName("email")[0].value)
			}

			if (!text==""){
				text = myTexte["Meldung"] + text;
				alert (text);
				return (false);
			}else{
				return (true);
			}
			
		//=====================================================================================================	
		case 'verleih':
		//=====================================================================================================	
			text += (document.getElementsByName("vorname")[0].value=="") ? "\n\tVorname" : "";
			text += (document.getElementsByName("name")[0].value=="") ? "\n\tFamilienname" : "";
			text += (document.getElementsByName("verleihAbholTag")[0].value=="") ? "\n\tTag der Abholung" : "";
			text += (document.getElementsByName("verleihAbholZeit")[0].value=="") ? "\n\tZeit der Abholung" : "";
			
			if (document.getElementsByName("verleih1Anzahl")[0].value=="0" &&
				document.getElementsByName("verleih2Anzahl")[0].value=="0" &&
				document.getElementsByName("verleih3Anzahl")[0].value=="0"){
				text +="\n\tAnzahl der Sportgeräte";
			} else {
				if ((document.getElementsByName("verleih1Anzahl")[0].value!="0" && document.getElementsByName("verleih1Tage")[0].value=="0") ||
				    (document.getElementsByName("verleih2Anzahl")[0].value!="0" && document.getElementsByName("verleih2Tage")[0].value=="0") ||
					(document.getElementsByName("verleih3Anzahl")[0].value!="0" && document.getElementsByName("verleih3Tage")[0].value=="0")){
					text +="\n\tAnzahl der Verleihtage";
				}

				if ((document.getElementsByName("verleih1Anzahl")[0].value!="0" && document.getElementsByName("verleih1Ware")[0].value=="") ||
				    (document.getElementsByName("verleih2Anzahl")[0].value!="0" && document.getElementsByName("verleih2Ware")[0].value=="") ||
					(document.getElementsByName("verleih3Anzahl")[0].value!="0" && document.getElementsByName("verleih3Ware")[0].value=="")){
					text +="\n\tArt des Sportgeräts";
				}
			}

	}//end switch
}
	

//***********************************
function checkEmail(eMail){
//***********************************

	//Format: Teil1[.Teil2]@Teil3.Teil4 pruefen
	suche = /^([_a-zA-z0-9-])+(\.[_a-zA-z0-9-]+)*@([_a-zA-z0-9-]+\.)+([a-zA-Z]{0,})/;
	text=""
	ergebnis=suche.test(eMail)
	if (!ergebnis) text += myTexte["MailDetail1"];
	//teil hinter dem @
	teile=eMail.split("@")
	//durch '.' getrennte segmente holen
	teile=teile[teile.length-1].split(".")
	//auf mehr als 2 segmente pruefen
	if (teile.length>2) text += myTexte["MailDetail2"];

	if (teile){
		//letztes segment = TLD holen
		teil=teile[teile.length-1]
		//laenge und A-Z pruefen
		suche=/[a-zA-Z]{2,4}/
		if (suche.exec(teil) != teil) text += myTexte["MailDetail3"];
	}

	return(text)
}

//========================================================================================
function mod10( cardNumber ) { // LUHN Formula for validation of credit card numbers.
//========================================================================================
	var ar = new Array( cardNumber.length );
	var i = 0,sum = 0;

	for( i = 0; i < cardNumber.length; ++i ) {
		ar[i] = parseInt(cardNumber.charAt(i));
	}
	for( i = ar.length -2; i >= 0; i-=2 ) { // you have to start from the right, and work back.
		ar[i] *= 2;							 // every second digit starting with the right most (check digit)
		if( ar[i] > 9 ) ar[i]-=9;			 // will be doubled, and summed with the skipped digits.
	}										 // if the double digit is > 9, ADD those individual digits together 

	for( i = 0; i < ar.length; ++i ) {
		sum += ar[i];						 // if the sum is divisible by 10 mod10 succeeds
	}
	return (((sum%10)==0)?true:false);	 	
}

//========================================================================================
function expired( month, year ) {
//========================================================================================
	var now = new Date();							// this function is designed to be Y2K compliant.
	var expiresIn = new Date(year,month,0,0,0);		// create an expired on date object with valid thru expiration date
	expiresIn.setMonth(expiresIn.getMonth()+1);		// adjust the month, to first day, hour, minute & second of expired month
	if( now.getTime() < expiresIn.getTime() ) return false;
	return true;									// then we get the miliseconds, and do a long integer comparison
}

//========================================================================================
function validateCard(cardNumber,cardType,cardMonth,cardYear) {
//========================================================================================
	if (cardType=='Rechnung'){
		return true;
	}
	
	if( cardNumber.length == 0 ) {						//most of these checks are self explanitory
		alert("Bitte Kartennummer eingeben.\n\nPlease enter card number.");
		return false;				
	}
	for( var i = 0; i < cardNumber.length; ++i ) {		// make sure the number is all digits.. (by design)
		var c = cardNumber.charAt(i);
		if( c < '0' || c > '9' ) {
			alert("Bitte nur Ziffern, keine Leerzeichen oder Trennstriche eingeben.\n\nUse only digits. do not use spaces or hyphens.");
			return false;
		}
	}
   	var length = cardNumber.length;			//perform card specific length and prefix tests

	switch( cardType ) {
		case 'American Express':
			errorText="Bitte geben Sie eine gültige American Express Kartennummer ein.\n\nPlease enter a valid American Express card number.";
		
			if( length != 15 ) {
				alert(errorText);
				return;
			}
			var prefix = parseInt( cardNumber.substring(0,2));
			if( prefix != 34 && prefix != 37 ) {
				alert(errorText);
				return;
			}
			break;
		case 'Discover Card':
			errorText="Bitte geben Sie eine gültige Discover Card Kartennummer ein.\n\nPlease enter a valid Discover Card number.";
			if( length != 16 ) {
				alert(errorText);
				return;
			}
			var prefix = parseInt( cardNumber.substring(0,4));
			if( prefix != 6011 ) {
				alert(errorText);
				return;
			}
			break;
		case 'MasterCard':
			errorText="Bitte geben Sie eine gültige MasterCard Kartennummer ein.\n\nPlease enter a valid MasterCard number.";
			if( length != 16 ) {
				alert(errorText);
				return;
			}
			var prefix = parseInt( cardNumber.substring(0,2));
			if( prefix < 51 || prefix > 55) {
				alert(errorText);
				return;
			}
			break;

		case 'Visa':
			errorText="Bitte geben Sie eine gültige Visa Kartennummer ein.\n\nPlease enter a valid Visa card number.";
			if( length != 16 && length != 13 ) {
				alert(errorText);
				return;
			}
			var prefix = parseInt( cardNumber.substring(0,1));
			if( prefix != 4 ) {
				alert(errorText);
				return;
			}
			break;

		case 'Diners Club':
			errorText="Bitte geben Sie eine gültige Diners Club Kartennummer ein.\n\nPlease enter a valid Diners Club card number.";
			if( length != 14 && length != 17 ) {
				alert(errorText);
				return;
			}
			var prefix = parseInt( cardNumber.substring(0,2));
			if( prefix != 30 && prefix != 36 && prefix != 38) {
				alert(errorText);
				return;
			}
			break;
		}

		if( !mod10( cardNumber ) ) { 		// run the check digit algorithm
			alert("Sorry! this is not a valid credit card number.");
			return false;
		}
		if( expired( cardMonth, cardYear ) ) {							// check if entered date is already expired.
			alert("Sorry! The expiration date you have entered would make this card invalid.");
			return false;
		}
		
		return true; // at this point card has not been proven to be invalid
}


var anzahlDerSchleifendurchlaeufe=0;
var minHeight=0; //global
var anker=null;
var debug=parent.document.getElementById("debug");

//***********************************
function setDivHeight(minHeightVar) {
/************************************
hier wird eigentlich nur der anker gesetzt
*/
	minHeight=minHeightVar;
	if (!this.document.getElementById('eof')){
		document.write("<img id=\"eof\" src=\"/spacer.gif\" />");
	}else{
		if (debug) {debug.innerHTML+="<br>2. Aufruf! von "+this;}
	}
	anker=document.getElementById("eof"); //global weil var im root
	waitForImages();
}

//***********************************
function waitForImages() {
//is eine funktion, weil die ja mit setTimeout immer wieder aufgerufen wird
//***********************************
	anzahlDerSchleifendurchlaeufe++; //global
	//aktiv=null;
	
	if (!checkIfAllImgLoaded()) {
		aktiv=window.setTimeout("waitForImages()", 300);
		if (debug){debug.innerHTML+="<br>waitForImages: "+anzahlDerSchleifendurchlaeufe;}
		if (anzahlDerSchleifendurchlaeufe<20) {
			return false;
		}else{
			window.clearTimeout(aktiv);
		}
	}else{
	}
	
	//if (debug){	debug.innerHTML+="<br>waitForImages: '"+anker.id+"'";}
	setDivHeight2(anker) //diese funktion wird dann rekursiv aufgerufen

}

//***********************************
function setDivHeight2(anker) {
//***********************************
	if (debug){	debug.innerHTML+="<br><strong>setDivHeight2:</strong>";}
	if (debug){	debug.innerHTML+="<br>anker.offsetParent.offsetTop "+anker.offsetParent.tagName+" "+anker.offsetParent.offsetTop;}

	//zusaetzlicherOffset = 0;
	zusaetzlicherOffset = (anker.offsetParent.tagName =="DIV") ? anker.offsetParent.offsetTop : 0;
	vBarGanzeSeite=false;
	fusszeileHintergrundHoehe=40;
	fusszeile=parent.document.getElementById('fusszeile');
	fusszeileElement=parent.document.getElementById('fusszeileElement');
	content=parent.document.getElementById('content');
	verlaengerung=parent.document.getElementById('contentVerlaengerung');
	vBar=parent.document.getElementById('vBar');
	hBar=parent.document.getElementById('hBar');
	main=parent.document.getElementById('main');
	indexBody=parent.document.getElementById('indexBody');
	copyright=parent.document.getElementById('fusszeileCopyright');
	/*
	if (debug) {debug.innerHTML+="<br>clientHeight: "+indexBody.clientHeight+"<br>scrollHeight:"+indexBody.scrollHeight+"<br>fusszeileHoehe:"+fusszeile.offsetHeight+"<br>copyright.offsetTop:"+copyright.offsetTop+" copyright.offsetHeight:"+copyright.offsetHeight+"<br>content.offsetTop:"+content.offsetTop+" content.offsetHeight:"+content.offsetHeight+"<br>vBarHoehe:"+vBarHoehe;
	}*/
	//nur ändern wenn minimumgröße überschritten wird
	if (anker.offsetTop+zusaetzlicherOffset < minHeight){
		gesamtOffset=minHeight
	}else{
		gesamtOffset=anker.offsetTop+zusaetzlicherOffset;
	}
	this.window.scrollTo(0,0); //sonst geht ff auf hash position

	if (fusszeile) {fusszeile.style.top=content.offsetTop+gesamtOffset+"px";}
	if (fusszeileElement) {fusszeileElement.style.top=content.offsetTop+gesamtOffset+"px";}
	if (content) {content.style.height=gesamtOffset+"px";}

	if (verlaengerung) {
		if (fusszeile.offsetTop-verlaengerung.offsetTop>=0){
			verlaengerung.style.visibility="visible";
			verlaengerung.style.height=fusszeile.offsetTop-verlaengerung.offsetTop+"px";
		}else{
			verlaengerung.style.visibility="hidden";
		}
	}

	if (vBar) {
		vBarHoehe=content.offsetTop+content.offsetHeight;
		if (debug) debug.innerHTML+="<br>vBar: "+copyright.offsetTop+" "+copyright.offsetHeight+" "+content.offsetTop+" "+content.offsetHeight+" "+indexBody.clientHeight;

		if (vBarGanzeSeite){
			vBarHoehe+=copyright.offsetTop+copyright.offsetHeight;
		
			if (vBarHoehe < indexBody.clientHeight) vBarHoehe=indexBody.clientHeight+9; //9px offset für ff
			
			if (indexBody.scrollHeight > vBarHoehe) { //scrollHeight stammt ggf. noch von der vorigen seite
					vBar.style.height=vBarHoehe+"px"; //9px offset für ff
			}else{
					vBar.style.height=indexBody.scrollHeight+"px"; 
			}
		}else{
			vBar.style.height=vBarHoehe+fusszeileHintergrundHoehe+"px"; 
	
		}
	}

	if (hBar) {
		hBar.style.height=gesamtOffset+"px";
		hBar.style.width=indexBody.clientWidth+"px";
		//if (debug) debug.innerHTML+="<br>parent.document: "+parent.document.width;
		hBar.style.left="-"+main.offsetLeft+"px";
	}

	if (window.location.hash){
		hash=window.location.hash.slice(1);
		parent.window.scrollTo(0,(parseInt(content.offsetTop)+_posFromBody (window.document.getElementsByName(hash)[0],"y")-50)); 
	}else{
		window.location.hash
		parent.window.scrollTo(0,0); //wozu raufscrollen wenn # vorhanden
	}

	
	//if (debug) {debug.innerHTML+="<br>clientHeight: "+indexBody.clientHeight+"<br>scrollHeight:"+indexBody.scrollHeight+"<br>fusszeileHoehe:"+fusszeile.offsetHeight+"<br>copyright.offsetTop:"+copyright.offsetTop+" copyright.offsetHeight:"+copyright.offsetHeight+"<br>content.offsetTop:"+content.offsetTop+" content.offsetHeight:"+content.offsetHeight+"<br>fusszeile.offsetTop:"+fusszeile.offsetTop+"<br>verlaengerung.offsetTop:"+verlaengerung.offsetTop;}

	//if (debug){	debug.innerHTML+="<br><strong>setDivHeight2:</strong><br>minHeight="+minHeight+"<br>gesamtOffset="+gesamtOffset+"<br>zusaetzlicherOffset="+zusaetzlicherOffset+"<br>content.offsetTop="+content.offsetTop+"<br>fusszeile.offsetHeight="+fusszeile.offsetHeight+"<br>fusszeile.offsetTop="+fusszeile.offsetTop+"<br>window.location.hash="+window.location.hash+"<br>";}

return (true);
}



//***********************************
function _posFromBody (object,achse,alreadyKnownPos){ //erstmals bei robl
//***********************************
	//nur 1 arg bedeutet 1. aufruf -> init;
	if (_posFromBody.arguments.length==2) {var alreadyKnownPos=0}
	alreadyKnownPos += (achse=="x") ? object.offsetLeft : object.offsetTop;
	/*offsetParent: Speichert dasjenige Elternelement eines Elements, von dessen Positionierung 
	die Positionierung des Elements abhängt. offsetParent ist dabei eine Art Zeiger auf das übergeordnete Element.
	*/
	if (object.tagName !="BODY"){alreadyKnownPos = _posFromBody (object.offsetParent,achse,alreadyKnownPos);} //rekursion

	return alreadyKnownPos;
}



//***********************************
function checkIfAllImgLoaded() {
//***********************************
	return true;
	var imgNichtGeladen=0;
	var ausgabe="";

	var lists = document.getElementsByTagName("IMG");
	if (!lists.length){
		windows.defaultStatus="keine Bilder da!";
		//debug.innerHTML+="<br>&nbsp;&nbsp;&nbsp;keine Bilder da!";
		return true;
	}
	
	for (var i = 0; i < lists.length; i++) {
		ausgabe+=(lists[i].complete) ? "" : lists[i].src+": nicht geladen\n";
		if (lists[i].complete==false) imgNichtGeladen++;
	}

	//window.defaultStatus=imgNichtGeladen;
	//if (debug) debug.innerHTML+="<br>checkIfAllImgLoaded: offen "+imgNichtGeladen;
	
	if (imgNichtGeladen){
		return false;
	}else{
		return true;
	}
}

//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

//***********************************
function ControlVersion(){
//***********************************
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
//***********************************
function GetSwfVer(){
//***********************************
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
//***********************************
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision){
//***********************************
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}