/* COPYRIGHT: (C) 2001 by ccgis. This program is free software under the GNU General Public
*  License (>=v2). Read the file gpl.txt that comes with Mapbender for details. */

/*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 clickButton;
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;

//MOD Gulyás 20080404 MapResize sub eventhandler ( store the function name without barckets )
var mb_MapResizeSubFunctions = new Array();

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_loadWmsSubFunctions = new Array();
var mb_security_proxy = "http://wms1.ccgis.de/mapbender/tools/security_proxy.php?mb_ows_security_proxy=";

var mb_nr = '3f55c7083ae372663d4d059cbc005f06';var mb_myLogin = '';var mb_styleID = 'd41d8cd98f00b204e9800998ecf8427e';var mb_myBBOX = '';var owsproxy = 'http://pegel-aktuell.lfrz.at/owsproxy';
var mb_trans = new Image; 
mb_trans.src = "../img/transparent.gif";
/*END OF GLOBALS*/



function init() {
	if ( typeof( window.frames['treeview'] ) != "undefined" &&
	     typeof( window.frames['treeview'].base ) != "undefined" &&
	     typeof( mb_mapObj[ 0 ] ) != "undefined" ) {

		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);
		}
		
		if ( typeof( window.frames['treeview'].initStartHandleClick ) != "undefined" )
			window.frames['treeview'].initStartHandleClick();

	} else {
		setTimeout( "init()", 10 );
	}
}
/*registerFunctions*/

//MOD Gulyás 20080404 MapResize sub eventhandler
function mb_RegisterMapResizeSubFunctions( stringFunction ) {
	mb_MapResizeSubFunctions[ mb_MapResizeSubFunctions.length ] = stringFunction;
}

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_registerloadWmsSubFunctions(stringFunction){
	mb_loadWmsSubFunctions[mb_loadWmsSubFunctions.length] = stringFunction;
}

function mb_removeFunctionFromArray(arrayname,stringFunction){
	var length = eval(arrayname+".length");
	for(var i=0; i<length; i++){
		if(eval(arrayname+"["+i+"]") == stringFunction){
			var newArray1 = eval(arrayname+".slice(0, "+(i)+")");
			var newArray2 = eval(arrayname+".slice("+(i+1)+", "+length+")");
			eval(arrayname + " = newArray1.concat(newArray2)");
			i--;
			length--;
		}
	}
}

function cloneObject(a){
	var z = new Array();
	
	for (attr in a) {
		var b = a[attr];
		if (typeof(b) == "object") {z[attr] = cloneObject(b);}
		else z[attr] = b;
	}	
	return z;
}

function deleteWmsObject() {
	wms = new Array();
	wms_layer_count = 0;
}

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_moveWmsById (mapObj_ind, wms_id, toIndex) {
	return mb_wmsMoveByIndex(mapObj_ind, getWMSIndexById(mapObj_ind, wms_id), toIndex);
}

function mb_wmsMoveByIndex(mapObj_ind, fromIndex, toIndex) {
	if (fromIndex != toIndex && fromIndex >= 0 && fromIndex < mb_mapObj[mapObj_ind].wms.length && toIndex >= 0 && toIndex < mb_mapObj[mapObj_ind].wms.length) {
		var changed = false;

		if (fromIndex > toIndex) {
			for (var i = fromIndex; i > toIndex ; i--) {
				var result = mb_swapWmsByIndex(mapObj_ind, i-1, i);
				if (result == true) changed = true;
			}
		}
		else {
			for (var i = fromIndex; i < toIndex ; i++) {
				var result = mb_swapWmsByIndex(mapObj_ind, i, i+1);
				if (result == true) changed = true;
			}
		}
		return changed;
	}
	else {
		return false;
	}
}

function mb_swapWmsById(mapObj_ind, wms1_id, wms2_id) {
	return mb_swapWmsByIndex(mapObj_ind, getWMSIndexById(mapObj_ind, wms1_id), getWMSIndexById(mapObj_ind, wms2_id));
}

function mb_swapWmsByIndex(mapObj_ind, indexA, indexB) {
	if (indexA != indexB && indexA >= 0 && indexA < mb_mapObj[mapObj_ind].wms.length && indexB >= 0 && indexB < mb_mapObj[mapObj_ind].wms.length) {
		upper = mb_mapObj[mapObj_ind].wms[indexA];
		mb_mapObj[mapObj_ind].wms[indexA] = mb_mapObj[mapObj_ind].wms[indexB];
		mb_mapObj[mapObj_ind].wms[indexB] = upper;
		var upperLayers = mb_mapObj[mapObj_ind].layers[indexA];
		var upperStyles = mb_mapObj[mapObj_ind].styles[indexA];
		var upperQuerylayers = mb_mapObj[mapObj_ind].querylayers[indexA];
		mb_mapObj[mapObj_ind].layers[indexA] = mb_mapObj[mapObj_ind].layers[indexB];
		mb_mapObj[mapObj_ind].styles[indexA] = mb_mapObj[mapObj_ind].styles[indexB];
		mb_mapObj[mapObj_ind].querylayers[indexA] = mb_mapObj[mapObj_ind].querylayers[indexB];
		mb_mapObj[mapObj_ind].layers[indexB] = upperLayers;
		mb_mapObj[mapObj_ind].styles[indexB] = upperStyles;
		mb_mapObj[mapObj_ind].querylayers[indexB] = upperQuerylayers;
		return true;
	}
	else {
		return false;
	}
}

function mb_moveUpWmsByIndex(mapObj_ind, index) {
	if (index > 0 && index < wms.length) {
		return mb_swapWmsByIndex(mapObj_ind, index-1, index);
	}
	else {
		return false;
	}
}

function mb_moveDownWmsByIndex(mapObj_ind, index) {
	if (index >= 0 && index < wms.length-1) {
		return mb_swapWmsByIndex(mapObj_ind, index, index+1);
	}
	else {
		return false;
	}
}

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;  
	for(var i=0; i<mb_loadWmsSubFunctions.length; i++){
		eval(mb_loadWmsSubFunctions[i]);
	}
	return true; 
}
//CB
function mb_mapObjaddWMSwithLayers(obj,layers,querylayers){
	var cnt_layers = 0;
	var cnt_querylayers = 0;
	var styles = "";
	var ind = getMapObjIndexByName(obj);
	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_layerarray = new Array();
	var new_querylayerarray = new Array();
	var new_stylesarray = 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_layerarray[new_layerarray.length] = mb_mapObj[objind].layers[i];
			new_querylayerarray[new_querylayerarray.length] = mb_mapObj[objind].querylayers[i];
			new_stylesarray[new_stylesarray.length] = mb_mapObj[objind].styles[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].layers = new_layerarray; 
	mb_mapObj[objind].querylayers = new_querylayerarray; 
	mb_mapObj[objind].styles = new_stylesarray; 
	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 setMapRequest(frameName, forceRefresh){
	var ts = mb_timestamp();
	var usePxCorr = false;

	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++){
				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' "+(mb_mapObj[i].wms[ii].wms_getmap.indexOf('/owsproxy/')>0?(String(usePxCorr=true).substr(0,0))+"style='display:none;' _":"")+"src='";
						newMapURL += mb_mapObj[i].wms[ii].wms_getmap;   
						
						newMapURL += mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getmap);
						
						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="+getSLDModifiedLayerString(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]);
						}           
						
						if ( forceRefresh === true ) {
							newMapURL += "&force=" + ts;
						}
						
						// 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(window.logGroup && mb_mapObj[i].wms[ii].wms_getmap.indexOf('/owsproxy/')>0) {
						  newMapURL += "&logGroup="+window.logGroup;
            }
						//MOD Plazotta 20061116 added SLD_BODY
						//MOD Gulyás 20080421 TODO: missing else branch error
						if( window.currentSLD && ( newMapURL + "&SLD_BODY=" + window.currentSLD).length < 2040 ) {
              newMapURL += "&SLD_BODY=" + window.currentSLD;
            }

						if(mb_log){
							var tmp = eval(mb_log + "('" + newMapURL + "','" + ts + "')");
						}
						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>";
					}
				}
				
			}
      
      // MOD Plazotta - if using wmc prevent first two loads (not necessary)
      if( window.wmcLoadComplete == null || window.wmcLoadComplete == 'undefined' || !window.wmcLoadComplete ) {
        if('' != '') {
          window.wmcLoadComplete = 2;
        }
        else {
          window.wmcLoadComplete = 1;
        }
      }
      else if( window.wmcLoadComplete == 2 ) {
          window.wmcLoadComplete = 1;
      }
			//prompt("",newMapRequest);
			//MOD Plazotta 20061213 added additional parameter for pixel correction
			else writeTag(mb_mapObj[i].frameName,mb_mapObj[i].elementName,newMapRequest,usePxCorr);
		}
	}

	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 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; 

					newMapURL += mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getmap);
						
					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] != ""){
						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(mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_visible == 1 && ii>0){
					if(cnt_layers > 0){layers += ","; styles += ","; }
					layers += mb_mapObj[ind].wms[i].objLayer[ii].layer_name;
					//alert(mb_mapObj[ind].wms[i].objLayer[ii].layer_name); 
					styles += ""; 
					cnt_layers++;
				}            
				if(mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_querylayer == 1 && ii>0){
					if(cnt_querylayers > 0){querylayers += ",";}
					querylayers += mb_mapObj[ind].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 str_parent = "";
	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_parent += ","; str_legendurls += ",";}
					str_layer += thisLayer[ii];
					str_styles += "";
					str_titles += mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_title;
					str_parent += mb_mapObj[mObj].wms[wmsObj].objLayer[i].layer_parent;
					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;
	str_layerstyles[4] = str_parent;
	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;          
            	newfeatureInfoRequest += mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getfeatureinfo);
				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++;
				}
				else if(validation){
					newfeatureInfoRequest += requestParams;
					window.open(newfeatureInfoRequest, "" , "width=300,height=400,scrollbars=yes,resizable=yes");
					cnt_fi++;          
				}
			}
		}
	}
   	if(cnt_fi == 0){alert("Please select a layer! \n Bitte wählen Sie eine Ebene zur Abfrage aus!");}
}
function writeTag(frameName, elName, tagSource, pixOffset) {
  //MOD Plazotta 20061212 added pixel repaint correction for wz_graphics
  if( pixOffset == true && pixOffset != 'undefined' && pixOffset != null ) {
    // window.frames[frameName].document.getElementById(elName).innerHTML = pixCorr;
    tagSource = tagSource.replace('</div>',pixCorr+'</div>');
  }
  if(frameName && frameName != ""){
    if( window.frames[frameName].document.getElementById(elName) ) {
      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(mb_mapObj[ind].wms[i].wms_id == array_wms[j] && mb_mapObj[ind].wms[i].objLayer[ii].layer_name == array_layer[j]){
						if(type == "visible"){
							mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_visible = parseInt(status);
							//alert(mb_mapObj[ind].wms[i].objLayer[ii].layer_name);
							check = true;
						}
                        if(type == "querylayer" && (mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_queryable == "1" || mb_mapObj[ind].wms[i].objLayer[ii].gui_layer_queryable == 1)){
							mb_mapObj[ind].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,mb_mapObj[ind].wms[i].wms_id);
                        //alert('sSMR');
					}
				}
			}
		}
	}
}

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);
   if( ind == null || ind == 'undefined' ) ind = 0;
   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_frame(wii, frameName, param){
	var ind = mb_button.length;
	mb_button[ind] = new mb_conButton(wii, ind);
	if (frameName == null) {
		if (param == null) {
			eval(wii+"("+ind+")");
		}
		else {
			eval(wii+"("+ind+", "+param+")");
		}
	}
	else if (param == null) {
		eval("window.frames['" + frameName + "']."+wii+"("+ind+")");
	}
	else {
		eval("window.frames['" + frameName + "']."+wii+"("+ind+", "+param+")");
	}
	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+")");
	if (frameName==null) {
		mb_button[ind].frameName = "";
	}
	else {
		mb_button[ind].frameName = frameName;
	}
}

function mb_regButton(wii){
	mb_regButton_frame(wii, null, null);
}

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){
   if(window.frames['drawMapSelection'] && window.frames['drawMapSelection'].location.href.indexOf('mod_drawMapSelection.php') != -1) {
     if( window.document.getElementById('drawMapSelection').style.display == 'block' ) {
       resizeMapPopup(false,'mark',null,true,true);
     }
   }

   var mbStatus = mb_button[ind].status;
   //MOD Plazotta 20061204 added ||true (only activate option - no deactivate)
   if(mbStatus == 0||true){
      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;
      if (mb_button[ind].frameName != "") {
          window.frames[mb_button[ind].frameName].document.getElementById(mb_button[ind].elName).go();
      }
      else {
	      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;      
      if (mb_button[ind].frameName != "") {
          window.frames[mb_button[ind].frameName].document.getElementById(mb_button[ind].elName).stop();
      }
      else {
	      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;
		      if (mb_button[i].frameName != "") {
    	        window.frames[mb_button[i].frameName].document.getElementById(mb_button[i].elName).src = mb_button[i].img_off;
	            window.frames[mb_button[i].frameName].document.getElementById(mb_button[i].elName).stop();
		      }
		      else {
    	        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){
//      		alert(mb_button[i].elName);
            mb_button[i].status = 0;
		      if (mb_button[i].frameName != "") {
    	        window.frames[mb_button[i].frameName].document.getElementById(mb_button[i].elName).src = mb_button[i].img_off;
	            window.frames[mb_button[i].frameName].document.getElementById(mb_button[i].elName).stop();
		      }
		      else {
        	    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;
        clickButton = window.frames[fName].event.button != 0 ? window.frames[fName].event.button : clickButton;
     }
     else{
        clickX = e.pageX;
        clickY = e.pageY;
        clickButton = e.which != 0 ? (e.which == 3 ? 2 : e.which) : clickButton;
     }
  }
  else{
       if(ie){
        clickX = event.clientX;
        clickY = event.clientY;
        clickButton = event.button != 0 ? event.button : clickButton;
     }
     else{
        clickX = e.pageX;
        clickY = e.pageY;
        clickButton = e.which != 0 ? (e.which == 3 ? 2 : e.which) : clickButton;
     }
  }
  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);
   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);
      if (scaleY<1){
      	var Y_str = scaleY;
      }else{
      	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 = parseFloat( minx ) + (extentx / 2);
  var centery = parseFloat( 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;
}
function mb_registerGML(frameName,obj){
	var ind = getMapObjIndexByName(frameName);
	mb_mapObj[ind].geom = obj;
}
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;
	}
}
function mb_checkTag(frameName, tagName, elementId, appendAtTagName, attributes){
	var oldElement;
	var newElement;
	if(frameName && frameName != ""){
		oldElement = window.frames[frameName].document.getElementById(elementId);
	}
	else if(!frameName || frameName == ""){
		oldElement = document.getElementById(elementId);
	}
	if (oldElement == null) {
		newElement = window.frames[frameName].document.createElement(tagName);
		if(frameName && frameName != ""){
			newElement = window.frames[frameName].document.getElementsByTagName(appendAtTagName)[0].appendChild(newElement);
		}
		else if(!frameName || frameName == ""){
			newElement = window.frames[frameName].document.getElementsByTagName(appendAtTagName)[0].appendChild(newElement);
		}
	}
	else {
		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;
		}
	}
	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;
}
function mb_execloadWmsSubFunctions(){
	for(var i=0; i<mb_loadWmsSubFunctions.length; i++){
		eval(mb_loadWmsSubFunctions[i]);
	}	
}

function mb_getConjunctionCharacter(onlineresource){
	if(onlineresource.indexOf("?") > -1){ 
		if(onlineresource.charAt(onlineresource.length-1) == "?"){ 
			nextvalue = "";
		}else if(onlineresource.charAt(onlineresource.length-1) == "&"){
			nextvalue = "";
		}else{
			nextvalue = "&";
		}
	}
	if(onlineresource.indexOf("?") == -1){
		nextvalue = "?";
	} 
	return nextvalue;  
}

//MOD Plazotta 20070326 added this function to build layer string with sld activated layers
function getSLDModifiedLayerString(layerstr) {
// window.currentSLDLayers
  var buildLayerStr = '';
  var worklayerstr = '';
  if( window.currentSLDLayers ) {
    worklayerstr = (',' + layerstr + ',' + window.currentSLDLayers.join(',') + ',').toLowerCase();
  }
  else {
    return layerstr;
  }
  
  for(var i=0; i<wms[0].objLayer.length ;i++) {
    if( worklayerstr.indexOf(','+wms[0].objLayer[i].layer_name.toLowerCase()+',') != -1 ) {
      if( buildLayerStr != '' ) {
        buildLayerStr += ',';
      }
      buildLayerStr += wms[0].objLayer[i].layer_name;
    }
  }
  return buildLayerStr;
}

