var pageLink = new Array("http://www.poznan.pl/tilecache/tilecache.cgi?","http://www-bckp.city.poznan.pl/tilecache/tilecache.cgi?");
							

var layer_switcher = null;
var permalink_control = null;
var map = null;
var popup = null;

var maxResolutionVal = null;
var localBuffer = 1;
var imageFormat = 'image/png';
var localOpacity = 1.0;
var isTransparent = 'true';
var maxZoomLevels = 9;

var localMaxExtend = null;
var localProjection = null;
var resolutions = null;

var kml_layer = null;
var wms_georss = null;
var wms_cmentarz = null;
var wms_gml = null;
var wms_georss_obiekty = null;
var wms_georss_mpk = null;
var wms_marker = null;
var wms_mpk = null;
var wms_aglomeracja = null;
var wms_poznan = null;

var transparentImageFormat = 'image/png';
var ieSuff = "";

//wkt
var wkt_features = null;
var wkt_vectors = null;
var wkt_bounds = null;
var wkt = null;

var zoom = null;
var centerPoint = null;

function setOrto() {
	map.setBaseLayer(wms_orto, true);
	map.events.triggerEvent("changebaselayer");
}

function setPlan() {
	map.setBaseLayer(wms_plan, true);
	map.events.triggerEvent("changebaselayer");
}

function setHybryd() {
	map.setBaseLayer(wms_hybryda, true);
	map.events.triggerEvent("changebaselayer");
}

/*nadpisana funkcja z pliku openlayers_commons.js*/
function updatePoint() {
	var inval = OpenLayers.Util.getElement('id_ulica_street_lookup').value;
	var areaType = OpenLayers.Util.getElement('streetForm').elements['areaType'] != null ?
					 OpenLayers.Util.getElement('streetForm').elements['areaType'].value : null;
	
	if (inval) {
		try {
			OpenLayers.Util.getElement('ajax_indicator_id_ulica_street_lookup').style.display="";
			OpenLayers.Util.getElement('id_ulica_street_lookup').disabled=true;
			OpenLayers.Util.getElement('OpenMap').style.cursor = 'wait';
		} catch (e){}
		
		var tab = inval.split(",");
		var address = {mapType: areaType};
		
		if(tab.length <= 2){
			address.city = tab[0];
			address.street = tab[1];
			//address.street = inval;
		} else {
			address.city = tab[0];
			address.street = tab[1];
	  		address.number = tab[2];
		}
		Ajax_geo.getAglomerationPosition(address, loadPointsWrapper);
	}
}

