function init(lat,lon,z)
    {        
        if (!lat) {lat = "50.4734183";}
        if (!lon) {lon = "30.5639648";}
        if (!z) {z = "12";}           
        //OpenLayers.Util.onImageLoadError = function() { this.style.display="none;";}
	OpenLayers._kkey = "V146GikgtkVGJKL7g680byi6bhjkl59obhjkpGHJO7680";
        map = new OpenLayers.Map('map_block_inner');
        map.addLayer(new OpenLayers.Layer.ProstoKarta("pk"));
		var lonLat = new OpenLayers.LonLat(lon, lat) ;
        lonLat.transform(map.displayProjection,map.getProjectionObject());
        map.setCenter(lonLat, z);
        
		saf_lnk = lnk+"/home/index?lat="+lonLat.lat+"&lon="+lonLat.lon+"&zoom="+map.getZoom();
		saf_iflnk = lnk+"/widget/GetArea?lat="+lonLat.lat+"&lng="+lonLat.lon+"&z="+map.getZoom();
		$('print_link').href = lnk+"/home/print?lat="+lonLat.lat+"&lng="+lonLat.lon+"&z="+map.getZoom();
		
        ReDraw = function (){
        	if (redrawlayer=='placemarkers')
        	{
        		placemarkers2(category);
        	}
        	if (redrawlayer=='placeradars')
        	{
        		placeradars2();
        	}
        	
			lonLat =  map.getCenter();
			lonLat.transform(map.getProjectionObject(),map.displayProjection);
			saf_lnk = lnk+"/home/index?lat="+lonLat.lat+"&lon="+lonLat.lon+"&zoom="+map.getZoom();
			saf_iflnk = lnk+"/widget/GetArea?lat="+lonLat.lat+"&lng="+lonLat.lon+"&z="+map.getZoom();
			$('print_link').href = lnk+"/home/print?lat="+lonLat.lat+"&lng="+lonLat.lon+"&z="+map.getZoom();
        	if (vectorLayer) vectorLayer.redraw();
        	popupDestroy();
        };
        map.events.register("zoomend", map,  ReDraw);
        map.events.register("moveend", map,  ReDraw);
        map.events.register("mousedown", map,  popupDestroy);
}
function popupDestroy() {
	for(var i=0, len=map.popups.length; i<len; i++) {
		//map.removePopup(map.popups[i]);
		map.popups[i].toggle();
	}
}