//MOD Plazotta 20061116 added function setSLDProperty
function setSLDProperty(wfsid,sldcolumns,sldvalues,stdColor) {
  if( window.wfs_gazetteer_lfrz2 && window.wfs_gazetteer_lfrz2.wfs_wms_identifier ) {
    var wms_layer = eval('/,'+wfsid+'_([^,]*)/g').exec(','+window.wfs_gazetteer_lfrz2.wfs_wms_identifier);
    var wms_color = eval('/,'+wfsid+'_([^,]*)/g').exec(','+window.wfs_gazetteer_lfrz2.wfs_wms_color);
    var color = 'aa00aa';
    var stdColor = '';
    var fillColor = '';
    var stroke = 4;

    if( wms_layer && wms_layer.length == 2 ) {
      wms_layer = wms_layer[1].split(';');
      // <<column>>, <<value>>, <<layername>>, <<property>>
      if( wms_color && wms_color.length == 2 ) {
        wms_color = wms_color[1].split(';');
        if( wms_color[0] ) color = wms_color[0];
        if( wms_color[1] ) stdColor = wms_color[1];
        if( wms_color[2] ) fillColor = wms_color[2];
      }

      // do color handling
      if( fillColor != '' ) {
        fillColor = escape('<Fill><CssParameter name="fill">#'+fillColor+'</CssParameter></Fill>');
      }
      var strokeCSS = '';
      if( stdColor != '' ) {
        strokeCSS = '%3CCssParameter+name%3D%22stroke%22%3E%23'+stdColor+'%3C%2FCssParameter%3E';
      }

			if (wms_layer[0] == 'dkm_suche' && sldcolumns[0] == 'GSTNR') {
				sldcolumns[0] = 'gstnr';
			}

      // special column layers
      if( wms_layer[0] == 'Seen_' ) {
        sldcolumns[0] = 'SEE_NAME';
      }
      if( wms_layer[0] == 'natura2000_suche_l1' ) {
        sldcolumns = Array( sldcolumns[0], sldcolumns[1] );
        sldvalues = Array( sldvalues[0], sldvalues[1] );
      }
      if( (wms_layer == 'bfi2007_lief_1') || (wms_layer == 'bfi_suche') ) {
      	sldcolumns = Array( 'Name', sldcolumns[1] );
      	sldvalues = Array( sldvalues[0].replace(/\d+\_/g,''), sldcolumns[1] );
      }
      
      var sldstring = '%3CStyledLayerDescriptor+version%3D%221.0.0%22%3E%3CNamedLayer%3E%3CName%3E<<layername>>%3C%2FName%3E%3CUserStyle%3E%3CFeatureTypeStyle%3E%3CRule%3E%3CFilter%3E<<property>>%3C%2FFilter%3E%3CPolygonSymbolizer%3E'+fillColor+'%3CStroke%3E%3CCssParameter+name%3D%22stroke%22%3E%23'+color+'%3C%2FCssParameter%3E%3CCssParameter+name%3D%22stroke-width%22%3E'+stroke+'%3C%2FCssParameter%3E%3C%2FStroke%3E%3C%2FPolygonSymbolizer%3E%3C%2FRule%3E%3CRule%3E%3CElseFilter%2F%3E%3CPolygonSymbolizer%3E'+fillColor+'%3CStroke%3E'+strokeCSS+'%3CCssParameter+name%3D%22stroke-width%22%3E1%3C%2FCssParameter%3E%3C%2FStroke%3E%3C%2FPolygonSymbolizer%3E%3C%2FRule%3E%3C%2FFeatureTypeStyle%3E%3C%2FUserStyle%3E%3C%2FNamedLayer%3E%3C%2FStyledLayerDescriptor%3E';
      if( wms_layer[0] == 'fluesse_suche' || wms_layer[0] == 'V_FLUESSE' || wms_layer[0] == 'Gewaessernetz_Suche') {
        sldstring = sldstring.replace(/PolygonSymbolizer/g,'LineSymbolizer');
      }

      //if( wms_layer[0] == 'messstellen_all3' || wms_layer[0] == 'genusspoint_suche' || wms_layer[0] == 'anbieter_suche') {
      if( wms_layer[0] == 'messstellen_all3' || wms_layer[0] == 'anbieter_suche') {
        sldstring = sldstring.replace(/PolygonSymbolizer/g,'PointSymbolizer');
      }

      var propertystring = '%3CPropertyIsEqualTo%3E%3CPropertyName%3E<<column>>%3C%2FPropertyName%3E%3CLiteral%3E<<value>>%3C%2FLiteral%3E%3C%2FPropertyIsEqualTo%3E';

      var properties = '';
      for(var i=0; i<sldcolumns.length ;i++) {
        properties += propertystring.replace('<<column>>',sldcolumns[i]).replace('<<value>>',sldvalues[i]);
      }
      if( sldcolumns.length > 1 ) {
        properties = '%3CAND%3E' + properties + '%3C%2FAND%3E';
      }

      sldstring = sldstring.replace('<<layername>>',wms_layer[0]).replace('<<property>>',properties);
      if( wms_layer[0] != 'Badegewaesser') { //MOD Plazotta 20070308 hack for badegewaesser (ausnahmelayer)
        window.currentSLD = sldstring;
      }
      // definition of layers to switch on for sld-mark
      window.currentSLDLayers = wms_layer;
    }
    else { // alert-Meldung entfernt - Punktdaten enthalten keine Definitionen und sind ok
      // alert('Element Variable "wfs_wms_identifier" enthält keine Definition für wfsID '+wfsid);
    }
  }
  else {
    alert('Element Variable "wfs_wms_identifier" muss gesetzt werden.');
  }
}
function mod_initWMC_init() {}
mb_registerInitFunctions("mod_initWMC()");
function mod_initWMC(){
	mod_initWMC_init();
} 
// iframe div popup functions
function showHilfe(type) {
  if( type == 'zeichnen' || type == 'mark' ) {
    type = 'zeichnen';
  }

  if( treeview.gui_id == 'EDM-GIS' ) {
    window.open('../lfrz/services/EDM-GIS/hilfe/Benutzerhandbuch_eRAS_WebGIS_v1.1.htm#'+type);
  }
  else {
    window.open('../lfrz/hilfe.php#'+type,'Hilfe','width=800, height=800, resizable=yes,scrollbars=yes, menubar=yes, toolbar=yes, location=yes');
  }
}

// minimize/maximize dialog layer (draw functionality)
function resizeMapPopup(full,type,param,directCall,preventToolSwitch) {
  if( full ) {
    var type = type ? type : document.getElementById('drawMap_miniframe_symbol').src.match(/\/(\w+)small.gif/)[1];
    if( directCall == true ) {
      switch(type) {
        case 'mail': document.getElementById('sendCard').onclick(); break;
				case 'zeichnen':
        case 'mark': document.getElementById('drawMapElements').onclick(); break;
        case 'print': document.getElementById('mapPage').onclick(); break;
        case 'savelayer': setMapPopupVisible('savelayer'); /* no click function necessary */ break;
        case 'addwms': document.getElementById('addWMSPop').onclick(); break;
        case 'station': document.getElementById('station').onclick(); break;
        case 'tracing': document.getElementById('tracing').onclick(); break;
        case 'savetreeview': setMapPopupVisible('savetreeview'); break;
        case 'digiproperties': setMapPopupVisible('digiproperties'); break;
        case 'uploadlayer': setMapPopupVisible('uploadlayer'); break;
        case 'downloadlayer': setMapPopupVisible('downloadlayer'); break;
        case 'javalist': setMapPopupVisible('javalist'); break;
        case 'downloadbetriebe': setMapPopupVisible( 'downloadbetriebe' ); break;
        case 'wisaROBJ': setMapPopupVisible('wisaROBJ'); break;
        case 'wisaEMREG': setMapPopupVisible('wisaEMREG'); break;
      }
    }
    else {
      document.getElementById('drawMapMiniFrame').style.display = 'none';
      document.getElementById('drawMapSelection').style.display = 'block';
      if( type == 'savelayer' ) {
        window.viewdataframe.location.href = '../lfrz/mod_saveLayersPage.php?action=modify';
        document.getElementById('drawMapSelection').style.width = (window.document.body.clientWidth - window.orig_left) * 0.3;
        document.getElementById('drawMapSelection').style.left = Math.round(window.orig_left + (window.document.body.clientWidth - window.orig_left) * 0.7)-1;
      }
      else {
	      document.getElementById('drawMapSelection').style.width = (window.document.body.clientWidth - window.orig_left) * 0.95;
	      document.getElementById('drawMapSelection').style.left = Math.round(window.orig_left + (window.document.body.clientWidth - window.orig_left) * 0.05)-1;
      	//MOD Gulyás 20080801 print window visibility
      	if ( type == 'print' ) {
					var bottomOffset = Number( document.getElementById( 'overview' ).style.height.replace( 'px', '' ) );
				  var newMapHeight = window.document.body.clientHeight;
				  document.getElementById( 'drawMapSelection' ).style.top    = newMapHeight - bottomOffset - 20;
				  document.getElementById( 'drawMapSelection' ).style.height = bottomOffset + 10; 
      	}
      }
      checkMapSelectionSource(type,param);
    }
  }
  else {
		if (type === undefined) {
			return;
		}
    try {
      var type = type ? type : window.frames['drawMapSelection'].document.getElementById('drawMap_miniframe_symbol').src.match(/\/(\w+)small.gif/)[1];
    }
    catch(e) {
      var type = type ? type : window.frames['drawMapMiniFrame'].document.getElementById('drawMap_miniframe_symbol').src.match(/\/(\w+)small.gif/)[1];
    }
    document.getElementById('drawMapMiniFrame').style.display = 'block';
    document.getElementById('drawMapSelection').style.display = 'none';
    checkMapMiniSelectionSource(type);

    // activate zoom Icon after dialog close
    if( directCall == true && preventToolSwitch != true ) {
      if( document.getElementById('selArea1') ) {
        if(document.getElementById('selArea1').onclick == null) {
          document.getElementById('selArea1').onmouseover();
        }
        document.getElementById('selArea1').onclick();
      }
    }
  }
}

// show/hide dialog layer
function setMapPopupVisible(type) {
  if(type) {
    resizeMapPopup(true,type);
  }
  else {
    if( document.getElementById('drawMapMiniFrame') ) document.getElementById('drawMapMiniFrame').style.display = 'none';
    if( document.getElementById('drawMapSelection') ) document.getElementById('drawMapSelection').style.display = 'none';
  }
}

// set page source dependend on type
function checkMapSelectionSource(type,param) {
  var url = '';
  switch(type) {
    case 'mail': url='lfrz/mod_sendCardPage.php'; break;
		case 'zeichnen':
    case 'mark': url='lfrz/mod_drawMapSelection.php'; break;
    case 'print': url='lfrz/mod_printMapPage.php'; break;
    case 'savelayer': url='lfrz/mod_saveLayersPageActions.php'; break;
    case 'addwms': url='lfrz/mod_addWMSPage.php'; break;
    case 'station': url='lfrz/mod_stationPage.php'; break;
    case 'tracing': url='lfrz/mod_tracingPage.php'; break;
    case 'savetreeview': url='lfrz/mod_savetreeviewPage.php'; break;
    case 'javalist': url='lfrz/mod_javaObjektliste.php'; break;
    case 'wisaROBJ':
			window.frames['drawMapSelection'].location.href = '../lfrz/mod_wisaROBJ.php?action=loadViewframe'
			break;
    case 'wisaEMREG':
			window.frames['drawMapSelection'].location.href = '../lfrz/mod_wisaEMREG.php?action=loadViewframe'
			break;
    case 'digiproperties':
      if( window.treeview.DigiPopURL ) {
        window.frames['drawMapSelection'].location.href = window.treeview.DigiPopURL;
        window.treeview.DigiPopURL = null;
        return;
      }
      url='lfrz/mod_digiproperties.php';
      break;
   case 'uploadlayer':
     if( window.treeview.UploadPopURL ) {
        window.frames['drawMapSelection'].location.href = window.treeview.UploadPopURL;
        window.treeview.UploadPopURL = null;
        return;
      }
     url='agrargis_upload/mod_layerImport.php';
     break;

   case 'downloadlayer':
     if( window.treeview.DownloadPopURL ) {
        window.frames['drawMapSelection'].location.href = window.treeview.DownloadPopURL;
        window.treeview.DownloadPopURL = null;
        return;
      }
     url='lfrz/mod_layerExport.php';
     break;

   case 'downloadbetriebe':
     if( window.treeview.DownloadPopURL ) {
        window.frames['drawMapSelection'].location.href = window.treeview.DownloadPopURL;
        window.treeview.DownloadPopURL = null;
        return;
      }
     url = 'lfrz/mod_ehora.php';
     break;

  }

  if( window.frames['drawMapSelection'].location.href.indexOf(url) == -1 || type == 'digiproperties' || type == 'savetreeview' || type == 'uploadlayer' || type == 'downloadlayer' || type == 'downloadbetriebe' ) {
    window.frames['drawMapSelection'].location.href = window.location.href.replace(/[^\/]+\/index\.php.*/i,'') + url + window.location.search + '&' + param;
//			http://svie0145/agrargis_expa/frames/index.php?&gui_id=AgrarGIS_expa
//  	http://svie0145/agrargis_expa/frames/autologin.php?gui_id=AgrarGIS_expalfrz/mod_layerImport.php?gui_id=AgrarGIS_expa&l=3&t=upload
  }
}

// set miniframe image/text dependend on type
function checkMapMiniSelectionSource(type) {
  var miniImage = document.getElementById('drawMap_miniframe_symbol');
  var miniText = document.getElementById('drawMap_miniframe_text');
  switch(type) {
    case 'mail':
      miniImage.src='../lfrz/img/navigation/mailsmall.gif';
      miniText.innerHTML = 'Mail';
      break;
    case 'mark':
    case 'zeichnen':
      miniImage.src='../lfrz/img/navigation/marksmall.gif';
      miniText.innerHTML = 'Zeichnen';
      break;
    case 'print':
      miniImage.src='../lfrz/img/navigation/printsmall.gif';
      miniText.innerHTML = 'Drucken';
      break;
    case 'savelayer':
      miniImage.src='../lfrz/img/navigation/savelayersmall.gif';
      miniText.innerHTML = 'Karte speichern';
      break;
		case 'wisaROBJ':
      miniImage.src='../lfrz/img/navigation/wisaROBJsmall.gif';
      miniText.innerHTML = 'Räumliche Objektauswahl';
      break;
		case 'wisaEMREG':
      miniImage.src='../lfrz/img/navigation/wisaEMREGsmall.gif';
      miniText.innerHTML = 'EmReg-OW Stationierungsassistent';
      break;
    case 'javalist':
      miniImage.src='../lfrz/img/navigation/javalistsmall.gif';
      miniText.innerHTML = 'Objektliste';
      break;
    case 'addwms':
      miniImage.src='../lfrz/img/navigation/addwmssmall.gif';
      miniText.innerHTML = 'WMS laden';
      break;
    case 'station':
      miniImage.src='../lfrz/img/navigation/stationsmall.gif';
      miniText.innerHTML = 'Stationierung';
      break;
    case 'tracing':
      miniImage.src='../lfrz/img/navigation/tracingsmall.gif';
      miniText.innerHTML = 'Tracing';
      break;
    case 'savetreeview':
      miniImage.src='../lfrz/img/navigation/savetreeviewsmall.gif';
      miniText.innerHTML = 'Karte speichern';
      break;
    case 'digiproperties':
      miniImage.src='../lfrz/img/navigation/digipropertiessmall.gif';
      miniText.innerHTML = 'Layer Eigenschaften';
      break;
    case 'uploadlayer':
      miniImage.src='../lfrz/img/navigation/uploadlayersmall.gif';
      miniText.innerHTML = 'Geodatan-Upload';
      break;
    case 'downloadlayer':
      miniImage.src='../lfrz/img/navigation/downloadlayersmall.gif';
      miniText.innerHTML = 'Geodatan-Download';
      break;
    case 'downloadbetriebe':
      miniImage.src='../lfrz/img/navigation/downloadlayersmall.gif';
      miniText.innerHTML = 'Betriebe-Download';
      break;
  }
}

function mod_themenCall() { 
  var showObj = window.document.getElementById('treeview');
  var hideObj = window.document.getElementById('legend');

  if( showObj ) {
    showObj.style.display = 'block';
  }
  if( hideObj ) {
    hideObj.style.display = 'none';
  }
}

function mod_legendCall() {
  var showObj = window.document.getElementById('legend');
  var hideObj = window.document.getElementById('treeview');

  if( showObj ) {
    showObj.style.display = 'block';
    mod_refreshLegend();
  }
  if( hideObj ) {
    hideObj.style.display = 'none';
  }
}

// for mozilla color conversation
function rgb( red, green, blue ) {
  var hexVAL = Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
  return hexVAL[Math.floor(red/16)]+hexVAL[red-Math.floor(red/16)*16]+
         hexVAL[Math.floor(green/16)]+hexVAL[green-Math.floor(green/16)*16]+
         hexVAL[Math.floor(blue/16)]+hexVAL[blue-Math.floor(blue/16)*16];
}

function mod_getLegendUrl() {
  var frameName = 'mapframe1';
  var str_LayerStyles;
  var legendUrl = '';

	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){
					//disable Layer which are out of scale
					str_LayerStyles = mb_checkScale(frameName,i,ii);
					legendUrl += mb_mapObj[i].wms[ii].wms_getmap;   						
					legendUrl += mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getmap);
					break;
				}
			}
		}
	}

  //legendUrl += 'mapsize=1+1&LAYERS=';
  legendUrl += 'LAYERS=';
	legendUrl += str_LayerStyles[0].replace(/,/g,'+');
  legendUrl += '&scale=' + mb_getScale(frameName);

  // MOD Nagy 20071106 - Add vendor-specifics
  for(var v=0; v<mb_vendorSpecific.length; v++){
  	legendUrl += "&" + eval(mb_vendorSpecific[v]);
  }

  var background  = 'ffffff';
  var myClassName = '.legendbg';

  // MOD Nagy 20080428 - Use classname of the register_legende (if it is declared) for the bgcolor
  if (document.getElementById('register_legende')) {
		var myClassName = '.' + document.getElementById('register_legende').className;
  }

  for(var j=0; j < document.styleSheets.length; j++ ) {
   	if ( !document.styleSheets[ j ].href && document.styleSheets[ j ].rules ) {
	    for(var i=0; i<document.styleSheets[j].rules.length ;i++) {
	      if(myClassName != '' && document.styleSheets[j].rules[i].selectorText == myClassName) {
	        background = document.styleSheets[j].rules[i].style.background.replace('#','');
	        break;
	      }
	    }
	  } else if ( !document.styleSheets[ j ].href && document.styleSheets[ j ].cssRules ) {   // firefox
	    for(var i=0; i < document.styleSheets[j].cssRules.length ;i++) {
	      if (myClassName != '' && document.styleSheets[j].cssRules[i].selectorText == myClassName) {
					if ( navigator.appName != 'Opera' ) {
	        	background = eval( document.styleSheets[j].cssRules[i].style.backgroundColor );
	        } else {
	        	background = document.styleSheets[j].cssRules[i].style.backgroundColor.replace('#', '');
	        }
	      	break;
	      }
	    }
	  }
  }

	legend_background = background;

  //cssRules / rules
  return escape(legendUrl) + '&bgcolor=' + background;
}

function mod_refreshLegend() {
  if( document.getElementById('legend').style.display == 'none' ) return;
  window.document.getElementById('legend').src = '../lfrz/mod_showLegend.php?wms_id='+(window.treeview?window.treeview.wms_id:'')+'&legURL='+mod_getLegendUrl()+'&gui_id=eHYD&extent=' + mb_mapObj[ 0 ].extent;
	if ( legend_background && legend_background.length > 0 ) {
 		window.frames['legend'].document.bgColor = '#' + legend_background;
 	}
  window.frames['legend'].document.body.innerHTML = '<span style="font-family:Arial; font-size:10px;">Bitte haben Sie einen Moment Geduld ...<br/> die Legende wird geladen ...</span>';

	
}

