Index: trunk/data/mapbender/http/nav/alkisnav_eig.php
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_eig.php	(revision 85)
+++ trunk/data/mapbender/http/nav/alkisnav_eig.php	(revision 86)
@@ -1,4 +1,7 @@
 <?php
-// Version vom 13.01.2011 
+/* Version vom 
+	13.01.2011 
+	11.04.2011 epsg in Link, transform nur wenn notwendig
+*/
 import_request_variables("PG");
 include("../../conf/alkisnav_conf.php");
@@ -26,5 +29,5 @@
 // Eigentuemer nach Name(-nsanfang)
 // ===============================
-	global $gkz, $gemeinde, $con, $name, $person, $gb;
+	global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb;
 	$linelimit=120;
 	if(preg_match("/\*/",$name)){
@@ -51,5 +54,5 @@
 		// +++ Icon mit Link auf Person-Auskunft, ÃŒber gml_id	
 		// Zur Zeit siehe unten: erst nach Auswahl einer einzelnen Person
-		echo "\n<a class='nam' title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;person=".$gml."&amp;name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>";
+		echo "\n<a class='nam' title='Person' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$gml."&amp;name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>";
 		$cnt++;
 	}
@@ -68,10 +71,10 @@
 // GrundbÃŒcher zur gewÃ€hlten Person
 // ===================================
-	global $gkz, $gemeinde, $con, $name, $person, $gb, $auskpath;
+	global $gkz, $gemeinde, $epsg, $con, $name, $person, $gb, $auskpath;
 	$linelimit=120;
 	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<a class='back' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;name=".$name."'>\"".$name."\"</a>";
+			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>";	
 	}
@@ -133,5 +136,5 @@
 				echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>";
 			echo "\n\t</a> ";		
-			echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gb=".$gml."&amp;person=".$person."'> Blatt ".$nr."&nbsp;</a>";
+			echo "\n\t".$beznam."<a title='Grundbuch' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gb=".$gml."&amp;person=".$person."'> Blatt ".$nr."&nbsp;</a>";
 		echo "\n</div>";
 		$cnt++;
@@ -157,5 +160,5 @@
 		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;person=".$person."'>";
+			echo "\n\t<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;person=".$person."'>";
 			echo "zur&uuml;ck</a><br>";		
 		echo "</div>";
@@ -169,6 +172,11 @@
 	// Blatt <vbg/istBestandteilVon<  Buchungsstelle <vfb/istGebucht< Flurstck.
 	$sql ="SELECT s.laufendenummer AS lfd, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ";
-	$sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
-	$sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";
+	if($epsg == "25832") { // Transform nicht notwendig
+		$sql.="x(st_centroid(f.wkb_geometry)) AS x, ";
+		$sql.="y(st_centroid(f.wkb_geometry)) AS y, ";
+	} else {  
+		$sql.="x(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
+		$sql.="y(st_transform(st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";			
+	}
 	$sql.="g.gemarkungsnummer, g.bezeichnung ";
    $sql.="FROM alkis_beziehungen vbg ";
@@ -236,7 +244,7 @@
 if(isset($epsg)) {
 	if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";} // aus MB
-	if (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);}
+	$epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);	
 } else {
-	if ($debug >= 2) {echo "<p class='err'>kein EPSG gesetzt</p>";}	
+	if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}	
 	$epsg=$gui_epsg; // aus Conf
 }
@@ -259,5 +267,4 @@
 	echo "\n<p>Parameter?</p>"; // Programmfehler
 }
-
 ?>
 
Index: trunk/data/mapbender/http/nav/alkisnav_eig.htm
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_eig.htm	(revision 85)
+++ trunk/data/mapbender/http/nav/alkisnav_eig.htm	(revision 86)
@@ -19,10 +19,18 @@
 		var gem = "0";
 		if(arr[0] == "gemeinde") {gem = arr[1];}
-		// aktueller EPSG-Code der GUI  ++ funktioniert noch nicht ++
-		var ind = parent.parent.parent.getMapObjIndexByName("mapframe1");
-		epsg = parent.parent.parent.mb_mapObj[ind].epsg;
+		// aktueller EPSG-Code
+		function sendGuiEpsg () {
+			var ind = parent.parent.getMapObjIndexByName("mapframe1");
+			var epsg = parent.parent.mb_mapObj[ind].getSRS();
+			document.forms[0].epsg.value = epsg;
+		}
+		function validate(){
+			sendGuiEpsg();
+			document.forms[0].gkz.value = gkz;
+			document.forms[0].gemeinde.value = gem;
+		}
 	</script>
 </head>
-<body>
+<body onload="javascript:validate();">
 
 <div id='tabs'>
@@ -38,12 +46,10 @@
 
 <form class='nav' name='EigGazetteerFrame' onsubmit='return validate()' target='EigResultFrame' action='alkisnav_eig.php'>
-<script type="text/javascript" language="JavaScript">
-		document.writeln("<input name='gkz' type='hidden' value='" + gkz + "'>");
-		document.writeln("<input name='gemeinde' type='hidden' value='" + gem + "'>");
-		document.writeln("<input name='epsg' type='hidden' value='" + epsg + "'>");
-</script>
-<input class='textfield' name='name' type='text' size='22' title='Eigent&uuml;mername (Anfang)'>
-<input class='sbutton' type='submit' value='ok'>
-<br>
+	<input name='gkz' type='hidden'>
+	<input name='gemeinde' type='hidden'>
+	<input name='epsg' type='hidden'>
+	<input class='textfield' name='name' type='text' size='22' title='Eigent&uuml;mername (Anfang)'>
+	<input class='sbutton' type='submit' value='ok'>
+	<br>
 </form>
 
Index: trunk/data/mapbender/http/nav/alkisnav_adr.php
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_adr.php	(revision 85)
+++ trunk/data/mapbender/http/nav/alkisnav_adr.php	(revision 86)
@@ -4,4 +4,5 @@
 	25.03.2011: parameter &gemeinde= auch als Liste moeglich
 	z.B. Wasserverband zustaendig fuer: &gemeinde=12,20,24,28,32
+	11.04.2011 epsg in Link, transform nur wenn notwendig
 */
 import_request_variables("PG");
@@ -26,5 +27,5 @@
 function suchStrName() {
 	// Strassen nach Name(-nsanfang)
-	global $con, $street, $scalestr, $str_schl, $gkz, $gemeinde, $gfilter, $debug;
+	global $con, $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug;
 	$linelimit=120;  // -> in die Conf?
 	preg_match("/^(\D+)(\d*)(\D*)/",$street,$matches); # 4 matches name/nr/zusatz echo "match: ".$matches[1].",".$matches[2].",".$matches[3];
@@ -40,9 +41,4 @@
 	$sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde ";
 	$sql.="WHERE k.bezeichnung ILIKE $1 ";
- 
-// 	if($gemeinde > 0) { // Filter Gemeinde?
-//		$sql.="AND k.gemeinde=".$gemeinde." ";
-//	}
-
 	switch ($gfilter) {
 		case 1: // Einzelwert
@@ -55,5 +51,4 @@
 			break;
 	}
-
 	$sql.="ORDER BY k.bezeichnung, g.bezeichnung, k.lage LIMIT $2 ;";
  	$v=array($match,$linelimit);
@@ -69,10 +64,8 @@
 		echo "\n\t<div class='stl' title='Stra&szlig;enschl&uuml;ssel ".$skey."'>";
 			if (trim($skey, "0..9") == "") { // Integer
-				echo "<a class='stl' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;str_schl=".$gkey."'>".$sname."</a>";
+				echo "<a class='stl' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$gkey."'>".$sname."</a>";
 			} else { // Klassifizierung?
 				echo $sname; // nicht brauchbar fuer ax_lagebezeichnungmithausnummer.lage (Integer)
-			}
-			//if ($gemeinde == "") {echo " in ".$gemname;}
-			
+			}	
 			switch ($gfilter) {
 				case 0: // Kein Filter
@@ -85,5 +78,4 @@
 					break;
 			}			
-			
 		echo "</div>";
 		$cnt++;
