Index: trunk/var/www/info/alkis/alkisfsnw.php
===================================================================
--- trunk/var/www/info/alkis/alkisfsnw.php	(revision 65)
+++ trunk/var/www/info/alkis/alkisfsnw.php	(revision 66)
@@ -12,5 +12,5 @@
 	17.12.2010  Astrid Emde: Prepared Statements (pg_query -> pg_prepare + pg_execute)
 	04.01.2011  Frank JÃ€ger: verkuerzte Nutzungsart-Zeilen mit Icon. Tabelle Gebiet/Lage/Nutzung 4spaltig.
-	04.01.2011  Korrektur der Fallunterscheidung "Funktion"
+	05.01.2011  Korrektur der Fallunterscheidung "Funktion", auch "Vegetationsmerkmal", Title auf "Zustand".
 
 	ToDo: 
@@ -336,6 +336,5 @@
 		echo "\n\t<td class='fla'>".$schnittflae." m&#178;</td>";
 		echo "\n\t<td class='lr'>";
-			If ($fldclass == "Funktion" AND $label != "") { // Kurze Anzeige
-				// evtl. analog bei "Vegetationsmerkmal"?
+			If ( ($fldclass == "Funktion" OR $fldclass == "Vegetationsmerkmal") AND $label != "") { // Kurze Anzeige
 				if ($showkey) {echo "<span class='key'>(".$class.")</span> ";}
 				if ($blabla = "") {
@@ -367,4 +366,5 @@
 				echo "\n\t\t<br>";
 				if ($showkey) {echo "<span class='key'>(".$zus.")</span> ";}
+				echo "<span title='Zustand'>";				
 				switch ($zus) {
 					case 2100:
@@ -377,4 +377,5 @@
 						echo "Zustand: ".$zus;	break;
 				}
+				echo "</span>";
 			}
 			If ($nam != "") {echo "<br>Name: ".$nam;}
Index: trunk/data/mapbender/http/nav/alkisnav_eig.php
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_eig.php	(revision 66)
+++ trunk/data/mapbender/http/nav/alkisnav_eig.php	(revision 66)
@@ -0,0 +1,267 @@
+<?php
+// Version vom 10.01.2011 
+$gkz = urldecode($_REQUEST["gkz"]); // Mandant
+include("../../conf/alkisnav_conf.php");
+import_request_variables("PG");
+$con_string = "host=".$host." port=".$port." dbname=".$dbname.$gkz." user=".$user." password=".$password;
+$con = pg_connect ($con_string) or die ("<p class='err'>Fehler bei der Verbindung zur Datenbank</p>".$dbname);
+?>
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<title>ALKIS-Suche Eigent&uuml;mer</title>
+	<link rel="stylesheet" type="text/css" href="alkisnav.css">
+</head>
+<body>
+
+<?php
+function getEigByName() {
+// 1 =============================
+// Eigentuemer nach Name(-nsanfang)
+// ===============================
+	global $gkz, $gemeinde, $con, $name, $person, $gb;
+	$linelimit=120;
+	if(preg_match("/\*/",$name)){
+		$match = trim(preg_replace("/\*/i","%", strtoupper($name)));
+	} else {
+		$match = trim($name)."%";
+	}	
+	$sql ="SELECT p.nachnameoderfirma, p.vorname, p.gml_id FROM ax_person as p ";
+	$sql.="WHERE nachnameoderfirma ILIKE $1 ORDER BY p.nachnameoderfirma, p.vorname LIMIT $2 ;"; 
+	// +++ Adresse der Person zur eindeutigen Bestimmung?
+	$v=array($match, $linelimit);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Eigent&uuml;mer</p>";
+		return;
+	}
+	$cnt = 0;
+	// einfache Liste ohne div und Icon	
+	while($row = pg_fetch_array($res)) {
+		$nnam=htmlentities($row["nachnameoderfirma"], ENT_QUOTES, "UTF-8");
+		$vnam=htmlentities($row["vorname"], ENT_QUOTES, "UTF-8");
+		$gml=$row["gml_id"];
+		// +++ 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='alkisnav_eig.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;person=".$gml."&amp;name=".$nnam."'>".$nnam.", ".$vnam."</a>\n<br>";
+		$cnt++;
+	}
+	if($cnt == 0){ 
+		echo "\n<p class='err'>Keine Person.</p>";
+	} elseif($cnt >= $linelimit) {
+		echo "\n<p title='Bitte den Namen eindeutiger qualifizieren'>... und weitere</p>";
+	} elseif($cnt == 1){ // Eindeutig!
+		$person = $gml;
+	}
+	return;
+}
+
+function getGBbyPerson() {
+// 2 =================================
+// GrundbÃŒcher zur gewÃ€hlten Person
+// ===================================
+	global $gkz, $gemeinde, $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='alkisnav_eig.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;name=".$name."'>\"".$name."\"</a>";
+		echo "\n</div>\n<br>";	
+	}
+	$sql="SELECT p.nachnameoderfirma, p.vorname, p.geburtsdatum, p.namensbestandteil, ";
+	$sql.="a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer ";
+	$sql.="FROM ax_person p ";
+	$sql.="JOIN alkis_beziehungen b ON p.gml_id=b.beziehung_von ";
+	$sql.="JOIN ax_anschrift a ON a.gml_id=b.beziehung_zu ";
+	$sql.="WHERE p.gml_id= $1 AND b.beziehungsart='hat';";	
+	$v=array($person);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Name</p>\n";
+		if ($debug >= 3) {echo "<p class='err'>".$sql."</p>";}
+	}
+	// Daten der Person
+	echo "\n<div class='nam'>";
+		// Link zur Auskunft Person
+		echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisnamstruk.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$person."'>";
+			echo "\n\t\t<img class='nwlink' src='ico/Eigentuemer.ico' width='16' height='16' alt='EIG'>";
+		echo "\n\t</a> ";
+		echo "\n\t<p class='nam'>";		
+		if ($row = pg_fetch_array($res)) {
+			$namzeil=$row["nachnameoderfirma"].", ".$row["vorname"];
+			$gebdat=$row["geburtsdatum"];
+			if ($gebdat != "") {$namzeil.= ", geb. ".$gebdat;}
+			$best=$row["namensbestandteil"];
+			if ($best != "") {$namzeil.= ", ".$best;}
+			echo htmlentities($namzeil, ENT_QUOTES, "UTF-8");
+			$namzeil=$row["plz"]." ".$row["ort_post"];
+			if (trim($namzeil) != "") {echo "\n\t<br>".htmlentities($namzeil, ENT_QUOTES, "UTF-8");}
+			$namzeil=$row["strasse"]." ".$row["hausnummer"];
+			if (trim($namzeil) != "") {echo "\n\t<br>".htmlentities($namzeil, ENT_QUOTES, "UTF-8");}
+		}
+		echo "\n\t</p>";
+	echo "\n</div>";
+
+	// Suche nach GrundbÃŒchern der Person
+	$sql ="SELECT g.gml_id AS gml_g, g.buchungsblattnummermitbuchstabenerweiterung as nr, b.bezeichnung AS beznam ";
+	$sql.="FROM alkis_beziehungen bpn ";
+	$sql.="JOIN ax_namensnummer n ON bpn.beziehung_von=n.gml_id ";
+	$sql.="JOIN alkis_beziehungen bng ON n.gml_id=bng.beziehung_von ";
+	$sql.="JOIN ax_buchungsblatt g ON bng.beziehung_zu=g.gml_id ";
+	$sql.="JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk ";
+	$sql.="WHERE bpn.beziehung_zu= $1 AND bpn.beziehungsart='benennt' AND bng.beziehungsart='istBestandteilVon' ";
+	$sql.="ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;";
+	$v=array($person, $linelimit);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Grundbuch</p>";
+		return;
+	}
+	$cnt = 0;
+	while($row = pg_fetch_array($res)) {
+		$gml=$row["gml_g"];
+		$beznam=$row["beznam"];
+		$nr=$row["nr"];
+		echo "\n<div class='gb'>";
+			echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gmlid=".$gml."'>";
+				echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>";
+			echo "\n\t</a> ";		
+			echo $beznam." <a title='Grundbuch' href='alkisnav_eig.php?gkz=".$gkz."&amp;gb=".$gml."&amp;person=".$person."'>Blatt ".$nr."</a>";
+		echo "\n</div>";
+		$cnt++;
+	}
+	if($cnt == 0){ 
+		echo "\n<p class='err'>Kein Grundbuch.</p>";
+	} elseif($cnt >= $linelimit) {
+		echo "\n<p>... und weitere</p>";
+	} elseif($cnt == 1){ // Eindeutig!
+		$gb=$gml; // dann Stufe 3 gleich nachschieben
+	}
+	return;
+}
+	
+function getFSbyGB($backlink) {
+// 3 =================================
+// FlurstÃŒcke zum gewÃ€hlten Grundbuch
+// ===================================
+	global $gkz, $gemeinde, $con, $name, $person, $gb, $scalefs, $auskpath, $epsg;
+	$linelimit=120;
+
+	if($backlink) {	
+		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='alkisnav_eig.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;person=".$person."'>";
+			echo "zur&uuml;ck</a><br>";		
+		echo "</div>";
+		echo "<div class='gb'>";
+			echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gb."'>";
+				echo "\n\t\t<img class='nwlink' src='ico/GBBlatt_link.ico' width='16' height='16' alt='GB'>";
+			echo "\n\t</a> Grundbuch";
+		echo "</div>";	
+	}
+
+	// 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, ";
+	$sql.="g.gemarkungsnummer, g.bezeichnung ";
+   $sql.="FROM alkis_beziehungen vbg ";
+	$sql.="JOIN ax_buchungsstelle s ON vbg.beziehung_von = s.gml_id "; 
+	$sql.="JOIN alkis_beziehungen vfb ON s.gml_id = vfb.beziehung_zu "; 
+	$sql.="JOIN ax_flurstueck f  ON vfb.beziehung_von = f.gml_id ";
+   $sql.="JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+	$sql.="WHERE vbg.beziehung_zu= $1 AND vbg.beziehungsart='istBestandteilVon' AND vfb.beziehungsart='istGebucht' ";
+	$sql.="ORDER BY s.laufendenummer, f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner LIMIT $2 ;";
+
+	// +++ Sonderfall Fehlt noch: Blatt -> Buchung -> (Recht an) Buchung -> FlurstÃŒck
+	// +++ Ebene Buchung dazwischen wie im Teil 'Grundbuch' ?
+	$v=array($gb, $linelimit);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Buchung und Flurst&uuml;ck.</p>";
+		if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+		return;
+	}
+	$zfs=0;
+	while($row = pg_fetch_array($res)) {	
+		$fs_gml=$row["gml_id"];
+		$bvnr=$row["lfd"];
+		if ($bvnr > 0) {		
+			$bvnr=str_pad($bvnr, 4, "0", STR_PAD_LEFT);
+		} else {
+			$bvnr="";
+		}
+		$gmkg=$row["bezeichnung"];
+		$flur=$row["flurnummer"];
+		$fskenn=$row["zaehler"];
+		if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer
+		$x=$row["x"];
+		$y=$row["y"];
+		echo "\n<div class='fs'>";
+			echo "\n\t<a title='Nachweis' target='_blank' href='".$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</a> ";	
+			echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='";
+				echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); ";
+				echo "parent.parent.hideHighlight();' ";
+				echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' ";
+				echo "onmouseout='parent.parent.hideHighlight()'>";
+			echo $bvnr." ".$gmkg." ".$flur."-".$fskenn."</a>";
+		echo "\n</div>";
+		$zfs++;
+	}
+	if($zfs == 0) { 
+		echo "\n<p class='err'>Kein Flurst&uuml;ck.</p>";
+		echo "\n<p class='hilfe'>Hinweis: Sonderf&auml;lle wie 'Erbbaurecht' sind noch nicht umgesetzt.</p>";
+	} elseif($zfs >= $linelimit) {
+		echo "\n<p>... und weitere</p>"; 
+	}
+	return;
+}
+
+// ===========
+// Start hier!
+// ===========
+// Parameter:  
+// 1. name   = Suche nach Namensanfang oder -bestandteil.
+// 2. person = gml_id der Person      -> Suche nach GrundbÃŒchern
+// 3. gb     = gml_id des Grundbuches -> Suche nach FlurstÃŒcken
+if(isset($epsg)) {
+	if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";} // aus MB
+	if (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);}
+} else {
+	if ($debug >= 2) {echo "<p class='err'>kein EPSG gesetzt</p>";}	
+	$epsg=$gui_epsg; // aus Conf
+}
+if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";}
+
+// Welche Parameter?
+// 3. Stufe: FlurstÃŒcke zum Grundbuch
+if(isset($gb)) { // gml_id
+	// Das Programm hat sich selbst verlinkt aus einer Liste der GB zu einem EigentÃŒmer.
+	// Wenn Parameter mitgegeben wurden, kÃ¶nnen diese fÃŒr einen "Link zurÃŒck" verwendet werden.
+	getFSbyGB(true);
+} elseif(isset($person)) { // gml_id - 2. Stufe: GrundbÃŒcher zur Person
+	// Das Programm hat sich selbst verlinkt aus einer Liste der Personen zu einer Suchmaske.
+	getGBbyPerson(); 
+	if(isset($gb) ) { getFSbyGB(false);} // Es wurde nur EIN Grundbuch zu der Person gefunden.
+} elseif(isset($name)) { // Suchbegriff aus Form - 1. Stufe: Suche nach Name
+	getEigByName(); 
+	if(isset($person)) { getGBbyPerson();}
+} elseif ($debug >= 2) {
+	echo "\n<p>Parameter?</p>"; // Programmfehler
+}
+
+?>
+
+</body>
+</html>
Index: trunk/data/mapbender/http/nav/alkisnav_eig.htm
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_eig.htm	(revision 66)
+++ trunk/data/mapbender/http/nav/alkisnav_eig.htm	(revision 66)
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<base target="_self">
+	<title>ALKIS-Suche Eigent&uuml;mer</title>
+	<link rel="stylesheet" type="text/css" href="alkisnav.css">
+	<script type="text/javascript" language="JavaScript">
+		// 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 arr = parms[0].split("=", 2); // 0: "?gkz"  1: "150"
+		var gkz = "000";
+		if(arr[0] == "?gkz") {gkz = arr[1];}
+		var arr = parms[1].split("=", 2)
+		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;
+	</script>
+</head>
+<body>
+
+<div id='tabs'>
+<ul>
+	<script type="text/javascript" language="JavaScript">
+		document.writeln("<li><a target='_self' href='alkisnav_adr.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Adresse</a></li>");
+		document.writeln("<li class='aktiveTab'>Name</a></li>");
+		document.writeln("<li><a target='_self' href='alkisnav_fls.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Flurst&uuml;ck</a></li>");
+		document.writeln("<li><a target='_self' href='alkisnav_grd.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Grundb.</a></li>");
+	</script>
+</ul>
+</div>
+
+<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>
+</form>
+
+<iframe name="EigResultFrame" src="blank_eig.html" class='ResultFrame'></iframe>
+
+</body>
+</html>
Index: trunk/data/mapbender/http/nav/alkisnav_adr.php
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_adr.php	(revision 66)
+++ trunk/data/mapbender/http/nav/alkisnav_adr.php	(revision 66)
@@ -0,0 +1,229 @@
+<?php
+// Version vom 10.01.2011
+
+// ToDo: 
+//  Auswahl oder Sortierung "Gemeinde" if ($gemeinde == 0)
+//  Sortierung nach Nummer aus Hausnummer
+
+$gkz = urldecode($_REQUEST["gkz"]); // Mandant
+include("../../conf/alkisnav_conf.php");
+import_request_variables("PG");
+// Datenbank-Connection
+$con_string = "host=".$host." port=".$port." dbname=".$dbname.$gkz." user=".$user." password=".$password;
+$con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname);
+
+?>
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<title>ALKIS-Suche Adressen</title>
+	<link rel="stylesheet" type="text/css" href="alkisnav.css">
+</head>
+<body>
+
+<?php
+function suchStrName() {
+// ============================
+// Straßen nach Name(-nsanfang)
+// ============================
+	global $con, $street, $scalestr, $str_schl, $gkz, $gemeinde, $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];
+	$matches[1] = preg_replace("/strasse/i","str", $matches[1]);
+	$matches[1] = preg_replace("/str\./i","str", $matches[1]); 
+	if(preg_match("/\*/",$matches[1])){
+		$match="'".trim(preg_replace("/\*/i","%", strtoupper($matches[1]))). "' ";
+	} else {
+		$match="'".trim($matches[1])."%' ";
+	}
+	$sql ="SELECT g.bezeichnung AS gemname, k.bezeichnung, k.schluesselgesamt, k.lage  ";
+	$sql.="FROM ax_lagebezeichnungkatalogeintrag as k ";
+	$sql.="JOIN ax_gemeinde g ";
+	$sql.="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 ".$match." ";
+ 	if($gemeinde > 0) { // Filter Gemeinde?
+		$sql.="AND k.gemeinde=".$gemeinde." ";
+	}
+	$sql.="ORDER BY k.bezeichnung, k.lage ";
+	// +++  if ($gemeinde == 0) ORDER Gemeinde, Straße?
+	$sql.="LIMIT ".$linelimit;
+	$res=pg_query($con, $sql);
+	if (!$res) {
+		return "\n<p class='err'>Fehler bei Name</p>";
+	}
+	$cnt = 0;
+	while($row = pg_fetch_array($res)) {
+		$sname=$row["bezeichnung"];
+		$gkey=$row["schluesselgesamt"];
+		$gemname=$row["gemname"];
+		$skey=$row["lage"];
+		echo "\n\t<div class='st' title='Stra&szlig;enschl&uuml;ssel ".$skey."'>";
+			echo "<a class='st' href='alkisnav_adr.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;str_schl=".$gkey."'>".$sname;
+			if ($gemeinde == 0) {
+				echo " - ".$gemname;
+			}
+			echo "</a><br>";
+		echo "</div>";
+		$cnt++;
+	}
+	if($cnt == 0) {
+		echo "<p>Keine Stra&szlig;e.</p>";
+	} elseif($cnt == 1) { // Eindeutig
+		$str_schl=$skey; // dann gleich weiter
+	} elseif($cnt >= $linelimit) {
+		echo "<p>.. und weitere</p>";			
+	}	
+	return;
+}
+
+function suchHausZurStr(){
+// =======================
+// Haeuser zu einer Straße
+// =======================
+	global $con, $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $debug;
+	
+	// Strasse zum Strassenschluessel
+	$sql ="SELECT k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage ";
+	$sql.="FROM ax_lagebezeichnungkatalogeintrag as k ";
+	$sql.="WHERE schluesselgesamt = $1 LIMIT 1"; 
+ 	$v=array($str_schl);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+
+	if($row = pg_fetch_array($res)) { // Strassenschluessel gefunden
+		$sname=$row["bezeichnung"];
+		$land =$row["land"];
+		$regb =$row["regierungsbezirk"];
+		$kreis=$row["kreis"];
+		$gemnd=$row["gemeinde"];
+		//$lage=$row["lage"];
+		$nr=ltrim($row["lage"], "0");
+
+		// eine Koordinaten zur ausgewählten Strasse besorgen
+		// 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 ";
+		$sqlko.="FROM ax_lagebezeichnungohnehausnummer o ";
+		$sqlko.="JOIN alkis_beziehungen v ON o.gml_id=v.beziehung_zu "; 
+		$sqlko.="JOIN ax_flurstueck f ON v.beziehung_von=f.gml_id ";
+		$sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 ";	
+		$sqlko.="AND v.beziehungsart='zeigtAuf' LIMIT 1;";  // die erstbeste beliebige Koordinate
+//		$resko=pg_query($con, $sqlko);
+		$v=array($land,$regb,$kreis,$gemnd,$nr);
+		$resko=pg_prepare("", $sqlko);
+		$resko=pg_execute("", $v);
+		if ($resko) {
+			$rowko=pg_fetch_array($resko); 
+			$x=$rowko["x"];
+			$y=$rowko["y"];
+		} else {		
+			echo "\n<p class='err'>Fehler bei Koordinate zur Stra&szlig;e</p>";
+		}
+		$sqlko.="";
+		//if ($debug >= 2) {echo "\n<p class='err'>Koord: '".$x."' '".$y."'</p>";}
+		echo "\n<div class='st'>";		
+		if ($x > 0) { // Koord. bekommen?
+			echo "<a title='Positionieren 1:".$scalestr."' href='"; // mit Link
+				echo "javascript:parent.parent.hideHighlight();";
+				echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalestr.");";
+				echo " document.location.href=\"alkisnav_adr.php?gkz=".$gkz."&amp;str_schl=".$str_schl."\"' ";
+				echo "onmouseover='parent.parent.showHighlight(" .$x. "," .$y. ")' ";
+				echo "onmouseout='parent.parent.hideHighlight()'";
+			echo ">".$sname." (".$nr.")</a>";
+		} else { // keine Koord. dazu gefunden
+			echo $sname." (".$nr.")"; // nur Anzeige, ohne Link
+		}
+		echo "\n</div><hr>";
+		
+		// Haeuser zum Strassenschluessel
+		$sql ="SELECT h.hausnummer, ";
+		$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 ";
+		$sql.="JOIN ax_gebaeude g ON v.beziehung_von=g.gml_id ";
+		$sql.="WHERE h.land=".$land." AND h.regierungsbezirk=".$regb." AND h.kreis=".$kreis." AND h.lage=".$nr." "; // integer
+		$sql.="AND v.beziehungsart='zeigtAuf' ";
+		$sql.="ORDER BY hausnummer;";
+		// Sortierproblem: Hausnummer, numerischer Teil sollte numerisch sortiert sein.
+		//if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+		$resh=pg_query($con, $sql);
+		$cnt=0;
+		$count=0;
+		echo "<table>";
+
+		// mehrere Hausnummern je Zeile ausgeben
+		while($rowh = pg_fetch_array($resh)) {
+			if($count == 0){
+				echo "\n<tr>";
+			}
+			$gml=$rowh["gml_id"];			
+			$nr=$rowh["hausnummer"];			
+			$x=$rowh["x"];
+			$y=$rowh["y"];
+
+			echo "\n\t<td class='hsnr'>";
+				echo "<a href='";
+					echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalehs."); ";
+					echo "parent.parent.hideHighlight();' ";
+				echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' ";
+				echo "onmouseout='parent.parent.hideHighlight()";
+				echo "'>".$nr."</a>";
+			echo "\n\t</td>";
+			$cnt++;
+			$count++;
+			if($count == 6) {
+				echo "\n</tr>";
+				$count = 0;
+			}
+		}
+		if($count > 0) {echo "\n</tr>";}
+		echo "\n</table>";
+		echo "\n<p class='hilfe'>".$cnt." Hausnummern</p>";
+	} else {
+		echo "\n<p class='err'>Kein Haus.</p>";
+	}
+	return;
+}
+// ===========
+// Start hier!
+// ===========
+if(isset($epsg)) {
+	if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";} // aus MB
+	If (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);}
+} else {
+	if ($debug >= 2) {echo "<p class='err'>kein EPSG gesetzt</p>";}	
+	$epsg=$gui_epsg; // aus Conf
+}
+
+if ($debug >= 2) {
+	if(isset($gemeinde)) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";
+	} else {echo "<p>Kein Filter Gemeinde</p>";}
+}
+
+if(isset($street)) {
+	// dies ist noch nicht möglich, es muesste der Gesamt-Keystring eingegeben werden	
+	if (is_numeric($street)) {
+		$str_schl = $street; // Schluessel (eindeutig) ist schon gesetzt
+	} else {
+		suchStrName(); // Suche nach Name
+	}
+} 
+// Strassenschluessel suchen
+// Verknuepfung zwischen "suchStrName" und "suchHausZurStr" uber Gesamt-Schluessel
+// Alternative für Eingabefeld (nur db-Feld "lage")?  
+// z.B. HIER trennen zwischen Eingabe-Key und Result-Key
+
+if(isset($str_schl)){
+	suchHausZurStr();
+}
+?>
+
+</body>
+</html>
Index: trunk/data/mapbender/http/nav/alkisnav_adr.htm
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_adr.htm	(revision 66)
+++ trunk/data/mapbender/http/nav/alkisnav_adr.htm	(revision 66)
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<base target="_self">
+	<title>ALKIS-Suche Adressen</title>
+	<link rel="stylesheet" type="text/css" href="alkisnav.css">
+	<script type="text/javascript" language="JavaScript">
+		// 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 arr = parms[0].split("=", 2); // 0: "?gkz"  1: "150"
+		var gkz = "000";
+		if(arr[0] == "?gkz") {gkz = arr[1];}
+		var arr = parms[1].split("=", 2)
+		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;
+	</script>
+</head>
+<body>
+
+<div id='tabs'>
+<ul>
+	<script type="text/javascript" language="JavaScript">
+		document.writeln("<li class='aktiveTab'>Adresse</li>");
+		document.writeln("<li><a target='_self' href='alkisnav_eig.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Name</a></li>");
+		document.writeln("<li><a target='_self' href='alkisnav_fls.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Flurst&uuml;ck</a></li>");
+		document.writeln("<li><a target='_self' href='alkisnav_grd.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Grundb.</a></li>");
+	</script>
+</ul>
+</div>
+
+<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>
+</form>
+
+<iframe name="AdrResultFrame" src="blank_adr.html" class='ResultFrame'></iframe>
+
+</body>
+</html>
Index: trunk/data/mapbender/http/nav/blank_grd.html
===================================================================
--- trunk/data/mapbender/http/nav/blank_grd.html	(revision 65)
+++ trunk/data/mapbender/http/nav/blank_grd.html	(revision 66)
@@ -8,9 +8,7 @@
 <body>
 <p class='start'>Suche nach Grundbuchblatt in ALKIS:<br><br>
