[Mapbender-commits] r1840 - branches/mapbender_sld/http/php

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Fri Nov 23 08:50:25 EST 2007


Author: christoph
Date: 2007-11-23 08:50:25 -0500 (Fri, 23 Nov 2007)
New Revision: 1840

Modified:
   branches/mapbender_sld/http/php/database-mysql.php
   branches/mapbender_sld/http/php/database-pgsql.php
   branches/mapbender_sld/http/php/mb_js_exception.php
   branches/mapbender_sld/http/php/mb_listGUIs.php
   branches/mapbender_sld/http/php/mb_listWMCs.php
   branches/mapbender_sld/http/php/mod_addWMSfromfilteredList_server.php
   branches/mapbender_sld/http/php/mod_changeEPSG.php
   branches/mapbender_sld/http/php/mod_changeEPSG_dynamic.php
   branches/mapbender_sld/http/php/mod_createUser.php
   branches/mapbender_sld/http/php/mod_deleteWFS.php
   branches/mapbender_sld/http/php/mod_deleteWMS.php
   branches/mapbender_sld/http/php/mod_editElements.php
   branches/mapbender_sld/http/php/mod_editFilteredUser.php
   branches/mapbender_sld/http/php/mod_editUser.php
   branches/mapbender_sld/http/php/mod_editWMS_Metadata.php
   branches/mapbender_sld/http/php/mod_exportElement.php
   branches/mapbender_sld/http/php/mod_exportGUI.php
   branches/mapbender_sld/http/php/mod_filteredGroup_User.php
   branches/mapbender_sld/http/php/mod_filteredGroup_filteredUser.php
   branches/mapbender_sld/http/php/mod_filteredGui_User.php
   branches/mapbender_sld/http/php/mod_filteredGui_filteredUser.php
   branches/mapbender_sld/http/php/mod_filteredUser_Group.php
   branches/mapbender_sld/http/php/mod_filteredUser_Gui.php
   branches/mapbender_sld/http/php/mod_filteredUser_filteredGroup.php
   branches/mapbender_sld/http/php/mod_filteredUser_filteredGui.php
   branches/mapbender_sld/http/php/mod_gazetteerMetadata.php
   branches/mapbender_sld/http/php/mod_getStyles.php
   branches/mapbender_sld/http/php/mod_group_filteredUser.php
   branches/mapbender_sld/http/php/mod_group_user.php
   branches/mapbender_sld/http/php/mod_gui_filteredUser.php
   branches/mapbender_sld/http/php/mod_gui_owner.php
   branches/mapbender_sld/http/php/mod_gui_user.php
   branches/mapbender_sld/http/php/mod_help.php
   branches/mapbender_sld/http/php/mod_layerMetadata.php
   branches/mapbender_sld/http/php/mod_loadCapabilitiesList.php
   branches/mapbender_sld/http/php/mod_logout.php
   branches/mapbender_sld/http/php/mod_map1.php
   branches/mapbender_sld/http/php/mod_mapOV.php
   branches/mapbender_sld/http/php/mod_meetingPoint.php
   branches/mapbender_sld/http/php/mod_monitorCapabilities_main.php
   branches/mapbender_sld/http/php/mod_monitorCapabilities_read.php
   branches/mapbender_sld/http/php/mod_monitorCapabilities_write.php
   branches/mapbender_sld/http/php/mod_renameGUI.php
   branches/mapbender_sld/http/php/mod_saveWKT.php
   branches/mapbender_sld/http/php/mod_updateWMS.php
   branches/mapbender_sld/http/php/mod_usemap.php
   branches/mapbender_sld/http/php/mod_user_filteredGroup.php
   branches/mapbender_sld/http/php/mod_user_filteredGui.php
   branches/mapbender_sld/http/php/mod_user_group.php
   branches/mapbender_sld/http/php/mod_user_gui.php
   branches/mapbender_sld/http/php/mod_wfs.php
   branches/mapbender_sld/http/php/mod_wfs_conf.php
   branches/mapbender_sld/http/php/mod_wfs_edit.php
   branches/mapbender_sld/http/php/mod_wfs_result.php
   branches/mapbender_sld/http/php/mod_wfsrequest.php
Log:
updated php

Modified: branches/mapbender_sld/http/php/database-mysql.php
===================================================================
--- branches/mapbender_sld/http/php/database-mysql.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/database-mysql.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -61,17 +61,25 @@
 function db_escape_string($unescaped_string){
 	return @mysql_escape_string($unescaped_string);
 }