@@ -101,5 +93,5 @@
 function suchStrKey() {
 	// Strassen nach Strassen-Schluessel
-	global $con, $street, $scalestr, $str_schl, $gkz, $gemeinde, $gfilter, $debug;
+	global $con, $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug;
 	$linelimit=50;
 	if(preg_match("/\*/",$street)) {
@@ -114,8 +106,4 @@
 	$sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde ";
 	$sql.="WHERE k.lage LIKE $1 ";
-
-//	if($gemeinde > 0) { // Filter Gemeinde?
-//		$sql.="AND k.gemeinde=".$gemeinde." ";
-//	}
 
 	switch ($gfilter) {
@@ -142,8 +130,6 @@
 		$skey=$row["lage"];
 		echo "\n\t<div class='stl' title='Stra&szlig;enschl&uuml;ssel ".$skey."'>";
-			echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;str_schl=".$gkey."' title='".$gemname."'>".$sname;
+			echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$gkey."' title='".$gemname."'>".$sname;
 			echo "</a>";
-
-//			if ($gemeinde == "") {echo " in ".$gemname;}
 
 			switch ($gfilter) {
@@ -175,5 +161,5 @@
 function suchHausZurStr($showParent){
 	// Haeuser zu einer Strasse
-	global $con, $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $gfilter, $debug;
+	global $con, $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $debug;
 	// Strasse zum Strassenschluessel
 	$sql ="SELECT g.bezeichnung AS gemname, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage ";
@@ -198,6 +184,12 @@
 			// ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer
 			$sqlko ="SELECT ";		
-			$sqlko.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
-			$sqlko.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y ";
+
+			if($epsg == "25832") { // Transform nicht notwendig
+				$sqlko.="x(st_Centroid(f.wkb_geometry)) AS x, ";
+				$sqlko.="y(st_Centroid(f.wkb_geometry)) AS y ";
+			} else {  
+				$sqlko.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
+				$sqlko.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y ";			
+			}
 			$sqlko.="FROM ax_lagebezeichnungohnehausnummer o ";
 			$sqlko.="JOIN alkis_beziehungen v ON o.gml_id=v.beziehung_zu "; 
@@ -222,5 +214,5 @@
 					echo "javascript:parent.parent.hideHighlight();";
 					echo "\n\t\tparent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalestr.");";
-					echo "\n\t\tdocument.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;str_schl=".$str_schl."\"' ";
+					echo "\n\t\tdocument.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;str_schl=".$str_schl."\"' ";
 					echo "\n\t\tonmouseover='parent.parent.showHighlight(" .$x. "," .$y. ")' ";
 					echo "\n\t\tonmouseout='parent.parent.hideHighlight()'";
@@ -230,6 +222,4 @@
 			}
 
-//			if ($gemeinde == "") {echo " in ".$gemname;}
-			
 			switch ($gfilter) {
 				case 0: // Kein Filter
@@ -242,5 +232,4 @@
 					break;
 			}			
-			
 			echo "\n</div>";
 		}
@@ -248,6 +237,13 @@
 		// Haeuser zum Strassenschluessel
 		$sql ="SELECT replace (h.hausnummer, ' ','') AS hsnr, ";
-		$sql.="x(st_transform(st_Centroid(g.wkb_geometry), ".$epsg.")) AS x, ";
-		$sql.="y(st_transform(st_Centroid(g.wkb_geometry), ".$epsg.")) AS y ";
+		
+		if($epsg == "25832") { // Transform nicht notwendig
+			$sql.="x(st_Centroid(g.wkb_geometry)) AS x, ";
+			$sql.="y(st_Centroid(g.wkb_geometry)) AS y ";		
+		}
+		else {  
+			$sql.="x(st_transform(st_Centroid(g.wkb_geometry), ".$epsg.")) AS x, ";
+			$sql.="y(st_transform(st_Centroid(g.wkb_geometry), ".$epsg.")) AS y ";		
+		}		
 		$sql.="FROM ax_lagebezeichnungmithausnummer h ";
 		$sql.="JOIN alkis_beziehungen v ON h.gml_id=v.beziehung_zu ";
@@ -297,7 +293,7 @@
 if(isset($epsg)) {
 	if ($debug >= 2) {echo "\n<p>aktueller EPSG='".$epsg."'</p>";} // aus MB
-	if (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);}
+	$epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);	
 } else {
-	if ($debug >= 2) {echo "\n<p class='err'>kein EPSG gesetzt</p>";}	
+	if ($debug >= 1) {echo "\n<p class='err'>kein EPSG gesetzt</p>";}	
 	$epsg=$gui_epsg; // aus Conf
 }