function loadPoints(items, area) {
	OpenLayers.Feature.Vector.style['default'].strokeWidth = '3px';
	OpenLayers.Feature.Vector.style['default'].strokeColor = 'red';
	if (kml_layer != null) {
		map.removeLayer(kml_layer);
		kml_layer.destroy();
		kml_layer = null;
	}
	if (wms_georss != null) {
		map.removeLayer(wms_georss);
		wms_georss.destroy();
		wms_georss = null;
	}
	if (wms_georss_obiekty != null) {
		map.removeLayer(wms_georss_obiekty);
		wms_georss_obiekty.destroy();
		wms_georss_obiekty = null;
	}
	if (wms_georss_mpk != null) {
		map.removeLayer(wms_georss_mpk);
		wms_georss_mpk.destroy();
		wms_georss_mpk = null;
	}

	var zoom = MAP_ZOOM;
	var alertText = 'Nie znaleziono ulicy o podanej nazwie.';
	var newLayerName = "";
	var kmlLayerLink = pageLinkProxy + "?co=kml";
	var rssLayerLink = pageLinkProxy + "?co=rss";
	var param = "";
	var isAddressExist = true;
	if(OpenLayers.Util.getElement('id_ulica_street_lookup').value){
		newLayerName = OpenLayers.Util.getElement('id_ulica_street_lookup').value;
	}

	if (area == true){
		zoom = MAP_ZOOM - 2;
		alertText = 'Nie znaleziono obszaru o podanym identyfikatorze.';
		newLayerName = OpenLayers.Util.getElement('sa_name').value;
		var sa_id = encodeURIComponentNew(OpenLayers.Util.getElement('sa_id').value);
		param = "&sa_id=" + sa_id;
	} else {
		var street_without_uri_encoding = (OpenLayers.Util.getElement('id_ulica_street_lookup').value);
		var street = encodeURIComponentNew(street_without_uri_encoding);
		var tab = street_without_uri_encoding.split(",");
		
		if(tab.length < 2){
			param = "&street=" + street+"&mapType=A";
		} else {
			street = encodeURIComponentNew(tab[1]);
			var city = encodeURIComponentNew(tab[0]);
			param = "&city=" + city + "&street=" + street +"&mapType=A&number="+tab[2];
		}
		
		if (street_without_uri_encoding.indexOf(",") >=0 && items != null) {
			isAddressExist = false;
			for (var i = 0; i < items.length; ++i) {
				if (items[i].addressPoints) {
					isAddressExist = true;
					break;
				}
			}
		}

	}

	kmlLayerLink = kmlLayerLink + param;
	rssLayerLink = rssLayerLink + param;

	for (var i = 0; items != null && i < items.length; ++i) {
		if (i == 0) {
			map.setCenter(new OpenLayers.LonLat(items[i].x - 1, items[i].y - 1), zoom, true, false);
			break;
		}
	}

	if (items != null && items.length > 0) {
		kml_layer = new OpenLayers.Layer.GML(newLayerName, kmlLayerLink,
				{
					format: OpenLayers.Format.KML,
					maxExtent: localMaxExtend,
					projection: localProjection,
					maxResolution: maxResolutionVal
				}
		);
		kml_layer.id = 'kml_layer';
		map.addLayer(kml_layer);

		wms_georss = new OpenLayers.Layer.MyGeoRSS("punkt adresowy", rssLayerLink,
				{popupWidth: 250,
				popupHeight: 125,
				iconWidth: 21,
				iconHeight: 25,
				iconURL: iconLinkDir + '/marker.gif'
				}
		);
		wms_georss.displayInLayerSwitcher =false;
		map.addLayer(wms_georss);
		wms_georss.id = 'wms_georss';
		wms_georss.maxExtent = localMaxExtend;
		wms_georss.projection = localProjection;
		wms_georss.maxResolution = maxResolutionVal;
		

		if (isAddressExist == false) {
			alert('Nie znaleziono podanego punktu adresowego.');
		} else {
			try {
				OpenLayers.Util.getElement('ulica_street_lookup').value = OpenLayers.Util.getElement('id_ulica_street_lookup').value;
			} catch (e) {
			}
		}
	} else {
		alert(alertText);
	}

	for (var i = 0; i < items.length; ++i) {
		if (i == 0) {
			map.setCenter(new OpenLayers.LonLat(items[i].x, items[i].y), zoom, true, false);
			break;
		}
	}

	layer_switcher.updateMap();
	
	OpenLayers.Util.getElement('OpenMap').style.cursor = 'pointer';

	if(area == false) { //jesli ulica
		try {
			OpenLayers.Util.getElement('ajax_indicator_id_ulica_street_lookup').style.display="";
			OpenLayers.Util.getElement('id_ulica_street_lookup').disabled=false;
			OpenLayers.Util.getElement('id_ulica_street_submit').focus();
			OpenLayers.Util.getElement('ajax_indicator_id_ulica_street_lookup').style.display="none";
		} catch(e) {
			//when hidden field street
		}
	}
}
/*
function initCemeteryMap() {
	var cemeteryBaseLayer = false;
	var args = OpenLayers.Util.getArgs();
	var mainBaseLayer = "";

	transparentImageFormat = 'image/png';
	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1]);
	if (version >= 5.5 && version <= 6.5) {
		ieSuff = "_gif";
		transparentImageFormat = 'image/gif'
	}

	mainBaseLayer = 'poznan_cmentarze'+ieSuff;
	if (pageLinkPlan.contains("localhost") || pageLinkPlan.contains("mimtest")) {
		mainBaseLayer = 'poznan_cmentarze_test'+ieSuff;
	}
	textBaseLayer = 'cmentarze';
	
	localMaxExtend2 = new OpenLayers.Bounds(13600.0,95000.0,37600.0,120000.0);
	map.setCenter(new OpenLayers.LonLat(25600,107500.0), 0, true, false);
	if (args.cm_id && args.cm_id == "1") {
		map.setCenter(new OpenLayers.LonLat(31956.25,109827.63175), 3, true, false);
	}else if(args.cm_id && args.cm_id == "2"){
		map.setCenter(new OpenLayers.LonLat(20100,106675), 3, true, false);
	}else if(args.cm_id && args.cm_id == "3"){
		map.setCenter(new OpenLayers.LonLat(19854,112214), 6, true, false);
	}else if(args.cm_id && args.cm_id == "4"){
		map.setCenter(new OpenLayers.LonLat(23852,109575), 5, true, false);
	}else if(args.cm_id && args.cm_id == "5"){
		map.setCenter(new OpenLayers.LonLat(27291,109497), 6, true, false);
	}else if(args.cm_id && args.cm_id == "6"){
		map.setCenter(new OpenLayers.LonLat(23673,106348), 5, true, false);
	}else if(args.cm_id && args.cm_id == "7"){
		map.setCenter(new OpenLayers.LonLat(27566,109830), 7, true, false);
	}else if(args.cm_id && args.cm_id == "8"){
		map.setCenter(new OpenLayers.LonLat(27192,110126), 6, true, false);
	}
	if (args.cm_id && (args.cm_id == "8" ||args.cm_id == "7" ||args.cm_id == "6" ||args.cm_id == "5" ||args.cm_id == "4" || args.cm_id == "3" || args.cm_id == "2" || args.cm_id == "1") ) {
		wms_cmentarz = new OpenLayers.Layer.WMS(textBaseLayer,
			pageLink,
			{
				layers: mainBaseLayer, 'VERSION': "1.1.1",
				transparent: isTransparent,
				format: transparentImageFormat
			},
			{
				maxExtent: localMaxExtend2,
				projection: localProjection,
				maxResolution: maxResolutionVal,
				isBaseLayer: cemeteryBaseLayer,
				buffer: localBuffer,
				numZoomLevels: maxZoomLevels,
				opacity: localOpacity
		});
		wms_cmentarz.id = mainBaseLayer;
		map.addLayer(wms_cmentarz);
		wms_cmentarz.setVisibility(true);
		/* IE do wersji 7 nie obsluguje GML *//*
		if (isNaN(version) && args.id!=2664 && args.cm_id!=3) {

			wms_gml = new OpenLayers.Layer.GML("wms_gml",
				pageLinkPlan + "?co=gml&cm_id="+args.cm_id +"&id="+args.id
			);

			wms_gml.maxExtent = localMaxExtend;
			wms_gml.projection = localProjection;
			wms_gml.maxResolution = maxResolutionVal;
			wms_gml.reproject = false;
			map.addLayer(wms_gml);

			wms_gml.id = 'wms_gml';
		}

		var request_params ="";

		if(!args.name_surname){
			var fname;
			var sname;
			if(isNaN(version)){
				fname=args.name;
				sname=args.surname;
			}else{
				fname=encodeUTF(args.name);
				sname=encodeUTF(args.surname);
			}
			request_params = pageLinkPlan + "?co=rss&cm_id="+args.cm_id +"&id="+args.id+"&name="+fname+"&surname="+sname;

		}else{
			var fsname;
			if(isNaN(version)){
				fsname=args.name_surname;
			}else{
				fsname=encodeUTF(args.name_surname);
			}
				request_params = pageLinkPlan + "?co=rss&cm_id="+args.cm_id +"&id="+args.id+"&name_surname="+fsname;
		}

		wms_georss = new OpenLayers.Layer.MyGeoRSS("wms_georss",
				request_params,
				{
					popupWidth: 275,
					popupHeight: 125,
					iconWidth: 24,
					iconHeight: 24,
					reproject: false,
					showPopup: true,
					iconURL: iconLinkDir + '/marker.gif'
		});
		showPopupNoFound: true,
		map.addLayer(wms_georss);

		wms_georss.id = 'wms_georss';
		wms_georss.maxExtent = localMaxExtend;
		wms_georss.projection = localProjection;
		wms_georss.maxResolution = maxResolutionVal;
		wms_georss.reproject = false;

		wms_georss.setVisibility(false);
		wms_georss.setVisibility(true);
	}
}
*/