-Dieser Programmteil ist noch nicht realisiert!<br><br>
-Geplant ist:<br><br>
-Schritt 1: Auswahl Amtsgericht<br><br>
-Schritt 2: Auswahl Grundbuch-Bezirk<br><br>
-Schritt 3: Auswahl Grundbuch-Blatt<br><br>
+Schritt 1: Suche Grundbuch-Bezirk<br><br>
+Schritt 2: Auswahl Grundbuch-Blatt<br><br>
+Schritt 3: Auswahl Grundst&uuml;ck (Buchungsstelle, BVNR)<br><br>
 Schritt 4: Auswahl Flurst&uuml;ck</p>
 </body>
Index: trunk/data/mapbender/http/nav/alkisnav_grd.php
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_grd.php	(revision 66)
+++ trunk/data/mapbender/http/nav/alkisnav_grd.php	(revision 66)
@@ -0,0 +1,465 @@
+<?php
+// Version vom 10.01.2011  
+$gkz = urldecode($_REQUEST["gkz"]); // Mandant
+include("../../conf/alkisnav_conf.php");
+import_request_variables("PG");
+
+// Datenbank-Connection
+$con_string = "host=".$host." port=".$port." dbname=".$dbname.$gkz." user=".$user." password=".$password;
+$con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname);
+
+?>
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<title>ALKIS-Suche Grundbuch</title>
+	<link rel="stylesheet" type="text/css" href="alkisnav.css">
+</head>
+<body>
+
+<?php
+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 is_blatt(&$wert) {
+	// Prueft, ob eine Eingabe dem Format von Grundbuch-Blatt entspricht.
+	// Die Blatt-Nummern wird dabei auf das Datenbank-Format mit fuehrenden Nullen ergaenzt (&).
+	// +++ Nur ein Aufruf der Function. In aufrufendes Programm integrieren? 	
+	$len=strlen($wert);
+	if ($len < 1 or $len > 7) {return false;};
+	if (trim($wert, "0..9") == "") { // Normalfall: nur Zahlen
+		If (strlen($wert) < 6) {
+			$wert = str_pad($wert, 6, "0", STR_PAD_LEFT);
+		}	
+		return true;
+	} else { // Sonderfall Zusatz-Buchstabe am Ende 
+		$zahl=substr($wert,0,$len-1);
+		$zus=strtoupper(substr($wert,$len-1,1));
+		if ( (trim($zahl, "0..9") == "") and (trim($zus, "A..Z") == "")) {
+			If (strlen($zahl) < 6) {
+				$zahl = str_pad($zahl, 6, "0", STR_PAD_LEFT);
+			}
+			$wert=$zahl.$zus;	
+			return true;		
+		} else {		
+			return false;
+		}
+	}
+}
+
+function ZerlegungGBKennz($gbkennz) {
+// Das eingegebene Grundbuch-Kennzeichen auseinander nehmen (gggg-999999z-BVNR)
+// Return: 0=Fehler, 1=Such Bezirk-Name oder Listen alle Bezirke
+//         2=Such Bezirk-Nummer $zgbbez, 3=Such Blatt $zblatt, 4=Such BVNR $zbvnr
+	global $debug, $zgbbez, $zblatt, $zbvnr;	
+	$arr = explode("-", $gbkennz, 3);
+	$zgbbez=trim($arr[0]);
+	$zblatt=trim($arr[1]);
+	$zbvnr=trim($arr[2]);
+	if ($zgbbez == "") { // keine Eingabe
+		return 1; // alle Bezirke listen
+	} elseif ( ! is_ne_zahl($zgbbez)) {
+		return 1; // Such Bezirk-NAME
+	} elseif ($zblatt == "") {
+		return 2; // Such Bezirk-NUMMER
+	} elseif (is_blatt($zblatt)) {
+		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 0;
+		}
+	} else {
+		echo "<p class='err>Das Grundbuch-Blatt '".$zblatt."' ist ung&uuml;ltig.</p>";
+		return 0;
+	}
+}
+
+function SuchGBBezName() {
+// Grundbuch-Bezirk suchen nach Name(-nsanfang)
+	global $con, $gkz, $gemeinde, $debug, $gbkennz;
+	$linelimit=50;
+	$sql ="SELECT 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
+	$sql.="ORDER BY g.bezeichnung LIMIT $2 ;";
+	if ( $gbkennz == "") {
+		$match = "%";
+	} else {	
+		if(preg_match("/\*/",$gbkennz)){
+			$match = trim(preg_replace("/\*/i","%", strtoupper($gbkennz)));
+		} else {
+			$match = trim($gbkennz)."%";
+		}	
+	}
+	$v = array($match, $linelimit);
+	$res = pg_prepare("", $sql);
+	$res = pg_execute("", $v);
+	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;
+	// Loop  B E Z I R K	 
+	// +++ Sortierung und Gruppierung nach Amtsgericht ??
+	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");		
+		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</div>";
+		$cnt++;
+	}
+	if($cnt == 0){ 
+		echo "\n<p class='err'>Kein Grundbuchbezirk.</p>";
+	} elseif ($cnt >= $linelimit) {
+		echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>";
+	} elseif ($cnt == 1) {
+		return $gnr; // Wenn eindeutig, gleich weiter
+	}
+	return 0;
+}
+ 
+function EinBezirk($showParent) {
+	// Kennzeichen bestehend nur aus GB-Bezirk-SchlÃŒssel wurde eingegeben
+	global $con, $gkz, $gemeinde, $debug, $zgbbez, $auskpath;
+	$linelimit=200; // max. Blatt je Bezirk
+	// Dies linelimit nicht ausreichend fuer alle Blaetter eines Bezirks, aber ...
+	//  Wenn man die Blatt-Nr nicht kennt, kommt man hier sowieso nicht weiter.
+	//  Es nutzt also nichts, hier Tausende Nummern aufzulisten.
+	// +++ Wildcard in Blatt zulassen? Schwiegig bei numerischem Wert mit fuehrenden Nullen.
+	if ($showParent) {
+		$sql ="SELECT 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 ;";
+		$v=array($zgbbez);
+		$res=pg_prepare("", $sql);
+		$res=pg_execute("", $v);
+		if (!$res) {
+			echo "\n<p class='err'>Fehler bei Brundbuchbezirk.</p>";
+			if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+		}
+		$zgmk=0;
+		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");	
+			$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  " Bezirk ".$zgbbez." ist unbekannt.</p>";
+			echo "\n</div>";
+			return;
+		}
+		// > 1 auch mÃ¶glich ???
+		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='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbkennz=".$zgbbez."'>";		
+			echo $gnam."</a> (".$zgbbez.") AG ".$ag;
+		echo "\n</div>";
+	}
+	$sql ="SELECT b.gml_id, b.buchungsblattnummermitbuchstabenerweiterung AS blatt FROM ax_buchungsblatt b ";
+	$sql.="WHERE b.bezirk= $1 ORDER BY b.buchungsblattnummermitbuchstabenerweiterung LIMIT $2 ;";
+	$v=array($zgbbez, $linelimit);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Bezirk.</p>";
+		if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+	}
+	$cntbl=0; // Counter Blatt/Bezirk
+	// Loop  B L A T T	
+	while($row = pg_fetch_array($res)) {	
+		$blatt=$row["blatt"];
+		$gml=$row["gml_id"];
+		echo "\n<div class='gb' title='GB-Blatt'>";
+			echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gml."'>";
+				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='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gblatt=".$gml."&amp;gbkennz=".$zgbbez."-".$blatt."'>&nbsp;".$blatt."&nbsp;</a>";
+		echo "\n</div>";
+		$cntbl++;
+	}
+	if($cntbl == 0) { 
+		echo "\n<p class='err'>Kein Blatt im Bezirk.</p>";
+	} else {
+		if($cntbl >= $linelimit) {
+			echo "\n<p>... und weitere</p>";
+			echo "\n<p>Geben sie ein: '".$zgbbez."-999999A'<br>wobei '999999A' = gesuchtes GB-Blatt</p>";
+		}
+	}
+	return;
+}
+
+function gml_blatt() {
+	// Komplettes Kennzeichen "Bezirk + Blatt" wurde eingegeben.
+	// Dazu die gml_id des GB-Blattes ermitteln.
+	global $con, $gkz, $debug, $zgbbez, $zblatt;
+
+	// Blatt ->  B u c h u n g s s t e l l e
+	// ax_buchungsblatt   <istBestandteilVon<  ax_buchungsstelle 	
+	$sql ="SELECT b.gml_id FROM ax_buchungsblatt b "; 
+	$sql.="WHERE b.bezirk= $1 AND b.buchungsblattnummermitbuchstabenerweiterung= $2 ;";
+	$v=array($zgbbez, $zblatt);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Blatt (Kennzeichen).</p>";
+		return;
+	}
+	$cntbl=0; // Counter Blatt
+	while($row = pg_fetch_array($res)) {	
+		$bl_gml=$row["gml_id"];
+		$cntbl++;
+	}
+	if($cntbl == 0) { 
+		echo "\n<p class='err'>Grundbuchblatt '".$zgbbez."-".$zblatt."' nicht gefunden.</p>";
+	} elseif($cntbl == 1) {
+		return $bl_gml;
+	}
+	return;
+}
+
+function EinBlatt($showParent) {
+	// Kennzeichen Bezirk + Blatt wurde eingegeben
+	global $con, $gkz, $debug, $gemeinde, $auskpath, $zgbbez, $zblatt, $gblatt, $zbvnr;
+
+	if ($showParent) {	
+		echo "\n<div class='gb' title='GB-Blatt'>";
+			echo "\n\t<a title='Nachweis' target='_blank' href='".$auskpath."alkisbestnw.php?gkz=".$gkz."&amp;gmlid=".$gblatt."'>";
+				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='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gblatt=".$gblatt."&amp;gbkennz=".$zgbbez."-".$zblatt."'> ".$zblatt."</a>";
+		echo "\n</div>";
+	}
+	// Blatt ->  B u c h u n g s s t e l l e
+	// ax_buchungsblatt   <istBestandteilVon<  ax_buchungsstelle 
+	$sql ="SELECT s.gml_id, s.laufendenummer AS lfd ";
+	$sql.="FROM ax_buchungsstelle s ";
+	$sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_von "; 
+	$sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id ";
+	$sql.="WHERE v.beziehungsart='istBestandteilVon' AND b.gml_id= $1 ";
+	$sql.="ORDER BY s.laufendenummer;";
+	// +++ Buchungen ohne FLST weglassen ??
+	// +++ Counter FLST ausgeben, Buchungen mit 0 weglassen 
+	$v=array($gblatt);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Blatt.</p>";
+		if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+	}
+	$cntbu=0; // Counter Buchung/Blatt
+	while($row = pg_fetch_array($res)) {	
+		$bs_gml=$row["gml_id"];		
+		$lfd=$row["lfd"];
+		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='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbuchung=".$bs_gml."&amp;gbkennz=".$zgbbez."-".$zblatt."-".$lfd."'>".$lfd."</a>";
+		echo "\n</div>";
+		$cntbu++;
+	}
+	if($cntbu == 0) { 
+		echo "\n<p class='err'>Keine Buchung gefunden.</p>";
+	} elseif($cntbu = 1) {
+		//echo "\n<p>genau EINE Buchung gefunden".$lfd."</p>";
+		$zbvnr=$lfd; // mit dieser BVNR gleich weiter machen 
+	}
+	return $cntbu;
+}
+
+function gml_buchungsstelle() {
+	// Komplettes Kennzeichen "Bezirk + Blatt + BVNR" wurde eingegeben.
+	// Dazu die gml_id der Buchungsstelle ermitteln fuer die weitere Verfolgung der Beziehungen.
+	global $con, $gkz, $debug, $zgbbez, $zblatt, $zbvnr;
+
+	// Blatt ->  B u c h u n g s s t e l l e
+	// ax_buchungsblatt   <istBestandteilVon<  ax_buchungsstelle 	
+	$sql ="SELECT s.gml_id FROM ax_buchungsstelle s ";
+	$sql.="JOIN alkis_beziehungen v ON s.gml_id=v.beziehung_von "; 
+	$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);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Buchungsstelle (Kennzeichen).</p>";
+		return;
+	}
+	$zbs=0;
+	while($row = pg_fetch_array($res)) {	
+		$bs_gml=$row["gml_id"];
+		$zbs++;
+	}
+	if($zbs == 0) { 
+		echo "\n<p class='err'>Die Buchungsstelle wurde nicht gefunden.</p>";
+		return;
+	} elseif($zbs > 1) { // nur TEST
+		echo "\n<p class='err'>Buchungsstelle mehrfach gefunden.</p>";
+		return;
+	} else {
+		return $bs_gml;
+	}
+}
+
+function EinGrundstueck($showParent) {
+	// Die gml_id der Buchungsstelle ist bekannt.
+	global $con, $gkz, $debug, $gemeinde, $scalefs, $epsg, $auskpath, $gbuchung, $zgbbez, $zblatt, $zbvnr;
+
+	if ($showParent) {	
+		// wenn Kennzeichen bekannt ist, dann auch Blatt ausgeben
+		if (isset($zgbbez) and isset($zblatt)) {
+			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='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbkennz=".$zgbbez."-".$zblatt."'>&nbsp;".$zblatt."&nbsp;</a>";
+			echo "\n</div>";
+		} else {
+			echo "<p class='err'>Kennzeichen Bezirk und Blatt nicht gesetzt</p>";
+		}
+		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='alkisnav_grd.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;gbuchung=".$gbuchung."&amp;gbkennz=".$zgbbez."-".$zblatt."-".$zbvnr."'>&nbsp;".$zbvnr."&nbsp;</a>";
+		echo "\n</div>";
+	}
+	// +++ Ermitteln anderer Buchungsstellen mit Rechten an dieser
+	// +++ Ermitteln anderer Buchungsstellen wo diese Rechte hat
+
+	// +++ Filter "Gemeinde" berÃŒcksichtigt!! Wenn gesetzt.
+
+	// 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.="FROM ax_gemarkung g ";
+	$sql.="JOIN ax_flurstueck f ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+	$sql.="JOIN alkis_beziehungen v ON f.gml_id=v.beziehung_von "; 
+	$sql.="LEFT JOIN gemeinde_gemarkung t ON g.gemarkungsnummer=t.gemarkung ";
+	$sql.="WHERE v.beziehungsart='istGebucht' AND v.beziehung_zu= $1 "; // id buchungsstelle
+	$sql.="ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
+	$v=array($gbuchung);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Buchungsstelle (gml).</p>";
+		if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+	}
+	$zfs=0;
+	while($row = pg_fetch_array($res)) {	
+		$fs_gml=$row["gml_id"];
+		$gemei=$row["gemeinde"];
+		$gmkg=$row["bezeichnung"];
+		$flur=$row["flurnummer"];
+		$fskenn=$row["zaehler"];
+		if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer
+		$x=$row["x"];
+		$y=$row["y"];
+		if($gemeinde > 0 and $gemeinde != $gemei) { // ex-territorial
+			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</div>";			
+		} else {
+			echo "\n<div class='fs'>";
+				echo "\n\t<a title='Nachweis' target='_blank' href='".$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</a>";
+				echo "\n\t<a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='";
+					echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); ";
+					echo "parent.parent.hideHighlight();' ";
+					echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' ";
+					echo "onmouseout='parent.parent.hideHighlight()'>";
+				echo $gmkg." ".$flur."-".$fskenn."</a>";
+			echo "\n</div>";
+		}
+		$zfs++;
+	}
+	if($zfs == 0) {echo "\n<p class='err'>Kein Flurst&uuml;ck.</p>";}
+	return;
+}
+
+// ===========
+// Start hier!
+// ===========
+if(isset($epsg)) {
+	if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";} // aus MB
+	If (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);}
+} else {
+	if ($debug >= 2) {echo "<p class='err'>kein EPSG gesetzt</p>";}	
+	$epsg=$gui_epsg; // aus Conf
+}
+if ($debug >= 2) {
+	if(isset($gemeinde)) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";
+	} else {echo "<p>Kein Filter Gemeinde</p>";}
+}
+
+// Auch wenn redundant: Das Kennzeichen fÃŒr Anzeige und weitere Links zerlegen
+$kennztyp=ZerlegungGBKennz($gbkennz);
+if ($debug >= 2) {echo "<p>GB-Kennzeichen Typ=".$kennztyp."</p>";}
+// Wurde eine gml_id (internes Kennzeichen) aus einem Link verwendet?
+If (isset($gbuchung)) { // gml der Buchungsstelle
+	if ($debug >= 2) {echo "<p>Link Buchung(gml)=".$gbuchung."</p>";}
+	EinGrundstueck(true);
+} elseif(isset($gblatt)) { // gml des GB-Blattes
+	if ($debug >= 2) {echo "<p>Link Blatt(gml)=".$gblatt."</p>";}
+	if (EinBlatt(true) == 1) { // darauf genau eine Buchung
+		$gbuchung=gml_buchungsstelle(); // gml_id zum Kennzeichen
+		EinGrundstueck(false);
+	};
+} else {
+	// Kein internes Kennzeichen (gml_id), also nur 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);
+			}
+		}
+		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;
+	}
+}
+
+?>
+</body>
+</html>
Index: trunk/data/mapbender/http/nav/alkisnav_grd.htm
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_grd.htm	(revision 66)
+++ trunk/data/mapbender/http/nav/alkisnav_grd.htm	(revision 66)
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<base target="_self">
+	<title>ALKIS-Suche Grundbuch</title>
+	<link rel="stylesheet" type="text/css" href="alkisnav.css">
+	<script type="text/javascript" language="JavaScript">
+		// 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 arr = parms[0].split("=", 2); // 0: "?gkz"  1: "150"
+		var gkz = "000";
+		if(arr[0] == "?gkz") {gkz = arr[1];}
+		var arr = parms[1].split("=", 2)
+		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;
+	</script>
+</head>
+<body>
+
+<div id='tabs'>
+<ul>
+	<script type="text/javascript" language="JavaScript">
+		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><a target='_self' href='alkisnav_fls.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Flurst&uuml;ck</a></li>");
+		document.writeln("<li class='aktiveTab'>Grundb.</li>");
+	</script>
+</ul>
+</div>
+
+<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'>
+</form>
+
+<iframe name="GrdResultFrame" src="blank_grd.html" class='ResultFrame'></iframe>
+
+</body>
+</html>
Index: trunk/data/mapbender/http/nav/alkisnav.css
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav.css	(revision 65)
+++ trunk/data/mapbender/http/nav/alkisnav.css	(revision 66)
@@ -1,11 +1,11 @@
 /* Style fuer ALKIS-Navigation 
-	Vers. 2010-11-23
+	Version 2011-01-10
 */
 body,p,a,.textfield,.sbutton,.cityText,.streetText,.city {font-family: Verdana, Arial, Helvetica, sans-serif;}