@@ -313,5 +309,5 @@
 }
 if (isset($str_schl)) { // aus Link
-	if ($debug >= 2) {echo "\n<p>Link Strassenschluesel '".$str_schl."'</p>";}
+	if ($debug >= 2) {echo "\n<p>Link Strassenschluessel '".$str_schl."'</p>";}
 	suchHausZurStr(true);
 } elseif(isset($street)) { // Eingabe in Form
Index: trunk/data/mapbender/http/nav/alkisnav_adr.htm
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_adr.htm	(revision 85)
+++ trunk/data/mapbender/http/nav/alkisnav_adr.htm	(revision 86)
@@ -19,10 +19,18 @@
 		var gem = "0";
 		if(arr[0] == "gemeinde") {gem = arr[1];}
-		// aktueller EPSG-Code der GUI  ++ funktioniert noch nicht ++
-		var ind = parent.parent.parent.getMapObjIndexByName("mapframe1");
-		epsg = parent.parent.parent.mb_mapObj[ind].epsg;
+		// aktueller EPSG-Code
+		function sendGuiEpsg () {
+			var ind = parent.parent.getMapObjIndexByName("mapframe1");
+			var epsg = parent.parent.mb_mapObj[ind].getSRS();
+			document.forms[0].epsg.value = epsg;
+		}
+		function validate(){
+			sendGuiEpsg();
+			document.forms[0].gkz.value = gkz;
+			document.forms[0].gemeinde.value = gem;
+		}
 	</script>
 </head>
-<body>
+<body onload="javascript:validate();">
 
 <div id='tabs'>
@@ -38,39 +46,37 @@
 
 <form class='nav' name='AdrGazetteerFrame' onsubmit='return validate()' target='AdrResultFrame' action='alkisnav_adr.php'>
-<script type="text/javascript" language="JavaScript">
-		document.writeln("<input name='gkz' type='hidden' value='" + gkz + "'>");
-		document.writeln("<input name='gemeinde' type='hidden' value='" + gem + "'>");
-		document.writeln("<input name='epsg' type='hidden' value='" + epsg + "'>");
-</script>
-<input class='textfield' name='street' type='text' size='22' title='Stra&szlig;enname (Anfang)'>
-<input class='sbutton' type='submit' value='ok'>
-<br>
-<span class="letter" onclick="document.forms[0].street.value='A'; document.forms[0].submit(); document.forms[0].street.value='';">A</span>
-<span class="letter" onclick="document.forms[0].street.value='B'; document.forms[0].submit(); document.forms[0].street.value='';">B</span>
-<span class="letter" onclick="document.forms[0].street.value='C'; document.forms[0].submit(); document.forms[0].street.value='';">C</span>
-<span class="letter" onclick="document.forms[0].street.value='D'; document.forms[0].submit(); document.forms[0].street.value='';">D</span>
-<span class="letter" onclick="document.forms[0].street.value='E'; document.forms[0].submit(); document.forms[0].street.value='';">E</span>
-<span class="letter" onclick="document.forms[0].street.value='F'; document.forms[0].submit(); document.forms[0].street.value='';">F</span>
-<span class="letter" onclick="document.forms[0].street.value='G'; document.forms[0].submit(); document.forms[0].street.value='';">G</span>
-<span class="letter" onclick="document.forms[0].street.value='H'; document.forms[0].submit(); document.forms[0].street.value='';">H</span>
-<span class="letter" onclick="document.forms[0].street.value='I'; document.forms[0].submit(); document.forms[0].street.value='';">I</span>
-<span class="letter" onclick="document.forms[0].street.value='J'; document.forms[0].submit(); document.forms[0].street.value='';">J</span>
-<span class="letter" onclick="document.forms[0].street.value='K'; document.forms[0].submit(); document.forms[0].street.value='';">K</span>
-<span class="letter" onclick="document.forms[0].street.value='L'; document.forms[0].submit(); document.forms[0].street.value='';">L</span>
-<span class="letter" onclick="document.forms[0].street.value='M'; document.forms[0].submit(); document.forms[0].street.value='';">M</span>
-<span class="letter" onclick="document.forms[0].street.value='N'; document.forms[0].submit(); document.forms[0].street.value='';">N</span>
-<br>
-<span class="letter" onclick="document.forms[0].street.value='O'; document.forms[0].submit(); document.forms[0].street.value='';">O</span>
-<span class="letter" onclick="document.forms[0].street.value='P'; document.forms[0].submit(); document.forms[0].street.value='';">P</span>
-<span class="letter" onclick="document.forms[0].street.value='Q'; document.forms[0].submit(); document.forms[0].street.value='';">Q</span>
-<span class="letter" onclick="document.forms[0].street.value='R'; document.forms[0].submit(); document.forms[0].street.value='';">R</span>
-<span class="letter" onclick="document.forms[0].street.value='S'; document.forms[0].submit(); document.forms[0].street.value='';">S</span>
-<span class="letter" onclick="document.forms[0].street.value='T'; document.forms[0].submit(); document.forms[0].street.value='';">T</span>
-<span class="letter" onclick="document.forms[0].street.value='U'; document.forms[0].submit(); document.forms[0].street.value='';">U</span>
-<span class="letter" onclick="document.forms[0].street.value='V'; document.forms[0].submit(); document.forms[0].street.value='';">V</span>
-<span class="letter" onclick="document.forms[0].street.value='W'; document.forms[0].submit(); document.forms[0].street.value='';">W</span>
-<span class="letter" onclick="document.forms[0].street.value='X'; document.forms[0].submit(); document.forms[0].street.value='';">X</span>
-<span class="letter" onclick="document.forms[0].street.value='Y'; document.forms[0].submit(); document.forms[0].street.value='';">Y</span>
-<span class="letter" onclick="document.forms[0].street.value='Z'; document.forms[0].submit(); document.forms[0].street.value='';">Z</span>
+	<input name='gkz' type='hidden'>
+	<input name='gemeinde' type='hidden' >
+	<input name='epsg' type='hidden'>
+	<input class='textfield' name='street' type='text' size='22' title='Stra&szlig;enname (Anfang)'>
+	<input class='sbutton' type='submit' value='ok'>
+	<br>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='A'; document.forms[0].submit();">A</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='B'; document.forms[0].submit();">B</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='C'; document.forms[0].submit();">C</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='D'; document.forms[0].submit();">D</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='E'; document.forms[0].submit();">E</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='F'; document.forms[0].submit();">F</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='G'; document.forms[0].submit();">G</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='H'; document.forms[0].submit();">H</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='I'; document.forms[0].submit();">I</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='J'; document.forms[0].submit();">J</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='K'; document.forms[0].submit();">K</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='L'; document.forms[0].submit();">L</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='M'; document.forms[0].submit();">M</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='N'; document.forms[0].submit();">N</span>
+	<br>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='O'; document.forms[0].submit();">O</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='P'; document.forms[0].submit();">P</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='Q'; document.forms[0].submit();">Q</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='R'; document.forms[0].submit();">R</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='S'; document.forms[0].submit();">S</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='T'; document.forms[0].submit();">T</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='U'; document.forms[0].submit();">U</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='V'; document.forms[0].submit();">V</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='W'; document.forms[0].submit();">W</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='X'; document.forms[0].submit();">X</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='Y'; document.forms[0].submit();">Y</span>
+	<span class="letter" onclick="sendGuiEpsg(); document.forms[0].street.value='Z'; document.forms[0].submit();">Z</span>
 </form>
 
Index: trunk/data/mapbender/http/nav/alkisnav_grd.php
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_grd.php	(revision 85)
+++ trunk/data/mapbender/http/nav/alkisnav_grd.php	(revision 86)
@@ -1,4 +1,8 @@
 <?php
-// Version vom 13.01.2011  
+/* Version vom
+	14.01.2011
+	12.04.2011 epsg in Link, transform nur wenn notwendig, 
+	neue Suchstrategie bei Leer-Eingabe (Liste Amtsgerichte), Icon GB-Bez.
+*/
 import_request_variables("PG");
 include("../../conf/alkisnav_conf.php");
@@ -27,5 +31,5 @@
 function ZerlegungGBKennz($gbkennz) {
 	// Das eingegebene Grundbuch-Kennzeichen auseinander nehmen (gggg-999999z-BVNR)
-	// Return: 0=Fehler, 1=Such Bezirk-Name oder Listen alle Bezirke
+	// Return: 9=Fehler, 0=Listen alle Bezirke 1=Such Bezirk-Name
 	//         2=Such Bezirk-Nummer $zgbbez, 3=Such Blatt $zblatt, 4=Such BVNR $zbvnr
 	global $debug, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr;	
@@ -35,5 +39,5 @@
 	$zbvnr=trim($arr[2]);
 	if ($zgbbez == "") { // keine Eingabe
-		return 1; // alle Bezirke listen
+		return 0; // Amtsgerichte oder Bezirke listen
 	} elseif ( ! is_ne_zahl($zgbbez)) { // Alphabetische Eingabe
 		return 1; // Such Bezirk-NAME
@@ -49,10 +53,10 @@
 				$zblattn=substr($zblatt,0,$len-1);
 				$zblattz=strtoupper(substr($zblatt,$len-1,1)); 
-				if ( (trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) {
+				if ((trim($zblattn, "0..9") == "") and (trim($zblattz, "A..Z") == "")) {
 					$zblatt=$zblattn.$zblattz;
 					$zblattn= ltrim($zblattn, "0"); // ohne fuehrende Nullen
 				} else {
 					echo "<p class='err>Format 'Blatt': bis zu 6 Zahlen und ggf. ein Buchstabe</p>";	
-					return 0;
+					return 9;
 				}
 			}
@@ -65,11 +69,83 @@
 			} else {
 				echo "<p class='err>Die Buchungsstelle (BVNR) '".$zbvnr."' ist nicht numerisch</p>";
-				return 0;
+				return 9;
 			}
 		} else {
 			echo "<p class='err>Das Grundbuch-Blatt '".$zblatt."' ist ung&uuml;ltig.</p>";
-			return 0;
-		}
-	}
+			return 9;
+		}
+	}
+}
+
+function ListAG($liste_ag) {
+	// Amtsgerichte (Grundbuch) auflisten, dazu als Filter eine AG-Liste aus conf
+	global $con, $gkz, $gemeinde, $epsg, $debug, $gbkennz;
+	$linelimit=40;
+	$sql ="SELECT a.stelle, a.bezeichnung AS ag FROM ax_dienststelle a ";
+	$sql.="WHERE a.stelle IN (".$liste_ag.") AND a.stellenart = 1000 "; // Amtsgerichte aus Liste
+	$sql.="ORDER BY a.bezeichnung LIMIT $1 ;";
+	$res = pg_prepare("", $sql);
+	$res = pg_execute("", array($linelimit));
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Amtsgerichte</p>";
+		if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+		return 0;
+	}
+	$cnt = 0;
+	while($row = pg_fetch_array($res)) { // Loop AG 
+		$anr=$row["stelle"];
+		$ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8");		
+		echo "\n<div class='ga' title='Amtsgricht'>";
+			echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> ";
+			echo "AG <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>";		
+				echo $ag."</a> (".$anr.")";
+		echo "\n</div>";
+		$cnt++;
+	}
+	if($cnt == 0){ // falsch configuriert!
+		echo "\n<p class='err'>Kein Amtsgericht aus Liste ".$$liste_ag.".</p>";
+	} elseif ($cnt >= $linelimit) {
+		echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>";
+	}
+	return 0;
+}
+
+function ListGBBez($liste_ag, $mit_ag) {
+	// Grundbuch-Bezirke auflisten.
+	global $con, $gkz, $gemeinde, $epsg, $debug, $gbkennz;
+	$linelimit=70;
+	$sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g ";
+	$sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle ";
+	$sql.="WHERE a.stelle IN (".$liste_ag.") AND a.stellenart = 1000 "; // Amtsgericht aus Liste
+	$sql.="ORDER BY g.bezeichnung LIMIT $1 ;";
+	$res = pg_prepare("", $sql);
+	$res = pg_execute("", array($linelimit));
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Grundbuch-Bezirk</p>";
+		if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+		return 0;
+	}
+	$cnt = 0;
+	while($row = pg_fetch_array($res)) { // Loop  B E Z I R K
+		$gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+		$gnr=$row["bezirk"];
+		$ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8");
+		$anr=$row["stelle"];
+		echo "\n<div class='gk' title='GB-Bezirk'>";
+			echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Gemkg'> ";
+			echo "Bezirk <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$gnr."'>";		
+				echo $gnam."</a> (".$gnr.")";
+				if ($mit_ag) {
+					echo " AG <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>".$ag."</a>";
+				}
+		echo "\n</div>";
+		$cnt++;
+	}
+	if($cnt == 0){ // falsch configuriert
+		echo "\n<p class='err'>Kein Grundbuchbezirk zu den Amtsgerichten ".$liste_ag.".</p>";
+	} elseif ($cnt >= $linelimit) {
+		echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>";
+	}
+	return 0;
 }
 