mb_registerSubFunctions("mod_refreshLegend();");
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 = "../lfrz/img/tools/xy_on.gif";
var mod_showCoords_div_img_off = new Image(); mod_showCoords_div_img_off.src = "../lfrz/img/tools/xy_off.gif";
var mod_showCoords_div_img_over = new Image(); mod_showCoords_div_img_over.src = "../lfrz/img/tools/xy_over.gif";
var mod_showCoords_div_fix = "";

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 = "Selection: " + 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){
//	parent.showCoordx.value = x;
//	parent.showCoordy.value = y;
//}

function mod_showCoord_write(x,y){
//	alert(x+'/'+y)
//	(window.frames['wfs_gazetteer_lfrz2'].document.getElementById("X").value = x;
	coordclick.value = 'on';
	if(proj.value == '31287'){
		showCoordx.value = x;
		showCoordy.value = y;
	}else{
		notransX.value = x;
		notransY.value = y;
		searchForm.submit();	
	}
}
//functions to show request save div and hide
//MOD Plazotta created this file on  20070108

function mod_enableMapInterface() {
  var ifObj = document.getElementById('loadMapHandler');
  ifObj.style.display = 'none';
}

function mod_disableMapInterface() {
  var ifObj = document.getElementById('loadMapHandler');
  if( ifObj.style.display != 'block' ) {
    ifObj.style.display = 'block';
  }
}

//MOD Plazotta 20070201 interface an die sanduhr gekoppelt (mod_sandclock.php)
mb_registerPreFunctions('mod_disableMapInterface();');
mb_registerSubFunctions('mod_enableMapInterface();');

var mod_drawMapElements_elName = "drawMapElements";
var mod_drawMapElements_frameName = "";
var mod_drawMapElements_target = "mapframe1";
var mod_drawMapCrossImage = "../lfrz/img/marksymbols/fadenkreuz_rot.gif";

var mod_drawMapElements_img_on = new Image(); mod_drawMapElements_img_on.src =  "../lfrz/img/tools/mark_on.gif";
var mod_drawMapElements_img_off = new Image(); mod_drawMapElements_img_off.src ="../lfrz/img/tools/mark_off.gif";
var mod_drawMapElements_img_over = new Image(); mod_drawMapElements_img_over.src = "../lfrz/img/tools/mark_over.gif";

mb_registerSubFunctions('printMapElements()');
mb_registerPreFunctions('mod_drawMapElements_disable(true)');

function init_drawMapElements(ind){
	mb_button[ind] = document.getElementById(mod_drawMapElements_elName);
	mb_button[ind].img_over = mod_drawMapElements_img_over.src;
	mb_button[ind].img_on = mod_drawMapElements_img_on.src;
	mb_button[ind].img_off = mod_drawMapElements_img_off.src;
	mb_button[ind].status = 0;
	mb_button[ind].elName = mod_drawMapElements_elName;
	mb_button[ind].fName = mod_drawMapElements_frameName;
	mb_button[ind].go = new Function ("mod_drawMapElements_click()");
	mb_button[ind].stop = new Function ("mod_drawMapElements_disable(true)");
}
function mod_drawMapElements_click(){
	window.frames[mod_drawMapElements_target].document.onclick = mod_drawMapElements_event;

	// show dialog layer to select symbols to draw
	if( window.setMapPopupVisible ) {
    setMapPopupVisible('mark');
  }
}
function mod_drawMapElements_disable(calledByPreFunc){
	window.frames[mod_drawMapElements_target].document.onclick = null;

  // minimize dialog layer
	if( window.resizeMapPopup ) {
    if( document.getElementById('drawMapSelection') && document.getElementById('drawMapSelection').style.display == 'block' ) {
      resizeMapPopup(false);
    }
  }

  if( calledByPreFunc == 'undefined' || calledByPreFunc == null ) {
    if( document.getElementById('selArea1') ) {
      if( document.getElementById('selArea1').onclick == null ) {
        document.getElementById('selArea1').onmouseover();
      }
      document.getElementById('selArea1').onclick();
    }
  }
}
function mod_drawMapElements_event(e){
  var elementsDIV = document.getElementById('drawMapElements');
  var i;

	if(ie){
		clickX = window.frames[mod_drawMapElements_target].event.clientX;
		clickY = window.frames[mod_drawMapElements_target].event.clientY;
	}
	else{
		clickX = e.pageX;
		clickY = e.pageY;
	}

  // get real map coordinates
	var coordArr = makeClickPos2RealWorldPos(mod_drawMapElements_target, clickX, clickY);
	var drawPopFrame = document.getElementById('drawMapSelection');
  var selSymbol = mod_drawMapCrossImage;

	// get symbol to draw (read out of symbol selection layer)
	if( drawPopFrame ) {
    var drawSymbol = window.frames['drawMapSelection'].document.getElementsByName('selDrawSymbol');

    for(i=0; i<drawSymbol.length ;i++) {
      if( drawSymbol[i].checked ) {
        selSymbol = drawSymbol[i].value;
      }
    }
  }

	// add text element with user defined text or image
	if( selSymbol == 'text' ) {
    addText(coordArr[0],coordArr[1],window.frames['drawMapSelection'].document.getElementById('selDrawText').value);
  }
  else {
		if ( selSymbol == '../lfrz/img/marksymbols/genuss/standpunkt.gif' ) {
    	addImage( coordArr[0], coordArr[1], selSymbol, 18, 25);
  	} else {
    	addImage(coordArr[0],coordArr[1],selSymbol,29,(selSymbol.indexOf('.bmp') > -1) ? 29 : 30);
  	}
  }

  // add last created element to mapframe
  if( selSymbol == mod_drawMapCrossImage ) {
    var elementObj1 = createMapElement(mapElements[mapElements.length-2]);
    if ( elementObj1 != null)
    	window.frames[mod_drawMapElements_target].document.body.appendChild( elementObj1 );
  }
  var elementObj2 = createMapElement(mapElements[mapElements.length-1]);
  if (elementObj2 != null)
  	window.frames[mod_drawMapElements_target].document.body.appendChild( elementObj2 );
}

//begin map drawing functions **************************************************
var mapElements = Array();

// add a text to mapelements
function addText(x,y,text) {
  mapElements.push( Array(x,y,'TEXT:'+text) );
}

function addLink(x,y,text,target,tooltip) {
  mapElements.push( Array(x,y,'LINK:'+text,target,tooltip) );
}

//Added by Viktor 
function addGenussLink( x, y, text, target, mouseOver, mouseOut, tooltip, w, h, bez ) {
	mapElements.push( Array( x, y, 'GENUSSLINK:' + text, target, mouseOver, mouseOut, tooltip, w, h, bez ) );
}

function formatCoord(zahl) {
  zahl = String(Math.round(zahl));
  if( zahl.length > 3 ) {
    zahl = zahl.substr(0,zahl.length-3)+'.'+zahl.substr(zahl.length-3);
  }
  return zahl;
}

// add an image to mapelements
function addImage(x,y,img,width,height) {
  if(!img || img == 'undefined') img = 	mod_drawMapCrossImage;
  if(!width || width == 'undefined') width = 29;
  if(!height || height == 'undefined') height = 30;
  if( img == mod_drawMapCrossImage ) {
    mapElements.push( Array(x,y,'TEXT:x='+formatCoord(x)+' / y='+formatCoord(y)) );
  }
  mapElements.push( Array(x,y,'IMAGE:'+img,width,height) );
}

// function to cleanup mapframe and remove all images
function clearMapElements() {
  var i;
  var deleteElements = window.frames[mod_drawMapElements_target].document.getElementsByTagName('img');

  // delete images
  for(i=deleteElements.length-1; i>=0 ;i--) {
    if( deleteElements[i].name == 'drawMapSymbol' ) {
      deleteElements[i].parentNode.removeChild(deleteElements[i]);
    }
  }

  // delete texts
  var textElements = window.frames[mod_drawMapElements_target].document.getElementsByTagName('span');
  for(i=textElements.length-1; i>=0 ;i--) {
    if( textElements[i].name == 'drawMapSymbol' ) {
      textElements[i].innerHTML = '';
      textElements[i].parentNode.removeChild(textElements[i]);
    }
  }

}

// delete and cleanup all mapframe symbols
function deleteMapElements() {
  clearMapElements();
  mapElements = Array();
}

// print all symbols to mapframe
function printMapElements(noclear) {
  if( noclear == null || noclear == false || noclear == 'undefined' ) {
    clearMapElements();
  }

  if( window.frames['mapframe1'].document.getElementsByName('mapimage')[0] && window.frames['mapframe1'].document.getElementsByName('mapimage')[0].complete ) {
    for(var i=0; i<mapElements.length ;i++) {
      var returnedElementObj = createMapElement(mapElements[i]);
      if (returnedElementObj != null)
      	window.frames[mod_drawMapElements_target].document.body.appendChild( returnedElementObj );
    }
  }
  else {
    setTimeout('printMapElements(true)',1);
  }
}

// interpret mapelement (use mapelements-array) calculate coords of current view and return created html-element
function createMapElement(mapElement) {
  var pixels = makeRealWorld2mapPos(mod_drawMapElements_target,mapElement[0],mapElement[1]);
	var ind = window.getMapObjIndexByName(mod_drawMapElements_target);
	var width = parseInt(window.mb_mapObj[ind].width);
	var height = parseInt(window.mb_mapObj[ind].height);

  if( mapElement[2].substr(0,5) == 'TEXT:' ) {
    var textWidth = 100;
    var textHeight = 20;
    if( pixels[0] > 0 && pixels[1] > 0 && pixels[0]+textWidth < width && pixels[1]+textHeight < height) {
      var spanelem = window.frames[mod_drawMapElements_target].document.createElement('span');
      spanelem.name = 'drawMapSymbol';
      spanelem.nowrap = true;
      spanelem.style.position = 'absolute';
      spanelem.style.left = pixels[0];
      spanelem.style.top = pixels[1];
      spanelem.style.zIndex = 1;
      spanelem.style.color = '#EE0000';
      spanelem.style.fontFamily = 'Arial';
      spanelem.style.fontSize = '12px';
      spanelem.style.padding = '1 3 1 3';
      if( !mapElement[2].substr(5).match(/x=[\.\d]+\s\/\sy=[\.\d]+/) ) {
        spanelem.style.background = '#CCCCCC';
        spanelem.innerHTML = mapElement[2].substr(5);
      }
      else {
        spanelem.innerHTML = '<b>'+mapElement[2].substr(5)+'</b>';
      }
      return spanelem;
    }
  }

  if( mapElement[2].substr(0,5) == 'LINK:' ) {
    var textWidth = 100;
    var textHeight = 20;
    if( pixels[0] > 0 && pixels[1] > 0 && pixels[0]+textWidth < width && pixels[1]+textHeight < height) {
      var spanelem = window.frames[mod_drawMapElements_target].document.createElement('span');
      spanelem.name = 'drawMapSymbol';
      spanelem.nowrap = true;
      spanelem.style.position = 'absolute';
      spanelem.style.left = pixels[0];
      spanelem.style.top = pixels[1];
      spanelem.style.zIndex = 1;
      spanelem.style.color = '#EE0000';
      spanelem.style.fontFamily = 'Arial';
      spanelem.style.fontSize = '12px';
      spanelem.style.padding = '1 3 1 3';
      if( !mapElement[2].substr(5).match(/x=[\.\d]+\s\/\sy=[\.\d]+/) ) {
        spanelem.style.background = '#783346';
        spanelem.innerHTML = "<a href='" + mapElement[3] + "' style='color: #ffffff; font-familiy: arial; font-size: 9px; text-decoration: none;' title='" + mapElement[4] + "'>" + mapElement[2].substr(5) + "</a>";
      }
      else {
        spanelem.innerHTML = '<b>'+mapElement[2].substr(5)+'</b>';
      }
      return spanelem;
    }
  }

	//Added by Viktor Draw out genuss labels
	if( mapElement[ 2 ].substr( 0, 11 ) == 'GENUSSLINK:' ) {

		var wasIt = false;
		for ( var i = 0; i < genuss_labelsPositions.length; i++ ) {
			if ( genuss_labelsPositions[ i ].name != mapElement[ 2 ].substr( 11 ) ) {

				if ( genuss_labelsPositions[ i ].y <= pixels[ 1 ] &&
				     genuss_labelsPositions[ i ].y + genuss_labelsPositions[ i ].h >= pixels[ 1 ] &&
				     ( (
				         genuss_labelsPositions[ i ].x <= pixels[ 0 ] &&
				         genuss_labelsPositions[ i ].x + genuss_labelsPositions[ i ].w >= pixels[ 0 ]
				       ) || (
				         genuss_labelsPositions[ i ].x <= pixels[ 0 ] + mapElement[ 6 ] &&
				         genuss_labelsPositions[ i ].x + genuss_labelsPositions[ i ].w >= pixels[ 0 ] + mapElement[ 6 ]
				       )
				     )
				    ) {
					pixels[ 1 ] = genuss_labelsPositions[ i ].y + genuss_labelsPositions[ i ].h + 1;

				} else if ( genuss_labelsPositions[ i ].y <= pixels[ 1 ] + mapElement[ 8 ] &&
				            genuss_labelsPositions[ i ].y + genuss_labelsPositions[ i ].h >= pixels[ 1 ] + mapElement[ 8 ] &&
				            ( (
				                genuss_labelsPositions[ i ].x <= pixels[ 0 ] &&
				                genuss_labelsPositions[ i ].x + genuss_labelsPositions[ i ].w >= pixels[ 0 ]
				              ) || (
				                genuss_labelsPositions[ i ].x <= pixels[ 0 ] + mapElement[ 6 ] &&
				                genuss_labelsPositions[ i ].x + genuss_labelsPositions[ i ].w >= pixels[ 0 ] + mapElement[ 6 ]
				              )
				            )
				          ) {
					pixels[ 1 ] = genuss_labelsPositions[ i ].y - mapElement[ 8 ] - 1;
				}

			} else
				wasIt = true;
		}

		if ( !wasIt ) {

			genuss_labelsPositions.push( { "name": mapElement[ 2 ].substr( 11 ), "x": pixels[ 0 ], "y": pixels[ 1 ], "w": mapElement[ 7 ], "h": mapElement[ 8 ] } );

			var tLeft = pixels[ 0 ] - ( mapElement[ 7 ] / 2 );

			var spanelem = window.frames[ mod_drawMapElements_target ].document.createElement( 'span' );
			spanelem.name             = 'drawMapSymbol';
			spanelem.id               = 'drawMapSymbol_region_' + mapElement[ 6 ];
			spanelem.nowrap           = false;
			spanelem.style.position   = 'absolute';
			spanelem.style.left       = tLeft;
			spanelem.style.top        = pixels[ 1 ] - ( mapElement[ 8 ] / 2 );
			spanelem.style.witdth     = "100px";
			spanelem.style.zIndex     = 30;
			spanelem.style.padding    = '1 3 1 3';
			spanelem.style.background = '#772233';
			spanelem.style.fontSize   = mapElement[ 9 ] + "pt";
			spanelem.style.fontFamily = 'Arial';
			spanelem.style.fontWeight = 'bold';
			
			spanelem.innerHTML = "<center><a href='" + mapElement[ 3 ] + "' onmouseover='" + mapElement[ 4 ] +
			                     "' onmouseout='" + mapElement[ 5 ] + "' style='text-decoration: none; color: #ffffff;' title=''>" +
			                     mapElement[ 2 ].substr( 11 ) + "</a></center>";
			return spanelem;
		} else
			return null;
	}

  if( mapElement[2].substr(0,6) == 'IMAGE:' ) {
    pixels[0] = pixels[0] - Math.round(mapElement[3]/2);
    pixels[1] = pixels[1] - Math.round(mapElement[4]/2);

    if( pixels[0] > 0 && pixels[1] > 0 && pixels[0] < width-mapElement[3] && pixels[1] < height-mapElement[4]) {
      var imgelem = window.frames[mod_drawMapElements_target].document.createElement('img');
      imgelem.name = 'drawMapSymbol';
      imgelem.border = 0;
      imgelem.src = mapElement[2].substr(6);
      imgelem.style.position = 'absolute';
      imgelem.style.top = pixels[1];
      imgelem.style.left = pixels[0];
      imgelem.style.zIndex = 1;
      imgelem.width = mapElement[3];
      imgelem.height = mapElement[4];
      return imgelem;
    }
  }

  return null;
// NAGY, 20071015 - commented out and changed the return value to null because of mozilla compatibility
//  return window.frames[mod_drawMapElements_target].document.createElement('');
}

//MOD Plazotta 20061117 draw cross at the middle of current map (used by addresssearch / fulltext-search to mark results)
function createMapCrossCenter() {
  	var ind = window.getMapObjIndexByName('mapframe1');
  	var width = parseInt(window.mb_mapObj[ind].width);
  	var height = parseInt(window.mb_mapObj[ind].height);
  	var arrayBBox = window.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]);
    addImage(Math.round((minX+maxX)/2),Math.round((minY+maxY)/2),mod_drawMapCrossImage,29,30);
}

var mod_mapPage_elName = "mapPage";
var mod_mapPage_frameName = "";
var mod_mapPage_target = "mapframe1";

var mod_mapPage_img_on = new Image(); mod_mapPage_img_on.src =  "../lfrz/img/tools/print_on.gif";
var mod_mapPage_img_off = new Image(); mod_mapPage_img_off.src ="../lfrz/img/tools/print_off.gif";
var mod_mapPage_img_over = new Image(); mod_mapPage_img_over.src = "../lfrz/img/tools/print_over.gif";

function init_mapPage(ind){
	mb_button[ind] = document.getElementById(mod_mapPage_elName);
	mb_button[ind].img_over = mod_mapPage_img_over.src;
	mb_button[ind].img_on = mod_mapPage_img_on.src;
	mb_button[ind].img_off = mod_mapPage_img_off.src;
	mb_button[ind].status = 0;
	mb_button[ind].elName = mod_mapPage_elName;
	mb_button[ind].fName = mod_mapPage_frameName;
	mb_button[ind].go = new Function ("mod_mapPage_click()");
	mb_button[ind].stop = new Function ("mod_mapPage_disable()");
}
function mod_mapPage_click(){   
	// show dialog layer to select symbols to draw
	if( window.setMapPopupVisible ) {
    setMapPopupVisible('print');
  }
}
function mod_printMapPage_disable(calledByPreFunc){
	window.frames[mod_mapPage_target].document.onclick = null;

  // minimize dialog layer
	if( window.resizeMapPopup ) {
    if( document.getElementById('drawMapSelection') && document.getElementById('drawMapSelection').style.display == 'block' ) {
      resizeMapPopup(false);
    }
  }

  if( calledByPreFunc == 'undefined' || calledByPreFunc == null ) {
    if( document.getElementById('selArea1') ) {
      if( document.getElementById('selArea1').onclick == null ) {
        document.getElementById('selArea1').onmouseover();
      }
      document.getElementById('selArea1').onclick();
    }
  }
}
function mod_mapPage_disable(){
	window.frames[mod_mapPage_target].document.onclick = null;

  // minimize dialog layer
	if( window.resizeMapPopup ) {
    if( document.getElementById('drawMapSelection') && document.getElementById('drawMapSelection').style.display == 'block' ) {
      resizeMapPopup(false,'print');
    }
  }
}

var mod_sendCard_elName = "sendCard";
var mod_sendCard_frameName = "";
var mod_sendCard_target = "mapframe1";

var mod_sendCard_img_on = new Image(); mod_sendCard_img_on.src =  "../lfrz/img/tools/sendcard_on.gif";
var mod_sendCard_img_off = new Image(); mod_sendCard_img_off.src ="../lfrz/img/tools/sendcard_off.gif";
var mod_sendCard_img_over = new Image(); mod_sendCard_img_over.src = "../lfrz/img/tools/sendcard_over.gif";

function init_sendCard(ind){
	mb_button[ind] = document.getElementById(mod_sendCard_elName);
	mb_button[ind].img_over = mod_sendCard_img_over.src;
	mb_button[ind].img_on = mod_sendCard_img_on.src;
	mb_button[ind].img_off = mod_sendCard_img_off.src;
	mb_button[ind].status = 0;
	mb_button[ind].elName = mod_sendCard_elName;
	mb_button[ind].fName = mod_sendCard_frameName;
	mb_button[ind].go = new Function ("mod_sendCard_click()");
	mb_button[ind].stop = new Function ("mod_sendCard_disable()");
}
function mod_sendCard_click(){   
	// show dialog layer to select symbols to draw
	if( window.setMapPopupVisible ) {
    setMapPopupVisible('mail');
  }
}
function mod_sendCard_disable(){
	window.frames[mod_sendCard_target].document.onclick = null;

  // minimize dialog layer
	if( window.resizeMapPopup ) {
    if( document.getElementById('drawMapSelection') && document.getElementById('drawMapSelection').style.display == 'block' ) {
      resizeMapPopup(false,'mail');
    }
  }
}
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_zoomFull_img = new Image(); mod_zoomFull_img.src = "../lfrz/img/tools/zoomfull_off.gif";
var mod_zoomFull_img_over = new Image(); mod_zoomFull_img_over.src = "../lfrz/img/tools/zoomfull_over.gif";
var mod_zoomFull_orig_ext = '';

mb_registerInitFunctions("setTimeout('mod_zoomFullStartExtent()',1000);");


