/*GLOBALS*/
var ie = document.all?1:0;
var n6 = document.getElementById&&!document.all?1:0;
var n4 = document.layers?1:0;

var mb_feature_count = 100;

var mb_resolution = 28.35;
var mb_mapObj = new Array();
var mb_fiWin = null;
var mb_panActive = false;
var clickX;
var clickY;
var mb_start_x = 0;
var mb_start_y = 0;
var mb_end_x = 0;
var mb_end_y = 0;
var mb_offset_top = 0;
var mb_offset_right = 0;
var mb_offset_bottom = 0;
var mb_offset_left = 0;
var mb_log = null;

var mb_MapRequestSubFunctions = new Array();
var mb_MapRequestPreFunctions = new Array();
var mb_FeatureInfoPreFunctions = new Array();
var mb_PanSubElements = new Array();
var mb_InitFunctions = new Array();
var mb_MapObjectSubFunctions = new Array();
var mb_GetScalePreFunctions = new Array();
var mb_vendorSpecific = new Array();
var mb_security_proxy = "http://wms1.ccgis.de/mapbender/tools/security_proxy.php?mb_ows_security_proxy=";

var mb_nr = 'PHPSESSID=7a03e5f462e2e4deccebc9ff6b59e904';var mb_myLogin = '';var mb_styleID = 'd41d8cd98f00b204e9800998ecf8427e';var mb_myBBOX = '';
var mb_trans = new Image; 
mb_trans.src = "../img/transparent.gif";
/*END OF GLOBALS*/
	

function init(){
   for(var i=0; i<mb_InitFunctions.length; i++){
      eval(mb_InitFunctions[i]);
   }
   for(var i=0; i<mb_mapObj.length; i++){
      setMapRequest(mb_mapObj[i].frameName);
   }      	
}
/*registerFunctions*/
function mb_registerInitFunctions(stringFunction){
	mb_InitFunctions[mb_InitFunctions.length] = stringFunction;
}
function mb_registerPanSubElement(elName){
	var ind = mb_PanSubElements.length;
	mb_PanSubElements[ind] = elName;
}
function mb_registerPreFunctions(stringFunction){
	mb_MapRequestPreFunctions[mb_MapRequestPreFunctions.length] = stringFunction;
}
function mb_registerFeatureInfoPreFunctions(stringFunction){
	mb_FeatureInfoPreFunctions[mb_FeatureInfoPreFunctions.length] = stringFunction;
}
function mb_registerSubFunctions(stringFunction){
	mb_MapRequestSubFunctions[mb_MapRequestSubFunctions.length] = stringFunction;
}
function mb_registerMapObj(frameName, elementName,wms_index,width, height){
	mb_mapObj[mb_mapObj.length] = new mb_mapObj_const(frameName, elementName, width, height, wms_index);    
}
function  mb_registerMapObjectSubFunctions(stringFunction){
	mb_MapObjectSubFunctions[mb_MapObjectSubFunctions.length] = stringFunction;
}
function  mb_registerGetScalePreFunctions(stringFunction){
   mb_GetScalePreFunctions[mb_GetScalePreFunctions.length] = stringFunction;
}
function mb_registerVendorSpecific(stringFunction){
   mb_vendorSpecific[mb_vendorSpecific.length] = stringFunction;
}
function mb_mapObj_const(frameName, elementName, width, height, wms_index){
   this.width = width;
   this.height = height;
   this.frameName = frameName;
   this.elementName = elementName;
   this.layers = new Array();
   this.styles = new Array();
   this.querylayers = new Array();
   this.geom = "";
   this.gml = ""; 
   if(wms_index != null){
      this.wms = new Array();
      this.wms[0] = wms[wms_index];
      this.wms[0].mapURL = false;
      var cnt_layers = 0;
      var cnt_querylayers = 0;
      var styles = "";
      var layers = "";
      var querylayers = "";
      for(var ii=0; ii<this.wms[0].objLayer.length; ii++){
         if(this.wms[0].objLayer[ii].gui_layer_visible == 1 && ii>0){
            if(cnt_layers > 0){layers += ","; styles += ","; }
            layers += this.wms[0].objLayer[ii].layer_name; 
            styles += ""; 
            cnt_layers++;
         }   
         if(this.wms[0].objLayer[ii].gui_layer_querylayer == 1 && ii>0){
            if(cnt_querylayers > 0){querylayers += ",";}
            querylayers += this.wms[0].objLayer[ii].layer_name; 
            cnt_querylayers++;
         }                      
      }
      this.layers[0] = layers;
      this.styles[0] = styles;
      this.querylayers[0] = querylayers;   
   }
   else{
	this.wms = new Array();
	for(i=0; i<wms.length; i++){
		this.wms[i] = wms[i];
		this.wms[i].mapURL = false;
	}
      for(var i=0; i< this.wms.length; i++){
         var cnt_layers = 0;
         var cnt_querylayers = 0;
         var styles = "";
         var layers = "";
         var querylayers = "";
         for(var ii=0; ii<this.wms[i].objLayer.length; ii++){
            if(this.wms[i].objLayer[ii].gui_layer_visible == 1 && ii>0){
               if(cnt_layers > 0){layers += ","; styles += ","; }
               layers += wms[i].objLayer[ii].layer_name; 
               styles += ""; 
               cnt_layers++;
            }            
            if(this.wms[i].objLayer[ii].gui_layer_querylayer == 1 && ii>0){
               if(cnt_querylayers > 0){querylayers += ",";}
               querylayers += wms[i].objLayer[ii].layer_name; 
               cnt_querylayers++;
            }                          
         }
         this.layers[i] = layers;
         this.styles[i] = styles;
         this.querylayers[i] = querylayers;
      }
   }
   this.epsg = wms[0].gui_wms_epsg;
   this.extent = setExtent(this.width,this.height,this.epsg);
   this.mapURL = new Array();
   for(var i=0; i<mb_MapObjectSubFunctions.length; i++){
      eval(mb_MapObjectSubFunctions[i]);
   }   
}
function mb_mapObjaddWMS(obj){
	var cnt_layers = 0;
	var cnt_querylayers = 0;
	var styles = "";
	var layers = "";
	var querylayers = "";
	var ind = getMapObjIndexByName(obj);
	//is the id valid?
	for( var i=0; i<(wms.length-1); i++){
		if(parseInt(wms[i].wms_id) >= parseInt(wms[wms.length-1].wms_id)){
			wms[wms.length-1].wms_id = parseInt(mb_mapObj[ind].wms[i].wms_id) + 1;
		}
	} 
	mb_mapObj[ind].wms[mb_mapObj[ind].wms.length] = wms[wms.length-1];
	mb_mapObj[ind].layers[mb_mapObj[ind].layers.length] = layers;
	mb_mapObj[ind].styles[mb_mapObj[ind].styles.length] = styles;
	mb_mapObj[ind].querylayers[mb_mapObj[ind].querylayers.length] = querylayers;   
}
//CB
function mb_mapObjaddWMSwithLayers(obj,layers,querylayers){
	var cnt_layers = 0;
	var cnt_querylayers = 0;
	var styles = "";
	var ind = getMapObjIndexByName(obj);
	//is the id valid?
	//for( var i=0; i<(wms.length-1); i++){
	//	if(parseInt(wms[i].wms_id) >= parseInt(wms[wms.length-1].wms_id)){
	//		wms[wms.length-1].wms_id = parseInt(mb_mapObj[ind].wms[i].wms_id) + 1;
	//	}
	//} 
	mb_mapObj[ind].wms[mb_mapObj[ind].wms.length] = wms[wms.length-1];
	mb_mapObj[ind].layers[mb_mapObj[ind].layers.length] = layers;
	mb_mapObj[ind].styles[mb_mapObj[ind].styles.length] = styles;
	mb_mapObj[ind].querylayers[mb_mapObj[ind].querylayers.length] = querylayers;   
}
function mb_mapObjremoveWMS(objind,wmsind){
	var wms_ID = null;
	
	var new_wmsarray = new Array();
	var new_mapURLarray = new Array();
	for	(var i=0;i<mb_mapObj[objind].wms.length; i++){
		if(i != wmsind){
			new_wmsarray[new_wmsarray.length] = mb_mapObj[objind].wms[i];
			new_mapURLarray[new_mapURLarray.length] = mb_mapObj[objind].mapURL[i] 
		}
		else {
			wms_ID = mb_mapObj[objind].wms[i].wms_id;
		}
	}
	mb_mapObj[objind].wms = new_wmsarray; 
	mb_mapObj[objind].mapURL = new_mapURLarray;

	var another_new_wmsarray = new Array();
	for	(var i=0;i<wms.length; i++){
		if(wms[i].wms_id != wms_ID){
			another_new_wmsarray[another_new_wmsarray.length] = wms[i]; 
		}
	}
	wms = another_new_wmsarray; 
}
function setExtent(width,height,epsg){
   for(var i=0; i < wms[0].gui_epsg.length; i++){
      if(wms[0].gui_epsg[i] == epsg){      
         var bbox_minx = parseFloat(wms[0].gui_minx[i]);
         var bbox_miny = parseFloat(wms[0].gui_miny[i]);
         var bbox_maxx = parseFloat(wms[0].gui_maxx[i]);
         var bbox_maxy = parseFloat(wms[0].gui_maxy[i]);     
   
         var extenty = bbox_maxy - bbox_miny;
         var extentx = bbox_maxx - bbox_minx;

         var relation_px_x = width / height;
         var relation_px_y = height / width;
         var relation_bbox_x = extentx / extenty;         
         var centerx = bbox_minx + (extentx/2);
         var centery = bbox_miny + (extenty/2);
         if(relation_bbox_x <= relation_px_x){                
                bbox_minx = centerx - relation_px_x * extenty / 2;
                bbox_maxx = centerx + relation_px_x * extenty / 2;
         }
        
         if(relation_bbox_x > relation_px_x){                
                bbox_miny = centery - relation_px_y * extentx / 2;
                bbox_maxy = centery + relation_px_y * extentx / 2;
         }
        return bbox_minx  +","+ bbox_miny +","+ bbox_maxx  +","+ bbox_maxy;
     }
   }
}

function getExtent (frameName) {
	for(var i=0; i<mb_mapObj.length; i++){
		if(mb_mapObj[i].frameName == frameName){
			for(var ii=0; ii<mb_mapObj[i].wms.length; ii++){
				if(mb_mapObj[i].wms[ii].gui_wms_visible > 0){
					var str_LayerStyles = mb_checkScale(frameName,i,ii);
					if(mb_mapObj[i].layers[ii] != "" && str_LayerStyles[0] != '')
						return mb_mapObj[i].extent;
				}
			}
		}
	}
}