+
+
 function db_connect($DBSERVER="",$OWNER="",$PW="") {
 	global $sys_dbhost,$sys_dbuser,$sys_dbpasswd,$sys_dbname,
 		$conn,$conn_update,$sys_db_use_replication,$sys_dbreadhost;
 
-
+	
 	if ($DBSERVER)
 		$sys_dbhost = $DBSERVER; 
 	if ($OWNER)
 		$sys_dbuser = $OWNER; 
 	if ($PW)
 		$sys_dbpasswd = $PW; 
+	if (PORT!=''){
+		$sys_dbport = ':'.PORT;
+	}
+	else{
+		$sys_dbport = '';
+	} 
 		
 	if ($sys_db_use_replication) {
 		//
@@ -81,8 +89,8 @@
 		$conn = @mysql_pconnect($sys_dbreadhost,$sys_dbuser,$sys_dbpasswd);
 		$conn_update=@mysql_pconnect($sys_dbhost,$sys_dbuser,$sys_dbpasswd);
 	} else {
-		$conn = @mysql_pconnect($sys_dbhost,$sys_dbuser,$sys_dbpasswd);
-//		echo "@mysql_pconnect($sys_dbhost,$sys_dbuser,$sys_dbpasswd)";
+		$conn = @mysql_pconnect($sys_dbhost.$sys_dbport,$sys_dbuser,$sys_dbpasswd);
+		#echo "@mysql_pconnect($sys_dbhost.$sys_dbport,$sys_dbuser,$sys_dbpasswd)";
 	}
 	if ($sys_dbname)
 		@mysql_select_db($sys_dbname);
@@ -136,7 +144,7 @@
 		//if we haven't yet done an insert/update, 
 		//read from the read-only db
 		//
-		if (!$sys_db_is_dirty && eregi("^( )*(select)",$qstring)) {
+		if (!$sys_db_is_dirty && mb_eregi("^( )*(select)",$qstring)) {
 			if ($QUERY_COUNT%3==0) {
 				// 1/3rd of read queries go to master for now
 				return @mysql_db_query($sys_dbname,$qstring,$conn_update);
@@ -179,9 +187,9 @@
 		else{
 			$tmp .= "NULL";
 		}
-		$posa = strpos($qstring, $needle);
-		$posb = strlen($needle);
-		$qstring = substr($qstring,0,$posa).$tmp.substr($qstring,($posa + $posb));	
+		$posa = mb_strpos($qstring, $needle);
+		$posb = mb_strlen($needle);
+		$qstring = mb_substr($qstring,0,$posa).$tmp.mb_substr($qstring,($posa + $posb));	
 	}
 	$r = db_query($qstring);
 	return $r;

Modified: branches/mapbender_sld/http/php/database-pgsql.php
===================================================================
--- branches/mapbender_sld/http/php/database-pgsql.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/database-pgsql.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -60,10 +60,12 @@
 }
 $DB = DB;
 
+
 function db_connect($DBSERVER="",$OWNER="",$PW="") {
 	global $sys_dbhost,$sys_dbuser,$sys_dbpasswd,$sys_dbname,$db_debug;
 	global $conn,$conn_update,$DB;	
-	//global DBSERVER,OWNER,PW,DB;
+
+	
 	$db_debug=0;
 	if ($DBSERVER)
 		$sys_dbhost = $DBSERVER; 
@@ -71,6 +73,9 @@
 		$sys_dbuser = $OWNER; 
 	if ($PW && $PW != null)
 		$sys_dbpasswd = $PW; 
+	
+	$sys_dbport = PORT; 	
+		
 	if($GLOBALS['DB'])
 		$sys_dbname = $DB;
 			
@@ -80,7 +85,9 @@
 	if ($sys_dbname)		
 		$connstring.=" dbname=$sys_dbname";		
 	if ($sys_dbhost)		
-		$connstring.=" host=$sys_dbhost";		
+		$connstring.=" host=$sys_dbhost";	
+	if ($sys_dbport)		
+		$connstring.=" port=$sys_dbport";		
 	if ($sys_dbpasswd)		
 		$connstring.=" password=$sys_dbpasswd";		
 	
@@ -152,11 +159,14 @@
 			else{
 				$tmp .= "NULL";
 			}
-			$posa = strpos($qstring, $needle);
-			$posb = strlen($needle);
-			$qstring = substr($qstring,0,$posa).$tmp.substr($qstring,($posa + $posb));	
+			$posa = mb_strpos($qstring, $needle);
+			$posb = mb_strlen($needle);
+			$qstring = mb_substr($qstring,0,$posa).$tmp.mb_substr($qstring,($posa + $posb));	
 		}
 		$r = db_query($qstring);
+		if(!$r){
+			$e = new mb_exception("Error while executing sql statement in ".$_SERVER['SCRIPT_FILENAME'].": Sql: ".$qstring.", Error: ".db_error());
+		}
 	}
 	else{
 		$result = pg_prepare("", $qstring);

Modified: branches/mapbender_sld/http/php/mb_js_exception.php
===================================================================
--- branches/mapbender_sld/http/php/mb_js_exception.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mb_js_exception.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -7,6 +7,9 @@
 if ($level == "warning") {
 	$e = new mb_warning($message);
 }
+else if ($level == "notice") {
+	$e = new mb_notice($message);
+}
 else if ($level == "error") {
 	$e = new mb_exception($message);
 }

Modified: branches/mapbender_sld/http/php/mb_listGUIs.php
===================================================================
--- branches/mapbender_sld/http/php/mb_listGUIs.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mb_listGUIs.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -36,7 +36,9 @@
 		}
 		$sql_list_guis .= ") ORDER BY gui_name";
 		$res_list_guis = db_prep_query($sql_list_guis,$v,$t);
-		echo "<a href=\"../php/mod_editSelf.php?".SID."\" class='list_guis' target=_blank>Change personal settings</a>";
+		if ($_SESSION["mb_user_name"] != "test" && $_SESSION["mb_user_name"] != "demo") {
+			echo "<a href=\"../php/mod_editSelf.php?".SID."\" class='list_guis' target=_blank>Change personal settings</a>";
+		}
 		echo "</td><td align = 'right'>";
 		echo "<a href=\"../php/mod_logout.php?".SID."\"><img src =\"../img/button_gray/logout_off.png\" border='0' onmouseover='this.src=\"../img/button_gray/logout_over.png\"' onmouseout='this.src=\"../img/button_gray/logout_off.png\"' title=\"Logout\"></a>";
 		echo "</td></tr></table>";

Modified: branches/mapbender_sld/http/php/mb_listWMCs.php
===================================================================
--- branches/mapbender_sld/http/php/mb_listWMCs.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mb_listWMCs.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -24,6 +24,7 @@
 $wmcId = $_GET["wmc_id"];
 
 $delWmcId = $_POST["del_wmc_id"];
+$clientFilename = $_FILES['local_wmc_filename']['tmp_name'];
 
 $form_target = $_SERVER["PHP_SELF"] . "?" . SID;
 
@@ -51,7 +52,7 @@
 
 <?php
 function mb_listWMCs($wmcIdArray, $form_target){
-	$display = "<h2 style='font-family: Arial, Helvetica, sans-serif; color: #808080;background-color: White;'><font align='left' color='#000000'>Ma</font><font color='#0000CE'>p</font><font color='#C00000'>b</font><font color='#000000'>ender WMC list</font></h2>";
+	$display = "<h2 style='font-family: Arial, Helvetica, sans-serif; color: #808080;background-color: White;'><font align='left' color='#000000'>load WMC from list</font></h2>";
 	$display .= "<table width='90%' style='font-family: Arial, Helvetica, sans-serif;font-size : 12px;color: #808080;' border='1' cellpadding='3' rules='rows'><tr style='background-color:#F0F0F0;' width='80px'><td ><b>WMC name</b></td><td><b>last update</b></td><td colspan=5></td></tr>";
 
 	if (count($wmcIdArray) > 0) {
@@ -118,9 +119,20 @@
 	}
 }
 
+function loadFile($filename) {
+	$handle = fopen($filename, "r");
+	$cnt = 0;
+	while (!feof($handle)) {
+    	$buffer .= fgets($handle, 4096);
+	}
+	fclose ($handle);
+	return $buffer;
+}
+
 $admin = new administration();
 $wmcIdArray = $admin->getWmcByOwner($user_id);
 
+// wmc is being deleted
 if (!empty($delWmcId)) {
 	$result = $admin->deleteWmc($delWmcId, $user_id);
 	if (!$result) {
@@ -129,7 +141,36 @@
 		echo "</script>";
 	}
 }
+// wmc is being loaded from file
+elseif ($clientFilename) {
+	$serverFilename = "../tmp/wmc" . time() . ".xml";
+	copy($clientFilename, $serverFilename);
+	
+	$wmc = new wmc();
+	$wmc->createObjFromWMC_xml(loadFile($serverFilename));
+	
+	$mytarget = getTarget($gui_id);
+	$js = $wmc->createJsObjFromWMC("window.opener.", $mytarget, "load");
+	echo "<script language='javascript'>";
+	echo $js;
+	if ($wmc->getTitle()) {
+		$title = "'" . $wmc->getTitle() . "' ";
+	}
+	echo "alert(\"WMC " . $title . ": load successful.\");\n";
+	echo "window.close();";
+	echo "</script>";
+}
 
+// load a WMC from file
+?>
+<h2 style='font-family: Arial, Helvetica, sans-serif; color: #808080;background-color: White;'><font align='left' color='#000000'>load WMC from file</font></h2>
+<form enctype="multipart/form-data" action="<?php echo $form_target;?>" method=POST target="_self"> 
+<input type='file' name='local_wmc_filename'>
+<input type='submit' value='load'>
+</form>
+<?php
+
+// load a WMC from list
 echo mb_listWMCs($wmcIdArray, $form_target);
 		
 if ($wmcId && in_array($wmcId, $wmcIdArray)){

Modified: branches/mapbender_sld/http/php/mod_addWMSfromfilteredList_server.php
===================================================================
--- branches/mapbender_sld/http/php/mod_addWMSfromfilteredList_server.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_addWMSfromfilteredList_server.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -41,12 +41,12 @@
 if ($command == "getGroups") {
 	$resultObj["group"] = array();
 	
-	$sql = "SELECT mb_group_id, mb_group_name, mb_group_description ";
+	$sql = "SELECT mb_group_id, mb_group_name, gettext($1, mb_group_description) as mb_group_description ";
 	$sql .= "FROM mb_group, mb_user_mb_group ";
-	$sql .= "WHERE fkey_mb_group_id = mb_group_id AND fkey_mb_user_id = $1 ";
+	$sql .= "WHERE fkey_mb_group_id = mb_group_id AND fkey_mb_user_id = $2 ";
 	$sql .= "ORDER BY mb_group_name";	
-	$v = array($userId);
-	$t = array("i");
+	$v = array($_SESSION["mb_lang"], $userId);
+	$t = array("s", "i");
 	$res = db_prep_query($sql, $v, $t);
 			
 	while($row = db_fetch_array($res)){
@@ -58,15 +58,15 @@
 
 	$resultObj["gui"] = array();
 	
-	$sql = "SELECT * FROM gui WHERE gui_id IN (";
-	$v = array();
-	$t = array();
+	$sql = "SELECT gui_id, gui_name, gettext($1, gui_description) as gui_description FROM gui WHERE gui_id IN (";
+	$v = array($_SESSION["mb_lang"]);
+	$t = array("s");
 	
 	for ($i = 0; $i < count($guiIdArray); $i++) {
 		if ($i > 0) { 
 			$sql .= ",";
 		}
-		$sql .= "$" . strval($i + 1);
+		$sql .= "$" . strval($i + 2);
 		array_push($v, $guiIdArray[$i]);
 		array_push($t, "s");
 	}
@@ -82,17 +82,17 @@
 else if ($command == "getAllWMS") {
 	$resultObj["wms"] = array();
 					 
-	$sql = "SELECT DISTINCT wms.wms_id, wms.wms_title, wms.wms_abstract, wms.wms_getcapabilities, wms.wms_version ";
+	$sql = "SELECT DISTINCT wms.wms_id, wms.wms_title, gettext($1, wms.wms_abstract) as wms_abstract, wms.wms_getcapabilities, wms.wms_version ";
 	$sql .= "FROM wms, gui_wms ";
 	$sql .= "WHERE wms.wms_id = gui_wms.fkey_wms_id AND gui_wms.fkey_gui_id IN (";
-	$v = array();
-	$t = array();
+	$v = array($_SESSION["mb_lang"]);
+	$t = array("s");
 	
 	for ($i = 0; $i < count($guiIdArray); $i++) {
 		if ($i > 0) {
 			$sql .= ",";
 		}
-		$sql .= "$" . strval($i + 1);
+		$sql .= "$" . strval($i + 2);
 		array_push($v, $guiIdArray[$i]);
 		array_push($t, "s");
 	}
@@ -108,11 +108,11 @@
 else if ($command == "getWMSByGroup") {
 	$resultObj["wms"] = array();
 	
-	$sql = "SELECT DISTINCT wms_id, wms_title, wms_abstract, wms_getcapabilities, wms_version ";
+	$sql = "SELECT DISTINCT wms_id, wms_title, gettext($1, wms_abstract) as wms_abstract, wms_getcapabilities, wms_version ";
 	$sql .= "FROM wms, gui_wms, gui_mb_group ";
-	$sql .= "WHERE wms.wms_id = gui_wms.fkey_wms_id AND gui_wms.fkey_gui_id = gui_mb_group.fkey_gui_id AND gui_mb_group.fkey_mb_group_id = $1";
-	$v = array($groupId);
-	$t = array("i");
+	$sql .= "WHERE wms.wms_id = gui_wms.fkey_wms_id AND gui_wms.fkey_gui_id = gui_mb_group.fkey_gui_id AND gui_mb_group.fkey_mb_group_id = $2";
+	$v = array($_SESSION["mb_lang"], $groupId);
+	$t = array("s", "i");
 	$res = db_prep_query($sql, $v, $t);
 	
 	while ($row = db_fetch_array($res)) {
@@ -123,10 +123,10 @@
 else if ($command == "getWMSByGUI") {
 	$resultObj["wms"] = array();
 
-	$sql = "SELECT DISTINCT wms_id, wms_title, wms_abstract, wms_getcapabilities, wms_version ";
-	$sql .= "FROM wms, gui_wms WHERE wms.wms_id = gui_wms.fkey_wms_id AND fkey_gui_id = $1";
-	$v = array($guiId);
-	$t = array("s");
+	$sql = "SELECT DISTINCT wms_id, wms_title, gettext($1, wms_abstract) as wms_abstract, wms_getcapabilities, wms_version ";
+	$sql .= "FROM wms, gui_wms WHERE wms.wms_id = gui_wms.fkey_wms_id AND fkey_gui_id = $2";
+	$v = array($_SESSION["mb_lang"], $guiId);
+	$t = array("s", "s");
 	$res = db_prep_query($sql, $v, $t);
 	
 	while ($row = db_fetch_array($res)) {

Modified: branches/mapbender_sld/http/php/mod_changeEPSG.php
===================================================================
--- branches/mapbender_sld/http/php/mod_changeEPSG.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_changeEPSG.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -54,45 +54,45 @@
 # transform coordinates
 if(isset($_REQUEST["srs"])){
 	require_once("../../conf/mapbender.conf");
-	$arraymapObj = split("###", $_REQUEST["srs"]);
+	$arraymapObj = mb_split("###", $_REQUEST["srs"]);
 	echo "<script type='text/javascript'>";
 	echo "var newExtent = new Array();";
 	for($i=0; $i < count($arraymapObj); $i++){
-		$temp = split(",",$arraymapObj[$i]);
+		$temp = mb_split(",",$arraymapObj[$i]);
 		if(SYS_DBTYPE=='pgsql'){
 			$con = db_connect($DBSERVER,$OWNER,$PW);
-			$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as minx";
+			$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as minx";
 			$resMinx = db_query($sqlMinx);
 			$minx = db_result($resMinx,0,"minx");
 			
-			$sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as miny";
+			$sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as miny";
 			$resMiny = db_query($sqlMiny);
 			$miny = db_result($resMiny,0,"miny");
 			
-			$sqlMaxx = "SELECT X(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as maxx";
+			$sqlMaxx = "SELECT X(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as maxx";
 			$resMaxx =db_query($sqlMaxx);
 			$maxx = db_result($resMaxx,0,"maxx");
 			
-			$sqlMaxy = "SELECT Y(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as maxy";
+			$sqlMaxy = "SELECT Y(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as maxy";
 			$resMaxy = db_query($sqlMaxy);
 			$maxy = db_result($resMaxy,0,"maxy");
 		}else{
 			$con_string = "host=$GEOS_DBSERVER port=$GEOS_PORT dbname=$GEOS_DB user=$GEOS_OWNER password=$GEOS_PW";
 			$con = pg_connect($con_string) or die ("Error while connecting database");
 			
-			$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as minx";
+			$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as minx";
 			$resMinx = pg_query($con,$sqlMinx);
 			$minx = pg_fetch_result($resMinx,0,"minx");
 			
-			$sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as miny";
+			$sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as miny";
 			$resMiny = pg_query($con,$sqlMiny);
 			$miny = pg_fetch_result($resMiny,0,"miny");
 			
-			$sqlMaxx = "SELECT X(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as maxx";
+			$sqlMaxx = "SELECT X(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as maxx";
 			$resMaxx = pg_query($con,$sqlMaxx);
 			$maxx = pg_fetch_result($resMaxx,0,"maxx");
 			
-			$sqlMaxy = "SELECT Y(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as maxy";
+			$sqlMaxy = "SELECT Y(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as maxy";
 			$resMaxy = pg_query($con,$sqlMaxy);
 			$maxy = pg_fetch_result($resMaxy,0,"maxy");
 		}

Modified: branches/mapbender_sld/http/php/mod_changeEPSG_dynamic.php
===================================================================
--- branches/mapbender_sld/http/php/mod_changeEPSG_dynamic.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_changeEPSG_dynamic.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -113,27 +113,27 @@
 	require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
 	$con = pg_connect ($con_string) or die ("Error while connecting database DBname");
 	
-	$arraymapObj = split("###", $_REQUEST["srs"]);
+	$arraymapObj = mb_split("###", $_REQUEST["srs"]);
 	
 	echo "<script type='text/javascript'>";
 	echo "var newExtent = new Array();";
 	
 	for($i=0; $i < count($arraymapObj); $i++){
-		$temp = split(",",$arraymapObj[$i]);
+		$temp = mb_split(",",$arraymapObj[$i]);
 		
-		$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as minx";
+		$sqlMinx = "SELECT X(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as minx";
 		$resMinx = @pg_query($con,$sqlMinx);
 		$minx = pg_result($resMinx,0,"minx");
 		
-		$sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as miny";
+		$sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(".$temp[2]." ".$temp[3].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as miny";
 		$resMiny = @pg_query($con,$sqlMiny);
 		$miny = pg_result($resMiny,0,"miny");
 		
-		$sqlMaxx = "SELECT X(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as maxx";
+		$sqlMaxx = "SELECT X(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as maxx";
 		$resMaxx = @pg_query($con,$sqlMaxx);
 		$maxx = pg_result($resMaxx,0,"maxx");
 		
-		$sqlMaxy = "SELECT Y(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".str_replace("EPSG:","",$temp[1])."),".str_replace("EPSG:","",$_REQUEST["newSRS"]).")) as maxy";
+		$sqlMaxy = "SELECT Y(transform(GeometryFromText('POINT(".$temp[4]." ".$temp[5].")',".preg_replace("/EPSG:/","",$temp[1])."),".preg_replace("/EPSG:/","",$_REQUEST["newSRS"]).")) as maxy";
 		$resMaxy = @pg_query($con,$sqlMaxy);		 
 		$maxy = pg_result($resMaxy,0,"maxy");
 	

Modified: branches/mapbender_sld/http/php/mod_createUser.php
===================================================================
--- branches/mapbender_sld/http/php/mod_createUser.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_createUser.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -214,7 +214,7 @@
 echo "<tr>";
    echo "<td>Name*:</td>";
    echo "<td>";
-      echo "<input type='text' name='name' value='".$name."'>";
+      echo "<input type='text' size='30' name='name' value='".$name."'>";
    echo "</td>";
 echo "</tr>";
 
@@ -222,7 +222,7 @@
 echo "<tr>";
 	echo "<td>Password*: </td>";
 	echo "<td>";
-		echo "<input type='password' name='password' value='";
+		echo "<input type='password' size='30' name='password' value='";
 		if(isset($selected_user) && $selected_user != 'new'){
 			echo $myPW;
 		}
@@ -234,7 +234,7 @@
 echo "<tr>";
 	echo "<td>Confirm password*: </td>";
 	echo "<td>";
-		echo "<input type='password'  name='v_password' value='";
+		echo "<input type='password' size='30' name='v_password' value='";
 		echo "'>";
 	echo "</td>";
 echo "</tr>";
@@ -243,7 +243,7 @@
 echo "<tr>";
 	echo "<td>Description: </td>";
 	echo "<td>";
-		echo "<input type='text' name='description' value='".$description."'>";
+		echo "<input type='text' size='30' name='description' value='".$description."'>";
 	echo "</td>";
 echo "</tr>";
 
@@ -251,7 +251,7 @@
 echo "<tr>";
 	echo "<td>Email <A HREF='http://wms1.ccgis.de/ewiki/index.php?id=CreateUser' target='_blank'><b>(Why?): </b></A><BR></td>";
 	echo "<td>";
-		echo "<input type='text' name='email' value='".$email."'>";
+		echo "<input type='text' size='30' name='email' value='".$email."'>";
 	echo "</td>";
 echo "</tr>";
 
@@ -259,7 +259,7 @@
 echo "<tr>";
 	echo "<td>Phone: </td>";
 	echo "<td>";
-		echo "<input type='text' name='phone' value='".$phone."'>";
+		echo "<input type='text' size='30' name='phone' value='".$phone."'>";
 	echo "</td>";
 echo "</tr>";
 
@@ -267,7 +267,7 @@
 echo "<tr>";
 	echo "<td>Department: </td>";
 	echo "<td>";
-		echo "<input type='text' name='department' value='".$department."'>";
+		echo "<input type='text' size='30' name='department' value='".$department."'>";
 	echo "</td>";
 echo "</tr>";
 

Modified: branches/mapbender_sld/http/php/mod_deleteWFS.php
===================================================================
--- branches/mapbender_sld/http/php/mod_deleteWFS.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_deleteWFS.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -81,7 +81,7 @@
 }
 
 $sql_wfs = "SELECT * FROM wfs ";
-$sql_wfs .= " ORDER BY wfs_name";
+$sql_wfs .= " ORDER BY wfs_id";
 $res_wfs = db_query($sql_wfs);
 $cnt_wfs = 0;
 
@@ -90,7 +90,7 @@
 echo "<select class='wfsList' size='20' name='wfsList' >";
 
 while($row = db_fetch_array($res_wfs)){
-	echo "<option value='".$row["wfs_id"]."'>".$row["wfs_name"]." - ".$row["wfs_title"]."</option>";
+	echo "<option value='".$row["wfs_id"]."'>".$row["wfs_id"]." ".$row["wfs_name"]." - ".$row["wfs_title"]."</option>";
 	$cnt_wfs++;
 }
 echo "</select><br><br>";

Modified: branches/mapbender_sld/http/php/mod_deleteWMS.php
===================================================================
--- branches/mapbender_sld/http/php/mod_deleteWMS.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_deleteWMS.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -273,7 +273,7 @@
 			$owner = $admin->getOwnerByWms($wmsList);
 			if ($owner && count($owner)>0) {
 				for($i=0; $i<count($owner); $i++){
-					echo "- ".$owner[$i]."<br>";	
+					echo "- ".$admin->getUserNameByUserId($owner[$i])."<br>";	
 				}
 			}
 			else echo "<i>- none -</i>";
@@ -286,22 +286,18 @@
 			
 			//now, any owner can delete, any non-owner can suggest deletions
 			//if a wms has no owner, anyone can delete
-	    		if($owner && in_array($_SESSION["mb_user_name"], $owner) && count($owner) == 1) {
+	    		if($owner && in_array($_SESSION["mb_user_id"], $owner) && count($owner) == 1) {
 	    			echo "<input class='button_del' type='button' value='delete' onclick='validate()'>";
 	    		}
-	    		elseif ($owner && in_array($_SESSION["mb_user_name"], $owner) && count($owner) > 1) {
+	    		elseif ($owner && in_array($_SESSION["mb_user_id"], $owner) && count($owner) > 1) {
 	    			
 	    			// delete suggestion button only appears when mailing is enabled in mapbender.conf
 	    			if ($use_php_mailing) {
 	    			
 	    				// prepare email-addresses and usernames of all owners
-	    				$owner_ids = array();
+	    				$owner_ids = $owner;
 	    				$owner_mail_addresses = array();
 	    				$email_str = '';
-	    				for ($i=0; $i<count($owner); $i++) {
-	    					$tmp_array = $admin->getUserIdByUserName($owner[$i]);
-	    					$owner_ids[$i] = $tmp_array[0]; 
-	    				}
 	    				$j=0;
 	    				for ($i=0; $i<count($owner_ids); $i++) {
 	    					$adr_tmp = $admin->getEmailByUserId($owner_ids[$i]);

Modified: branches/mapbender_sld/http/php/mod_editElements.php
===================================================================
--- branches/mapbender_sld/http/php/mod_editElements.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_editElements.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -189,12 +189,12 @@
 		
 		$sql = "INSERT INTO gui_element(fkey_gui_id,e_id,e_pos,e_public,e_comment,e_element,e_src,";
 		$sql .= "e_attributes,e_left,e_top,e_width,e_height,e_z_index,e_more_styles,e_content,";
-		$sql .= "e_closetag,e_js_file,e_mb_mod,e_target,e_requires,e_url) ";
-		$sql .= "VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21)";
+		$sql .= "e_closetag,e_js_file,e_mb_mod,e_target,e_requires,e_url,e_title) ";
+		$sql .= "VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22)";
 		$v = array($guiList1,$e_id,$e_pos,$e_public,$e_comment,$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);
-		$t = array('s','s','i','i','s','s','s','s','i','i','i','i','i','s','s','s','s','s','s','s','s');
+			$e_mb_mod,$e_target,$e_requires,$e_url,$e_title);
+		$t = array('s','s','i','i','s','s','s','s','i','i','i','i','i','s','s','s','s','s','s','s','s','s');
 		$res = db_prep_query($sql,$v,$t);
 		if(!$res){
 			db_rollback();	
@@ -264,13 +264,13 @@
 
 		$sql_ins = "INSERT INTO gui_element(fkey_gui_id,e_id,e_pos,e_public,e_comment,e_element,";
 		$sql_ins .= "e_src,e_attributes,e_left,e_top,e_width,e_height,e_z_index,e_more_styles,";
-		$sql_ins .= "e_content,e_closetag,e_js_file,e_mb_mod,e_target,e_requires,e_url) ";
-		$sql_ins .= "VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21)";
+		$sql_ins .= "e_content,e_closetag,e_js_file,e_mb_mod,e_target,e_requires,e_url,e_title) ";
+		$sql_ins .= "VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22)";
 		$v = array($guiList1,$row["e_id"],$row["e_pos"],$row["e_public"],$row["e_comment"],$row["e_element"],
 			$row["e_src"],$row["e_attributes"],$myleft,$mytop,$mywidth,$myheight,$my_z_index,
 			$row["e_more_styles"],$row["e_content"],$row["e_closetag"],$row["e_js_file"],$row["e_mb_mod"],
-			$row["e_target"],$row["e_requires"],$row["e_url"]);
-		$t = array('s','s','i','i','s','s','s','s','i','i','i','i','i','s','s','s','s','s','s','s','s');
+			$row["e_target"],$row["e_requires"],$row["e_url"],$row["e_title"]);
+		$t = array('s','s','i','i','s','s','s','s','i','i','i','i','i','s','s','s','s','s','s','s','s','s');
 		$res_ins = db_prep_query($sql_ins,$v,$t);
 		if(!$res_ins){db_rollback(); }
 		$cnt++;
@@ -354,8 +354,7 @@
       document.form1.submit();
    }
 }
-function thisShow(){
-   document.form1.myShow.value = 1;
+function thisShow(){   document.form1.myShow.value = 1;
    document.form1.submit();
 }
 function addAll(){
@@ -550,6 +549,7 @@
 		echo "<tr><td>Position: </td><td><input type='text' class='textfield' name='e_pos' value='".$row["e_pos"]."'></td></tr>\n";
 		echo "<tr><td>ON/OFF: </td><td><input type='text' class='textfield' name='e_public' value='".$row["e_public"]."'></td></tr>\n";
 		echo "<tr><td>Comment: </td><td><textarea cols='32' rows='5'  name='e_comment' >".stripslashes($row["e_comment"])."</textarea></td></tr>\n";
+		echo "<tr><td>title: </td><td><input type='text' class='textfield' name='e_title' value='".$row["e_title"]."'></td></tr>\n";
 		echo "<tr><td>HTML-TAG: </td><td><input type='text' class='textfield' name='e_element' value='".$row["e_element"]."'></td></tr>\n";
 		echo "<tr><td>SRC: </td><td><input type='text' class='textfield' name='e_src' value='".$row["e_src"]."'></td></tr>\n";
 		echo "<tr><td>Attributes: </td><td><textarea cols='32' rows='5'  name='e_attributes' >".stripslashes($row["e_attributes"])."</textarea></td></tr>\n";
@@ -574,6 +574,7 @@
 	echo "<tr><td>Position: </td><td><input type='text' class='textfield' name='e_pos' value='".$e_pos."'></td></tr>\n";
 	echo "<tr><td>ON/OFF: </td><td><input type='text' class='textfield' name='e_public' value='".$e_public."'></td></tr>\n";
 	echo "<tr><td>Comment: </td><td><textarea cols='32' rows='5'  name='e_comment' >".stripslashes($e_comment)."</textarea></td></tr>\n";
+	echo "<tr><td>title: </td><td><input type='text' class='textfield' name='e_title' value='".$e_title."'></td></tr>\n";
 	echo "<tr><td>HTML-TAG: </td><td><input type='text' class='textfield' name='e_element' value='".$e_element."'></td></tr>\n";
 	echo "<tr><td>SRC: </td><td><input type='text' class='textfield' name='e_src' value='".$e_src."'></td></tr>\n";
 	echo "<tr><td>Attributes: </td><td><textarea cols='32' rows='5'  name='e_attributes' >".stripslashes($e_attributes)."</textarea></td></tr>\n";

Modified: branches/mapbender_sld/http/php/mod_editFilteredUser.php
===================================================================
--- branches/mapbender_sld/http/php/mod_editFilteredUser.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_editFilteredUser.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -90,7 +90,34 @@
   }
   return 'true';
 }
-
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 1;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
 </script>
 
 </head>
@@ -182,21 +209,26 @@
       echo "User: ";
    echo "</td>";
 echo "<td>";
-   echo "<select name='selected_user' onchange='submit()'>";
+   echo "<input type='text' value='' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+   echo "<br /><select id='selecteduser' name='selected_user' onchange='submit()'>";
    echo "<option value='new'>NEW...</option>";
-   $sql = "SELECT mb_user_name,mb_user_id FROM mb_user ";
+   $sql = "SELECT mb_user_name,mb_user_id,mb_user_email FROM mb_user ";
    if(isset($myUser)){ $sql .= "WHERE mb_user_owner = ".$_SESSION["mb_user_id"];}
    $sql .= " ORDER BY mb_user_name ";
    $res = db_query($sql);
    $count=0;
    while($row = db_fetch_array($res)){
-	 	echo "<option value='".$row["mb_user_id"]."' ";
-		if($selected_user && $selected_user == $row["mb_user_id"]){
+	 	echo "<option value='".$row["mb_user_id"]."' title='".$row["mb_user_email"]."'";
+   		if($selected_user && $selected_user == $row["mb_user_id"]){
          echo "selected";
       }
       echo ">".$row["mb_user_name"]."</option>";
-		$count++;
+	  $user_id[$count] = $row["mb_user_id"];
+	  $user_name[$count] = $row["mb_user_name"];
+	  $user_email[$count] = $row["mb_user_email"];      
+      $count++;
    }
+   $cnt_user=$count;
    echo "</select>";
    echo "</td>";
 echo "</tr>";
@@ -324,5 +356,18 @@
 ?>
 <input type='hidden' name='action' value=''>
 </form>
+<script type="text/javascript">
+<!--
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".($i)."]=[];\n";
+	echo "user[".($i)."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".($i)."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".($i)."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+// -->
+</script>
 </body>
 </html>
\ No newline at end of file

Modified: branches/mapbender_sld/http/php/mod_editUser.php
===================================================================
--- branches/mapbender_sld/http/php/mod_editUser.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_editUser.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -89,7 +89,34 @@
   }
   return 'true';
 }
-
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 1;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
 </script>
 
 </head>
@@ -103,7 +130,7 @@
 			if (MD5 == 'false'){
 				$pw = $password;
 			}else{
-				$pw = md5($password);
+				$pw = "md5('".$password."')";
 			}
 		}
 		return $pw;
@@ -197,21 +224,26 @@
       echo "User: ";
    echo "</td>";
 echo "<td>";
-   echo "<select name='selected_user' onchange='submit()'>";
+   echo "<input type='text' value='' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+   echo "<br /><select id='selecteduser' name='selected_user' onchange='submit()'>";
    echo "<option value='new'>NEW...</option>";
-   $sql = "SELECT mb_user_name,mb_user_id FROM mb_user ";
+   $sql = "SELECT mb_user_name,mb_user_id,mb_user_email FROM mb_user ";
    if(isset($myUser)){ $sql .= "WHERE mb_user_owner = ".$_SESSION["mb_user_id"];}
    $sql .= " ORDER BY mb_user_name ";
    $res = db_query($sql);
    $count=0;
    while($row = db_fetch_array($res)){
-	 	echo "<option value='".$row["mb_user_id"]."' ";
+	 	echo "<option value='".$row["mb_user_id"]."' title='".$row["mb_user_email"]."'";
 		if($selected_user && $selected_user == $row["mb_user_id"]){
          echo "selected";
       }
       echo ">".$row["mb_user_name"]."</option>";
+	  $user_id[$count] = $row["mb_user_id"];
+	  $user_name[$count] = $row["mb_user_name"];
+	  $user_email[$count] = $row["mb_user_email"];      
 		$count++;
    }
+   $cnt_user=$count;
    echo "</select>";
    echo "</td>";
 echo "</tr>";
@@ -339,5 +371,18 @@
 ?>
 <input type='hidden' name='action' value=''>
 </form>
+<script type="text/javascript">
+<!--
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".($i)."]=[];\n";
+	echo "user[".($i)."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".($i)."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".($i)."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+// -->
+</script>
 </body>
 </html>
\ No newline at end of file

Modified: branches/mapbender_sld/http/php/mod_editWMS_Metadata.php
===================================================================
--- branches/mapbender_sld/http/php/mod_editWMS_Metadata.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_editWMS_Metadata.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -1,5 +1,6 @@
 <?php
 # $Id$
+# http://www.mapbender.org/index.php?title=Edit_WMS_Metadata
 # Copyright (C) 2002 CCGIS 
 #
 # This program is free software; you can redistribute it and/or modify
@@ -76,15 +77,15 @@
 function guessTimestamp($timestr) 
 {
 	
-     if (strstr($timestr, '.'))
+     if (mb_strpos($timestr, '.'))
      {
         list($day, $month, $year) = explode(".", $timestr);
      }
-     elseif (strstr($timestr, '/'))
+     elseif (mb_strpos($timestr, '/'))
      {
         list($month, $day, $year) = explode("/", $timestr);
      }
-     elseif (strstr($timestr, '-'))
+     elseif (mb_strpos($timestr, '-'))
      {
         list($year, $month, $day) = explode("-", $timestr);
      }
@@ -131,7 +132,7 @@
         if(preg_match("/___/", $key))
         {
             $myKey = explode("___", $key);
-            $layer_id = str_replace("L_","",$myKey[0]);
+            $layer_id = preg_replace("/L_/","",$myKey[0]);
             if($myKey[1]=="layer_abstract")
             {
                 $layer_sql = "UPDATE layer SET layer_abstract = '$val' " .
@@ -207,10 +208,10 @@
                     if($keywords[$i] != null)
                     {
                         #echo "3: Eintr�ge ungleich null: Keyword: ", $keywords[$i], "; Index: ", $i, ";<nr>";
-                        $keyword = $keywords[$i];
+                        $keyword = trim($keywords[$i]);
                         #Check, if the keyword is exsiting in the database
                         $keyword_sql = "SELECT keyword_id FROM keyword " .
-                                       "WHERE keyword = '$keyword'";
+                                       "WHERE UPPER(keyword) = UPPER('$keyword')";
                         $res_keyword_sql = db_query($keyword_sql);
                         $keyword_row = db_fetch_array($res_keyword_sql);
                         #Keyword exists in the database

Modified: branches/mapbender_sld/http/php/mod_exportElement.php
===================================================================
--- branches/mapbender_sld/http/php/mod_exportElement.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_exportElement.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -50,6 +50,7 @@
       $insert .=  "e_pos, ";
       $insert .=  "e_public, ";
       $insert .=  "e_comment, ";
+      $insert .=  "e_title, ";
       $insert .=  "e_element, ";
       $insert .=  "e_src, ";
       $insert .=  "e_attributes, ";
@@ -72,6 +73,7 @@
       $insert .=  "".$row["e_pos"]. ",";
       $insert .=  "".$row["e_public"]. ",";
       $insert .=  "'".db_escape_string($row["e_comment"])."',";
+      $insert .=  "'".db_escape_string($row["e_title"])."',";      
       $insert .=  "'".$row["e_element"]."',";
       $insert .=  "'".$row["e_src"]."',";
       $insert .=  "'".db_escape_string($row["e_attributes"])."',";
@@ -89,7 +91,7 @@
       $insert .=  "'".$row["e_requires"]."',";
       $insert .=  "'".$row["e_url"]."'";
    $insert .=  ");\n";
-   $insert = str_replace(",,", ",NULL ,", $insert);
+   $insert = preg_replace("/,,/", ",NULL ,", $insert);
 }
 
 	# export element vars
@@ -114,13 +116,13 @@
       $insert .=  "'".db_escape_string($row["context"])."' ,";
       $insert .=  "'".db_escape_string($row["var_type"])."'";
    	$insert .=  ");\n";
-   	$insert = str_replace(",,", ",NULL ,", $insert);
+   	$insert = preg_replace("/,,/", ",NULL ,", $insert);
    	$cnt_res++;
 	}
    #------------------
 
    echo "<textarea rows=30 cols=100>";
-    echo str_replace(", ,", ",NULL ,", $insert);
+    echo preg_replace("/, ,/", ",NULL ,", $insert);
    echo "</textarea>";
 
 ?>

Modified: branches/mapbender_sld/http/php/mod_exportGUI.php
===================================================================
--- branches/mapbender_sld/http/php/mod_exportGUI.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_exportGUI.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -88,7 +88,7 @@
 	$cnt_gel = 0;
 
 	while ($row = db_fetch_array($res_gel)){
-		$insert.="INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_element,";
+		$insert.="INSERT INTO gui_element (fkey_gui_id, e_id, e_pos, e_public, e_comment, e_title, e_element,";
 		$insert.="e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles,";
 		$insert.=" e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires,e_url) VALUES (";
 		
@@ -97,6 +97,7 @@
 		$insert.="".$row["e_pos"].",";
 		$insert.="".$row["e_public"].",";
 		$insert.="'".db_escape_string($row["e_comment"])."',";
+		$insert.="'".db_escape_string($row["e_title"])."',";
 		$insert.="'".$row["e_element"]."',";
 		$insert.="'".$row["e_src"]."',";
 		$insert.="'".db_escape_string($row["e_attributes"])."',";
@@ -114,7 +115,7 @@
 		$insert.="'".$row["e_requires"]."',";
 		$insert.="'".$row["e_url"]."'";
 		$insert.= ");\n";
-		$insert = str_replace(",,", ",NULL ,", $insert);
+		$insert = preg_replace("/,,/", ",NULL ,", $insert);
 	}
 	
 	
@@ -142,8 +143,8 @@
 				$insert.=", ";
 			}
 			$temp = db_escape_string($row[$i]);
-			$temp = str_replace(">","&gt;",$temp);
-			$temp = str_replace("<","&lt;",$temp);
+			$temp = preg_replace("/>/","&gt;",$temp);
+			$temp = preg_replace("/</","&lt;",$temp);
 			$insert.="'" . $temp . "'";
 			$i++;
 		}
@@ -153,8 +154,8 @@
 
 	}
 	
-	$insert = str_replace(",,",",NULL,",$insert);
-	$insert = str_replace(", ,", ",NULL,",$insert);
+	$insert = preg_replace("/,,/",",NULL,",$insert);
+	$insert = preg_replace("/, ,/", ",NULL,",$insert);
 	
 	echo "<textarea rows=40 cols=80>";
 	echo $insert; 

Modified: branches/mapbender_sld/http/php/mod_filteredGroup_User.php
===================================================================
--- branches/mapbender_sld/http/php/mod_filteredGroup_User.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_filteredGroup_User.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -58,6 +58,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -125,12 +179,13 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] =  $row["mb_user_name"];
+	$user_email[$cnt_user] =  $row["mb_user_email"];
 	$cnt_user++;
 }
 
 /*get only owner user from selected group**********************************************************/
 if(count($group_id)>0){
-	$sql_mb_user_mb_group = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user_mb_group.fkey_mb_group_id FROM mb_user_mb_group ";
+	$sql_mb_user_mb_group = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user.mb_user_email, mb_user_mb_group.fkey_mb_group_id FROM mb_user_mb_group ";
 	$sql_mb_user_mb_group .= "INNER JOIN mb_user ON mb_user_mb_group.fkey_mb_user_id = mb_user.mb_user_id ";
 	$sql_mb_user_mb_group .= "WHERE mb_user_mb_group.fkey_mb_group_id = $1 ";
 	$sql_mb_user_mb_group .= " ORDER BY mb_user.mb_user_name";
@@ -143,6 +198,7 @@
 	while($row = db_fetch_array($res_mb_user_mb_group)){
 		$user_id_group[$cnt_group_user] = $row["mb_user_id"];
 		$user_name_group[$cnt_group_user] =  $row["mb_user_name"];
+		$user_email_group[$cnt_group_user] =  $row["mb_user_email"];
 		$cnt_group_user++;
 	}
 
@@ -162,11 +218,13 @@
 }
 echo "</select>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter2' id='filter2' name='filter2' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
 /*insert all profiles in selectbox*****************************************************************/
 echo "<div class='text2'>USER:</div>";
-echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select2' multiple='multiple' id='selecteduser' name='selected_user[]' size='$fieldHeight' >";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i]  . "'>" . $user_name[$i]  . "</option>";
+	echo "<option value='" . $user_id[$i]  . "' title='".$user_email[$i]."'>" . $user_name[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -178,11 +236,13 @@
 echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
 echo "<input type='hidden' name='remove'>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter3' id='filter3' name='filter3' onkeyup='filterUser(document.getElementById(\"removeuser\"),groupuser,this.value);'/>";
 /*insert container_profile_dependence and container_group_dependence in selectbox******************/
 echo "<div class='text3'>SELECTED USER:</div>";
-echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select3' multiple='multiple' name='remove_user[]' id='removeuser' size='$fieldHeight' >";
 for($i=0; $i<$cnt_group_user; $i++){
-	echo "<option value='" . $user_id_group[$i]  . "'>" . $user_name_group[$i]  . "</option>";
+	echo "<option value='" . $user_id_group[$i]  . "' title='".$user_email_group[$i]."'>" . $user_name_group[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -195,6 +255,24 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_group.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+var groupuser=[];
+<?php
+for($i=0; $i<$cnt_group_user; $i++){
+	echo "groupuser[".$i."]=[];\n";
+	echo "groupuser[".$i."]['id']='" . $user_id_group[$i]  . "';\n";
+	echo "groupuser[".$i."]['name']='" . $user_name_group[$i]  . "';\n";
+	echo "groupuser[".$i."]['email']='" . $user_email_group[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_filteredGroup_filteredUser.php
===================================================================
--- branches/mapbender_sld/http/php/mod_filteredGroup_filteredUser.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_filteredGroup_filteredUser.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -59,6 +59,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -130,6 +184,7 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] =  $row["mb_user_name"];
+	$user_email[$cnt_user] =  $row["mb_user_email"];
 	$cnt_user++;
 }
 
@@ -137,7 +192,7 @@
 if (count($group_id)>0){
 	$v = array();
 	$t = array();
-	$sql_mb_user_mb_group = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user_mb_group.fkey_mb_group_id FROM mb_user_mb_group ";
+	$sql_mb_user_mb_group = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user.mb_user_email, mb_user_mb_group.fkey_mb_group_id FROM mb_user_mb_group ";
 	$sql_mb_user_mb_group .= "INNER JOIN mb_user ON mb_user_mb_group.fkey_mb_user_id = mb_user.mb_user_id ";
 	$sql_mb_user_mb_group .= "WHERE mb_user_mb_group.fkey_mb_group_id = $1 ";	
 	if(!$selected_group){array_push($v,$group_id[0]); array_push($t,'i');}
@@ -150,6 +205,7 @@
 	while($row = db_fetch_array($res_mb_user_mb_group)){
 		$user_id_group[$cnt_group_user] = $row["mb_user_id"];
 		$user_name_group[$cnt_group_user] =  $row["mb_user_name"];
+		$user_email_group[$cnt_group_user] =  $row["mb_user_email"];
 		$cnt_group_user++;
 	}
 	
@@ -169,11 +225,13 @@
 	}
 	echo "</select>";
 	
-	/*insert all profiles in selectbox*************************************************************/
+	/*filterbox****************************************************************************************/
+	echo "<input type='text' value='' class='filter2' id='filter2' name='filter2' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+	/*insert all profiles in selectbox*****************************************************************/
 	echo "<div class='text2'>USER:</div>";
-	echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_user[]' size='$fieldHeight' >";
+	echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select2' multiple='multiple' id='selecteduser' name='selected_user[]' size='$fieldHeight' >";
 	for($i=0; $i<$cnt_user; $i++){
-		echo "<option value='" . $user_id[$i]  . "'>" . $user_name[$i]  . "</option>";
+		echo "<option value='" . $user_id[$i]  . "' title='".$user_email[$i]."'>" . $user_name[$i]  . "</option>";
 	}
 	echo "</select>";
 	
@@ -185,11 +243,13 @@
 	echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
 	echo "<input type='hidden' name='remove'>";
 	
-	/*insert container_profile_dependence and container_group_dependence in selectbox**************************************************/
+	/*filterbox****************************************************************************************/
+	echo "<input type='text' value='' class='filter3' id='filter3' name='filter3' onkeyup='filterUser(document.getElementById(\"removeuser\"),groupuser,this.value);'/>";
+	/*insert container_profile_dependence and container_group_dependence in selectbox******************/
 	echo "<div class='text3'>SELECTED USER:</div>";
-	echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_user[]' size='$fieldHeight' >";
+	echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select3' multiple='multiple' name='remove_user[]' id='removeuser' size='$fieldHeight' >";
 	for($i=0; $i<$cnt_group_user; $i++){
-		echo "<option value='" . $user_id_group[$i]  . "'>" . $user_name_group[$i]  . "</option>";
+		echo "<option value='" . $user_id_group[$i]  . "' title='".$user_email_group[$i]."'>" . $user_name_group[$i]  . "</option>";
 	}
 	echo "</select>";
 	
@@ -201,6 +261,24 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_group.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+var groupuser=[];
+<?php
+for($i=0; $i<$cnt_group_user; $i++){
+	echo "groupuser[".$i."]=[];\n";
+	echo "groupuser[".$i."]['id']='" . $user_id_group[$i]  . "';\n";
+	echo "groupuser[".$i."]['name']='" . $user_name_group[$i]  . "';\n";
+	echo "groupuser[".$i."]['email']='" . $user_email_group[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_filteredGui_User.php
===================================================================
--- branches/mapbender_sld/http/php/mod_filteredGui_User.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_filteredGui_User.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -58,6 +58,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -132,21 +186,21 @@
 	$cnt_gui++;
 }
 
-/*get all user ************************************************************************************/
+/*get all user **********************************************************************************************/
 $sql_user = "SELECT * FROM mb_user ORDER BY mb_user_name";
 $res_user = db_query($sql_user);
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
-	$user_name[$cnt_user] =  $row["mb_user_name"];
+	$user_name[$cnt_user] = $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];
 	$cnt_user++;
 }
 
 /*get all user from selected gui*******************************************************************/
-$sql_gui_mb_user = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, gui_mb_user.fkey_gui_id FROM gui_mb_user ";
+$sql_gui_mb_user = "SELECT mb_user.mb_user_email, mb_user.mb_user_id, mb_user.mb_user_name, gui_mb_user.fkey_gui_id FROM gui_mb_user ";
 $sql_gui_mb_user .= "INNER JOIN mb_user ON gui_mb_user.fkey_mb_user_id = mb_user.mb_user_id ";
-$sql_gui_mb_user .= "WHERE gui_mb_user.fkey_gui_id = $1 ";
+$sql_gui_mb_user .= "WHERE gui_mb_user.fkey_gui_id= $1 ";
 $sql_gui_mb_user .= " ORDER BY mb_user.mb_user_name";
-
 if(!$selected_gui){$v = array($gui_id_array[0]);}
 if($selected_gui){$v = array($selected_gui);}
 $t = array('s');
@@ -154,6 +208,7 @@
 while($row = db_fetch_array($res_gui_mb_user)){
 	$user_id_gui[$cnt_gui_user] = $row["mb_user_id"];
 	$user_name_gui[$cnt_gui_user] =  $row["mb_user_name"];
+	$user_email_gui[$cnt_gui_user] = $row["mb_user_email"];
 	$cnt_gui_user++;
 }
 
@@ -173,14 +228,15 @@
 	echo ">" . $gui_name[$i]  . "</option>";                 }
 echo "</select>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter2' id='filter2' name='filter2' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
 /*insert all profiles in selectbox*****************************************************************/
 echo "<div class='text2'>USER:</div>";
-echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select2' multiple='multiple' id='selecteduser' name='selected_user[]' size='$fieldHeight' >";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i]  . "'>" . $user_name[$i]  . "</option>";
+	echo "<option value='" . $user_id[$i]  . "' title='".$user_email[$i]."'>" . $user_name[$i]  . "</option>";
 }
 echo "</select>";
-
 /*Button*******************************************************************************************/
 
 echo "<div class='button1'><input type='button'  value='==>' onClick='validate(\"insert\")'></div>";
@@ -189,11 +245,13 @@
 echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
 echo "<input type='hidden' name='remove'>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter3' id='filter3' name='filter3' onkeyup='filterUser(document.getElementById(\"removeuser\"),guiuser,this.value);'/>";
 /*insert container_profile_dependence and container_group_dependence in selectbox******************/
 echo "<div class='text3'>SELECTED USER:</div>";
-echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select3' multiple='multiple' name='remove_user[]' id='removeuser' size='$fieldHeight' >";
 for($i=0; $i<$cnt_gui_user; $i++){
-	echo "<option value='" . $user_id_gui[$i]  . "'>" . $user_name_gui[$i]  . "</option>";
+	echo "<option value='" . $user_id_gui[$i]  . "' title='".$user_email_gui[$i]."'>" . $user_name_gui[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -203,6 +261,24 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_gui.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+var guiuser=[];
+<?php
+for($i=0; $i<$cnt_gui_user; $i++){
+	echo "guiuser[".$i."]=[];\n";
+	echo "guiuser[".$i."]['id']='" . $user_id_gui[$i]  . "';\n";
+	echo "guiuser[".$i."]['name']='" . $user_name_gui[$i]  . "';\n";
+	echo "guiuser[".$i."]['email']='" . $user_email_gui[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_filteredGui_filteredUser.php
===================================================================
--- branches/mapbender_sld/http/php/mod_filteredGui_filteredUser.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_filteredGui_filteredUser.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -57,6 +57,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -140,11 +194,12 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] =  $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];	
 	$cnt_user++;
 }
 
 /*get only owner user from selected gui************************************************************/
-$sql_gui_mb_user = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, gui_mb_user.fkey_gui_id FROM gui_mb_user ";
+$sql_gui_mb_user = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user.mb_user_email, gui_mb_user.fkey_gui_id FROM gui_mb_user ";
 $sql_gui_mb_user .= "INNER JOIN mb_user ON gui_mb_user.fkey_mb_user_id = mb_user.mb_user_id ";
 $sql_gui_mb_user .= "WHERE gui_mb_user.fkey_gui_id = $1 ";
 
@@ -160,6 +215,7 @@
 while($row = db_fetch_array($res_gui_mb_user)){
 	$user_id_gui[$cnt_gui_user] = $row["mb_user_id"];
 	$user_name_gui[$cnt_gui_user] =  $row["mb_user_name"];
+	$user_email_gui[$cnt_gui_user] = $row["mb_user_email"];
 	$cnt_gui_user++;
 }
 
@@ -179,11 +235,13 @@
 }
 echo "</select>";
 
-/*insert all user in selectbox*********************************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter2' id='filter2' name='filter2' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+/*insert all profiles in selectbox*****************************************************************/
 echo "<div class='text2'>USER:</div>";
-echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select2' multiple='multiple' id='selecteduser' name='selected_user[]' size='$fieldHeight' >";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i]  . "'>" . $user_name[$i]  . "</option>";
+	echo "<option value='" . $user_id[$i]  . "' title='".$user_email[$i]."'>" . $user_name[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -195,11 +253,13 @@
 echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
 echo "<input type='hidden' name='remove'>";
 
-/*insert gui_user_dependence in selectbox**************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter3' id='filter3' name='filter3' onkeyup='filterUser(document.getElementById(\"removeuser\"),guiuser,this.value);'/>";
+/*insert container_profile_dependence and container_group_dependence in selectbox******************/
 echo "<div class='text3'>SELECTED USER:</div>";
-echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select3' multiple='multiple' name='remove_user[]' id='removeuser' size='$fieldHeight' >";
 for($i=0; $i<$cnt_gui_user; $i++){
-	echo "<option value='" . $user_id_gui[$i]  . "'>" . $user_name_gui[$i]  . "</option>";
+	echo "<option value='" . $user_id_gui[$i]  . "' title='".$user_email_gui[$i]."'>" . $user_name_gui[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -209,6 +269,24 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_gui.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+var guiuser=[];
+<?php
+for($i=0; $i<$cnt_gui_user; $i++){
+	echo "guiuser[".$i."]=[];\n";
+	echo "guiuser[".$i."]['id']='" . $user_id_gui[$i]  . "';\n";
+	echo "guiuser[".$i."]['name']='" . $user_name_gui[$i]  . "';\n";
+	echo "guiuser[".$i."]['email']='" . $user_email_gui[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_filteredUser_Group.php
===================================================================
--- branches/mapbender_sld/http/php/mod_filteredUser_Group.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_filteredUser_Group.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -57,6 +57,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -123,6 +177,7 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] = $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];
 	$cnt_user++;
 }
 
@@ -146,11 +201,13 @@
 /*INSERT HTML*/
 echo "<form name='form1' action='" . $self ."' method='post'>";
 
-/*insert all user in selectbox*********************************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter1' id='filter1' name='filter1' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+/*insert all user in selectbox*************************************************************************************/
 echo "<div class='text1'>USER: </div>";
-echo "<select style='background:#ffffff' class='select1' name='selected_user' onChange='submit()' size='10'>";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select1' id='selecteduser' name='selected_user' onChange='submit()' size='10'>";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i] . "' ";
+	echo "<option value='" . $user_id[$i] . "' title='".$user_email[$i]."'";
 	if($selected_user && $selected_user == $user_id[$i]){
 		echo "selected";
 	}
@@ -191,6 +248,15 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_user.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_filteredUser_Gui.php
===================================================================
--- branches/mapbender_sld/http/php/mod_filteredUser_Gui.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_filteredUser_Gui.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -57,6 +57,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -120,6 +174,7 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] = $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];
 	$cnt_user++;
 }
 
@@ -157,17 +212,20 @@
 /*INSERT HTML*/
 echo "<form name='form1' action='" . $self ."' method='post'>";
 
-/*insert all user in selectbox*********************************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter1' id='filter1' name='filter1' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+/*insert all user in selectbox*************************************************************************************/
 echo "<div class='text1'>USER: </div>";
-echo "<select style='background:#ffffff' class='select1' name='selected_user' onChange='submit()' size='10'>";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select1' id='selecteduser' name='selected_user' onChange='submit()' size='10'>";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i] . "' ";
+	echo "<option value='" . $user_id[$i] . "' title='".$user_email[$i]."'";
 	if($selected_user && $selected_user == $user_id[$i]){
 		echo "selected";
 	}
-	echo ">" . $user_name[$i] . "</option>";
+	echo ">" . $user_name[$i]  . "</option>";
 }
 echo "</select>";
+
 /*insert allocated gui in selectbox****************************************************************/
 echo "<div class='text2'>GUI: </div>";
 echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_gui[]' size='$fieldHeight' >";
@@ -193,6 +251,15 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_user.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_filteredUser_filteredGroup.php
===================================================================
--- branches/mapbender_sld/http/php/mod_filteredUser_filteredGroup.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_filteredUser_filteredGroup.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -57,6 +57,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -125,6 +179,7 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] = $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];
 	$cnt_user++;
 }
 
@@ -153,16 +208,18 @@
 /*INSERT HTML*/
 echo "<form name='form1' action='" . $self ."' method='post'>";
 
-/*insert all user in selectbox*********************************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter1' id='filter1' name='filter1' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+/*insert all user in selectbox*************************************************************************************/
 echo "<div class='text1'>USER: </div>";
-echo "<select style='background:#ffffff' class='select1' name='selected_user' onChange='submit()' size='10'>";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select1' id='selecteduser' name='selected_user' onChange='submit()' size='10'>";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i] . "' ";
+	echo "<option value='" . $user_id[$i] . "' title='".$user_email[$i]."'";
 	if($selected_user && $selected_user == $user_id[$i]){
 		echo "selected";
 	}
-echo ">" . $user_name[$i]  . "</option>";
-                 }
+	echo ">" . $user_name[$i]  . "</option>";
+}
 echo "</select>";
 
 /*insert all group in selectbox********************************************************************/
