
    var map;
    var geocoder;
    var marker;
    function initialize() {
        geocoder = new google.maps.Geocoder();

        var myLatlng = new google.maps.LatLng(52.10608363949616, 20.62957776171876);
        var myOptions = {
            zoom: 14,
            center: myLatlng,
            navigationControl: true,
            mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
            mapTypeControl: true,
            scaleControl: true,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  
        GDownloadUrl("script/maps_scripts/GR.XML", function(data, responseCode) {
			var xml = GXml.parse(data);
			
			var polygon = xml.documentElement.getElementsByTagName("polygon");
			for (var i = 0; i < polygon.length; i++) {
				var p = polygon[i].getElementsByTagName("point");
				var points=[];
				for (var j = 0; j < p.length; j++) {
					points.push(new google.maps.LatLng(parseFloat(p[j].getAttribute("lat")), parseFloat(p[j].getAttribute("lng"))));
				}

                var mapBorder  = new google.maps.Polygon({
                    paths: points,
                    strokeOpacity: 0.0,
                    strokeWeight: 0,
                    fillColor: "#FFFFFF",
                    fillOpacity: 0.6
                });

                mapBorder.setMap(map);
				
			}
		});

        google.maps.event.addListener(map, 'zoom_changed', function() {
            setMinZoom();
        });
        google.maps.event.addListener(map, 'center_changed', function() {
            setTimeout(setBorderView, 100);
        });
    }
	
    function setBorderView(){
        var bound = map.getBounds();
        var center = bound.getCenter();
        if (center.lat() > 52.16366646188252){
            map.setCenter(new google.maps.LatLng( 52.16366646188252, center.lng()));
        }
        if (center.lat() < 52.031683639993005){
            map.setCenter(new google.maps.LatLng( 52.031683639993005, center.lng()));
        }
        if (center.lng() > 20.734033709594737){
            map.setCenter(new google.maps.LatLng(center.lat(),20.734033709594737));
        }
        if (center.lng() < 20.50072444064332){
            map.setCenter(new google.maps.LatLng(center.lat(),20.50072444064332));
        }
    }

    function setMinZoom() {
        var zoomLevel = map.getZoom();
        if (zoomLevel < 12) {
              map.setZoom(12);
        }  
    }

    function ShowAddress() {
        var City = document.getElementById("City").value;
        var Street = document.getElementById("Street").value;
        var Number = document.getElementById("Number").value;
        var address = "Poland, Grodzisk Mazowiecki";
        if (City !="")
            address += ", " + City;
        if (Street != "")
            address += ", " + Street;
        if (Number != "")
            address += " " + Number;
        if (geocoder) {
            geocoder.geocode( { 'address': address}, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);
                    if (marker!=null)
                        marker.setMap(null);
                    marker = new google.maps.Marker({map: map, position: results[0].geometry.location});
                } else {
                    alert("Nie odnaleziono wskazanego adresu: " + status);
                }
            });
        }
    }