function showstreet(sid)
{
	var format = new OpenLayers.Format.XML();
	var style_green = {
                strokeColor: "#ff0000",
                strokeOpacity: 0.5,
                strokeWidth: 5,
                pointRadius: 6,
                pointerEvents: "visiblePainted"
    };
    removealllayers();
	OpenLayers.loadURL(wsp+"/GetStreet?sid="+sid, null, null, 
		function(request)
			{
				vectorLayer = new OpenLayers.Layer.Vector("vectorLayer");
				var points = format.getElementsByTagNameNS(request.responseXML, '*', 'points');
				var point;
            	for(var i=0; i<points.length; ++i) 
            	{
            		point = format.getElementsByTagNameNS(points[i], '*', 'point');
            		var pointList = [];
            		
                	for(var j=0; j<point.length; ++j) 
                	{
						var lonlat = new OpenLayers.LonLat(point[j].getAttribute("lng"),point[j].getAttribute("lat"));
            			lonlat.transform(new OpenLayers.Projection("EPSG:4326"),map.getProjectionObject());
            			pointList.push(new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat));
                	}
                	lineFeature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString(pointList),null,style_green);
                	vectorLayer.addFeatures([lineFeature]);
            	}
                map.addLayer(vectorLayer);
            	map.setCenter(lonlat, 16);
			});
}
function showaddress(aid)
{  
	var format = new OpenLayers.Format.XML();
	var style_green = {
                strokeColor: "#339933",
                strokeOpacity: 1,
                strokeWidth: 3,
                pointRadius: 6,
                pointerEvents: "visiblePainted"
            };
    removealllayers("vectorLayer");
    mgr = new OpenLayers.Layer.Markers( "markers" );
    map.addLayer(mgr);
	mgr.clearMarkers();
	OpenLayers.loadURL(wsp+"/GetAddress?aid="+aid, null, null, 
		function(request)
			{
				if(request.responseXML.documentElement) 
                {
                	var point = format.getElementsByTagNameNS(request.responseXML, '*', 'point');
                	var lonlat = new OpenLayers.LonLat(point[0].getAttribute("lng"),point[0].getAttribute("lat"));
            		lonlat.transform(new OpenLayers.Projection("EPSG:4326"),map.getProjectionObject());
            				
				    var feature = new OpenLayers.Feature(mgr, lonlat);
				    AutoSizeFramedCloud = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
				          						'autoSize': true,
				          						'minSize': new OpenLayers.Size(200,150),
				           						'contentSize': new OpenLayers.Size(190,140),
				           						'size': new OpenLayers.Size(200,150)
				 	});				 									
					feature.popupClass = AutoSizeFramedCloud;
				    feature.data.popupContentHTML = "<b>"+point[0].getAttribute('type_u')+'&nbsp;'+point[0].getAttribute('name_u')+',&nbsp;'+point[0].getAttribute('nb')+"<br>"+
				    									point[0].getAttribute('type_r')+'&nbsp;'+point[0].getAttribute('name_r')+',&nbsp;'+point[0].getAttribute('nb')+"<br>"+
				    									point[0].getAttribute('name_l')+',&nbsp;'+point[0].getAttribute('nb')
				    								+"</b>";
				    feature.data.popupContentHTML +="<br><a href=\"javascript:openWigetDoc('"+point[0].getAttribute('city')+"','"+point[0].getAttribute('name_u')+"','"+point[0].getAttribute('nb')+"')\">Маркер</a>";
				    //
				    feature.closeBox = true;
				    feature.data.overflow = "auto";
					var marker = feature.createMarker();
							
					var markerClick = function (evt) {
					                	if (this.popup == null) {
						                    	this.popup = this.createPopup(this.closeBox);
						                    	map.addPopup(this.popup);
						                    	this.popup.show();
						                	} else {
						                    	this.popup.toggle();
						                	}
						                	currentPopup = this.popup;
						                	OpenLayers.Event.stop(evt);
					};
					marker.events.register("mousedown", feature, markerClick);
			        mgr.addMarker(marker);            				
			        mgr.redraw();
			        map.setCenter(lonlat, 16);
                }
			});				
}
function removealllayers(name)
{
	for(var i=0, len=map.layers.length; i<len; i++) 
	{
		if (map.layers[i])
		{
			if (map.layers[i].name != 'pk' && map.layers[i].name != name)
			{
				map.removeLayer(map.layers[i]);
				removealllayers(name);
			}
		}
	}
}
function removeallmarkers()
{
	removealllayers();
	popupDestroy();
	new Effect.Highlight('searchresult', {});
	$('searchresult').innerHTML = '';
	redrawlayer = '';
	category = '';	
}
function placemarkers2(cat)
{
	popupDestroy();
	category=cat;
	if (!old_category){old_category = cat;}
	if (old_category != cat)
	{
		for(var i=0, len=map.layers.length; i<len; i++) 
		{
			if (map.layers[i])
			{
				if (map.layers[i].name != 'pk')
				{
					map.removeLayer(map.layers[i]);
					removeallmarkers();
				}
			}
		}
		category = old_category = cat;
	}
	redrawlayer = 'placemarkers';
	var trans = map.getExtent().transform(new OpenLayers.Projection("EPSG:900913"),new OpenLayers.Projection("EPSG:4326"));
	trans = trans.toArray();
	ml = new OpenLayers.Layer.Text( "ml", {location: wsp+"/GetPlaces?cid="+category+"&maxlat="+ trans[3]+"&maxlng="+trans[2]+"&minlat="+trans[1]+"&minlng="+trans[0],'projection': new OpenLayers.Projection("EPSG:4326")} );	
	map.addLayer(ml);
}