function mod_zoomFullStartExtent(){
	var ind = window.getMapObjIndexByName('mapframe1');
	
	
	mod_zoomFull_orig_ext = window.mb_mapObj[ind].extent;
}


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       = mb_mapObj[ind].wms[0].gui_wms_epsg;
		//mb_mapObj[ind].epsg = "EPSG:31493";
    //alert(Layer0);
		var arrayExt = new Array();		
		var frameName = "mapframe1"

    // MOD Plazotta 20070112 change bounding box to start extent of austria with epsg 31287
    if( false == true ) {
      for(var i=0; i < mb_mapObj[ind].wms[0].gui_epsg.length; i++){
        if(mb_mapObj[ind].wms[0].gui_epsg[i] == this.epsg ){
           mb_mapObj[ind].wms[0].gui_minx[i] = 110000;
           mb_mapObj[ind].wms[0].gui_miny[i] = 275000;
           mb_mapObj[ind].wms[0].gui_maxx[i] = 688000;
           mb_mapObj[ind].wms[0].gui_maxy[i] = 572000;
        }
      }
  		var exts = setExtent(width,height,epsg);
    }
    else {
      // MOD NAGY 20081030 changed to calculate proper exts because of distortion in full extent
      //var exts = mod_zoomFull_orig_ext;
      var exts = setExtent(width,height,epsg); 
    }
		arrayExt = exts.split(",");
		mb_repaint(frameName,arrayExt[0],arrayExt[1],arrayExt[2],arrayExt[3]);
}

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_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 = "../lfrz/img/tools/zoomback_off.gif";
var mod_back_img_off_disabled = new Image(); mod_back_img_off_disabled.src = "../lfrz/img/tools/zoomback_off.gif";
var mod_back_img_over = new Image(); mod_back_img_over.src = "../lfrz/img/tools/zoomback_off.gif";
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++;
		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){
		if(mb_MapFutureObj){
			mb_setFutureObj(mod_back_map);
		}
		var ind = getMapObjIndexByName(mod_back_map);
		var cnt = mb_MapHistoryObj[mod_back_map].length - 2;
		if(cnt < 1) return;
		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_sandclock_target = 'mapframe1';
var mod_sandclock_img = new Image();
mod_sandclock_img.src = "../lfrz/img/workingmap.gif";
mb_registerSubFunctions("mod_sandclock(true,myMapId)");

function mod_sandclock(start,myMapId){
	var ind = getMapObjIndexByName(mod_sandclock_target);
	if(start == true){
		var temp = "<img src='"+mod_sandclock_img.src+"'>";
		writeTag(mod_sandclock_target, "sandclock", temp);
		mb_arrangeElement(mod_sandclock_target, "sandclock", (mb_mapObj[ind].width/2 - 90), (mb_mapObj[ind].height/2 - 46));
	}
	aktiv = setTimeout("mod_sandclock('','"+myMapId+"')",100);
	if(start != true && window.frames[mod_sandclock_target].document.getElementById(myMapId) && window.frames[mod_sandclock_target].document.getElementById(myMapId).complete){
		clearTimeout(aktiv);
		writeTag(mod_sandclock_target, "sandclock", "");
	} 
}
var mod_dependentDiv_target = 'mapframe1';mod_dependentDiv_offsetLeft = 10;
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_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_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";

var mod_scalebar_tag = "";

mb_registerSubFunctions("mod_scalebar()");
function mod_scalebar(){
	var ind = getMapObjIndexByName(mod_scalebar_target);

  // add BMLFUW copyright
  var scalebarTag = "<div style='position:absolute;left:-6px;top:1px; padding-top:1px; background:#ffffff; height:16px; width:95px; font-size:8pt; font-family:Arial;'>&nbsp;&#xA9; BMLFUW 2009</div>"
	if ( mod_scalebar_tag != "" ) {
		scalebarTag = mod_scalebar_tag;
	}
	
	mb_arrangeElement(mod_scalebar_target, "scalebar", mod_scalebar_left, (mb_mapObj[ind].height - mod_scalebar_bottom));
	writeTag(mod_scalebar_target, "scalebar", scalebarTag);
}
mod_savewmc_target = 'mapframe1';
var mod_savewmc_img = new Image(); mod_savewmc_img.src = "../lfrz/img/tools/link_off.gif";
//var mod_savewmc_img_over = new Image(); mod_savewmc_img_over.src = "../lfrz/img/tools/link_over.gif";

function mod_twodigits(nr) {
	return nr<10 ? '0'+nr : nr;
}

function mod_savewmc(title,setbookmark,treelayer,generalAbstract){
	var user = "";
	var ind = getMapObjIndexByName(mod_savewmc_target);
	//MOD Plazotta 20061009 automatical set title
	var currentDate = new Date();
	if (title) {
		var generalTitle = title;
		title_alert = 0;
	}
	else {
		var generalTitle = 'eHYD - WebGIS BMLFUW ('+mod_twodigits(currentDate.getDate())+'.'+mod_twodigits(currentDate.getMonth()+1)+'.'+currentDate.getYear()+' '+mod_twodigits(currentDate.getHours())+'.'+mod_twodigits(currentDate.getMinutes())+')';
		title_alert = 0;
	}
	if( treelayer ) {
    var generalTitle = 'user_'+title;
  }
	if (generalTitle != null){
		var wmc = "";

		// ViewContext variables
		var version = "1.0.0";
		var id = "_";
		var jetzt = new Date();
		id += jetzt.getTime();

		// General variables
		var generalWidth = mb_mapObj[ind].width;
		var generalHeight = mb_mapObj[ind].height;
		var generalBboxSrs = mb_mapObj[ind].epsg;
		var arrayBBox = mb_mapObj[ind].extent.split(",");
		var generalBboxMinx = parseFloat(arrayBBox[0]);
		var generalBboxMiny = parseFloat(arrayBBox[1]);
		var generalBboxMaxx = parseFloat(arrayBBox[2]);
		var generalBboxMaxy = parseFloat(arrayBBox[3]);
		var generalName = "Mapbender WMC"; // TO do : insert proper data
		var generalKeywords = ""; // TO do : insert proper data
		var generalAbstract = (generalAbstract != null && generalAbstract != 'undefined' && generalAbstract) ? generalAbstract : ""; // TO do : insert proper data
		var generalLogoUrl = ""; // TO do : insert proper data
		var generalLogoUrlWidth = ""; // TO do : insert proper data
		var generalLogoUrlHeight = ""; // TO do : insert proper data
		var generalLogoUrlFormat = ""; // TO do : insert proper data
		var generalDescriptionUrl = ""; // TO do : insert proper data

		var generalContactPerson = "";
		var generalContactOrganization = "";
		var generalContactPosition = "";
		var generalContactAddressType = "";
		var generalContactAddress = "";
		var generalContactCity = "";
		var generalContactStateOrProvince = "";
		var generalContactPostCode = "";
		var generalContactCountry = "";
		var generalContactVoiceTelephone = "";
		var generalContactFacsimileTelephone = "";
		var generalContactElectronicMailAddress = "";

		// Missing: Extension

		// LayerList variables
		var layerHidden = "";
		var layerQueryable = "";
		var layerAbstract = "";
		var layerName = "";
		var layerSrs = "";
		var layerDataUrl = "";
		var layerMetadataUrl = "";
		var layerFormat = "";
		var layerFormat_current = "";
		var layerStyle_current = "";
		var layerStyle_name = "";
		var layerStyle_title = "";
		var layerStyle_legendURL = "";
		var layerStyle_legendURL_width = "";
		var layerStyle_legendURL_height = "";
		var layerStyle_legendURL_format = "";
		// Missing: Extension

		//ViewContext
		wmc += "&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;\n";
		// wmc += "&lt;!ENTITY amp    \"&amp;#38;#38;\"&gt;\n";
		wmc += "&lt;ViewContext version=\"" + version + "\" ";
		wmc += "id = \"" + id + "\" ";
		wmc += "xmlns=\"http://www.opengis.net/context\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:SchemaLocation=\"http://schemas.opengis.net/context/1.0.0/context.xsd\" ";
		wmc += "&gt;\n";

		//General
		wmc += "\t&lt;General&gt;\n";

		if (generalWidth && generalHeight){
			wmc += "\t\t&lt;Window width=\"" + generalWidth + "\" height=\"" + generalHeight + "\" /&gt;\n";
		}

		wmc += "\t\t&lt;BoundingBox SRS=\"" + generalBboxSrs + "\" minx =\"" + generalBboxMinx + "\" ";
		wmc += "miny =\"" + generalBboxMiny + "\" maxx =\"" + generalBboxMaxx + "\" maxy =\"" + generalBboxMaxy + "\" /&gt;\n";
		wmc += "\t\t&lt;Name&gt;" + generalName + "&lt;/Name&gt;\n";
		wmc += "\t\t&lt;Title&gt;" + generalTitle + "&lt;/Title&gt;\n";

		if (generalKeywords){
			wmc += "\t\t&lt;KeywordList&gt;\n";
			wmc += "\t\t\t&lt;Keyword&gt;" + generalKeywords + "&lt;/Keyword&gt;\n";
			wmc += "\t\t&lt;KeywordList&gt;\n";
		}
		if (generalAbstract){
			wmc += "\t\t&lt;Abstract&gt;" + generalAbstract + "&lt;/Abstract&gt;\n";
		}

		if (generalLogoUrlWidth && generalLogoUrlHeight && generalLogoUrlFormat && generalLogoUrl){
			wmc += "\t\t&lt;LogoURL width = \"" + generalLogoUrlWidth + "\" ";
			wmc += "height = \"" + generalLogoUrlHeight + "\" ";
			wmc += "format = \"" + generalLogoUrlFormat + "\"&gt;\n";
			wmc += "\t\t\t&lt;OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type = \"simple\" xlink:href=\"" + generalLogoUrl + "\" /&gt;\n";
			wmc += "\t\t&lt;/LogoUrl&gt;\n";
		}

		if (generalDescriptionUrl){
			wmc += "\t\t&lt;DescriptionURL&gt;\n";
			wmc += "\t\t\t&lt;OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type = \"simple\" xlink:href=\"" + generalDescriptionUrl + "\" /&gt;\n";
			wmc += "\t\t&lt;/DescriptionUrl&gt;\n";
		}

		if (generalContactElectronicMailAddress || generalContactOrganization ||
			generalContactPerson || generalContactPosition || generalContactAddressType ||
			generalContactAddress || generalContactCity || generalContactStateOrProvince ||
			generalContactPostCode || generalContactCountry || generalContactVoiceTelephone ||
			generalContactFacsimileTelephone || generalContactElectronicMailAddress){
			wmc += "\t\t&lt;ContactInformation&gt;\n";

			if (generalContactPerson || generalContactOrganization){
				wmc += "\t\t\t&lt;ContactPersonPrimary&gt;\n";
				if (generalContactPerson){
					wmc += "\t\t\t\t&lt;ContactPerson&gt;" + generalContactPerson + "&lt;/ContactPerson&gt;\n";
				}
				if (generalContactOrganization){
					wmc += "\t\t\t\t&lt;ContactOrganization&gt;" + generalContactOrganization + "&lt;/ContactOrganization&gt;\n";
				}
				wmc += "\t\t\t&lt;/ContactPersonPrimary&gt;\n";
			}

			if (generalContactPosition){
				wmc += "\t\t\t&lt;ContactPosition&gt;" + generalContactPosition + "&lt;/ContactPosition&gt;\n";
			}

			if (generalContactAddressType || generalContactAddress || generalContactCity || generalContactStateOrProvince ||
				generalContactPostCode || generalContactCountry){
				wmc += "\t\t\t&lt;ContactAddress&gt;\n";

				if (generalContactAddressType){
					wmc += "\t\t\t\t&lt;AddressType&gt;" + generalContactAddressType + "&lt;/AddressType&gt;\n";
				}
				if (generalContactAddress){
					wmc += "\t\t\t\t&lt;Address&gt;" + generalContactAddress + "&lt;/Address&gt;\n";
				}
				if (generalContactCity){
					wmc += "\t\t\t\t&lt;City&gt;" + generalContactCity + "&lt;/City&gt;\n";
				}
				if (generalContactStateOrProvince){
					wmc += "\t\t\t\t&lt;StateOrProvince&gt;" + generalContactStateOrProvince + "&lt;/StateOrProvince&gt;\n";
				}
				if (generalContactPostCode){
					wmc += "\t\t\t\t&lt;PostCode&gt;" + generalContactPostCode + "&lt;/PostCode&gt;\n";
				}
				if (generalContactCountry){
					wmc += "\t\t\t\t&lt;Country&gt;" + generalContactCountry + "&lt;/Country&gt;\n";
				}
				wmc += "\t\t\t&lt;/ContactAddress&gt;\n";
			}
			wmc += "\t\t\t&lt;ContactVoiceTelephone&gt;" + generalContactVoiceTelephone + "&lt;/ContactVoiceTelephone&gt;\n";
			wmc += "\t\t\t&lt;ContactFacsimileTelephone&gt;" + generalContactFacsimileTelephone + "&lt;/ContactFacsimileTelephone&gt;\n";
			wmc += "\t\t\t&lt;ContactElectronicMailAddress&gt;" + generalContactElectronicMailAddress + "&lt;/ContactElectronicMailAddress&gt;\n";
			wmc += "\t\t&lt;/ContactInformation&gt;\n";
		}

		wmc += "\t&lt;/General&gt;\n";

		//layerList
		wmc += "\t&lt;LayerList&gt;\n";
		for (var i = 0; i < mb_mapObj[ind].wms.length; i++){
			// BEGIN: new code
      if( mb_mapObj[ind].wms[i].gui_wms_visible != '1' ) {
        continue;
      }

			// in the end, this array contains all epsg´s of this wms 
			var wms_epsg = new Array();

			// the gui_wms_epsg is always the first epsg in this layer´s epsg list
			wms_epsg[0] = mb_mapObj[ind].wms[i].gui_wms_epsg;

			// the epsg of the mapObj has to be in this list
			if (mb_mapObj[ind].wms[i].gui_wms_epsg != mb_mapObj[ind].epsg){
				wms_epsg[1] = mb_mapObj[ind].epsg;
			}
				  
			// add all gui_epsg if not already in the array
			for (q = 0; q < mb_mapObj[ind].wms[i].gui_epsg.length ; q ++){
				var isInArray = false;
				for (r = 0 ; r < wms_epsg.length ; r ++){
					if (wms_epsg[r] == mb_mapObj[ind].wms[i].gui_epsg[q]){
						isInArray = true;
					}
				}
				if (isInArray == false){
					wms_epsg[wms_epsg.length] = mb_mapObj[ind].wms[i].gui_epsg[q];
				}
			}
		  
			// END: new code

			for (var j = 0; j < mb_mapObj[ind].wms[i].objLayer.length; j++){
				if (mb_mapObj[ind].wms[i].objLayer[j].layer_parent != ''){
					if (mb_mapObj[ind].wms[i].objLayer[j].gui_layer_visible == '1'){
						layerHidden = 0;
					}
					else{
						layerHidden = 1;
					}
					layerQueryable = mb_mapObj[ind].wms[i].objLayer[j].layer_queryable;
					layerName = mb_mapObj[ind].wms[i].objLayer[j].layer_name;
					layerTitle = mb_mapObj[ind].wms[i].objLayer[j].layer_title;
					layerAbstract = mb_mapObj[ind].wms[i].wms_abstract; //To Do: insert actual abstract
					layerDataUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_dataurl_href; 
					//layerDataUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_dataurl_href; 
					layerMetadataUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_metadataurl; 
					//layerMetadataUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_metadataurl; 
					wmsVersion = mb_mapObj[ind].wms[i].wms_version;
					wmsTitle = mb_mapObj[ind].wms[i].wms_title;
					wmsOnlineResource = mb_mapObj[ind].wms[i].wms_getmap;
					//wmsOnlineResource = mb_mapObj[ind].wms[i].wms_getmap;

					wmc += "\t\t&lt;Layer queryable = \"" + layerQueryable + "\" hidden = \"" + layerHidden + "\"&gt;\n";
					wmc += "\t\t\t&lt;Server service = \"OGC:WMS\" version = \"" + wmsVersion + "\" title = \"" + wmsTitle + "\"&gt;\n";
					wmc += "\t\t\t\t&lt;OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\"" + wmsOnlineResource + "\" /&gt;\n";
					wmc += "\t\t\t&lt;/Server&gt;\n";

					wmc += "\t\t\t&lt;Name&gt;" + layerName + "&lt;/Name&gt;\n";
					wmc += "\t\t\t&lt;Title&gt;" + layerTitle + "&lt;/Title&gt;\n";

					if (layerAbstract){
						wmc += "\t\t\t&lt;Abstract&gt;" + layerAbstract + "&lt;/Abstract&gt;\n";
					}

					wmc += "\t\t\t&lt;SRS&gt;";
					for (var k = 0; k < wms_epsg.length ; k ++){
						wmc +=  wms_epsg[k];
						if (k < wms_epsg.length-1){
							wmc += " ";
						}
					}
					wmc += "&lt;/SRS&gt;\n";
	  
					if (layerDataUrl){
						wmc += "\t\t\t&lt;DataURL&gt;\n";
						wmc += "\t\t\t\t&lt;OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type = \"simple\" xlink:href=\"" + layerDataUrl + "\" /&gt;\n";
						wmc += "\t\t\t&lt;/DataURL&gt;\n";
					}

					if (layerMetadataUrl){
						wmc += "\t\t\t&lt;MetadataURL&gt;\n";
						wmc += "\t\t\t\t&lt;OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type = \"simple\" xlink:href=\"" + layerMetadataUrl + "\" /&gt;\n";
						wmc += "\t\t\t&lt;/MetadataURL&gt;\n";
					}

					//layerFormat
					wmc += "\t\t\t&lt;FormatList&gt;\n";

					for (var k = 0; k < 1; k++){

						if (k == 0){
							layerFormat_current = 1; // To do: insert proper data
						}
						else{
							layerFormat_current = 0; // To do: insert proper data
						}
						layerFormat = mb_mapObj[ind].wms[i].gui_wms_mapformat;

						wmc += "\t\t\t\t&lt;Format ";
						if (layerFormat_current == 1){
							wmc += "current = \"1\"";
						}
						wmc += "&gt;" + layerFormat + "&lt;/Format&gt;\n";
					}

					wmc += "\t\t\t&lt;/FormatList&gt;\n";

					// LayerStyle
					wmc += "\t\t\t&lt;StyleList&gt;\n";

					for (var k = 0; k < 1; k++){

						if (k == 0){
							layerStyle_current = 1; // To do: insert proper data
						}
						else{
							layerStyle_current = 0; // To do: insert proper data
						}
						wmc += "\t\t\t\t&lt;Style";

						layerStyleSLD = "";

						if (layerStyleSLD){
							layerStyleSLDUrl = ""; // To Do: Insert Proper Data
							wmc += "\t\t\t\t\t\t&lt;OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\"" + layerStyleSLDUrl + "\" /&gt;\n";
						}
						else{
							if (mb_mapObj[ind].wms[i].objLayer[j].layer_style[k]){
								layerStyle_name = mb_mapObj[ind].wms[i].objLayer[j].layer_style[k]['name'];
								layerStyle_title = mb_mapObj[ind].wms[i].objLayer[j].layer_style[k]['title'];
								layerStyle_legendUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_style[k]["legendurl"];
							}
							else{
								layerStyle_name = "default";
								layerStyle_title = "default";
								layerStyle_legendUrl = "";
							}

							layerStyle_legendUrl_width = ""; // To Do: add proper data
							layerStyle_legendUrl_height = ""; // To Do: add proper data
							layerStyle_legendUrl_format = ""; // To Do: add proper data

							//layerStyle_legendUrl = stripAmpersand(mb_mapObj[ind].wms[i].wms_getlegendurl);

							if (layerStyle_current == 1){
								wmc += " current = \"1\"";
							}
							wmc += "&gt;\n\t\t\t\t\t&lt;Name&gt;" + layerStyle_name + "&lt;/Name&gt;\n";
							wmc += "\t\t\t\t\t&lt;Title&gt;" + layerStyle_title + "&lt;/Title&gt;\n";
							wmc += "\t\t\t\t\t&lt;LegendUrl ";
							wmc += "width = \"" + layerStyle_legendUrl_width + "\" ";
							wmc += "height = \"" + layerStyle_legendUrl_height + "\" ";
							wmc += "format = \"" + layerStyle_legendUrl_format + "\"&gt;\n";
							wmc += "\t\t\t\t\t\t&lt;OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\"" + layerStyle_legendUrl + "\" /&gt;\n";
							wmc += "\t\t\t\t\t&lt;/LegendUrl&gt;\n";
						}

						wmc += "\t\t\t\t&lt;/Style&gt;\n";
						// Missing: Describe Style via SLD (see: http://center.ccgis/phprojekt/addons/ewiki/index.php?id=links/SLD)
					}
					wmc += "\t\t\t&lt;/StyleList&gt;\n";
					wmc += "\t\t&lt;/Layer&gt;\n";
				}
			}
		}
		wmc += "\t&lt;/LayerList&gt;\n";

		//MOD Plazotta 20061005 added extension part
		var openedTreeGroups = Array();
		if( window.treeview && window.treeview.base && window.treeview.base.getOpenedGroups ) {
      openedTreeGroups = treeview.base.getOpenedGroups();
    }
		if( window.mapElements && window.mapElements.length > 0 || openedTreeGroups.length > 0 ) {
      wmc += "\t&lt;Extension&gt;\n";
      if( window.mapElements && window.mapElements.length > 0 ) {
        for(var k=0; k<mapElements.length ;k++) {
          wmc += "\t\t&lt;MapSymbol symbol_src=\""+mapElements[k][2]+"\" symbol_x=\""+mapElements[k][0]+"\" symbol_y=\""+mapElements[k][1]+"\" symbol_width=\""+mapElements[k][3]+"\" symbol_height=\""+mapElements[k][4]+"\" /&gt;\n";
        }
      }
      if( openedTreeGroups.length > 0 ) {
        for(var k=0; k<openedTreeGroups.length ;k++) {
          wmc += "\t\t&lt;TreeGroup group_path=\""+openedTreeGroups[k]+"\" /&gt;\n";
        }
      }
      wmc += "\t&lt;/Extension&gt;\n";
    }

		wmc += "&lt;/ViewContext&gt;\n";

		//document.sendData.target = "_blank";
		document.sendData.action = "../javascripts/mod_insertWmcIntoDb.php";
		document.sendData.data.value = user + "____" + generalTitle + "____" + wmc + "____" + id + "____" + title_alert;
		document.sendData.submit();
	}

  if( setbookmark ) {
    var bookmarkurl = parent.location.href.substr(0,parent.location.href.indexOf('index.php')) + 'autologin.php?gui_id=eHYD&wmc_id='+id;
  	if( document.all ) {
  		window.external.AddFavorite(bookmarkurl,generalTitle);
  	}
  	else {
      alert('Aus Browserspezifischen Gruenden ist es nur moeglich den Bookmark standardmaessig in der Sidebar zu laden. '+
            'Um dies zu verhindern muessen Sie im Register "Lesezeichen" des Browsers den angelegten Bookmark rechtsklicken '+
            'und innerhalb der Eigenschaften ganz unten deaktivieren dass der Bookmark in der Sidebar geladen wird.');
      window.sidebar.addPanel(generalTitle,bookmarkurl,"");
    }
  	if(false) {
  		var linkButton = parent.document.getElementById('savewmc_link');
  		linkButton.firstChild.alt = generalTitle;
  		linkButton.title = generalTitle;
  		linkButton.href = bookmarkurl;
 			alert('Es wurde ein gueltiger Bookmark generiert und in der WMC-Liste abgespeichert,\nwenn sie den Link in die Favoriten aufnehmen wollen,\ndann verwenden Sie die rechte Maustaste und waehlen "Zu Favoriten hinzufuegen".');
  	}
  }

	return id;
}
function mod_savewmc_init(obj){
	//document.getElementById("savewmc").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_selArea_elName = "selArea1";
var mod_selArea_frameName = "";
var mod_selArea_target = "mapframe1";

var mod_selArea_img_on = new Image(); mod_selArea_img_on.src = "../lfrz/img/tools/zoomin_on.gif";
var mod_selArea_img_off = new Image(); mod_selArea_img_off.src = "../lfrz/img/tools/zoomin_off.gif";
var mod_selArea_img_over = new Image(); mod_selArea_img_over.src = "../lfrz/img/tools/zoomin_over.gif";

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;
  //MOD Plazotta 20070216 set onmouseover to null
	el.onmouseover = null;
}
function mod_selArea_init(e){
	var el = window.frames[mod_selAreaZoomOut_target].document;
	el.onmousemove = mod_box_run;
	mb_isBF = mod_selArea_target;
	mb_zF = mod_selArea_target;
}
function mod_selArea_get(e){
	mb_isBF = mod_selArea_target;
	mb_zF = mod_selArea_target;
	if (window.minZoomFactor && mb_getScale(mb_zF) <= window.minZoomFactor) {
		mod_box_stop(e);
		alert('Sie m\374ssen einen Ma\337stab >= '+window.minZoomFactor+' eingeben.');
	} else
		mod_selArea_setValidClipping(mod_box_stop(e));
}
function mod_selArea_setValidClipping(coords){
  //MOD Plazotta 20061218 added zoomsperre logik
	var ind = window.getMapObjIndexByName('mapframe1');
	var width = parseInt(window.mb_mapObj[ind].width);
	var height = parseInt(window.mb_mapObj[ind].height);

	if(coords.length > 2){
    //MOD Plazotta 20061010 added imagezoomto function
    if(window.simImageZoomTo) simImageZoomTo(mb_start_x,mb_start_y,mb_end_x-mb_start_x,mb_end_y-mb_start_y);
		mb_calculateExtent(mb_zF,coords[0],coords[1],coords[2],coords[3]);
		mb_calculateZoomLimit('min',mb_zF);
		setMapRequest(mb_zF);
	}
	else{
    var useZoomFactor = 2;
    if(window.minZoomFactor) {
      if( mb_getScale(mb_zF)/useZoomFactor < window.minZoomFactor ) {
        useZoomFactor = mb_getScale(mb_zF)/window.minZoomFactor;
      }
    }
    //MOD Plazotta 20061010 added imagezoomto function
    // if(window.simImageZoomTo) simImageZoomTo(mb_start_x,mb_start_y);
    if(window.simImageZoomTo) simImageZoomTo(mb_start_x-(width/useZoomFactor)/2,mb_start_y-(height/useZoomFactor)/2,width/useZoomFactor,height/useZoomFactor);
		zoom(mb_zF,true,useZoomFactor,coords[0], coords[1]);
	}
}
var mod_selAreaZoomOut_elName = "selAreaZoomOut";
var mod_selAreaZoomOut_frameName = "";
var mod_selAreaZoomOut_target = "mapframe1";

var mod_selAreaZoomOut_img_on = new Image(); mod_selAreaZoomOut_img_on.src = "../lfrz/img/tools/zoomout_on.gif";
var mod_selAreaZoomOut_img_off = new Image(); mod_selAreaZoomOut_img_off.src = "../lfrz/img/tools/zoomout_off.gif";
var mod_selAreaZoomOut_img_over = new Image(); mod_selAreaZoomOut_img_over.src = "../lfrz/img/tools/zoomout_over.gif";

function init_selAreaZoomOut(ind){
	mb_button[ind] = document.getElementById(mod_selAreaZoomOut_elName);
	mb_button[ind].img_over = mod_selAreaZoomOut_img_over.src;
	mb_button[ind].img_on = mod_selAreaZoomOut_img_on.src;
	mb_button[ind].img_off = mod_selAreaZoomOut_img_off.src;
	mb_button[ind].status = 0;
	mb_button[ind].elName = mod_selAreaZoomOut_elName;
	mb_button[ind].fName = mod_selAreaZoomOut_frameName;
	mb_button[ind].go = new Function ("mod_selAreaZoomOut_click()");
	mb_button[ind].stop = new Function ("mod_selAreaZoomOut_disable()");
}
function mod_selAreaZoomOut_click(){
	var el = window.frames[mod_selAreaZoomOut_target].document;
	el.onmouseover = mod_selAreaZoomOut_init;
	el.onmousedown = mod_box_start;
	el.onmouseup = mod_selAreaZoomOut_get;
	el.onmousemove = mod_box_run;
}
function mod_selAreaZoomOut_disable(){
	var el = window.frames[mod_selAreaZoomOut_target].document; 
	el.onmousedown = null;
	el.onmouseup = null;
	el.onmousemove = null;
	el.onmouseover = null;
}
function mod_selAreaZoomOut_init(e){
	var el = window.frames[mod_selAreaZoomOut_target].document;
	el.onmousemove = mod_box_run;
	mb_isBF = mod_selAreaZoomOut_target;
	mb_zF = mod_selAreaZoomOut_target;
}
function mod_selAreaZoomOut_get(e){
	mod_selAreaZoomOut_setValidClipping(mod_box_stop(e));
	mb_isBF = mod_selAreaZoomOut_target;
	mb_zF = mod_selAreaZoomOut_target;
}
function mod_selAreaZoomOut_setValidClipping(coords){
	var ind = window.getMapObjIndexByName('mapframe1');
	var width = parseInt(window.mb_mapObj[ind].width);
	var height = parseInt(window.mb_mapObj[ind].height);

	if(coords.length > 2){
    var oldCoords = window.mb_mapObj[ind].extent.split(",");
    coords = mod_calculateZoomOutExtent(coords);
		mb_calculateExtent(mb_zF,coords[0],coords[1],coords[2],coords[3]);
    if(window.simImageZoomTo) simImageZoomTo(-mb_start_x*(width/(mb_end_x-mb_start_x)),-mb_start_y*(height/(mb_end_y-mb_start_y)),width*width/(mb_end_x-mb_start_x),height*height/(mb_end_y-mb_start_y));
		if( !mb_calculateZoomLimit('max',mb_zF,oldCoords) ) {
  		setMapRequest(mb_zF);
    }
	}
	else{
    var useZoomFactor = 2;
    if(window.maxZoomFactor) { // maximum logik muss durch maximum logik ersetzt werden
      if( mb_getScale(mb_zF)*useZoomFactor > window.maxZoomFactor ) {
        useZoomFactor = window.maxZoomFactor/mb_getScale(mb_zF);
      }
    }
    // if(window.simImageZoomTo) simImageZoomTo(mb_start_x-width,mb_start_y-height,width*useZoomFactor,height*useZoomFactor);
    if(window.simImageZoomTo) simImageZoomTo(mb_start_x-(width*useZoomFactor)/2,mb_start_y-(height*useZoomFactor)/2,width*useZoomFactor,height*useZoomFactor);
		zoom(mb_zF,true,1/useZoomFactor,coords[0], coords[1]);
	}
}
function mod_calculateZoomOutExtent(coords){
	var ind = window.getMapObjIndexByName('mapframe1');
	var width = parseInt(window.mb_mapObj[ind].width);
	var height = parseInt(window.mb_mapObj[ind].height);
	var arrayBBox = window.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 xFactor = (maxX-minX) / (coords[2]-coords[0]);
  var yFactor = (maxY-minY) / (coords[3]-coords[1]);

  coords[0] = mod_calcNewCoord(minX,coords[0],xFactor);
  coords[1] = mod_calcNewCoord(minY,coords[1],yFactor);
  coords[2] = mod_calcNewCoord(maxX,coords[2],xFactor);
  coords[3] = mod_calcNewCoord(maxY,coords[3],yFactor);

  return coords;
}
function mod_calcNewCoord(startVal,coord,factor){
  return startVal - (coord-startVal)*factor;
}
function mb_calculateZoomLimit(type,usemapframe,oldCoords) {
	var ind = window.getMapObjIndexByName('mapframe1');
	var arrayBBox = window.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 width = maxX - minX;
  var height = maxY - minY;

  if( type == 'min' && window.minZoomFactor ) {
    if( mb_getScale('mapframe1') < window.minZoomFactor ) {
      var correctionFactor = (window.minZoomFactor-mb_getScale('mapframe1')) / mb_getScale('mapframe1');
      minX -= width*correctionFactor/2;
      maxX += width*correctionFactor/2;
      minY -= height*correctionFactor/2;
      maxY += height*correctionFactor/2;
  		mb_calculateExtent(usemapframe,minX,minY,maxX,maxY);
    }
  }
  if( type == 'max' && window.maxZoomFactor ) {
    if( mb_getScale('mapframe1') > window.maxZoomFactor ) {
      var correctionFactor = window.maxZoomFactor / mb_getScale('mapframe1');
      var midX = (maxX+minX)/2;
      var midY = (maxY+minY)/2;
  		zoom(mb_zF,true,1/correctionFactor,(parseFloat(oldCoords[2])+parseFloat(oldCoords[0]))/2,(parseFloat(oldCoords[3])+parseFloat(oldCoords[1]))/2);
    }
  }
}


// function to digitize zoomout/in effect
var useMapObj = 0;
var simZoomTime = 1500; // duration of zoomeffect
var simFrames = 30; // number of frames shown during zoomeffect
var simStepTime = simZoomTime / simFrames;
var simFactor;
var simZoomXOffset;
var simZoomYOffset;
var simZoomOffsetFactor;
var simTimeOut = null;
var simPixelGIF;
var simZoomIMG;
var simTimeoutActive=false;
var eLeft;
var eRight;
var eTop;
var eBottom;
var iWidth;
var iHeight;

function mod_simZoomIMGCreate() {
  var img = window.mapframe1.document.getElementsByName('mapimage')[useMapObj];
  var img_obj = img.cloneNode(true);
  window.mapframe1.document.body.appendChild(img_obj);
  return img_obj;
}

function simImageZoomTo(x,y,width,height,cTime) {
  if( navigator.appName == 'Netscape' || navigator.appName == 'Opera') {
    return;
  }
  if( window.mod_disableMapInterface ) {
    mod_disableMapInterface();
  }
  simTimeOut = null;

  if( width < 0 ) {
    width = - width;
    x -= width;
  }

  if( height < 0 ) {
    height = - height;
    y -= height;
  }

  if( !cTime ) {
    // INIT-FUNCTIONS start
  	var ind = window.getMapObjIndexByName('mapframe1');
  	iWidth = parseInt(window.mb_mapObj[ind].width);
  	iHeight = parseInt(window.mb_mapObj[ind].height);

  	if( width == null ) {
      width = iWidth / 2;
      height = iHeight / 2;
      x -= width/2;
      y -= width/2;
    }
  	var arrayBBox = window.mb_mapObj[ind].extent.split(",");
  	eLeft = parseFloat(arrayBBox[0]);
  	eTop = parseFloat(arrayBBox[1]);
  	eRight = parseFloat(arrayBBox[2]);
  	eBottom = parseFloat(arrayBBox[3]);
    simZoomIMG = mod_simZoomIMGCreate();
    simZoomIMG.style.position = 'absolute';
    // INIT-FUNCTIONS end

    /* check zoom factor and modify zoom value if necessary */
    if( (width / iWidth * (eRight-eLeft) < 0) && false ) {
      var calc_ZoomLimit = window.mb_getScale('mapframe1') * width / (eRight-eLeft);
      var oldX = x;
      var oldY = y;
      x = Math.round(x - ((calc_ZoomLimit - width)/2));
      y = Math.round(x/oldX * y);
      width = calc_ZoomLimit;
      height = height - (y-oldY)*2;
    }

    if( width > height * iWidth/iHeight ) {
      var tmpHeight = height;
      height = iHeight / iWidth * width;
      y -= (height-tmpHeight)/2;
    }
    else {
      var tmpWidth = width;
      width = iWidth / iHeight * height;
      x -= (width-tmpWidth)/2;
    }

    simZoomXOffset = x;
    simZoomYOffset = y;
    simFactor = Math.pow(iWidth/width,1/simFrames);
    simZoomOffsetFactor = Math.pow(iWidth/width+1,1/simFrames);

    simZoomIMG.style.pixelLeft = 0;
    simZoomIMG.style.pixelTop = 0;
    simTimeOut = setTimeout('simImageZoomTo('+x+','+y+','+width+','+height+','+simStepTime+')',simStepTime);
  }
  else if( cTime <= simZoomTime && (window.mapframe1.document.getElementsByName('mapimage')[useMapObj].readyState != 'complete') ) {
    simZoomIMG.width *= simFactor;
    simZoomIMG.height *= simFactor;
    simZoomIMG.style.left = x - (simZoomXOffset*=simZoomOffsetFactor);
    simZoomIMG.style.top = y - (simZoomYOffset*=simZoomOffsetFactor);
    simTimeOut = setTimeout('simImageZoomTo('+x+','+y+','+width+','+height+','+(cTime+simStepTime)+')',simStepTime);
  }
  else {
    simImageReset();
  }
}

function simImageReset() {
  if( navigator.appName == 'Netscape' || !simZoomIMG ) {
    return;
  }

  if( window.mapframe1.document.getElementsByName('mapimage')[useMapObj].readyState != 'complete' ) {
    setTimeout('simImageReset()',100);
    return;
  }

  if( simTimeOut ) {
    clearTimeout( simTimeOut );
    simTimeOut = null;
  }

  window.mapframe1.document.body.removeChild( simZoomIMG );
  simZoomIMG = null;

  if( window.mod_enableMapInterface ) {
    mod_enableMapInterface();
  }  
}
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 = "../lfrz/img/tools/verschieben_on.gif";
var mod_pan_img_off = new Image(); mod_pan_img_off.src = "../lfrz/img/tools/verschieben_off.gif";
var mod_pan_img_over = new Image(); mod_pan_img_over.src = "../lfrz/img/tools/verschieben_over.gif";

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()");
}
function mod_pan_click(){   
	var el = window.frames[mod_pan_target].document;
	el.onmouseover = mod_pan_click;
	el.onmousedown = mod_pan_start;
	el.onmouseup = mod_pan_stop;
	el.onmousemove = mod_pan_run;
}
function mod_pan_disable(){
	var el = window.frames[mod_pan_target].document;
	el.onmouseover = null;
	el.onmousedown = null;
	el.onmouseup = null;
	el.onmousemove = null;
	//MOD Plazotta 20061106 change cursor to defaultstyle
	window.frames[mod_pan_target].document.body.style.cursor = 'default';
}
function mod_pan_start(e){
	mb_getMousePos(e,mod_pan_target);
  if( window.clickButton == 2 ) return;
	mb_panActive = true;
	mb_start_x=clickX;
	mb_start_y=clickY;
	mb_end_x = clickX;
	mb_end_y = clickY; 
	return false;
}
function mod_pan_run(e){
  //MOD Plazotta 20061106 change cursor to move
	window.frames[mod_pan_target].document.body.style.cursor = 'move';
	window.frames[ 'overview' ].mod_showCoords_div_display( e );
	
	if ( typeof( genuss_onMousePartnersMove ) != "undefined" )
		genuss_onMousePartnersMove( 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){
  if( window.clickButton == 2 ) return;
	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_featureInfoDB_elName = "featureInfoDB";
var mod_featureInfoDB_frameName = "";
var mod_featureInfoDB_target = "mapframe1";

var mod_featureInfoDB_img_on = new Image(); mod_featureInfoDB_img_on.src =  "../lfrz/img/tools/infoKarte_on.gif";
var mod_featureInfoDB_img_off = new Image(); mod_featureInfoDB_img_off.src ="../lfrz/img/tools/infoKarte_off.gif";
var mod_featureInfoDB_img_over = new Image(); mod_featureInfoDB_img_over.src = "../lfrz/img/tools/infoKarte_over.gif";
var mod_featureInfoDB_img_inactive = new Image(); mod_featureInfoDB_img_inactive.src = "../lfrz/img/tools/infoKarte_inactive.gif";

var mod_featureInfoDB_hide_item = null;

function init_featureInfoDB(ind){
	mb_button[ind] = document.getElementById(mod_featureInfoDB_elName);
	mb_button[ind].img_over = mod_featureInfoDB_img_over.src;
	mb_button[ind].img_on = mod_featureInfoDB_img_on.src;
	mb_button[ind].img_off = mod_featureInfoDB_img_off.src;
	mb_button[ind].status = 0;
	mb_button[ind].elName = mod_featureInfoDB_elName;
	mb_button[ind].fName = mod_featureInfoDB_frameName;
	mb_button[ind].go = new Function ("mod_featureInfoDB_click()");
	mb_button[ind].stop = new Function ("mod_featureInfoDB_disable()");
}

function mod_featureInfoDB_setactive(active){
  var featureInfoDB_obj = document.getElementById('featureInfoDB');

  if( mod_featureInfoDB_hide_item == null ) {
    mod_featureInfoDB_hide_item = featureInfoDB_obj.cloneNode(true);
    document.body.appendChild(mod_featureInfoDB_hide_item);
    mod_featureInfoDB_hide_item.style.zIndex = 2;
    mod_featureInfoDB_hide_item.src = mod_featureInfoDB_img_inactive.src;
    document.body.appendChild(mod_featureInfoDB_hide_item);
  }

  if( active ) {
    mod_featureInfoDB_hide_item.style.display = 'none';
  }
  else {
		mod_featureInfoDB_disable();
		mod_featureInfoDB_hide_item.style.display = 'block';
  }
}

function mod_featureInfoDB_click(){   
	window.frames[mod_featureInfoDB_target].document.onclick = mod_featureInfoDB_event;
	window.frames[mod_featureInfoDB_target].document.onmouseover = mod_featureInfoDB_click;
	window.frames[mod_featureInfoDB_target].document.onmousemove = mod_featureInfoDB_run;
}
function mod_featureInfoDB_run( e ) {
	if ( typeof( genuss_onMousePartnersMove ) != "undefined" )
		genuss_onMousePartnersMove( e );  
}
function mod_featureInfoDB_disable(){
	window.frames[mod_featureInfoDB_target].document.onclick = null;
	window.frames[mod_featureInfoDB_target].document.onmouseover = null;
}
function mod_featureInfoDB_event(e){
	if(ie){
		clickX = window.frames[mod_featureInfoDB_target].event.clientX;
		clickY = window.frames[mod_featureInfoDB_target].event.clientY;
	}
	else{
		clickX = e.pageX;
		clickY = e.pageY;
	}
	setfeatureInfoDBRequest(mod_featureInfoDB_target,clickX,clickY,'../lfrz/mod_featureInfoViewFrame.php');
}

function isCurrSLDLayer(layer_name) {
  if( parent.currentSLDLayers ) {
    for( var i=0; i<parent.currentSLDLayers.length ;i++ ) {
      if( parent.currentSLDLayers[i] == layer_name ) {
        return true;
      }
    }
  }
  return false;
}

function setfeatureInfoDBRequest(fName,x,y, path){
	var ts = mb_timestamp();
	for(var i=0; i<mb_FeatureInfoPreFunctions.length; i++){
		eval(mb_FeatureInfoPreFunctions[i]);
	}
	var curScale = mb_getScale('mapframe1');

	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 calculatedLayers = Array();
        for(var j=0; j<mb_mapObj[i].wms[ii].objLayer.length ;j++) {
          if( (mb_mapObj[i].wms[ii].objLayer[j].gui_layer_visible == 1 || isCurrSLDLayer(mb_mapObj[i].wms[ii].objLayer[j].layer_name) )
             && mb_mapObj[i].wms[ii].objLayer[j].gui_layer_minscale <= curScale && 
             (mb_mapObj[i].wms[ii].objLayer[j].gui_layer_maxscale >= curScale || mb_mapObj[i].wms[ii].objLayer[j].gui_layer_maxscale == 0) ) {
            calculatedLayers.push( mb_mapObj[i].wms[ii].objLayer[j].layer_name );
			// NT: if gui is eWEP and one of the orthophoto layers or the Luftbild_Flugjahre is enabled  turn on Luftbild_Flugjahre_info layer /13072007/
			          }
        }
        // lösche elemente die nicht in querylayers vorkommen
        for(var j=calculatedLayers.length; j>=0 ;j--) {
          if( (','+mb_mapObj[i].querylayers[ii]+',').indexOf(','+calculatedLayers[j]+',') == -1 ) {
            calculatedLayers.splice(j,1);
          }
        }

				var newfeatureInfoRequest = "";
				var requestParams = "";
				var validation = false;
				newfeatureInfoRequest += mb_mapObj[i].wms[ii].wms_getfeatureinfo;
            	newfeatureInfoRequest += mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getfeatureinfo);
				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 += "X=" + x + "&";
				requestParams += "Y=" + y + "&";
				requestParams += "LAYERS="+getSLDModifiedLayerString(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 += "QUERY_LAYERS="+calculatedLayers.join(',');
				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("viewdataframe") && validation){
					newfeatureInfoRequest += requestParams;
					if(path){
						// Modified NT to pass the realWorldCoords(x,y) also /20070320/
						realCoords = makeClickPos2RealWorldPos('mapframe1', x, y);
												
						/*
						window.frames["viewdataframe"].document.body.innerHTML += '<form name="featureInfoFormHelpSend" action="'+path+'" method="POST" target="_self">' +
						'<input type="hidden" name="url" value="'+escape(newfeatureInfoRequest)+'" />' +
						'<input type="hidden" name="mb_nr" value="'+mb_nr+'" />' +
						'<input type="hidden" name="gui_id" value="eHYD" />' +
						'<input type="hidden" name="wms" value="'+mb_mapObj[i].wms[ii].wms_id+'" />' +
						'<input type="hidden" name="x" value="'+realCoords[0]+'" />' +
						'<input type="hidden" name="y" value="'+realCoords[1]+'" />' +
            						'</form>';
						window.viewdataframe.document.forms["featureInfoFormHelpSend"].submit(); */
						window.frames["viewdataframe"].location.href = path + "?url=" + escape(newfeatureInfoRequest)+"&"+mb_nr+"&gui_id=eHYD&wms_id="+mb_mapObj[i].wms[ii].wms_id+"&x="+realCoords[0]+"&y="+realCoords[1];
 					}
					cnt_fi++;
       	}
			}
		}
	}
   	if(cnt_fi == 0){alert("Please select a layer! \n Bitte wählen Sie eine Ebene zur Abfrage aus!");}
}
var mod_measure_target = 'mapframe1';var mod_measure_color1 = "white";
var mod_measure_color2 = "black";
var mod_measure_font = "Arial, Helvetica, sans-serif";
var mod_measure_fontsize = "9px";
var mod_measure_basepoint = "#8a2be2";
var mod_measure_linepoint = "#ffff00";
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 = "../lfrz/img/tools/mass_on.gif";
var mod_measure_img_off = new Image(); mod_measure_img_off.src = "../lfrz/img/tools/mass_off.gif";
var mod_measure_img_over = new Image(); mod_measure_img_over.src = "../lfrz/img/tools/mass_over.gif";

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 el = window.frames[mod_measure_target].document;
	el.onmousedown = mod_measure_start;
	el.onmousemove = mod_measure_run;
	var measureSub = "";
	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.onmousedown = null;
	el.onmousemove = null;
	writeTag(mod_measure_target,"measure_display","");
	writeTag(mod_measure_target,"measure_sub","");
}
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){
  //MOD Plazotta 20060922 added check for new measure toolbar (no polylines over measurebar)
  if( clickY <= 20 ) return;

	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;
		//MOD Plazotta 20060922 write distance data to editfields
		if( window.mod_refreshMeasureBar ) {
  		mod_refreshMeasureBar(dist,totalDist);
  		mod_calculateMeasureArea(true);
    }
	}
	else{
		mod_measure_Dist[mod_measure_Dist.length] = 0;
		mod_measure_TotalDist[mod_measure_TotalDist.length] = 0;
	}
	drawDashedLine();
}
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]);
		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>";
		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);
}
function evaluateDashes(x1,y1,x2,y2,count){
	var str_dashedLine = "";
	var s = 2;
	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){
			str_dashedLine += "<div style='font-size:1px;position:absolute;top:"+y+"px;left:"+x+"px;width:1px;height:1px;background-color:"+mod_measure_linepoint+"'></div>";
		}
	}
	/*
	str_dashedLine += "<div style='font-family:"+mod_measure_font+";font-size:"+mod_measure_fontsize+";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'>"+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'>"+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))*10)/10)+" 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;
		//MOD Plazotta 20060922 write distance data to editfields
		if( window.mod_refreshMeasureBar ) {
  		mod_refreshMeasureBar(dist,totalDist);
    }
	}
	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 ehyd_MessExpand = 10;
var ehyd_MessPoints = null;
var ehyd_LinkOpt = new Array();

var ehyd_GridExpand = 10;
var ehyd_GridPoints = null;
var ehyd_aktualHoveredGrid = null;

var eHYD_onTreeLayerNames = new Array();
eHYD_onTreeLayerNames[ 0 ] = '1-24 Stunden';
eHYD_onTreeLayerNames[ 1 ] = '6 Stunden';
eHYD_onTreeLayerNames[ 2 ] = '12 Stunden';
eHYD_onTreeLayerNames[ 3 ] = '24 Stunden';
eHYD_onTreeLayerNames[ 4 ] = '48 Stunden';
eHYD_onTreeLayerNames[ 5 ] = '72 Stunden';
eHYD_onTreeLayerNames[ 6 ] = 'Aktuelle Pegelwerte';
eHYD_onTreeLayerNames[ 7 ] = 'Aktuelle Niederschläge BETA';
eHYD_onTreeLayerNames[ 8 ] = 'Bemessungsniederschlag';

var eHYD_onTreeLayerEvents = new Array();
eHYD_onTreeLayerEvents[ 0 ] = "eHYD_on_24HoursLayer()";
eHYD_onTreeLayerEvents[ 1 ] = "eHYD_on_lastHoursLayer( 6 )";
eHYD_onTreeLayerEvents[ 2 ] = "eHYD_on_lastHoursLayer( 12 )";
eHYD_onTreeLayerEvents[ 3 ] = "eHYD_on_lastHoursLayer( 24 )";
eHYD_onTreeLayerEvents[ 4 ] = "eHYD_on_lastHoursLayer( 48 )";
eHYD_onTreeLayerEvents[ 5 ] = "eHYD_on_lastHoursLayer( 72 )";
eHYD_onTreeLayerEvents[ 6 ] = "eHYD_on_PegelAktuell()";
eHYD_onTreeLayerEvents[ 7 ] = "eHYD_on_Niedersclaege()";
eHYD_onTreeLayerEvents[ 8 ] = "eHYD_on_BMNS()";

var ehydLinksDisplayed = false;
var ehydLinksDisplayedSet = false;
var actualEHYDMenu = "";

var ehydSelectedANSSum = "";
var ehydSelectedANSNumber = 1;

//HomePageSelector--------------------------------------------

mb_registerSubFunctions( 'eHYD_onTreeGroupEventsAfter()' );

function eHYD_onTreeGroupEventsAfter() {
	var obj = document.getElementById( 'messstelleHomePageSelector' );
	if ( ehydLinksDisplayed == true )
		obj.style.display = 'block';
	else
		obj.style.display = 'none';
	ehydLinksDisplayedSet = false;
}

function eHYD_linksSetDisplayed() {
	ehydLinksDisplayed = true;
}

function eHYD_onTreeGroupEventsBefore() {
	if ( ehydLinksDisplayedSet == false ) {
		actualEHYDMenu = "";
		ehydLinksDisplayed = false;
		ehydLinksDisplayedSet = true;
		deleteMapElements();
	}
}

function eHYD_linkLoader() {
	try {
		var messstelleHomePageSelectorObj = document.getElementById( 'ehydLinks' );
		messstelleHomePageSelectorObj.appendChild( ehyd_linkOpt0 );
		messstelleHomePageSelectorObj.appendChild( ehyd_linkOptGroup1 );
		messstelleHomePageSelectorObj.appendChild( ehyd_linkOptGroup2 );
	} catch ( e ) {
		setTimeout( "eHYD_linkLoader()", 1000 );
	}
}

function ehyd_openLinkInNewWindow( link ) {
	if ( link != "" ) {
		var h = 700;
		var w = 900;
		var t = (screen.height - h) / 2;
		var l = (screen.width - w) / 2;
		hydrologicallinks_win = window.open( link, "hydrologicallinks_win", "resizable=yes,scrollbars=yes,top=" + t + ",left=" + l + ",height=" + h + ",width=" + w );
		hydrologicallinks_win.focus();
	}
}

function ehyd_loadLinksFromDBBack( Links, param ) {
	eval( 'var messLinks = ' + Links );
	
	ehyd_linkOpt0 = document.createElement( 'option' );
	ehyd_linkOpt0.style.fontWeight = "bold";
	ehyd_linkOpt0.style.fontStyle = "italic";
	ehyd_linkOpt0.value = "";
	ehyd_linkOpt0.appendChild( document.createTextNode( 'Hydrografische Dienste' ) );
	ehyd_linkOptGroup1 = document.createElement( "optgroup" );
	ehyd_linkOptGroup1.label = 'Bundesländer...';
	ehyd_linkOptGroup2 = document.createElement( "optgroup" );
	ehyd_linkOptGroup2.label = 'Weitere Adressen...';
	
	for( var i in messLinks ) {
		var op = document.createElement( 'option' );
		op.value = messLinks[ i ].page;
		op.appendChild( document.createTextNode( messLinks[ i ].name ) );
		if ( messLinks[ i ].land == "." )
			ehyd_linkOptGroup1.appendChild( op );
		else
			ehyd_linkOptGroup2.appendChild( op );
	}
		
	eHYD_linkLoader();
}

//Niederschlaege----------------------------------------------

function eHYD_on_Niedersclaege() {
	eHYD_linksSetDisplayed();

	var obj = document.getElementById( 'hotlink' );
	obj.title = "Messstellenwerte anzeigen und downloaden";
}

function eHYD_updateVSPparam( myparam, myvalue ) {
	var wasupdate = false;
	var myvsp = "'" + myparam + "=" + myvalue + "'";

	for ( i = 0; i < mb_vendorSpecific.length; i++ ) {
		if ( mb_vendorSpecific[ i ].match( myparam + "=" ) ) {
			mb_vendorSpecific[ i ] = myvsp;
			wasupdate = true;
			break;
		}
	}

	if ( ! wasupdate ) {
		mb_vendorSpecific.push( myvsp );
	}
}

function eHYD_on_24HoursLayer() {
	actualEHYDMenu = "ANS";

	if ( ! treeview.window.val_hours )
		treeview.window.val_hours = 1;

	eHYD_updateVSPparam( "hours", "gc" + treeview.window.val_hours );
	eHYD_updateVSPparam( "titlenum", treeview.window.val_hours );
	eHYD_updateVSPparam( "titlesum", "B" );
	eHYD_linksSetDisplayed();
	
	ehydSelectedANSSum = 0;
	ehydSelectedANSNumber = treeview.window.val_hours;
	
	return;
}

function eHYD_on_lastHoursLayer( num ) {
	eHYD_updateVSPparam( "hours", "gcs" + num );
	eHYD_updateVSPparam( "titlenum", num );
	eHYD_updateVSPparam( "titlesum", "S" );

	if ( parent.document.getElementById( 'redraw_mapframe' ).checked == false ) {
		document.getElementById( 'redraw_mapframe' ).checked = true;
		mod_changetreecontrol( document.getElementById( 'redraw_mapframe' ) );
	}

	eHYD_linksSetDisplayed();
	eHYD_getAjaxRequest( 'getANSMessstellen', 'S=1&NUM=' + num );

	ehydSelectedANSSum = 1;
	ehydSelectedANSNumber = num;
	
	return;
}

mb_registerSubFunctions( 'eHYD_onAfterSliderChanged()' );

function eHYD_onAfterSliderChanged() {
	if ( actualEHYDMenu != "ANS" )
		return;

	eHYD_getAjaxRequest( 'getANSMessstellen', 'S=0&NUM=' + treeview.window.val_hours );
}

function eHYD_getANSMessstellenFromDBBack( points, param ) {
	eval( 'ehyd_MessPoints = ' + points );
	ehyd_TriggerRecalculateMessstellenFixes();
}

function ehyd_onMouseANSMove( event ) {
	try {

		var lId = treeview.wms_layernames[ 'aktuelle_niedersclaege' ];
		if ( treeview.wms_layeractive[ lId ] == false || treeview.wms_layeractive[ lId ] == 0 )
			return;

		if ( ie ) {
			var x = window.frames[ "mapframe1" ].event.clientX;
			var y = window.frames[ "mapframe1" ].event.clientY;
		} else {
			var x = event.pageX;
			var y = event.pageY;
		}

		var s = null;

		for ( var num in ehyd_MessPoints ) {
			if ( ehyd_MessPoints[ num ].mapX + ehyd_MessExpand >= x &&
			     ehyd_MessPoints[ num ].mapX - ehyd_MessExpand <= x &&
			     ehyd_MessPoints[ num ].mapY + ehyd_MessExpand >= y &&
			     ehyd_MessPoints[ num ].mapY - ehyd_MessExpand <= y ) {
				if ( s == null )
					s = '<table cellpadding="1" cellspacing="0" border="0">';
				if ( ehyd_MessPoints[ num ].land != "" ) {
					s += '<tr>' +
					       '<td style="font-family: verdana; font-size: 8pt;">' + ehyd_MessPoints[ num ].messstelle + '</td>' +
					     '</tr>';
				} else {
					s += '<tr>' +
					       '<td style="font-family: verdana; font-size: 8pt;">' + ehyd_MessPoints[ num ].messstelle + ': </td>' +
					       '<td style="font-family: verdana; font-size: 8pt; background-color: #B4D5F0" align="right"><b>' + ehyd_MessPoints[ num ].wert + ' ' + ( isNaN( ehyd_MessPoints[ num ].wert ) ? "" : ehyd_MessPoints[ num ].einheit ) + '</b></td>' +
					       '<td style="font-family: verdana; font-size: 8pt;" align="center">&nbsp;(' + ehyd_MessPoints[ num ].zp + ')</td>' +
					     '</tr>';
				}
			}
		}
		if ( s != null )
			s += '</table>';

		if ( s != null ) {
			window.frames[ "mapframe1" ].document.body.style.cursor = 'pointer';
			toolTipObj.innerHTML     = s;
			toolTipObj.style.display = "block";
			var l = ( x + 10 ) + "px";
			var t = ( y - 15 ) + "px";
			if ( x > mb_mapObj[ 0 ].width / 2 )
				l = ( x - 10 - toolTipObj.offsetWidth ) + "px";
			if ( y > mb_mapObj[ 0 ].height / 2 )
				t = ( y + 10 - toolTipObj.offsetHeight ) + "px";
			toolTipObj.style.left = l;
			toolTipObj.style.top  = t;
		} else {
			toolTipObj.style.display = "none";
			toolTipObj.innerHTML     = '';
			window.frames[ "mapframe1" ].document.body.style.cursor = 'default';
		}
	} catch (e) {}

	return;
}

//Messstellen tooltip-----------------------------------------

function ehyd_addMessstellenTooltip() {
	if ( typeof( toolTipObj ) == "undefined" ) {
		toolTipObj = mapframe1.document.createElement( "div" );
		toolTipObj.id   = "ehyd_tooltip";
		toolTipObj.name = "ehyd_tooltip";

    toolTipObj.style.position = 'absolute';
    toolTipObj.style.left = -100;
    toolTipObj.style.top = -100;
    toolTipObj.style.zIndex = 2001;
    toolTipObj.style.color = '#000000';
    toolTipObj.style.fontFamily = 'Arial';
    toolTipObj.style.fontSize = '10px';
    toolTipObj.style.padding = '1 3 1 3';
		toolTipObj.style.background = '#FFFFFF';
		toolTipObj.style.border = '1px solid #FF0000';
		mapframe1.document.body.appendChild( toolTipObj );
	}
}

mb_registerSubFunctions( "ehyd_TriggerRecalculateMessstellenFixes()" );

function ehyd_TriggerRecalculateMessstellenFixes() {
	for( var num in ehyd_MessPoints ) {
		var newFixes = makeRealWorld2mapPos( mapframe1, ehyd_MessPoints[ num ].x, ehyd_MessPoints[ num ].y );
		ehyd_MessPoints[ num ].mapX = newFixes[ 0 ];
		ehyd_MessPoints[ num ].mapY = newFixes[ 1 ];
	}
}

function ehyd_loadMessPointsFromDBBack( points, param ) {
	eval( 'ehyd_MessPoints = ' + points );
	ehyd_TriggerRecalculateMessstellenFixes();
}

//Pegel Aktuell-----------------------------------------

function eHYD_on_PegelAktuell() {
	eHYD_linksSetDisplayed();
	eHYD_getAjaxRequest( 'getPegelMessstellen', '' );

	var obj = document.getElementById( 'hotlink' );
	obj.title = "Messstellenwerte anzeigen und downloaden";
}

function ehyd_onMouseMessstellenMove( event ) {
	try {

		var lId = treeview.wms_layernames[ 'pegel_aktuell' ];
		if ( treeview.wms_layeractive[ lId ] == false || treeview.wms_layeractive[ lId ] == 0 )
			return;

		if ( ie ) {
			var x = window.frames[ "mapframe1" ].event.clientX;
			var y = window.frames[ "mapframe1" ].event.clientY;
		} else {
			var x = event.pageX;
			var y = event.pageY;
		}

		var s = null;

		for ( var num in ehyd_MessPoints ) {
			if ( ehyd_MessPoints[ num ].mapX + ehyd_MessExpand >= x &&
			     ehyd_MessPoints[ num ].mapX - ehyd_MessExpand <= x &&
			     ehyd_MessPoints[ num ].mapY + ehyd_MessExpand >= y &&
			     ehyd_MessPoints[ num ].mapY - ehyd_MessExpand <= y ) {
				if ( s == null )
					s = '<table cellpadding="1" cellspacing="0" border="0">';
				if ( ehyd_MessPoints[ num ].land != "" ) {
					s += '<tr>' +
					       '<td style="font-family: verdana; font-size: 8pt;">' + ehyd_MessPoints[ num ].messstelle + '</td>' +
					     '</tr>';
				} else {
					var unit = '';
					if ( ehyd_MessPoints[ num ].wert != 'n/a' ) {
						if ( ehyd_MessPoints[ num ].parameter == 'Q' )
							unit = 'm<sup>3</sup>/s';
						else if ( ehyd_MessPoints[ num ].parameter == 'W' )
							unit = 'cm';
					}
					s += '<tr>' +
					       '<td style="font-family: verdana; font-size: 8pt;">' + ehyd_MessPoints[ num ].messstelle + ': </td>' +
					       '<td style="font-family: verdana; font-size: 8pt; background-color: #B4D5F0" align="right"><b>' + ehyd_MessPoints[ num ].wert + ' ' + unit + '</b></td>' +
					       '<td style="font-family: verdana; font-size: 8pt;" align="center">&nbsp;(' + ehyd_MessPoints[ num ].zp + ')</td>' +
					     '</tr>';
				}
			}
		}
		if ( s != null )
			s += '</table>';

		if ( s != null ) {
			window.frames[ "mapframe1" ].document.body.style.cursor = 'pointer';
			toolTipObj.innerHTML     = s;
			toolTipObj.style.display = "block";
			var l = ( x + 10 ) + "px";
			var t = ( y - 15 ) + "px";
			if ( x > mb_mapObj[ 0 ].width / 2 )
				l = ( x - 10 - toolTipObj.offsetWidth ) + "px";
			if ( y > mb_mapObj[ 0 ].height / 2 )
				t = ( y + 10 - toolTipObj.offsetHeight ) + "px";
			toolTipObj.style.left = l;
			toolTipObj.style.top  = t;
		} else {
			toolTipObj.style.display = "none";
			toolTipObj.innerHTML     = '';
			window.frames[ "mapframe1" ].document.body.style.cursor = 'default';
		}
	} catch (e) {}

	return;
}

//BMNS Grid---------------------------------------------------

function ehyd_loadBMNSGridPointsFromDBBack( points, param ) {
	eval( 'ehyd_GridPoints = ' + points );
	ehyd_TriggerRecalculateGridFixes();
}

function eHYD_on_BMNS() {
	var obj = document.getElementById( 'hotlink' );
	obj.title = "Gitterpunktswerte anzeigen und downloaden";
}

mb_registerSubFunctions( "ehyd_TriggerRecalculateGridFixes()" );

function ehyd_TriggerRecalculateGridFixes() {
	for( var num in ehyd_GridPoints ) {
		var newFixes = makeRealWorld2mapPos( mapframe1, ehyd_GridPoints[ num ].x, ehyd_GridPoints[ num ].y );
		ehyd_GridPoints[ num ].mapX = newFixes[ 0 ];
		ehyd_GridPoints[ num ].mapY = newFixes[ 1 ];
	}
}

function ehyd_detGridExpand() {
	var currentScale = mb_getScale( "mapframe1" );
	var maxscale = 1500000;
	var minscale = 150000;
	var expMin = 4;
	var expMax = 10;
	var step = ( maxscale - minscale ) / 7;
	if ( currentScale > maxscale )
		ehyd_GridExpand = expMin;
	else if ( currentScale < minscale )
		ehyd_GridExpand = expMax;
	else {
		ehyd_GridExpand = expMin + Math.round( currentScale / step )
	}
}

function ehyd_onMouseGridMove( event ) {
	try {
		
		var lId = treeview.wms_layernames[ 'bemessungniederschlag' ];
		if ( treeview.wms_layeractive[ lId ] == false || treeview.wms_layeractive[ lId ] == 0 )
			return;
					
		if ( ie ) {
			var x = window.frames[ "mapframe1" ].event.clientX;
			var y = window.frames[ "mapframe1" ].event.clientY;
		} else {
			var x = event.pageX;
			var y = event.pageY;
		}
		
		ehyd_detGridExpand();
		
		var s = null;
		ehyd_aktualHoveredGrid = new Array();
		for ( var num in ehyd_GridPoints ) {
			if ( ehyd_GridPoints[ num ].mapX + ehyd_GridExpand >= x &&
			     ehyd_GridPoints[ num ].mapX - ehyd_GridExpand <= x &&
			     ehyd_GridPoints[ num ].mapY + ehyd_GridExpand >= y &&
			     ehyd_GridPoints[ num ].mapY - ehyd_GridExpand <= y ) {
				
				if ( s == null )
					s = '<table cellpadding="1" cellspacing="0" border="0">';
				s += '<tr>' +
				       '<td style="font-family: verdana; font-size: 8pt;">' + ehyd_GridPoints[ num ].gridnr + '</td>' + 
				     '</tr>';
				ehyd_aktualHoveredGrid.push( ehyd_GridPoints[ num ].gridnr );
			}
		}
		if ( s != null )
			s += '</table>';

		if ( s != null ) {
			window.frames[ "mapframe1" ].document.body.style.cursor = 'pointer';
			toolTipObj.innerHTML     = s;
			toolTipObj.style.display = "block";
			var l = ( x + 10 ) + "px";
			var t = ( y - 15 ) + "px";
			if ( x > mb_mapObj[ 0 ].width / 2 )
				l = ( x - 10 - toolTipObj.offsetWidth ) + "px";
			if ( y > mb_mapObj[ 0 ].height / 2 )
				t = ( y + 10 - toolTipObj.offsetHeight ) + "px";
			toolTipObj.style.left = l;
			toolTipObj.style.top  = t;
		} else {
			toolTipObj.style.display = "none";
			toolTipObj.innerHTML     = '';
			window.frames[ "mapframe1" ].document.body.style.cursor = 'default';
		}
	} catch (e) {}
	return;
}

function ehyd_clickOnGridPoints() {
	deleteMapElements();
	var img = "../lfrz/services/eHYD/img/selectionPoint.gif";
	for( var grid in ehyd_aktualHoveredGrid ) {
		for( var nr in ehyd_GridPoints ) {
			if ( ehyd_GridPoints[ nr ].gridnr == ehyd_aktualHoveredGrid[ grid ] ) {
				var x = ehyd_GridPoints[ nr ].x;
				var y = ehyd_GridPoints[ nr ].y;
				addImage( x, y, img, 20, 20 );
			}
		}
	}
	printMapElements();
}

//------------------------------------------------------------

function include( file, place ) {
	if ( place == null )
		var script   = document.createElement( 'script' );
	else
		var script   = place.document.createElement( 'script' );
	script.src   = file;
	script.type  = 'text/javascript';
	script.defer = true;

	if ( place == null )
		document.getElementsByTagName( 'head' ).item( 0 ).appendChild( script );
	else
		place.document.getElementsByTagName( 'head' ).item( 0 ).appendChild( script );
}

//------------------------------------------------------------

function eHYD_newXMLHttpRequest() {
	var e = null;
	var httpRequest = null;
	if ( window.XMLHttpRequest ) {
		httpRequest = new XMLHttpRequest();
		if ( httpRequest.overrideMimeType ) {
			httpRequest.overrideMimeType( 'text/xml' );
		}
	} else if ( window.ActiveXObject ) {
		try {
			httpRequest = new ActiveXObject( "Msxml2.XMLHTTP" );
		} catch ( e ) {
			try {
				httpRequest = new ActiveXObject( "Microsoft.XMLHTTP" );
			} catch ( e ) {}
		}
	}

	if ( !httpRequest ) {
		alert( 'Giving up :( Cannot create an XMLHTTP instance' );
		return false;
	}

	return httpRequest;
}

//------------------------------------------------------------

function eHYD_alertContents( httpRequest, action, parameter ) {

	if ( httpRequest.readyState == 4 ) {
		if ( httpRequest.status == 200 ) {

			if ( action == "getLinks" ) {
				ehyd_loadLinksFromDBBack( httpRequest.responseText, parameter );
			} else if ( action == "getPegelMessstellen" ) {
				ehyd_loadMessPointsFromDBBack( httpRequest.responseText, parameter );
			} else if ( action == "getBMNSGrid" ) {
				ehyd_loadBMNSGridPointsFromDBBack( httpRequest.responseText, parameter );
			} else if ( action == "getANSMessstellen" ) {
				eHYD_getANSMessstellenFromDBBack( httpRequest.responseText, parameter );
			}

		}
	}

}

//------------------------------------------------------------

function eHYD_getAjaxRequest( action, parameter ) {
	var httpRequest = eHYD_newXMLHttpRequest();
	httpRequest.open( 'POST', '../lfrz/mod_ehyd.php', true );
	httpRequest.onreadystatechange = function() { eHYD_alertContents( httpRequest, action, parameter ) };
	httpRequest.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
	httpRequest.setRequestHeader( "Connection", "close" );
	httpRequest.send( "action=" + action + "&" + parameter );
}

//------------------------------------------------------------

eHYD_getAjaxRequest( 'getLinks', '' );
eHYD_getAjaxRequest( 'getBMNSGrid', '' );var mod_hotlink_elName = "hotlink";
var mod_hotlink_frameName = "";
var mod_hotlink_target = "mapframe1";

var mod_hotlink_img_on = new Image(); mod_hotlink_img_on.src =  "../lfrz/img/tools/hotlink_red_on.gif";
var mod_hotlink_img_off = new Image(); mod_hotlink_img_off.src = "../lfrz/img/tools/hotlink_red_off.gif";
var mod_hotlink_img_over = new Image(); mod_hotlink_img_over.src = "../lfrz/img/tools/hotlink_red_over.gif";
var mod_hotlink_img_inactive = new Image(); mod_hotlink_img_inactive.src = "../lfrz/img/tools/hotlink_red_inactive.gif";
var mod_hotlink_hide_item = null;

function init_hotlink(ind){
	mb_button[ind] = document.getElementById(mod_hotlink_elName);
 	mb_button[ind].img_over = mod_hotlink_img_over.src;
 	mb_button[ind].img_on = mod_hotlink_img_on.src;
 	mb_button[ind].img_off = mod_hotlink_img_off.src;
	mb_button[ind].status = 0;
	mb_button[ind].elName = mod_hotlink_elName;
	mb_button[ind].fName = mod_hotlink_frameName;
	mb_button[ind].go = new Function ("mod_hotlink_click()");
	mb_button[ind].stop = new Function ("mod_hotlink_disable()");
}
function mod_hotlink_setactive(active){
  var hotlink_obj = document.getElementById('hotlink');
  
  if( mod_hotlink_hide_item == null ) {
    mod_hotlink_hide_item = hotlink_obj.cloneNode(true);
    document.body.appendChild(mod_hotlink_hide_item);
    mod_hotlink_hide_item.style.zIndex = 2;
    mod_hotlink_hide_item.src = mod_hotlink_img_inactive.src;
    document.body.appendChild(mod_hotlink_hide_item);
  }

  if( active ) {
    mod_hotlink_hide_item.style.display = 'none';
  }
  else {
    mod_hotlink_hide_item.style.display = 'block';
  }
}
function mod_hotlink_click(){
	var layeractive = false;
	if( treeview.wms_ehydlayer.push ) { // array using
		for(var i=0; i<treeview.wms_ehydlayer.length ;i++) {
			if( treeview.wms_layeractive[treeview.wms_ehydlayer[i]] ) {
			layeractive = true;
			}
		}
	}
  if( treeview.wms_layeractive[treeview.wms_ehydlayer] || layeractive ) {
  	window.frames[mod_hotlink_target].document.onclick = mod_hotlink_event;
  	window.frames[mod_hotlink_target].document.onmouseover = mod_hotlink_click;
  	window.frames[mod_hotlink_target].document.onmousemove = mod_hotlink_run;
  }

			ehyd_addMessstellenTooltip();
	  
}
function mod_hotlink_run( e ) {
	if ( typeof( genuss_onMousePartnersMove ) != "undefined" && ie )
		genuss_onMousePartnersMove( e );  

	try {
		var lId1 = treeview.wms_layernames[ 'pegel_aktuell' ];
		var lId2 = treeview.wms_layernames[ 'bemessungniederschlag' ];
		var lId3 = treeview.wms_layernames[ 'aktuelle_niedersclaege' ];
		if ( "eHYD" == "eHYD" && (
		     treeview.wms_layeractive[ lId1 ] == true || 
		     treeview.wms_layeractive[ lId1 ] == 1 ) ) {
			if ( typeof( ehyd_onMouseMessstellenMove ) != "undefined" )
				ehyd_onMouseMessstellenMove( e );
		} else if ( "eHYD" == "eHYD" && (
		     treeview.wms_layeractive[ lId2 ] == true || 
		     treeview.wms_layeractive[ lId2 ] == 1 ) ) {
			if ( typeof( ehyd_onMouseGridMove ) != "undefined" )
				ehyd_onMouseGridMove( e );
		} else if ( "eHYD" == "eHYD" && (
		     treeview.wms_layeractive[ lId3 ] == true || 
		     treeview.wms_layeractive[ lId3 ] == 1 ) ) {
			if ( typeof( ehyd_onMouseANSMove ) != "undefined" )
				ehyd_onMouseANSMove( e );
		}
	} catch( e ) {}
}
function mod_hotlink_disable(){
	window.frames[mod_hotlink_target].document.onclick = null;
	window.frames[mod_hotlink_target].document.onmouseover = null;
 	window.frames[mod_hotlink_target].document.onmousemove = null;
}
function mod_hotlink_event(e){
	if(ie){
		clickX = window.frames[mod_hotlink_target].event.clientX;
		clickY = window.frames[mod_hotlink_target].event.clientY;
	}
	else{
		clickX = e.pageX;
		clickY = e.pageY;
	}

			var lId1 = treeview.wms_layernames[ 'pegel_aktuell' ];
		var lId2 = treeview.wms_layernames[ 'bemessungniederschlag' ];
		var lId3 = treeview.wms_layernames[ 'aktuelle_niedersclaege' ];
		if ( "eHYD" == "eHYD" && (
		     treeview.wms_layeractive[ lId1 ] == true || 
		     treeview.wms_layeractive[ lId1 ] == 1 ) ) {
		     	
		  var minX = clickX - ehyd_MessExpand;
		  var minY = clickY - ehyd_MessExpand;
		  var maxX = clickX + ehyd_MessExpand;
		  var maxY = clickY + ehyd_MessExpand;

		  var mins = makeClickPos2RealWorldPos( "mapframe1", minX, minY );
		  var maxs = makeClickPos2RealWorldPos( "mapframe1", maxX, maxY );

		  window.frames[ "viewdataframe" ].location.href = "../lfrz/mod_ehyd.php?action=getPegelInfo&minX=" + mins[ 0 ] + "&minY=" + mins[ 1 ] + '&maxX=' + maxs[ 0 ] + '&maxY=' + maxs[ 1 ];
		} else if ( "eHYD" == "eHYD" && (
		     treeview.wms_layeractive[ lId2 ] == true || 
		     treeview.wms_layeractive[ lId2 ] == 1 ) ) {

		  ehyd_clickOnGridPoints();
		  window.frames[ "viewdataframe" ].location.href = "../lfrz/mod_ehyd.php?action=getBMNSInfo&grids=" + ehyd_aktualHoveredGrid.join( ',' );
		} else if ( "eHYD" == "eHYD" && (
		     treeview.wms_layeractive[ lId3 ] == true || 
		     treeview.wms_layeractive[ lId3 ] == 1 ) ) {
		     	
		  var minX = clickX - ehyd_MessExpand;
		  var minY = clickY - ehyd_MessExpand;
		  var maxX = clickX + ehyd_MessExpand;
		  var maxY = clickY + ehyd_MessExpand;

		  var mins = makeClickPos2RealWorldPos( "mapframe1", minX, minY );
		  var maxs = makeClickPos2RealWorldPos( "mapframe1", maxX, maxY );

		  window.frames[ "viewdataframe" ].location.href = "../lfrz/mod_ehyd.php?action=getANSInfo&S=" + ehydSelectedANSSum + "&NUM=" + ehydSelectedANSNumber + "&minX=" + mins[ 0 ] + "&minY=" + mins[ 1 ] + '&maxX=' + maxs[ 0 ] + '&maxY=' + maxs[ 1 ];
		} else {
			sethotlinkRequest(mod_hotlink_target,clickX,clickY,'../lfrz/mod_messstellenViewFrame.php');
		}
	}

function sethotlinkRequest(fName,x,y, path){
	var ts = mb_timestamp();
	var hotlink_layers = "OWF,NLV,GW,QU,OWF_,NLV_,GW_,QU_,Onlinemessnetz_der_Bundeslaender,pegel_aktuell_transparent,pegel_aktuell,bemessungniederschlag,aktuelle_niedersclaege,aktuelle_niedersclaege_transparent";
	var hotlink_layers_array = hotlink_layers.split(',');
	
	for(var i=0; i<mb_FeatureInfoPreFunctions.length; i++){
		eval(mb_FeatureInfoPreFunctions[i]);
	}
	var curScale = mb_getScale('mapframe1');

	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 calculatedLayers = Array();
        for(var j=0; j<mb_mapObj[i].wms[ii].objLayer.length ;j++) {
          for (var idx=0; idx<hotlink_layers_array.length; idx++) {
            if(mb_mapObj[i].wms[ii].objLayer[j].gui_layer_visible == 1 && mb_mapObj[i].wms[ii].objLayer[j].gui_layer_minscale <= curScale && 
             (mb_mapObj[i].wms[ii].objLayer[j].gui_layer_maxscale >= curScale || mb_mapObj[i].wms[ii].objLayer[j].gui_layer_maxscale == 0) &&
              mb_mapObj[i].wms[ii].objLayer[j].layer_name == hotlink_layers_array[idx] ) {
              calculatedLayers.push( mb_mapObj[i].wms[ii].objLayer[j].layer_name );
/*            if(mb_mapObj[i].wms[ii].objLayer[j].gui_layer_visible == 1 && mb_mapObj[i].wms[ii].objLayer[j].gui_layer_minscale <= curScale && 
              (mb_mapObj[i].wms[ii].objLayer[j].gui_layer_maxscale >= curScale || mb_mapObj[i].wms[ii].objLayer[j].gui_layer_maxscale == 0) ) {
              calculatedLayers.push( mb_mapObj[i].wms[ii].objLayer[j].layer_name );*/
            }
          }
        }
        // lösche elemente die nicht in querylayers vorkommen
        for(var j=calculatedLayers.length; j>=0 ;j--) {
          if( (','+mb_mapObj[i].querylayers[ii]+',').indexOf(calculatedLayers[j]) == -1 ) {
            calculatedLayers.splice(j,1);
          }
        }
				var newfeatureInfoRequest = "";
				var requestParams = "";
				var validation = false;
				newfeatureInfoRequest += mb_mapObj[i].wms[ii].wms_getfeatureinfo;
            	newfeatureInfoRequest += mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getfeatureinfo);
				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=OWF,NLV,GW,QU,OWF_,NLV_,GW_,QU_,Onlinemessnetz_der_Bundeslaender,pegel_aktuell_transparent,pegel_aktuell,bemessungniederschlag,aktuelle_niedersclaege,aktuelle_niedersclaege_transparent&";
				requestParams += "QUERY_LAYERS="+calculatedLayers.join(',')+"&";
				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("viewdataframe") && validation){
					newfeatureInfoRequest += requestParams;
					if(path){
						window.frames["viewdataframe"].location.href = path + "?url=" + escape(newfeatureInfoRequest)+"&"+mb_nr+"&gui_id=eHYD&wms_id="+mb_mapObj[i].wms[ii].wms_id;
					}
					cnt_fi++;
       	}
			}
		}
	}
   	if(cnt_fi == 0){alert("Please select a layer! \n Bitte wählen Sie eine Ebene zur Abfrage aus!");}
}