@@ -78,5 +154,5 @@
 	global $con, $gkz, $gemeinde, $debug, $gbkennz;
 	$linelimit=50;
-	$sql ="SELECT a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g ";
+	$sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezirk, g.bezeichnung FROM ax_buchungsblattbezirk g ";
 	$sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle ";
 	$sql.="WHERE g.bezeichnung ILIKE $1 "; //	"AND a.stellenart=1000 " // Amtsgericht
@@ -100,14 +176,15 @@
 	}
 	$cnt = 0;
-	// Loop  B E Z I R K	 
-	// +++ Sortierung und Gruppierung nach Amtsgericht ??
+	// Loop  B E Z I R K
 	while($row = pg_fetch_array($res)) {
 		$gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
 		$gnr=$row["bezirk"];
 		$ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8");		
+		$anr=$row["stelle"];
 		echo "\n<div class='gk' title='GB-Bezirk'>";
-			echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Gemkg'> ";
-			echo "<a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbkennz=".$gnr."'>";		
-				echo $gnam."</a> (".$gnr.") AG ".$ag;
+			echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Gemkg'> ";
+			echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$gnr."'>";		
+				echo $gnam."</a> (".$gnr.")";
+				echo " AG <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>".$ag."</a>";
 		echo "\n</div>";
 		$cnt++;
@@ -125,5 +202,5 @@
 function EinBezirk($showParent) {
 	// Kennzeichen bestehend nur aus GB-Bezirk-SchlÃŒssel wurde eingegeben
-	global $con, $gkz, $gemeinde, $debug, $zgbbez, $auskpath;
+	global $con, $gkz, $gemeinde, $epsg, $debug, $zgbbez, $auskpath;
 	$linelimit=200; // max. Blatt je Bezirk
 	// Dies linelimit ist nicht ausreichend fuer alle Blaetter eines Bezirks, aber ...
@@ -131,5 +208,5 @@
 	// Es nutzt also nichts, hier Tausende Nummern aufzulisten.
 	if ($showParent) {
-		$sql ="SELECT a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g ";
+		$sql ="SELECT a.stelle, a.bezeichnung AS ag, g.bezeichnung FROM ax_buchungsblattbezirk g ";
 		$sql.="JOIN ax_dienststelle a ON g.stelle=a.stelle ";
 		$sql.="WHERE g.bezirk= $1 ;";
@@ -146,18 +223,27 @@
 			$gnr=$row["bezirk"];
 			$ag=htmlentities($row["ag"], ENT_QUOTES, "UTF-8");	
+			$anr=$row["stelle"];
 			$zgmk++;
 		}
 		if ($zgmk == 0) {
 			echo "\n<div class='gk' title='Grundbuchbezirk'>";
-				echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Bez.'>";
+				echo "\n\t\t<p class='err'><img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'>";
 					echo  " Bezirk ".$zgbbez." ist unbekannt.</p>";
 			echo "\n</div>";
 			return;
 		}
-		// > 1 auch mÃ¶glich?
+
+		// AG-Knoten davor setzen
+		echo "\n<div class='ga' title='Amtsgricht'>";
+			echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Amtsgericht'> ";
+			echo "AG <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>";		
+				echo $ag."</a> (".$anr.")";
+		echo "\n</div>";
 		echo "\n<div class='gk' title='GB-Bezirk'>";
-			echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Bez.'> ";
-			echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbkennz=".$zgbbez."'>";		
-			echo $gnam."</a> (".$zgbbez.") AG ".$ag;
+			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 $gnam."</a> (".$zgbbez.")";
+			// alternativ AG-Link hinter dem Bezirk
+		//	echo " des AG <a href='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;ag=".$anr."'>".$ag."</a>";			
 		echo "\n</div>";
 	}
@@ -180,5 +266,5 @@
 				echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>";
 			echo "\n\t</a> ";
-			echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gblatt=".$gml."&amp;gbkennz=".$zgbbez."-".$blatt."'>&nbsp;".$blatt."&nbsp;</a>";
+			echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gblatt=".$gml."&amp;gbkennz=".$zgbbez."-".$blatt."'>&nbsp;".$blatt."&nbsp;</a>";
 		echo "\n</div>";
 		$cntbl++;
@@ -218,5 +304,4 @@
 	if($cntbl == 0) { 
 		echo "\n<p class='err'>Grundbuchblatt '".$zgbbez."-".$zblatt."' nicht gefunden.</p>";
-		if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
 	} elseif($cntbl == 1) {
 		return $bl_gml;
@@ -227,11 +312,11 @@
 function EinBlatt($showParent) {
 	// Kennzeichen Bezirk + Blatt wurde eingegeben
-	global $con, $gkz, $debug, $gemeinde, $auskpath, $zgbbez, $zblatt, $gblatt, $zbvnr;
+	global $con, $gkz, $debug, $gemeinde, $epsg, $auskpath, $zgbbez, $zblatt, $zblattn, $zblattz, $gblatt, $zbvnr;
 
 	if ($showParent) {	
 		echo "\n<div class='gk' title='GB-Bezirk'>";
-			echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Bez.'> ";
-			echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbkennz=".$zgbbez."'>";		
-			echo "Bezirk ".$zgbbez."</a>";
+			echo "\n\t\t<img class='nwlink' src='ico/GB-Bezirk.ico' width='16' height='16' alt='Bez.'> ";
+			echo "Bezirk <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."'>";		
+			echo $zgbbez."</a>";
 			// Key ist bekannt. Sollte man sich die Muehe machen, Namen und Amtsgericht zu ermitteln?
 		echo "\n</div>";
@@ -240,5 +325,5 @@
 				echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='Blatt'>";
 			echo "\n\t</a> ";
-			echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gblatt=".$gblatt."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblatt."&nbsp;</a>";
+			echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gblatt=".$gblatt."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblatt."&nbsp;</a>";
 		echo "\n</div>";
 	}
@@ -263,5 +348,5 @@
 		echo "\n<div class='gs'>";
 			echo "\n\t\t<img class='nwlink' title='Grundst&uuml;ck' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> ";
-			echo "Buchung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbuchung=".$bs_gml."&amp;gbkennz=".$zgbbez."-".$zblatt."-".$lfd."'>&nbsp;".$lfd."&nbsp;</a>";
+			echo "Buchung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbuchung=".$bs_gml."&amp;gbkennz=".$zgbbez."-".$zblatt."-".$lfd."'>&nbsp;".$lfd."&nbsp;</a>";
 		echo "\n</div>";
 		$cntbu++;
@@ -271,5 +356,13 @@
 	} elseif($cntbu == 1) {
 		//echo "\n<p>genau EINE Buchung gefunden".$lfd."</p>";
-		$zbvnr=$lfd; // mit dieser BVNR gleich weiter machen 
+		$zbvnr=$lfd; // mit dieser BVNR gleich weiter machen
+		// Blatt zerteilen (benoetigt in gml_buchungsstelle)
+		if (trim($zblatt, "0..9") == "") { // Normalfall: nur Zahlen
+			$zblattn= ltrim($zblatt, "0");
+			$zblattz="";
+		} else { // Sonderfall: Zusatz-Buchstabe am Ende
+			$zblattn=ltrim(substr($zblatt,0,$len-1), "0"); // ohne fuehrende Nullen
+			$zblattz=strtoupper(substr($zblatt,$len-1,1)); 
+		}
 	}
 	return $cntbu;
@@ -278,5 +371,5 @@
 function gml_buchungsstelle() {
 	// Kennzeichen "Bezirk + Blatt + BVNR" eingegeben. Dazu die gml_id der Buchungsstelle ermitteln.
-	global $con, $gkz, $debug, $zgbbez, $zblatt, $zbvnr;
+	global $con, $gkz, $debug, $zgbbez, $zblatt, $zblattn, $zblattz, $zbvnr;
 	// Blatt ->  B u c h u n g s s t e l l e
 	$sql ="SELECT s.gml_id FROM ax_buchungsstelle s ";
@@ -284,6 +377,7 @@
 	$sql.="JOIN ax_buchungsblatt b ON b.gml_id=v.beziehung_zu "; 
 	$sql.="WHERE v.beziehungsart='istBestandteilVon' ";
-	$sql.="AND b.bezirk= $1 AND b.buchungsblattnummermitbuchstabenerweiterung= $2 AND s.laufendenummer= $3 ;";
-	$v=array($zgbbez, $zblatt, $zbvnr);
+	$sql.="AND b.bezirk= $1 AND b.buchungsblattnummermitbuchstabenerweiterung IN ( $2, $3 ) AND s.laufendenummer= $4 ;";
+	$zblatt0v=str_pad($zblattn, 6, "0", STR_PAD_LEFT).$zblattz;	// mit 0 vorne
+	$v=array($zgbbez, $zblattn.$zblattz, $zblatt0v, $zbvnr);
 	$res=pg_prepare("", $sql);
 	$res=pg_execute("", $v);
@@ -298,5 +392,5 @@
 	}
 	if($zbs == 0) { 
-		echo "\n<p class='err'>Buchung ".$zgbbez."-".$zblatt."-".$zbvnr." nicht gefunden.</p>";
+		echo "\n<p class='err'>Buchung ".$zgbbez."-".$zblattn.$zblattz."-".$zbvnr." nicht gefunden.</p>";
 		return;
 	} elseif($zbs > 1) { // nur TEST
@@ -310,16 +404,17 @@
 function EinGrundstueck($showParent) {
 	// Die gml_id der Buchungsstelle ist bekannt.
-	global $con, $gkz, $debug, $gemeinde, $scalefs, $epsg, $auskpath, $gbuchung, $zgbbez, $zblatt, $zbvnr;
+	global $con, $gkz, $debug, $gemeinde, $epsg, $scalefs, $epsg, $auskpath, $gbuchung, $zgbbez, $zblatt, $zbvnr, $gfilter;
 	if ($showParent) { // wenn Kennzeichen bekannt ist, dann auch Blatt ausgeben
 		if (isset($zgbbez) and isset($zblatt)) {
 			echo "\n<div class='gk' title='GB-Bezirk'>";
-				echo "\n\t\t<img class='nwlink' src='ico/Gericht.ico' width='16' height='16' alt='Bez.'> ";
-				echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbkennz=".$zgbbez."'>";		
+				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 ".$zgbbez."</a>";
 				// Key ist bekannt. Sollte man sich die Muehe machen, Namen und Amtsgericht zu ermitteln?
+				// ++++ Namen als &bez= ÃŒbermitteln?
 			echo "\n</div>";			
 			echo "\n<div class='gb' title='GB-Blatt'>";
 				echo "\n\t\t<img class='nwlink' src='ico/GBBlatt.ico' width='16' height='16' alt='Blatt'> ";
-				echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblatt."&nbsp;</a>";
+				echo "Blatt <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblatt."&nbsp;</a>";
 			echo "\n</div>";
 		} else {
@@ -328,5 +423,5 @@
 		echo "\n<div class='gs'>";
 			echo "\n\t\t<img class='nwlink' title='Grundst&uuml;ck' src='ico/Grundstueck.ico' width='16' height='16' alt='GS'> ";
-			echo "Buchung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbuchung=".$gbuchung."&amp;gbkennz=".$zgbbez."-".$zblatt."-".$zbvnr."'>&nbsp;".$zbvnr."&nbsp;</a>";
+			echo "Buchung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gbuchung=".$gbuchung."&amp;gbkennz=".$zgbbez."-".$zblatt."-".$zbvnr."'>&nbsp;".$zbvnr."&nbsp;</a>";
 		echo "\n</div>";
 	}
@@ -338,6 +433,15 @@
 	// Buchungsstelle -> Flurstueck
 	$sql ="SELECT t.gemeinde, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, ";
-	$sql.="x(st_transform (st_centroid(f.wkb_geometry),".$epsg.")) AS x, ";
-	$sql.="y(st_transform (st_centroid(f.wkb_geometry),".$epsg.")) AS y ";
+
+	//	$sql.="x(st_transform (st_centroid(f.wkb_geometry),".$epsg.")) AS x, ";
+	//	$sql.="y(st_transform (st_centroid(f.wkb_geometry),".$epsg.")) AS y ";
+	if($epsg == "25832") { // Transform nicht notwendig
+		$sql.="x(st_Centroid(f.wkb_geometry)) AS x, ";
+		$sql.="y(st_Centroid(f.wkb_geometry)) AS y ";
+	}
+	else {  
+		$sql.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
+		$sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y ";			
+	}
 	$sql.="FROM ax_gemarkung g ";
 	$sql.="JOIN ax_flurstueck f ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
@@ -363,7 +467,8 @@
 		$x=$row["x"];
 		$y=$row["y"];
-		if($gemeinde > 0 and $gemeinde != $gemei) { // ex-territorial
+		if($gemeinde > 0 and $gemeinde != $gemei and $gfilter == 1) { // ex-territorial 
+		// +++ Wie Abgleich mit Filter=Gemeinde-Liste? Als Array aufbereiten?
 			echo "\n<div class='fs' title='Kein Zugriff! Liegt au&szlig;erhalb des Gebietes.'>";
-				echo "\n\t\t<img class='nwlink' src='ico/Flurstueck.ico' width='16' height='16' alt='FS'> ".$gmkg." ".$flur."-".$fskenn;
+				echo "\n\t\t<img class='nwlink' src='ico/Flurstueck_Leer.ico' width='16' height='16' alt='FS'> (".$gmkg." ".$flur."-".$fskenn." )";
 			echo "\n</div>";			
 		} else {
@@ -391,7 +496,7 @@
 if(isset($epsg)) {
 	if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";} // aus MB
-	If (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);}
+	$epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);	
 } else {
-	if ($debug >= 2) {echo "<p class='err'>kein EPSG gesetzt</p>";}	
+	if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}	
 	$epsg=$gui_epsg; // aus Conf
 }
@@ -400,4 +505,11 @@
 	} else {echo "<p>Kein Filter Gemeinde</p>";}
 }
+if ($gemeinde == "") {
+	$gfilter = 0; // ungefiltert
+} elseif(strpos($gemeinde, ",") === false) {
+	$gfilter = 1; // Einzelwert
+} else {
+	$gfilter = 2; // Liste
+}
 
 // Auch wenn redundant: Das Kennzeichen fÃŒr Anzeige und weitere Links zerlegen
@@ -407,5 +519,5 @@
 // Wurde eine gml_id (internes Kennzeichen) aus einem Self-Link verwendet?
 // Dann hat das Prioritaet, nicht nach $gbkennz suchen.
-If (isset($gbuchung)) { // gml der Buchungsstelle
+if (isset($gbuchung)) { // gml der Buchungsstelle
 	if ($debug >= 2) {echo "<p>Link Buchung(gml)=".$gbuchung."</p>";}
 	EinGrundstueck(true);
@@ -415,40 +527,49 @@
 		$gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen
 		EinGrundstueck(false);
-	};
-} else {
-	// Kein internes Kennzeichen (gml_id), die (manuelle) Eingabe interpretieren.
-	switch ($kennztyp) {
-	// +++ Ersten Schritt "Suche Amtsgericht" voranstellen?
-	// +++ Wie kann Filter "Gemeinde" berÃŒcksichtigt werden?
-	case 0: // Fehler
-		echo "<p class='err'>Bitte ein Grundbuchkennzeichen eingegeben, Format 'gggg-999999A-llll</p>";
-		break;
-	case 1: // Eingabe Bezirk-Name (-Teil) -> Liste der Bezirke
-		if ($debug >= 2) {echo "<p>Eingabe Bez. ".$zgbbez."</p>";}
-		$beznr=SuchGBBezName();
-		if ($beznr > 0) {
-			$zgbbez=$beznr;
-			EinBezirk(false);
-		};	
-		break;
-	case 2: // Eingabe Bezirk-Nummer -> Liste der BlÃ€tter
-		if ($debug >= 2) {echo "<p>Eingabe Bez. ".$zgbbez."</p>";}	
-		EinBezirk(true);
-		break;
-	case 3: // Eingabe Blatt -> Liste der Buchungen
-		if ($debug >= 2) {echo "<p>Eingabe Bez. ".$zgbbez." Blatt ".$zblatt."</p>";}
-		$gblatt=gml_blatt(); // gml_id zum Blatt suchen
-		if ($gblatt != "") { // gefunden		
-			if (EinBlatt(true) == 1) { // darauf genau eine Buchung
-				$gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen
-				EinGrundstueck(false);
+	}
+} elseif(isset($ag)) { // Key 'stelle' des Amtsgerichtes
+	if ($debug >= 2) {echo "<p>Link Amtsgericht=".$ag."</p>";}
+	ListAG( "'".$ag."'" ); // noch mal Kopfzeile
+	ListGBBez("'".$ag."'", false);
+} else { // Kein Self-Link
+	// (manuelle) Eingabe im Formular interpretieren.
+	switch ($kennztyp) { // +++ Wie kann Filter "Gemeinde" berÃŒcksichtigt werden?
+		case 0: // keine Eingabe, 2 Alternativen
+			// +++ Alternativen-Auswahl konfigurieren?
+		//	ListGBBez($ag_liste, true); // gefilterte Liste der Bezirke
+			ListAG($ag_liste); // gefilterte Liste der Amtsgerichte
+			break;
+		case 1: // Eingabe Bezirk-Name (-Teil) -> gefilterte Liste der Bezirke
+			if ($debug >= 2) {echo "<p>Eingabe Bez. ".$zgbbez."</p>";}
+			$beznr=SuchGBBezName();
+			if ($beznr > 0) {  // eindeutig
+				$zgbbez=$beznr;
+				EinBezirk(false); // gleich weiter
+			};	
+			break;
+		case 2: // Eingabe Bezirk-Nummer -> Liste der BlÃ€tter
+			if ($debug >= 2) {echo "<p>Eingabe Bez. ".$zgbbez."</p>";}	
+			EinBezirk(true);
+			break;
+		case 3: // Eingabe Blatt -> Liste der Buchungen
+			if ($debug >= 2) {echo "<p>Eingabe Bez. ".$zgbbez." Blatt ".$zblatt."</p>";}
+			$gblatt=gml_blatt(); // gml_id zum Blatt suchen
+			if ($gblatt != "") { // gefunden		
+				if (EinBlatt(true) == 1) { // darauf genau eine Buchung
+					$gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen
+					EinGrundstueck(false);
+				}
 			}
-		}
-		break;
-	case 4: // Eingabe Buchung (Grundstueck) -> Liste der Flurstuecke
-		if ($debug >= 2) {echo "<p>Eingabe Bez. ".$zgbbez." Blatt ".$zblatt." BVNR ".$zbvnr."</p>";}
-		$gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen
-		EinGrundstueck(true);
-		break;
+			break;
+		case 4: // Eingabe Buchung (Grundstueck) -> Liste der Flurstuecke
+			if ($debug >= 2) {echo "<p>Eingabe Bez. ".$zgbbez." Blatt ".$zblatt." BVNR ".$zbvnr."</p>";}
+			$gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen
+			if ($gbuchung != "") { // .. wurde geliefert 
+				EinGrundstueck(true);
+			}
+			break;
+		case 9: // Fehler
+			echo "<p class='err'>Bitte ein Grundbuchkennzeichen eingegeben, Format 'gggg-999999A-llll</p>";
+			break;
 	}
 }
Index: trunk/data/mapbender/http/nav/alkisnav_grd.htm
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_grd.htm	(revision 85)
+++ trunk/data/mapbender/http/nav/alkisnav_grd.htm	(revision 86)
@@ -19,10 +19,18 @@
 		var gem = "0";
 		if(arr[0] == "gemeinde") {gem = arr[1];}
-		// aktueller EPSG-Code der GUI  ++ funktioniert noch nicht ++
-		var ind = parent.parent.parent.getMapObjIndexByName("mapframe1");
-		epsg = parent.parent.parent.mb_mapObj[ind].epsg;
+		// aktueller EPSG-Code
+		function sendGuiEpsg () {
+			var ind = parent.parent.getMapObjIndexByName("mapframe1");
+			var epsg = parent.parent.mb_mapObj[ind].getSRS();
+			document.forms[0].epsg.value = epsg;
+		}
+		function validate(){
+			sendGuiEpsg();
+			document.forms[0].gkz.value = gkz;
+			document.forms[0].gemeinde.value = gem;
+		}
 	</script>
 </head>
-<body>
+<body onload="javascript:validate();">
 
 <div id='tabs'>
@@ -38,11 +46,9 @@
 
 <form class='nav' name='GrdGazetteerFrame' onsubmit='return validate()' target='GrdResultFrame' action='alkisnav_grd.php'>
-<script type="text/javascript" language="JavaScript">
-		document.writeln("<input name='gkz' type='hidden' value='" + gkz + "'>");
-		document.writeln("<input name='gemeinde' type='hidden' value='" + gem + "'>");
-		document.writeln("<input name='epsg' type='hidden' value='" + epsg + "'>");
-</script>
-<input class='textfield' name='gbkennz' type='text' size='22' title='Grunbuchkennzeichen'>
-<input class='sbutton' type='submit' value='ok'>
+	<input name='gkz' type='hidden'>
+	<input name='gemeinde' type='hidden'>
+	<input name='epsg' type='hidden'>
+	<input class='textfield' name='gbkennz' type='text' size='22' title='Grunbuchkennzeichen'>
+	<input class='sbutton' type='submit' value='ok'>
 </form>
 
Index: trunk/data/mapbender/http/nav/blank_fls.html
===================================================================
--- trunk/data/mapbender/http/nav/blank_fls.html	(revision 85)
+++ trunk/data/mapbender/http/nav/blank_fls.html	(revision 86)
@@ -8,5 +8,4 @@
 <body>
 <p class='start'>Suche nach Flurst&uuml;ckskennzeichen:<br><br>
-Dieser Programmteil ist bisher erst teilweise realisiert!<br><br>
 M&ouml;gliche Eingaben:<br><br>
 Anfang oder Teil des Gemarkungsnamens<br>
Index: trunk/data/mapbender/http/nav/alkisnav.css
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav.css	(revision 85)
+++ trunk/data/mapbender/http/nav/alkisnav.css	(revision 86)
@@ -1,4 +1,4 @@
 /* Style fuer ALKIS-Navigation 
-	Version 2011-01-13
+	Version 2011-04-11
 */
 body,p,a,.textfield,.sbutton	{font-family: Verdana, Arial, Helvetica, sans-serif;}
@@ -17,9 +17,12 @@
 div.back 	{font-size: 10px; color: gray; border-bottom: 1px dotted gray;}
 div.nam		{color: maroon;} /* Name */
-div.gk		{color: black;  margin-left:  0px; margin-top: 6px;} /* Gemarkung o. GB-Bezirk*/
-div.fl		{color: olive;  margin-left:  9px; margin-top: 4px;} /* Flur */
-div.gb		{color: green;  margin-left:  6px;} /* Grundbuch */
-div.gs		{color: olive;  margin-left: 12px; margin-top: 2px;} /* Grundstueck, BVNR */
-div.fs		{color: navy;   margin-left: 18px; margin-top: 0px;} /* Flurstueck */
+div.ga		{color: fuchsia;	margin-left:  0px; margin-top: 6px;} /* GB-Amtsgericht */
+div.gm		{color: green;		margin-left:  0px; margin-top: 6px;} /* Gemeinde */
+div.gk		{color: black;		margin-left:  5px; margin-top: 6px;} /* Gemarkung o. GB-Bezirk*/
+div.fl		{color: olive;		margin-left: 12px; margin-top: 4px;} /* Flur */
+div.gb		{color: green;		margin-left: 10px; margin-top: 3px;} /* Grundbuch */
+div.gs		{color: olive;		margin-left: 15px; margin-top: 2px;} /* Grundstueck, BVNR */
+div.fs		{color: navy;		margin-left: 20px; margin-top: 0px;} /* Flurstueck */
+
 div.stu		{color: maroon; font-size: 13px;} /* Strasse - Ueberschrift */
 div.stl		{color: maroon; font-size: 11px; margin-top: 3px;} /* Strasse - Liste*/
Index: trunk/data/mapbender/http/nav/alkisnav_fls.php
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_fls.php	(revision 85)
+++ trunk/data/mapbender/http/nav/alkisnav_fls.php	(revision 86)
@@ -3,4 +3,5 @@
 	13.01.2011
 	25.03.2011 Filter als Gemeinde-Liste
+	12.04.2011 epsg in Link, transform nur wenn notwendig
 */
 import_request_variables("PG");
@@ -37,5 +38,5 @@
 	$zfsnr=trim($arr[2]);
 	if ($zgemkg == "") {
-		return 1; // alle Gmkg listen
+		return 0; // Gemeinden oder Gemarkungen listen
 	} elseif ( ! is_ne_zahl($zgemkg)) {
 		return 1; // Such Name
@@ -44,5 +45,5 @@
 	} elseif ( ! is_ne_zahl($zflur)) {
 		echo "<p class='err>Die Flurnummer '".$zflur."' ist nicht numerisch</p>";
-		return 0;
+		return 9;
 	} elseif ($zfsnr == "") {		
 		return 3; // Flur				
@@ -53,5 +54,5 @@
 		if ( ! is_ne_zahl($zzaehler)) {
 			echo "<p class='err>FlurstÃŒcksnummer '".$zzaehler."' ist nicht numerisch</p>";
-			return 0;
+			return 9;
 		} elseif ($znenner == "") {
 			return 4;
@@ -60,12 +61,100 @@
 		} else {
 			echo "<p class='err>FlurstÃŒcks-Nenner '".$znenner."' ist nicht numerisch</p>";
-			return 0;
+			return 9;
 		}
 	}
+}
+
+function ListGemeinden() {
+	// bei Leereingabe die Gemeinden anlisten
+	global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter;
+	$linelimit=50;
+	$sql ="SELECT DISTINCT g.gemeinde AS key, g.bezeichnung FROM ax_gemeinde g ";
+	$sql.="JOIN gemeinde_gemarkung v ON g.regierungsbezirk=v.regierungsbezirk AND g.kreis=v.kreis AND g.gemeinde=v.gemeinde ";
+	// "ax_gemeinde" enthÃ€lt mehrfache Gemeinde-Schluessel (Filtern regierungsbezirk, kreis)	
+	// "gemeinde_gemarkung" enthaelt nur gefÃŒllte Gemarkungen aber Gemeinde mehrfach
+	switch ($gfilter) {
+		case 1: // Einzelwert
+			$sql.="WHERE g.gemeinde=".$gemeinde." ";
+			break;
+		case 2: // Liste
+			$sql.="WHERE g.gemeinde in (".$gemeinde.") ";
+			break;
+		default: // kein Filter
+			break;
+	}
+	$sql.=" ORDER BY g.bezeichnung LIMIT $1 ;";
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", array($linelimit));
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Gemeinde</p>";
+		if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+		return 0;
+	}
+	$cnt = 0;
+	while($row = pg_fetch_array($res)) {
+		$stadt=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+		$bez=urlencode($row["bezeichnung"]);  // Uebergeben an ListGmkgInGemeinde
+		$gnr=$row["key"];
+		echo "\n<div class='gm' title='Gemeinde'>";
+			echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>";
+			echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;gm=".$gnr."&amp;bez=".$bez."'>";		
+			echo  " ".$stadt."</a> (".$gnr.")";
+		echo "\n</div>";
+		$cnt++;
+	}
+	if($cnt == 0){ 
+		echo "\n<p class='err'>Keine Gemeinde.</p>";
+	} elseif($cnt >= $linelimit) {
+		echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>";
+	} elseif($cnt == 1) { // Eindeutig!
+		return $gnr; 
+	}
+	return 0;
+}
+
+function ListGmkgInGemeinde($gkey) {
+// Die (gefuellten) Gemarkungen zu einem Gemeinde-Key (aus Link) listen
+	global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter, $bez;
+	$linelimit=70;
+	$sql ="SELECT g.gemarkungsnummer, g.bezeichnung ";
+	$sql.="FROM ax_gemarkung g JOIN gemeinde_gemarkung v ON g.gemarkungsnummer=v.gemarkung ";
+   $sql.="WHERE v.gemeinde= $1 ORDER BY g.bezeichnung LIMIT $2 ;";
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", array($gkey, $linelimit));
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Gemarkungen</p>";
+		if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+		return 0;
+	}
+	// Hierarchie Dokumentieren, Gemeinde-Name?
+	echo "\n<div class='gm' title='Gemeinde'>";
+		echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>";	
+		echo  " Gem. ".$bez." (".$gkey.")"; // .urldecode($bez). ??
+	echo "\n</div>";
+	$cnt = 0;
+	while($row = pg_fetch_array($res)) {
+		$gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+		$gnr=$row["gemarkungsnummer"];
+		echo "\n<div class='gk' title='Gemarkung'>";
+			echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>";
+			echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gnr."'>";		
+			echo  " ".$gnam."</a> (".$gnr.")";
+		echo "\n</div>";
+		$cnt++;
+	}
+	if($cnt == 0){ 
+		echo "\n<p class='err'>Keine Gemarkung.</p>";
+	} elseif($cnt >= $linelimit) {
+		echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>";
+	} elseif($cnt == 1) { // Eindeutig!
+		return $gnr; 
+	}
+	return 0;
 }
 
 function SuchGmkgName() {
 // Gemarkung suchen nach Name(-nsanfang)
-	global $con, $gkz, $gemeinde, $debug, $fskennz, $gfilter;
+	global $con, $gkz, $gemeinde, $epsg, $debug, $fskennz, $gfilter;
 	$linelimit=120;
 	if(preg_match("/\*/",$fskennz)){
@@ -77,9 +166,4 @@
 	$sql.="FROM ax_gemarkung g JOIN gemeinde_gemarkung v ON g.gemarkungsnummer=v.gemarkung ";
    $sql.="WHERE bezeichnung ILIKE $1 ";
-
-//	if($gemeinde > 0) {
-//		$sql.=" AND v.gemeinde=".$gemeinde;
-//	} // wie prepared?
-
 	switch ($gfilter) {
 		case 1: // Einzelwert
@@ -92,5 +176,4 @@
 			break;
 	}
-
 	$sql.=" ORDER BY g.bezeichnung LIMIT $2 ;";
 	$v=array($match, $linelimit);
@@ -108,9 +191,7 @@
 		$stadt=$row["gemeindename"];
 		echo "\n<div class='gk' title='Gemarkung'>";
-			echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemkg'>";
-			echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;fskennz=".$gnr."'>";		
+			echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>";
+			echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$gnr."'>";		
 			echo  " ".$gnam."</a> (".$gnr.")";
-
-//			if ($gemeinde == 0) {echo " ".$stadt;} // Kreisweit
 			switch ($gfilter) {
 				case 0: // Kein Filter
@@ -123,5 +204,4 @@
 					break;
 			}
-
 		echo "\n</div>";
 		$cnt++;
@@ -139,5 +219,5 @@
 function EineGemarkung($AuchGemkZeile) {
 	// Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben
-	global $con, $gkz, $gemeinde, $debug, $zgemkg;
+	global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg;
 	$linelimit=120; // max. Fluren je Gemarkung
 	if ($AuchGemkZeile) {
@@ -154,13 +234,13 @@
 		if ($zgmk == 0) {
 			echo "\n<div class='gk' title='Gemarkung'>";
-				echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemkg'>";
+				echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>";
 					echo  " Gemarkung ".$zgemkg." ist unbekannt.</p>";
 			echo "\n</div>";
 			return;
 		}
-		// > 1 auch mÃ¶glich ???
+		// > 1 auch mÃ¶glich?
 		echo "\n<div class='gk' title='Gemarkung'>";
-			echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemkg'> ";
-			echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;fskennz=".$zgemkg."'>";		
+			echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'> ";
+			echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."'>";		
 			echo $gmkg."</a>  (".$zgemkg.")"; // in Gemeinde?
 		echo "\n</div>";
@@ -177,5 +257,5 @@
 		echo "\n<div class='fl' title='Flur'>";
 			echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> ";
-			echo "Flur<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;fskennz=".$zgemkg."-".$flur."'>&nbsp;".$flur."&nbsp;</a>";
+			echo "Flur<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$flur."'>&nbsp;".$flur."&nbsp;</a>";
 		echo "\n</div>";
 		$zfl++;
@@ -191,5 +271,5 @@
 function EineFlur() {
 	// Kennzeichen aus Gemarkung und FlurNr wurde eingegeben
-	global $con, $gkz, $gemeinde, $debug, $scalefs, $epsg, $auskpath, $zgemkg, $zflur;
+	global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $zgemkg, $zflur;
 	$linelimit=600; // Wie groÃ kann eine Flur sein?
 	$sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;";
@@ -205,5 +285,5 @@
 	if ($zgmk == 0) {
 		echo "\n<div class='gk' title='Gemarkung'>";
-			echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemkg'>";
+			echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>";
 				echo  " Gemarkung ".$zgemkg." ist unbekannt.</p>";
 		echo "\n</div>";
@@ -211,15 +291,23 @@
 	}
 	echo "\n<div class='gk' title='Gemarkung'>";
-		echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemkg'> ";
-		echo "Gemarkung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;fskennz=".$zgemkg."'> ".$gmkg." (".$zgemkg.")</a>";
+		echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>";
+		echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."'> ".$gmkg." (".$zgemkg.")</a>";
 	echo "\n</div>";
 	echo "\n<div class='fl' title='Flur'>";
 		echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> ";
-		echo "Flur <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;fskennz=".$zgemkg."-".$zflur."'> ".$zflur."</a>";
+		echo "Flur <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;epsg=".$epsg."&amp;fskennz=".$zgemkg."-".$zflur."'> ".$zflur."</a>";
 	echo "\n</div>";
 
 	$sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ";
-	$sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
-	$sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y ";
+	//	$sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
+	//	$sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y ";
+	if($epsg == "25832") { // Transform nicht notwendig
+		$sql.="x(st_Centroid(f.wkb_geometry)) AS x, ";
+		$sql.="y(st_Centroid(f.wkb_geometry)) AS y ";
+	}
+	else {  
+		$sql.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
+		$sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y ";			
+	}
    $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 ";
 	$sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land= ?
@@ -262,6 +350,15 @@
 
 	$sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, ";
-	$sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
-	$sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";
+	//	$sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
+	//	$sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y, ";
+	if($epsg == "25832") { // Transform nicht notwendig
+		$sql.="x(st_Centroid(f.wkb_geometry)) AS x, ";
+		$sql.="y(st_Centroid(f.wkb_geometry)) AS y, ";
+	}
+	else {  
+		$sql.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, ";
+		$sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y ";			
+	}
+
 	$sql.="g.gemarkungsnummer, g.bezeichnung ";
    $sql.="FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
@@ -304,7 +401,7 @@
 if(isset($epsg)) {
 	if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";	} // aus MB
-	if (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);}
+	$epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]);	
 } else {
-	if ($debug >= 2) {echo "<p class='err'>kein EPSG gesetzt</p>";}	
+	if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";}	
 	$epsg=$gui_epsg; // aus Conf
 }
@@ -320,33 +417,48 @@
 }
 
-// Eingabe interpretieren
-switch (ZerlegungFsKennz($fskennz)) {
-case 0:
-	echo "<p class='err'>Bitte ein Flurst&uuml;ckskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn</p>";
-	break;
-case 1:
-	if ($debug >= 2) {echo "<p>Gemarkungsname ".$zgemkg."</p>";}
-	$gnr=SuchGmkgName();
+if(isset($gm)) { // Self-Link aus Gemeinde-Liste 
+	$gnr=ListGmkgInGemeinde($gm); // Gemarkungen zu dieser Gemeinde listen
 	if ($gnr > 0) {
 		$zgemkg=$gnr;
 		EineGemarkung(false);
 	};	
-	break;
-case 2:
-	if ($debug >= 2) {echo "<p>Gemarkungsnummer ".$zgemkg."</p>";}	
-	EineGemarkung(true);
-	break;
-case 3:
-	if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";}
-	EineFlur();
-	break;
-case 4:
-	if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";}
-	EinFlurstueck();
-	break;
-case 5:
-	if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."/".$znenner."</p>";}
-	EinFlurstueck();
-	break;
+} else {
+	// Die Formular-Eingabe interpretieren (kann auch ein Link sein)
+	switch (ZerlegungFsKennz($fskennz)) {
+	case 0: // leere Eingabe
+		if ($gfilter == 1) { // Die GUI ist bereits auf eine Gemeinde gefiltert
+			SuchGmkgName(); // Gemarkungen listen
+		} else {
+			ListGemeinden(); // alle Gemeinden Listen
+		}
+		break;
+	case 1:
+		if ($debug >= 2) {echo "<p>Gemarkungsname ".$zgemkg."</p>";}
+		$gnr=SuchGmkgName();
+		if ($gnr > 0) {
+			$zgemkg=$gnr;
+			EineGemarkung(false);
+		};	
+		break;
+	case 2:
+		if ($debug >= 2) {echo "<p>Gemarkungsnummer ".$zgemkg."</p>";}	
+		EineGemarkung(true);
+		break;
+	case 3:
+		if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";}
+		EineFlur();
+		break;
+	case 4:
+		if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";}
+		EinFlurstueck();
+		break;
+	case 5:
+		if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."/".$znenner."</p>";}
+		EinFlurstueck();
+		break;
+	case 9:
+		echo "<p class='err'>Bitte ein Flurst&uuml;ckskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn</p>";
+		break;
+	}
 }
 