function initMap(notPermalink) {
 	var wms = null;
	var args = OpenLayers.Util.getArgs();

	transparentImageFormat = 'image/png';
	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1]);
	if (version >= 5.5 && version <= 6.5) {
		ieSuff = "_gif";
		transparentImageFormat = 'image/gif';
		imageFormat = 'image/gif';
	}

	map = prepareAglomeracjaMap(map);

	map.addControl(new OpenLayers.Control.Navigation());
	map.addControl( new OpenLayers.Control.PanZoom());
	//map.addControl( new OpenLayers.Control.MousePosition());
	layer_switcher = new OpenLayers.Control.MyLayerSwitcher({'div':$('layer_switcher')});
	map.addControl(layer_switcher);
	if (!notPermalink) {
		permalink_control = new OpenLayers.Control.MyPermalink({'div':$('permalink')});
		map.addControl(permalink_control);
	}

  	initAglomeracjaMap(map, pageLink, transparentImageFormat, ieSuff);
    
	var wms_obreby = new OpenLayers.Layer.WMS("obręby ewidencyjne", pageLink, {
			layers: 'powiat_obreby_2000' + ieSuff,
			transparent: "true",
			format: transparentImageFormat
		}, {
			'isBaseLayer': false,
			group: "Powiat poznański",
			minScale: 10000
		}, {
			resolutions: resolutions
		});

    wms_obreby.id = 'obreby';
    wms_obreby.visibility = false;
	map.addLayer(wms_obreby);
	
	mainBaseLayer = 'poznan_samorzady_2000' + ieSuff;

	wms_samorzady = new OpenLayers.Layer.WMS("samorządy lokalne",
		pageLink,
		{
			layers: mainBaseLayer, 'VERSION': "1.1.1",
			transparent: isTransparent,
			format: transparentImageFormat
		},
		{
			maxExtent: localMaxExtend,
			projection: localProjection,
			maxResolution: maxResolutionVal,
			isBaseLayer: false,
			minScale: 40000,
			group:"Poznań",
			reproject : false,
			buffer: localBuffer,
			opacity: localOpacity
	});
	wms_samorzady.id = 'wms_samorzady';
	map.addLayer(wms_samorzady);
	wms_samorzady.setVisibility(false);
	
	mainBaseLayer = 'poznan_parafie_2000'+ieSuff;

	wms_parafie = new OpenLayers.Layer.WMS("parafie",
		pageLink,
		{
			layers: mainBaseLayer, 'VERSION': "1.1.1",
			transparent: isTransparent,
			format: transparentImageFormat
		},
		{
			maxExtent: localMaxExtend,
			projection: localProjection,
			minScale: 40000,
			 group:"Poznań",			
			isBaseLayer: false,
			reproject : false,
			buffer: localBuffer,
			opacity: localOpacity
	});
	wms_parafie.id = 'wms_parafie';
	map.addLayer(wms_parafie);
	wms_parafie.setVisibility(false);
	
	mainBaseLayer = 'poznan_rowerowe_2000'+ieSuff;		


	wms_rowery = new OpenLayers.Layer.WMS("trasy rowerowe",
		pageLink,
		{
			layers: mainBaseLayer, 'VERSION': "1.1.1",
			transparent: isTransparent,
			format: transparentImageFormat
		},
		{
			maxExtent: localMaxExtend,
			projection: localProjection,
			minScale: 40000,
			group:"Poznań",
			isBaseLayer: false,
			reproject : false,
			buffer: localBuffer,
			opacity: localOpacity
	});
	wms_rowery.id = 'wms_rowery_1';
	map.addLayer(wms_rowery);
	wms_rowery.setVisibility(false);
	if (pageLinkPlan.contains("localhost") || pageLinkPlan.contains("mimtest")) {	
	var wms_natura = new OpenLayers.Layer.WMS("obszary Natura 2000", pageLink, {
			layers: 'aglomeracja_natura_2000' + ieSuff,
			transparent: "true",
			format: transparentImageFormat
		}, {
			'isBaseLayer': false,
			group: "Cały obszar aglomeracji",
			minScale: 500000
		}, {
			resolutions: resolutions
		});

    wms_natura.id = 'natura';
    wms_natura.visibility = false;
	map.addLayer(wms_natura);
	
}	
		
    if (!map.getCenter()) map.zoomToMaxExtent();
    if (!args.layers) map.setCenter(centerPoint, zoom, true, false);

	//usePermalink(args);
	/*wms_plan = new OpenLayers.Layer.WMS('Poznan',
		pageLink,
		{
			layers: 'plan', 'VERSION': "1.1.1",
			format: 'image/png',
			bgcolor: "0xf0ebe7"
		},
		{
			maxExtent: localMaxExtend,
			projection: localProjection,
			maxResolution: maxResolutionVal,
			numZoomLevels: maxZoomLevels,
			buffer: localBuffer
	});
	wms_plan.id = 'plan';
	map.addLayer(wms_plan);

	mainBaseLayer = 'budynki'+ieSuff;
	wms_budynki = new OpenLayers.Layer.WMS("budynki",
		pageLink,
		{
			layers: mainBaseLayer, 'VERSION': "1.1.1",
			transparent: isTransparent,
			format: transparentImageFormat
		},
		{
			maxExtent: localMaxExtend,
			projection: localProjection,
			maxResolution: 8.0,
			isBaseLayer: false,
			reproject : false,
			buffer: localBuffer,
			opacity: localOpacity
	});
	wms_budynki.id = 'wms_budynki';
	map.addLayer(wms_budynki);
	wms_budynki.setVisibility(false);

	newl = new OpenLayers.Layer.MyGeoRSS( "koscioly_parafie",  pageLinkPlan + "?co=rss&service=parafie",
			{popupWidth: 250,
			popupHeight: 100,
			iconWidth: 25,
			iconHeight: 25,
			iconURL:  iconLinkDir + '/church.gif',
			service: 'parafie'
			}
		);*/

	/*prefix niewidoczna powoduje ze wartwa nie jest wyswietlana w komponencie layer switcher
	 * ustawienie id wg ciagznakow + _nazwa innej warstwy powoduje rownoczesne ukrywanie
	 * lub odslanianie na planie wszystkich warstw spelniajacych powyzsze kryterium*/
	/*newl.id = 'niewidoczna_koscioly_wms_parafie';
	newl.setBorderStyle('solid', '4px', '#FF0F0F');
	map.addLayer(newl);
	newl.maxResolution = maxResolutionVal;
	newl.setVisibility(false);*/