function setMapRequest(frameName){

	var ts = mb_timestamp();

	for(var i=0; i<mb_MapRequestPreFunctions.length; i++){
		var ret = eval(mb_MapRequestPreFunctions[i]);
		if(ret == false){
			return true;
		}
	}
	for(var i=0; i<mb_mapObj.length; i++){
		var newMapRequest = "";
		if(mb_mapObj[i].frameName == frameName){
			for(var ii=0; ii<mb_mapObj[i].wms.length; ii++){
				var proxy = false; //proxy
				if(mb_mapObj[i].wms[ii].gui_wms_visible > 0){
					var myDivId = "div_" + ii;          
					var myMapId = "map_" + ii;
					//disable Layer which are out of scale
					var str_LayerStyles = mb_checkScale(frameName,i,ii);
					if(mb_mapObj[i].layers[ii] != "" && str_LayerStyles[0] != ''){
						var newMapURL = "";
						newMapRequest += "<div id='"+myDivId+"' style='position:absolute; top:0px; left:0px; z-index:'"+ii+"'>";
						newMapRequest += "<img id='"+myMapId+"' name='mapimage' src='";
						newMapURL += mb_mapObj[i].wms[ii].wms_getmap;   
						
						/* ows proxy */
						if(newMapURL.indexOf(mb_security_proxy)>-1){
							var a = newMapURL.indexOf(mb_security_proxy) + mb_security_proxy.length;
							proxy = newMapURL.substr(0,a);
							newMapURL = newMapURL.substr(a,newMapURL.length);								
						}						
						/* end ows proxy */      
						
						if(mb_mapObj[i].wms[ii].wms_getmap.indexOf("?") > -1){newMapURL += "&";}
						if(mb_mapObj[i].wms[ii].wms_getmap.indexOf("?") == -1){newMapURL += "?";}
						if(mb_mapObj[i].wms[ii].wms_version == "1.0.0"){newMapURL += "WMTVER="+mb_mapObj[i].wms[ii].wms_version+"&REQUEST=map&";}
						if(mb_mapObj[i].wms[ii].wms_version != "1.0.0"){newMapURL += "VERSION="+mb_mapObj[i].wms[ii].wms_version+"&REQUEST=GetMap&SERVICE=WMS&";} 
						
						newMapURL += "LAYERS="+str_LayerStyles[0]+"&";
						newMapURL += "STYLES="+str_LayerStyles[1]+"&";
		
						newMapURL += "SRS="+mb_mapObj[i].epsg+"&";
						newMapURL += "BBOX="+mb_mapObj[i].extent+"&";
						newMapURL += "WIDTH="+mb_mapObj[i].width+"&";
						newMapURL += "HEIGHT="+mb_mapObj[i].height+"&";
						newMapURL += "FORMAT="+mb_mapObj[i].wms[ii].gui_wms_mapformat+"&";
						newMapURL += "BGCOLOR=0xffffff&";
						if(mb_mapObj[i].wms[ii].gui_wms_mapformat.search(/gif/i)>-1 || mb_mapObj[i].wms[ii].gui_wms_mapformat.search(/png/i)>-1){
							newMapURL += "TRANSPARENT=TRUE&";
						}
						newMapURL += "EXCEPTIONS="+mb_mapObj[i].wms[ii].gui_wms_exceptionformat;
						// add vendor-specifics
						for(var v=0; v<mb_vendorSpecific.length; v++){
							newMapURL += "&" + eval(mb_vendorSpecific[v]);
						}           
						// add Filter
						if(mb_mapObj[i].wms[ii].wms_filter != ""){
							var tmp = mb_mapObj[i].wms[ii].wms_filter +"?id="+ mb_styleID;

							var temp = "&SLD=" + tmp+ "&";
							newMapURL += temp;
						}
						if(mb_log){
							var tmp = eval(mb_log + "('" + newMapURL + "','" + ts + "')");
						}
						if(proxy){
							newMapURL = proxy + escape(newMapURL) + "&" + 'PHPSESSID=7a03e5f462e2e4deccebc9ff6b59e904';
						}
						newMapRequest += newMapURL;
						mb_mapObj[i].mapURL[ii] = newMapURL;	
						mb_mapObj[i].wms[ii].mapURL = newMapURL;
						newMapRequest += "' width='"+mb_mapObj[i].width+"' height='"+mb_mapObj[i].height+"' border='0'></div>";   
					}
					else{
						mb_mapObj[i].mapURL[ii] = false;
						mb_mapObj[i].wms[ii].mapURL = false;
						newMapRequest += "<div id='"+myDivId+"' style='position:absolute; top:0px; left:0px; z-index:'"+ii+"'>";
						newMapRequest += "<img id='"+myMapId+"' name='mapimage' src='" + mb_trans.src;
						newMapRequest += "' width='"+mb_mapObj[i].width+"' height='"+mb_mapObj[i].height+"' border='0'>";
						newMapRequest +="</div>";
					}
				}
			}
			
			//prompt("Prompt aus javascript/map.php - Zeile 355",newMapRequest);
			writeTag(mb_mapObj[i].frameName,mb_mapObj[i].elementName,newMapRequest);
		}
	}
	for(var i=0; i<mb_MapRequestSubFunctions.length; i++){
		eval(mb_MapRequestSubFunctions[i]);
	}
}
function setSingleMapRequest(frameName,wms_id){
	
	var ts = mb_timestamp();	
	
	for(var i=0; i<mb_MapRequestPreFunctions.length; i++){
		eval(mb_MapRequestPreFunctions[i]);
	}
	for(var i=0; i<mb_mapObj.length; i++){
		var newMapRequest = "";
		if(mb_mapObj[i].frameName == frameName){
			for(var ii=0; ii<mb_mapObj[i].wms.length; ii++){ 
				var proxy = false; //proxy
				var myDivId = "div_" + ii;
				var myMapId = "map_" + ii;
				if(mb_mapObj[i].wms[ii].wms_id == wms_id){  
					var newMapURL = "";
					newMapRequest += "<img id='"+myMapId+"' name='mapimage' src='";
					newMapURL += mb_mapObj[i].wms[ii].wms_getmap; 
					/* ows proxy */
					if(newMapURL.indexOf(mb_security_proxy)>-1){
						var a = newMapURL.indexOf(mb_security_proxy) + mb_security_proxy.length;
						proxy = newMapURL.substr(0,a);
						newMapURL = newMapURL.substr(a,newMapURL.length);								
					}						
					/* end ows proxy */           
					if(mb_mapObj[i].wms[ii].wms_getmap.indexOf("?") > -1){newMapURL += "&";}
					if(mb_mapObj[i].wms[ii].wms_getmap.indexOf("?") == -1){newMapURL += "?";}
					if(mb_mapObj[i].wms[ii].wms_version == "1.0.0"){newMapURL += "WMTVER="+mb_mapObj[i].wms[ii].wms_version+"&REQUEST=map&";}
					if(mb_mapObj[i].wms[ii].wms_version != "1.0.0"){newMapURL += "VERSION="+mb_mapObj[i].wms[ii].wms_version+"&REQUEST=GetMap&SERVICE=WMS&";}             
					
					//disable Layer which are out of scale
					var str_LayerStyles = mb_checkScale(frameName,i,ii); 

					newMapURL += "LAYERS="+str_LayerStyles[0]+"&";
					newMapURL += "STYLES="+str_LayerStyles[1]+"&";
         
					newMapURL += "SRS="+mb_mapObj[i].epsg+"&";
					newMapURL += "BBOX="+mb_mapObj[i].extent+"&";
					newMapURL += "WIDTH="+mb_mapObj[i].width+"&";
					newMapURL += "HEIGHT="+mb_mapObj[i].height+"&";
					newMapURL += "FORMAT="+mb_mapObj[i].wms[ii].gui_wms_mapformat+"&";
					newMapURL += "BGCOLOR=0xffffff&";
					if(mb_mapObj[i].wms[ii].gui_wms_mapformat.search(/gif/i)>-1 || mb_mapObj[i].wms[ii].gui_wms_mapformat.search(/png/i)>-1){
						newMapURL += "TRANSPARENT=TRUE&";
					}
					newMapURL += "EXCEPTIONS="+mb_mapObj[i].wms[ii].gui_wms_exceptionformat;
					// add vendor-specific
					for(var v=0; v<mb_vendorSpecific.length; v++){
						newMapURL += "&" + eval(mb_vendorSpecific[v]);
					}
					// add Filter
					if(mb_mapObj[i].wms[ii].wms_filter != ""){
						var tmp = mb_mapObj[i].wms[ii].wms_filter +"?id="+ mb_styleID;
						//prompt("",tmp);;
						var temp = "&SLD=" + tmp+ "&";
						newMapURL += temp;
					}
					//prompt("",newMapURL);
					if(mb_mapObj[i].layers[ii] != "" && str_LayerStyles[0] != ""){
						if(proxy){
							newMapURL = proxy + escape(newMapURL) + "&" + 'PHPSESSID=7a03e5f462e2e4deccebc9ff6b59e904';
						}
						newMapRequest += newMapURL;
						mb_mapObj[i].mapURL[ii] = newMapURL;
						mb_mapObj[i].wms[ii].mapURL = newMapURL;
						newMapRequest += "' width='"+mb_mapObj[i].width+"' height='"+mb_mapObj[i].height+"' border='0'>";
					}
					else{
						mb_mapObj[i].mapURL[ii] = false;
						mb_mapObj[i].wms[ii].mapURL = false;
						newMapRequest = "<img id='"+myMapId+"' name='mapimage' src='" + mb_trans.src;
						newMapRequest += "' width='"+mb_mapObj[i].width+"' height='"+mb_mapObj[i].height+"' border='0'>";
					}        
					//prompt("",newMapRequest);
					if(mb_log){
						var tmp = eval(mb_log + "('" + newMapURL + "','" + ts + "')");
					}
					writeTag(mb_mapObj[i].frameName,myDivId,newMapRequest);
				}                            
			}           
		}      
	}   
	for(var i=0; i<mb_MapRequestSubFunctions.length; i++){
		eval(mb_MapRequestSubFunctions[i]);
	}   
}
function mb_restateLayers(frameName,wms_id){
	//alert(frameName + " / " + wms_id);
	var ind = getMapObjIndexByName(frameName);	
	for(var i=0; i<mb_mapObj[ind].wms.length; i++){
		if(mb_mapObj[ind].wms[i].wms_id == wms_id){
			var cnt_layers = 0;
			var cnt_querylayers = 0;
			var layers = "";
			var styles = "";
			var querylayers = "";
			for(var ii=0; ii<mb_mapObj[ind].wms[i].objLayer.length; ii++){
				if(this.wms[i].objLayer[ii].gui_layer_visible == 1 && ii>0){
					if(cnt_layers > 0){layers += ","; styles += ","; }
					layers += wms[i].objLayer[ii].layer_name;
					//alert(wms[i].objLayer[ii].layer_name); 
					styles += ""; 
					cnt_layers++;
				}            
				if(this.wms[i].objLayer[ii].gui_layer_querylayer == 1 && ii>0){
					if(cnt_querylayers > 0){querylayers += ",";}
					querylayers += wms[i].objLayer[ii].layer_name; 
					cnt_querylayers++;
				}
				mb_mapObj[ind].layers[i] = layers;
				mb_mapObj[ind].querylayers[i] = querylayers;
				mb_mapObj[ind].styles[i] = styles;
			}
		}
	}
}

function mb_checkScale(frameName,mObj,wmsObj){
	var thisLayer = mb_mapObj[mObj].layers[wmsObj].split(",");
	var thisScale = mb_getScale(frameName);  
	var str_layer = "";
	var str_styles = "";
	var str_titles = "";
	var str_legendurls = "";
	var cnt_layer = 0;   
	for(var i=0; i<mb_mapObj[mObj].wms[wmsObj].objLayer.length; i++){  
		var myLayername = mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_name;
		var myMinscale = mb_mapObj[mObj].wms[wmsObj].objLayer[i].gui_layer_minscale;
		var myMaxscale = mb_mapObj[mObj].wms[wmsObj].objLayer[i].gui_layer_maxscale;
		for(var ii=0; ii<thisLayer.length; ii++){
			var minscaleOK = false;
			var maxscaleOK = false;   
			if(thisLayer[ii] == myLayername){
				if(myMinscale == 0 || thisScale >= myMinscale){minscaleOK = true;}
				if(myMaxscale == 0 || thisScale <= myMaxscale){maxscaleOK = true;}
				if(maxscaleOK == true && minscaleOK == true ){
					if(cnt_layer > 0){str_layer += ","; str_styles += ","; str_titles += ","; str_legendurls += ",";}
					str_layer += thisLayer[ii];
					str_styles += "";
					str_titles += mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_title;
					if(mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_style.length>0){
					 str_legendurls += mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_style[0]["legendurl"] ;
					}
					cnt_layer++;
				}
			}
		}
	}
	var str_layerstyles = new Array();
	str_layerstyles[0] = str_layer;
	str_layerstyles[1] = str_styles;
	str_layerstyles[2] = str_titles;
	str_layerstyles[3] = str_legendurls;
	return str_layerstyles;
}
function setFeatureInfoRequest(fName,x,y, path) {
	var ts = mb_timestamp();
	for(var i=0; i<mb_FeatureInfoPreFunctions.length; i++){
		eval(mb_FeatureInfoPreFunctions[i]);
	}   
	var cnt_fi = 0;
	for(var i=0; i<mb_mapObj.length; i++){
		if(mb_mapObj[i].frameName == fName){
			for(var ii=0; ii<mb_mapObj[i].wms.length; ii++){
				var newfeatureInfoRequest = "";
				var requestParams = "";
				var validation = false;
				newfeatureInfoRequest += mb_mapObj[i].wms[ii].wms_getfeatureinfo;
				if(mb_mapObj[i].wms[ii].wms_getfeatureinfo.indexOf("?") > -1){newfeatureInfoRequest += "&";}
				if(mb_mapObj[i].wms[ii].wms_getfeatureinfo.indexOf("?") == -1){newfeatureInfoRequest += "?";}            
            
				if(mb_mapObj[i].wms[ii].wms_version == "1.0.0"){requestParams += "WMTVER="+mb_mapObj[i].wms[ii].wms_version+"&REQUEST=feature_info&";}
				if(mb_mapObj[i].wms[ii].wms_version != "1.0.0"){requestParams += "VERSION="+mb_mapObj[i].wms[ii].wms_version+"&REQUEST=GetFeatureInfo&SERVICE=WMS&";}
				requestParams += "SRS="+mb_mapObj[i].epsg+"&";
				requestParams += "BBOX="+mb_mapObj[i].extent+"&";
				requestParams += "WIDTH="+mb_mapObj[i].width+"&";
				requestParams += "HEIGHT="+mb_mapObj[i].height+"&";
				requestParams += "LAYERS="+mb_mapObj[i].layers[ii]+"&";
				requestParams += "STYLES="+mb_mapObj[i].styles[ii]+"&";
				requestParams += "FORMAT="+mb_mapObj[i].wms[ii].gui_wms_mapformat+"&";
				requestParams += "INFO_FORMAT="+mb_mapObj[i].wms[ii].gui_wms_featureinfoformat+"&";
				requestParams += "EXCEPTIONS=application/vnd.ogc.se_xml&";
				if(mb_feature_count > 0){             
					requestParams += "FEATURE_COUNT="+mb_feature_count+"&";
				}
				requestParams += "QUERY_LAYERS="+mb_mapObj[i].querylayers[ii]+"&";
				requestParams += "X=" + x  + "&";
				requestParams += "Y=" + y;
				
				if(mb_mapObj[i].querylayers[ii] != "" && mb_mapObj[i].layers[ii] != ""){
					validation = true;
				}
				//add vendor-specific
				for(var v=0; v<mb_vendorSpecific.length; v++){
		            requestParams += "&" + eval(mb_vendorSpecific[v]);
				}
				if(mb_log && validation){
					var tmp = eval(mb_log + "('" + newfeatureInfoRequest + requestParams + "','" + ts + "')");
				}
				if(document.getElementById("FeatureInfoRedirect") && validation){
					newfeatureInfoRequest += requestParams;
					if(path){
						window.frames["FeatureInfoRedirect"].document.getElementById(mb_mapObj[i].wms[ii].wms_id).src = path + "?url=" + escape(newfeatureInfoRequest)+"&"+mb_nr;
					}
					else{
						window.frames["FeatureInfoRedirect"].document.getElementById(mb_mapObj[i].wms[ii].wms_id).src = newfeatureInfoRequest;
					}
					cnt_fi++;
            	}
				else if(path && validation){
					newfeatureInfoRequest += requestParams
					window.open(path + "?url=" + escape(newfeatureInfoRequest)+"&"+mb_nr, "" , "width=300,height=400,scrollbars=yes,resizable=yes");
					cnt_fi++;
					// prompt ("newfeatureInfoRequest - path && validation",newfeatureInfoRequest);
				}
				else if(validation){
					newfeatureInfoRequest += requestParams;
					window.open(newfeatureInfoRequest, "" , "width=300,height=400,screenX=100,screenY=100,scrollbars=yes,resizable=yes");
					cnt_fi++;
					 //prompt ("newfeatureInfoRequest - validation only",newfeatureInfoRequest);         
				}      
			}
		}
	}
   	if(cnt_fi == 0){alert("Bitte wählen Sie eine Ebene aus der Karte zur Abfrage aus!\n"
			+ "Dazu müssen Sie links unter 'Kartenebenen' das zweite Häkchen \n"
			+ "vor der entsprechende Kartenebene (z.B. CC-Erosion) setzen."   	
   	);} 
}
function writeTag(frameName, elName, tagSource) {
  if(frameName && frameName != ""){
     window.frames[frameName].document.getElementById(elName).innerHTML = tagSource;
  }
  else if(!frameName || frameName == ""){
       document.getElementById(elName).innerHTML = tagSource;
  }
}
function zoom(frameName,in_, factor,x,y) {
  var x = parseFloat(x);
  var y = parseFloat(y);
  var ind = getMapObjIndexByName(frameName);
  var arrayBBox = mb_mapObj[ind].extent.split(",");
  var xtentx = parseFloat(arrayBBox[2]) - parseFloat(arrayBBox[0]);
  var xtenty =  parseFloat(arrayBBox[3]) - parseFloat(arrayBBox[1]);
  var centerx = parseFloat(arrayBBox[0]) + xtentx/2;
  var centery = parseFloat(arrayBBox[1]) + xtenty/2;
  var factor = parseFloat(factor);
  if(x){
   centerx = x;
   centery = y;
  }
  if (!in_) {factor = 1 / factor;}
  var new_xtentx = xtentx / factor;
  var new_xtenty = xtenty / factor;
  var minx = centerx - new_xtentx / 2;
  var miny = centery - new_xtenty / 2;
  var maxx = centerx + new_xtentx / 2;
  var maxy = centery + new_xtenty / 2;
  mb_mapObj[ind].extent = minx + "," + miny + "," + maxx + "," + maxy;
  setMapRequest(frameName);
}
function mb_panMap(frameName,dir){
   var ind = getMapObjIndexByName(frameName);
   var arrayBBox = mb_mapObj[ind].extent.split(",");
   var minx = parseFloat(arrayBBox[0]);
   var miny = parseFloat(arrayBBox[1]);
   var maxx = parseFloat(arrayBBox[2]);
   var maxy = parseFloat(arrayBBox[3]);
   var xtentx = parseFloat(arrayBBox[2]) - parseFloat(arrayBBox[0]);
   var xtenty =  parseFloat(arrayBBox[3]) - parseFloat(arrayBBox[1]);

   if(dir == "NW"){minx = minx - (xtentx/2); maxx = maxx - (xtentx/2); miny = miny + (xtenty/2); maxy = maxy + (xtenty/2);}
   if(dir == "N"){miny = miny + (xtenty/2); maxy = maxy + (xtenty/2);}
   if(dir == "NE"){minx = minx + (xtentx/2); maxx = maxx + (xtentx/2); miny = miny + (xtenty/2); maxy = maxy + (xtenty/2);}
   if(dir == "W"){minx = minx - (xtentx/2); maxx = maxx - (xtentx/2);}
   if(dir == "E"){minx = minx + (xtentx/2); maxx = maxx + (xtentx/2);}
   if(dir == "SW"){minx = minx - (xtentx/2); maxx = maxx - (xtentx/2); miny = miny - (xtenty/2); maxy = maxy - (xtenty/2);}
   if(dir == "S"){miny = miny - (xtenty/2); maxy = maxy - (xtenty/2);}
   if(dir == "SE"){minx = minx + (xtentx/2); maxx = maxx + (xtentx/2); miny = miny - (xtenty/2); maxy = maxy - (xtenty/2);}
  mb_mapObj[ind].extent = minx + "," + miny + "," + maxx + "," + maxy;
  setMapRequest(frameName);
}