Index: trunk/data/mapbender/http/nav/alkisnav_fls.htm
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_fls.htm	(revision 85)
+++ trunk/data/mapbender/http/nav/alkisnav_fls.htm	(revision 86)
@@ -12,5 +12,5 @@
 		// Parameter fuer Mandant aus url lesen
 		// &gkz=150&gemeinde=40&test=ja
-		var parms = location.search.split("&");    // 0: "?gkz=150" 1: "gemeinde=40" 2: "test=ja"		
+		var parms = location.search.split("&"); // 0: "?gkz=150" 1: "gemeinde=40" 2: "test=ja"		
 		var arr = parms[0].split("=", 2); // 0: "?gkz"  1: "150"
 		var gkz = "000";
@@ -19,10 +19,18 @@
 		var gem = "0";
 		if(arr[0] == "gemeinde") {gem = arr[1];}
-		// aktueller EPSG-Code der GUI  ++ funktioniert noch nicht ++
-		var ind = parent.parent.parent.getMapObjIndexByName("mapframe1");
-		epsg = parent.parent.parent.mb_mapObj[ind].epsg;
+		// aktueller EPSG-Code
+		function sendGuiEpsg () {
+			var ind = parent.parent.getMapObjIndexByName("mapframe1");
+			var epsg = parent.parent.mb_mapObj[ind].getSRS();
+			document.forms[0].epsg.value = epsg;
+		}
+		function validate(){
+			sendGuiEpsg();
+			document.forms[0].gkz.value = gkz;
+			document.forms[0].gemeinde.value = gem;
+		}
 	</script>
 </head>