/*

	newl_samorzady = new OpenLayers.Layer.MyGeoRSS( "samorządy lokalne środek", pageLinkPlan + "?co=rss&service=osiedla",
			{popupWidth: 250,
			popupHeight: 50,
			iconWidth: 20,
			iconHeight: 25,
			iconURL:  iconLinkDir + '/marker_c.gif',
			service: 'osiedla'
			}
		);
	newl_samorzady.id = 'niewidoczna_srodek_wms_samorzady';
	newl_samorzady.setBorderStyle('solid', '4px', '#FF0F0F');
	map.addLayer(newl_samorzady);
	newl_samorzady.setVisibility(false);
	newl_samorzady.maxResolution = maxResolutionVal;


	if (pageLinkPlan.contains("localhost") || pageLinkPlan.contains("mimtest")) {
		map.addControl(new OpenLayers.Control.ScaleLine());
		mainBaseLayer = 'mpk'+ieSuff;
		wms_mpk = new OpenLayers.Layer.WMS("MPK",
			pageLink,
			{
				layers: mainBaseLayer, 'VERSION': "1.1.1",
				transparent: isTransparent,
				format: transparentImageFormat
			},
			{
				maxExtent: localMaxExtend,
				projection: localProjection,
				maxResolution:4.0,
				isBaseLayer: false,
				reproject : false,
				buffer: localBuffer,
				opacity: localOpacity
		});
		wms_mpk.id = 'wms_mpk';
		map.addLayer(wms_mpk);
		wms_mpk.setVisibility(false);
	}

	wms_orto = new OpenLayers.Layer.WMS("Ortofotomapa",
		pageLink,
		{
			layers: 'poznan_orto', 'VERSION': "1.1.1",
			transparent: isTransparent,
			format: 'image/gif',
			bgcolor: "0xf0ebe7"
		},
		{
			maxExtent: localMaxExtend,
			projection: localProjection,
			maxResolution: maxResolutionVal,
			isBaseLayer: true,
			buffer: localBuffer,
			numZoomLevels: maxZoomLevels,
			opacity: localOpacity
	});
	wms_orto.id = 'wms_orto';
	map.addLayer(wms_orto);

	wms_hybryda = new OpenLayers.Layer.WMS("Hybryda",
		pageLink,
		{
			layers: 'poznan_hybryda', 'VERSION': "1.1.1",
			transparent: isTransparent,
			format: 'image/gif',
			bgcolor: "0xf0ebe7"
		},
		{
			maxExtent: localMaxExtend,
			projection: localProjection,
			maxResolution: maxResolutionVal,
			isBaseLayer: true,
			buffer: localBuffer,
			numZoomLevels: maxZoomLevels,
			opacity: localOpacity
	});
	wms_hybryda.id ='wms_hybryda';
	map.addLayer(wms_hybryda);
*/
	var args = OpenLayers.Util.getArgs();
	if (args.id_klasy || args.id_obiektu) {
		if (wms_georss_obiekty != null) {
			map.removeLayer(wms_georss_obiekty);
			wms_georss_obiekty.destroy();
			wms_georss_obiekty = null;
		}
		var args_lang = 'pl';
		if (args.lang) {
			args_lang = args.lang;
		}
		var _link = pageLinkPlan + "?co=rss";
		if (args.id_obiektu) {
			_link = _link + "&id_obiektu="+args.id_obiektu + "&lang=" + args_lang;
		}
		if (args.id_klasy) {
			_link = _link + "&id_klasy="+args.id_klasy + "&lang=" + args_lang;
		}

		wms_georss_obiekty = new OpenLayers.Layer.MyGeoRSS("obiekty na planie",
			_link,
				{popupWidth: 250,
				popupHeight: 150,
				iconWidth: 21,
				iconHeight: 25,
				iconURL:  iconLinkDir + '/marker.gif'
			}
		);
		map.addLayer(wms_georss_obiekty);

		wms_georss_obiekty.id = 'wms_georss_obiekty';
		wms_georss_obiekty.maxExtent = localMaxExtend;
		wms_georss_obiekty.projection = localProjection;
		wms_georss_obiekty.maxResolution = maxResolutionVal;
		wms_georss_obiekty.reproject = false;

		/*
		if (map.baseLayer == wms_plan) {
			map.setBaseLayer(wms_orto, true);
			map.setBaseLayer(wms_plan, true);
		}*/
	}
	/*
	initCemeteryMap();

	if (args.lat && args.lon && args.marker) {
		addMarker(new OpenLayers.LonLat(args.lon, args.lat), false);
	}

	if(wkt_features){
		map.addLayers([wkt_vectors]);

		wkt_vectors.maxExtent = localMaxExtend;
		wkt_vectors.projection = localProjection;
		wkt_vectors.maxResolution = maxResolutionVal;
		wkt_vectors.reproject = false;

		map.zoomToExtent(wkt_bounds);
	}

	map.events.register("move", map, OpenLayers.Map.zoomUpdate);
	map.events.register("click", map, clickUpdate);

	if (!map.getCenter()) map.zoomToMaxExtent();*/
}
/*
function clickUpdate(evt) {
		if (wms_mpk != null && wms_mpk.visibility == true) {
			if (wms_georss_mpk != null) {
				map.removeLayer(wms_georss_mpk);
				wms_georss_mpk.destroy();
				wms_georss_mpk = null;
			}

			var lonLat = map.getLonLatFromPixel(evt.xy);
			var _link = pageLinkPlan + "?co=rss&service=przystanki&X=" + lonLat.lon + "&Y="+ lonLat.lat;

			wms_georss_mpk = new OpenLayers.Layer.MyGeoRSS("przystanki w pobliżu",
				_link,
					{
						popupWidth: 250,
						popupHeight: 100,
						iconWidth: 20	,
						iconHeight: 25,
						service: 'wms_georss_mpk',
						showPopup: true
					}
			);
			map.addLayer(wms_georss_mpk);

			wms_georss_mpk.id = 'niewidoczna_wms_mpk';
			wms_georss_mpk.maxExtent = localMaxExtend;
			wms_georss_mpk.projection = localProjection;
			wms_georss_mpk.maxResolution = maxResolutionVal;
			wms_georss_mpk.reproject = false;

			wms_georss_mpk.inRange = true;
			layer_switcher.redraw();
			wms_georss_mpk.redraw();
	}
}
*/
function removeMarker() {
	if (wms_marker != null) {
		map.removeLayer(wms_marker);
		wms_marker.destroy();
		wms_marker = null;
	}
	try {
		OpenLayers.Util.getElement('lon').value = "0";
		OpenLayers.Util.getElement('lat').value = "0";
	} catch (e) {}
}

