   var map;
	var geocoder;
	var addressIndex;
	var mapZoom; //5 for country //13 for city //4 for province
	var address, addresses;
	var mapIndex = 0;

    function initialize() {
	  if (!window.GBrowserIsCompatible)
	  {
		alert("Fatal error: You must add the Google maps script to the head to use the maps control.");
	  }
	  mapZoom = maps[mapIndex][0];
	  address = maps[mapIndex][1];
	  addresses = maps[mapIndex][2];
	  mapIndex++;
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById(mapCanvas));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
		geocoder = new GClientGeocoder()
        if (geocoder) {
          geocoder.getLatLng(
            address,
            function(point) {
              if (!point) {
                //alert("maps.Google.com [" + address + "] " + SBPhrases["NOT_FOUND"]);
              } else {
				  map.setCenter(point, mapZoom);
				  AddMarkers();
              }
            }
          );
        }
      }
    }
	
	function AddMarkers()
	{
        // Add 10 markers to the map at random locations
        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        var lngSpan = northEast.lng() - southWest.lng();
        var latSpan = northEast.lat() - southWest.lat();
		if (addresses.length > 0)
		{
			addressIndex = 0;
			markAddress();
		}
	}
	
	function markAddress()
	{
        if (geocoder) {
          geocoder.getLatLng(
            addresses[addressIndex][0],
            function(point) {
              if (!point) {
                //alert("maps.Google.com [" + addresses[addressIndex][0] + "] " + SBPhrases["NOT_FOUND"]);
              } else {
				  map.addOverlay(createMarker(point));
              }
			  addressIndex++;
			  if (addressIndex < addresses.length)
			  {
				markAddress();
			  }
			  else
			  {
				callNext();
			  }
            }
          );
        }
	}

	function createMarker(latlng) 
	{
		var marker = new GMarker(latlng);
		marker.value = addresses[addressIndex][1];
		if (marker.value == "")
		{
			marker.value = addresses[addressIndex][0];
		}
		GEvent.addListener(marker,"click", function() {
			map.openInfoWindowHtml(latlng, marker.value);
		});
		return marker;
	}
	
	function callNext()
	{
		if (window.maps)
		{
			if (mapIndex < maps.length)
			{
				initialize(mapIndex);
			}
		}
		//initialize(); //onunload="GUnload()"
	}
    $(document).ready(function() {
          callNext();
      });