register_measureSubFunctions("mod_createmeasurediv()");
var mod_measurebar_target = 'mapframe1';

function mod_createmeasurediv(){
  var content;
  content  = '<table align="center" class="bodylight" cellpadding=0 cellspacing=0 style="border-right:1px solid black; border-bottom:1px solid black; background:#FFFFFF; z-index:99;"><tr>';
  content += '<td	style="font-family:Arial; font-size:12px;">&nbsp;Total:&nbsp;<INPUT TYPE="text" ID="theMeasTotal" VALUE="0" SIZE="16" style="font-size:10px;font-family: Arial;"></td>';
  content += '<td	style="font-family:Arial; font-size:12px;">&nbsp;Segment:&nbsp;<INPUT TYPE="text" ID="theMeasSegment" VALUE="0" SIZE="16" style="font-size:10px;font-family: Arial;"></td>';
  content += '<td	style="font-family:Arial; font-size:12px;">&nbsp;Flaeche:&nbsp;<INPUT TYPE="text" ID="theMeasArea" VALUE="0" SIZE="20" style="font-size:10px;font-family: Arial;">&nbsp;</td>';
  content += '<td><a title="Polygon schliessen und berechnen" href="javascript:parent.mod_measure_close();parent.mod_calculateMeasureArea();"><img border="0" src="../lfrz/img/closePolygon.gif" /></a></td><td>&nbsp;</td>'
  content += '<td><a title="Polygon loeschen" href="javascript:parent.mod_measure_delete();parent.mod_measure_disable();" style="text-decoration:none; color:brown; font-size:14px; font-weight:bold;">X</a>&nbsp;</td>';
  content += '</tr></table><iframe frameborder=0 border=0 style="width:1px;height:1px;" name="mod_measurebar_iframe" src="../html/mod_blank.html"></iframe>';
  return content;
}