@@ -195,6 +252,15 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_user.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_filteredUser_filteredGui.php
===================================================================
--- branches/mapbender_sld/http/php/mod_filteredUser_filteredGui.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_filteredUser_filteredGui.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -58,6 +58,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -122,6 +176,7 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] = $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];
 	$cnt_user++;
 }
 
@@ -197,17 +252,20 @@
 echo "<form name='form1' action='" . $self ."' method='post'>";
 
 
-/*insert all user in selectbox*********************************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter1' id='filter1' name='filter1' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+/*insert all user in selectbox*************************************************************************************/
 echo "<div class='text1'>USER: </div>";
-echo "<select style='background:#ffffff' class='select1' name='selected_user' onChange='submit()' size='10'>";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select1' id='selecteduser' name='selected_user' onChange='submit()' size='10'>";
 for($i=0; $i<$cnt_user; $i++){
-   echo "<option value='" . $user_id[$i] . "' ";
-   if($selected_user && $selected_user == $user_id[$i]){
-      echo "selected";
-   }
-   echo ">" . $user_name[$i] . "</option>";
+	echo "<option value='" . $user_id[$i] . "' title='".$user_email[$i]."'";
+	if($selected_user && $selected_user == $user_id[$i]){
+		echo "selected";
+	}
+	echo ">" . $user_name[$i]  . "</option>";
 }
 echo "</select>";
