Index: trunk/mapbender/http/nav/alkisnav_eig.php
===================================================================
--- trunk/mapbender/http/nav/alkisnav_eig.php	(revision 283)
+++ trunk/mapbender/http/nav/alkisnav_eig.php	(revision 284)
@@ -10,5 +10,6 @@
 	2013-04-29	Darstellung mit IE
 	2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen
-	2013-05-08  Hervorhebung aktuelles Objekt, in Arbeit ...
+	2013-05-14  Hervorhebung aktuelles Objekt, Parameter "gbkennz" auswerten,
+					Title auch auf Icon, IE zeigt sonst alt= als Title dar.
 */
 $cntget = extract($_GET);
@@ -50,5 +51,5 @@
 	if(isset($name)) { // Familiensuche
 		echo "\n<div class='back' title='Andere Personen mit diesem Nachnamen'>";
-			echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer_2.ico' width='16' height='16' alt='FAM'> ";
+			echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer_2.ico' width='16' height='16' alt='FAM' title='Andere Personen mit diesem Nachnamen'> ";
 			echo "\n<a class='back' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;name=".$name."'>\"".$name."\"</a>";
 		echo "\n</div>\n<br>";	
@@ -92,5 +93,5 @@
 	<td valign='top'>
 		<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$person."\")'>
-			<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>
+			<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG' title='Nachweis'>
 		</a>
 	</td>
@@ -177,10 +178,15 @@
 // Alternativ wÃŒrde eine Hilfstabelle benÃ¶tigt, in der im PostProcessing 
 // das GB-zu-Gemeinde-VerhÃ€ltnis vorbereitet wird.
-	global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $debug, $bltbez, $bltblatt, $bltseite;
+	global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $debug, $bltbez, $bltblatt, $bltseite, $kennztyp, $zgbbez;
+	# $zblatt, $zblattn, $zblattz, $zbvnr;
 	$linelimit=150;
+
+	// Head
 	familiensuche();
 	personendaten();
+
+	// Body
 	// Suche nach GrundbÃŒchern der Person
-	$sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezeichnung AS beznam ";
+	$sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam ";
 	$sql.="FROM alkis_beziehungen bpn ";
 	$sql.="JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id ";
@@ -189,8 +195,19 @@
 	$sql.="JOIN ax_buchungsblattbezirk b ON gb.land = b.land AND gb.bezirk = b.bezirk ";
 	$sql.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' ";
+
+	// Parameter $gbkennz, z.B. nach Klick auf Zeile "Bezirk"
+	if ($kennztyp > 1) { // 2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR
+		#if ($debug > 0) {echo "<p class='dbg'>Filter Bezirk '".$zgbbez."'<p>";}
+		$sql.="AND b.bezirk = ".$zgbbez." ";
+		$bezirkaktuell = true;
+	} else {
+		$bezirkaktuell = false;
+	}
+
 	if ($bltbez.$bltblatt != "") { // BlÃ€ttern, Fortsetzen bei ...
 		$sql.="AND ((b.bezeichnung > '".$bltbez."') ";
 		$sql.="OR (b.bezeichnung = '".$bltbez."' AND gb.buchungsblattnummermitbuchstabenerweiterung > '".$bltblatt."')) ";
 	}
+
 	$sql.="ORDER BY b.bezeichnung, gb.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;";
 
@@ -208,15 +225,25 @@
 	}
 	$cnt = 0;
+	$gwbez="";
 	while($row = pg_fetch_array($res)) {
+		$beznr=$row["bezirk"];
+		if ($gwbez != $beznr) { // Gruppenwechsel Bezirk
+			$beznam=$row["beznam"];
+			$gwbez=$beznr;
+			zeile_gbbez ($beznam, $beznr, $bezirkaktuell);
+		}
 		$gml=$row["gml_g"];
-		$beznam=$row["beznam"];
 		$blatt=$row["blatt"];
 		zeile_blatt($zgbbez, $beznam, $gml, $blatt, false, $person, false);
 		$cnt++;
 	}
+
+	// Foot
 	if($cnt == 0) { 
 		echo "\n<p class='anz'>Kein Grundbuch zum Eigent&uuml;mer</p>";
 	} elseif($cnt >= $linelimit) {
 		echo "\n<p class='blt'>".$cnt." Grundb. zum Eigent.";
+
+		// BlÃ€ttern
 		$nxtbltbez=urlencode($beznam);
 		$nxtbltblatt=urlencode($blatt);
@@ -241,4 +268,5 @@
 	global $gkz, $gemeinde, $name, $person, $blattgml, $epsg, $gfilter, $debug;
 	if($backlink) { // Erneuter Ansatz bei Person oder GB mÃ¶glich.
+
 		// Namen ermitteln
 		$sql ="SELECT nachnameoderfirma, vorname FROM ax_person WHERE gml_id = $1 ";
@@ -248,18 +276,10 @@
 		if (!$res) {echo "\n<p class='err'>Fehler bei Eigent&uuml;mer</p>";}
 		$row = pg_fetch_array($res); // nur eine Zeile
-		$nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8");
-		$vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8");
-
-		// +++ Function zeile_person nutzen ?
-		echo "\n\t<div class='back' title='zur&uuml;ck zur Person'>";
-			echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'> ";
-			echo "\n\t<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$person."'>";
-			echo $nnam.", ".$vnam."</a><br>";		
-		echo "</div>";
+		zeile_person($person, $row["nachnameoderfirma"], $row["vorname"]);
 
 		// Grundbuch-Daten ermitteln
 		$sql ="SELECT gb.gml_id AS gml_g, gb.buchungsblattnummermitbuchstabenerweiterung as blatt, b.bezirk, b.bezeichnung AS beznam ";
 		$sql.="FROM ax_buchungsblatt gb JOIN ax_buchungsblattbezirk b ON gb.land=b.land AND gb.bezirk=b.bezirk ";
-		$sql.="WHERE gb.gml_id= $1 ;";
+		$sql.="WHERE gb.gml_id= $1 LIMIT 1 ;";
 		$v=array($blattgml);
 		$res=pg_prepare("", $sql);
@@ -271,8 +291,8 @@
 		$beznam=$row["beznam"];
 		$blatt=$row["blatt"];
+		zeile_gbbez ($beznam, $bezirk, false);
 		zeile_blatt($bezirk, $beznam, $blattgml, $blatt, false, $person, true);	
 	}
-	#GB_Buchung_FS(200, $bezirk."-".$blatt); // Blatt > GrundstÃŒck > Flurst. (max. 200)
-	GB_Buchung_FS(200, ""); // ohne den Link auf "Buchung"
+	GB_Buchung_FS(250, ""); // Blatt > Grundst. > FS, max. 250, ohne Link "Buchung"
 	return;
 }