function mod_calculateMeasureArea(connDots) {
	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] || connDots && connDots != null){
		var ind = getMapObjIndexByName(mod_measurebar_target);
		var url = "../lfrz/mod_evalMeasureBarArea.php?x=";
		for(var i=0; i<mod_measure_RX.length;i++){
			if(i>0){ url += ",";}
			url += mod_measure_RX[i];
		}
		if( connDots && connDots != null ) url += ',' + mod_measure_RX[0];
		url += "&y=";
		for(var i=0; i<mod_measure_RY.length;i++){
			if(i>0){ url += ",";}
			url += mod_measure_RY[i];
		}
		if( connDots && connDots != null ) url += ',' + mod_measure_RY[0];
		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];

		mod_measure_win = window.frames[mod_measurebar_target].frames['mod_measurebar_iframe'];
		mod_measure_win.document.location.href = url;
	}
	else{
 		mod_measure_win = window.frames[mod_measurebar_target].frames['mod_measurebar_iframe'];
		mod_measure_win.document.open("text/html");
		mod_measure_win.document.write("<span style = 'font-family: Arial, Helvetica, sans-serif;font-size : 12px;font-weight : bold;';>Strecke: " +mod_measure_TotalDist[mod_measure_TotalDist.length-1]+" m</span>");
		mod_measure_win.document.close();
	}
}

