    var map;
    var MarylandRegionsGeoXML; 

    function CreateCityMarker(city_id,city_name,latitude,longitude)
    {
      var point = new GLatLng(latitude, longitude);

      var MarkerOptions = { title:city_name };
      var marker = new GMarker(point, MarkerOptions);

      GEvent.addListener(marker,'click',function()
      {
        var openWindowStr = '<strong>' + city_name + '</strong><br><a href="city.php?CityID=' + city_id + '">Click here</a> to find inns that are<br>located in or near this city.';
        marker.openInfoWindowHtml(openWindowStr);
      });

var tooltip = new Tooltip(marker,city_name,0);
marker.tooltip = tooltip;

      map.addOverlay(marker);
map.addOverlay(tooltip);
tooltip.show();
    }

    function CreateRegionMarkers()
    {
      // Create western region marker icon
      var WesternRegionIcon = new GIcon();
      WesternRegionIcon.image = "images/map-western.png";
      WesternRegionIcon.iconSize = new GSize(132, 96);
      WesternRegionIcon.iconAnchor = new GPoint(0, 0);
      // Set up our GMarkerOptions object
      WesternMarkerOptions = { icon:WesternRegionIcon };
      var WesternLatLng = new GLatLng(39.749725, -78.564941);
      var WesternMarker = new GMarker(WesternLatLng,WesternMarkerOptions);

      GEvent.addListener(WesternMarker,'click',function()
      {
        top.location.href = 'region.php?RegionName=Western';
      });


      // Create capital region marker icon
      var CapitalRegionIcon = new GIcon();
      CapitalRegionIcon.image = "images/map-capital.png";
      CapitalRegionIcon.iconSize = new GSize(127, 96);
      CapitalRegionIcon.iconAnchor = new GPoint(0, 0);
      // Set up our GMarkerOptions object
      CapitalMarkerOptions = { icon:CapitalRegionIcon };
      var CapitalLatLng = new GLatLng(39.383654, -77.812647);
      var CapitalMarker = new GMarker(CapitalLatLng,CapitalMarkerOptions);

      GEvent.addListener(CapitalMarker,'click',function()
      {
        top.location.href = 'region.php?RegionName=Capital';
      });


      // Create upper eastern shore region marker icon
      var UpperEasternRegionIcon = new GIcon();
      UpperEasternRegionIcon.image = "images/map-upper-eastern.png";
      UpperEasternRegionIcon.iconSize = new GSize(129, 144);
      UpperEasternRegionIcon.iconAnchor = new GPoint(0, 0);
      // Set up our GMarkerOptions object
      UpperEasternMarkerOptions = { icon:UpperEasternRegionIcon };
      var UpperEasternLatLng = new GLatLng(39.483654, -76.312647);
      var UpperEasternMarker = new GMarker(UpperEasternLatLng,UpperEasternMarkerOptions);

      GEvent.addListener(UpperEasternMarker,'click',function()
      {
        top.location.href = 'region.php?RegionName=Upper Eastern Shore';
      });

      // Create central region marker icon
      var CentralRegionIcon = new GIcon();
      CentralRegionIcon.image = "images/map-central.png";
      CentralRegionIcon.iconSize = new GSize(133, 96);
      CentralRegionIcon.iconAnchor = new GPoint(0, 0);
      // Set up our GMarkerOptions object
      CentralMarkerOptions = { icon:CentralRegionIcon };
      var CentralLatLng = new GLatLng(39.770017, -76.970746);
      var CentralMarker = new GMarker(CentralLatLng,CentralMarkerOptions);

      GEvent.addListener(CentralMarker,'click',function()
      {
        top.location.href = 'region.php?RegionName=Central';
      });


      // Create southern region marker icon
      var SouthernRegionIcon = new GIcon();
      SouthernRegionIcon.image = "images/map-southern.png";
      SouthernRegionIcon.iconSize = new GSize(149, 96);
      SouthernRegionIcon.iconAnchor = new GPoint(0, 0);
      // Set up our GMarkerOptions object
      SouthernMarkerOptions = { icon:SouthernRegionIcon };
      var SouthernLatLng = new GLatLng(38.564354, -77.279607);
      var SouthernMarker = new GMarker(SouthernLatLng,SouthernMarkerOptions);

      GEvent.addListener(SouthernMarker,'click',function()
      {
        top.location.href = 'region.php?RegionName=Southern';
      });


      // Create Lower eastern shore region marker icon
      var LowerEasternRegionIcon = new GIcon();
      LowerEasternRegionIcon.image = "images/map-lower-eastern.png";
      LowerEasternRegionIcon.iconSize = new GSize(129, 144);
      LowerEasternRegionIcon.iconAnchor = new GPoint(0, 0);
      // Set up our GMarkerOptions object
      LowerEasternMarkerOptions = { icon:LowerEasternRegionIcon };
      var LowerEasternLatLng = new GLatLng(38.664354, -76.212647);
      var LowerEasternMarker = new GMarker(LowerEasternLatLng,LowerEasternMarkerOptions);

      GEvent.addListener(LowerEasternMarker,'click',function()
      {
        top.location.href = 'region.php?RegionName=Lower Eastern Shore';
      });


      map.addOverlay(WesternMarker);
      map.addOverlay(CapitalMarker);
      map.addOverlay(UpperEasternMarker);
      map.addOverlay(CentralMarker);
      map.addOverlay(SouthernMarker);
      map.addOverlay(LowerEasternMarker);
    }



    function initialize_region_map(region_id,display_region_markers)
    {
      if (GBrowserIsCompatible())
      {
        // initialize KML overlay 
        MarylandRegionsGeoXML = new GGeoXml("http://www.marylandbb.com/google-maps/maryland-regions.kml");

        // initialize map
        map = new GMap2(document.getElementById("map_canvas")); 

        switch(region_id)
        {
          case 0:
          {
            map.setCenter(new GLatLng(39.005017,-76.951611), 8); 
            break;
          }
          case 1:  // central
          {
            map.setCenter(new GLatLng(39.245017,-76.651611), 9); 
            break;
          }
          case 2:  // capital
          {
            map.setCenter(new GLatLng(39.159882,-77.236633), 9); 
            break;
          }
          case 3:  // southern
          {
            map.setCenter(new GLatLng(38.408406,-76.835632), 9); 
            break;
          }
          case 4:  // western
          {
            map.setCenter(new GLatLng(39.59299, -78.508301), 9); 
            break;
          }
          case 5:  // upper eastern shore
          {
            map.setCenter(new GLatLng(39.276916,-75.942993), 9); 
            break;
          }
          case 6:  // lower eastern shore
          {
            map.setCenter(new GLatLng(38.393339,-75.835876), 9); 
            break;
          }
        }  // end of switch

        map.addControl(new GMapTypeControl());

        map.addOverlay(MarylandRegionsGeoXML);

        if(1 == display_region_markers)
        {
          CreateRegionMarkers();
        }

        var count = 0;
        while(count < TotalCities)
        {
          CreateCityMarker(cityIDAry[count],cityNameAry[count],latitudeAry[count],longitudeAry[count]);
          count++;
        }

      }
    } 


