var map;
var countyAreaXml;
var countyLineXml;
var latlonwholeXml;
var latlonhalfXml;
var fedLandPolyXml;
var cityA_Xml;
var cityB_Xml;
var UnincCityA_Xml;
var UnincCityB_Xml;
var mylistener;

function initialize() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        var rx = /href="(.*?)"/;
        GEvent.addListener(map, 'infowindowopen', function (obj) {
            var iw = map.getInfoWindow();
            var iwhtml = iw.getContentContainers()[0].innerHTML;
            if (rx.test(iwhtml)) {
                var link = RegExp.$1;
                var qs = window.location.search.substring(1);
                if (qs != '') {
                    link = 'href="' + link + '&' + qs + '"';
                    iwhtml = iwhtml.replace(rx, link);
                    iw.getContentContainers()[0].innerHTML = iwhtml;
                }
            }
        }); 

        mylistener = GEvent.addListener(map, "zoomend", mapzoom);
        countyLineXml = new GGeoXml(hostURL + "/kml/County_lines.kmz");
        countyAreaXml = new GGeoXml(hostURL + "/kml/County_areas.kmz");
        latlonwholeXml = new GGeoXml(hostURL + "/kml/LatLon_integer.kmz");
        latlonhalfXml = new GGeoXml(hostURL + "/kml/LatLon_halfdegree.kmz");
        cityA_Xml = new GGeoXml(hostURL + "/kml/citylimits_A3.kmz");
        cityB_Xml = new GGeoXml(hostURL + "/kml/citylimits_B3.kmz");
        UnincCityA_Xml = new GGeoXml(hostURL + "/kml/Communities_A3.kmz");
        UnincCityB_Xml = new GGeoXml(hostURL + "/kml/Communities_B3.kmz");
        fedLandPolyXml = new GGeoXml(hostURL + "/kml/Fedlandp_outlines.kmz");
        map.setCenter(new GLatLng(34.2, -116), 7);
        map.setUIToDefault();
        map.addOverlay(countyAreaXml);
        map.addOverlay(countyLineXml);
        map.addOverlay(latlonwholeXml);
    } }


function mapzoom() {
    var mapZoom = map.getZoom();
    if (mapZoom > 9) {
        map.removeOverlay(cityA_Xml);
        map.removeOverlay(UnincCityA_Xml);
        map.addOverlay(UnincCityB_Xml);
        map.addOverlay(cityB_Xml);
    } else if (mapZoom > 7) {
        map.removeOverlay(countyAreaXml);
        map.removeOverlay(latlonwholeXml);
        map.removeOverlay(cityB_Xml);
        map.removeOverlay(UnincCityB_Xml);
        map.addOverlay(latlonhalfXml);
        map.addOverlay(fedLandPolyXml);
        map.addOverlay(UnincCityA_Xml);
        map.addOverlay(cityA_Xml);
    } else {
        map.addOverlay(countyAreaXml);
        map.addOverlay(latlonwholeXml);
        map.removeOverlay(latlonhalfXml);
        map.removeOverlay(cityA_Xml);
        map.removeOverlay(cityB_Xml);
        map.removeOverlay(UnincCityA_Xml);
        map.removeOverlay(UnincCityB_Xml);
        map.removeOverlay(fedLandPolyXml);
    }
}


function resetMap() {
    initialize();
}