function mod_refreshMeasureBar(dist,totalDist) {
  window.frames[mod_measurebar_target].document.getElementById('theMeasSegment').value = Math.round(dist*100)/100+' m';
  window.frames[mod_measurebar_target].document.getElementById('theMeasTotal').value = Math.round(totalDist*100)/100+' m';
}

function mod_setCalcArea(value) {
  window.lastCalcAreaValue = value;
  window.frames[mod_measurebar_target].document.getElementById('theMeasArea').value = value+' m2';
}
/*
  Plazotta Mirko
  created 20060925
*/

mb_registerInitFunctions('mod_changetreecontrol(document.getElementById("redraw_mapframe"));');

// set autorefresh box to gray or white (depending on status)
function mod_changetreecontrol(checkbox) {
  var treecontrol_img = document.getElementById('treecontrol_img');
  var treecontrol_text = document.getElementById('treecontrol_text');
  
  if( checkbox.checked ) {
    treecontrol_img.src = treecontrol_img.src.replace('_off','_disabled');
    treecontrol_text.style.color = '#bbbbbb';
  }
  else {
    treecontrol_img.src = treecontrol_img.src.replace('_disabled','_off');
    treecontrol_text.style.color = '#000000';
  }
}

var currentTimeOut = null;
//MOD Plazotta 20070717 added function setFlashSymbol() if something changed - flashing redraw button 
function setFlashSymbol(timeOutCall) {
	if( !currentTimeOut || timeOutCall == true ) {
		var flashbutton = document.getElementById('treecontrol_img');
		var flashtext = document.getElementById('treecontrol_text');
		if( flashbutton.src.indexOf('refresh_off.gif') != -1 ) {
		  if( flashbutton.src.indexOf('refresh_off.gif') != -1 ) {
        flashbutton.src = flashbutton.src.replace('refresh_off.gif','refresh_on.gif');
      }
			flashbutton.parentNode.style.background = '#FFAAAA';
			flashtext.style.background = '#FFAAAA';
		}
		else {
		  if( flashbutton.src.indexOf('refresh_on.gif') != -1 ) {
  			flashbutton.src = flashbutton.src.replace('refresh_on.gif','refresh_off.gif');
      }
			flashbutton.parentNode.style.background = 'none';
			flashtext.style.background = 'none';
		}

 		window.currentTimeOut = window.setTimeout('setFlashSymbol(true)',500);
	}
	if( timeOutCall == false && currentTimeOut ) {
		clearTimeout( currentTimeOut );
		var buttonObj = document.getElementById('treecontrol_img');
		var buttonText = document.getElementById('treecontrol_text');
		buttonObj.src = buttonObj.src.replace('refresh_on.gif','refresh_off.gif');
		buttonObj.parentNode.style.background = 'none';
		buttonText.style.background = 'none';
		currentTimeOut = null;
	}
}

