						 
function init() {
	map = new OpenLayers.Map('map', {
	theme: "theme/style.css",
	maxExtent: new OpenLayers.Bounds(map_config.bbox[0],map_config.bbox[1],map_config.bbox[2],map_config.bbox[3]), 
	maxResolution: map_config.maxResolution, 
	units: 'm', 
	projection: "EPSG:"+map_config.epsg,
	controls: [
	new OpenLayers.Control.Navigation(),
	new OpenLayers.Control.PanZoomBar(),
	//new OpenLayers.Control.Permalink(),
	//new OpenLayers.Control.Permalink('permalink'),
	//new OpenLayers.Control.MousePosition(),
	new OpenLayers.Control.KeyboardDefaults()
	],
	numZoomLevels: 7
	});	

    for(layer in map_config.layers) {
	    var wms = new OpenLayers.Layer.WMS( map_config.layer_names[layer], 
		    map_config.wms_uri,			
		    {layers: [map_config.layers[layer]], 
		    format: 'png'},
	        {projection: 'EPSG:<?= $this->epsg; ?>'} );
	    map.addLayer(wms);
	}

    if(map_config.layers.length > 0) {
        var cc = new OpenLayers.Control.LayerSwitcher();
        map.addControl(cc);
    }
    

    if(map_config.editable) {
        vlayer = new OpenLayers.Layer.Vector( "Editable" );
        map = new OpenLayers.Map( 'map', {
            controls: [
                new OpenLayers.Control.PanZoom(),
                new OpenLayers.Control.EditingToolbar(vlayer)
            ]
        });
        map.addLayers([layer, vlayer]);
    }


	var hovercontrol = new OpenLayers.Control.Hover();
	hovercontrol.key = "hoverinfo";
	map.addControl( hovercontrol );
	hovercontrol.activate();

	
	var cc = new OpenLayers.Control.Click();
	cc.key = "hoverinfo";
	map.addControl( cc );
	cc.activate();			
				  
	zoomToExtent( new OpenLayers.Bounds(map_config.extent[0],map_config.extent[1],map_config.extent[2],map_config.extent[3]) );	

	var e=$('#karte_suchformular');
	if(e) e.ajaxForm({target:  '#suchergebnis'}); 
	
	setupMeasureControls();
}
	 
	 
function zoomToExtent(b) {
    if(b.left < map.maxExtent.left) b.left = map.maxExtent.left;
    if(b.top > map.maxExtent.top) b.top = map.maxExtent.top;
    if(b.bottom < map.maxExtent.bottom) b.bottom = map.maxExtent.bottom;
    if(b.right > map.maxExtent.right) b.right = map.maxExtent.right;				
    map.zoomToExtent(b);
}