@@ -288,5 +308,5 @@
 // Stufe 2 und 3 nacheinander verwendet werden. Dies ist wahrscheinlich ÃŒbersichtlicher, 
 // weil "ungefiltert" in "2+3" zu lange Listen entstehen wÃŒrden, die durchblÃ€ttert werden mÃŒssen. 
-	global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht;
+	global $gkz, $gemeinde, $epsg, $name, $person, $blattgml, $gfilter, $debug, $bltbez, $bltblatt, $bltbvnr, $bltseite, $bltrecht, $kennztyp, $zgbbez;
 	$linelimit=80; // als Limit "Anzahl FlurstÃŒcke" in den beiden folgenden Abfragen
 	// darf nun etwas knapper sein, weil man jetzt blÃ€ttern kann
@@ -336,4 +356,14 @@
 	$sql2.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' ";
 	$sql2.="AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' ";
+
+	// Parameter $gbkennz nach Klick auf Zeile "Bezirk"
+	if ($kennztyp > 1) { // 2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR
+		#if ($debug > 0) {echo "<p class='dbg'>Filter Bezirk '".$zgbbez."'<p>";}
+		$sql2.="AND b.bezirk = ".$zgbbez." ";
+		$bezirkaktuell = true;
+	} else {
+		$bezirkaktuell = false;
+	}
+
 	switch ($gfilter) { // Gemeinde-Filter
 		case 1: // Einzelwert
@@ -387,6 +417,5 @@
 				$beznam=$row["beznam"];
 				$gwgb="";
-				# Zeile ausgeben?
-				if($debug > 0) {echo "<p class='dbg'>Bezirk ".$bezirk."</p<>";}
+				zeile_gbbez($beznam, $gwbez, $bezirkaktuell);
 			}
 			$gb_gml=$row["gml_g"];
@@ -401,6 +430,5 @@
 				$gwbv = $bvnr;
 				$bsgml=$row["bsgml"];
-				zeile_buchung($bsgml, $bvnr, "", false, false); // ohne Link!
-			#	zeile_buchung($bsgml, $bvnr, $bezirk."-".$blatt, false, false);
+				zeile_buchung($bsgml, $bvnr, "", false, false); //ohne Link
 			}
 			$fs_gml=$row["gml_id"];
@@ -414,14 +442,26 @@
 		if($zfs1 == 0) {
 			if ($bltrecht == "ohne") {echo "\n<p class='anz'>Keine direkte Buchung gefunden.</p>";}
-		} elseif($zfs1 >= $linelimit) { // das Limit war zu knapp, das  B l Ã€ t t e r n  anbieten
-			echo "\n<p class='blt'>".$zfs1." Flurst&uuml;cke";
+		} elseif($zfs1 >= $linelimit) { // das Limit war zu knapp
+			echo "\n<p class='blt'>";
+			if ($bltseite > 1) {echo "weitere ";}
+			echo $zfs1." Flurst&uuml;cke";
+			// B l Ã€ t t e r n  (eine Folgeseite anbieten)
 			$nxtbltbez=urlencode($beznam);
 			$nxtbltblatt=urlencode($blatt);
 			$nxtbltseite=$bltseite + 1;
-			echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$person."&amp;bltbez=".$nxtbltbez."&amp;bltblatt=".$nxtbltblatt."&amp;bltbvnr=".$bvnr."&amp;bltseite=".$nxtbltseite."&amp;bltrecht=ohne' ";
+			echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$person;
+			echo "&amp;gbkennz=".$zgbbez; // Filter Bezirk
+			echo "&amp;bltbez=".$nxtbltbez."&amp;bltblatt=".$nxtbltblatt."&amp;bltbvnr=".$bvnr."&amp;bltseite=".$nxtbltseite."&amp;bltrecht=ohne' ";
 			echo "title='Bl&auml;ttern ab ".htmlentities($beznam)." Blatt ".$blatt." BVNR ".$bvnr."'>weitere</a>";
 			echo "</p>";
-		} elseif($zfs1 > 1) { // Meldung (Plural) ab 2 
-			echo "\n<p class='anz'>".$zfs1." Flurst&uuml;cke zum Eigent&uuml;mer</p>"; // im Limit
+		} elseif($zfs1 > 1) { // Meldung (Plural) ab 2, im Limit
+			echo "\n<p class='anz'>";
+			if ($bltseite > 1) {echo "weitere ";}
+			echo $zfs1;
+			if ($kennztyp > 1) {
+				echo " Flurst. zum Eigent. im GB-Bezirk</p>"; 
+			} else {
+				echo " Flurst&uuml;cke zum Eigent&uuml;mer</p>"; 
+			}
 		}
 	}	