function handleSelectedLayer(frameName,wms_title,layerName,type,status){
	//alert(frameName + " , " +wms_title + " , " +layerName + " , " +type + " , " +status);
   //type = {visible || querylayer] status = {0 || 1}
   for(var i=0; i<mb_mapObj.length; i++){
      if(mb_mapObj[i].frameName == frameName){
         var cnt_layer = 0;
         var str_layer = "";
         var myMapObj = i;
         for(var ii=0; ii<mb_mapObj[i].wms.length; ii++){
             if(mb_mapObj[i].wms[ii].wms_title == wms_title){ //ii is true
                var myWMS = ii; 
                if(type == "visible"){var arrayLayer = mb_mapObj[i].layers[ii].split(",");}
                if(type == "querylayer"){var arrayLayer = mb_mapObj[i].querylayers[ii].split(",");}
                for(var iii=1; iii<mb_mapObj[i].wms[ii].objLayer.length; iii++){
                   var layer_name = mb_mapObj[i].wms[ii].objLayer[iii].layer_name;
                   if(type == "querylayer"){
	              	if(layer_name == layerName && status == 1 && mb_mapObj[i].wms[ii].objLayer[iii].layer_queryable == 1){
                         if(cnt_layer > 0){str_layer += ",";}
                         str_layer += layer_name;
                         cnt_layer++;                   
                   	}
                   }
                   else if(type == "visible"){
                   	if(layer_name == layerName && status == 1){
                         if(cnt_layer > 0){str_layer += ",";}
                         str_layer += layer_name;
                         cnt_layer++;                   
                   	}
                   }
                   for(var iiii=0; iiii<arrayLayer.length; iiii++){
                      if(layer_name == arrayLayer[iiii] && layer_name != layerName){
                         if(cnt_layer > 0){str_layer += ",";}
                         str_layer += layer_name;
                         cnt_layer++;             
                      }
                   }
                }
             }   
         }         
      }
   }
   if(type == "visible"){
      mb_mapObj[myMapObj].layers[myWMS] = str_layer;
      var array_str_layer = str_layer.split(",");
      var str_styles = "";
      for(var cnt=0; cnt<array_str_layer.length; cnt++){
         if(cnt > 0){str_styles += ",";}
         str_styles += "";
      }
      mb_mapObj[myMapObj].styles[myWMS] = str_styles;
   }
   if(type == "querylayer"){mb_mapObj[myMapObj].querylayers[myWMS] = str_layer;}
   /*
   if(type == 'visible'){
      setSingleMapRequest(frameName,wms_title);
   }
   */
}
function handleSelectedLayer_array(mapObj, array_wms, array_layer, type, status){
	//alert(mapObj+" / "+array_wms[0]+" / "+ array_layer[0]+" / "+ type+" / "+ status);
	var ind = getMapObjIndexByName(mapObj);
	for(var j=0; j<array_wms.length; j++){
		for(var i=0; i<mb_mapObj[ind].wms.length; i++){
			if(mb_mapObj[ind].wms[i].wms_id == array_wms[j]){
				var check = false;
				for(var ii=0; ii<mb_mapObj[ind].wms[i].objLayer.length; ii++){
					if(wms[i].wms_id == array_wms[j] && wms[i].objLayer[ii].layer_name == array_layer[j]){
						if(type == "visible"){
							wms[i].objLayer[ii].gui_layer_visible = parseInt(status);
							//alert(wms[i].objLayer[ii].layer_name);
							check = true;
						}
                        if(type == "querylayer" && (wms[i].objLayer[ii].gui_layer_queryable == "1" || wms[i].objLayer[ii].gui_layer_queryable == 1)){
							wms[i].objLayer[ii].gui_layer_querylayer = parseInt(status);
						}
					}
				}
                mb_restateLayers(mapObj, array_wms[j]);
                //alert('restate');
                /*
                * hier noch checken, welche wms sich geändert haben und disctinct eine singleRequest aufrufen:
                */ 
                if(check == true){					
                    
                    if(mb_mapObj[ind].wms[i].gui_wms_visible == 1){
						setSingleMapRequest(mapObj,wms[i].wms_id);
                        //if (wms[i].wms_id==977) alert('sSMR (mapObj - wms[i].wms_id): ('+mapObj+' - '+wms[i].wms_id+')');
					}
				}
			}
		}
	}
}
function makeClickPos2RealWorldPos(frameName, myClickX, myClickY) {
	var ind = getMapObjIndexByName(frameName);
	var width = parseInt(mb_mapObj[ind].width);
	var height = parseInt(mb_mapObj[ind].height);
	var arrayBBox = mb_mapObj[ind].extent.split(",");
	var minX = parseFloat(arrayBBox[0]);
	var minY = parseFloat(arrayBBox[1]);
	var maxX = parseFloat(arrayBBox[2]);
	var maxY = parseFloat(arrayBBox[3]);
	var deltaX = (maxX - minX)/width;
	var deltaY = (maxY - minY)/height;
	if(deltaX > 0){
		var roundx = 1/Math.pow(10,(Math.round(Math.log(deltaX)/Math.log(10))));
	}
	else{
		var roundx =  Math.pow(10,(Math.round(Math.log(deltaX)/Math.log(10))));
	}
	if(deltaY > 0){
		var roundy = 1/Math.pow(10,(Math.round(Math.log(deltaY)/Math.log(10))));
	}
	else{
		var roundy =  Math.pow(10,(Math.round(Math.log(deltaY)/Math.log(10))));
	}	
	var xtentx = maxX - minX;
	var xtenty =  maxY - minY;
	var posX = parseFloat(minX + (myClickX / width) * xtentx);
	var posY = parseFloat(maxY - (myClickY / height) * xtenty);
	posX = Math.round(posX * roundx)/roundx;
	posY = Math.round(posY * roundy)/roundy;
	return new Array(posX, posY);
}
function makeRealWorld2mapPos(frameName,rw_posx, rw_posy){
   var ind = getMapObjIndexByName(frameName);
   var arrayBBox = mb_mapObj[ind].extent.split(",");
   var minX = parseFloat(arrayBBox[0]);
   var minY = parseFloat(arrayBBox[1]);
   var maxX = parseFloat(arrayBBox[2]);
   var maxY = parseFloat(arrayBBox[3]);
   var xtentx = parseFloat(arrayBBox[2]) - parseFloat(arrayBBox[0]);
   var xtenty =  parseFloat(arrayBBox[3]) - parseFloat(arrayBBox[1]);
   var width = mb_mapObj[ind].width;
   var height = mb_mapObj[ind].height;
   pixPos_x = Math.round(parseFloat(((rw_posx - minX)/xtentx)*width));
   pixPos_y = Math.round(parseFloat(((maxY - rw_posy)/xtenty)*height));
   return new Array(pixPos_x, pixPos_y);
}

function mb_arrangeElement(frameName, elName, left, top) {
   if(frameName != ""){
      window.frames[frameName].document.getElementById(elName).style.top = top;
      window.frames[frameName].document.getElementById(elName).style.left = left;
   }
   else{
      document.getElementById(elName).style.top = top;
      document.getElementById(elName).style.left = left;   
   }
}
/****************BUTTON HANDLING*************************/
var mb_button = new Array();
function mb_regButton(wii){
   var ind = mb_button.length;
   mb_button[ind] = new mb_conButton(wii, ind);
   eval(wii+"("+ind+")");
   mb_button[ind].prev = mb_button[ind].src;
   mb_button[ind].src = mb_button[ind].img_over;
   mb_button[ind].onmouseover = new Function("mb_button_over("+ind+")");
   mb_button[ind].onmouseout = new Function("mb_button_out("+ind+")");
   mb_button[ind].onclick = new Function("mb_button_click("+ind+")");
}
function mb_conButton(wii, ind){
   this.wii = wii;
   return true;
}
function mb_button_over(ind){
   if(mb_button[ind].status == 0){
      mb_button[ind].prev = mb_button[ind].src;
      mb_button[ind].src = mb_button[ind].img_over;
   }
}
function mb_button_out(ind){
   mb_button[ind].src = mb_button[ind].prev;
}
function mb_button_click(ind){
   var mbStatus = mb_button[ind].status;
   if(mbStatus == 0){
      mb_disableButton(mb_button[ind].elName);
      mb_button[ind].prev = mb_button[ind].img_on;
      mb_button[ind].src = mb_button[ind].img_on;
      mb_button[ind].status = 1;
      document.getElementById(mb_button[ind].elName).go();
   }
   else{
      mb_button[ind].prev = mb_button[ind].img_off;
      mb_button[ind].src = mb_button[ind].img_off;
      mb_button[ind].status = 0;      
      document.getElementById(mb_button[ind].elName).stop();
   }
}
function mb_disableButton(elName){
   for(var i=0; i<mb_button.length; i++){
      if(mb_button[i].elName != elName && mb_button[i].status == 1){
            mb_button[i].status = 0;
            document.getElementById(mb_button[i].elName).src = mb_button[i].img_off;
            document.getElementById(mb_button[i].elName).stop();
            return true;
       
      }
   }
}
function mb_disableThisButton(elName){
   for(var i=0; i<mb_button.length; i++){
      if(mb_button[i].elName == elName && mb_button[i].status == 1){
            mb_button[i].status = 0;
            document.getElementById(mb_button[i].elName).src = mb_button[i].img_off;
            document.getElementById(mb_button[i].elName).stop();
            return true;
       
      }
   }
}
/***********************Drag & Drop***********************/
function mb_getMousePos(e,fName){
if(fName){
     if(ie){
        clickX = window.frames[fName].event.clientX;
        clickY = window.frames[fName].event.clientY;
     }
     else{
        clickX = e.pageX;
        clickY = e.pageY;
     }
  }
  else{
       if(ie){
        clickX = event.clientX;
        clickY = event.clientY;
     }
     else{
        clickX = e.pageX;
        clickY = e.pageY;
     }
  }
  var pos = new Array(clickX,clickY);
  return pos;
}
// function for object-identification 
function getMapObjIndexByName(frameName){
	for(var i=0; i<mb_mapObj.length; i++){
		if(mb_mapObj[i].frameName == frameName){
			return i;
		}
	}   
}
function mb_getLayerTitleByName(map_index, wms_index, myLayer_name){
	for(var i=0; i<mb_mapObj[map_index].wms[wms_index].objLayer.length; i++){
		if(mb_mapObj[map_index].wms[wms_index].objLayer[i].layer_name == myLayer_name){
			return mb_mapObj[map_index].wms[wms_index].objLayer[i].layer_title;
		}
	}
}
function getWMSIDByTitle(frameName,wms_title){
   var ind = getMapObjIndexByName(frameName);
   for(var i=0; i< mb_mapObj[ind].wms.length; i++){
      if(mb_mapObj[ind].wms[i].wms_title == wms_title){
         //return i;
         return mb_mapObj[ind].wms[i].wms_id;
      }
   }
}
function getWMSIndexByTitle(frameName,wms_title){
   var ind = getMapObjIndexByName(frameName);
   for(var i=0; i< mb_mapObj[ind].wms.length; i++){
      if(mb_mapObj[ind].wms[i].wms_title == wms_title){
         return i;
      }
   }
}
function getWMSIndexById(frameName,wms_id){
   var ind = getMapObjIndexByName(frameName);
   if (ind == null) return -1;
   //prompt ("../javascripts/map.php.getWMSIndexById ("+frameName+", "+wms_id+")","ind = "+ind+". is mb_mapObj there? "+(mb_mapObj[ind] != null));
   // +". is mb_mapObj there? "+mb_mapObj[ind] != null
   for(var i=0; i< mb_mapObj[ind].wms.length; i++){
      if(mb_mapObj[ind].wms[i].wms_id == wms_id){
         return i;
      }
   }
}
//scale
function mb_getScale(frameName) {
   for(var i=0; i<mb_GetScalePreFunctions.length; i++){
		var myScale = eval(mb_GetScalePreFunctions[i]);
	}
   if(myScale){
      var Y_str = myScale;
   }
   else{
      var ind = getMapObjIndexByName(frameName);
      var arrayBBox = mb_mapObj[ind].extent.split(",");
      var xtenty =  parseFloat(arrayBBox[3]) - parseFloat(arrayBBox[1]);
      var scaleY = (xtenty / mb_mapObj[ind].height) *(mb_resolution * 100);
      var Y_str = Math.round(scaleY);
   }   
   return Y_str;   
}

