
    var map;
    var gdir;
    var geocoder = null;
    var addressMarker;
    var lsc=null;

    var preEl ;
    var orgBColor;
   var orgTColor;

   var global_code="";
   var global_street="";
   var global_city="";




function ChangeTextColor(a_obj,a_color){  ;
   for (i=0;i<a_obj.cells.length;i++)
    a_obj.cells(i).style.color=a_color;
}

     function doGenerateMarkerHtmlCallback(marker,html,result) {
        //html.innerHTML+="<b>Result Coordinates: "+result.lat+","+result.lng+"</b><br>";
        //html.innerHTML+="<b>Marker Location: "+marker.getLatLng().toUrlValue()+"</b>";
	html.innerHTML="<b>"+global_code+"<b><br/>"+global_street+", "+global_city;
        return html;
      }


    function gotoCode(code, street, city, state, el, backColor, textColor)
    {	

	if(typeof(preEl)!='undefined') 
	{
	    preEl.bgColor=orgBColor;
	    try{ChangeTextColor(preEl,orgTColor);}catch(e){;}
	}
	orgBColor = el.bgColor;
	orgTColor = el.style.color;
	el.bgColor=backColor;

	try
	{
		ChangeTextColor(el,textColor);
	}
	catch(e)
	{			
		;
	}
  	preEl = el;

	if (street.search('Poczta')!=-1)
	{
	  if (street.search('ul')!=-1)
	    street=street.substr(street.search('ul'));	
	  else
	    street=street.replace("Poczta","");
	}
	street=street.replace("koło","");
	
	var street_short=street;

	if (street.search('od')!=-1)
	   street_short=street.substr(1,street.search('od')-2);	
	global_code=code;
	global_street=street_short;	
	global_city=city;

	lsc.execute(street_short+" "+city);

	//var point = new GLatLng(lat.parseDeg(),long.parseDeg());
	//var marker = new GMarker(point,{title:"Szerokość geograficzna: " + lat +" Długość geograficzna: " + long});
        //map.addOverlay(marker);
        //marker.openInfoWindowHtml("Szerokość geograficzna: " + lat +"<br />Długość geograficzna: " + long);
	//map.setCenter(point, 3);
    }


    function initialize(city, zoom) 
    {
      if (GBrowserIsCompatible()) {      
	map = new GMap2(document.getElementById("map_canvas"),{googleBarOptions:
          {onGenerateMarkerHtmlCallback:doGenerateMarkerHtmlCallback} });

        gdir = new GDirections(map, document.getElementById("directions"));		
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);
	map.addControl(new GLargeMapControl());
	map.addControl(new GOverviewMapControl());
	map.addControl(new GScaleControl());
	map.addControl(new GMapTypeControl());

	//map.enableGoogleBar();
	//map.enableScrollWheelZoom();
	
	var options = {
	      suppressZoomToBounds : false,
	      resultList : google.maps.LocalSearch.RESULT_LIST_SUPPRESS,
	      onGenerateMarkerHtmlCallback:doGenerateMarkerHtmlCallback
	};	

	lsc=new google.maps.LocalSearch(options);

  	map.addControl(lsc);

	var center = new GLatLng(52.4, 18.7);
	//ads.enable();
        map.setCenter(center, zoom);

      }
	
    }
    
    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 });
	//alert(loadStr);
    }


    function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("Nie znaleziono podanego adresu. Proszę spawdzić wszystkie podane adresy. Miejscowości przez które przebiegać ma trasa przejazdu muszą być oddzielone średnikami.\nKod błedu: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("Błąd serwera. Proszę spróbować później.\n Kod błedu: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("Zbyt mało parametrów wejsciowych. Proszę wypełnić wszystkie pola.\n Kod błedu: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_UNAVAILABLE_ADDRESS)
	     alert("Trasa dojazdu nie może być wyznaczona ze względów prawnych.\n Kod błędu: " + gdir.getStatus().code);	     
	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("Niepoprawny kod Google Maps. \n Kod błędu: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("Żądanie wyznaczenia trasy nie mogło zostać przetworzone.\n Kod błędu: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_UNKNOWN_DIRECTIONS)
	     alert("Trasa nie może zostać wyznaczona. Proszę o wpisanie innych danych wejściowych.\n Kod błędu: " + gdir.getStatus().code);
	   else 
             alert("Wystąpił nieznany błąd.");	   
	}

   function onGDirectionsLoad()
   {
	document.getElementById("getDistance").innerHTML = gdir.getDistance().html;		
   }
 

function toggleBox(szDivID, iState) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
       document.layers[szDivID].visibility = iState ? "show" : "hide";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
        obj.style.visibility = iState ? "visible" : "hidden";
    }
    else if(document.all)	// IE 4
    {
        document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
    }
}