    var MAPS_GOOGLE_COM_ICONS = "https://www.intelink.gov/pohl/GoogleEarth/webinter/kml_icons/maps.google.com";
    var DGEOXML_PROXY = "https://www.intelink.gov/pohl/google-cgi-bin/kml_proxy.cgi?url=";
    //var DGEOXML_PROXY = "";
    //GScript("https://www.intelink.gov/pohl/GoogleEarth/webinter/inflate.js");

    function FGeoXml(url) {
      this.url_ = url;
      this.isdrawn = 0;
      this.hasloaded = 0;
      this.force = false;
      this.hidden = false;
    }
    FGeoXml.prototype = new GOverlay();

    FGeoXml.prototype.initialize = function(map) {
      this.map_ = map;

      if (!this.hasloaded)
      {
        var dxml;
        dxml = new DGeoXml("this", map, this.url_, {allfoldersopen:true, nozoom:1});
        dxml.parse();
        this.dxml = dxml;
        this.hasloaded = 1;
      }
    }

    FGeoXml.prototype.remove = function() {
      for (var m=0;m<this.dxml.overlayman.markers.length;m++) {
        this.map_.removeOverlay(this.dxml.overlayman.markers[m]); }
      for (var o=0;o<this.dxml.screenOverlays.length;o++) {
        this.map_.removeControl(this.dxml.screenOverlays[o]); }
        if (this.dxml.isHidden()) {
          for (var n=0;n<this.dxml.networkLinks.length;n++) {
            GEvent.removeListener(this.dxml.networkLinks[n].eventListener); }
        }
      this.isdrawn = 0;
    }

    // Copy our data to a new FGeoXml
    FGeoXml.prototype.copy = function() {
      return new FGeoXml(this.url_);
    }

    FGeoXml.prototype.redraw = function(force) {
      this.force = force;
      if (!force) return;
      if (this.isdrawn) return;
      if (!this.hasloaded) return;
      for (var m=0;m<this.dxml.overlayman.markers.length;m++) {
        this.map_.addOverlay(this.dxml.overlayman.markers[m]); }
      for (var o=0;o<this.dxml.screenOverlays.length;o++) {
        this.map_.addControl(this.dxml.screenOverlays[o]); }
      this.isdrawn = 1;
    }

    FGeoXml.prototype.hasLoaded = function() {
      return this.hasloaded;
    }

    FGeoXml.prototype.getDefaultCenter = function() {
      if (!this.hasloaded) return;
      return this.dxml.bounds.getCenter();
    }

    FGeoXml.prototype.getDefaultSpan = function() {
      if (!this.hasloaded) return;
      return this.dxml.bounds.toSpan();
    }

    FGeoXml.prototype.getDefaultBounds = function() {
      if (!this.hasloaded) return;
      return this.dxml.bounds;
    }

    FGeoXml.prototype.supportsHide = function() {
      return true;
    }

    FGeoXml.prototype.isHidden = function() {
      return this.hidden;
    }

    FGeoXml.prototype.hide = function() {
      if (this.dxml) this.dxml.hide();
    }

    FGeoXml.prototype.show = function() {
      this.hidden = false;
      if (this.dxml) this.dxml.show();
    }
