  function includeGoogle(script_filename)
  {

    /* Check which key we should use */
    if (location.hostname == "deldot-stage") {
      /* Staging API Key */
      var googlekey = "ABQIAAAAJ0tvi-5yt5aG20J-dRnwnxSp7ZuHezzokxKp7KuYOAjjB8UhNBTstVpTUzyjmjhRJMUb1dOEyfLUZg";
    }
    else if (location.hostname == "deldot-stage.dot.state.de.us") {
      /* deldot-stage.gov staging API Key */
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhS5dTK_mJA2UBz9EkkydOCSw_8pXhSsb0ManHGAGROpoSgZA8KhCmPHRw";
    }
    else if (location.hostname == "deldot-stage.gov") {
      /* deldot-stage.gov staging API Key */
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhQOEWk_xefdc82yd_ovFy7bzPz3NBQ2INA4wKymq6YGdmfQclja7jAfDA";
    }
    else if (location.hostname == "dotclf-stage") {
      /* dotclf-stage staging API Key */
      var googlekey = "ABQIAAAAdHDN5rB3yAL-_kR07Bb_VhSTdYUOqQ4t-AGp2TKn4otrZy2QJRRGHQpa7xOshMD_quc6XY43SahEkg";
    }
    else if (location.hostname == "dotclf-stage.gov") {
      /* dotclf-stage.gov staging API Key */
      var googlekey = "ABQIAAAAdHDN5rB3yAL-_kR07Bb_VhQ4y9j6qIVPuTG79anbHolPgM0swRRwPP2nxhDQExl1zeN_5kKETgcyfQ";
    }
    else if (location.hostname == "dotclf-stage.dot.state.de.us") {
      /* dotclf-stage.dot.state.de.us staging API Key */
      var googlekey = "ABQIAAAAdHDN5rB3yAL-_kR07Bb_VhQcNmCZ60avY_AuknlGUQFQcq4qLBT7J5XIMc0TJx597g3tnbkTiV1tvA";
    }
    else if (location.hostname == "mydot-stage") {
      /* MyDot staging API Key */
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhRX2aCgy-Ooxweey2EOKEmA4AAT-RS7YNYu2y8hfBR7_lFBAW7F9Wdpug";
    }
    else if (location.hostname == "dotws02a") {
      /* New VRF Web Server */
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhR4wOdoFENNsGjEBpRlZpkxgFVUfhQP-wQ8q96xNMJ43_AaVzpUgfT6ew";
    }
    else if (location.hostname == "deldot.gov") {
      /* Live API Key */
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhSXyji63xCVPRom7eJxk8rCEqzFqhQZxd3OUlkOPghupj3pxlMsY53vcg";
    }
    else if (location.hostname == "www.deldot.gov") {
      /* Live API Key */
      var googlekey = "ABQIAAAAJ0tvi-5yt5aG20J-dRnwnxQBwh4vJreePP7rNr5OzDayICYCARS_ophwrdx-67emtULjtD0YqEYr9Q";
    }
    else if (location.hostname == "www.deldot.net") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhQ5P6NJp-cOBHu1N1jmxkb1_FKHyxTefgJ1azBst8TVMi0uKvP3vq9gsA";
    }
    else if (location.hostname == "deldot.net") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhQJbT_49OvCwode5yOoYBQQmJnX-RSXrUuvb8B1X0mMjbngvDJ11-QqlA";
    }
    else if (location.hostname == "www.deldot.org") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhQlFy_M8CQfRAyW9Z8owIXkBrn01hRbp5gtl0xG4SXfcVlotzl-ObFa6g";
    }
    else if (location.hostname == "deldot.org") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhRvjmc9lr_SaLVgy0ffCuVfslLvQxTmMig42fWWYfNPI92PnR9tW9NFKA";
    }
    else if (location.hostname == "localhost") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxTSYZG5BzcRmM4d4qtIEplPAjsiFg";
    }
    else if (location.hostname == "172.24.54.31") {
      var googlekey = "ABQIAAAAJ0tvi-5yt5aG20J-dRnwnxTqaEvj2Rs51qA3L-ohUv2t_91bvxRkNBVRICoD2zBXQl4uTTERxLjn_Q";
    }
    else if (location.hostname == "172.24.51.52") {
      var googlekey = "ABQIAAAAX-NdvIZjxVnPcWEcF7orthQzefaUL-IdmALAkjO9fTXm30MYXxQJhweHyWwN25rvUpOep0BvbBT47A";
    }
    else if (location.hostname == "mydot") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhTWAg5xZ-VZyo-WYHOoAg7rCzQ_kBTR97wPYEU36PD2KHJyprSsYJBwkA";
    }
    else if (location.hostname == "irm01") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhSbm5XWVYnusef_j8Jzvpkc1a3PSBQ6IzsR8taiezu0lrJ8nw45iCahEQ";
    }
    else if (location.hostname == "dotws01") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhRnTuDfXuyzlNhmnRGlUXvxlT6nHBRAv2cgHjwFy4qVLxgNSZFv0DV4VA";
    }
    else if (location.hostname == "dotdhass2") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhR2r2qEB9vpAZegIBxZEUvhrKPMohQXfDeHAukYbPdVq5hHDj7XOIZahQ";
    }
    else if (location.hostname == "mydot.dot.state.de.us") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhRvnEP5z-PbV0iSDepCUIy6SgkOWxQvtyEm3XK4MgDJB6T8TqHIqhGN2A";
    }
    else if (location.hostname == "irm01") {
      var googlekey = "ABQIAAAAAYWhreI6rKNa3kyodU2VUhSbm5XWVYnusef_j8Jzvpkc1a3PSBQ6IzsR8taiezu0lrJ8nw45iCahEQ";
    }
    

    /* Display the Javascript code for Google s */
    document.write('<' + 'script');
    document.write(' language="javascript"');
    document.write(' type="text/javascript"');
    document.write(' src="' + script_filename + '&amp;key=' + googlekey + '">');
    document.write('</' + 'script' + '>');
  }

  includeGoogle('http://maps.google.com/maps?file=api&amp;v=2');

  function centerAndZoomOnBounds(g, bounds) {
    var center = bounds.getCenter();
    var newZoom = g.getBoundsZoomLevel(bounds);
    if (g.getZoom() != newZoom) {
      g.setCenter(center, newZoom);
    }
    else {
      g.panTo(center);
    }
  }

  function resize(g, points) {
    var bounds = new GLatLngBounds();

    if (points.length > 0) {
      // Find the max/min points
      for (var i = 0; i < points.length; i++) {
        bounds.extend(points[i]);
      }
      centerAndZoomOnBounds(g, bounds);
    }
    else {
      startingPoint = new GLatLng(39.02345139405935, -75.5474853515625);
      g.setCenter(startingPoint, 9);
    }
  }

  function cleanup() {
    GUnload();
  }

  function showElement(id) {
    if (document.all) { //IS IE 4 or 5 (or 6 beta)
      eval("document.all." + id + ".style.visibility = 'visible'");
    }
    if (document.layers) { //IS NETSCAPE 4 or below
      document.layers[id].visibility = 'visible';
    }
    if (document.getElementById && !document.all) {
      divname = document.getElementById(id);
      divname.style.visibility = 'visible';
    }
  }
  ;

  function hideElement(id) {
    if (document.all) { //IS IE 4 or 5 (or 6 beta)
      eval("document.all." + id + ".style.visibility = 'hidden'");
    }
    if (document.layers) { //IS NETSCAPE 4 or below
      document.layers[id].visibility = 'hidden';
    }
    if (document.getElementById && !document.all) {
      divname = document.getElementById(id);
      divname.style.visibility = 'hidden';
    }
  }
  ;

  function changeClass(element, from, to) {
    element.className = element.className.replace(from, to);
    return false;
  }

  function changeBodyClass(from, to) {
    changeClass(document.body, from, to);
    return false;
  }

  function showLoadingDiv() {
    changeBodyClass('standby', 'loading');
  }

  function hideLoadingDiv() {
    changeBodyClass('loading', 'standby');
  }

  function changeCoordinates(countyCode) {
    if (countyCode == null || countyCode == '') countyCode = 'D';
    var urlStr = "/public.ejs?command=PublicLocatableItemInfoLookup&t=L&loc=" + countyCode;
    var request = GXmlHttp.create();
    request.open("GET", urlStr, true);
    request.onreadystatechange = function() {
      if (request.readyState == 4) {
        if (request.status == 200) {
          var xmlDoc = request.responseXML;
          if (xmlDoc != null) {
            var lat = parseFloat(GXml.value(xmlDoc.documentElement.getElementsByTagName("lat").item(0)));
            var lon = parseFloat(GXml.value(xmlDoc.documentElement.getElementsByTagName("lon").item(0)));
            var newPoint = new GLatLng(lat, lon);
            map.setCenter(newPoint, 9);
            map.panTo(newPoint);
            map.clearOverlays();
            map.addOverlay(new GMarker(newPoint, icon, false));
            var frm = document.one;
            if (frm) {
              frm.latitude.value = lat;
              frm.longitude.value = lon;
            }
            if (typeof updateLatLngDisplay == "function") updateLatLngDisplay();
          }
          else {
            alert("XML Document is Null");
          }
        }
        else {
          alert("There was a problem retrieving location information.\n" + request.statusText);
        }
      }
    }
    request.send(null);
  }
  
  function isSpace(evt) {
    var charCode = (evt.which) ? evt.which : window.event.keyCode;
    return (charCode == 32);
  }


  function findGoogleAPIVersion() {
    var v = 0;
    var scripts = document.getElementsByTagName("SCRIPT");
    for (var i = 0; i < scripts.length; i++) {
//      var pattern = /\/s([0-9])?(\.?[0-9]+)(\.api)?\/main\.js/;
      var pattern = /\/files\/([0-9])?(\.?[0-9]+)\/s([0-9])?(\.?[0-9]+)(\.api)?\/main\.js/;
      var m = pattern.exec(scripts[i].src);
      if (m != null) {
	  //if (m[1] == null) {
        //  v = parseFloat('1' + m[2]);
        //}
        //else {
        //  v = parseFloat(m[1] + m[2]);
        //}
        v = parseFloat(m[4] + '.' + m[1] + m[2]);
        break;
      }
    }
    return v;
  }
