    var mapa;
    var marker;
    var geokoder = new GClientGeocoder();
    var hidden_lat;
    var hidden_lng;
    var hidden_zoom;
    var blocked;

    function mapaStart() {
        if(GBrowserIsCompatible()) {
            mapa = new GMap2(document.getElementById("mapka"));
            mapa.enableDoubleClickZoom();
            mapa.enableContinuousZoom();
            mapa.enableScrollWheelZoom();

            hidden_lat = document.getElementById("lat").value;
            hidden_lng = document.getElementById("lng").value;
            hidden_zoom = parseInt(document.getElementById("zoom").value);
            blocked = document.getElementById("blocked").value;
            mapa.setCenter(new GLatLng(hidden_lat,hidden_lng),hidden_zoom);
            mapa.addControl(new GLargeMapControl());  

            if (blocked == 1) {
                marker = new GMarker(mapa.getCenter(),{draggable: false});mapa.addOverlay(marker);
            } else {
                marker = new GMarker(mapa.getCenter(),{draggable: true}); 
                mapa.addOverlay(marker);
                GEvent.addListener(marker,'drag',uaktualnijWspolrzedne);
                GEvent.addListener(marker,'drag',uaktualnijGeolokalizacja);

	        GEvent.addListener(mapa,'click',function(obiekt,punkt) {
                    if(punkt) {
                        marker.setPoint(punkt);
                        uaktualnijGeolokalizacja();
                        uaktualnijWspolrzedne()
                    }
	        });
           }

        }
    }
	
    function uaktualnijWspolrzedne() {
        hidden_lat = document.getElementById('lat');
        hidden_lng = document.getElementById('lng');
        var punkt = marker.getLatLng();

        hidden_lat.value = parseFloat(punkt.lat());
        hidden_lng.value = parseFloat(punkt.lng());
    }

    function uaktualnijGeolokalizacja() {
        var punkt = marker.getLatLng();

        geokoder.getLocations(punkt,function(odpowiedz) {
            var input_ulica = document.getElementById('ulica');
            var input_wojewodztwo = document.getElementById('profil_wojewodztwo');
            var input_miasto = document.getElementById('profil_miasto');

            if(!odpowiedz || odpowiedz.Status.code != 200) {
                input_ulica.value = '';
                input_miasto.value = '';
                input_wojewodztwo.selectedIndex = 0;
            } else {
                var wojewodztwo = odpowiedz.Placemark[0].AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
                var miasto = odpowiedz.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
                var ulica = odpowiedz.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;

                input_wojewodztwo.selectedIndex = znajdzOptions(input_wojewodztwo, wojewodztwo);
                input_ulica.value = ulica;
                input_miasto.value = miasto;
            }
        });
        uaktualnijWspolrzedne()
    }

    function showAddress(address) {
      if (geokoder) {
        geokoder.getLatLng(
          address,
          function(point) {
            if (point) {
              mapa.setCenter(point, 13);
              marker.setPoint(point);
              mapa.addOverlay(marker);
              uaktualnijGeolokalizacja();
            }
          }
        );
      }
    }

    function znajdzOptions(input, label) {
        for (var i=0;i<input.options.length;i++) {
            if (input.options[i].innerHTML == label) {return i;i=input.options.length;}
        }
    }