+
 /*insert allocated gui in selectbox****************************************************************/
 echo "<div class='text2'>GUI: </div>";
 echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_gui[]' size='$fieldHeight' >";
@@ -240,6 +298,15 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_user.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_gazetteerMetadata.php
===================================================================
--- branches/mapbender_sld/http/php/mod_gazetteerMetadata.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_gazetteerMetadata.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -1,5 +1,5 @@
 <?php
-# $Id:$
+# $Id$
 # http://www.mapbender.org/index.php/gazetteerMetadata
 # Copyright (C) 2002 CCGIS 
 #
@@ -235,7 +235,8 @@
 <body leftmargin="2" topmargin="0" bgcolor="#ffffff">
 <form name='form1' target='result' onsubmit='return validate();'>
 <p>
-<input class='textfield' name='search' type='text'>
+<input class='textfield' name='search' type='text' style='width:110px'>
+<img src="../img/add.png" title="keywords" onclick="window.open('mod_SelectKeyword.php','SelectKeyword','width=600,height=400,status=no');">
 <input type='submit' name='send' value='ok'>
 </p>
 </form>

Modified: branches/mapbender_sld/http/php/mod_getStyles.php
===================================================================
--- branches/mapbender_sld/http/php/mod_getStyles.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_getStyles.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -81,7 +81,7 @@
 {
    global $proxy_name,$proxy_port,$proxy_cont,$proxy_user,$proxy_pass;
 //echo $proxy_user;
-   $proxy_fp = fsockopen($proxy_name, $proxy_port) or die ("Fehler beim öffnen der Verbindung zum Proxy");
+   $proxy_fp = fsockopen($proxy_name, $proxy_port) or die ("Fehler beim �ffnen der Verbindung zum Proxy");
    if (!$proxy_fp)    {return false;}
       $headers = "GET $proxy_url HTTP/1.0\r\nHost: $proxy_name\r\n";
    $headers .= 'Proxy-Authorization: ' . 'Basic ' . base64_encode($proxy_user . ':' . $proxy_pass)."\r\nConnection: Keep-Alive\r\n\r\n";
@@ -114,7 +114,7 @@
 	$cnt_line = 0;
 	fwrite($style_file, "<".chr(63)."php echo '<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"yes\" ?>'; ".chr(63).">\r\n");
 	//while(!feof($style_xml)){
-		//$line = str_replace("md5userid", "<".chr(63)."php echo ".chr(36)."_REQUEST['id']; ".chr(63).">",fgets($style_xml));
+		//$line = preg_replace("md5userid", "<".chr(63)."php echo ".chr(36)."_REQUEST['id']; ".chr(63).">",fgets($style_xml));
 		
 		fwrite($style_file, $style_xml);
 		#echo fgets($style_xml);
@@ -126,7 +126,8 @@
 	@fclose($style_xml);
 	fclose($style_file);
 	#include(dirname(__FILE__)."/../../conf/www.conf");
-	$sql = "UPDATE wms SET wms_filter = '".str_replace(basename($login),$style_filename,$login)."' WHERE wms_id = ". $wmsList;
+	$pattern = "/" . basename($login) . "/";
+	$sql = "UPDATE wms SET wms_filter = '".preg_replace($pattern,$style_filename,$login)."' WHERE wms_id = ". $wmsList;
 	echo $sql;
 	db_query($sql) or die("unable to change filter!");	
 }
@@ -168,8 +169,8 @@
 if($style_filename){
 	$style_file = fopen($style_filename,"r");
 	while(!feof($style_file)){
-		$content = str_replace("<","&lt;",fgets($style_file));
-		echo str_replace(">","&gt;",$content)."<br>";
+		$content = preg_replace("/</","&lt;",fgets($style_file));
+		echo preg_replace("/>/","&gt;",$content)."<br>";
 	}
 	fclose($style_file);
 }

Modified: branches/mapbender_sld/http/php/mod_group_filteredUser.php
===================================================================
--- branches/mapbender_sld/http/php/mod_group_filteredUser.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_group_filteredUser.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -55,6 +55,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -121,11 +175,12 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] =  $row["mb_user_name"];
+	$user_email[$cnt_user] =  $row["mb_user_email"];
 	$cnt_user++;
 }
 
 /*get only owner user from selected group**********************************************************/
-$sql_mb_user_mb_group = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user_mb_group.fkey_mb_group_id FROM mb_user_mb_group ";
+$sql_mb_user_mb_group = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user.mb_user_email, mb_user_mb_group.fkey_mb_group_id FROM mb_user_mb_group ";
 $sql_mb_user_mb_group .= "INNER JOIN mb_user ON mb_user_mb_group.fkey_mb_user_id = mb_user.mb_user_id ";
 $sql_mb_user_mb_group .= "WHERE mb_user_mb_group.fkey_mb_group_id = $1 ";
 if(!$selected_group){$v = array($group_id[0]);}
@@ -139,6 +194,7 @@
 while($row = db_fetch_array($res_mb_user_mb_group)){
 	$user_id_group[$cnt_group_user] = $row["mb_user_id"];
 	$user_name_group[$cnt_group_user] =  $row["mb_user_name"];
+	$user_email_group[$cnt_group_user] =  $row["mb_user_email"];
 	$cnt_group_user++;
 }
 /*INSERT HTML*/
@@ -156,12 +212,14 @@
 }
 echo "</select>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter2' id='filter2' name='filter2' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
 /*insert all profiles in selectbox*****************************************************************/
 echo "<div class='text2'>USER:</div>";
-echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_user[]' size='$fieldHeight' >";
-	for($i=0; $i<$cnt_user; $i++){
-		echo "<option value='" . $user_id[$i]  . "'>" . $user_name[$i]  . "</option>";
-	}
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select2' multiple='multiple' id='selecteduser' name='selected_user[]' size='$fieldHeight' >";
+for($i=0; $i<$cnt_user; $i++){
+	echo "<option value='" . $user_id[$i]  . "' title='".$user_email[$i]."'>" . $user_name[$i]  . "</option>";
+}
 echo "</select>";
 
 /*Button*******************************************************************************************/
@@ -172,11 +230,13 @@
 echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
 echo "<input type='hidden' name='remove'>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter3' id='filter3' name='filter3' onkeyup='filterUser(document.getElementById(\"removeuser\"),groupuser,this.value);'/>";
 /*insert container_profile_dependence and container_group_dependence in selectbox******************/
 echo "<div class='text3'>SELECTED USER:</div>";
-echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select3' multiple='multiple' name='remove_user[]' id='removeuser' size='$fieldHeight' >";
 for($i=0; $i<$cnt_group_user; $i++){
-	echo "<option value='" . $user_id_group[$i]  . "'>" . $user_name_group[$i]  . "</option>";
+	echo "<option value='" . $user_id_group[$i]  . "' title='".$user_email_group[$i]."'>" . $user_name_group[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -186,6 +246,24 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_group.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+var groupuser=[];
+<?php
+for($i=0; $i<$cnt_group_user; $i++){
+	echo "groupuser[".$i."]=[];\n";
+	echo "groupuser[".$i."]['id']='" . $user_id_group[$i]  . "';\n";
+	echo "groupuser[".$i."]['name']='" . $user_name_group[$i]  . "';\n";
+	echo "groupuser[".$i."]['email']='" . $user_email_group[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_group_user.php
===================================================================
--- branches/mapbender_sld/http/php/mod_group_user.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_group_user.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -55,6 +55,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -118,11 +172,12 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] =  $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];	
 	$cnt_user++;
 }
 
 /*get all user from selected group******************************************************************************/
-$sql_mb_user_mb_group = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user_mb_group.fkey_mb_group_id FROM mb_user_mb_group ";
+$sql_mb_user_mb_group = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user.mb_user_email, mb_user_mb_group.fkey_mb_group_id FROM mb_user_mb_group ";
 $sql_mb_user_mb_group .= "INNER JOIN mb_user ON mb_user_mb_group.fkey_mb_user_id = mb_user.mb_user_id ";
 $sql_mb_user_mb_group .= "WHERE mb_user_mb_group.fkey_mb_group_id= $1 ";
 $sql_mb_user_mb_group .= " ORDER BY mb_user.mb_user_name";
@@ -135,6 +190,7 @@
 while($row = db_fetch_array($res_mb_user_mb_group)){
 	$user_id_group[$cnt_group_user] = $row["mb_user_id"];
 	$user_name_group[$cnt_group_user] =  $row["mb_user_name"];
+	$user_email_group[$cnt_group_user] =  $row["mb_user_email"];
 	$cnt_group_user++;
 }
 
@@ -154,11 +210,13 @@
 }
 echo "</select>";
 
-/*insert all profiles in selectbox**************************************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter2' id='filter2' name='filter2' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+/*insert all profiles in selectbox*****************************************************************/
 echo "<div class='text2'>USER:</div>";
-echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select2' multiple='multiple' id='selecteduser' name='selected_user[]' size='$fieldHeight' >";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i]  . "'>" . $user_name[$i]  . "</option>";
+	echo "<option value='" . $user_id[$i]  . "' title='".$user_email[$i]."'>" . $user_name[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -170,11 +228,13 @@
 echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
 echo "<input type='hidden' name='remove'>";
 
-/*insert container_profile_dependence and container_group_dependence in selectbox**************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter3' id='filter3' name='filter3' onkeyup='filterUser(document.getElementById(\"removeuser\"),groupuser,this.value);'/>";
+/*insert container_profile_dependence and container_group_dependence in selectbox******************/
 echo "<div class='text3'>SELECTED USER:</div>";
-echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select3' multiple='multiple' name='remove_user[]' id='removeuser' size='$fieldHeight' >";
 for($i=0; $i<$cnt_group_user; $i++){
-	echo "<option value='" . $user_id_group[$i]  . "'>" . $user_name_group[$i]  . "</option>";
+	echo "<option value='" . $user_id_group[$i]  . "' title='".$user_email_group[$i]."'>" . $user_name_group[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -184,6 +244,24 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_group.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+var groupuser=[];
+<?php
+for($i=0; $i<$cnt_group_user; $i++){
+	echo "groupuser[".$i."]=[];\n";
+	echo "groupuser[".$i."]['id']='" . $user_id_group[$i]  . "';\n";
+	echo "groupuser[".$i."]['name']='" . $user_name_group[$i]  . "';\n";
+	echo "groupuser[".$i."]['email']='" . $user_email_group[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_gui_filteredUser.php
===================================================================
--- branches/mapbender_sld/http/php/mod_gui_filteredUser.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_gui_filteredUser.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -56,6 +56,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -125,11 +179,12 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] =  $row["mb_user_name"];
+	$user_email[$cnt_user] =  $row["mb_user_email"];
 	$cnt_user++;
 }
 
 /*get only owner user from selected gui************************************************************/
-$sql_gui_mb_user = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, gui_mb_user.fkey_gui_id FROM gui_mb_user ";
+$sql_gui_mb_user = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user.mb_user_email, gui_mb_user.fkey_gui_id FROM gui_mb_user ";
 $sql_gui_mb_user .= "INNER JOIN mb_user ON gui_mb_user.fkey_mb_user_id = mb_user.mb_user_id ";
 $sql_gui_mb_user .= "WHERE gui_mb_user.fkey_gui_id = $1";
 if(!$selected_gui){$v = array($gui_id_array[0]);}
@@ -143,6 +198,7 @@
 while($row = db_fetch_array($res_gui_mb_user)){
 	$user_id_gui[$cnt_gui_user] = $row["mb_user_id"];
 	$user_name_gui[$cnt_gui_user] =  $row["mb_user_name"];
+	$user_email_gui[$cnt_gui_user] = $row["mb_user_email"];
 	$cnt_gui_user++;
 }
 
@@ -162,11 +218,13 @@
                  }
 echo "</select>";
 
-/*insert all user in selectbox*********************************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter2' id='filter2' name='filter2' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+/*insert all profiles in selectbox*****************************************************************/
 echo "<div class='text2'>USER:</div>";
-echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select2' multiple='multiple' id='selecteduser' name='selected_user[]' size='$fieldHeight' >";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i]  . "'>" . $user_name[$i]  . "</option>";
+	echo "<option value='" . $user_id[$i]  . "' title='".$user_email[$i]."'>" . $user_name[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -178,11 +236,13 @@
 echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
 echo "<input type='hidden' name='remove'>";
 
-/*insert gui_user_dependence in selectbox**************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter3' id='filter3' name='filter3' onkeyup='filterUser(document.getElementById(\"removeuser\"),guiuser,this.value);'/>";
+/*insert container_profile_dependence and container_group_dependence in selectbox******************/
 echo "<div class='text3'>SELECTED USER:</div>";
-echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select3' multiple='multiple' name='remove_user[]' id='removeuser' size='$fieldHeight' >";
 for($i=0; $i<$cnt_gui_user; $i++){
-	echo "<option value='" . $user_id_gui[$i]  . "'>" . $user_name_gui[$i]  . "</option>";
+	echo "<option value='" . $user_id_gui[$i]  . "' title='".$user_email_gui[$i]."'>" . $user_name_gui[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -192,6 +252,24 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_gui.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+var guiuser=[];
+<?php
+for($i=0; $i<$cnt_gui_user; $i++){
+	echo "guiuser[".$i."]=[];\n";
+	echo "guiuser[".$i."]['id']='" . $user_id_gui[$i]  . "';\n";
+	echo "guiuser[".$i."]['name']='" . $user_name_gui[$i]  . "';\n";
+	echo "guiuser[".$i."]['email']='" . $user_email_gui[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_gui_owner.php
===================================================================
--- branches/mapbender_sld/http/php/mod_gui_owner.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_gui_owner.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -59,6 +59,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -138,12 +192,13 @@
 	$res_user = db_query($sql_user);
 	while($row = db_fetch_array($res_user)){
 		$user_id[$cnt_user] = $row["mb_user_id"];
-		$user_name[$cnt_user] =  $row["mb_user_name"];
+		$user_name[$cnt_user] = $row["mb_user_name"];
+		$user_email[$cnt_user] = $row["mb_user_email"];
 		$cnt_user++;
 	}
 
 /*get all user from selected gui******************************************************************************/
-$sql_gui_mb_user = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, gui_mb_user.fkey_gui_id FROM gui_mb_user ";
+$sql_gui_mb_user = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, mb_user.mb_user_email, gui_mb_user.fkey_gui_id FROM gui_mb_user ";
 $sql_gui_mb_user .= "INNER JOIN mb_user ON gui_mb_user.fkey_mb_user_id = mb_user.mb_user_id ";
 $sql_gui_mb_user .= "WHERE gui_mb_user.fkey_gui_id = $1";
 $sql_gui_mb_user .= " AND gui_mb_user.mb_user_type = 'owner' ORDER BY mb_user.mb_user_name";
@@ -154,6 +209,7 @@
 while($row = db_fetch_array($res_gui_mb_user)){
 	$user_id_gui[$cnt_gui_user] = $row["mb_user_id"];
 	$user_name_gui[$cnt_gui_user] =  $row["mb_user_name"];
+	$user_email_gui[$cnt_gui_user] =  $row["mb_user_email"];
 	$cnt_gui_user++;
 }
 
@@ -173,12 +229,14 @@
 }
 echo "</select>";
 
-/*insert all profiles in selectbox**************************************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter2' id='filter2' name='filter2' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+/*insert all profiles in selectbox*****************************************************************/
 echo "<div class='text2'>USER:</div>";
-echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_user[]' size='$fieldHeight' >";
-	for($i=0; $i<$cnt_user; $i++){
-		echo "<option value='" . $user_id[$i]  . "'>" . $user_name[$i]  . "</option>";
-	}
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select2' multiple='multiple' id='selecteduser' name='selected_user[]' size='$fieldHeight' >";
+for($i=0; $i<$cnt_user; $i++){
+	echo "<option value='" . $user_id[$i]  . "' title='".$user_email[$i]."'>" . $user_name[$i]  . "</option>";
+}
 echo "</select>";
 
 /*Button****************************************************************************************************/
@@ -189,11 +247,13 @@
 echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
 echo "<input type='hidden' name='remove'>";
 
-/*insert container_profile_dependence and container_group_dependence in selectbox**************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter3' id='filter3' name='filter3' onkeyup='filterUser(document.getElementById(\"removeuser\"),guiuser,this.value);'/>";
+/*insert container_profile_dependence and container_group_dependence in selectbox******************/
 echo "<div class='text3'>OWNER:</div>";
-echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select3' multiple='multiple' name='remove_user[]' id='removeuser' size='$fieldHeight' >";
 for($i=0; $i<$cnt_gui_user; $i++){
-	echo "<option value='" . $user_id_gui[$i]  . "'>" . $user_name_gui[$i]  . "</option>";
+	echo "<option value='" . $user_id_gui[$i]  . "' title='".$user_email_gui[$i]."'>" . $user_name_gui[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -205,6 +265,24 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_gui.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+var guiuser=[];
+<?php
+for($i=0; $i<$cnt_gui_user; $i++){
+	echo "guiuser[".$i."]=[];\n";
+	echo "guiuser[".$i."]['id']='" . $user_id_gui[$i]  . "';\n";
+	echo "guiuser[".$i."]['name']='" . $user_name_gui[$i]  . "';\n";
+	echo "guiuser[".$i."]['email']='" . $user_email_gui[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_gui_user.php
===================================================================
--- branches/mapbender_sld/http/php/mod_gui_user.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_gui_user.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -57,6 +57,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 </head>
 <body>
@@ -118,11 +172,12 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] = $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];
 	$cnt_user++;
 }
 
 /*get all user from selected gui*******************************************************************/
-$sql_gui_mb_user = "SELECT mb_user.mb_user_id, mb_user.mb_user_name, gui_mb_user.fkey_gui_id FROM gui_mb_user ";
+$sql_gui_mb_user = "SELECT mb_user.mb_user_email, mb_user.mb_user_id, mb_user.mb_user_name, gui_mb_user.fkey_gui_id FROM gui_mb_user ";
 $sql_gui_mb_user .= "INNER JOIN mb_user ON gui_mb_user.fkey_mb_user_id = mb_user.mb_user_id ";
 $sql_gui_mb_user .= "WHERE gui_mb_user.fkey_gui_id= $1 ";
 $sql_gui_mb_user .= " ORDER BY mb_user.mb_user_name";
@@ -133,6 +188,7 @@
 while($row = db_fetch_array($res_gui_mb_user)){
 	$user_id_gui[$cnt_gui_user] = $row["mb_user_id"];
 	$user_name_gui[$cnt_gui_user] =  $row["mb_user_name"];
+	$user_email_gui[$cnt_gui_user] = $row["mb_user_email"];
 	$cnt_gui_user++;
 }
 
@@ -152,11 +208,13 @@
 }
 echo "</select>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter2' id='filter2' name='filter2' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
 /*insert all profiles in selectbox*****************************************************************/
 echo "<div class='text2'>USER:</div>";
-echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select2' multiple='multiple' id='selecteduser' name='selected_user[]' size='$fieldHeight' >";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i]  . "'>" . $user_name[$i]  . "</option>";
+	echo "<option value='" . $user_id[$i]  . "' title='".$user_email[$i]."'>" . $user_name[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -168,11 +226,13 @@
 echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
 echo "<input type='hidden' name='remove'>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter3' id='filter3' name='filter3' onkeyup='filterUser(document.getElementById(\"removeuser\"),guiuser,this.value);'/>";
 /*insert container_profile_dependence and container_group_dependence in selectbox******************/
 echo "<div class='text3'>SELECTED USER:</div>";
-echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_user[]' size='$fieldHeight' >";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select3' multiple='multiple' name='remove_user[]' id='removeuser' size='$fieldHeight' >";
 for($i=0; $i<$cnt_gui_user; $i++){
-	echo "<option value='" . $user_id_gui[$i]  . "'>" . $user_name_gui[$i]  . "</option>";
+	echo "<option value='" . $user_id_gui[$i]  . "' title='".$user_email_gui[$i]."'>" . $user_name_gui[$i]  . "</option>";
 }
 echo "</select>";
 
@@ -182,6 +242,24 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_gui.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
+var guiuser=[];
+<?php
+for($i=0; $i<$cnt_gui_user; $i++){
+	echo "guiuser[".$i."]=[];\n";
+	echo "guiuser[".$i."]['id']='" . $user_id_gui[$i]  . "';\n";
+	echo "guiuser[".$i."]['name']='" . $user_name_gui[$i]  . "';\n";
+	echo "guiuser[".$i."]['email']='" . $user_email_gui[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_help.php
===================================================================
--- branches/mapbender_sld/http/php/mod_help.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_help.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -20,7 +20,6 @@
 require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
 $con = db_connect(DBSERVER,OWNER,PW);
 db_select_db(DB,$con);
-
 ?>
 <html>
 <head><title></title></head>
@@ -47,7 +46,7 @@
 	$res = db_prep_query($sql, $v, $t);
 	$cnt = 0;
 	while($row = db_fetch_array($res)){ 
-		echo "str += '<area onclick=\"parent.mod_help_disable();";
+		echo "str += '<area onclick=\"mod_help_disable();";
 		if($row["e_id"] != 'help'){
 			echo "window.open(\'".$row["e_url"]."\');";	
 		}

Modified: branches/mapbender_sld/http/php/mod_layerMetadata.php
===================================================================
--- branches/mapbender_sld/http/php/mod_layerMetadata.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_layerMetadata.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -22,9 +22,9 @@
 db_select_db(DB,$con);
 
 function display_text($string) {
-    $string = eregi_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\" target=_blank>\\0</a>", $string);   
-    $string = eregi_replace("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\.)+[a-z]{2}([zmuvtg]|fo|me)?$", "<a href=\"mailto:\\0\" target=_blank>\\0</a>", $string);   
-    $string = eregi_replace("\n", "<br>", $string);
+    $string = mb_eregi_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\" target=_blank>\\0</a>", $string);   
+    $string = mb_eregi_replace("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\.)+[a-z]{2}([zmuvtg]|fo|me)?$", "<a href=\"mailto:\\0\" target=_blank>\\0</a>", $string);   
+    $string = mb_eregi_replace("\n", "<br>", $string);
     return $string;
 }  
 
@@ -106,7 +106,7 @@
 		$layer['Minscale'] = $row['layer_minscale'];
 		$layer['Maxscale'] = $row['layer_maxscale'];
 	}
-	$layer['Koordinatensysteme'] = str_replace(" ", ", ", getEpsgByLayerId($row['layer_id']));
+	$layer['Koordinatensysteme'] = preg_replace("/ /", ", ", getEpsgByLayerId($row['layer_id']));
 //	$layer['Capabilities-Dokument'] = "<a href = '../x_geoportal/getCapabilities_document.php?wms_request=".$row['wms_id']."&layer_request=".$row['layer_pos']."' target=_blank>Capabilities-Dokument</a>";
 	if ($row['wms_timestamp']) {
 		$layer['Datum der Registrierung'] = date("d.m.Y",$row['wms_timestamp']); 
@@ -118,8 +118,8 @@
 	$layer['WMS ID'] = $row['wms_id'];
 	$layer['WMS Titel'] = $row['wms_title'];
 	$layer['WMS Zusammenfassung'] = $row['wms_abstract'];
-	$layer['Gebühren'] = $row['fees'];
-	$layer['Zugriffsbeschränkung'] = $row['accessconstraints'];
+	$layer['Geb&uuml;hren'] = $row['fees'];
+	$layer['Zugriffsbeschr&auml;nkung'] = $row['accessconstraints'];
 	$layer['Ansprechpartner'] = $row['contactperson'];
 	$layer['Organisation'] = $row['contactorganization'];
 	$layer['Adresse'] = $row['address'];
@@ -138,7 +138,7 @@
 
 	$keys = array_keys($layer);
 	for ($j=0; $j<count($layer); $j++) {
-		echo $t_a . utf8_encode($keys[$j]) . $t_b . display_text($layer[$keys[$j]]) . $t_c;
+		echo $t_a . $keys[$j] . $t_b . display_text($layer[$keys[$j]]) . $t_c;
 	}
 
 	if (!$row['layer_pos'] && !$row['layer_parent']) {

Modified: branches/mapbender_sld/http/php/mod_loadCapabilitiesList.php
===================================================================
--- branches/mapbender_sld/http/php/mod_loadCapabilitiesList.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_loadCapabilitiesList.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -145,11 +145,11 @@
 	$cnt = 0;
 	while($row = db_fetch_array($res)){
 		$sql_ins = "INSERT INTO gui_wms (fkey_gui_id,fkey_wms_id,gui_wms_position,gui_wms_mapformat,";
-		$sql_ins .= "gui_wms_featureinfoformat,gui_wms_exceptionformat,gui_wms_epsg,gui_wms_visible,gui_wms_sldurl) ";
-		$sql_ins .= "VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9)";
+		$sql_ins .= "gui_wms_featureinfoformat,gui_wms_exceptionformat,gui_wms_epsg,gui_wms_visible) ";
+		$sql_ins .= "VALUES ($1,$2,$3,$4,$5,$6,$7,$8)";
 		$v = array($guiList,$wmsID,$gui_wms_position,$row["gui_wms_mapformat"],$row["gui_wms_featureinfoformat"],
-		$row["gui_wms_exceptionformat"],$row["gui_wms_epsg"],$row["gui_wms_visible"],$row["gui_wms_sldurl"]);
-		$t = array('s','i','i','s','s','s','s','i','s');
+		$row["gui_wms_exceptionformat"],$row["gui_wms_epsg"],$row["gui_wms_visible"]);
+		$t = array('s','i','i','s','s','s','s','i');
 		db_prep_query($sql_ins,$v,$t);
 		$cnt++;
 	}

Modified: branches/mapbender_sld/http/php/mod_logout.php
===================================================================
--- branches/mapbender_sld/http/php/mod_logout.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_logout.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -42,7 +42,7 @@
       header("Location: http://".$_SERVER['HTTP_HOST'].$dir."/login.php");      
    }
    else{
-      header("Location: http://".$_SERVER['HTTP_HOST'].str_replace("/php","/frames",$dir)."/login.php");
+      header("Location: http://".$_SERVER['HTTP_HOST'].preg_replace("/\/php/","/frames",$dir)."/login.php");
    }
 }
 ?>
\ No newline at end of file

Modified: branches/mapbender_sld/http/php/mod_map1.php
===================================================================
--- branches/mapbender_sld/http/php/mod_map1.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_map1.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -64,7 +64,7 @@
 </head>
 <body leftmargin='0' topmargin='0' onload="init_mod_map1()" bgcolor='#ffffff'>
 <div id='markResult' name='maps' style ='position: absolute; left: 0px; top: 0px; width: 0px; height: 0px; z-index:26'> </div>
-<div id='maps' name='maps' style ='position: absolute; left: 0px; top: 0px; width: 0px; height: 0px;'> </div>
+<div id='maps' name='maps' style ='position: absolute; left: 0px; top: 0px; width: 0px; height: 0px; z-index:2;'> </div>
 
 <div id='highlight' style="position:absolute;top:-10px;left:-10px;width:14px;height:14px;z-index:3;visibility:visible"><img src="../img/redball.gif"/></div>
 <div id='l_right' name='l_right' style="position:absolute;top:0px;left:0px;width:0px;height:0px;overflow:hidden;z-index:10;visibility:hidden;background-color:#ff0000;cursor: crosshair;"></div>

Modified: branches/mapbender_sld/http/php/mod_mapOV.php
===================================================================
--- branches/mapbender_sld/http/php/mod_mapOV.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_mapOV.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -69,6 +69,10 @@
 	document.onmousemove = parent.mod_box_run;
 	document.getElementById("maps").style.width = mod_overview_width;
 	document.getElementById("maps").style.height = mod_overview_height;   
+	
+	var ind = parent.getMapObjIndexByName('overview');
+	var ov_extent = parent.mb_mapObj[ind].getExtentInfos();
+	parent.mb_setWmcExtensionData({"ov_minx":ov_extent.minx,"ov_miny":ov_extent.miny,"ov_maxx":ov_extent.maxx,"ov_maxy":ov_extent.maxy});
 }
 function mod_ov_setHandler(e){
    parent.mb_isBF = "overview";

Modified: branches/mapbender_sld/http/php/mod_meetingPoint.php
===================================================================
--- branches/mapbender_sld/http/php/mod_meetingPoint.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_meetingPoint.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -105,14 +105,14 @@
 	if (meetingPoint_width){}
 }
 catch(e){
-	meetingPoint_width = 7;
+	meetingPoint_width = 14;
 }
 
 try{
 	if (meetingPoint_height){}
 }
 catch(e){
-	meetingPoint_height = 7;
+	meetingPoint_height = 14;
 }
 
 try{
@@ -198,7 +198,7 @@
 		parent.frames[mod_meetingPoint_target].document.getElementById('permanent').style.visibility = 'visible';
 		var tagSource = "";
 		var pos = parent.makeRealWorld2mapPos(mod_meetingPoint_target,document.forms[0].x.value, document.forms[0].y.value);
-		tagSource += "<div style='z-index:13;position:absolute;left:"+(pos[0]- meetingPoint_width)+"px;top:"+(pos[1]-meetingPoint_height)+"px'>";
+		tagSource += "<div style='z-index:13;position:absolute;left:"+(pos[0]- Math.round(0.5*meetingPoint_width))+"px;top:"+(pos[1]-Math.round(0.5*meetingPoint_height))+"px'>";
 		tagSource += "<img src='"+meetingPoint_icon+"'>";
 		tagSource += "<span style='"+meetingPoint_style+"'>"+document.forms[0].mytext.value+"<span>";
 		tagSource += "</div>";
@@ -232,9 +232,9 @@
 
     if(mycheck == true){
     	my_meetingPoint = document.forms[0].myurl.value + "?";
-    	my_meetingPoint += "name=" + document.forms[0].myuser.value;
-    	my_meetingPoint += "&password=" + document.forms[0].mypw.value;
-    	my_meetingPoint += "&mb_user_myGui=" + document.forms[0].mygui.value;
+    	my_meetingPoint += "name=" + encodeURIComponent(document.forms[0].myuser.value);
+    	my_meetingPoint += "&password=" + encodeURIComponent(document.forms[0].mypw.value);
+    	my_meetingPoint += "&mb_user_myGui=" + encodeURIComponent(document.forms[0].mygui.value);
     	
     	var ind = parent.getMapObjIndexByName('mapframe1');
     	var coord = parent.mb_mapObj[ind].extent.split(",");
@@ -250,7 +250,7 @@
     	document.forms[0].mytext.value = splitext.substring(0, meetingPoint_max_characters);
     	
 
-    	my_meetingPoint += document.forms[0].mytext.value;
+    	my_meetingPoint += encodeURIComponent(document.forms[0].mytext.value);
 
     	
     	my_meetingPoint += "," + document.forms[0].x.value + ",";

Modified: branches/mapbender_sld/http/php/mod_monitorCapabilities_main.php
===================================================================
--- branches/mapbender_sld/http/php/mod_monitorCapabilities_main.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_monitorCapabilities_main.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -1,5 +1,5 @@
 <?php
-# $Id: mod_monitorCapabilities.php 371 2006-05-31 12:45:24Z christoph $
+# $Id: mod_monitorCapabilities_main.php 1240 2007-10-24 09:27:00Z baudson $
 # http://www.mapbender.org/index.php/Monitor_Capabilities
 # Copyright (C) 2002 CCGIS 
 #
@@ -66,24 +66,39 @@
 
 $userid = $admin->getUserIdByUserName($user);
 
+/*
+ * if the current user is a valid user...
+ */
 if ($userid) {
 	$ownguis = $admin->getGuisByOwner($userid,true);
+	/*
+	 * if monitoring is restricted to a single GUI...
+	 */
 	if ($gui) {
+		// ... abort if the GUI doesn't exist
 		if (!$admin->guiExists($gui)) {
 			echo "GUI " . $gui . " doesn't exist.\n"; die();
 		}
+		// ... add the GUI to the array of GUIs that will be monitored
 		elseif (in_array($gui, $ownguis)) {
 			$ownguis = array($gui);
 		} 
+		// ... abort if the GUI is not owned by the current user
 		else {
 			echo "User " . $user . " is not owner of GUI " . $gui . ".\n"; die();
 		}
 	}
 }
+/*
+ * if current user is not a valid user, abort
+ */
 else {
 	echo $user . " is not a valid username.\n";	die();
 }
 
+/**
+ * Array of WMS IDs. These are the WMS that the user owns.
+ */
 $wms_id_own = $admin->getWmsByOwnGuis($ownguis);
 
 // initialise monitoring processes
@@ -131,10 +146,10 @@
 for ($k=0; $k<count($wms_id_own); $k++) {
 
 	if (intval(AUTO_UPDATE)) {
-		$exec = PHP_PATH . "php mod_monitorCapabilities_write.php ".$wms_id_own[$k]." ".$time." 1 > ../tmp/output_".$time."_".$wms_id_own[$k].".txt &";
+		$exec = PHP_PATH . "php5 mod_monitorCapabilities_write.php ".$wms_id_own[$k]." ".$time." 1 > ../tmp/output_".$time."_".$wms_id_own[$k].".txt &";
 	}
 	else {
-		$exec = PHP_PATH . "php mod_monitorCapabilities_write.php ".$wms_id_own[$k]." ".$time." 0 > ../tmp/output_".$time."_".$wms_id_own[$k].".txt &";
+		$exec = PHP_PATH . "php5 mod_monitorCapabilities_write.php ".$wms_id_own[$k]." ".$time." 0 > ../tmp/output_".$time."_".$wms_id_own[$k].".txt &";
 	}
 	exec($exec);
 }
@@ -169,7 +184,7 @@
 	if ($status[$i] == -2 && intval(time())-intval($timestamp_begin[$i]) > intval(TIME_LIMIT)) {
 		$comment[$i] = "Monitoring process timed out.";
 		$status[$i] = -1;	
-		$new_sql = "UPDATE mb_monitor SET status = '-1', status_comment = 'Monitoring process timed out.', timestamp_end = $1 WHERE fkey_wms_id = $2 AND upload_id = $3";
+		$new_sql = "UPDATE mb_monitor SET status = '-1', isImage = '-1', status_comment = 'Monitoring process timed out.', timestamp_end = $1 WHERE fkey_wms_id = $2 AND upload_id = $3";
 		$new_v = array((intval($upload_id[$i])+intval(TIME_LIMIT)), $wms_id[$i], $time);
 		$new_t = array('s', 'i', 's');
 		$new_res = db_prep_query($new_sql,$new_v,$new_t);
@@ -186,7 +201,7 @@
 if ($body) {
 	$error_msg = "";
 	if ($admin->getEmailByUserId($userid)) {
-		$admin->sendEmail(MAILADMIN, MAILADMINNAME, $admin->getEmailByUserId($userid), $user, "WMS monitor report " . date("F j, Y, G:i:s", $time), utf8_decode($body), &$error_msg);
+//		$admin->sendEmail(MAILADMIN, MAILADMINNAME, $admin->getEmailByUserId($userid), $user, "WMS monitor report " . date("F j, Y, G:i:s", $time), utf8_decode($body), &$error_msg);
 	}
 	else {
 		$error_msg = "Email address of user '" . $admin->getUserNameByUserId($userid) . "' unknown!\n";

Modified: branches/mapbender_sld/http/php/mod_monitorCapabilities_read.php
===================================================================
--- branches/mapbender_sld/http/php/mod_monitorCapabilities_read.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_monitorCapabilities_read.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -1,6 +1,6 @@
 
 <?php
-# $Id: mod_monitorCapabilities_read.php 76 2006-08-15 12:25:34Z heuser $
+# $Id: mod_monitorCapabilities_read.php 1283 2007-10-25 15:20:25Z baudson $
 # http://www.mapbender.org/index.php/Monitor_Capabilities
 # Copyright (C) 2002 CCGIS 
 #
@@ -87,7 +87,7 @@
 		$avg_response_time[$wms[$i]] = round(db_result($res,0,1)-db_result($res,0,0), 1);
 	}
 	
-	$sql = "SELECT status, status_comment, timestamp_begin, timestamp_end, upload_url, updated FROM mb_monitor ";
+	$sql = "SELECT status, status_comment, timestamp_begin, timestamp_end, upload_url, updated, image, map_url FROM mb_monitor ";
 	$sql .= "WHERE upload_id = $1 AND fkey_wms_id = $2 ORDER BY status, status_comment, timestamp_end, fkey_wms_id";
 	$v = array($upload_id[$wms[$i]], $wms_id[$wms[$i]]);
 	$t = array('s', 'i');
@@ -99,6 +99,8 @@
 	$timestamp_end[$wms[$i]] = db_result($res,0,"timestamp_end");
 	$upload_url[$wms[$i]] = db_result($res,0,"upload_url");
 	$updated[$wms[$i]] = db_result($res,0,"updated");
+	$mapurl[$wms[$i]] = db_result($res,0,"map_url");
+	$image[$wms[$i]] = db_result($res,0,"image");
 	
  	if ($status[$wms[$i]] == -2 && intval(time())-intval($timestamp_begin[$wms[$i]]) > intval(TIME_LIMIT)) {
 		$comment[$wms[$i]] = "Monitoring process timed out.";	
@@ -147,6 +149,10 @@
 		$newArray = $upload_id;
 		arsort($newArray);
 	}
+	elseif ($_GET['image'] == "last") {
+		$newArray = $image;
+		arsort($newArray);
+	}
 }
 
 
@@ -158,6 +164,7 @@
 $str .= "<table cellpadding=10 cellspacing=0 border=0>";
 $str .= "<tr bgcolor='#dddddd'><th></th><th align='left'><a href='".$PHP_SELF."?sortby=wms'>wms</a></th>";
 $str .= "<th align='left' colspan = 2><a href='".$PHP_SELF."?sortby=status'>current status</a></th>";
+$str .= "<th align='left'><a href='".$PHP_SELF."?sortby=image'>image</a></th>";
 $str .= "<th align='left'><a href='".$PHP_SELF."?sortby=avgresp'>avg. response time</a></th>";
 $str .= "<th align='left'><a href='".$PHP_SELF."?sortby=avail'>overall availability</a></th><th></th></tr>";
 
@@ -179,6 +186,27 @@
 	$str .= "\n\t\t\t<td valign='top'><b>" . $wms_id[$k] . "</b><br>" . $admin->getWmsTitleByWmsId($wms_id[$k]) . "</td>";
 	$str .= "\n\t\t\t<td valign='top'><a href='".$upload_url[$k]."' target=_blank><img title='Connect to service' border=0 src = '../img/trafficlights/". $img. "'></a></td>";
 	$str .= "\n\t\t\t<td valign='top'>" . $comment[$k] . "<br><div style='font-size:12'>".date("F j, Y, G:i:s", $upload_id[$k])."</div></td>";
+	$str .= "\n\t\t\t<td valign='top'>";
+
+	$str .= "<table bgcolor='black' border=1 cellspacing=1 cellpadding=0><tr><td height=20 width=20 align=center valign=middle bgcolor='";
+
+	if ($image[$k] == -1) {
+		$str .= "red";
+	}
+	elseif ($image[$k] == 0) {
+		$str .= "yellow";
+	}
+	elseif ($image[$k] == 1) {
+		$str .= "green";
+	}
+
+	if ($image[$k] != -1) {
+		$str .= "'><a href='".$mapurl[$k]."'>o</a></td></tr></table></td>";
+	}
+	else {
+		$str .= "'><a href='".$mapurl[$k]."'>x</a></td></tr></table></td>";
+	}
+
 	$str .= "\n\t\t\t<td valign='top' align = 'left'>";
 	if ($avg_response_time[$k] == NULL) {
 		$str .= "n/a";

Modified: branches/mapbender_sld/http/php/mod_monitorCapabilities_write.php
===================================================================
--- branches/mapbender_sld/http/php/mod_monitorCapabilities_write.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_monitorCapabilities_write.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -1,5 +1,5 @@
 <?php
-# $Id: mod_monitorCapabilities_write.php 76 2006-08-15 12:25:34Z heuser $
+# $Id: mod_monitorCapabilities_write.php 1235 2007-10-23 15:42:55Z baudson $
 # http://www.mapbender.org/index.php/Monitor_Capabilities
 # Copyright (C) 2002 CCGIS 
 #
@@ -16,113 +16,26 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
 
-require_once(dirname(__FILE__)."/../classes/class_wms.php");
-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
 session_start();
-import_request_variables("PG");
 
-$con = db_connect($DBSERVER,$OWNER,$PW);
-db_select_db(DB,$con);
+require_once(dirname(__FILE__)."/../classes/class_monitor.php");
 
+/*
+ * incoming parameters from command line
+ */
 if ($_SERVER["argc"] != 4) {
 	echo "Insufficient arguments! Monitoring aborted.";
 	die();
 }
 
 $wmsId = $_SERVER["argv"][1];
-$upload_id = $_SERVER["argv"][2];
-$auto_update = intval($_SERVER["argv"][3]);
+$uploadId = $_SERVER["argv"][2];
+$autoUpdate = intval($_SERVER["argv"][3]);
 
-// get the uploadURL
-$sql = "SELECT upload_url FROM mb_monitor WHERE fkey_wms_id = $1 AND upload_id = $2";
-$v = array($wmsId, $upload_id);
-$t = array('i', 's');
-$res = db_prep_query($sql,$v,$t);
-$someArray = db_fetch_row($res);
-$myURL = $someArray[0];
+$monitor = new Monitor($wmsId, $uploadId, $autoUpdate);
 
-// get the capabilities doc
-$sql = "SELECT wms_getcapabilities_doc FROM wms WHERE wms_id = $1";
-$v = array($wmsId);
-$t = array('i');
-$res = db_prep_query($sql,$v,$t);
-$someArray = db_fetch_row($res);
-$capabilities_doc = $someArray[0];
+echo $monitor;	
 
-$comment = "";
-$updated = "0";
-$result = -1;
-
-set_time_limit(TIME_LIMIT);
-
-if ($myURL) {
-
-	$remoteWms = new wms();
-	$remoteWms->createObjFromXML($myURL);
-	$now = time();
-	$remoteXml = $remoteWms->wms_getcapabilities_doc;  
-
-	// compare the capabilities XML documents
-	$localXml = $capabilities_doc;
-	
-	if (!$remoteXml) {
-		$result = -1;
-		$comment = "Connection failed.";
-	}
-	elseif (!$localXml) {
-		$result = 0;
-	}
-	else {
-		
-		if ($localXml == $remoteXml) {
-			$result = 1;
-			$comment = "WMS is stable.";
-		}
-		else {
-			$result = 0;
-		}
-	}
-	if ($result == 0) {
-		$mywms = new wms();
-		
-		if ($mywms->createObjFromXML($myURL)) {
-			if ($auto_update) {
-				$mywms->updateObjInDB($wmsId);
-				$updated = "1";
-				$comment = "WMS has been updated.";
-			}
-			else {
-				$comment = "WMS is not up to date.";
-			}
-		}
-		else {
-			$result = -1;
-			$comment = "Invalid getCapabilities request/document or service exception.";
-		}    
-	}
-}
-else {
-	$result = -1;
-	$comment = "Invalid upload URL.";
-	$now = time();
-}
-
-echo "wmsid: " . $wmsId . "\nupload_id: " . $upload_id . "\n";
-echo "autoupdate: " . $auto_update . "\n";
-echo "result: " . $result . "\ncomment: " . $comment . "\n";
-echo "timestamp: " . $now . " (".date("F j, Y, G:i:s",$now).")\n";
-echo "getCapabilities URL: " . $myURL . "\nupdated: " . $updated . "\n\n";
-echo "-------------------------------------------------------------------\n";
-echo "remote XML:\n\n" . $remoteXml . "\n\n";
-echo "-------------------------------------------------------------------\n";
-echo "local XML:\n\n" . $localXml . "\n\n";
-echo "-------------------------------------------------------------------\n";
-
-
-$sql = "UPDATE mb_monitor SET updated = $1, status = $2, status_comment = $3, upload_url = $4, timestamp_end = $5 WHERE upload_id = $6 AND fkey_wms_id = $7";
-$v = array($updated, $result, $comment, $myURL, $now, $upload_id, $wmsId);
-$t = array('s', 's', 's', 's', 's', 's', 'i');
-$res = db_prep_query($sql,$v,$t);
+$monitor->updateInDB();
 ?>
\ No newline at end of file

Modified: branches/mapbender_sld/http/php/mod_renameGUI.php
===================================================================
--- branches/mapbender_sld/http/php/mod_renameGUI.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_renameGUI.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -214,7 +214,7 @@
 echo "<tr><td class='newName_str'>Name: </td><td><input class='newName' type='text' id='newGuiName' name='newGuiName'></td></tr>\n";
 echo "<tr>";
 echo " <td><input class='button_rename' type='button' value='rename' onclick='validate_rename()'></td>";
-echo " <td><input class='button_copy' type='button' value='copy' onclick='validate_copy()'><div  class='button_copy_checkbox'>(<input name='withUsers' type='checkbox' /> copy users)</div></td>";
+echo " <td><input class='button_copy' type='button' value='copy' onclick='validate_copy()'><div  class='button_copy_checkbox'>(<input name='withUsers' type='checkbox' /> copy users and groups)</div></td>";
 echo "</tr>\n";
 echo "</table>";
 }

Modified: branches/mapbender_sld/http/php/mod_saveWKT.php
===================================================================
--- branches/mapbender_sld/http/php/mod_saveWKT.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_saveWKT.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -76,7 +76,7 @@
 personal postgresql parameters - persönliche Postgresql-Einstellungen    */
 $host = "localhost";
 $port = "5432";
-DBname = "databasename";
+define("DBname", "databasename");
 $user = "username";
 $password = "password";
 //personal example: pick only certain (working-) tables, here: tables which start with "mapbender_"

Modified: branches/mapbender_sld/http/php/mod_updateWMS.php
===================================================================
--- branches/mapbender_sld/http/php/mod_updateWMS.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_updateWMS.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -107,21 +107,17 @@
 
 	$mywms = new wms();
 	$mywms->createObjFromXML($myURL);    
+	$mywms->optimizeWMS();
 	echo "<br />";  
 	$mywms->updateObjInDB($myWMS);
 	$mywms->displayWMS();
 
 	// start (owners of the updated wms will be notified by email)
 	if ($use_php_mailing) {
-		$owner = $admin->getOwnerByWms($myWMS);
+		$owner_ids = $admin->getOwnerByWms($myWMS);
 		
-		if ($owner && count($owner)>0) {
-			$owner_ids = array();
+		if ($owner_ids && count($owner_ids)>0) {
 			$owner_mail_addresses = array();
-			for ($i=0; $i<count($owner); $i++) {
-				$tmp_array = $admin->getUserIdByUserName($owner[$i]);
-				$owner_ids[$i] = $tmp_array[0]; 
-			}
 			$j=0;
 			for ($i=0; $i<count($owner_ids); $i++) {
 				$adr_tmp = $admin->getEmailByUserId($owner_ids[$i]);

Modified: branches/mapbender_sld/http/php/mod_usemap.php
===================================================================
--- branches/mapbender_sld/http/php/mod_usemap.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_usemap.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -2,7 +2,7 @@
 <head>
 <?php
 # $Id$
-# http://www.mapbender.org/index.php/Administration
+# http://www.mapbender.org/index.php/UseMap
 # Copyright (C) 2002 CCGIS 
 #
 # This program is free software; you can redistribute it and/or modify

Modified: branches/mapbender_sld/http/php/mod_user_filteredGroup.php
===================================================================
--- branches/mapbender_sld/http/php/mod_user_filteredGroup.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_user_filteredGroup.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -57,6 +57,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -121,6 +175,7 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] = $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];
 	$cnt_user++;
 }
 
@@ -147,11 +202,13 @@
 /*INSERT HTML*/
 echo "<form name='form1' action='" . $self ."' method='post'>";
 
-/*insert all user in selectbox*********************************************************************/
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter1' id='filter1' name='filter1' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
+/*insert all user in selectbox*************************************************************************************/
 echo "<div class='text1'>USER: </div>";
-echo "<select style='background:#ffffff' class='select1' name='selected_user' onChange='submit()' size='10'>";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select1' id='selecteduser' name='selected_user' onChange='submit()' size='10'>";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i] . "' ";
+	echo "<option value='" . $user_id[$i] . "' title='".$user_email[$i]."'";
 	if($selected_user && $selected_user == $user_id[$i]){
 		echo "selected";
 	}
@@ -189,6 +246,15 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_user.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_user_filteredGui.php
===================================================================
--- branches/mapbender_sld/http/php/mod_user_filteredGui.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_user_filteredGui.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -62,6 +62,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -129,6 +183,7 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] = $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];
 	$cnt_user++;
 }
 
@@ -200,16 +255,20 @@
 /*INSERT HTML*/
 echo "<form name='form1' action='" . $self ."' method='post'>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter1' id='filter1' name='filter1' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
 /*insert all user in selectbox*************************************************************************************/
 echo "<div class='text1'>USER: </div>";
-echo "<select style='background:#ffffff' class='select1' name='selected_user' onChange='submit()' size='10'>";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select1' id='selecteduser' name='selected_user' onChange='submit()' size='10'>";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i] . "' ";
+	echo "<option value='" . $user_id[$i] . "' title='".$user_email[$i]."'";
 	if($selected_user && $selected_user == $user_id[$i]){
 		echo "selected";
 	}
-	echo ">" . $user_name[$i] . "</option>";}
+	echo ">" . $user_name[$i]  . "</option>";
+}
 echo "</select>";
+
 /*insert allocated gui in selectbox**************************************************************************/
 echo "<div class='text2'>GUI:</div>";
 echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_gui[]' size='$fieldHeight' >";
@@ -239,6 +298,15 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_user.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_user_group.php
===================================================================
--- branches/mapbender_sld/http/php/mod_user_group.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_user_group.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -57,6 +57,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -117,6 +171,7 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] = $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];
 	$cnt_user++;
 }
 
@@ -140,11 +195,13 @@
 /*INSERT HTML*/
 echo "<form name='form1' action='" . $self ."' method='post'>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter1' id='filter1' name='filter1' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
 /*insert all user in selectbox*************************************************************************************/
 echo "<div class='text1'>USER: </div>";
-echo "<select style='background:#ffffff' class='select1' name='selected_user' onChange='submit()' size='10'>";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select1' id='selecteduser' name='selected_user' onChange='submit()' size='10'>";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i] . "' ";
+	echo "<option value='" . $user_id[$i] . "' title='".$user_email[$i]."'";
 	if($selected_user && $selected_user == $user_id[$i]){
 		echo "selected";
 	}
@@ -182,6 +239,15 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_user.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 </body>

Modified: branches/mapbender_sld/http/php/mod_user_gui.php
===================================================================
--- branches/mapbender_sld/http/php/mod_user_gui.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_user_gui.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -59,6 +59,60 @@
 		}
 	}
 }