-body		{	font-size: 11px; color: #000000; margin: 0px;}
+body		{font-size: 11px; color: #000000; margin: 0px;}
 
 p			{font-size: 10px;}
-p.hilfe 	{font-size: 9px; text-align: right; color: gray;} /* Programmier-Hilfsfelder */
-p.start 	{font-size: 9px; color: gray;}
+p.hilfe 	{font-size:  9px; text-align: right; color: gray;} /* Programmier-Hilfsfelder */
+p.start 	{font-size:  9px; color: gray;}
 p.nam		{font-size: 10px; border: 1px solid navy; padding: 3px; margin: 0px;}
 p.err		{font-size: 11px; color: red;}
@@ -16,14 +16,22 @@
 	a:active	{color: red;}
 
-/* abgestufte Treffer in Suche */
+/* abgestuft eingerueckte Treffer in Suche */
 div			{margin: 0px; padding: 0px;}
 div.back 	{font-size: 10px; color: gray; border-bottom: 1px dotted gray;}
 div.nam		{color: maroon;} /* Name */
-div.gb		{color: green;  margin-left: 6px;} /* Grundbuch */
-div.gk		{color: black;  margin-left: 0px; margin-top: 6px;} /* Gemarkung */
-div.fl		{color: olive;  margin-left: 6px; margin-top: 4px;} /* Flur */
-div.fs		{color: navy;   margin-left: 12px; margin-top: 0px;} /* Flurstueck */
+div.gb		{color: green;  margin-left:  6px;} /* Grundbuch */
+div.gk		{color: black;  margin-left:  0px; margin-top: 6px;} /* Gemarkung */
+div.fl		{color: olive;  margin-left:  9px; margin-top: 4px;} /* Flur */
 div.st		{color: maroon;}
+div.gs		{color: olive;  margin-left: 12px; margin-top: 2px;} /* Grundstueck, BVNR */
+div.fs		{color: navy;   margin-left: 18px; margin-top: 0px;} /* Flurstueck */
 
+/*  Abstufungen (margin-left)
+  Adr.:
+  Name:
+  Flst:  gk    - fl   - fs
+  Grdb:  gk - gb - gs - fs
+          0   6  9 12   18
+ */
 td.hsnr {text-align: center; margin: 2px;}
 hr {color: gray;}
@@ -57,5 +65,5 @@
 	width: 220px;
 	text-align: left;
-	border:0px dashed #00aa00;
+	border: 0px dashed #00aa00;
 }
 div#tabs li {
@@ -83,7 +91,7 @@
 /* passt in Mapbender 2.5: tabs width=280, tab_frameHeight[n]=360 */
 iframe.OuterFrame{
-	width: 260px; height: 330px; 
+	width: 250px; height: 330px; 
 	padding: 0px; margin: 0px;
-	border:0px dotted #ff0000;
+	border: 0px dotted #ff0000;
 	overflow: hidden;
 	background-color: white;
@@ -94,4 +102,4 @@
 	width: 235px; height: 220px;
 	padding: 0px; margin: 0px;
-	border:0px dotted #00ff00;
+	border: 0px dotted #00ff00;
 }
Index: trunk/data/mapbender/http/nav/alkisnav_fls.php
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_fls.php	(revision 66)
+++ trunk/data/mapbender/http/nav/alkisnav_fls.php	(revision 66)
@@ -0,0 +1,328 @@
+<?php
+// Version vom 10.01.2011 
+// Test: http://mapserver.krz.de/mapbenderneu/nav/alkisnav_eig.htm?gkz=150&gemeinde=40
+$gkz = urldecode($_REQUEST["gkz"]); // Mandant
+include("../../conf/alkisnav_conf.php");
+import_request_variables("PG");
+
+// Datenbank-Connection
+$con_string = "host=".$host." port=".$port." dbname=".$dbname.$gkz." user=".$user." password=".$password;
+$con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$dbname);
+?>
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<title>ALKIS-Suche Flurst&uuml;ck</title>
+	<link rel="stylesheet" type="text/css" href="alkisnav.css">
+</head>
+<body>
+
+<?php
+
+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 ZerlegungFsKennz($fskennz) {
+// Das eingegebene FlurstÃŒcks-Kennzeichen auseinander nehmen, Erwartet wird gggg-fff-zzzz/nnn
+	global $debug, $zgemkg, $zflur, $zzaehler, $znenner;	
+	$arr = explode("-", $fskennz, 4);
+	$zgemkg=trim($arr[0]);
+	$zflur=trim($arr[1]);
+	$zfsnr=trim($arr[2]);
+	if ($zgemkg == "") {
+		return 1; // alle Gmkg listen
+	} elseif ( ! is_ne_zahl($zgemkg)) {
+		return 1; // Such Name
+	} elseif ($zflur == "") {
+		return 2; // G-Nr
+	} elseif ( ! is_ne_zahl($zflur)) {
+		echo "<p class='err>Die Flurnummer '".$zflur."' ist nicht numerisch</p>";
+		return 0;
+	} elseif ($zfsnr == "") {		
+		return 3; // Flur				
+	} else {
+		$zn=explode("/", $zfsnr, 2);
+		$zzaehler=trim($zn[0]);
+		$znenner=trim($zn[1]);				
+		if ( ! is_ne_zahl($zzaehler)) {
+			echo "<p class='err>FlurstÃŒcksnummer '".$zzaehler."' ist nicht numerisch</p>";
+			return 0;
+		} elseif ($znenner == "") {
+			return 4;
+		} elseif (is_ne_zahl($znenner)) {
+			return 5;								
+		} else {
+			echo "<p class='err>FlurstÃŒcks-Nenner '".$znenner."' ist nicht numerisch</p>";
+			return 0;
+		}
+	}
+}
+
+function SuchGmkgName() {
+// Gemarkung suchen nach Name(-nsanfang)
+	global $con, $gkz, $gemeinde, $debug, $fskennz;
+	$linelimit=120;
+	if(preg_match("/\*/",$fskennz)){
+		$match = trim(preg_replace("/\*/i","%", strtoupper($fskennz)));
+	} else {
+		$match = trim($fskennz)."%";
+	}	
+	$sql ="SELECT v.gemeindename, g.gemarkungsnummer, g.bezeichnung ";
+	$sql.="FROM ax_gemarkung g JOIN gemeinde_gemarkung v ON g.gemarkungsnummer=v.gemarkung ";
+   $sql.="WHERE bezeichnung ILIKE $1 ";
+	// GUI-Parameter filtert auf Gemeindegebiet
+	if($gemeinde > 0) {$sql.=" AND v.gemeinde=".$gemeinde;} // wie prepared?
+	$sql.=" ORDER BY g.bezeichnung LIMIT $2 ;";
+	$v=array($match, $linelimit);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {
+		echo "\n<p class='err'>Fehler bei Gemarkung</p>";
+		if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";}
+		return 0;
+	}
+	$cnt = 0;
+	while($row = pg_fetch_array($res)) {
+		$gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");
+		$gnr=$row["gemarkungsnummer"];
+		$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='alkisnav_fls.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;fskennz=".$gnr."'>";		
+				echo  " ".$gnam." (".$gnr.")";
+				if ($gemeinde == 0) {echo  " ".$stadt;} // Kreisweit
+			echo "</a>";
+		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 EineGemarkung($AuchGemkZeile) {
+	// Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben
+	global $con, $gkz, $gemeinde, $debug, $zgemkg;
+	$linelimit=120; // max. Fluren je Gemarkung
+	if ($AuchGemkZeile) {
+		$sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; // WHERE f.land= ?
+		$v=array($zgemkg);
+		$res=pg_prepare("", $sql);
+		$res=pg_execute("", $v);
+		if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";}
+		$zgmk=0;
+		while($row = pg_fetch_array($res)) {	
+			$gmkg=$row["bezeichnung"];
+			$zgmk++;
+		}
+		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  " Gemarkung ".$zgemkg." ist unbekannt.</p>";
+			echo "\n</div>";
+			return;
+		}
+		// > 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='alkisnav_fls.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;fskennz=".$zgemkg."'>";		
+				echo  " Gemarkung ".$gmkg." (".$zgemkg.")";
+			echo "</a>";
+		echo "\n</div>";
+	}
+	$sql ="SELECT gemarkungsteilflur AS flur FROM ax_gemarkungsteilflur f ";
+	$sql.="WHERE gemarkung= $1 ORDER BY gemarkungsteilflur LIMIT $2 ;"; 	// WHERE f.land= ?
+	$v=array($zgemkg, $linelimit);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {echo "\n<p class='err'>Fehler bei Flur.</p>";}
+	$zfl=0;
+	while($row = pg_fetch_array($res)) {	
+		$flur=$row["flur"];
+		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='alkisnav_fls.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;fskennz=".$zgemkg."-".$flur."'>&nbsp;".$flur."&nbsp;</a>";
+		echo "\n</div>";
+		$zfl++;
+	}
+	if($zfl == 0) { 
+		echo "\n<p class='err'>Keine Flur.</p>";
+	} elseif($cnt >= $linelimit) {
+		echo "\n<p>... und weitere</p>";
+	}
+	return;
+}
+
+function EineFlur() {
+	// Kennzeichen bestehend aus Gemarkung und Flurnummer wurde eingegeben
+	global $con, $gkz, $gemeinde, $debug, $scalefs, $epsg, $auskpath, $zgemkg, $zflur;
+	$linelimit=600; // Wie groÃ kann eine Flur sein?
+	$sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;";
+	$v=array($zgemkg);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {echo "\n<p class='err'>Fehler bei Gemarkung.</p>";}
+	$zgmk=0;
+	while($row = pg_fetch_array($res)) {	
+		$gmkg=$row["bezeichnung"];
+		$zgmk++;
+	}
+	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  " Gemarkung ".$zgemkg." ist unbekannt.</p>";
+		echo "\n</div>";
+		return;
+	}
+	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='alkisnav_fls.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&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='alkisnav_fls.php?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&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.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 ";
+	$sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land= ?
+	$v=array($zgemkg, $zflur, $linelimit);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {echo "\n<p class='err'>Fehler bei Flur.</p>";}
+	$zfs=0;
+	while($row = pg_fetch_array($res)) {	
+		$fs_gml=$row["gml_id"];
+		$flur=$row["flurnummer"];
+		$fskenn=$row["zaehler"];
+		if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer
+		$x=$row["x"];
+		$y=$row["y"];
+		echo "\n<div class='fs'>";
+			echo "\n\t<a title='Nachweis' target='_blank' href='".$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</a> ";			
+			echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='";
+				echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); ";
+				echo "parent.parent.hideHighlight();' ";
+				echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' ";
+				echo "onmouseout='parent.parent.hideHighlight()'>&nbsp;".$fskenn."&nbsp;</a>";
+		echo "\n</div>";
+		$zfs++;
+	}
+	if($zfs == 0) { 
+		echo "\n<p class='err'>Kein Flurst&uuml;ck.</p>";
+	} elseif($zfs >= $linelimit) {
+		echo "\n<p>... und weitere</p>";
+	}
+	return;
+}
+
+function nurEinFlurstueck() {
+	// FlurstÃŒckskennzeichen komplett bis zum Zaehler eingegeben
+	// Sonderfall: bei Bruchnummer, mehrere Nenner zum Zaehler
+	global $con, $gkz, $debug, $scalefs, $epsg, $auskpath, $zgemkg, $zflur, $zzaehler, $znenner;
+
+	$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.="g.gemarkungsnummer, g.bezeichnung ";
+   $sql.="FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer ";
+	$sql.="WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 AND f.zaehler= $3 ";
+	If ($znenner != "") {$sql.="AND f.nenner=".$znenner." ";} // wie prepared?
+	$sql.="ORDER BY f.zaehler, f.nenner;";
+	// WHERE f.land= ?
+	$v=array($zgemkg, $zflur, $zzaehler);
+	$res=pg_prepare("", $sql);
+	$res=pg_execute("", $v);
+	if (!$res) {echo "\n<p class='err'>Fehler bei Flurst&uuml;ck.</p>";}
+	$zfs=0;
+	while($row = pg_fetch_array($res)) {	
+		$fs_gml=$row["gml_id"];
+		$gmkg=$row["bezeichnung"];
+		$flur=$row["flurnummer"];
+		$fskenn=$row["zaehler"];
+		if ($row["nenner"] != "") {$fskenn.="/".$row["nenner"];} // Bruchnummer
+		$x=$row["x"];
+		$y=$row["y"];
+		echo "\n<div class='fs'>";
+			echo "\n\t<a title='Nachweis' target='_blank' href='".$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</a> ";		
+			echo "\n\tFlst. <a title='Flurst&uuml;ck positionieren 1:".$scalefs."' href='";
+				echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalefs."); ";
+				echo "parent.parent.hideHighlight();' ";
+				echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' ";
+				echo "onmouseout='parent.parent.hideHighlight()'>";
+			echo $gmkg." ".$flur."-".$fskenn."</a>";
+		echo "\n</div>";
+		$zfs++;
+	}
+	if($zfs == 0) {echo "\n<p class='err'>Kein Flurst&uuml;ck.</p>";}
+	return;
+}
+
+// ===========
+// Start hier!
+// ===========
+if(isset($epsg)) {
+	if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>";	} // aus MB
+	if (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);}
+} else {
+	if ($debug >= 2) {echo "<p class='err'>kein EPSG gesetzt</p>";}	
+	$epsg=$gui_epsg; // aus Conf
+}
+if ($debug >= 2) {
+	if(isset($gemeinde)) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";
+	} else {echo "<p>Kein Filter Gemeinde</p>";}
+}
+
+// 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 ($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>";}
+	nurEinFlurstueck();
+	break;
+case 5:
+	if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."/".$znenner."</p>";}
+	nurEinFlurstueck();
+	break;
+}
+
+?>
+
+</body>
+</html>
Index: trunk/data/mapbender/http/nav/alkisnav_fls.htm
===================================================================
--- trunk/data/mapbender/http/nav/alkisnav_fls.htm	(revision 66)
+++ trunk/data/mapbender/http/nav/alkisnav_fls.htm	(revision 66)
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+	<meta http-equiv="cache-control" content="no-cache">
+	<meta http-equiv="pragma" content="no-cache">
+	<meta http-equiv="expires" content="0">
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<base target="_self">
+	<title>ALKIS-Suche Flurst&uuml;ck</title>
+	<link rel="stylesheet" type="text/css" href="alkisnav.css">
+	<script type="text/javascript" language="JavaScript">
+		// 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 arr = parms[0].split("=", 2); // 0: "?gkz"  1: "150"
+		var gkz = "000";
+		if(arr[0] == "?gkz") {gkz = arr[1];}
+		var arr = parms[1].split("=", 2)
+		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;
+	</script>
+</head>
+<body>
+
+<div id='tabs'>
+<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_eig.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Name</a></li>");
+		document.writeln("<li class='aktiveTab'>Flurst&uuml;ck</li>");
+		document.writeln("<li><a target='_self' href='alkisnav_grd.htm?gkz=" + gkz + "&amp;gemeinde=" + gem + "'>Grundb.</a></li>");
+	</script>
+</ul>
+</div>
+
+<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'>
+</form>
+
+<iframe name="FlsResultFrame" src="blank_fls.html" class='ResultFrame'></iframe>
+
+</body>
+</html>
Index: trunk/data/mapbender/http/nav/nav_in_gui.sql
===================================================================
--- trunk/data/mapbender/http/nav/nav_in_gui.sql	(revision 66)
+++ trunk/data/mapbender/http/nav/nav_in_gui.sql	(revision 66)
@@ -0,0 +1,82 @@
+-- ALKIS Navigation in eine MB-GUI einfuegen 
+-- 2010-11-17
+
+
+-- MB 2.6.2
+
+INSERT INTO gui_element(fkey_gui_id, e_id, e_pos, e_public, e_comment, e_title, 
+e_element, e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, 
+e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url) 
+VALUES(
+	'Lage_1',
+	'gazetteer_alkis',
+	2,1,
+	'ALKIS-Navigation (in Tab)',
+	'Liegenschaftskataster ALKIS',
+	'iframe',
+	'../nav/alkisnav.htm?gkz=150&gemeinde=40&sessionID',
+	'frameborder = "0" onmouseover="this.style.zIndex=300;this.style.width=280;" onmouseout="this.style.zIndex=2;this.style.width=225"',1,1,1,1,1,'visibility:hidden; border: 1px solid #a19c8f;'
+	,'','iframe','','','mapframe1','','');
+
+
+
+-- MB 2.5
+
+-- Lage 150  40
+-- HBM  140  32
+-- Leo  070  48
+
+-- Demo rlp 103    epsg 25832
+
+INSERT INTO gui_element(fkey_gui_id, e_id, e_pos, e_public, e_comment, 
+e_title, e_element, e_src, e_attributes, e_left, e_top, 
+e_width, e_height, e_z_index, e_more_styles, e_content, 
+e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url) 
+VALUES(
+	'Lage_1',   -- GUI-Name
+	'gazetteer_alkis',
+	2,1,
+	'ALKIS-Navigation (in Tab)',
+	'Liegenschaftskataster ALKIS',
+	'iframe',
+	'../nav/alkisnav.htm?gkz=150&gemeinde=40&sessionID',  -- GKZ, Gemeinde-Schluessel
+	'frameborder = "1"',1,1,1,1,1,
+	'visibility:hidden',
+	'','iframe','','','mapframe1','','');
+
+
+INSERT INTO gui_element(fkey_gui_id, e_id, e_pos, e_public, e_comment, 
+e_title, e_element, e_src, e_attributes, e_left, e_top, 
+e_width, e_height, e_z_index, e_more_styles, e_content, 
+e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url) 
+VALUES(
+	'Leopoldshoehe_1',   -- GUI-Name
+	'gazetteer_alkis',
+	2,1,
+	'ALKIS-Navigation (in Tab)',
+	'Liegenschaftskataster ALKIS',
+	'iframe',
+	'../nav/alkisnav.htm?gkz=070&gemeinde=&sessionID',  -- GKZ, Gemeinde-Schluessel
+	'frameborder = "1"',1,1,1,1,1,
+	'visibility:hidden',
+	'','iframe','','','mapframe1','','');
+
+
+-- WWW
+
+INSERT INTO gui_element(fkey_gui_id, e_id, e_pos, e_public, e_comment, 
+e_title, e_element, e_src, e_attributes, e_left, e_top, 
+e_width, e_height, e_z_index, e_more_styles, e_content, 
+e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url) 
+VALUES(
+	'ALKIS_Demo',   -- GUI-Name
+	'gazetteer_alkis',
+	2,1,
+	'ALKIS-Navigation (in Tab)',
+	'Liegenschaftskataster ALKIS',
+	'iframe',
+	'../nav/alkisnav.htm?gkz=rlp&gemeinde=103&sessionID',  -- GKZ, Gemeinde-Schluessel
+	'frameborder = "1"',1,1,1,1,1,
+	'visibility:hidden',
+	'','iframe','','','mapframe1','','');
+
Index: trunk/data/mapbender/conf/alkisnav_conf.php
===================================================================
--- trunk/data/mapbender/conf/alkisnav_conf.php	(revision 66)
+++ trunk/data/mapbender/conf/alkisnav_conf.php	(revision 66)
@@ -0,0 +1,26 @@
+<?php
+# Einstellungen fuer Mapbender-Navigation mit ALKIS-Daten
+# ALKIS-PostGIS-Datenbank aus Konverter PostNAS 0.5
+# krz Mi.-Ra./Li. 2010-11-17
+
+# DB-Connection
+$host="localhost";
+$port="5432";
+$dbname="alkis05"; // .$gkz - Mandant
+$user="***";
+$password="****";
+
+# Pfad zu den ALKIS-Auskunft-Programmen
+$auskpath="../../../intern/";
+
+# Massstab zum Positionieren auf Flurstueck, Strasse, Hausnummer
+$scalefs=750;
+$scalestr=2000;
+$scalehs=500;
+
+# default-Koordinatensystem der GUI
+$gui_epsg=31467;
+
+# Entwicklungsumgebung
+$debug=0; // 0=Produktion, 1=mit Fehlermeldungen, 2=mit Informationen, 3=mit SQL
+?>
