    var map;
    var addressMarker;
    var lsc;
    var l;
    var gdir;
    var geocoder;

    function initialize(x, y, zoom) {
      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("mapcanvas"));
	map.addMapType(G_PHYSICAL_MAP);
        gdir = new GDirections(map, document.getElementById("directions"));		
        GEvent.addListener(gdir, "error", handleErrors);
	//map.addControl(new GLargeMapControl());


	//map.addControl(new GOverviewMapControl());
	map.addControl(new GScaleControl());
	var mapControl = new GMapTypeControl();
        map.addControl(mapControl);
	map.enableScrollWheelZoom();
	//var options = { suppressZoomToBounds : false };
	//lsc=new google.maps.LocalSearch();
        //map.addControl(lsc, new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(100,0)));

	map.setMapType(G_HYBRID_MAP);
	var center = new GLatLng(x, y);
        map.setCenter(center, zoom);
        var extLargeMapControl = new ExtLargeMapControl();
        map.addControl(extLargeMapControl);
        geocoder = new GClientGeocoder();
      }
    }




function showAddress(address) {
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
        alert(address + " nie został znaleziony!");
      } else {
        map.setCenter(point);
      }
    }
  );
}
    
    function setDirections(fromAddress, toAddress, viaAddresses, locale) 
    {

	var loadStr;

	loadStr = 'from:' + fromAddress;
		
	if (viaAddresses!="")
	{
		var viaValue = viaAddresses.replace(/[\n\r]+/,"");
		var viaSteps = viaValue.split(';');
	
		for (var n = 0 ; n< viaSteps.length ; n++ ) 
		{
			loadStr += ' to: ' + viaSteps[n];
		}
	}		
	
	loadStr += ' to: ' + toAddress;	
	gdir.load(loadStr,  { "locale": locale });
	
    }


    function gotoLocation(location) 
    {
	lsc.execute(location);
    }
    

     function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("Nie znaleziono podanego adresu. Prosze spawdzia wszystkie podane adresy. Mo?liwe przyczyny:\n- pope3niono b31d w pisowni szukanego miejsca\n- podano niepe3n1 nazwe miejscowooci (np. Ostrowiec zamiast Ostrowiec Wielkopolski)\n- istnieje kilka miejscowooci o tej samej nazwie (nale?y podaa województwo albo miasto w pobli?u)\n- podana nazwe bardzo ma3ej miejscowooci (rozwi1zaniem mo?e bya podanie nieco wiekszej miejscowooci znajduj1cej sie w pobli?u)\n - miejscowooci przez które przebiegaa ma trasa przejazdu nie s1 oddzielone orednikami\nKod b3edu: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("B31d serwera. Prosze spróbowaa póYniej.\n Kod b3edu: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("Zbyt ma3o parametrów wejsciowych. Prosze wype3nia wszystkie pola.\n Kod b3edu: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_UNAVAILABLE_ADDRESS)
	     alert("Trasa dojazdu nie mo?e bya wyznaczona ze wzgledów prawnych.\n Kod b3edu: " + gdir.getStatus().code);	     
	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("Niepoprawny kod Google Maps. \n Kod b3edu: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("—1danie wyznaczenia trasy nie mog3o zostaa przetworzone.\n Kod b3edu: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_UNKNOWN_DIRECTIONS)
	     alert("Trasa nie mo?e zostaa wyznaczona. Prosze o wpisanie innych danych wejociowych.\n Kod b3edu: " + gdir.getStatus().code);
	   else 
             alert("Serwer Google maps jest przeci1?ony prosze spróbowaa za chwile. \n Kod b3edu: " + gdir.getStatus().code);	   
	}