@@ -443,6 +483,14 @@
 		}
 		$zfs2=0;
-		$gwgb="";
+		$gwbez="";
+		#gwgb="";
 		while($row = pg_fetch_array($res)) {	
+			$bezirk=$row["bezirk"];
+			if ($gwbez != $bezirk) { // Gruppierung Bezirk
+				$gwbez=$bezirk;
+				$beznam=$row["beznam"];
+				$gwgb="";
+				zeile_gbbez($beznam, $gwbez, $bezirkaktuell);
+			}
 			$gb_gml=$row["gml_g"];
 			if ($gwgb != $gb_gml) {  // Gruppierung Blatt (Grundbuch)
@@ -475,13 +523,19 @@
 			}
 		} elseif($zfs2 >= $linelimit) { // das Limit war zu knapp, das  B l Ã€ t t e r n  anbieten
-			echo "\n<p class='blt'>".$zfs2." Rechte an Flurst.";
+			echo "\n<p class='blt'>";
+			if ($bltseite > 1) {echo "weitere ";}
+			echo $zfs2." Rechte an Flurst.";
 			$nxtbltbez=urlencode($beznam);
 			$nxtbltblatt=urlencode($blatt);
 			$nxtbltseite=$bltseite + 1;
-			echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$person."&amp;bltbez=".$nxtbltbez."&amp;bltblatt=".$nxtbltblatt."&amp;bltbvnr=".$bvnr."&amp;bltseite=".$nxtbltseite."&amp;bltrecht=nur' ";
+			echo "\n - <a class='blt' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$person;
+			echo "&amp;gbkennz=".$zgbbez; // Filter Bezirk
+			echo "&amp;bltbez=".$nxtbltbez."&amp;bltblatt=".$nxtbltblatt."&amp;bltbvnr=".$bvnr."&amp;bltseite=".$nxtbltseite."&amp;bltrecht=nur' ";
 			echo "title='Bl&auml;ttern ab ".htmlentities($beznam)." Blatt ".$blatt." BVNR ".$bvnr."'>weitere</a>";
 			echo "</p>";
 		} elseif($zfs2 > 1) { // ab 2
-			echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.</p>"; // im Limit		
+			echo "\n<p class='anz'>";
+			if ($bltseite > 1) {echo "weitere ";}
+			echo $zfs2." Rechte an Flurst.</p>"; // im Limit		
 		}
 	} // ENDE FÃ€lle mit "Rechte an"
@@ -510,11 +564,6 @@
 }
 
-## Aus Link "Buchung" kommen folgende Parameter:
-# ?gkz=250&gemeinde=20&epsg=31467
-# &buchunggml=DENW15AL1000Bj2m
-# &gbkennz=2619-000025+-8
-## Weder buchunggml noch gbkennz werden ausgewertet.
-## Name fehlt (zum drÃŒber setzen)
-## vorlÃ€ufige LÃ¶sung: Link verhindern.
+$kennztyp=ZerlegungGBKennz($gbkennz); // Grundbuch-Kennzeichen aus Parameter zerlegen: $z__ 
+// 2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR
 
 // Quo Vadis?
@@ -532,15 +581,23 @@
 	// Die Filtereinstellung beeinflusst die Such-Strategie:
 	if ($gfilter == 0) {			// Keine Filterung auf "Gemeinde": groÃe Datenmenge
-
-		$trans="Grundb&uuml;cher zum Eigent&uuml;mer";
+		if ($kennztyp > 1) {
+			$trans = "Grundb&uuml;cher in ".$zgbbez." von .."; // Filter GB-Bez
+		} else {
+			$trans = "Grundb&uuml;cher von .."; // Name steht darunter
+		}
 		getGBbyPerson();
 		// Also schrittweise erst mal Stufe 2 = GrundbÃŒcher zur Person suchen.
 		if(isset($blattgml) ) {	// Es wurde nur EIN Grundbuch zu der Person gefunden.
-			$trans="1 Blatt zum Eigent&uuml;mer";
+			$trans = "1 Blatt zum Eigent&uuml;mer";
 			getFSbyGB(false); 	// Dann dazu auch gleich die Stufe 3 hinterher, aber ohne Backlink.
-		} 
-
+		}
 	} else { 						// mit Filter auf Gemeinde: weniger Daten?
-		$trans="Grundb. und Flurst. zum Eigent&uuml;mer";
+		if ($kennztyp > 1) {
+			#trans="Grundb. und Flurst. in ".$zgbbez." von .. "; // zu lang
+			$trans="Grdb. und Flst. von .. in .."; // Filter GB-Bez,
+			// darunter sind dann Name und Bezirk farblich markiert
+		} else {
+			$trans="Grundb. und Flurst. von .."; // der EigentÃŒmer steht darunter
+		}
 		getGBuFSbyPerson();		// Schritte 2+3 gleichzeitig, dabei Gemeinde-Filter auf Stufe 3
 	}
Index: trunk/mapbender/http/nav/alkisnav_adr.php
===================================================================
--- trunk/mapbender/http/nav/alkisnav_adr.php	(revision 283)
+++ trunk/mapbender/http/nav/alkisnav_adr.php	(revision 284)
@@ -5,5 +5,5 @@
 	2013-04-29	Test mit IE
 	2013-05-07  Strukturierung des Programms
-	2013-05-08  in Arbeit ...
+	2013-05-14  Feinkorrekturen.
 
 	ToDo:
Index: trunk/mapbender/http/nav/alkisnav_grd.php
===================================================================
--- trunk/mapbender/http/nav/alkisnav_grd.php	(revision 283)
+++ trunk/mapbender/http/nav/alkisnav_grd.php	(revision 284)
@@ -8,5 +8,5 @@
 	2013-04-29	Test mit IE
 	2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen
-	2013-05-08  Hervorhebung aktuelles Objekt, in Arbeit ...
+	2013-05-14  Hervorhebung aktuelles Objekt. Title "Nachweis" auch auf Icon.
 */
 $cntget = extract($_GET);
@@ -46,66 +46,4 @@
 
 END;
-
-function suchfeld($suchstring) {	// Suchstring Ausgeben UND das Eingabeformular damit belegen
-	$out="<a title='Dies als Suchbegriff setzen' href='javascript:formular_belegung(\"".$suchstring."-\")'>".$suchstring."</a>";
-	return $out;
-}
-
-function is_ne_zahl($wert) {
-	// Prueft, ob ein Wert ausschlieÃlich aus den Zahlen 0 bis 9 besteht
-	if (trim($wert, "0..9") == "") {return true;} else {return false;}
-}
-
-function ZerlegungGBKennz($gbkennz) {
-	// Das eingegebene Grundbuch-Kennzeichen auseinander nehmen (gggg-999999z-BVNR)
-	// Return: 9=Fehler, 0=Listen alle Bezirke 1=Such Bezirk-Name
-	//  2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR
-	global $debug, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr;	
-	$arr=explode("-", $gbkennz, 3);
-	$zgbbez=trim($arr[0]);
-	$zblatt=trim($arr[1]);
-	$zbvnr=trim($arr[2]);
-	if ($zgbbez == "") { // keine Eingabe
-		return 0; // Amtsgerichte oder Bezirke listen
-	} elseif ( ! is_ne_zahl($zgbbez)) { // Alphabetische Eingabe
-		return 1; // Such Bezirk-NAME
-	} elseif ($zblatt == "") {
-		return 2; // Such Bezirk-NUMMER
-	} else { // Format von BlattNr pruefen
-	//'19'      linksbÃŒndig
-	//'000019 ' gefÃŒllt 6 + blank
-	//'000019A' .. mit Zusatzbuchstabe
-	//'0300001' gefÃŒllt 7, bei Blattart 5000 "fiktives Blatt"
-		$len=strlen($zblatt);
-		if ($len > 0 AND $len < 8) {		
-			if (trim($zblatt, "0..9 ") == "") { // Normalfall: nur Zahlen (und Blank))
-				$zblattn= rtrim(ltrim($zblatt, "0"), " ");
-				$zblattz="";
-			} else { // Sonderfall: Zusatz-Buchstabe am Ende
-				$zblattn=substr($zblatt,0,$len-1);
-				$zblattz=strtoupper(substr($zblatt,$len-1,1)); 
-				if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) {
-					$zblattn= ltrim($zblattn, "0"); // ohne fuehrende Nullen
-				} else {
-					echo "<p class='err>Format 'Blatt': bis zu 6 Zahlen und ggf. ein Buchstabe</p>";	
-					return 9;
-				}
-			}
-			if ($zbvnr == "") {
-				return 3; // Such BLATT
-			} elseif (is_ne_zahl($zbvnr)) {		
-				// $zbvnr=ltrim($zbvnr,"0"); // DB-Format ist integer
-				// Vorsicht, Wert "0" ist moeglich und gueltig
-				return 4; // Such Grundstueck
-			} else {
-				echo "<p class='err>Die Buchungsstelle (BVNR) '".$zbvnr."' ist nicht numerisch</p>";
-				return 9;
-			}
-		} else {
-			echo "<p class='err>Das Grundbuch-Blatt '".$zblatt."' ist ung&uuml;ltig.</p>";
-			return 9;
-		}
-	}
-}
 
 function ListAG($liste_ag, $aktuell) {
Index: trunk/mapbender/http/nav/alkisnav.css
===================================================================
--- trunk/mapbender/http/nav/alkisnav.css	(revision 283)
+++ trunk/mapbender/http/nav/alkisnav.css	(revision 284)
@@ -40,5 +40,5 @@
 div.fs		{color: navy;		margin-left: 20px; margin-top: 0px;} /* Flurstueck */
 div.hi		{color: gray;		margin-left: 20px; margin-top: 0px;} /* Historie */
-div.hn		{color: gray;		margin-left: 20px; margin-top: 0px;} /* Historie-Nachfolger */
+div.hn, p.hn	{color: gray;		margin-left: 20px; margin-top: 0px;} /* Historie-Nachfolger */
 
 div.stu		{color: maroon; font-size: 13px;} /* Strasse - Ueberschrift */
Index: trunk/mapbender/http/nav/alkisnav_fkt.php
===================================================================
--- trunk/mapbender/http/nav/alkisnav_fkt.php	(revision 283)
+++ trunk/mapbender/http/nav/alkisnav_fkt.php	(revision 284)
@@ -2,5 +2,5 @@
 /* Version vom 
 	2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen
-	2013-05-08  Hervorhebung aktuelles Objekt, in Arbeit ...
+	2013-05-14  Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar.
 */
 
@@ -10,4 +10,66 @@
 // Hierin die Encodierung fÃŒr url und HTML.
 
+function is_ne_zahl($wert) {
+	// Prueft, ob ein Wert ausschlieÃlich aus den Zahlen 0 bis 9 besteht
+	if (trim($wert, "0..9") == "") {return true;} else {return false;}
+}
+
+function ZerlegungGBKennz($gbkennz) {
+	// Das eingegebene Grundbuch-Kennzeichen auseinander nehmen (gggg-999999z-BVNR)
+	// Return: 9=Fehler, 0=Listen alle Bezirke 1=Such Bezirk-Name
+	//  2=Such Bezirk-Nummer, 3=Such Blatt, 4=Such Buchung BVNR
+	global $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr;
+	$arr=explode("-", $gbkennz, 3);
+	$zgbbez=trim($arr[0]);
+	$zblatt=trim($arr[1]);
+	$zbvnr=trim($arr[2]);
+	if ($zgbbez == "") { // keine Eingabe
+		return 0; // Amtsgerichte oder Bezirke listen
+	} elseif ( ! is_ne_zahl($zgbbez)) { // Alphabetische Eingabe
+		return 1; // Such Bezirk-NAME
+	} elseif ($zblatt == "") {
+		return 2; // Such Bezirk-NUMMER
+	} else { // Format von BlattNr pruefen
+	//'19'      linksbÃŒndig
+	//'000019 ' gefÃŒllt 6 + blank
+	//'000019A' .. mit Zusatzbuchstabe
+	//'0300001' gefÃŒllt 7, bei Blattart 5000 "fiktives Blatt"
+		$len=strlen($zblatt);
+		if ($len > 0 AND $len < 8) {		
+			if (trim($zblatt, "0..9 ") == "") { // Normalfall: nur Zahlen (und Blank))
+				$zblattn= rtrim(ltrim($zblatt, "0"), " ");
+				$zblattz="";
+			} else { // Sonderfall: Zusatz-Buchstabe am Ende
+				$zblattn=substr($zblatt,0,$len-1);
+				$zblattz=strtoupper(substr($zblatt,$len-1,1)); 
+				if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) {
+					$zblattn= ltrim($zblattn, "0"); // ohne fuehrende Nullen
+				} else {
+					echo "<p class='err>Format 'Blatt': bis zu 6 Zahlen und ggf. ein Buchstabe</p>";	
+					return 9;
+				}
+			}
+			if ($zbvnr == "") {
+				return 3; // Such BLATT
+			} elseif (is_ne_zahl($zbvnr)) {		
+				// $zbvnr=ltrim($zbvnr,"0"); // DB-Format ist integer
+				// Vorsicht, Wert "0" ist moeglich und gueltig
+				return 4; // Such Grundstueck
+			} else {
+				echo "<p class='err>Die Buchungsstelle (BVNR) '".$zbvnr."' ist nicht numerisch</p>";
+				return 9;
+			}
+		} else {
+			echo "<p class='err>Das Grundbuch-Blatt '".$zblatt."' ist ung&uuml;ltig.</p>";
+			return 9;
+		}
+	}
+}
+
+function suchfeld($suchstring) {	// Suchstring Ausgeben UND das Eingabeformular damit belegen
+	$out="<a title='Dies als Suchbegriff setzen' href='javascript:formular_belegung(\"".$suchstring."-\")'>".$suchstring."</a>";
+	return $out;
+}
+
 function zeile_ag ($ag, $anr, $aktuell) {	// Zeile  A m t s g e r i c h t
 	global $gkz, $gemeinde, $epsg, $auskpath;
@@ -19,5 +81,5 @@
 	if ($aktuell) {$cls=" aktuell";}
 	echo "\n<div class='ga".$cls."' title='Amtsgericht'>";
-		echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> ";
+		echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='AG' title='Amtsgericht'> ";
 		echo "AG <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>";		
 		echo $agd."</a> (".$anr.")";
@@ -27,13 +89,20 @@
 
 function zeile_gbbez ($gnam, $zgbbez, $aktuell) {	// Zeile Grundbuch - B e z i r k
-	global $gkz, $gemeinde, $epsg, $auskpath;
+	// Parameter: aktuell = Bool fÃŒr farbliche Markierung der Zeile als aktuell angeklicktes Obj.
+	global $gkz, $gemeinde, $epsg, $person;
 	$gnamd=htmlentities($gnam, ENT_QUOTES, "UTF-8");
 	if ($aktuell) {$cls=" aktuell";}	
 	echo "\n<div class='gk".$cls."' title='GB-Bezirk'>";
-		echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> ";
-		echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."'>";		
-		echo "Bezirk ".$gnamd."</a> (".suchfeld($zgbbez).")";			
+	echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.' title='GB-Bezirk'> ";
+	echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez;
+	echo "&amp;gbbeznam=".urlencode($gnam);
+	if ($person != "") { // EigentÃŒmer-Suche
+		echo "&amp;person=".$person."'>";
+		echo "Bezirk ".$gnamd."</a> (".$zgbbez.")";		
+	} else {  // Grundbuch-Suche
+		echo "'>";
+		echo "Bezirk ".$gnamd."</a> (".suchfeld($zgbbez).")";		
+	}
 	echo "\n</div>";
-
 	return;
 }
@@ -47,12 +116,17 @@
 	if ($beznam != "") {$nam = $beznam." ";}
 	if ($aktuell) {$cls=" aktuell";}	
+
 	echo "\n<div class='gb".$cls."' title='".$dientxt."GB-Blatt'>";
+
+	// Icon / Nachweis
 	if ($blattgml == "") { // Link zum Nachweis nur wenn GML bekannt
-		echo "\n\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>";
+		echo "\n\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt' title='".$dientxt."GB-Blatt'>";
 	} else {
 		echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$blattgml."\")'>";
-			echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>";
+			echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt' title='Nachweis'>";
 		echo "\n\t</a> ";
 	}
+
+	// Text, Self-Link
 	echo $nam." <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg;
 	echo "&amp;blattgml=".$blattgml."&amp;gbkennz=".$bezirk."-".$blattlnk;
@@ -82,5 +156,5 @@
 	if ($aktuell) {$cls=" aktuell";}	
 	echo "\n<div class='gs".$cls."' title='".$ti."Grundst&uuml;ck'>";
-	echo "\n\t<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> ".$re;
+	echo "\n\t<img class='nwlink' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'  title='".$ti."Grundst&uuml;ck'> ".$re;
 	if ($blattkennz == "") { // ohne Link
 		echo "Buchung ".$bvnra;
@@ -100,5 +174,5 @@
 	echo "\n<div class='fs".$cls."'>";
 	echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfsnw.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>";
-		echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS'>";
+		echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Link.ico' width='16' height='16' alt='FS' title='Nachweis'>";
 	echo "\n\t</a>\n\t";			
 
@@ -129,8 +203,7 @@
 	// Link zur Auskunft Person ++ Icon differenzieren? Firma/Person
 
-// 2013-05-08 DIV statt br
 echo "<div class='pe'>
 	<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisnamstruk.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gml."\")'>
-		<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>
+		<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG' title='Nachweis'>
 	</a> 		
 	<a title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$persongml."&amp;name=".$namlnk."'>".$nnam.", ".$vnam."</a>
@@ -140,6 +213,6 @@
 
 function GB_Buchung_FS ($linelimit, $blattgbkenn) {
-// Zu einem Grundbuch-Blatt (identifiziert ÃŒber seine gml_id) suchen der 
-// Buchungen (Gruppenwechsel) und FlurstÃŒcke (Links)
+	// Zu einem Grundbuch-Blatt (identifiziert ÃŒber seine gml_id) suchen der 
+	// Buchungen (Gruppenwechsel) und FlurstÃŒcke (Links)
 	global $gemeinde, $blattgml, $epsg, $gfilter, $debug;
 
@@ -208,10 +281,11 @@
 		$zfs1++;
 	}
-	#if($zfs1 == 0) { // "nichts gefunden" erst melden, wenn auch Teil 2 (Rechte an) nichts findet
-	#} else
-	if($zfs1 >= $linelimit) {
-		echo "\n<p class='anz'>... und weitere</p>"; // +++  BlÃ€ttern einfÃŒhren?
-	} elseif($zfs1 > 1) { // ab 2
-		echo "\n<p class='anz'>".$zfs1." Flurst&uuml;cke zum Grundbuch</p>";
+	// "nichts gefunden" erst melden, wenn auch Teil 2 (Rechte an) nichts findet
+	if($zfs1 > 1) { // ab 2
+		echo "\n<p class='anz'>".$zfs1." Flurst&uuml;cke zum Grundbuch";
+		if($zfs1 >= $linelimit) {
+			echo "... und weitere"; //++ BlÃ€ttern einfÃŒhren?
+		}
+		echo "</p>";
 	}
 	if($zfs1 > 0) {echo "<hr>";} // Trennen
@@ -246,8 +320,10 @@
 	if($zfs1 + $zfs2 == 0) { 
 		echo "\n<p class='anz'>Kein Flurst&uuml;ck im berechtigten Bereich.</p>";
-	} elseif($zfs >= $linelimit) {
-		echo "\n<p class='anz'>... und weitere</p>"; // BlÃ€ttern einfÃŒhren?
 	} elseif($zfs2 > 1) { // keine Meldung "nichts gefunden - Rechte an" wenn Treffer in Teil 1
-		echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.</p>";
+		echo "\n<p class='anz'>".$zfs2." Rechte an Flurst.";
+		if($zfs2 >= $linelimit) {
+			echo "... und weitere"; // BlÃ€ttern einfÃŒhren?
+		}
+		echo "</p>";
 	}
 	return;
Index: trunk/mapbender/http/nav/alkisnav_fls.php
===================================================================
--- trunk/mapbender/http/nav/alkisnav_fls.php	(revision 283)
+++ trunk/mapbender/http/nav/alkisnav_fls.php	(revision 284)
@@ -7,5 +7,5 @@
 	2013-04-29	Test mit IE
 	2013-05-07  Strukturierung des Programms, redundanten Code in Functions zusammen fassen
-	2013-05-08  Variablen-Namen geordnet, Hervorhebung aktuelles Objekt, in Arbeit ...
+	2013-05-14  Variablen-Namen geordnet, Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar.
 */
 $cntget = extract($_GET);
@@ -41,9 +41,4 @@
 
 END;
-
-function is_ne_zahl($wert) {
-	// Prueft, ob ein Wert ausschlieÃlich aus den Zahlen 0 bis 9 besteht
-	if (trim($wert, "0..9") == "") {return true;} else {return false;}
-}
 
 function h_hinten($zahl) {
@@ -158,5 +153,5 @@
 	if ($aktuell) {$cls=" aktuell";}
 	echo "\n<div class='gk".$cls."' title='Gemarkung'>";
-	echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>";
+	echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='GKG' title='Gemarkung'>";
 	echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gkgnr."'>";		
 	echo  " ".$gnam."</a> (".$gkgnr.")";
@@ -169,5 +164,5 @@
 	if ($aktuell) {$cls=" aktuell";}
 	echo "\n<div class='fl".$cls."' title='Flur'>";
-	echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> ";
+	echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='FL' title='Flur'> ";
 	$url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gkgnr."-".$flurnr;
 	echo "<a title='Aktuelle Flurst&uuml;cke suchen' href='".$url."'>Flur ".$flurnr." </a>"; 
@@ -194,5 +189,5 @@
 	// Icon -> Buchnachweis
 	echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisfshist.php?gkz=".$gkz."&amp;gmlid=".$fs_gml."\")'>";
-		echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist'>";
+		echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='Hist' title='".$titl."'>";
 	echo "\n\t</a>";
 
@@ -232,5 +227,5 @@
 	echo "\n<div class='hn' title='Nachfolger: ".$titl."'>";			
 		echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath.$auskprog.".php?gkz=".$gkz."&amp;gmlid=".$gml."\")'>";
-			echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='FS'>";
+			echo "\n\t\t<img class='nwlink' src='ico/".$ico."' width='16' height='16' alt='FS' title='Nachweis'>";
 		echo "\n\t</a> ";		
 		echo "Flst. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$fs.$hisparm."'>".$fskenn."</a>";					
@@ -464,5 +459,5 @@
 
 function HistFlur() {
-	// Kennzeichen aus Gemarkung und FlurNr wurde eingegeben
+	// Kennzeichen aus Gemarkung und FlurNr wurde eingegeben.
 	// Die Flur nach historischen FlurstÃŒcken durchsuchen
 	global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $land, $zgemkg, $zflur;
@@ -506,6 +501,6 @@
 
 function EinFlurstueck() {
-	// FlurstÃŒckskennzeichen wurde komplett bis zum Zaehler eingegeben
-	// Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler
+	// FlurstÃŒckskennzeichen wurde komplett bis zum Zaehler (oder Nenner) eingegeben
+	// Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler suchen wenn kein Nenner eingegeben wurde.
 	global $con, $gkz, $debug, $epsg, $gemeinde, $fskennz, $zgemkg, $zflur, $zzaehler, $znenner;
 
@@ -555,5 +550,5 @@
 
 function HistFlurstueck() {
-	// Die Nachfolger-FS-Kennzeichen sollen recherchiert werden.
+	// Die Nachfolger-FS-Kennzeichen zu einem Historischen FS sollen recherchiert werden.
 	global $debug, $land, $zgemkg, $zflur, $zzaehler, $znenner;
 
@@ -561,18 +556,31 @@
 	gg_head($zgemkg, false);
 	zeile_flur($zgemkg, $zflur, true, false);
+	echo "\n<hr>";
 
 	// Body
 	// Suche ueber das Flurstueckskennzeichen, gml unbekannt
-	$fldlist=" AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, ";
-	$whcl.="WHERE flurstueckskennzeichen= $1 ";
-	$sql ="SELECT 'a'".$fldlist."null as nachf FROM ax_flurstueck ".$whcl;
-	$sql.="UNION SELECT 'h'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl;
-	$sql.="UNION SELECT 'o'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl;
 	$fskzwhere =$land.$zgemkg; // Flurst-Kennz. f. Where
 	$fskzwhere.=str_pad($zflur, 3, "0", $STR_PAD_LEFT);
 	$fskzwhere.=str_pad($zzaehler, 5, "0", $STR_PAD_LEFT);
-	if ($znenner == "") {$fskzwhere.="______";}
-	else {$fskzwhere.=str_pad($znenner, 4, "0", $STR_PAD_LEFT)."__";}
+	if ($znenner == "") {	// Wenn kein Nenner angegeben wurde, 
+		//wird mit Wildcard und like nach allen Nennern gesucht.
+		$fskzwhere.="____\_\_";	// fÃŒr like 
+		// Das Wildcard-Zeichen "_" ist dummerweise mit FÃŒllzeichen im Feldinhalt identisch
+		$whereop=" like ";
+	} else { // Ein Nenner wurde angegeben
+		$fskzwhere.=str_pad($znenner, 4, "0", $STR_PAD_LEFT)."__";
+		$whereop=" = ";
+	}
+	$whcl.="WHERE flurstueckskennzeichen ".$whereop." $1 ";
+	
+	$fldlist=" AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner, ";
+
+	// NICHT in aktuell suchen wenn explizit historisch gesucht wird
+	#$sql ="SELECT 'a'".$fldlist."null as nachf FROM ax_flurstueck ".$whcl." UNION ";
+	$sql ="SELECT 'h'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueck ".$whcl;
+	$sql.="UNION SELECT 'o'".$fldlist."nachfolgerflurstueckskennzeichen as nachf FROM ax_historischesflurstueckohneraumbezug ".$whcl;
+
 	$v=array($fskzwhere);
+	#echo "<p class='dbg'>SQL=".$sql."<br>WHERE=".$fskzwhere."</p>";  // ++++ TEST
 
 	$res=pg_prepare("", $sql);
@@ -581,5 +589,5 @@
 	$zfs=0;
 
-	while($row = pg_fetch_array($res)) {
+	while($row = pg_fetch_array($res)) { // Schleife Hist-FS
 		$ftyp=$row["ftyp"];
 		$fs_gml=$row["gml_id"];
@@ -589,46 +597,54 @@
 		$nachf=$row["nachf"];
 		if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];}
-		if ($ftyp == "a") { // als aktuelles FS gefunden, das "h" war also unnÃ¶tig!
-			$koor=flurstueckskoordinaten($fs_gml);
-			echo "\n<p>Flurst&uuml;ck ".$fskenn." ist aktuell, nicht historisch</p>";	
-			zeile_flurstueck ($fs_gml, $fskenn, $koor["x"], $koor["y"], $gknr, $flur, true);
-		} else { // Historisches FS gefunden (h oder o)
-			zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur, true);
-			if ($nachf == "") {
-				echo "\n<p class='err'>keine Nachfolger</p>";	
-			} else {
-				echo "\n<p>Nachfolger-Flurst&uuml;cke:</p>";
-				// Direkte Nachfolger ermitteln. In $nachf steht ein Array von FS-Kennzeichen.
-				// Von den einzelnen Kennz. ist unbekannt, ob diese noch aktuell sind 
-				// oder auch schon wieder historisch.
-				// Nachfolger in DB suchen um den Status aktuell/historisch zu ermitteln
-				$stri=trim($nachf, "{}");
-				$stri="'".str_replace(",", "','", $stri)."'";
-				$whcln.="WHERE flurstueckskennzeichen IN ( ".$stri." ) ";
-				$nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$whcln;
-				$nasql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$whcln;
-				$nasql.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$whcln;
-				$v=array();
-				$nares=pg_prepare("", $nasql);
-				$nares=pg_execute("", $v);
-				if (!$nares) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";}
-				$zfsn=0;
-				while($narow = pg_fetch_array($nares)) {
-					$naftyp=$narow["ftyp"];
-					$nagml=$narow["gml_id"];
-					$nagknr=$narow["gemarkungsnummer"];
-					$naflur=$narow["flurnummer"];
-					$nafskenn=$narow["zaehler"];
-					if ($narow["nenner"] != "") {$nafskenn.="/".$narow["nenner"];}
-					zeile_nachf_fs ($nagml, $nagknr, $naflur, $nafskenn, $naftyp);
-					$zfsn++;
-				}
-				if ($zfsn == 0) {
-					echo "\n<p class='anz'>keine Nachfolger gefunden</p>";
-				} else { // if($zfsn > 1)
-					echo "\n<p class='anz'>".$zfsn." Nachfolger-Flurst&uuml;cke</p>";
-				}
+
+		#if ($ftyp == "a") { // als aktuelles FS gefunden, das "h" war also unnÃ¶tig!
+		#	$koor=flurstueckskoordinaten($fs_gml);
+		#	echo "\n<p>Flurst&uuml;ck ".$fskenn." ist aktuell, nicht historisch</p>";	
+		#	zeile_flurstueck ($fs_gml, $fskenn, $koor["x"], $koor["y"], $gknr, $flur, true);
+		#} else { // Historisches FS gefunden (h oder o)
+
+		zeile_hist_fs($fs_gml, $fskenn, $ftyp, $gknr, $flur, true);
+		if ($nachf == "") {
+			echo "\n<p class='anz'>keine Nachfolger</p>";	
+		} else {
+			echo "\n<p class='hn'>Nachfolger-Flurst&uuml;cke:</p>";
+			// Direkte Nachfolger ermitteln. In $nachf steht ein Array von FS-Kennzeichen.
+			// Von den einzelnen Kennz. ist unbekannt, ob diese noch aktuell sind 
+			// oder auch schon wieder historisch.
+			// Nachfolger in DB suchen um den Status aktuell/historisch zu ermitteln
+			$stri=trim($nachf, "{}");
+			$stri="'".str_replace(",", "','", $stri)."'";
+
+			$nawhcl="WHERE flurstueckskennzeichen IN ( ".$stri." ) ";
+
+			$nasql ="SELECT 'a' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_flurstueck ".$nawhcl;
+			$nasql.="UNION SELECT 'h' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueck ".$nawhcl;
+			$nasql.="UNION SELECT 'o' AS ftyp, gml_id, gemarkungsnummer, flurnummer, zaehler, nenner FROM ax_historischesflurstueckohneraumbezug ".$nawhcl;
+
+			$v=array();
+			$nares=pg_prepare("", $nasql);
+			$nares=pg_execute("", $v);
+			if (!$nares) {echo "\n<p class='err'>Fehler bei Nachfolger.</p>";}
+			$zfsn=0;
+			// inner Body
+			while($narow = pg_fetch_array($nares)) {
+				$naftyp=$narow["ftyp"];
+				$nagml=$narow["gml_id"];
+				$nagknr=$narow["gemarkungsnummer"];
+				$naflur=$narow["flurnummer"];
+				$nafskenn=$narow["zaehler"];
+				if ($narow["nenner"] != "") {$nafskenn.="/".$narow["nenner"];}
+				zeile_nachf_fs ($nagml, $nagknr, $naflur, $nafskenn, $naftyp);
+				$zfsn++;
 			}
-		}
+			// inner Footer
+			if ($zfsn == 0) {
+				echo "\n<p class='anz'>keine Nachfolger</p>";
+			} elseif ($zfsn > 1) {
+				echo "\n<p class='anz'>".$zfsn." Nachfolger-Flst.</p>";
+			}
+			echo "\n<hr>";
+		}
+		#} // aktuell ...
 		$zfs++;
 	}
Index: trunk/mapbender/http/nav/alkisnav_fls.htm
===================================================================
--- trunk/mapbender/http/nav/alkisnav_fls.htm	(revision 283)
+++ trunk/mapbender/http/nav/alkisnav_fls.htm	(revision 284)
@@ -37,5 +37,5 @@
 <ul>
 	<script type="text/javascript" language="JavaScript">
-		document.writeln("<li><a target='_self' href='alkisnav_eig.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Adresse</a></li>");
+		document.writeln("<li><a target='_self' href='alkisnav_adr.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Adresse</a></li>");
 		document.writeln("<li><a target='_self' href='alkisnav_eig.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Name</a></li>");
 		document.writeln("<li class='aktiveTab'>Flurst&uuml;ck</li>");