function mb_repaintScale(frameName, x, y, scale){
   var ind = getMapObjIndexByName(frameName);
   if(x == null && y == null){
      var arrayBBox = mb_mapObj[ind].extent.split(",");
      x = parseFloat(arrayBBox[0]) + ((parseFloat(arrayBBox[2]) - parseFloat(arrayBBox[0]))/2);
      y = parseFloat(arrayBBox[1]) + ((parseFloat(arrayBBox[3]) - parseFloat(arrayBBox[1]))/2);
   }
   var minx = parseFloat(x) - (mb_mapObj[ind].width / (mb_resolution * 100 *2) * scale);
   var miny = parseFloat(y) -  (mb_mapObj[ind].height / (mb_resolution * 100 *2) * scale);
   var maxx = parseFloat(x) + (mb_mapObj[ind].width / (mb_resolution * 100 *2) * scale);
   var maxy = parseFloat(y) +  (mb_mapObj[ind].height / (mb_resolution * 100 *2) * scale);
   mb_repaint(frameName,minx, miny, maxx, maxy);
}
function mb_repaint(frameName,minx,miny,maxx,maxy){
   var ind = getMapObjIndexByName(frameName);
   mb_mapObj[ind].extent = minx + "," + miny + "," + maxx + "," + maxy;
   setMapRequest(frameName);
}
function mb_calculateExtent(frameName,minx,miny,maxx,maxy){
  var ind = getMapObjIndexByName(frameName);
  
  var extenty = maxy - miny;
  var extentx = maxx - minx;

  var relation_px_x = mb_mapObj[ind].width / mb_mapObj[ind].height;
  var relation_px_y = mb_mapObj[ind].height / mb_mapObj[ind].width;
  var relation_bbox_x = extentx / extenty;     
  var centerx = minx + (extentx/2);
  var centery = miny + (extenty/2);
  if(relation_bbox_x <= relation_px_x){                
    minx = centerx - relation_px_x * extenty / 2;
    maxx = centerx + relation_px_x * extenty / 2;
  }
  if(relation_bbox_x > relation_px_x){                
    miny = centery - relation_px_y * extentx / 2;
    maxy = centery + relation_px_y * extentx / 2;
  }
  mb_mapObj[ind].extent = minx  +","+ miny +","+ maxx  +","+ maxy;
}
function mb_showHighlight(frameName,x,y){
   var pos = makeRealWorld2mapPos(frameName,x, y);
   mb_arrangeElement(frameName,"highlight",pos[0]-7, pos[1]-7);
   window.frames[frameName].document.getElementById("highlight").style.visibility = 'visible';
}
function mb_hideHighlight(frameName){
   mb_arrangeElement(frameName,"highlight",-20, -20);
   mb_arrangeElement(frameName,"highlight",-20, -20);
   window.frames[frameName].document.getElementById("highlight").style.visibility = 'hidden';
}
function mb_permanentHighlight(frameName,x,y){   
   var pos = makeRealWorld2mapPos(frameName,x, y);
   mb_arrangeElement(frameName,"permanent",pos[0]-7, pos[1]-7);
   window.frames[frameName].document.getElementById("permanent").style.visibility = 'visible';
}
// framename, commaseparated coordinates, commaseparated rgb values (color)
//new: coords is array!
function mb_markResult(frameName,geom,col){
	var x = "";
	var y = "";
	var tmp = new Array();
	var ind = getMapObjIndexByName(frameName);
	for(var i=0; i<geom.length; i++){
		if(i>0){
			x += ":";
			y += ":";
		}
		tmp = geom[i].split(",");
		for(var ii=0; ii<tmp.length; ii+=2){			
			var pos = makeRealWorld2mapPos(frameName,tmp[ii], tmp[ii+1]);
			if(ii>0){
				x += ",";
				y += ",";
			}
			x += pos[0];
			y += pos[1];
		}      
	}
	var source = "<img src='../extensions/markResult.php?x=" + x + "&y=" + y + "&width=" + mb_mapObj[ind].width + "&height=" + mb_mapObj[ind].height + "&color="+col+"'>";
	//prompt("",source);
	writeTag(frameName,"markResult",source);   
}
function mb_disableResult(frameName){
   writeTag(frameName,"markResult","");
}
function Numsort(a,b){
	return a-b;
}
/*
* Object (Array)
* this.id
* this.type
* this.x = new Array();
* this.y = new Array();
* this.label
* this.epsg
*/
function mb_registerGML(frameName,obj){
	var ind = getMapObjIndexByName(frameName);
	mb_mapObj[ind].geom = obj;
}
function mb_obj2gml(frameName){
	var ind = getMapObjIndexByName(frameName);	
	var geom = mb_mapObj[ind].geom;
	
	var layerName = "MyLayer";
	
	var str = "&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<wfs:FeatureCollection ";
	str += "xmlns='http://www.ttt.org/myns' ";
	str += "xmlns:myns='http://www.opengis.net/' ";
	str += "xmlns:wfs='http://www.opengis.net/wfs/' ";
	str += "xmlns:gml='http://www.opengis.net/gml/' ";
	str += "xmlns:ogc='http://www.opengis.net/ogc/' ";
	str += "xmlns:xsi='http://www.w3.org/' ";
	str += "xsi:schemaLocation='http://www.opengis.net/wfs ../wfs/1.0.0/WFS-basic.xsd                         http://www.ttt.org/myns http://localhost/cgi-bin/mapserv44?'>";
	str += "<gml:boundedBy>";
		str += "<gml:Box srsName='"+geom[0].epsg.substr(0,4).toLowerCase()+geom[0].epsg.substr(4,geom[0].epsg.length)+"'>";
			str += "<gml:coordinates>";
				str += "-1.000000,-1.000000 -1.000000,-1.000000";
			str += "</gml:coordinates>";
		str += "</gml:Box>";
	str += "</gml:boundedBy>";
	
	var myType = "";
	for(var i=0; i<geom.length;i++){
		if(geom[i].type == "text"){ myType = "point";}
		if(geom[i].type == "line"){ myType = "lineString";}
		if(geom[i].type == "polygon"){ myType = "polygon";}
		var sortx = geom[i].x;
		var sorty = geom[i].y;
		//sortx.sort(Numsort);
		//sorty.sort(Numsort);
		str += "<gml:featureMember>";
			str += "<"+layerName+">";
				str += "<gml:boundedBy>";
					str += "<gml:Box srsName=&quot;"+geom[i].epsg.substr(0,4).toLowerCase()+geom[i].epsg.substr(4,geom[i].epsg.length)+"&quot;>";
						str += "<gml:coordinates>";
							str += sortx[0]+"," + sorty[0] + " " + sortx[sortx.length-1] + "," + sorty[sorty.length-1];
						str += "</gml:coordinates>";
					str += "</gml:Box>";
				str += "</gml:boundedBy>";
				str += "<gml:"+myType+"Property>";
					str += "<gml:"+myType.charAt(0).toUpperCase()+myType.substr(1,myType.length);
					str += " srsName=&quot;"+geom[i].epsg.substr(0,4).toLowerCase()+geom[i].epsg.substr(4,geom[i].epsg.length)+"&quot;>";
						if(geom[i].type == "polygon"){ str += "<gml:outerBoundaryIs><gml:LinearRing>";} 
						str += "<gml:coordinates>";
						for(var j=0; j<geom[i].x.length; j++){
							str += geom[i].x[j] + "," + geom[i].y[j] + " ";
							//alert(geom[i].x[j] + "," + geom[i].y[j]);
						}
						str += "</gml:coordinates>";
						if(geom[i].type == "polygon"){ str += "</gml:LinearRing></gml:outerBoundaryIs>";}
					str += "</gml:"+myType.charAt(0).toUpperCase()+myType.substr(1,myType.length)+">";
				str += "</gml:"+myType+"Property>";
				str += "<id>"+i+"</id>";
			if(geom[i].label != false){
				str += "<label>"+geom[i].label+"</label>";
			}
			str += "</"+layerName+">";
		str += "</gml:featureMember>";
	}
	str += "</wfs:FeatureCollection>";
	return str;
	/*
	document.sendData.target = "_blank";
	document.sendData.action = "../classes/class_gml2obj.php";
	document.sendData.data.value = str;
	document.sendData.submit();
	*/
}
function mb_timestamp(){
	var d = new Date();
	var ts = Math.round(Date.parse(d)/1000);
	return ts;
}
function mb_getlayerposbyname(objInd,wmsInd,lname){
	var t = mb_mapObj[objInd].wms[wmsInd];
	for(var i=0; i < t.objLayer.length; i++){
		if(t.objLayer[i].layer_name == lname){
			return t.objLayer[i].layer_pos;
		}
	}
}
function mb_getLayerObjByName(fname,wms_id,layer_name){
	var ind = getMapObjIndexByName(fname);
	var wmsInd = getWMSIndexById(fname,wms_id);
	var t = mb_mapObj[ind].wms[wmsInd];
	for(var i=0; i < t.objLayer.length; i++){
		if(t.objLayer[i].layer_name == layer_name){
			return t.objLayer[i];
		}
	}
}
function mb_getchildsbyname(objInd,wmsInd,lname){
	var t = mb_mapObj[objInd].wms[wmsInd];
	var pos = mb_getlayerposbyname(objInd, wmsInd,lname);
	var l = new Array();
	l["name"] = new Array();
	l["title"] = new Array();
	l["legendurl"] = new Array();
	for(var i=0; i < t.objLayer.length; i++){
		if(t.objLayer[i].layer_parent == pos){
			l["name"][l["name"].length] = t.objLayer[i].layer_name;
			l["title"][l["title"].length] = t.objLayer[i].layer_title;
			if(t.objLayer[i].layer_style.length>0){
				l["legendurl"][l["legendurl"].length] = t.objLayer[i].layer_style[0]["legendurl"] ;
			}else{
				l["legendurl"][l["legendurl"].length] = 0 ;
			}
		}
	}
	if(l["name"].length > 0){
		return l;
	}
	else{
		return false;
	}
}


/************************************************************************************
 checks if a tag <tagname> with id <id> exists in frame <framename>.
 if yes, the node is returned
 if no, the node is created with attributes <attributes> and returned
 if a node with id <id> exists but the tagname is not <tagname>, false is returned.
************************************************************************************/

function mb_checkTag(frameName, tagName, elementId, appendAtTagName, attributes){

	var oldElement;
	var newElement;

	// for both frames and no frames...
	if(frameName && frameName != ""){
		oldElement = window.frames[frameName].document.getElementById(elementId);
	}
	else if(!frameName || frameName == ""){
		oldElement = document.getElementById(elementId);
	}

	// ... check if an element with elementId exists.	 	 
	if (oldElement == null) {
		// if no element with elementId exists, a new one is created and appended to appendAtTagName 
		
		newElement = document.createElement(tagName);
		if(frameName && frameName != ""){
			newElement = window.frames[frameName].document.getElementsByTagName(appendAtTagName)[0].appendChild(newElement);
		}
		else if(!frameName || frameName == ""){
			newElement = document.getElementsByTagName(appendAtTagName)[0].appendChild(newElement);
		}
	}
	else {
		// if element id is already taken, check if tag name are identical
		// if yes, the desired element already exists, and is returned
		// if not, another element with the desired id exists, false is returned
		
		if (oldElement.nodeName.toLowerCase() == tagName.toLowerCase()) {
			for (var i=0; i<attributes.length; i++) {
				oldElement.setAttribute(attributes[i][0], attributes[i][1]);
			}
			return oldElement;
		}
		else {
			return false;
		}
	}

	//
	// set element id
	//
	var newElementAttributeNode = document.createAttribute("id");
	newElementAttributeNode.value = elementId;
	newElement.setAttributeNode(newElementAttributeNode);
	for (var i=0; i<attributes.length; i++) {
		newElement.setAttribute(attributes[i][0], attributes[i][1]);
	}
	return newElement;
}
///////////////////////////////////////////////////////////////////////////////////////
//
//  Ab hier eigene Anpassungen
//
///////////////////////////////////////////////////////////////////////////////////////

/*
 *  Eigens für Feldblock-Finder geschrieben, um extra getMap aufzurufen
 *   kann nicht selektierten Layer trotzdem anfordern
 */
function setDirectSingleMapRequest(frameName,wms_id,getMapURL,layerParams,format){
	var ts = mb_timestamp();	
	
	for(var i=0; i<mb_MapRequestPreFunctions.length; i++){
		eval(mb_MapRequestPreFunctions[i]);
	}
	for(var i=0; i<mb_mapObj.length; i++){
		var newMapRequest = "";
		if(mb_mapObj[i].frameName == frameName){
			var stop = false;
			var myDivId = "div_";
			var myMapId = "map_";
			for(var ii=0; ii<mb_mapObj[i].wms.length; ii++){ 
				if(mb_mapObj[i].wms[ii].wms_id == wms_id){
					stop = true;
					myDivId += ii;
					myMapId += ii;
				}
			}
			for(var ii=0; ii<mb_mapObj[i].wms.length; ii++){ 
				var proxy = false; //proxy
				
				// hol einfach einen aktiven layer, um an Extent ranzukommen
				if(mb_mapObj[i].layers[ii] != "" && mb_checkScale(frameName,i,ii) != ""){  
					var newMapURL = getMapURL;
					newMapRequest += "<img id='"+myMapId+"' name='mapimage' src='";

					/* ows proxy */
					if(newMapURL.indexOf(mb_security_proxy)>-1){
						var a = newMapURL.indexOf(mb_security_proxy) + mb_security_proxy.length;
						proxy = newMapURL.substr(0,a);
						newMapURL = newMapURL.substr(a,newMapURL.length);								
					} /* end ows proxy */           
					
					newMapURL += layerParams;
					newMapURL += "BBOX="+mb_mapObj[i].extent+"&";
					newMapURL += "WIDTH="+mb_mapObj[i].width+"&";
					newMapURL += "HEIGHT="+mb_mapObj[i].height+"&";
					newMapURL += "FORMAT="+format+"&";
					newMapURL += "BGCOLOR=0xffffff&";
					if(format.search(/gif/i)>-1 || format.search(/png/i)>-1){
						newMapURL += "TRANSPARENT=TRUE&";
					}
					newMapURL += "EXCEPTIONS="+mb_mapObj[i].wms[ii].gui_wms_exceptionformat;
					// add vendor-specific
					for(var v=0; v<mb_vendorSpecific.length; v++){
						newMapURL += "&" + eval(mb_vendorSpecific[v]);
					}
					// add Filter (no filter yet)
					/*
					if(mb_mapObj[i].wms[ii].wms_filter != ""){
						var tmp = mb_mapObj[i].wms[ii].wms_filter +"?id="+ mb_styleID;
						//prompt("",tmp);;
						var temp = "&SLD=" + tmp+ "&";
						newMapURL += temp;
					}
					*/
					
					if(proxy){
						newMapURL = proxy + escape(newMapURL) + "&" + 'PHPSESSID=7a03e5f462e2e4deccebc9ff6b59e904';
					}
					newMapRequest += newMapURL;
					//mb_mapObj[i].mapURL[ii] = newMapURL;
					//mb_mapObj[i].wms[ii].mapURL = newMapURL;
					newMapRequest += "' width='"+mb_mapObj[i].width+"' height='"+mb_mapObj[i].height+"' border='0'>";
					
					//prompt("setSingleMapRequest(frameName,wms_id,layers,styles)",newMapRequest);
					if(mb_log){
						var tmp = eval(mb_log + "('" + newMapURL + "','" + ts + "')");
					}
					writeTag(mb_mapObj[i].frameName,myDivId,newMapRequest);
					if (stop == true) return;
				}                            
			}           
		}      
	}   
	for(var i=0; i<mb_MapRequestSubFunctions.length; i++){
		eval(mb_MapRequestSubFunctions[i]);
	}   
} // setSingleMapRequest(frameName,wms_id,layers,styles)

/*
 *  Eigens für Feldblock-Finder geschrieben, um extra getMap aufzurufen
 *   kann nicht selektierten Layer trotzdem anfordern
 */
function setDirectSingleMapRequestWithTime(frameName,wms_id,getMapURL,layerParams,format){
	var ts = mb_timestamp();	
	
	for(var i=0; i<mb_MapRequestPreFunctions.length; i++){
		eval(mb_MapRequestPreFunctions[i]);
	}
	for(var i=0; i<mb_mapObj.length; i++){
		var newMapRequest = "";
		if(mb_mapObj[i].frameName == frameName){
			var stop = false;
			var myDivId = "div_";
			var myMapId = "map_";
			for(var ii=0; ii<mb_mapObj[i].wms.length; ii++){ 
				if(mb_mapObj[i].wms[ii].wms_id == wms_id){
					stop = true;
					myDivId += ii;
					myMapId += ii;
				}
			}
			for(var ii=0; ii<mb_mapObj[i].wms.length; ii++){ 
				var proxy = false; //proxy
				
				// hol einfach einen aktiven layer, um an Extent ranzukommen
				if(mb_mapObj[i].layers[ii] != "" && mb_checkScale(frameName,i,ii) != ""){  
					var newMapURL = getMapURL; 
					newMapRequest += "<img id='"+myMapId+"' name='mapimage' src='"; 

					/* ows proxy */ 
					if(newMapURL.indexOf(mb_security_proxy)>-1){ 
						var a = newMapURL.indexOf(mb_security_proxy) + mb_security_proxy.length;
						proxy = newMapURL.substr(0,a);
						newMapURL = newMapURL.substr(a,newMapURL.length);								
					} /* end ows proxy */           
					
					newMapURL += layerParams;
					newMapURL += "BBOX="+mb_mapObj[i].extent+"&";
					newMapURL += "WIDTH="+mb_mapObj[i].width+"&";
					newMapURL += "HEIGHT="+mb_mapObj[i].height+"&";
					newMapURL += "FORMAT="+format+"&";
					newMapURL += "BGCOLOR=0xffffff&";
					newMapURL += "TIME=" + ts + "&"; 
					
					if(format.search(/gif/i)>-1 || format.search(/png/i)>-1){
						newMapURL += "TRANSPARENT=TRUE&";
					}
					newMapURL += "EXCEPTIONS="+mb_mapObj[i].wms[ii].gui_wms_exceptionformat;
					// add vendor-specific
					for(var v=0; v<mb_vendorSpecific.length; v++){
						newMapURL += "&" + eval(mb_vendorSpecific[v]);
					}
					// add Filter (no filter yet)
					/*
					if(mb_mapObj[i].wms[ii].wms_filter != ""){
						var tmp = mb_mapObj[i].wms[ii].wms_filter +"?id="+ mb_styleID;
						var temp = "&SLD=" + tmp+ "&";
						newMapURL += temp;
					}
					*/
					
					if(proxy){
						newMapURL = proxy + escape(newMapURL) + "&" + 'PHPSESSID=7a03e5f462e2e4deccebc9ff6b59e904';
					}
					newMapRequest += newMapURL;
					//mb_mapObj[i].mapURL[ii] = newMapURL;
					//mb_mapObj[i].wms[ii].mapURL = newMapURL;
					newMapRequest += "' width='"+mb_mapObj[i].width+"' height='"+mb_mapObj[i].height+"' border='0'>";
					
					//prompt("setSingleMapRequest(frameName,wms_id,layers,styles)",newMapRequest);
					if(mb_log){
						var tmp = eval(mb_log + "('" + newMapURL + "','" + ts + "')");
					}
					writeTag(mb_mapObj[i].frameName,myDivId,newMapRequest);
					if (stop == true) return;
				}   // if                          
			}  // for ii          
		} // for i     
	}   
	for(var i=0; i<mb_MapRequestSubFunctions.length; i++){
		eval(mb_MapRequestSubFunctions[i]);
	}   
} // setSingleMapRequestWithTime(frameName,wms_id,layers,styles)

