	// Form auf richtige Mail-Adressen und ausgefüllte Felder überprüfen
	// benötigte Funktionen: allemail_check (benötigt mail_check) und felder_check
	// Aufruf: form_check("Form_Name", "mailfeldname1|mailfeldname2", "feldname1|feldname2")
	// optional kann nach feldname1 mit "__" getrennt noch ein Default-/Vorgabe-Wert
	// mit uebergeben werden. z.B. bei mvs/info/surftipp.php
	function form_check(fname, mails, felder)
	{
		var rreturn = true;
		//E-Mail-Adressen überprüfen
		if (mails)		//nur wenn mails Werte enthält die Fkt. allemail_check aufrufen
			rreturn = allemail_check(fname, mails);
		//wenn ok, Felder überprüfen
		if (rreturn == true && felder)
			rreturn = felder_check(fname, felder);
		return rreturn;
	}

	// mehrere Mail-Adressen überprüfen und Focus setzen
	// benötigt von: form_check
	// benötigte Funktion: mail_check (diese überprüft eine einzige Adresse auf Richtigkeit)
	function allemail_check(fname, felements)
	{
		var rreturn = true;
		var arr_felder = felements.split("|");
		//alert("fname: " + fname + ", felements: " + felements + ", " + arr_felder.length);
		for (var i=0; i<arr_felder.length; i++)
		{
			var feld = arr_felder[i];
			var text = trim(eval("document." + fname + "." + feld + ".value"));
			//alert(eval("document." + fname + "." + feld + ".value"));
			//if (mail_check(arr_mail[i]) == false)
			if (mail_check(text) == false)
			{
				//var i2 = i+1;
				//var feld = "text" + i2;
				eval("document." + fname + "." + feld + ".select()");
				eval("document." + fname + "." + feld + ".focus()");
				alert ("Bitte geben Sie eine gültige E-Mail-Adresse im Feld \"" + feld + "\"an.");
				rreturn = false;
			}
		}
		//alert("mm: " + rreturn);
		return rreturn;
	}

	// eine einzige Mailadresse überprüfen
	// benötigt von: allemail_check
	// benötigte Funktion: trim
	function mail_check(mail)	//analog erstellt zur eigenen PHP-Funktion gleichen Namens
	{
		var rreturn = false;
		mail = trim(mail);	//mögl. Leerzeichen entfernen

		arr_mail = mail.split("@");
		if (arr_mail.length > 1)	//"@" enthalten
			if (arr_mail[0].length > 1 && arr_mail[1].length > 4)	//Mindestlänge
			{
				arr_punkt = arr_mail[1].split(".");	//Domain aufsplitten (z.B. diff.uni-tuebingen.de)
				var anz = arr_punkt.length;
				var teil1 = "";
				if (anz > 1)	//mindestens ein Punkt (".") enthalten
				{
					for (i=0; i<anz-1; i++)		//teil1: "diff.uni-tuebingen"
						teil1 += arr_punkt[i];
					teil2 = arr_punkt[anz-1];	//teil2: "de"
					if (teil1.length > 1 && teil2.length > 1)		//Mindestlänge
						rreturn = true;
				}
			}
		if (mail == "loc@127.0.0.1" || mail == "localhost2@127.0.0.1" || mail == "loc@localhost" || mail == "loc2@localhost"  || mail == "loc1@localhost")
			rreturn = true;
		return rreturn;
	}


	//Formularfelder überprüfen vor Submit
	//fname: Formular-Name
	//felements: Namen der zu überprüfenden Formelemente durch | getrennt ohne Leerzeichen
	//benötigt von: form_check
	function felder_check(fname, felements)
	{
		var rreturn = true;
		var arr_felder = felements.split("|");
		//alert("fname: " + fname + ", felements: " + felements + ", " + arr_felder.length);
		for (var i=0; i<arr_felder.length; i++)
		{
			var feld = arr_felder[i];
			var arr_feld = feld.split("__");

			vorgabe = "";
			if (arr_feld.length == 2)	//Vorgabe-Wert ist vorhanden
			{
				feld = arr_feld[0];
				var vorgabe = arr_feld[1];
			}
			//alert("feld: " + feld + ", vorgabe: " + vorgabe);

			var text = trim(eval("document." + fname + "." + feld + ".value"));
			
			if (text == '' || text.toLowerCase() == vorgabe.toLowerCase())
			{
				eval("document." + fname + "." + feld + ".select()");
				eval("document." + fname + "." + feld + ".focus()");
				//grosser Anfangsbuchstabe fuer Feldbezeichnung (entspricht ucfirst() in PHP)
				var ucfirst = feld.substr(0,1).toUpperCase() + feld.substr(1, feld.length-1);
				alert ("Bitte füllen Sie auch das Feld \"" + ucfirst + "\" aus.");
				rreturn = false;
				break;	//Schleife beenden
				//return false;
			}
		}
		return rreturn;
	}

	//folgende beiden Funktionen nur in links_edit benutzt
	//modifiziert fuer John durch 2. Parameter (typ=m oder k, Miet- oder Kaufobjekte)
	function auswahl(wert, typ)	//Kategorie aus Auswahlliste in Textfeld einfügen bei Klick oder Tastatur
	{
		//var wert = document.form_link_edit.link_auswahl.value;	//angeklickter Werte aus Listenfeld
		//Aufbau: $id|$datum|$titel|$preis|$prov|$qm|$zimmer|$jahr|$bezug|$lage|$kurz|$lang|$ausst|$sonst
		//z.B. "7|musikbra.jpg|www.musisdfsdf.de|Musibranche für Könner und Könnerinne|Alle möglichen und umölgichen Musiklehrersfd asdf asfd asf"
		var arr_feldwerte = wert.split("|");	//entspricht explode

		if (typ == "g")	//Gesuche
			var arr_felder = "id|datum|links|rechts".split("|");
		else if (typ == "m")	//Mietobjekte (zusaetzlich: neben und kaution und jahres(nettomiete))
			var arr_felder = "id|datum|titel|preis|neben|kaution|jahres|stock|geschoss|garage|stell|prov|qm|zimmer|jahr|bezug|lage|kurz|lang|ausst|sonst|picsbild1|picsbild2|picsbild3|picsbild4|picsbild5".split("|");
		else
			var arr_felder = "id|datum|titel|preis|stock|geschoss|garage|stell|prov|qm|zimmer|jahr|bezug|lage|kurz|lang|ausst|sonst|picsbild1|picsbild2|picsbild3|picsbild4|picsbild5".split("|");

		for (var i=2; i<arr_feldwerte.length; i++)	//jeden Wert in die Formularfelder eintragen
		{
			//alert("Feldname: " + arr_felder[i] + ", Feldwert: " + arr_feldwerte[i]);
			eval("document.form_pics_edit." + arr_felder[i] + ".value = arr_feldwerte[i]");			
		}
	}

	//Bild anzeigen
	function bild(dat, wert)
	{
		alert("ok");
		//nicht mit Netscape-konform: var wert = document.form_link_edit.link_auswahl.value;	//angeklickter Werte aus Listenfeld
		var arr_feldwerte = wert.split("|");	//entspricht explode
		var bild = arr_feldwerte[1];
		var id = arr_feldwerte[0];

		if (bild == "")
			bild = "ohnebild";
		document.location.href = dat + "?bild=" + bild + "&id=" + id;
	}