+/**
+ * filter the Userlist by str
+ */
+function filterUser(list, all, str){
+	str=str.toLowerCase();
+	var selection=[];
+	var i,j,selected;
+	for(i=0;i<list.options.length;i++){
+		if(list.options[i].selected)
+			selection[selection.length]=list.options[i].value;
+	}
+	
+	list.options.length = 0;
+	for(i=0; i<all.length; i++){
+		if(all[i]['name'].toLowerCase().indexOf(str)==-1)
+			continue;
+		selected=false;
+		for(j=0;j<selection.length;j++){
+			if(selection[j]==all[i]['id']){
+				selected=true;
+				break;
+			}
+		}
+		var newOption = new Option(selected?all[i]['name']+" ("+all[i]['email']+")":all[i]['name'],all[i]['id'],false,selected);
+		newOption.setAttribute("title", all[i]['email']);
+		list.options[list.options.length] = newOption;
+	}	
+}
+/**
+ * add Mail adress on selection
+ */
+function updateMail(list, all){
+	var j=0;
+	for(var i=0; i<list.options.length;i++){
+		if(list.options[i].selected){
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name']+" ("+all[j]['email']+")";
+					list.options[i].selected = true;
+					break;
+				}
+			}
+		}
+		else{
+			for(j=j;j<all.length;j++){
+				if(all[j]['id']==list.options[i].value){
+					list.options[i].text=all[j]['name'];
+					list.options[i].selected = false;
+					break;
+				}
+			}
+		}
+	}
+}
 </script>
 
 </head>
@@ -122,6 +176,7 @@
 while($row = db_fetch_array($res_user)){
 	$user_id[$cnt_user] = $row["mb_user_id"];
 	$user_name[$cnt_user] = $row["mb_user_name"];
+	$user_email[$cnt_user] = $row["mb_user_email"];
 	$cnt_user++;
 }
 
@@ -144,11 +199,13 @@
 /*INSERT HTML*/
 echo "<form name='form1' action='" . $self ."&e_id_css=".$_REQUEST["e_id_css"]."' method='post'>";
 
+/*filterbox****************************************************************************************/
+echo "<input type='text' value='' class='filter1' id='filter1' name='filter1' onkeyup='filterUser(document.getElementById(\"selecteduser\"),user,this.value);'/>";
 /*insert all user in selectbox*************************************************************************************/
 echo "<div class='text1'>USER: </div>";
-echo "<select style='background:#ffffff' class='select1' name='selected_user' onChange='submit()' size='10'>";
+echo "<select style='background:#ffffff' onchange='updateMail(this, user)' class='select1' id='selecteduser' name='selected_user' onChange='submit()' size='10'>";
 for($i=0; $i<$cnt_user; $i++){
-	echo "<option value='" . $user_id[$i] . "' ";
+	echo "<option value='" . $user_id[$i] . "' title='".$user_email[$i]."'";
 	if($selected_user && $selected_user == $user_id[$i]){
 		echo "selected";
 	}
@@ -185,6 +242,15 @@
 <script type="text/javascript">
 <!--
 document.forms[0].selected_user.focus();
+var user=[];
+<?php
+for($i=0; $i<$cnt_user; $i++){
+	echo "user[".$i."]=[];\n";
+	echo "user[".$i."]['id']='" . $user_id[$i]  . "';\n";
+	echo "user[".$i."]['name']='" . $user_name[$i]  . "';\n";
+	echo "user[".$i."]['email']='" . $user_email[$i]  . "';\n";
+}
+?>
 // -->
 </script>
 

Modified: branches/mapbender_sld/http/php/mod_wfs.php
===================================================================
--- branches/mapbender_sld/http/php/mod_wfs.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_wfs.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -20,12 +20,9 @@
 require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
 ?>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
 <html>
 <head>
-<?php
-echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
-?>
+<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
 <title>mod_wfs</title>
 <script language='JavaScript' type='text/javascript'>
 var wfs_conf = new Array();
@@ -53,7 +50,6 @@
 		}	
 	}	
 	document.location.href = "../php/mod_wfs.php?id=" + wfs.join(",");
-	
 }
 function get_wfs_conf(){
 	return wfs_conf;
@@ -63,7 +59,7 @@
 <?php
 echo "<script language='JavaScript' type='text/javascript'>";
 if(isset($_REQUEST['id'])){
-	$wfs = split(",",$_REQUEST['id']);
+	$wfs = mb_split(",",$_REQUEST['id']);
 	
 	$con = db_connect($DBSERVER,$OWNER,$PW);
 	db_select_db($DB,$con);
@@ -71,8 +67,6 @@
 	for($i=0; $i<count($wfs); $i++){	
 		
 		/* wfs_conf */
-	
-		
 		$sql = "SELECT * FROM wfs_conf ";
 		$sql .= "JOIN wfs ON wfs_conf.fkey_wfs_id = wfs.wfs_id ";
 		$sql .= "WHERE wfs_conf.wfs_conf_id = $1";
@@ -90,11 +84,11 @@
 			echo "wfs_conf[".$i."]['wfs_conf_abstract']  = '".$row["wfs_conf_abstract"]."';";
 			echo "wfs_conf[".$i."]['g_label']  = '".$row["g_label"]."';";
 			echo "wfs_conf[".$i."]['g_label_id']  = '".$row["g_label_id"]."';";
-			echo "wfs_conf[".$i."]['g_style']  = \"".str_replace(chr(13), "", str_replace(chr(10), "", $row["g_style"]))."\";";
+			echo "wfs_conf[".$i."]['g_style']  = \"".preg_replace("/\n/", "", preg_replace("/\r/", "", $row["g_style"]))."\";";
 			echo "wfs_conf[".$i."]['g_button']  = '".$row["g_button"]."';";
 			echo "wfs_conf[".$i."]['g_button_id']  = '".$row["g_button_id"]."';";
 			echo "wfs_conf[".$i."]['g_buffer']  = '".$row["g_buffer"]."';";
-			echo "wfs_conf[".$i."]['g_res_style']  = \"".str_replace(chr(13), "", str_replace(chr(10), "", $row["g_res_style"]))."\";";
+			echo "wfs_conf[".$i."]['g_res_style']  = \"".preg_replace("/\n/", "", preg_replace("/\r/", "", $row["g_res_style"]))."\";";
 			echo "wfs_conf[".$i."]['g_use_wzgraphics']  = '".$row["g_use_wzgraphics"]."';";
 			echo "wfs_conf[".$i."]['fkey_featuretype_id']  = '".$row["fkey_featuretype_id"]."';";
 			echo "wfs_conf[".$i."]['wfs_getfeature']  = '".$row["wfs_getfeature"]."';";
@@ -154,22 +148,18 @@
 			echo "wfs_conf[".$i."]['element'][".$cnt."]['element_type'] = '".$row["element_type"]."';";
 			echo "wfs_conf[".$i."]['element'][".$cnt."]['f_geom'] = '".$row["f_geom"]."';";
 			echo "wfs_conf[".$i."]['element'][".$cnt."]['f_gid'] = '".$row["f_gid"]."';";
-			echo "wfs_conf[".$i."]['element'][".$cnt."]['f_form_element_html'] = \"".(str_replace(chr(13), "", str_replace(chr(10), "", $row["f_form_element_html"])))."\";";
+			echo "wfs_conf[".$i."]['element'][".$cnt."]['f_form_element_html'] = \"".(preg_replace("/\n/", "", preg_replace("/\r/", "", $row["f_form_element_html"])))."\";";
 //			echo "wfs_conf[".$i."]['element'][".$cnt."]['f_form_element_html'] = \"\";";
 			echo "wfs_conf[".$i."]['element'][".$cnt."]['f_edit'] = '".$row["f_edit"]."';";
 			echo "wfs_conf[".$i."]['element'][".$cnt."]['f_mandatory'] = '".$row["f_mandatory"]."';";
+			echo "wfs_conf[".$i."]['element'][".$cnt."]['f_auth_varname'] = '".$row["f_auth_varname"]."';";
 			$cnt++;
 		}
 		if($cnt == 0){die("wfs_conf data not available");}		
 	}
 	echo "iamready = true;";
 }