function mod_treerefresh(){
	if( document.getElementById('digitize') && document.getElementById('digitize').style.display == 'block' ) {
    if( digitize.mod_digitizeEvent == 'Polygon' ) {
      digitize.document.getElementById('Polygon').stop();
    }
  }

  setFlashSymbol(false);
	setMapRequest("mapframe1");	
}

function mod_checklogin(){
return false;}

function mod_checksaveLayerList() {
return false;}

mb_registerSubFunctions("window.frames['treeview'].base.print();");
mb_registerInitFunctions("window.frames['treeview'].base.loadLayerVisibleFromMapObj();");
mb_registerloadWmsSubFunctions("window.frames['treeview'].base.initBookmarkWMS();");
mb_registerloadWmsSubFunctions("window.frames['treeview'].base.loadLayerVisibleFromMapObj();");
var resize_width=275; var resize_height=145; var mod_dragMapSize_target='mapframe1'; var startScreenMode = 'Normal';
//MOD Gulyás 20080404 Store the screen layout ( full, normal, vertical )
var screenLayoutMode = "Normal";

var orig_width = 0; 
var orig_height = 0;
var orig_left = 0;
var resize_border = 20;

mb_registerInitFunctions("mod_resizeTools_init()");
mb_registerSubFunctions("mod_resizeMapframeBorderMoz()");

function mod_resizeTools_init(){
	var ind = getMapObjIndexByName(mod_dragMapSize_target);
	orig_width = mb_mapObj[ind].width;
	orig_height = mb_mapObj[ind].height;
	orig_left = Number(document.getElementById(mod_dragMapSize_target).style.left.replace('px',''));
  window.onresize = mod_resizeByWindow;
  
  mod_resizeByWindow();
  
	//MOD Gulyás 20080403 For Screenmode start
	if ( startScreenMode != "" )
		eval( "mod_resize" + startScreenMode + "()" );
  
}

function mod_resizeFull() {
	var ind = getMapObjIndexByName(mod_dragMapSize_target);
	if(mb_mapObj[ind].width != orig_width && mb_mapObj[ind].height != orig_height) {
    mod_resizeNormal();
  }
  else {
  	mb_mapObj[ind].width = parseFloat(orig_width) + parseFloat(resize_width);
  	mb_mapObj[ind].height = parseFloat(orig_height) + parseFloat(resize_height);
  	document.getElementById(mod_dragMapSize_target).style.left = resize_border;
  	document.getElementById(mod_dragMapSize_target).style.width = mb_mapObj[ind].width;
  	document.getElementById(mod_dragMapSize_target).style.height = mb_mapObj[ind].height;
  	window.frames[mod_dragMapSize_target].document.getElementById("maps").style.width = mb_mapObj[ind].width;
  	window.frames[mod_dragMapSize_target].document.getElementById("maps").style.height = mb_mapObj[ind].height;
    mb_repaintScale('mapframe1',null,null,mb_getScale('mapframe1'));

	  //MOD Gulyás 20080404 Screen Layout mode refresh
  	screenLayoutMode = "full";
  	
		//MOD Gulyás 20080404 Trigger registered post resize functions
		for( var i = 0; i < mb_MapResizeSubFunctions.length; i++ ) {
			eval( mb_MapResizeSubFunctions[ i ] + "( 'full' )" );
		}

  }

}

function mod_resizeNormal() {
	var ind = getMapObjIndexByName(mod_dragMapSize_target);
	mb_mapObj[ind].width = orig_width;
	mb_mapObj[ind].height = orig_height;
	document.getElementById(mod_dragMapSize_target).style.left = orig_left;
	document.getElementById(mod_dragMapSize_target).style.width = mb_mapObj[ind].width;
	document.getElementById(mod_dragMapSize_target).style.height = mb_mapObj[ind].height;
	window.frames[mod_dragMapSize_target].document.getElementById("maps").style.width = mb_mapObj[ind].width;
	window.frames[mod_dragMapSize_target].document.getElementById("maps").style.height = mb_mapObj[ind].height;
  mb_repaintScale('mapframe1',null,null,mb_getScale('mapframe1'));

  //MOD Gulyás 20080404 Screen Layout mode refresh
  screenLayoutMode = "normal";

	//MOD Gulyás 20080404 Trigger registered post resize functions
	for( var i = 0; i < mb_MapResizeSubFunctions.length; i++ ) {
		eval( mb_MapResizeSubFunctions[ i ] + "( 'normal' )" );
	}

}

function mod_resizeVertical() {
	var ind = getMapObjIndexByName(mod_dragMapSize_target);

	if(mb_mapObj[ind].height != orig_height) {
    mb_mapObj[ind].height = orig_height;

	  //MOD Gulyás 20080404 Screen Layout mode refresh
	  screenLayoutMode = "normal";

  }
  else {
    mb_mapObj[ind].height = parseFloat(orig_height) + parseFloat(resize_height);

	  //MOD Gulyás 20080404 Screen Layout mode refresh
	  screenLayoutMode = "vertical";

  }

	document.getElementById(mod_dragMapSize_target).style.width = mb_mapObj[ind].width;
	document.getElementById(mod_dragMapSize_target).style.height = mb_mapObj[ind].height;
	window.frames[mod_dragMapSize_target].document.getElementById("maps").style.width = mb_mapObj[ind].width;
	window.frames[mod_dragMapSize_target].document.getElementById("maps").style.height = mb_mapObj[ind].height;
  mb_repaintScale('mapframe1',null,null,mb_getScale('mapframe1'));

	//MOD Gulyás 20080404 Trigger registered post resize functions
	for( var i = 0; i < mb_MapResizeSubFunctions.length; i++ ) {
		eval( mb_MapResizeSubFunctions[ i ] + "('" + screenLayoutMode + "' )" );
	}

}

function mod_resizeByWindow() {
	var ind = getMapObjIndexByName(mod_dragMapSize_target);
	var topOffset = Number(document.getElementById('mapframe1').style.top.replace('px',''));
	var bottomOffset = Number(document.getElementById('overview').style.height.replace('px',''));
	var treeviewControlHeight = Number(document.getElementById('treeview_control').style.height.replace('px',''));
  var newMapWidth = window.document.body.clientWidth-2;
  var newMapHeight = window.document.body.clientHeight;
  
  if( mb_mapObj[ind].width == orig_width ) {
    mb_mapObj[ind].width = (orig_width = newMapWidth - orig_left - resize_border);
  }
  else {
    orig_width = (mb_mapObj[ind].width = newMapWidth - resize_border*2) - orig_left + resize_border;
  }

  document.getElementById('resize_tools').style.left = newMapWidth-110;
  document.getElementById('viewdataframe').style.width = newMapWidth - orig_left + resize_border;
  if( document.getElementById('einstiegframe') )
    document.getElementById('einstiegframe').style.width = newMapWidth - orig_left + resize_border;
  // document.getElementById('wfs_gazetteer_lfrz2').style.width = newMapWidth - orig_left + resize_border;
  document.getElementById('toolbarDIV').style.width = newMapWidth - orig_left + resize_border;

  	if ( document.getElementById('lebensministerium_logo') )
		document.getElementById('lebensministerium_logo').style.left = newMapWidth - 90;
  if (document.getElementById('bmgfj_logo')) { document.getElementById('bmgfj_logo').style.left = newMapWidth - 90 - 60; }
  if (document.getElementById('gba_logo')) { document.getElementById('gba_logo').style.left = newMapWidth - 90 - 60; }
	if ( document.getElementById( 'bmwf_logo' ) )
		document.getElementById( 'bmwf_logo' ).style.left = newMapWidth - 200;

  
		
	
  if( mb_mapObj[ind].height == orig_height ) {
    mb_mapObj[ind].height = (orig_height = newMapHeight - topOffset - bottomOffset - resize_border);
  }
  else {
    mb_mapObj[ind].height = (orig_height = newMapHeight - topOffset - bottomOffset - resize_border) + bottomOffset;
  }

  document.getElementById('viewdataframe').style.top = newMapHeight - bottomOffset;
  if( document.getElementById('einstiegframe') )
    document.getElementById('einstiegframe').style.top = newMapHeight - bottomOffset;
  document.getElementById('overview').style.top = newMapHeight - bottomOffset;
  document.getElementById('treeview').style.height = newMapHeight - bottomOffset - topOffset - treeviewControlHeight;
  document.getElementById('treeview_control').style.top = newMapHeight - bottomOffset - treeviewControlHeight;
  document.getElementById('legend').style.height = newMapHeight - bottomOffset - topOffset;
  document.getElementById('drawMapSelection').style.width = (newMapWidth - orig_left) * 0.95;
  document.getElementById('drawMapSelection').style.left = Math.round(orig_left + (newMapWidth - orig_left) * 0.05)-1;
  document.getElementById('drawMapSelection').style.top = newMapHeight - bottomOffset - 1;
  document.getElementById('drawMapMiniFrame').style.top = newMapHeight - bottomOffset;
  document.getElementById('drawMapMiniFrame').style.left = newMapWidth - Number(document.getElementById('drawMapMiniFrame').style.width.replace('px',''));

  // redraw mapframe
	document.getElementById(mod_dragMapSize_target).style.width = mb_mapObj[ind].width;
	document.getElementById(mod_dragMapSize_target).style.height = mb_mapObj[ind].height;
	window.frames[mod_dragMapSize_target].document.getElementById("maps").style.width = mb_mapObj[ind].width;
	window.frames[mod_dragMapSize_target].document.getElementById("maps").style.height = mb_mapObj[ind].height;
	
	setRepaintScale(true);
	
	//MOD Gulyás 20080404 Trigger registered post resize functions
	for( var i = 0; i < mb_MapResizeSubFunctions.length; i++ ) {
		eval( mb_MapResizeSubFunctions[ i ] + "( '" + screenLayoutMode + "' )" );
	}
}

var repaint_timeout = null;
function setRepaintScale(repaint_start) {
  if( repaint_start == null ) {
    var determitscale = mb_getScale('mapframe1');
    if( determitscale < window.treeview.wms_layertitles[window.treeview.wms_id+'_0'][1] ) {
      determitscale = window.treeview.wms_layertitles[window.treeview.wms_id+'_0'][1];
    }
    if( determitscale > window.treeview.wms_layertitles[window.treeview.wms_id+'_0'][2] &&
        window.treeview.wms_layertitles[window.treeview.wms_id+'_0'][2] > 0 ) {
      determitscale = window.treeview.wms_layertitles[window.treeview.wms_id+'_0'][2];
    }
    mb_repaintScale('mapframe1',null,null,determitscale);
    repaint_timeout = null;
  }
  else {
    if( repaint_timeout != null ) {
      clearTimeout(repaint_timeout);
    }
    repaint_timeout = setTimeout('setRepaintScale();',500);
  }
}

function mod_resizeMapframeBorderMoz(){
  if( navigator.appName != 'Netscape' ) {
    return;
  }
	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("mbE",(myLeft + myWidth - 1),(myTop),(ext),(myHeight));
	mod_navFrame_pos("mbS",(myLeft),(myTop + myHeight - 1),(myWidth),(ext));
}

function redrawMeasureLines() {
	// MOD Nagy 20081022 - redraw measurelines everytime
	if ( window.mod_measure_RX && window.mod_measure_RY ) {
		mod_measure_width = mb_mapObj[0].width;
		mod_measure_height = mb_mapObj[0].height;
		drawDashedLine();
	}
}

mb_RegisterMapResizeSubFunctions( "redrawMeasureLines" );

var pixelCorrection = Number(99278999.905521); 