/**********************************************************************************************
 *  Achtung! Es folgt eine spezielle hartkodierte Lösung nur für den Feldblock-Finder
 *
 * Dieses Stück Code umgeht den IE-Bug, wonach der Rahmen nicht zur Elementbreite gezählt wird:
 * setze die Linien unter den Knöpfen für IE um 2px nach unten - sonst Anzeigefehler	
 * Browserweichen haben leider nicht funktioniert, da style jeweils direkt in Elementen gesetzt
 * wenn bessere Lösung, sofort austauschen, bin damit selber nicht glücklich
 *********************************************************************************************/
	
function checkLayout_1() {
	if (document.all) {
			if (document.getElementById) {
		  		document.getElementById("layout_1").style.height = "30px";
        }
        else {
        		document.all["layout_1"].style.height = "30px";
        	}
	}
	
}
var mod_selectMapsize_target = 'mapframe1';/******************************************************************************
 * XXX: Achtung! Die Kartengroess ist hier hart codiert. 
 * Ging nicht anders mit Button!
 * Eigentlich ist das Select-Feld besser, aber nicht gewuenscht.
 *****************************************************************************/

var h_klein = 404;
var w_klein = 535;
var h_gross = 580;
var w_gross = 800;

/******************************************************************************
 * das gleiche gilt für die Elemente, die mit der Karte verschoben werden müssen
 * Es gibt fünf Arten von verschieben: nach unten, nach rechts und nach rechts,
 *   die Breite verschieben, die Höhe verschieben und nach unten.
 *   Deren IDs werden jeweils in einem entsprechenden Array 
 *   gespeichert und die Elemente in entsprechenden Richtung verschoben.
 *****************************************************************************/
var bottom = new Array("werbung","Meldung","googleearth");
var right = new Array("help","searchHead",
								"wfs_gazetteer",
								"wfs_gazetteer2",
								"wfs_gazetteer3",
								"wfsresult");
var bottomAndRight = new Array("partner","Kartengroesse");
var widthToChange = new Array("werbung","Meldung","layout_1","googleearth");
var heightToChange = new Array ("wfsresult");
 
function mod_kartenGroesse(obj) {
	var h = 0;
	var w = 0;
	var d_h = 0;
	var d_w = 0;
	var ind = getMapObjIndexByName(mod_selectMapsize_target);
	if (obj.indexOf("gro")>=0) {
		document.getElementById("Kartengroesse").value ="kleine Karte";
		h = h_gross;
		w = w_gross;
		d_h = h_gross - h_klein;
		d_w = w_gross - w_klein; 	
	} else {
		document.getElementById("Kartengroesse").value ="große Karte";
		h = h_klein;
		w = w_klein; 
		d_h = h_klein - h_gross;
		d_w = w_klein - w_gross;
	}
	
	// Kartengroesse ändern:
	var pos = makeClickPos2RealWorldPos(mod_selectMapsize_target,w,h);
	var coords = mb_mapObj[ind].extent.split(",");
	mb_mapObj[ind].extent = coords[0] + "," + pos[1] + "," + pos[0] + "," + coords[3]; 
	mb_mapObj[ind].width = w;
 	mb_mapObj[ind].height = h;
	document.getElementById(mod_selectMapsize_target).style.width = mb_mapObj[ind].width;
	document.getElementById(mod_selectMapsize_target).style.height = mb_mapObj[ind].height;
	window.frames[mod_selectMapsize_target].document.getElementById("maps").style.width = mb_mapObj[ind].width;
	window.frames[mod_selectMapsize_target].document.getElementById("maps").style.height = mb_mapObj[ind].height;
	setMapRequest(mod_selectMapsize_target);
	
	// Überdeckte Elemente verschieben:
	moveBottom(bottom, d_h, d_w);
	moveRight(right, d_h, d_w);
	moveBottomAndRight(bottomAndRight, d_h, d_w);
	changeWidth(widthToChange,d_w);
	changeHeight(heightToChange,d_h);
}

function moveBottom (ids,height,width) {
	for (var i=0;i<ids.length;i++) {
		if (document.getElementById(ids[i])
			&& document.getElementById(ids[i]).style.top) {
			var top = parseInt(document.getElementById(ids[i]).style.top);
			parent.document.getElementById(ids[i]).style.top = ""+(height+top);	
		}
	}
}

function moveRight(ids, height, width) {
	for (var i=0;i<ids.length;i++) {
		if (document.getElementById(ids[i])
			&& document.getElementById(ids[i]).style.left) {
			var left = parseInt(document.getElementById(ids[i]).style.left);
			parent.document.getElementById(ids[i]).style.left = ""+(left+width);	
		}
	}
}

function moveBottomAndRight (ids,height,width){
	for (var i=0;i<ids.length;i++) {
		if (document.getElementById(ids[i])
			&& document.getElementById(ids[i]).style.left
			&& document.getElementById(ids[i]).style.top) {
			var left = parseInt(document.getElementById(ids[i]).style.left);
			parent.document.getElementById(ids[i]).style.left = ""+(left+width);
			var top = parseInt(document.getElementById(ids[i]).style.top);
			parent.document.getElementById(ids[i]).style.top = ""+(height+top);	
		}
	}
}

function changeWidth (ids,width) {
	for (var i=0;i<ids.length;i++) {
		if (document.getElementById(ids[i])
			&& document.getElementById(ids[i]).style.width) {
			var w = parseInt(document.getElementById(ids[i]).style.width);
			parent.document.getElementById(ids[i]).style.width = ""+(w+width);
		}
	}
}

function changeHeight (ids,height) {
	for (var i=0;i<ids.length;i++) {
		if (document.getElementById(ids[i])
			&& document.getElementById(ids[i]).style.height) {
			var h = parseInt(document.getElementById(ids[i]).style.height);
			parent.document.getElementById(ids[i]).style.height = ""+(h+height);		
		}
	}
}
var mod_back_map = 'mapframe1';var mod_back_overview = 'overview';var mb_MapHistoryObj = new Array();
var mod_back_img_off = new Image(); mod_back_img_off.src = "../img/button_blink_red/back_off.png";
var mod_back_img_off_disabled = new Image(); mod_back_img_off_disabled.src = "../img/button_blink_red/back_off_disabled.png";
var mod_back_img_over = new Image(); mod_back_img_over.src = "../img/button_blink_red/back_over.png";
var mod_back_img_previous = null;
var mod_back_cnt = -1;

mb_registerSubFunctions("mb_setHistoryObj(frameName)");
mb_registerSubFunctions("mod_back_check(frameName)");

function mod_back_check(frameName){
   if(frameName == mod_back_map){
      mod_back_cnt++;
      //alert(mod_back_cnt);
      if(mb_MapHistoryObj[mod_back_map].length > 1){
         document.getElementById("back").src =  mod_back_img_off.src;
      }
      else{
         document.getElementById("back").src =  mod_back_img_off_disabled.src;
         mod_back_img_previous = document.getElementById("back").src;
      }
   }
}
function mod_back_over(obj){
  mod_back_img_previous = document.getElementById("back").src;
  if(document.getElementById("back").src ==  mod_back_img_off.src){
     document.getElementById("back").src = mod_back_img_over.src;
  }
}

function mod_back_out(obj){
 document.getElementById("back").src  = mod_back_img_previous;
}
function mod_back_set(){
   if(mod_back_img_previous ==  mod_back_img_off.src){
     //FutureObj
     if(mb_MapFutureObj){
        mb_setFutureObj(mod_back_map);
     }
     var ind = getMapObjIndexByName(mod_back_map);
     var cnt = mb_MapHistoryObj[mod_back_map].length - 2;
     if(mb_mapObj[ind].epsg != mb_MapHistoryObj[mod_back_map][cnt].epsg){
       var oind = getMapObjIndexByName(mod_back_overview);
       for(var i=0; i<mb_MapHistoryObj[mod_back_overview].length; i++){
         if(mb_MapHistoryObj[mod_back_overview][i].epsg == mb_MapHistoryObj[mod_back_map][cnt].epsg){
            mb_mapObj[oind].epsg = mb_MapHistoryObj[mod_back_overview][i].epsg;
            mb_mapObj[oind].extent = mb_MapHistoryObj[mod_back_overview][i].extent;
            setMapRequest(mod_back_overview);
            break;
         }
       }
     }
     document.getElementById(mod_back_map).style.width = mb_MapHistoryObj[mod_back_map][cnt].width;
     document.getElementById(mod_back_map).style.height = mb_MapHistoryObj[mod_back_map][cnt].height;     
     mb_mapObj[ind].width = mb_MapHistoryObj[mod_back_map][cnt].width;
     mb_mapObj[ind].height = mb_MapHistoryObj[mod_back_map][cnt].height;     
     mb_mapObj[ind].epsg = mb_MapHistoryObj[mod_back_map][cnt].epsg;
     mb_mapObj[ind].extent = mb_MapHistoryObj[mod_back_map][cnt].extent;
     mb_mapObj[ind].layers = mb_MapHistoryObj[mod_back_map][cnt].layers;
     mb_mapObj[ind].styles = mb_MapHistoryObj[mod_back_map][cnt].styles;
     mb_mapObj[ind].querylayers = mb_MapHistoryObj[mod_back_map][cnt].querylayers;
     mb_MapHistoryObj[mod_back_map].length = (mb_MapHistoryObj[mod_back_map].length - 2);
     setMapRequest(mod_back_map);
   }
}
function mb_setHistoryObj(frameName){
   if(mb_MapHistoryObj[frameName] == null){
      mb_MapHistoryObj[frameName] = new Array();
   }
   var ind = getMapObjIndexByName(frameName);
   var cnt = mb_MapHistoryObj[frameName].length;
   mb_MapHistoryObj[frameName][cnt] = new Object();
   mb_MapHistoryObj[frameName][cnt].width = mb_mapObj[ind].width;
   mb_MapHistoryObj[frameName][cnt].height = mb_mapObj[ind].height;
   mb_MapHistoryObj[frameName][cnt].epsg = mb_mapObj[ind].epsg;
   mb_MapHistoryObj[frameName][cnt].extent = mb_mapObj[ind].extent;
   mb_MapHistoryObj[frameName][cnt].layers = new Array();
   for(var i=0; i<mb_mapObj[ind].layers.length;i++){
      mb_MapHistoryObj[frameName][cnt].layers[i] = mb_mapObj[ind].layers[i];
   }
   mb_MapHistoryObj[frameName][cnt].styles = new Array();
   for(var i=0; i<mb_mapObj[ind].styles.length;i++){
           mb_MapHistoryObj[frameName][cnt].styles[i] = mb_mapObj[ind].styles[i];
   }
   mb_MapHistoryObj[frameName][cnt].querylayers = new Array();
   for(var i=0; i<mb_mapObj[ind].querylayers.length;i++){
      mb_MapHistoryObj[frameName][cnt].querylayers[i] = mb_mapObj[ind].querylayers[i];
   }
}
var mod_copyright_target = 'mapframe1';
//var mod_copyright_text = "&copy; Geoinformationsdienst GmbH, Rosdorf";
var mod_copyright_text = "&copy; Landwirtschaftskammer Niedersachsen";
var mod_copyright_left = 5;
var mod_copyright_bottom = 20;

var mod_copyright_color1 = "white";
var mod_copyright_color2 = "black";
var mod_copyright_font = "Arial, Helvetica, sans-serif";
var mod_copyright_fontsize = "9px";

mb_registerSubFunctions("mod_copyright()");
function mod_copyright(){
	var ind = getMapObjIndexByName(mod_copyright_target);
	var str_c = "<div>";
	str_c += "<img src='../img/transparent.gif' width ='"+mb_mapObj[ind].width+"' height='"+mb_mapObj[ind].height+"'>";
	str_c += "<div style='font-family:"+mod_copyright_font+";font-size:"+mod_copyright_fontsize+";color:"+mod_copyright_color1+";position:absolute;top:"+(mb_mapObj[ind].height - (mod_copyright_bottom-1))+"px;left:"+mod_copyright_left+"px'>"+mod_copyright_text+"</div>";
	str_c += "<div style='font-family:"+mod_copyright_font+";font-size:"+mod_copyright_fontsize+";color:"+mod_copyright_color1+";position:absolute;top:"+(mb_mapObj[ind].height - mod_copyright_bottom)+"px;left:"+mod_copyright_left+"px'>"+mod_copyright_text+"</div>";
	str_c += "<div style='font-family:"+mod_copyright_font+";font-size:"+mod_copyright_fontsize+";color:"+mod_copyright_color2+";position:absolute;top:"+(mb_mapObj[ind].height - mod_copyright_bottom)+"px;left:"+(mod_copyright_left+1)+"px'>"+mod_copyright_text+"</div>";
	str_c += "</div>";
	writeTag(mod_copyright_target,"copyright",str_c); 
}var mod_dependentDiv_target = 'mapframe1';mod_dependentDiv_offsetLeft = -20;
mod_dependentDiv_offsetTop = 10;

mb_registerSubFunctions("mod_dependentDiv()");
function mod_dependentDiv(){
	var obj = document.getElementById(mod_dependentDiv_target).style;
	var thisObj = document.getElementById('dependentDiv').style; 
	thisObj.left = parseInt(obj.left) - mod_dependentDiv_offsetLeft;
	thisObj.top = parseInt(obj.top) + parseInt(obj.height) +  mod_dependentDiv_offsetTop;
	thisObj.width = parseInt(obj.width) + (2*mod_dependentDiv_offsetTop);
}var mod_featureInfo_elName = "featureInfo1";
var mod_featureInfo_frameName = "";
var mod_featureInfo_target = "mapframe1";

var mod_featureInfo_img_on = new Image(); mod_featureInfo_img_on.src =  "../img/button_blink_red/query_on.png";
var mod_featureInfo_img_off = new Image(); mod_featureInfo_img_off.src ="../img/button_blink_red/query_off.png";
var mod_featureInfo_img_over = new Image(); mod_featureInfo_img_over.src = "../img/button_blink_red/query_over.png";

