function initMap(latCenter, lngCenter, zoom) {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map"));
    map.setCenter(new GLatLng(latCenter, lngCenter), zoom);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.enableContinuousZoom();
    map.enableDoubleClickZoom();

    function createMarker(lat, lng, info) {
      var point = new GLatLng(lat, lng);
      var marker = new GMarker(point);
      var html = "<table width=\"215\">";
      if (showURL)
        html += "<tr><td style=\"font-size:12pt;text-align:Left;\"><a href=\"" + info["url"] + "\">" + info["fullname"] + "</a></td></tr>";
      else
        html += "<tr><td style=\"font-size:12pt;text-align:Left;\"><b>" + info["fullname"] + "</b></td></tr>";
      html += "<tr><td><img width=\"100\" src=\"" + info["img"] + "\"></td></tr>";
      html += "<tr><td style=\"font-size:10pt;text-align:Left;\">" + info["address"] + "</td></tr>";
      html += "<tr><td style=\"font-size:10pt;text-align:Left;\">" + info["address2"] + "</td></tr>";
      html += "<tr><td style=\"font-size:10pt;text-align:Left;\">ph: " + info["phone"] + "</td></tr>";
      html += "<tr><td style=\"font-size:10pt;text-align:Left;\">fx: " + info["fax"] +"</td></tr>";
      html += "<tr><td style=\"font-size:10pt;text-align:Left;\">";
      html += driving_directions(info["fullname"], lat, lng);
      html += "</td></tr></table>";
      GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(html);
      });
        
      return marker;
    }

    var request = GXmlHttp.create();
    request.open("GET", "/xml/cmdhd.xml", true);
    request.onreadystatechange = function() 
    {
      if (request.readyState == 4)
      {
        var xml = request.responseXML ;
        var i;

        var info = new Array();
        var points = xml.documentElement.getElementsByTagName("point");
        var fullname = xml.documentElement.getElementsByTagName("fullname");
        var address = xml.documentElement.getElementsByTagName("address");
        var address2 = xml.documentElement.getElementsByTagName("address2");
        var url = xml.documentElement.getElementsByTagName("url");
        var phone = xml.documentElement.getElementsByTagName("phone");
        var fax = xml.documentElement.getElementsByTagName("fax");
        var img = xml.documentElement.getElementsByTagName("img");
        for (i = 0; i < points.length; i++) {
          info["fullname"] = fullname[i].getAttribute("value");
          info["address"] = address[i].getAttribute("value");
          info["address2"] = address2[i].getAttribute("value");
          info["url"] = url[i].getAttribute("value");
          info["phone"] = phone[i].getAttribute("value");
          info["fax"] = fax[i].getAttribute("value");
          info["img"] = img[i].getAttribute("value");

          var marker = createMarker(points[i].getAttribute("lat"), points[i].getAttribute("lng"), info);
          map.addOverlay(marker);
        }
      }
    }
    request.send(null);



    var request_bounds = GXmlHttp.create();
    request_bounds.open("GET", "/xml/county.xml", true);
    request_bounds.onreadystatechange = function() 
    {
      if (request_bounds.readyState == 4)
      {
        var xml = request_bounds.responseXML ;
        var counties = new Array("arenac", "clare", "gladwin", "isabella", "osceola", "roscommon");
        var i;
        var j;
        for (j = 0; j<counties.length; j++)
        {
          var county_bounds = xml.documentElement.getElementsByTagName(counties[j]);
          var bound_points = [];
          for (i = 0; i < county_bounds.length; i++) {
             bound_points.push( new GLatLng(parseFloat(county_bounds[i].getAttribute("lat")),parseFloat(county_bounds[i].getAttribute("lng"))) ) ;
          }
          map.addOverlay( new GPolyline(bound_points,"#000080", 3, 1) ) ;
        }
      }
    }
    request_bounds.send(null);

  }
}


function driving_directions(fullname, lat, lng) {
  var return_value = "Driving Directions: To this Location<br>";
  return_value += "<div id=\"driving_directions\" style=\"display: block\">";
  return_value += "<form action=\"http://maps.google.com/maps\" target=\"_blank\" method=\"get\">";
  return_value += "<input name=\"daddr\" value=\"" + fullname + "@" + lat + "," + lng + "\" type=\"hidden\">";
  return_value += "Start address: <input value=\"\" style=\"width: 190px;\" name=\"saddr\" type=\"text\"><br>";
  return_value += "<input value=\"Get Directions\" type=\"submit\"></form></div>";
  return return_value;
}


function add_county_lines(map, county, color) {
  var polyline = new GPolyline(county, color, 5);
  map.addOverlay(polyline);

  return;
}