-<body>
+<body onload="javascript:validate();">
 
 <div id='tabs'>
@@ -38,11 +46,9 @@
 
 <form class='nav' name='FlsGazetteerFrame' onsubmit='return validate()' target='FlsResultFrame' action='alkisnav_fls.php'>
-<script type="text/javascript" language="JavaScript">
-		document.writeln("<input name='gkz' type='hidden' value='" + gkz + "'>");
-		document.writeln("<input name='gemeinde' type='hidden' value='" + gem + "'>");
-		document.writeln("<input name='epsg' type='hidden' value='" + epsg + "'>");
-</script>
-<input class='textfield' name='fskennz' type='text' size='22' title='Flurst&uuml;ckskennzeichen'>
-<input class='sbutton' type='submit' value='ok'>
+	<input name='gkz' type='hidden'>
+	<input name='gemeinde' type='hidden'>
+	<input name='epsg' type='hidden'>
+	<input class='textfield' name='fskennz' type='text' size='22' title='Flurst&uuml;ckskennzeichen'>
+	<input class='sbutton' type='submit' value='ok'>
 </form>
 
Index: trunk/data/mapbender/conf/alkisnav_conf.php
===================================================================
--- trunk/data/mapbender/conf/alkisnav_conf.php	(revision 85)
+++ trunk/data/mapbender/conf/alkisnav_conf.php	(revision 86)
@@ -22,4 +22,10 @@
 $gui_epsg=31467;
 
+# Filter:
+# Liste der relevanten Amtsgerichts-Nummern aus ax_dienststelle.stelle
+# Form: WHERE IN ()
+# Bei leerer Eingabe in Tab 'Grundb.'
+$ag_liste = "'2491','2408'";
+
 # Entwicklungsumgebung
 $debug=0; // 0=Produktion, 1=mit Fehlermeldungen, 2=mit Informationen, 3=mit SQL