function init_featureInfo1(ind){
	mb_button[ind] = document.getElementById(mod_featureInfo_elName);
	mb_button[ind].img_over = mod_featureInfo_img_over.src;
	mb_button[ind].img_on = mod_featureInfo_img_on.src;
	mb_button[ind].img_off = mod_featureInfo_img_off.src;
	mb_button[ind].status = 0;
	mb_button[ind].elName = mod_featureInfo_elName;
	mb_button[ind].fName = mod_featureInfo_frameName;
	mb_button[ind].go = new Function ("mod_featureInfo_click()");
	mb_button[ind].stop = new Function ("mod_featureInfo_disable()");
}
function mod_featureInfo_click(){   
	window.frames[mod_featureInfo_target].document.onclick = mod_featureInfo_event;
}
function mod_featureInfo_disable(){
	window.frames[mod_featureInfo_target].document.onclick = null;
}
function mod_featureInfo_event(e){
	if(ie){
		clickX = window.frames[mod_featureInfo_target].event.clientX;
		clickY = window.frames[mod_featureInfo_target].event.clientY;

	}
	else{
		clickX = e.pageX;
		clickY = e.pageY;
	}
	setFeatureInfoRequest(mod_featureInfo_target,clickX,clickY);
}var mod_forward_map = 'mapframe1';var mod_forward_overview = 'overview';var mb_MapFutureObj = new Array();
var mod_forward_img_off = new Image(); mod_forward_img_off.src = "../img/button_blink_red/forward_off.png";
var mod_forward_img_off_disabled = new Image(); mod_forward_img_off_disabled.src = "../img/button_blink_red/forward_off_disabled.png";
var mod_forward_img_over = new Image(); mod_forward_img_over.src = "../img/button_blink_red/forward_over.png";
var mod_forward_img_previous = mod_forward_img_off_disabled.src;
var mod_forward_cnt = 0;
var mod_forward_hist_cnt = 0;
mb_registerSubFunctions("mod_forward_check(frameName)");
function mod_forward_check(frameName){
	if(mb_MapFutureObj[frameName] == null){
		mb_MapFutureObj[frameName] = new Array();
	}
	if(frameName == mod_forward_map){
		if(mb_MapFutureObj[mod_forward_map].length > 0){
			document.getElementById("forward").src =  mod_forward_img_off.src;
		}
		else{
			document.getElementById("forward").src =  mod_forward_img_off_disabled.src;
			mod_forward_img_previous = document.getElementById("forward").src;
		}
	}
	if(mb_MapHistoryObj[mod_forward_map]){
		if(mb_MapHistoryObj[mod_forward_map].length > mod_forward_hist_cnt && mb_MapFutureObj[mod_forward_map].length == mod_forward_cnt){
			mod_forward_reset();
		}
		mod_forward_cnt = mb_MapFutureObj[mod_forward_map].length;
		mod_forward_hist_cnt = mb_MapHistoryObj[mod_forward_map].length;
	}
}
function mod_forward_reset(){
	if(mb_MapHistoryObj[mod_forward_map].length > 0){
		mb_MapFutureObj[mod_forward_map] = new Array();
		document.getElementById("forward").src =  mod_forward_img_off_disabled.src;
		mod_forward_img_previous = document.getElementById("forward").src;
	}
}
function mod_forward_over(obj){
	mod_forward_img_previous = document.getElementById("forward").src;
	if(document.getElementById("forward").src ==  mod_forward_img_off.src){
		document.getElementById("forward").src = mod_forward_img_over.src;
	}
}
function mod_forward_out(obj){
	document.getElementById("forward").src  = mod_forward_img_previous;
}
function mod_forward_set(){
	if(mod_forward_img_previous ==  mod_forward_img_off.src){
		var ind = getMapObjIndexByName(mod_forward_map);
		var cnt = mb_MapFutureObj[mod_forward_map].length - 1;
		if(mb_mapObj[ind].epsg != mb_MapFutureObj[mod_forward_map][cnt].epsg){
			var oind = getMapObjIndexByName(mod_forward_overview);
			for(var i=0; i<mb_MapHistoryObj[mod_forward_overview].length; i++){
				if(mb_MapHistoryObj[mod_forward_overview][i].epsg == mb_MapFutureObj[mod_forward_map][cnt].epsg){
					mb_mapObj[oind].epsg = mb_MapHistoryObj[mod_forward_overview][i].epsg;
					mb_mapObj[oind].extent = mb_MapHistoryObj[mod_forward_overview][i].extent;
					setMapRequest(mod_forward_overview);
					break;
				}
			}
		}
		document.getElementById(mod_forward_map).style.width = mb_MapFutureObj[mod_forward_map][cnt].width;
		document.getElementById(mod_forward_map).style.height = mb_MapFutureObj[mod_forward_map][cnt].height;     
		mb_mapObj[ind].width = mb_MapFutureObj[mod_forward_map][cnt].width;
		mb_mapObj[ind].height = mb_MapFutureObj[mod_forward_map][cnt].height;
		mb_mapObj[ind].epsg = mb_MapFutureObj[mod_forward_map][cnt].epsg;
		mb_mapObj[ind].extent = mb_MapFutureObj[mod_forward_map][cnt].extent;
		mb_mapObj[ind].layers = mb_MapFutureObj[mod_forward_map][cnt].layers;
		mb_mapObj[ind].styles = mb_MapFutureObj[mod_forward_map][cnt].styles;
		mb_mapObj[ind].querylayers = mb_MapFutureObj[mod_forward_map][cnt].querylayers;
		mb_MapFutureObj[mod_forward_map].length = (mb_MapFutureObj[mod_forward_map].length - 1);
		setMapRequest(mod_forward_map);
	}
}
function mb_setFutureObj(frameName){
	var ind = getMapObjIndexByName(frameName);
	var cnt = mb_MapFutureObj[frameName].length;
	mb_MapFutureObj[frameName][cnt] = new Object();
	mb_MapFutureObj[frameName][cnt].reqCnt = mod_back_cnt;
	mb_MapFutureObj[frameName][cnt].width = mb_mapObj[ind].width;
	mb_MapFutureObj[frameName][cnt].height = mb_mapObj[ind].height;
	mb_MapFutureObj[frameName][cnt].epsg = mb_mapObj[ind].epsg;
	mb_MapFutureObj[frameName][cnt].extent = mb_mapObj[ind].extent;
	mb_MapFutureObj[frameName][cnt].layers = new Array();
	for(var i=0; i<mb_mapObj[ind].layers.length;i++){
		mb_MapFutureObj[frameName][cnt].layers[i] = mb_mapObj[ind].layers[i];
	}
	mb_MapFutureObj[frameName][cnt].styles = new Array();
	for(var i=0; i<mb_mapObj[ind].styles.length;i++){
		mb_MapFutureObj[frameName][cnt].styles[i] = mb_mapObj[ind].styles[i];
	}
	mb_MapFutureObj[frameName][cnt].querylayers = new Array();
	for(var i=0; i<mb_mapObj[ind].querylayers.length;i++){
		mb_MapFutureObj[frameName][cnt].querylayers[i] = mb_mapObj[ind].querylayers[i];
	}
}var mod_measure_target = 'mapframe1';var EPSG = "EPSG:31467";
// diese variable schaltet Steuerknöpfe beim Messen ein/aus und die üblichen Knöpfe aus/ein
var measureButtons = false;
//var mod_measure_color1 = "white";
var mod_measure_color1 = "black";
var mod_measure_color2 = "black";
var mod_measure_font = "Arial, Helvetica, sans-serif";
// mod_measure_fontsize war vorher 20px !
var mod_measure_fontsize = "15px";
var mod_measure_basepoint = "#ff1010";          // rote Knotenpunkte beim Messen
var mod_measure_linepoint = "#ff8622";          // orange Linienpunkte beim Messen
var mod_measure_bg = "";
var mod_measure_pgsql = true;

var mod_measure_win = null;

var mod_measure_elName = "measure";
var mod_measure_frameName = "";
var mod_measure_epsg;
var mod_measure_width;
var mod_measure_height;
var mod_measure_RX = new Array();
var mod_measure_RY = new Array();
var mod_measure_Dist = new Array();
var mod_measure_TotalDist = new Array();
var mod_measureSubFunctions = new Array();

var mod_measure_img_on = new Image(); mod_measure_img_on.src = "../img/button_blink_red/measure_on.png";
var mod_measure_img_off = new Image(); mod_measure_img_off.src = "../img/button_blink_red/measure_off.png";
var mod_measure_img_over = new Image(); mod_measure_img_over.src = "../img/button_blink_red/measure_over.png";

function init_mod_measure(ind){
	mb_button[ind] = document.getElementById(mod_measure_elName);
	mb_button[ind].img_over = mod_measure_img_over.src;
	mb_button[ind].img_on = mod_measure_img_on.src;
	mb_button[ind].img_off = mod_measure_img_off.src;
	mb_button[ind].status = 0;
	mb_button[ind].elName = mod_measure_elName;
	mb_button[ind].fName = mod_measure_frameName;
	mb_button[ind].go = new Function ("mod_measure_go()");
	mb_button[ind].stop = new Function ("mod_measure_disable()");
	var ind = getMapObjIndexByName(mod_measure_target);
	mod_measure_width = mb_mapObj[ind].width;
	mod_measure_height = mb_mapObj[ind].height;
	mod_measure_epsg = mb_mapObj[ind].epsg;
	mb_registerSubFunctions("drawDashedLine()");
	mb_registerPanSubElement("measuring");
}
function register_measureSubFunctions(stringFunction){
	mod_measureSubFunctions[mod_measureSubFunctions.length] = stringFunction;
}
function mod_measure_go(){   
	var epsg=mb_mapObj[0].epsg;
	if (epsg.indexOf('4326') != -1) {
		var message="Im WGS84-Koordinatensystem (GPS-Koordinaten) ist das Messen nicht möglich. \n";
		message += "Das Koordinatensystem wird auf das Anfangssystem (Gauß-Krüger) zurückgestellt.\n";
		message += "Sie können oben rechts über der Karte auf ein anderes Gauß-Krüger-System umstellen.";
		alert(message);
    parent.changeEPSG.setSRS(EPSG);


    //prompt ("Frame Value",parent.changeEPSG.document.forms[0].newSRS.value);
		//var measureButtons = false;
		//return false;
	}
	var el = window.frames[mod_measure_target].document;
	el.body.style.cursor = "crossHair";
	el.onmousedown = mod_measure_start;
	el.onmousemove = mod_measure_run;
	var measureSub = "";
	if (measureButtons) {
		window.frames['measureButtons'].visibility = 'visible';
		alert (mod_measure_target+"-src: "+window.frames[mod_measure_target].src);
		alert ("measureButtons-id: "+window.frames["measureButtons"].id);
	}
	else {
		for(var i=0; i<mod_measureSubFunctions.length; i++){
			measureSub += eval(mod_measureSubFunctions[i]);
		} 
		writeTag(mod_measure_target,"measure_sub",measureSub);
	}
}
function mod_measure_disable(){
	var el = window.frames[mod_measure_target].document; 
	el.body.style.cursor = "auto";
	el.onmousedown = null;
	el.onmousemove = null;
	writeTag(mod_measure_target,"measure_display","");
	writeTag(mod_measure_target,"measure_sub","");
	if (measureButtons == true) {
		window.frames['measureButtons'].visibility = 'hidden';		
	}
}
function mod_measure_timeout(){
	var el = window.frames[mod_measure_target].document; 
	el.onmousedown = null;
	el.ondblclick = null;
	el.onmousemove = null;
}
function mod_measure_disableTimeout(){
	var el = window.frames[mod_measure_target].document;
	el.onmousedown = mod_measure_start;
	el.onmousemove = mod_measure_run;
}
function mod_measure_start(e){
	mb_getMousePos(e,mod_measure_target);
	var realWorldPos = makeClickPos2RealWorldPos(mod_measure_target,clickX,clickY);
	mod_measure_RX[mod_measure_RX.length] = Math.round(realWorldPos[0] * 100)/100;
	mod_measure_RY[mod_measure_RY.length] = Math.round(realWorldPos[1] * 100)/100;
	if(mod_measure_RX.length > 1){
		var dist_x = Math.abs(mod_measure_RX[mod_measure_RX.length-2] - mod_measure_RX[mod_measure_RX.length-1]);
		var dist_y = Math.abs(mod_measure_RY[mod_measure_RY.length-2] - mod_measure_RY[mod_measure_RY.length-1]);
		var dist = Math.round(Math.sqrt(Math.pow(dist_x,2) + Math.pow(dist_y,2))*100)/100;
		mod_measure_Dist[mod_measure_Dist.length] = dist;
		var totalDist = mod_measure_TotalDist[mod_measure_TotalDist.length-1] + dist;
		mod_measure_TotalDist[mod_measure_TotalDist.length] = Math.round(totalDist * 100)/100;
	}
	else{
		mod_measure_Dist[mod_measure_Dist.length] = 0;
		mod_measure_TotalDist[mod_measure_TotalDist.length] = 0;
	}   
	drawDashedLine();
}

/**********************************************************
 *
 * Achtung verändert: Strecken werden nicht mehr aufsummiert 
 *      bei jedem Klick angezeigt.
 *
 *********************************************************/
function drawDashedLine(){
	var str_mPoints = "<div style='position:absolute;left:0px;top:0px' ><img src='"+mb_trans.src+"' width='"+mod_measure_width+"' height='0'></div>";
	str_mPoints += "<div style='position:absolute;left:0px;top:0px' ><img src='"+mb_trans.src+"' width='0' height='"+mod_measure_height+"'></div>";
	for(var i=0; i<mod_measure_RX.length; i++){
		var pos = makeRealWorld2mapPos(mod_measure_target,mod_measure_RX[i],mod_measure_RY[i]);
		// Points nur noch 3px width/height groß
		//str_mPoints += "<div style='font-size:1px;position:absolute;top:"+(pos[1]-2)+"px;left:"+(pos[0]-2)+"px;width:4px;height:4px;background-color:"+mod_measure_basepoint+"'></div>";
		str_mPoints += "<div style='font-size:1px;position:absolute;top:"+(pos[1]-2)+"px;left:"+(pos[0]-2);
		str_mPoints += "px;width:3px;height:3px;background-color:"+mod_measure_basepoint+"'></div>";
		
		
		///// Aufsummierung von Strecken anzeigen ist ausgeschaltet
		/*
		if(i>0){
			str_mPoints += "<div  style='font-family:"+mod_measure_font+";font-size:"+mod_measure_fontsize+";color:"+mod_measure_color1+";";
			if(mod_measure_bg != ""){
				str_mPoints += "background-color:"+mod_measure_bg+";";
			}
			str_mPoints += "position:absolute;top:"+(pos[1] + 3)+"px;left:"+(pos[0]+3)+"px;z-index:20'>"+mod_measure_TotalDist[i]+"</div>";
			str_mPoints += "<div  style='font-family:"+mod_measure_font+";font-size:"+mod_measure_fontsize+";color:"+mod_measure_color2+";position:absolute;top:"+(pos[1] + 4)+"px;left:"+(pos[0]+4)+"px;z-index:21'>"+mod_measure_TotalDist[i]+"</div>";
		}
		*/
		///
	}
	if(mod_measure_RX.length>1){
		for(var k=1; k<mod_measure_RX.length; k++){
			var pos0 = makeRealWorld2mapPos(mod_measure_target,mod_measure_RX[k], mod_measure_RY[k]);
			var pos1 = makeRealWorld2mapPos(mod_measure_target,mod_measure_RX[k-1], mod_measure_RY[k-1]);
			str_mPoints += evaluateDashes(pos1[0],pos1[1],pos0[0],pos0[1],k);
		}
	}
	writeTag(mod_measure_target,"measuring",str_mPoints);
}

/**********************************************************************
 *
 * XXX: In dieser Funktion Layout der Messlinie festgelegt
 * 02.05.06 Punktdicke auf 2px (vorher 4px) festgelegt
 *          Außerdem wurder der Linienabstand verringert
 *
 *********************************************************************/