function addMarker(lonlat, removeM) {
	if (wms_marker != null) {
		map.removeLayer(wms_marker);
		wms_marker.destroy();
		wms_marker = null;
	}

	wms_marker = new OpenLayers.Layer.Markers("punkt");
	map.addLayer(wms_marker);

	feature = new OpenLayers.Feature(wms_marker, lonlat);
	marker = feature.createMarker();

	wms_marker.addMarker(marker);
	if (removeM == true) {
		marker.events.register("click", marker, removeMarker);
	}

	wms_marker.id = 'wms_marker';
	wms_marker.maxExtent = localMaxExtend;
	wms_marker.projection = localProjection;
	wms_marker.maxResolution = maxResolutionVal;

	layer_switcher.redraw();
	wms_marker.redraw();

	try {
		OpenLayers.Util.getElement('lon').value = lonlat.lon;
		OpenLayers.Util.getElement('lat').value = lonlat.lat;
		OpenLayers.Util.getElement('ulica_street_lookup').value = OpenLayers.Util.getElement('id_ulica_street_lookup').value ;
	} catch (e) {
	}
}

function parseWKT(element) {
	wkt = new OpenLayers.Format.WKT();
	var style_red = OpenLayers.Util.extend({},
	OpenLayers.Feature.Vector.style['default']);
	style_red.strokeColor = "#FF0000";
	style_red.fillColor = "#FA4500";
	style_red.strokeOpacity = 0.7;
	style_red.strokeWidth = 2;
	OpenLayers.Feature.Vector.style['default'] = style_red;

	wkt_vectors = new OpenLayers.Layer.Vector("Geometria użytkownika");
	wkt_features = wkt.read(element);

	if (wkt_features) {
		if(wkt_features.constructor != Array) {
			wkt_features = [wkt_features];
		}
		for(var i=0; i <wkt_features.length; ++i) {
			if (!wkt_bounds) {
				wkt_bounds = wkt_features[i].geometry.getBounds();
			} else {
				wkt_bounds.extend(wkt_features[i].geometry.getBounds());
			}
		}
		wkt_vectors.addFeatures(wkt_features);
	} else {
		alert('Nieprawidłowy format WKT');
	}
}

function encodeUTF(string) {
	string = string.replace(/\r\n/g,"\n");
	var utftext = "";

	for (var n = 0; n < string.length; n++) {
		var c = string.charCodeAt(n);

		if (c < 128 && c!=32) {
			utftext += String.fromCharCode(c);
		} else if(c==32){
			utftext +='%20';
		} else if((c > 127) && (c < 2048)) {
			utftext += '%';
			utftext += ((c >> 6) | 192).toString(16);
			utftext += '%';
			utftext += ((c & 63) | 128).toString(16);
		} else {
			utftext += '%';
			utftext += ((c >> 12) | 224).toString(16);
			utftext += '%';
			utftext += (((c >> 6) & 63) | 128).toString(16);
			utftext += '%';
			utftext +=((c & 63) | 128).toString(16);
		}
	}
	return utftext;
}