-
 ?>
-if(iamready){
-	
-}
-
 </script>
 </head>
 <body leftmargin='0' topmargin='10'  bgcolor='#ffffff' onload='register()'>

Modified: branches/mapbender_sld/http/php/mod_wfs_conf.php
===================================================================
--- branches/mapbender_sld/http/php/mod_wfs_conf.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_wfs_conf.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -21,6 +21,7 @@
 require(dirname(__FILE__)."/../../conf/mapbender.conf");
 $con = db_connect(DBSERVER,OWNER,PW);
 db_select_db(DB,$con);
+session_start();
 ?>
 <html>
 <head>
@@ -72,16 +73,26 @@
 Select WFS:&nbsp;
 <?php
 $aWFS = new wfs_conf();
-$aWFS->getallwfs();
+$aWFS->getallwfs($_SESSION['mb_user_id']);
 
+
+function toImage($text) {
+	$angle = 90;
+	if (extension_loaded("gd2")) {
+		return "<img src='../php/createImageFromText.php?text=" . urlencode($text) . "&angle=" . $angle . "'>";
+	}
+	return $text;
+}
+
 /* save wfs_conf properties */
 
 if(isset($_REQUEST["save"])){
 
         db_select_db($DB,$con);
 
-        $sql = "INSERT INTO wfs_conf (wfs_conf_abstract,fkey_wfs_id,fkey_featuretype_id,g_label,g_label_id,g_button,g_button_id,g_style,g_buffer,g_res_style,g_use_wzgraphics) VALUES(";
+        $sql = "INSERT INTO wfs_conf (wfs_conf_abstract,wfs_conf_description,fkey_wfs_id,fkey_featuretype_id,g_label,g_label_id,g_button,g_button_id,g_style,g_buffer,g_res_style,g_use_wzgraphics) VALUES(";
         $sql .= "'".$_REQUEST["wfs_conf_abstract"]."',";
+        $sql .= "'".$_REQUEST["wfs_conf_description"]."',";
         $sql .= "'".$_REQUEST["wfs"]."',";
         $sql .= "'".$_REQUEST["featuretype"]."',";
         $sql .= "'".$_REQUEST["g_label"]."',";
@@ -99,7 +110,7 @@
         $res = db_query($sql);
         $wfsID = db_insert_id($con,'wfs_conf','wfs_conf_id');
         for($i=0; $i<$_REQUEST["num"]; $i++){
-                $sql = "INSERT INTO wfs_conf_element (fkey_wfs_conf_id,f_id,f_search,f_pos,f_style_id,f_toupper,f_label,f_label_id,f_show,f_respos,f_edit,f_form_element_html,f_mandatory) VALUES(";
+                $sql = "INSERT INTO wfs_conf_element (fkey_wfs_conf_id,f_id,f_search,f_pos,f_style_id,f_toupper,f_label,f_label_id,f_show,f_respos,f_edit,f_form_element_html,f_mandatory,f_auth_varname) VALUES(";
                 $sql .= "'".$wfsID."',";
                 $sql .= "'".$_REQUEST["f_id".$i]."',";
                 if(!empty($_REQUEST["f_search".$i])){
@@ -124,22 +135,19 @@
                 if(!empty($_REQUEST["f_mandatory".$i])){
                 	$sql .= "'1'";
                 }else{$sql .= "'0'";}
+                $sql .= ", ";
+                $sql .= "'".$_REQUEST["f_auth_varname".$i];
+				$sql .= "'";
                 $sql .= "); ";
 
                 $res = db_query($sql);
-     
         }
-        $sql = "UPDATE wfs_conf_element SET ";
-        $sql .= "f_geom = 1";
-        $sql .= " WHERE fkey_wfs_conf_id = ".$wfsID." AND f_id = ".$_REQUEST["f_geom"].";";
-		$res = db_query($sql);
-		
-
-        $sql = "UPDATE wfs_conf_element SET ";
-        $sql .= "f_gid = 1";
-        $sql .= " WHERE fkey_wfs_conf_id = ".$wfsID." AND f_id = ".$_REQUEST["f_gid"].";";
-		$res = db_query($sql);
-		
+        if (isset($_REQUEST["f_geom"])) {
+	        $sql = "UPDATE wfs_conf_element SET ";
+	        $sql .= "f_geom = 1";
+	        $sql .= " WHERE fkey_wfs_conf_id = ".$wfsID." AND f_id = ".$_REQUEST["f_geom"].";";
+			$res = db_query($sql);
+        }
 		echo "<script language='javascript'>";
 		echo "document.location.href = 'mod_wfs_edit.php?gaz=".$wfsID."';";
 		echo "</script>";
@@ -216,7 +224,8 @@
 
         /* set featuretype options */
         echo "<table>";
-        echo "<tr><td>Abstract:</td><td><input type='text' name='wfs_conf_abstract'></td></tr>" ;
+        echo "<tr><td>Title:</td><td><input type='text' name='wfs_conf_abstract'></td></tr>" ;
+        echo "<tr><td>Description:</td><td><input type='text' name='wfs_conf_description'></td></tr>" ;
         echo "<tr><td>Label:</td><td><input type='text' name='g_label'></td></tr>" ;
         echo "<tr><td>Label_id:</td><td><input type='text' name='g_label_id'></td></tr>" ;
         echo "<tr><td>Button:</td><td><input type='text' name='g_button'></td></tr>" ;
@@ -231,43 +240,41 @@
         /* set element options */
         $aWFS->getelements($_REQUEST["featuretype"]);
         echo "<table border='1'>";
-        echo "<tr>";
-                echo "<td>ID</td>";
-                echo "<td>name</td>";
-                echo "<td>type</td>";
-                echo "<td>geom</td>";
-                echo "<td>gid</td>";
-                echo "<td>search</td>";
-                echo "<td>pos</td>";
-                echo "<td>style_id</td>";
-                echo "<td>upper</td>";
-                echo "<td>label</td>";
-                echo "<td>label_id</td>";
-                echo "<td>show</td>";
-                echo "<td>position</td>";
-                echo "<td>mandatory</td>";
-                echo "<td>edit</td>";
-                echo "<td>html</td>";
+        echo "<tr valign = bottom>";
+                echo "<td>" . toImage('ID') . "</td>";
+                echo "<td>" . toImage('name / type') . "</td>";
+                echo "<td>" . toImage('geom') . "</td>";
+                echo "<td>" . toImage('search') . "</td>";
+                echo "<td>" . toImage('pos') . "</td>";
+                echo "<td>" . toImage('style_id') . "</td>";
+                echo "<td>" . toImage('upper') . "</td>";
+                echo "<td>" . toImage('label') . "</td>";
+                echo "<td>" . toImage('label_id') . "</td>";
+                echo "<td>" . toImage('show') . "</td>";
+                echo "<td>" . toImage('position') . "</td>";
+                echo "<td>" . toImage('mandatory') . "</td>";
+                echo "<td>" . toImage('edit') . "</td>";
+                echo "<td>" . toImage('html') . "</td>";
+                echo "<td>" . toImage('auth') . "</td>";
         echo "</tr>";
 
         for($i=0; $i<count($aWFS->elements->element_id); $i++){
                 echo "<tr>";
                 echo "<td>".$aWFS->elements->element_id[$i]."<input type='hidden' name='f_id".$i."' value='".$aWFS->elements->element_id[$i]."'></td>";
-                echo "<td>".$aWFS->elements->element_name[$i]."</td>";
-                echo "<td>".$aWFS->elements->element_type[$i]."</td>";
+                echo "<td>".$aWFS->elements->element_name[$i]."<br><div style='font-size:10'>".$aWFS->elements->element_type[$i]."</div></td>";
                 echo "<td><input name='f_geom' type='radio' value='".$aWFS->elements->element_id[$i]."'></td>";
-                echo "<td><input name='f_gid' type='radio' value='".$aWFS->elements->element_id[$i]."'></td>";
                 echo "<td><input name='f_search".$i."' type='checkbox'></td>";
-                echo "<td><input name='f_pos".$i."' type='text' size='2' value='0'></td>";
+                echo "<td><input name='f_pos".$i."' type='text' size='1' value='0'></td>";
                 echo "<td><input name='f_style_id".$i."' type='text' size='2' value='0'></td>";
                 echo "<td><input name='f_toupper".$i."' type='checkbox'></td>";
-                echo "<td><input name='f_label".$i."' type='text' size='10'></td>";
+                echo "<td><input name='f_label".$i."' type='text' size='4'></td>";
                 echo "<td><input name='f_label_id".$i."' type='text' size='2'  value='0'></td>";
                 echo "<td><input name='f_show".$i."' type='checkbox'></td>";
-                echo "<td><input name='f_respos".$i."' type='text' size='4' value='0'></td>";
+                echo "<td><input name='f_respos".$i."' type='text' size='1' value='0'></td>";
                 echo "<td><input name='f_mandatory".$i."' type='checkbox'></td>";
                 echo "<td><input name='f_edit".$i."' type='checkbox'></td>";
-                echo "<td><textarea name='f_form_element_html".$cnt."' cols='15' rows='1' ></textarea></td>";
+                echo "<td><textarea name='f_form_element_html".$i."' cols='15' rows='1' ></textarea></td>";
+                echo "<td><input name='f_auth_varname".$i."' type='text' size='8' value=''></td>";
                 echo "</tr>";
         }
         echo "</table>";

Modified: branches/mapbender_sld/http/php/mod_wfs_edit.php
===================================================================
--- branches/mapbender_sld/http/php/mod_wfs_edit.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_wfs_edit.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -18,6 +18,7 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 require(dirname(__FILE__)."/../../conf/mapbender.conf");
+session_start();
 ?>
 <html>
 <head>
@@ -59,6 +60,7 @@
 
         $sql = "UPDATE wfs_conf SET ";
         $sql .= "wfs_conf_abstract = '".$_REQUEST["wfs_conf_abstract"]."',";
+        $sql .= "wfs_conf_description = '".$_REQUEST["wfs_conf_description"]."',";
         $sql .= "g_label = '".$_REQUEST["g_label"]."',";
         $sql .= "g_label_id = '".$_REQUEST["g_label_id"]."',";
         $sql .= "g_button = '".$_REQUEST["g_button"]."',";
@@ -74,29 +76,26 @@
         
         $res = db_query($sql);
 		        
-        $sql = "UPDATE wfs_conf_element SET ";
-        $sql .= "f_geom = 1";
-        $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id = ".$_REQUEST["f_geom"].";";
-		$res = db_query($sql);
+		if (isset($_REQUEST["f_geom"])) {
+	        $sql = "UPDATE wfs_conf_element SET ";
+	        $sql .= "f_geom = 1";
+	        $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id = ".$_REQUEST["f_geom"].";";
+			$res = db_query($sql);
+			
+			$sql = "UPDATE wfs_conf_element SET ";
+	        $sql .= "f_geom = 0";
+	        $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id <>  ".$_REQUEST["f_geom"].";";
+			$res = db_query($sql);
+		}
+		else {
+			$sql = "UPDATE wfs_conf_element SET ";
+	        $sql .= "f_geom = 0";
+	        $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"].";";
+			$res = db_query($sql);
+		}
 		
-		$sql = "UPDATE wfs_conf_element SET ";
-        $sql .= "f_geom = 0";
-        $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id <>  ".$_REQUEST["f_geom"].";";
-		$res = db_query($sql);
-
-        $sql = "UPDATE wfs_conf_element SET ";
-        $sql .= "f_gid = 1";
-        $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id = ".$_REQUEST["f_gid"].";";
-		$res = db_query($sql);
-		
-		$sql = "UPDATE wfs_conf_element SET ";
-        $sql .= "f_gid = 0";
-        $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id <> ".$_REQUEST["f_gid"].";";
-		$res = db_query($sql);
-		
-		
-		
         for($i=0; $i<$_REQUEST["num"]; $i++){
+        	
                 $sql = "UPDATE wfs_conf_element SET ";
                 $sql .= "f_search = '";
                 if(!empty($_REQUEST["f_search".$i])){
@@ -128,10 +127,13 @@
 				$sql .= "',";
                 $sql .= "f_mandatory = '";
                 if(!empty($_REQUEST["f_mandatory".$i])){
-                	$sql .= '1';
-                }else{$sql .= '0';}
-                $sql .= "' ";
-                $sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id = ".$_REQUEST["f_id".$i].";";
+                	$sql .= "1";
+                }else{$sql .= "0";}
+				$sql .= "'";
+                $sql .= ", ";
+                $sql .= "f_auth_varname = '".$_REQUEST["f_auth_varname".$i];
+				$sql .= "'";                
+				$sql .= " WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." AND f_id = ".$_REQUEST["f_id".$i].";";
                 $res = db_query($sql);
         }
 }
@@ -140,8 +142,10 @@
 
 /* select wfs */
 
-$sql = "SELECT * FROM wfs_conf";
-$res = db_query($sql);
+$sql = "SELECT * FROM wfs_conf, wfs WHERE wfs.wfs_owner = $1 AND wfs_conf.fkey_wfs_id = wfs.wfs_id";
+$v = array($_SESSION['mb_user_id']);
+$t = array('i');
+$res = db_prep_query($sql,$v,$t);
 echo "<select size='10' name='gaz' onchange='submit()'>";
 $cnt = 0;
 while($row = db_fetch_array($res)){
@@ -158,8 +162,14 @@
 
 /* end select wfs */
 
+function toImage($text) {
+	$angle = 90;
+	if (extension_loaded("gd2")) {
+		return "<img src='../php/createImageFromText.php?text=" . urlencode($text) . "&angle=" . $angle . "'>";
+	}
+	return $text;
+}
 
-
 /* configure elements */
 if(isset($_REQUEST["gaz"])){
         $sql = "SELECT * FROM wfs_conf WHERE wfs_conf_id = ".$_REQUEST["gaz"];
@@ -167,7 +177,8 @@
         if($row = db_fetch_array($res)){
                 echo "<table>";
                 echo "<tr><td>GazetterID:</td><td>".$row["wfs_conf_id"]."</td></tr>" ;
-                echo "<tr><td>Abstract:</td><td><input type='text' name='wfs_conf_abstract' value='".$row["wfs_conf_abstract"]."'></td></tr>" ;
+                echo "<tr><td>Title:</td><td><input type='text' name='wfs_conf_abstract' value='".$row["wfs_conf_abstract"]."'></td></tr>" ;
+                echo "<tr><td>Description:</td><td><input type='text' name='wfs_conf_description' value='".$row["wfs_conf_description"]."'></td></tr>" ;
                 echo "<tr><td>Label:</td><td><input type='text' name='g_label' value='".$row["g_label"]."'></td></tr>" ;
                 echo "<tr><td>Label_id:</td><td><input type='text' name='g_label_id' value='".$row["g_label_id"]."'></td></tr>" ;
                 echo "<tr><td>Button:</td><td><input type='text' name='g_button' value='".$row["g_button"]."'></td></tr>" ;
@@ -184,55 +195,54 @@
         /* set element options */
         $sql = "SELECT * FROM wfs_conf_element ";
         $sql .= "JOIN wfs_element ON wfs_conf_element.f_id = wfs_element.element_id ";
-        $sql .= "WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"];
+        $sql .= "WHERE fkey_wfs_conf_id = ".$_REQUEST["gaz"]." ORDER BY f_id";
 
         $res = db_query($sql);
-
+		
         echo "<table border='1'>";
-        echo "<tr>";
-                echo "<td>ID</td>";
-                echo "<td>name</td>";
-                echo "<td>type</td>";
-                echo "<td>geom</td>";
-                echo "<td>gid</td>";
-                echo "<td>search</td>";
-                echo "<td>pos</td>";
-                echo "<td>style_id</td>";
-                echo "<td>upper</td>";
-                echo "<td>label</td>";
-                echo "<td>label_id</td>";
-                echo "<td>show</td>";
-                echo "<td>position</td>";
-                echo "<td>mandatory</td>";
-                echo "<td>edit</td>";
-                echo "<td>html</td>";
+        echo "<tr valign = bottom>";
+                echo "<td>" . toImage('ID') . "</td>";
+                echo "<td>" . toImage('name / type') . "</td>";
+                echo "<td>" . toImage('geom') . "</td>";
+                echo "<td>" . toImage('search') . "</td>";
+                echo "<td>" . toImage('pos') . "</td>";
+                echo "<td>" . toImage('style_id') . "</td>";
+                echo "<td>" . toImage('upper') . "</td>";
+                echo "<td>" . toImage('label') . "</td>";
+                echo "<td>" . toImage('label_id') . "</td>";
+                echo "<td>" . toImage('show') . "</td>";
+                echo "<td>" . toImage('position') . "</td>";
+                echo "<td>" . toImage('mandatory') . "</td>";
+                echo "<td>" . toImage('edit') . "</td>";
+                echo "<td>" . toImage('html') . "</td>";
+                echo "<td>" . toImage('auth') . "</td>";
         echo "</tr>";
         $cnt = 0;
         while($row = db_fetch_array($res)){
                 echo "<tr>";
-                echo "<td><input type='text' size='4' name='f_id".$cnt."' value='".$row["f_id"]."' readonly></td>";
-                echo "<td>".$row["element_name"]."</td>";
-                echo "<td>".$row["element_type"]."</td>";
+                echo "<td><input type='text' size='1' name='f_id".$cnt."' value='".$row["f_id"]."' readonly></td>";
+                echo "<td>".$row["element_name"]."<br>";
+				if ($row["element_type"]) {
+					echo "<div style='font-size:10'>(".$row["element_type"].")</div>";
+				}
+				echo "</td>";
                 echo "<td><input name='f_geom' type='radio' value='".$row["f_id"]."' ";
                 	if($row["f_geom"] == 1){ echo " checked"; }
 				echo "></td>";
-				echo "<td><input name='f_gid' type='radio' value='".$row["f_id"]."' ";
-                	if($row["f_gid"] == 1){ echo " checked"; }
-				echo "></td>";
                 echo "<td><input name='f_search".$cnt."' type='checkbox'";
                 if($row["f_search"] == 1){ echo " checked"; }
                 echo "></td>";
-                echo "<td><input name='f_pos".$cnt."' type='text' size='2' value='".$row["f_pos"]."'></td>";
+                echo "<td><input name='f_pos".$cnt."' type='text' size='1' value='".$row["f_pos"]."'></td>";
                 echo "<td><input name='f_style_id".$cnt."' type='text' size='2' value='".$row["f_style_id"]."'></td>";
                 echo "<td><input name='f_toupper".$cnt."' type='checkbox'";
                 if($row["f_toupper"] == 1){ echo " checked"; }
                 echo "></td>";
-                echo "<td><input name='f_label".$cnt."' type='text' size='10' value='".$row["f_label"]."'></td>";
+                echo "<td><input name='f_label".$cnt."' type='text' size='4' value='".$row["f_label"]."'></td>";
                 echo "<td><input name='f_label_id".$cnt."' type='text' size='2' value='".$row["f_label_id"]."'></td>";
                 echo "<td><input name='f_show".$cnt."' type='checkbox'";
                 if($row["f_show"] == 1){ echo " checked"; }
                 echo "></td>";
-                echo "<td><input name='f_respos".$cnt."' type='text' size='4' value='".$row["f_respos"]."'></td>";
+                echo "<td><input name='f_respos".$cnt."' type='text' size='1' value='".$row["f_respos"]."'></td>";
                 echo "<td><input name='f_mandatory".$cnt."' type='checkbox'";
                 if($row["f_mandatory"] == 1){ echo " checked"; }
                 echo "></td>";
@@ -240,6 +250,7 @@
                 if($row["f_edit"] == 1){ echo " checked"; }
                 echo "></td>";
                 echo "<td><textarea name='f_form_element_html".$cnt."' cols='15' rows='1' >".stripslashes($row["f_form_element_html"])."</textarea></td>";
+                echo "<td><input name='f_auth_varname".$cnt."' type='text' size='8' value='".$row["f_auth_varname"]."'></td>";
                 echo "</tr>";
                 $cnt++;
         }

Modified: branches/mapbender_sld/http/php/mod_wfs_result.php
===================================================================
--- branches/mapbender_sld/http/php/mod_wfs_result.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_wfs_result.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -1,142 +1,194 @@
-<?php
-# $Id$
-# http://www.mapbender.org/index.php/Administration
-# Copyright (C) 2002 CCGIS 
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-$filter = stripslashes($_REQUEST["filter"]);
-$url = stripslashes($_REQUEST['url']);
-//echo $filter; die();
-require_once("../../conf/mapbender.conf");
-require_once("../classes/class_stripRequest.php");
-require_once("../classes/class_connector.php");
-
-function sepNameSpace($s){
-	$c = strpos($s,":"); 
-	if ($c > 0){
-		return substr($s,$c+1);
-	}
-	else{
-		return $s;
-	}		
-}
-
-$wfsRequest = $url . urlencode($filter);
-$connection = new connector($wfsRequest);
-$data = $connection->file;
-if (!$data) die('wfs not available');
-
-$geometries = array('Point', 'Polygon', 'LineString', 'MultiPolygon', 'MultiLineString');
-
-
-//TODO: 
-// parsing via class_gml
-// add method toJSON to classGML
-$parser = xml_parser_create();
-xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
-xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
-xml_parser_set_option($parser,XML_OPTION_TARGET_ENCODING,CHARSET);
-xml_parse_into_struct($parser,$data,$values,$tags);
-xml_parser_free($parser);
-$member = -1;
-$section = false;
-$geom = false;
-$memberHasBeenCreated = false;
-$str = array();
-$geomtype = array();
-$el = -1;
-$fid = -1;
-
-$typename = $_REQUEST["typename"];
-$element_str = "";
-$geom_str = "";
-foreach ($values as $element) {
-	if(strtoupper($element[tag]) == strtoupper("gml:featureMember") && $element[type] == "open"){
-		$member++;
-		$section = true;
-		$cnt_geom = 0;
-	}
-	else if(strtoupper($element[tag]) == strtoupper($typename) && $element[type] == "open") {
-		$fid = $element[attributes][fid];
-	}
-	else if(in_array(sepNameSpace($element[tag]),$geometries) && $element[type] == "open" && $section == true){
-		$geom = true;
-		if (sepNameSpace($element[tag]) == "MultiLineString") {
-			$geom_str .= "geom.addMember(geomType.line);\n";
-			$memberHasBeenCreated = true;
-		}
-		else if (sepNameSpace($element[tag]) == "MultiPolygon" ) {
-			$geom_str .= "geom.addMember(geomType.polygon);\n";
-			$memberHasBeenCreated = true;
-		}
-		elseif (sepNameSpace($element[tag]) == "Point") {
-			$geom_str .= "geom.addMember(geomType.point);\n";
-			$memberHasBeenCreated = true;
-			$geom_str .= "geom.get(-1).addGeometry();\n";
-		}
-		elseif (sepNameSpace($element[tag]) == "LineString") {
-			if (!$memberHasBeenCreated) {
-				$geom_str .= "geom.addMember(geomType.line);\n";
-				$memberHasBeenCreated = true;
-			}
-			$geom_str .= "geom.get(-1).addGeometry();\n";
-		}
-		else if (sepNameSpace($element[tag]) == "Polygon" ) {
-			if (!$memberHasBeenCreated) {
-				$geom_str .= "geom.addMember(geomType.polygon);\n";
-				$memberHasBeenCreated = true;
-			}
-			$geom_str .= "geom.get(-1).addGeometry();\n";
-		}
-		else {
-			$geom_str .= "alert('unknown geomtype ".sepNameSpace($element[tag])."');";
-		}
-		// TO DO: the following is added twice! Once suffices.
-		$element_str .= "geom.get(" . $member . ").e.setElement('fid', '".$fid."');\n";
-		$element_str .= "geom.get(" . $member . ").wfs_conf = ".$_REQUEST['wfs_conf_id'].";\n";
-	}
-	else if(strtoupper($element[tag]) == strtoupper("gml:coordinates") && $geom == true){
-		$tmp =  str_replace(",,","",str_replace(" ",",",trim($element[value])));
-		$geom_str .= "var tmp1 = '".$tmp."';\n";
-		$geom_str .= "var tmp = tmp1.split(',');\n";
-		$geom_str .= "for (var i = 0 ; i < tmp.length ; i+=2) {\n";
-		$geom_str .= "\tgeom.getGeometry(-1,-1).addPointByCoordinates(parseFloat(tmp[i]), parseFloat(tmp[i+1]));\n";
-		$geom_str .= "}\n";
-		$geom_str .= "geom.close();\n";
-        $cnt_geom++;
-        
-	}
-	else if(in_array(sepNameSpace($element[tag]),$geometries) && $element[type] == "close"){			
-		$geom = false;
-		$memberHasBeenCreated = false;
-	}
-	else if($section == true && $geom == false && $element[value]){
-		$el++;
-		$str = $element[value];
-		$element_str .= "geom.get(" . $member . ").e.setElement('".sepNameSpace($element[tag])."', '".addslashes($str)."');\n";
-	}
-	else if(strtoupper($element[tag]) == strtoupper("gml:featureMember") && $element[type] == "close"){
-		$section = false;	
-		$el = -1;			
-	}
-}
-if ($geom_str != "") {
-	$geom_str = "var geom = new GeometryArray();\n" . $geom_str;
-}
-header('Content-type: text/html');
-echo $geom_str;
-echo $element_str;
+<?php
+# $Id$
+# http://www.mapbender.org/index.php/Administration
+# Copyright (C) 2002 CCGIS 
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+$filter = stripslashes($_REQUEST["filter"]);
+$url = stripslashes($_REQUEST["url"]);
+$js_wfs_conf_id = $_REQUEST["js_wfs_conf_id"];
+$db_wfs_conf_id = $_REQUEST["db_wfs_conf_id"];
+$typename = $_REQUEST["typename"];
+
+session_start();
+require_once("../../conf/mapbender.conf");
+require_once("../classes/class_stripRequest.php");
+require_once("../classes/class_connector.php");
+
+$con = db_connect(DBSERVER,OWNER,PW);
+db_select_db(DB,$con);
+
+function sepNameSpace($s){
+	$c = mb_strpos($s,":"); 
+	if ($c > 0){
+		return mb_substr($s,$c+1);
+	}
+	else{
+		return $s;
+	}		
+}
+
+/**
+ * checks if a variable name is valid.
+ * Currently a valid name would be sth. like $_SESSION["mb_user_id"]
+ * TODO: this function is also in mod_wfs_result!! Maybe merge someday.
+ */
+function isValidVarName ($varname) {
+	if (preg_match("/[\$]{1}_[a-z]+\[\"[a-z_]+\"\]/i", $varname) != 0) {
+		return true;
+	}
+	return false;
+}
+/**
+ * If access to the WFS conf is restricted, modify the filter.
+ * TODO: this function is also in mod_wfs_result!! Maybe merge someday.
+ */
+function checkAccessConstraint($filter, $wfs_conf_id) {
+	/* wfs_conf_element */
+	$sql = "SELECT * FROM wfs_conf_element ";
+	$sql .= "JOIN wfs_element ON wfs_conf_element.f_id = wfs_element.element_id ";
+	$sql .= "WHERE wfs_conf_element.fkey_wfs_conf_id = $1 ";
+	$sql .= "ORDER BY wfs_conf_element.f_respos";
+			
+	$v = array($wfs_conf_id);
+	$t = array('i');
+	$res = db_prep_query($sql,$v,$t);
+	while($row = db_fetch_array($res)){
+
+		if (!empty($row["f_auth_varname"])) {
+			$auth_varname = $row["f_auth_varname"];
+			$element_name = $row["element_name"];
+		}
+	}
+	if (!empty($auth_varname)) {
+
+		if (isValidVarName($auth_varname)) {
+			$user = eval("return " . $auth_varname . ";");
+			$pattern = "(<ogc:Filter[^>]*>)(.*)(</ogc:Filter>)";
+			$replacement = "\\1<And>\\2<ogc:PropertyIsEqualTo><ogc:PropertyName>" . $element_name . "</ogc:PropertyName><ogc:Literal>" . $user . "</ogc:Literal></ogc:PropertyIsEqualTo></And>\\3"; 
+			$filter = eregi_replace($pattern, $replacement, $filter);
+		}
+	}
+	return $filter;
+}
+
+$filter = checkAccessConstraint($filter, $db_wfs_conf_id);
+
+$wfsRequest = $url . urlencode($filter);
+$connection = new connector($wfsRequest);
+$data = $connection->file;
+if (!$data) die('wfs not available');
+
+$geometries = array('Point', 'Polygon', 'LineString', 'MultiPolygon', 'MultiLineString');
+
+
+//TODO: 
+// parsing via class_gml
+// add method toJSON to classGML
+$parser = xml_parser_create();
+xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
+xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
+xml_parser_set_option($parser,XML_OPTION_TARGET_ENCODING,CHARSET);
+xml_parse_into_struct($parser,$data,$values,$tags);
+xml_parser_free($parser);
+$member = -1;
+$section = false;
+$geom = false;
+$memberHasBeenCreated = false;
+$str = array();
+$geomtype = array();
+$el = -1;
+$fid = -1;
+
+$element_str = "";
+$geom_str = "";
+foreach ($values as $element) {
+	if(mb_strtoupper($element[tag]) == mb_strtoupper("gml:featureMember") && $element[type] == "open"){
+		$member++;
+		$section = true;
+		$cnt_geom = 0;
+	}
+	else if(mb_strtoupper($element[tag]) == mb_strtoupper($typename) && $element[type] == "open") {
+		$fid = $element[attributes][fid];
+	}
+	else if(in_array(sepNameSpace($element[tag]),$geometries) && $element[type] == "open" && $section == true){
+		$geom = true;
+		if (sepNameSpace($element[tag]) == "MultiLineString") {
+			$geom_str .= "geom.addMember(geomType.line);\n";
+			$memberHasBeenCreated = true;
+		}
+		else if (sepNameSpace($element[tag]) == "MultiPolygon" ) {
+			$geom_str .= "geom.addMember(geomType.polygon);\n";
+			$memberHasBeenCreated = true;
+		}
+		elseif (sepNameSpace($element[tag]) == "Point") {
+			$geom_str .= "geom.addMember(geomType.point);\n";
+			$memberHasBeenCreated = true;
+			$geom_str .= "geom.get(-1).addGeometry();\n";
+		}
+		elseif (sepNameSpace($element[tag]) == "LineString") {
+			if (!$memberHasBeenCreated) {
+				$geom_str .= "geom.addMember(geomType.line);\n";
+				$memberHasBeenCreated = true;
+			}
+			$geom_str .= "geom.get(-1).addGeometry();\n";
+		}
+		else if (sepNameSpace($element[tag]) == "Polygon" ) {
+			if (!$memberHasBeenCreated) {
+				$geom_str .= "geom.addMember(geomType.polygon);\n";
+				$memberHasBeenCreated = true;
+			}
+			$geom_str .= "geom.get(-1).addGeometry();\n";
+		}
+		else {
+			$geom_str .= "alert('unknown geomtype ".sepNameSpace($element[tag])."');";
+		}
+		// TO DO: the following is added twice! Once suffices.
+		$element_str .= "geom.get(" . $member . ").e.setElement('fid', '".$fid."');\n";
+		$element_str .= "geom.get(" . $member . ").wfs_conf = ".$js_wfs_conf_id.";\n";
+	}
+	else if(mb_strtoupper($element[tag]) == mb_strtoupper("gml:coordinates") && $geom == true){
+		$tmp =  preg_replace("/,,/","",preg_replace("/ /",",",trim($element[value])));
+		$geom_str .= "var tmp1 = '".$tmp."';\n";
+		$geom_str .= "var tmp = tmp1.split(',');\n";
+		$geom_str .= "for (var i = 0 ; i < tmp.length ; i+=2) {\n";
+		$geom_str .= "\tgeom.getGeometry(-1,-1).addPointByCoordinates(parseFloat(tmp[i]), parseFloat(tmp[i+1]));\n";
+		$geom_str .= "}\n";
+		$geom_str .= "geom.close();\n";
+        $cnt_geom++;
+        
+	}
+	else if(in_array(sepNameSpace($element[tag]),$geometries) && $element[type] == "close"){			
+		$geom = false;
+		$memberHasBeenCreated = false;
+	}
+	else if($section == true && $geom == false && $element[value]){
+		$el++;
+		$str = $element[value];
+		$element_str .= "geom.get(" . $member . ").e.setElement('".sepNameSpace($element[tag])."', '".addslashes($str)."');\n";
+	}
+	else if(mb_strtoupper($element[tag]) == mb_strtoupper("gml:featureMember") && $element[type] == "close"){
+		$section = false;	
+		$el = -1;			
+	}
+}
+if ($geom_str != "") {
+	$geom_str = "var geom = new GeometryArray();\n" . $geom_str;
+}
+header('Content-type: text/html');
+echo $geom_str;
+echo $element_str;
 ?> 
\ No newline at end of file

Modified: branches/mapbender_sld/http/php/mod_wfsrequest.php
===================================================================
--- branches/mapbender_sld/http/php/mod_wfsrequest.php	2007-11-23 13:47:33 UTC (rev 1839)
+++ branches/mapbender_sld/http/php/mod_wfsrequest.php	2007-11-23 13:50:25 UTC (rev 1840)
@@ -1,7 +1,7 @@
 <?php
 # $Id$
-# http://www.mapbender.org/index.php/Administration
-# Copyright (C) 2002 CCGIS 
+# $Header: /cvsroot/mapbender/mapbender/http/php/mod_wfsrequest.php,v 1.3 2005/11/04 11:08:57 uli_rothstein Exp $
+# Copyright (C) 2002 CCGIS
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -17,7 +17,17 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-require_once(dirname(__FILE__)."/../../conf/mapbender.conf");
+# ur # echo urldecode(stripslashes(utf8_decode($_REQUEST["filter"])));
+# ur # die;
+function checkInput($s){
+	if(!preg_match('/[^\s\d\w\-\.öüäßÄÖÜ]|--/',$s)){
+		return addslashes($s);
+	}
+	else{
+		die('Unzulässige Eingabe');
+	}
+}
+require_once("../../conf/mapbender.conf");
 $con = db_connect($DBSERVER,$OWNER,$PW);
 db_select_db($DB,$con);
 if(isset($_REQUEST["backlink"]) && $_REQUEST["backlink"] == 'parent'){
@@ -29,24 +39,21 @@
 /* wfs_conf */
 $sql = "SELECT * FROM wfs_conf ";
 $sql .= "JOIN wfs ON wfs_conf.fkey_wfs_id = wfs.wfs_id ";
-$sql .= "WHERE wfs_conf.wfs_conf_id = $1";
+$sql .= "WHERE wfs_conf.wfs_conf_id = ".$_REQUEST['wfs_conf_id'];
 
-$v = array($_REQUEST['wfs_conf_id']);
-$t = array('i');
-$res = db_prep_query($sql,$v,$t);
+$res = db_query($sql);
 if($row = db_fetch_array($res)){
         $g_res_style  = $row["g_res_style"];
-        
+
 }else{die("wfs_conf data not available");}
 
 /* wfs_conf_element */
 $sql = "SELECT * FROM wfs_conf_element ";
 $sql .= "JOIN wfs_element ON wfs_conf_element.f_id = wfs_element.element_id ";
-$sql .= "WHERE wfs_conf_element.fkey_wfs_conf_id = $1 ";
+$sql .= "WHERE wfs_conf_element.fkey_wfs_conf_id = ".$_REQUEST['wfs_conf_id']." ";
 $sql .= "AND wfs_conf_element.f_show = 1 ORDER BY wfs_conf_element.f_respos;";
-$v = array($_REQUEST['wfs_conf_id']);
-$t = array('i');
-$res = db_prep_query($sql,$v,$t);
+
+$res = db_query($sql);
 $col = array();
 $cnt = 0;
 while($row = db_fetch_array($res)){
@@ -55,19 +62,45 @@
 }
 if($cnt == 0){die("wfs_conf_element data not available");}
 
-$req = urldecode($_REQUEST["url"]).urlencode(stripslashes($_REQUEST["filter"]));
-#echo $req; die;
 
+$f = '<ogc:Filter xmlns:ogc="http://ogc.org" xmlns:gml="http://www.opengis.net/gml">';
+if($_REQUEST["objekttyp_id"] != '0'){
+	$f .= "<And>";	
+}
+$f .= "<ogc:PropertyIsLike wildCard='*' singleChar='.' escape='!'>";
+$f .= '<ogc:PropertyName>ud_id</ogc:PropertyName>';
+$f .= '<ogc:Literal>*'.$_REQUEST['AstUdNr'].'</ogc:Literal>';
+$f .= "</ogc:PropertyIsLike>";
+if($_REQUEST["objekttyp_id"] != '0'){	
+	$f .= "<ogc:PropertyIsEqualTo>";
+	$f .= '<ogc:PropertyName>objekttyp_id</ogc:PropertyName>';
+	$f .= '<ogc:Literal>'.checkInput($_REQUEST["objekttyp_id"]).'</ogc:Literal>';
+	$f .= "</ogc:PropertyIsEqualTo>";
+	$f .= "</And>";
+}	
+
+$f .= '</ogc:Filter>';
+
+$req = urldecode($_REQUEST["url"]).urlencode($f);
 $gml = 'off';
 if(isset($_REQUEST['gml'])){
 	$gml = $_REQUEST['gml'];
 }
 if($gml == 'on'){
-	header("Location: ".$req);
+//	header("Location: ".$req);
+readfile($req);
 }
+
+else if($_REQUEST["export"] == 'shape'){
+	include(dirname(__FILE__)."/../classes/class_gml2.php");
+	include(dirname(__FILE__)."/../classes/class_gml2shape.php");
+	$my = new gml2();
+	$mygml = $my->getGml($req);
+	$s = new gml2shape($mygml);
+}
 else{
 	echo "<html><head><style type='text/css'>".$g_res_style."</style></head><body>";
-	include(dirname(__FILE__)."/../classes/class_gml2.php");
+	include("../classes/class_gml2.php");
         $mygml = new gml2();
         $mygml->parsegml($req);
         $c = $mygml->getMemberCount();
@@ -84,15 +117,16 @@
                 echo " onmouseover='".$p.".setResult(\"".$geomtype."\",\"over\",\"".$mygeom."\")' ";
                 echo " onmouseout='".$p.".setResult(\"".$geomtype."\",\"out\",\"false\")' ";
                 echo " onclick='".$p.".setResult(\"".$geomtype."\",\"click\",\"".$mygeom."\")'>";
-                for($j=0; $j<count($col); $j++){
-                        echo $mygml->getValueBySeparatedKey($i,$col[$j]) . " ";
-                }
+//                for($j=0; $j<count($col); $j++){
+                        echo $mygml->getValueBySeparatedKey($i,$col[0]);
+                        if($_REQUEST["objekttyp_id"] == '0'){
+                        	echo " (".$mygml->getValueBySeparatedKey($i,"objekttyp_name").")";
+                        }
+//                }
                 echo "</div>";
 
         }
 if($i == 0){ echo "Kein Ergebnis...";}
         echo "</body></html>";
 }
-
-
 ?>
\ No newline at end of file



More information about the Mapbender_commits mailing list