function evaluateDashes(x1,y1,x2,y2,count){
	var str_dashedLine = "";
//	var s = 10;
	var s = 7;
	var d = Math.sqrt(Math.pow((y1-y2),2) + Math.pow((x1-x2),2)) ;
	var n = Math.round(d/s);
	var s_x =  (x2 - x1)/n;
	var s_y =  (y2 - y1)/n;
	for(var i=1; i<n; i++){
		var x = Math.round(x1 + i * s_x)-2;
		var y = Math.round(y1 + i * s_y)-2;
//		if(x >= 0 && x <= mod_measure_width && y >= 0 && y <= mod_measure_height){
//		if(x >= 0 && y >= 0 ){
//			str_dashedLine += "<div style='font-size:1px;position:absolute;top:"+y+"px;left:"+x+"px;width:4px;height:4px;background-color:"+mod_measure_linepoint+"'></div>";
			str_dashedLine += "<div style='font-size:1px;position:absolute;top:"+y+"px;left:"+x;
			str_dashedLine += "px;width:2px;height:2px;background-color:"+mod_measure_linepoint+"'></div>";
//		}
	}
	str_dashedLine += "<div style='font-family:"+mod_measure_font+";font-size:"+mod_measure_fontsize;
	str_dashedLine += ";color:"+mod_measure_color1+";";
	if(mod_measure_bg != ""){
		str_dashedLine += "background-color:"+mod_measure_bg+";";
	} 
	  
	str_dashedLine += "position:absolute;top:"+(Math.round(y1 + (y2-y1)/2 +3))+"px;left:"+(Math.round(x1 + (x2-x1)/2 +3))+"px'>"+Math.round(mod_measure_Dist[count])+"m</div>";
	//str_dashedLine += "position:absolute;top:"+(Math.round(y1 + (y2-y1)/2 +3))+"px;left:"+(Math.round(x1 + (x2-x1)/2 +3))+"px'>"+mod_measure_Dist[count]+"</div>";
	//str_dashedLine += "<div style='font-family:"+mod_measure_font+";font-size:"+mod_measure_fontsize+";color:"+mod_measure_color2+";position:absolute;top:"+(Math.round(y1 + (y2-y1)/2 + 4))+"px;left:"+(Math.round(x1 + (x2-x1)/2+4))+"px'>_____"+Math.round(mod_measure_Dist[count])+"</div>";
	return str_dashedLine;
}
function mod_measure_run(e){
	mb_getMousePos(e,mod_measure_target);
	var pos = makeClickPos2RealWorldPos(mod_measure_target,clickX,clickY);
	var dist_x = Math.abs(mod_measure_RX[mod_measure_RX.length-1] - pos[0]);
	var dist_y = Math.abs(mod_measure_RY[mod_measure_RY.length-1] - pos[1]);
	if(isNaN(dist_x) == false && clickX > 0 && clickX < mod_measure_width && clickY > 0 && clickY < mod_measure_height){
		var str_display = "<span style='font-family:"+mod_measure_font+";font-size:"+mod_measure_fontsize+";color:"+mod_measure_color2+";'>"+(Math.round(Math.sqrt(Math.pow(dist_x,2) + Math.pow(dist_y,2))*100)/100)+" m</span>";
		writeTag(mod_measure_target,"measure_display",str_display);
		mb_arrangeElement(mod_measure_target,"measure_display",clickX +2, clickY - 10);
	}
	else{
		writeTag(mod_measure_target,"measure_display","");
	}
}
function mod_measure_close(){
	if(mod_measure_RX.length < 3 || (mod_measure_RX[mod_measure_RX.length-1] == mod_measure_RX[0] && mod_measure_RY[mod_measure_RY.length-1] == mod_measure_RY[0])){return;}
	mod_measure_RX[mod_measure_RX.length] = mod_measure_RX[0];
	mod_measure_RY[mod_measure_RY.length] = mod_measure_RY[0];
	if(mod_measure_RX.length > 1){
		// circumference
		var dist_x = Math.abs(mod_measure_RX[mod_measure_RX.length-2] - mod_measure_RX[mod_measure_RX.length-1]);
		var dist_y = Math.abs(mod_measure_RY[mod_measure_RY.length-2] - mod_measure_RY[mod_measure_RY.length-1]);
		var dist = Math.round(Math.sqrt(Math.pow(dist_x,2) + Math.pow(dist_y,2))*100)/100;
		mod_measure_Dist[mod_measure_Dist.length] = dist;
		var totalDist = mod_measure_TotalDist[mod_measure_TotalDist.length-1] + dist;
		mod_measure_TotalDist[mod_measure_TotalDist.length] = Math.round(totalDist * 100)/100;
	}
	else{
		mod_measure_Dist[mod_measure_Dist.length] = 0;
		mod_measure_TotalDist[mod_measure_TotalDist.length] = 0;
	}
	drawDashedLine();
}
function mod_measure_delete(){
	mod_measure_RX = new Array();
	mod_measure_RY = new Array();
	mod_measure_Dist = new Array();
	mod_measure_TotalDist = new Array();
	writeTag(mod_measure_target,"measuring","");
	writeTag(mod_measure_target,"measure_display","");
}var mod_navFrame_target = 'mapframe1';var mod_navFrame_src = '';var mod_navFrame_ext = 10;
mb_registerSubFunctions("mod_navFrame_arrange()");
function  mod_navFrame_arrange(){
   var el = document.getElementById(mod_navFrame_target).style;
   var ext = mod_navFrame_ext;
   var myLeft = parseInt(el.left);
   var myTop = parseInt(el.top);
   var myWidth = parseInt(el.width);
   var myHeight = parseInt(el.height);
   //left,top,width,height
   mod_navFrame_pos("mbN",(myLeft),(myTop - ext),(myWidth),(ext));
   document.getElementById("arrow_n").style.left = myWidth/2 - document.getElementById("arrow_n").width/2;   
   mod_navFrame_pos("mbNE",(myLeft + myWidth),(myTop - ext),(ext),(ext));
   mod_navFrame_pos("mbE",(myLeft + myWidth),(myTop),(ext),(myHeight));
   document.getElementById("arrow_e").style.top = myHeight/2 - document.getElementById("arrow_n").height/2;
   mod_navFrame_pos("mbSE",(myLeft + myWidth),(myTop + myHeight),(ext),(ext));
   mod_navFrame_pos("mbS",(myLeft),(myTop + myHeight),(myWidth),(ext));
   document.getElementById("arrow_s").style.left = myWidth/2 - document.getElementById("arrow_s").width/2;
   mod_navFrame_pos("mbSW",(myLeft - ext),(myTop + myHeight),(ext),(ext));
   mod_navFrame_pos("mbW",(myLeft - ext),(myTop),(ext),(myHeight));
   document.getElementById("arrow_w").style.top = myHeight/2 - document.getElementById("arrow_w").height/2;
   mod_navFrame_pos("mbNW",(myLeft - ext),(myTop -ext),(ext),(ext));   
}
function mod_navFrame(val){
 mb_panMap(mod_navFrame_target,val);  
}
function mod_navFrame_pos(el,left,top,width,height){
//alert(el + " , " +left + " , " +top + " , " +width + " , " +height)
   document.getElementById(el).style.left = left;
   document.getElementById(el).style.top = top;
   document.getElementById(el).style.width = width;
   document.getElementById(el).style.height = height;
}
var mod_pan_target = 'mapframe1';var mod_pan_elName = "pan1";
var mod_pan_frameName = "";


var mod_pan_img_on = new Image(); mod_pan_img_on.src = "../img/button_blink_red/pan_on.png";
var mod_pan_img_off = new Image(); mod_pan_img_off.src = "../img/button_blink_red/pan_off.png";
var mod_pan_img_over = new Image(); mod_pan_img_over.src = "../img/button_blink_red/pan_over.png";

function init_mod_pan(ind){
   mb_button[ind] = document.getElementById(mod_pan_elName);
   mb_button[ind].img_over = mod_pan_img_over.src;
   mb_button[ind].img_on = mod_pan_img_on.src;
   mb_button[ind].img_off = mod_pan_img_off.src;
   mb_button[ind].status = 0;
   mb_button[ind].elName = mod_pan_elName;
   mb_button[ind].fName = mod_pan_frameName;
   mb_button[ind].go = new Function ("mod_pan_click()");
   mb_button[ind].stop = new Function ("mod_pan_disable()");
}
// changed cursor style 
function mod_pan_click(){   
   var el = window.frames[mod_pan_target].document;
   el.body.style.cursor = "move";
   el.onmousedown = mod_pan_start;
   el.onmouseup = mod_pan_stop;
   el.onmousemove = mod_pan_run;
}
// cursor style back to usual
function mod_pan_disable(){
   var el = window.frames[mod_pan_target].document; 
   el.body.style.cursor = "auto";
   el.onmousedown = null;
   el.onmouseup = null;
   el.onmousemove = null;
}
function mod_pan_start(e){
   mb_panActive = true;
   mb_getMousePos(e,mod_pan_target);
   mb_start_x=clickX;
   mb_start_y=clickY;
   mb_end_x = clickX;
   mb_end_y = clickY; 
   return false;
}
function mod_pan_run(e){
   if(mb_panActive){
     mb_getMousePos(e,mod_pan_target);
     mb_end_x = clickX;
     mb_end_y = clickY;
     mod_pan_move_map();
     if(ie){ return false;}
     else{return true;}
   }
}
function mod_pan_stop(e){
   mb_panActive = false;
   var dif_x = mb_end_x - mb_start_x;
   var dif_y = mb_end_y - mb_start_y;
   for(var i=0; i<mb_mapObj.length; i++){
      if(mb_mapObj[i].frameName == mod_pan_target){
         var width = mb_mapObj[i].width;
         var height = mb_mapObj[i].height;      
      }
   } 
   
   var center_x = (width / 2)  - dif_x;
   var center_y = (height / 2) - dif_y;
   var real_center = makeClickPos2RealWorldPos(mod_pan_target,center_x, center_y);   
   mb_arrangeElement(mod_pan_target, "maps", 0, 0);
   for(var i=0; i<mb_PanSubElements.length; i++){
      mb_arrangeElement(mod_pan_target, mb_PanSubElements[i], 0, 0);
   }
   zoom(mod_pan_target,false, 1.0, real_center[0], real_center[1]);   
}
function mod_pan_move_map(){
   var dif_x = mb_end_x - mb_start_x;
   var dif_y = mb_end_y - mb_start_y;
   mb_arrangeElement(mod_pan_target, "maps", dif_x, dif_y);
   for(var i=0; i<mb_PanSubElements.length; i++){
      mb_arrangeElement(mod_pan_target, mb_PanSubElements[i], dif_x, dif_y);
   } 
   return false;  
}
var mod_sandclock_target = 'mapframe1';var mod_sandclock_maxWait = 1000 * 60 * 15;
var mod_sandclock_minWait = 1000 * 0;

var mod_sandclock_count;
var mod_sandclock_img = new Image();
mod_sandclock_img.src = "../img/progress.gif";
mb_registerSubFunctions("mod_sandclock(true,myMapId)");


function mod_sandclock(start,myMapId){
   var ind = getMapObjIndexByName(mod_sandclock_target);
   if(start){  
      mod_sandclock_count = mod_sandclock_maxWait; 
      var temp = "<img src='"+mod_sandclock_img.src+"'>";
      writeTag(mod_sandclock_target, "sandclock", temp);
            
      mb_arrangeElement(mod_sandclock_target, "sandclock", (mb_mapObj[ind].width/3 - 16), (mb_mapObj[ind].height/3 - 16));
      
      var dim = mod_sandclock_getWSize();
      document.getElementById("sandclock2").style.width = dim[0];
      document.getElementById("sandclock2").style.height = dim[1];
   }

   // check images:   
//   aktiv = setTimeout("mod_sandclock('','"+myMapId+"')",100);
//	alert ("mod_sandclock - myMapId = " + myMapId);
   aktiv = setTimeout("mod_sandclock('','map_2')",100);
   mod_sandclock_count -= 100;

   var allMaps = window.frames[mod_sandclock_target].document.getElementsByName("mapimage");
   //var allMaps = window.frames[mod_sandclock_target].document.getElementsByTagName("img");
   var cnt = 1;
   
   for(var i=0; i<allMaps.length; i++){
   	if(allMaps[i].complete == true){
   		cnt++;
      } 
       
   } 
    
   if((mod_sandclock_count <= 0 || cnt >= allMaps.length) 
   	&& mod_sandclock_count < (mod_sandclock_maxWait - mod_sandclock_minWait)){
   			clearTimeout(aktiv);
//   			alert ("clearTimeout("+aktiv+")");
   	  	   writeTag(mod_sandclock_target, "sandclock", "");
   	   	document.getElementById("sandclock2").style.width = 1;
   	   	document.getElementById("sandclock2").style.height = 1;
   	
   }
    
}
function mod_sandclock_getWSize(){
   if(ie){
      var dim = new Array(window.document.body.offsetWidth,  window.document.body.offsetHeight);
   }
   else{
      var dim = new Array(window.innerWidth, window.innerHeight);
   }
   return dim;
}
var mod_scaleSelect_target = 'mapframe1';mb_registerSubFunctions("mod_scaleSelect_val(frameName)");
function mod_scaleSelect(obj){
   var ind = obj.selectedIndex;
   mb_repaintScale(mod_scaleSelect_target,null,null,obj.options[ind].value);
}
function mod_scaleSelect_val(frameName){
   if(frameName == mod_scaleSelect_target){
      var scale = mb_getScale(frameName);
      document.getElementById("scaleSelect").options[0].text = "1 : " + scale;
      document.getElementById("scaleSelect").options[0].selected = true;
   }
}
var mod_scalebar_target = 'mapframe1';
var mod_scalebar_left = 5;
var mod_scalebar_bottom = 17;

var mod_scalebar_color1 = "white";
var mod_scalebar_color2 = "black";
var mod_scalebar_font = "Arial, Helvetica, sans-serif";
var mod_scalebar_fontsize = "9px";

mb_registerSubFunctions("mod_scalebar()");
function mod_scalebar(){
   var scale = mb_getScale(mod_scalebar_target);
   var ind = getMapObjIndexByName(mod_scalebar_target);
   if(scale < 10){
      var unit = '10&nbsp;cm';
      var factor = 10/scale;
      var img_width = Math.round(factor * mb_resolution);
   }
   if(scale >= 10 && scale < 100){
      var unit = '1&nbsp;m';
      var factor = 100/scale;
      var img_width = Math.round(factor * mb_resolution);
   }
   if(scale < 1000 && scale >= 100){
      var unit = '10&nbsp;m';
      var factor = 1000/scale;
      var img_width = Math.round(factor * mb_resolution);
   }
   if(scale < 10000 && scale >= 1000){
      var unit = '100&nbsp;m';
      var factor = 10000/scale;
      var img_width = Math.round(factor * mb_resolution);
   }
   if(scale < 100000 && scale >= 10000){
      var unit = '1&nbsp;km';
      var factor = 100000/scale;
      var img_width = Math.round(factor * mb_resolution);
   }
   if(scale < 1000000 && scale >= 100000){
      var unit = '10&nbsp;km';
      var factor = 1000000/scale;
      var img_width = Math.round(factor * mb_resolution);
   }
   if(scale < 10000000 && scale >= 1000000){
      var unit = '100&nbsp;km';
      var factor = 10000000/scale;
      var img_width = Math.round(factor * mb_resolution);
   }
   if(scale < 100000000 && scale >= 10000000){
      var unit = '1000&nbsp;km';
      var factor = 100000000/scale;
      var img_width = Math.round(factor * mb_resolution);
   }
   if(scale >= 100000000){
      var unit = '1000&nbsp;km';
      var factor = 100000000/scale;
      var img_width = Math.round(factor * mb_resolution);
   }
   var scalebarTag = "<img src='../img/scalebar_bw.gif' width='"+ img_width  +"' height='6'>&nbsp; ";
   scalebarTag += "<div style='position:absolute;left:"+(img_width + 4)+"px;top:5px;color:"+mod_scalebar_color1+";font-family:"+mod_scalebar_font+";font-size:"+mod_scalebar_fontsize+";'><nobr>"+ unit+"</nobr></div>";
   scalebarTag += "<div style='position:absolute;left:"+(img_width + 2)+"px;top:7px;color:"+mod_scalebar_color1+";font-family:"+mod_scalebar_font+";font-size:"+mod_scalebar_fontsize+";'><nobr>"+ unit+"</nobr></div>";
   scalebarTag += "<div style='position:absolute;left:"+(img_width + 2)+"px;top:5px;color:"+mod_scalebar_color1+";font-family:"+mod_scalebar_font+";font-size:"+mod_scalebar_fontsize+";'><nobr>"+ unit+"</nobr></div>";
   scalebarTag += "<div style='position:absolute;left:"+(img_width + 3)+"px;top:6px;color:"+mod_scalebar_color2+";font-family:"+mod_scalebar_font+";font-size:"+mod_scalebar_fontsize+";'>"+ unit+"</div>";
   mb_arrangeElement(mod_scalebar_target, "scalebar", mod_scalebar_left, (mb_mapObj[ind].height - mod_scalebar_bottom));
   writeTag(mod_scalebar_target, "scalebar", scalebarTag);   
}
var mod_selArea_elName = "selArea1";
var mod_selArea_frameName = "";
var mod_selArea_target = "mapframe1";

var mod_selArea_img_on = new Image(); mod_selArea_img_on.src = "../img/button_blink_red/selArea_on.png";
var mod_selArea_img_off = new Image(); mod_selArea_img_off.src = "../img/button_blink_red/selArea_off.png";
var mod_selArea_img_over = new Image(); mod_selArea_img_over.src = "../img/button_blink_red/selArea_over.png";