//folgende Ftk. in links_mail.php

	//Leerzeichen entfernen (entspricht trim in PHP)
	function trim(wert)
	{
		//Bsp: "   test "
		//führende Leerzeichen entfernen:
		var j = 0;
		for (var i=0; i<wert.length; i++)
			if (wert.charAt(i) == " ")
		 		j++;
		 	else
		 		i = wert.length;
	 	wert = wert.substr(j, wert.length);
	  	//wert: "test "

		//schließende Leerzeichen entfernen:
		var j = wert.length;
		for (i=j-1; i>0; i--)
			if (wert.charAt(i) == " ")
				j--;
			else
				i = 0;
		wert = wert.substr(0, j);
		//wert: "test"
		return wert;
	}


	// im onload-Tag: Überprüfen, ob Datei außerhalb von Frameset aufgerufen wird
	function onloadnav(bild, dat)
	{
		//alert("ONLOADNAV bild: " + bild + " dat: " + dat + " title: " + parent.frames[0].document.title);
		var nachladen = false;
		if (parent.frames.length == 2)
		{
			//if (parent.frames[0].document.title == "www.felixgroteloh.de -- Navigationsframe")
			var navhost = top.location.host;
			if (navhost == "127.0.0.1" || navhost == "www.felixgroteloh.de")
			{
				var dat = self.location.href;	//z.B. "http://.../news.php?frame=1"
				if (dat.indexOf("frame=1") == -1)	//"frame=1" nicht enthalten
				{
					eval("parent.oben.navbild('" + bild + "', 'o')");
					eval("parent.oben.navclick('" + bild + "')");
				}
			}
			else
			{
//				alert("falscher title: " + parent.frames[0].document.title);
				nachladen = true;
			}
}
		else
		{
//			alert("nicht als frames ober mehrere frames (>2)" + parent.frames.length);
			nachladen = true;
		}

//////////////////////
//nachladen = false;
//////////////////////

		if (nachladen == true)
		{
			antwort = confirm("Diese Seite ist Teil eines Framesets von www.felixgroteloh.de. \nSoll dieses nun nachgeladen werden (Klick auf OK)?");
			if (antwort == true)
			{
				if (window.location.host == "127.0.0.1")
					top.location.href="http://127.0.0.1/indexjs.php?bild=" + bild + "&u=" + dat;
				else
					top.location.href="http://www.felixgroteloh.de/_test/indexjs.php?bild=" + bild + "&u=" + dat;
			}
		}
	}


	//Bilder vorausladen (http://www.webreference.com/js/tips/990927.html)
	//Aufruf: <BODY onLoad="preload('first.gif', 'second.gif', 'third.gif')">
	//NEU: Aufruf: <BODY onLoad="preload('first.gif second.gif third.gif)">
	function preload()
	{
		if (!document.images) return;
//		var arr_preload = new Array();
		var arr_para = preload.arguments;
		var arr_grafiken = arr_para[0].split(" ");
		//alert("funktion preload aufgerufen");
		for (var i=0; i<arr_grafiken.length; i++)
		{
//			arr_preload[i] = new Image();
//			arr_preload[i].src = arr_grafiken[i];
			dummy = new Image();
			dummy.src = arr_grafiken[i];
			//alert("preload: " + arr_grafiken[i]);
		}
	}



	//gepunkteten Rahmen entfernen
	function ierahmen(obj) {
		if (document.all) obj.blur();
	}


	//neues Fenster oeffnen (in gb:index.php und termine:index.php
	function openReal(theURL,winName,features)
	{
		var neufenster = window.open(theURL,winName,features);
		//http://www.galileocomputing.de/openbook/javascript/javascript10.htm ::
		if (neufenster.opener == null)
			neufenster.opener = self;
	}

	//http://faq.united-web.at/javascript/popup/popup_aufloesungsunabhaengig_zentrieren
	//Orig: function openmitte(url, winName, breite, hoehe)
	function openmitte(url, winName)
	{  /* Orig:
		var width=breite;
		var height=hoehe;
		var l = (screen.availWidth - width) / 2;
		var t = (screen.availHeight - height) / 2;
		//newwindow = window.open(url,winName,"width="+breite+",height=" +hoehe+",screenX="+l+",screenY="+t+",left=" +l+",top="+t+",scrollbars=0,resizable=0,menubar=no");
		*/
		newwindow = window.open(url,winName,"width=1, height=1, screenX=-500,screenY=-500,left=-500,top=-500, scrollbars=0, resizable=1, menubar=no");
		newwindow.focus();
	}

	//# Dialogfenster mit E-Mail-Adresse anzeigen, die per Copy&Paste übernommen werden kann
	//# adresse = xxx(#)domain.de
	function showmail(adresse) {
		var arr_adresse = adresse.split("(#)");
		var adresse = arr_adresse[0] + "@" + arr_adresse[1];
		var antw = prompt("Bitte die Adresse in die Zwischenablage kopieren (Strg-C) und in Ihr E-Mail-Programm einfügen (Strg-V):", adresse);

	}