function init_selArea1(ind){
   mb_button[ind] = document.getElementById(mod_selArea_elName);
   mb_button[ind].img_over = mod_selArea_img_over.src;
   mb_button[ind].img_on = mod_selArea_img_on.src;
   mb_button[ind].img_off = mod_selArea_img_off.src;
   mb_button[ind].status = 0;
   mb_button[ind].elName = mod_selArea_elName;
   mb_button[ind].fName = mod_selArea_frameName;
   mb_button[ind].go = new Function ("mod_selArea_click()");
   mb_button[ind].stop = new Function ("mod_selArea_disable()");
}
function mod_selArea_click(){
   var el = window.frames[mod_selArea_target].document;
   el.onmouseover = mod_selArea_init;
   el.onmousedown = mod_box_start;
   el.onmouseup = mod_selArea_get;
   el.onmousemove = mod_box_run;
}
function mod_selArea_disable(){
   var el = window.frames[mod_selArea_target].document; 
   el.onmousedown = null;
   el.onmouseup = null;
   el.onmousemove = null;
}
function mod_selArea_init(e){
   mb_isBF = mod_selArea_target;
   mb_zF = mod_selArea_target;
}
function mod_selArea_get(e){
	mod_selArea_setValidClipping(mod_box_stop(e));
	mb_isBF = mod_selArea_target;
	mb_zF = mod_selArea_target;
}
function mod_selArea_setValidClipping(coords){
	if(coords.length > 2){
		mb_calculateExtent(mb_zF,coords[0],coords[1],coords[2],coords[3]);
		setMapRequest(mb_zF);
	}
	else{
		zoom(mb_zF,true,1.0,coords[0], coords[1]);
	}
}
var mod_scaleHint_target = 'mapframe1';var mod_scaleHint_min = '500';var mod_scaleHint_max = '10000000';


mb_registerPreFunctions("mod_scaleHint_init(frameName)");
function mod_scaleHint_init(frameName){
   if(frameName == mod_scaleHint_target){
      var scale = mb_getScale(frameName);
/*      if(scale < mod_scaleHint_min || scale > mod_scaleHint_max){
         if(scale < mod_scaleHint_min){
         	var newScale = mod_scaleHint_min; 
         	var str ="Sie können die Karte nur bis zu einem Maßstab von 1:500 vergrößern.\n";
         	str += "Der Maßstab wird auf 1:500 zurückgesetzt.";
         	alert (str);
         }
*/
         if(scale > mod_scaleHint_max){
	         var newScale = mod_scaleHint_max; 
//         }
         var ind = getMapObjIndexByName(frameName);
         var arrayBBox = mb_mapObj[ind].extent.split(",");
         var x = parseFloat(arrayBBox[0]) + ((parseFloat(arrayBBox[2]) - parseFloat(arrayBBox[0]))/2);
         var y = parseFloat(arrayBBox[1]) + ((parseFloat(arrayBBox[3]) - parseFloat(arrayBBox[1]))/2);
         var minx = parseFloat(x) - (mb_mapObj[ind].width / (mb_resolution * 100 *2) * newScale);
         var miny = parseFloat(y) -  (mb_mapObj[ind].height / (mb_resolution * 100 *2) * newScale);
         var maxx = parseFloat(x) + (mb_mapObj[ind].width / (mb_resolution * 100 *2) * newScale);
         var maxy = parseFloat(y) +  (mb_mapObj[ind].height / (mb_resolution * 100 *2) * newScale);
         mb_mapObj[ind].extent = minx + "," + miny + "," + maxx + "," + maxy;
      }
   }
   return true;
}
var mod_showCoords_div_target = 'mapframe1';
var mod_showCoords_div_win = null;
var mod_showCoords_div_elName = "showCoords_div";
var mod_showCoords_div_frameName = "";
var mod_showCoords_div_img_on = new Image(); mod_showCoords_div_img_on.src = "../img/button_blink_red/coords_on.png";
var mod_showCoords_div_img_off = new Image(); mod_showCoords_div_img_off.src = "../img/button_blink_red/coords_off.png";
var mod_showCoords_div_img_over = new Image(); mod_showCoords_div_img_over.src = "../img/button_blink_red/coords_over.png";
var mod_showCoords_div_fix = "";
var coordStyle = "style='border-color:red;font-size:11px;'"; 

function init_mod_showCoords_div(ind){
	mb_button[ind] = document.getElementById(mod_showCoords_div_elName);
	mb_button[ind].img_over = mod_showCoords_div_img_over.src;
	mb_button[ind].img_on = mod_showCoords_div_img_on.src;
	mb_button[ind].img_off = mod_showCoords_div_img_off.src;
	mb_button[ind].status = 0;
	mb_button[ind].elName = mod_showCoords_div_elName;
	mb_button[ind].fName = mod_showCoords_div_frameName;
	mb_button[ind].go = new Function ("mod_showCoords_div_run()");
	mb_button[ind].stop = new Function ("mod_showCoords_div_disable()");   
}
function mod_showCoords_div_run(){   
	window.frames[mod_showCoords_div_target].document.onmousemove = mod_showCoords_div_display;
	window.frames[mod_showCoords_div_target].document.onclick = mod_showCoords_div_click;
}
function mod_showCoords_div_disable(){
	window.frames[mod_showCoords_div_target].document.onclick = null;
	window.frames[mod_showCoords_div_target].document.onmousemove = null;
	if(document.getElementById("dependentDiv")){
		writeTag("","dependentDiv","");
	}
}
function mod_showCoords_div_click(e){
	if(ie){
		clickX = window.frames[mod_showCoords_div_target].event.clientX;
		clickY = window.frames[mod_showCoords_div_target].event.clientY;

	}
	else{
		clickX = e.pageX;
		clickY = e.pageY;
	}
	var pos = makeClickPos2RealWorldPos(mod_showCoords_div_target, clickX, clickY);
	mod_showCoords_div_fix = "Auswahl: " + pos[0] + " / " +  pos[1];
	mod_showCoord_write(pos[0],pos[1]);
}
function mod_showCoords_div_display(e){
	if(ie){
		clickX = window.frames[mod_showCoords_div_target].event.clientX;
		clickY = window.frames[mod_showCoords_div_target].event.clientY;

	}
	else{
		clickX = e.pageX;
		clickY = e.pageY;
	}
	var pos = makeClickPos2RealWorldPos(mod_showCoords_div_target, clickX, clickY);
	mod_showCoord_write(pos[0],pos[1]);
}
function mod_showCoord_write(x,y){
	if(document.getElementById("dependentDiv")){		
		var str = x + " / " +  y;
		if(mod_showCoords_div_fix != ""){
			str += "<div style='color:red;font-size:11px;'>" + mod_showCoords_div_fix + "</div>"; 
		}
		writeTag("","dependentDiv", str);
	}
}   var mod_zoomFull_img = new Image(); mod_zoomFull_img.src = "../img/ownImg/nds_blau_off.png";
   var mod_zoomFull_img_over = new Image(); mod_zoomFull_img_over.src = "../img/ownImg/nds_blau_over.png";

function mod_zoomFull(){
    var ind         = this.getMapObjIndexByName("mapframe1");		
		var arrayThemen = new Array();
		var arrayThemen = mb_mapObj[ind].wms[0].objLayer[0].layer_name;
		this.Layer0     = arrayThemen;
		//alert(mb_mapObj[ind].width + " - " + mb_mapObj[ind].height);
		this.width      = mb_mapObj[ind].width;
		this.height     = mb_mapObj[ind].height;
      this.epsg       = wms[0].gui_wms_epsg;
		mb_mapObj[ind].epsg = "EPSG:31467";
		var arrayExt = new Array();		
		var frameName = "mapframe1"
		var exts = setExtent(width,height,epsg);
		arrayExt = exts.split(",");
		
		mb_repaint(frameName,arrayExt[0],arrayExt[1],arrayExt[2],arrayExt[3]);
		parent.changeEPSG.setSRS("EPSG:31467");
}

function mod_zoomFull_init(obj){
   document.getElementById("zoomFull").src = mod_zoomFull_img_over.src;
   obj.onmouseover = new Function("mod_zoomFull_over()");
   obj.onmouseout = new Function("mod_zoomFull_out()");
}
function mod_zoomFull_over(){
   document.getElementById("zoomFull").src = mod_zoomFull_img_over.src;
}
function mod_zoomFull_out(){
   document.getElementById("zoomFull").src = mod_zoomFull_img.src;
}



var mod_zoom1_img = new Image(); mod_zoom1_img.src = "../img/button_blink_red/zoomIn2_off.png";
var mod_zoom1_img_over = new Image(); mod_zoom1_img_over.src = "../img/button_blink_red/zoomIn2_over.png";


function mod_zoomIn1(){
   zoom("mapframe1", true,2.0);
}
function mod_zoomIn1_init(obj){
   document.getElementById("zoomIn1").src = mod_zoom1_img_over.src;
   obj.onmouseover = new Function("mod_zoomIn1_over()");
   obj.onmouseout = new Function("mod_zoomIn1_out()");
}
function mod_zoomIn1_over(){
   document.getElementById("zoomIn1").src = mod_zoom1_img_over.src;
}
function mod_zoomIn1_out(){
   document.getElementById("zoomIn1").src = mod_zoom1_img.src;
}
var mod_zoomOut_img = new Image(); mod_zoomOut_img.src = "../img/button_blink_red/zoomOut2_off.png";
var mod_zoomOut_img_over = new Image(); mod_zoomOut_img_over.src = "../img/button_blink_red/zoomOut2_over.png";


function mod_zoomOut1(){
   zoom("mapframe1", false,2.0);
}
function mod_zoomOut1_init(obj){
   if (document.getElementById("zoomOut1") != null) {
		document.getElementById("zoomOut1").src = mod_zoomOut_img_over.src;
   	obj.onmouseover = new Function("mod_zoomOut1_over()");
   	obj.onmouseout = new Function("mod_zoomOut1_out()");
   }
}
function mod_zoomOut1_over(){
   document.getElementById("zoomOut1").src = mod_zoomOut_img_over.src;
}
function mod_zoomOut1_out(){
   document.getElementById("zoomOut1").src = mod_zoomOut_img.src;
}

//$Id: mod_closePolygon.js,v 1.5 2005/09/13 14:38:11 bjoern_heuser Exp $
//$Header: /cvsroot/mapbender/mapbender/http/javascripts/mod_closePolygon.js,v 1.5 2005/09/13 14:38:11 bjoern_heuser Exp $
// XXX: Changed position:top:25px to 31px!!!
var mod_closePolygon_img = new Image();
mod_closePolygon_img.src = "../img/button_gray/closePolygon_off.gif";
register_measureSubFunctions("mod_closePolygon()");
function mod_closePolygon(){
	
	var str =  "<div style='position:absolute;left:0px;' onmouseup='parent.mod_closePolygon_go()' ";
	str += "onmouseover='parent.mod_measure_timeout()' onmouseout='parent.mod_measure_disableTimeout()'>";
	str += "<input style='width:140px;height:25px;font-size:1em;background-color:#accef1;color:#000000;'";
	str += " type='submit' value='Fl&auml;che berechnen' title='Fl&auml;che berechnen'/></div>";
	
	return str;
}
function mod_closePolygon_go(){
	mod_measure_close();
}var mod_getArea_target = 'mapframe1';var mod_getArea_img = new Image();
mod_getArea_img.src = "../img/button_gray/getArea_off.gif";
register_measureSubFunctions("mod_getArea()");

function mod_getArea(){
	//var str =  "<div style='position:absolute;top:50px' onmouseup='parent.mod_getArea_go()' ";
	/*
	var str =  "<div style='position:absolute;top:62px' onmouseup='parent.mod_getArea_go()' ";
	str += "onmouseover='parent.mod_measure_timeout()' onmouseout='parent.mod_measure_disableTimeout()'>";
	str += "<img title='Berechnen' src='"+mod_getArea_img.src+"'></div>";
	*/
	str = "<div style='position:absolute;left:142;' onmouseup='parent.mod_getArea_go()' ";
	str += "onmouseover='parent.mod_measure_timeout()' onmouseout='parent.mod_measure_disableTimeout()'>";
	str += "<input style='width:140px;height:25px;font-size:1em;background-color:#accef1;color:#000000;' ";
	str += "type='submit' value='Ergebnis anzeigen' title='Ergebnis anzeigen'/></div>";
	return str;
}
function mod_getArea_go(){
	if(mod_measure_RX[mod_measure_RX.length -1] == mod_measure_RX[0] 
		&& mod_measure_RY[mod_measure_RY.length -1] == mod_measure_RY[0]){
		var ind = getMapObjIndexByName(mod_getArea_target);
		var url = "../php/mod_evalArea.php?x=";
		for(var i=0; i<mod_measure_RX.length;i++){
			if(i>0){ url += ",";}
			url += mod_measure_RX[i];
		}
		url += "&y=";
		for(var i=0; i<mod_measure_RY.length;i++){
			if(i>0){ url += ",";}
			url += mod_measure_RY[i];
		}
		var srs = mb_mapObj[ind].epsg.split(":");
		url += "&srs="+ escape(srs[1]);
		url += "&length=" + mod_measure_TotalDist[mod_measure_TotalDist.length-1];
		url += "&distance="  + mod_measure_TotalDist[mod_measure_TotalDist.length-2];
		if(!mod_measure_win || mod_measure_win == null || mod_measure_win.closed == true){
			mod_measure_win = window.open(url,"mod_measure_win",
				"width=370,height=470,resizable=yes,screenX=200,screenY=200");
		}
		else{
			mod_measure_win.document.location.href = url;
		}
		mod_measure_win.focus();
	}
	else{
		if(!mod_measure_win || mod_measure_win == null || mod_measure_win.closed == true){
			var res_str = "<span style = 'font-family : Arial, Helvetica, sans-serif;font-size : 1.4em;";
			res_str += "font-weight : bold;';>Gemessene Strecke in m:</br> ";
			res_str += mod_measure_TotalDist[mod_measure_TotalDist.length-1]+" m</span>";
			mod_measure_win = window.open("","mod_measure_win","width=400,height=250,resizable=yes");
			mod_measure_win.document.open("text/html");
			mod_measure_win.document.write(res_str);
			mod_measure_win.document.close();        
		}
		else{
			var res_str = "<span style = 'font-family : Arial, Helvetica, sans-serif;font-size : 1.4em;";
			res_str += "font-weight : bold;';>Gemessene Strecke in m:</br> ";
			res_str += mod_measure_TotalDist[mod_measure_TotalDist.length-1]+" m</span>";
			mod_measure_win.document.open("text/html");
			mod_measure_win.document.write(res_str);
			mod_measure_win.document.close();
		}
		mod_measure_win.focus();      
	}
}//$Id: mod_rubber.js,v 1.4 2005/09/13 14:38:11 bjoern_heuser Exp $
//$Header: /cvsroot/mapbender/mapbender/http/javascripts/mod_rubber.js,v 1.4 2005/09/13 14:38:11 bjoern_heuser Exp $
var mod_rubber_img = new Image();
mod_rubber_img.src = "../img/button_gray/rubber_off.gif";
register_measureSubFunctions("mod_rubber()");

function mod_rubber(){

	var hilfeSrc = "\"../help/help_messen.html\"";
   //var str =  "<div onmouseup='parent.mod_rubber_go()' onmouseover='parent.mod_measure_timeout()' onmouseout='parent.mod_measure_go()'><img title='Fl&auml;che l&ouml;schen' src='"+mod_rubber_img.src+"'></div>";
   var str =  "<div style='position:absolute;left:284;' onmouseup='parent.mod_rubber_go()' ";
   str += "onmouseover='parent.mod_measure_timeout();' onmouseout='parent.mod_measure_go();'>";
	str += "<input style='width:140px;height:25px;font-size:1em;background-color:#accef1;color:#000000;' ";
	str += "type='submit' value='Fl&auml;che l&ouml;schen' title='Fl&auml;chen l&ouml;schen'/></div>";
	
	str +=  "<div style='float:right;' onclick='window.open("+hilfeSrc+")' ";
	str += "onmouseover='parent.mod_measure_timeout();' onmouseout='parent.mod_measure_go();'>";
	str += "<input style='height:25px;font-size:1em;background-color:#accef1;color:#000000;' ";
	str += "type='submit' value='HILFE' title='Hilfe zum Messen anzeigen'/></div>";
	
   return str;
}
function mod_rubber_go(){
   mod_measure_delete();
}
