//global variables
var MAP, POPUP;

// the starting map view
var START_LAT = 29.65;
var START_LON = -95.28;
var START_ZOOM = 8;

var GEOCODER;
var toggle = false;
var infowindow = new google.maps.InfoWindow();
var marker;
var latlng = new google.maps.LatLng(-34.397, 150.644);
var panorama;
var LAYER = null;
var TABLEID = 1238354;
var kmlLayer1 = null; // the name of our custom LAYER; keep it brief!
var CUSTOM_LAYER_NAME = 'Custom';
var MAX_ZOOM_LEVEL = 7;

// for the ecoregion and parks tile layer, which ecoregion/park segment do we load?
var ECOREGION   = 'AllEcoregions';
var PARKSEGMENT = 'AllParks';

// for each ecoregion and park segment, the zoom extent
var ECOREGION_ZOOMS = {};
ECOREGION_ZOOMS['AllEcoregions'] = [ -96.874062, 28.596527, -93.509442, 31.228115 ];
//ECOREGION_ZOOMS['BayouWilderness'] = [ -95.971920, 29.497343, -95.017582, 30.176889 ];
ECOREGION_ZOOMS['BayouWilderness'] = [ -95.971920, 29.297343, -95.017582, 29.976889 ];
//ECOREGION_ZOOMS['BigThicket'] = [ -95.641355, 29.892855, -93.509442, 31.228115 ];
ECOREGION_ZOOMS['BigThicket'] = [ -95.641355, 29.492855, -93.509442, 30.818115 ];
//ECOREGION_ZOOMS['CoastalMarshes'] = [ -96.175378, 28.596527, -93.699089, 30.136539 ];
ECOREGION_ZOOMS['CoastalMarshes'] = [ -96.175378, 28.196527, -93.699089, 29.736539 ];
//ECOREGION_ZOOMS['ColumbiaBottomlands'] = [ -96.399175, 28.690326, -95.363437, 29.735873 ];
ECOREGION_ZOOMS['ColumbiaBottomlands'] = [ -96.399175, 28.290326, -95.363437, 29.535873 ];
//ECOREGION_ZOOMS['EstuariesAndBays'] = [ -96.664685, 28.344585, -93.756851, 29.999898 ];
ECOREGION_ZOOMS['EstuariesAndBays'] = [ -96.664685, 27.944585, -93.756851, 29.599898 ];
//ECOREGION_ZOOMS['GulfOfMexico'] = [ -98.335755, 25.837152, -91.089027, 29.836027 ];
ECOREGION_ZOOMS['GulfOfMexico'] = [ -98.335755, 25.437152, -91.089027, 29.436027 ];
//ECOREGION_ZOOMS['PineyWoods'] = [ -96.094765, 29.767835, -93.516681, 31.175445 ];
ECOREGION_ZOOMS['PineyWoods'] = [ -96.094765, 29.367835, -93.516681, 30.775445 ];
//ECOREGION_ZOOMS['PostOakSavannah'] = [ -96.874062, 29.306218, -95.348401, 31.026727 ];
ECOREGION_ZOOMS['PostOakSavannah'] = [ -96.874062, 28.906218, -95.348401, 30.626727 ];
//ECOREGION_ZOOMS['PrairieSystems'] = [ -96.657021, 28.614415, -93.717588, 30.280340 ];
ECOREGION_ZOOMS['PrairieSystems'] = [ -96.657021, 28.314415, -93.717588, 29.980340 ];
//ECOREGION_ZOOMS['TrinityBottomlands'] = [ -94.968281, 29.858580, -94.701243, 30.532727 ];
ECOREGION_ZOOMS['TrinityBottomlands'] = [ -94.968281, 29.658580, -94.701243, 30.332727 ];

var PARKSEGMENT_ZOOMS = {};
PARKSEGMENT_ZOOMS['AllParks']              = [ -97.896187, 27.638891, -93.608291, 31.933319 ];
PARKSEGMENT_ZOOMS['BayouWildernessTrails'] = [ -95.949560, 29.504970, -95.054383, 30.151588 ];
PARKSEGMENT_ZOOMS['BrazosRiverTrail']      = [ -96.123242, 28.822188, -95.361874, 29.829194 ];
PARKSEGMENT_ZOOMS['CoastalTrail']          = [ -95.858600, 28.646630, -93.840649, 29.777794 ];
PARKSEGMENT_ZOOMS['LakeHoustonTrail']      = [ -95.177280, 30.081095, -95.128013, 30.150829 ];
PARKSEGMENT_ZOOMS['SanFelipeRiverTrail']   = [ -96.123242, 29.564512, -95.575220, 29.992879 ];
PARKSEGMENT_ZOOMS['SpringCreekTrail']      = [ -95.596200, 30.020917, -95.260589, 30.175073 ];
PARKSEGMENT_ZOOMS['TrinityRiverTrail']     = [ -94.906677, 29.821159, -94.662931, 30.352565 ];
PARKSEGMENT_ZOOMS['FlowerGardenNMS']       = [ -94.308883, 27.819761, -93.570922, 28.169500 ];

var ECOREGION_ALIASES = {};
ECOREGION_ALIASES['All Ecoregions'] = 'AllEcoregions';
ECOREGION_ALIASES['Bayou Wilderness'] = 'BayouWilderness';
ECOREGION_ALIASES['Big Thicket'] = 'BigThicket';
ECOREGION_ALIASES['Coastal Marshes'] = 'CoastalMarshes';
ECOREGION_ALIASES['Columbia Bottomlands'] = 'ColumbiaBottomlands';
ECOREGION_ALIASES['Estuaries and Bays'] = 'EstuariesAndBays';
ECOREGION_ALIASES['Gulf Of Mexico'] = 'GulfOfMexico';
ECOREGION_ALIASES['Piney Woods'] = 'PineyWoods';
ECOREGION_ALIASES['Post Oak Savannah'] = 'PostOakSavannah';
ECOREGION_ALIASES['Prairie Systems'] = 'PrairieSystems';
ECOREGION_ALIASES['Trinity Bottomlands'] = 'TrinityBottomlands';

// a mapping of Google zoom levels to cartographic scales
// used for debugging scale-dependent behavior
var SCALES = {
    0: 443744272.74185663,
    1: 221872136.37092832,
    2: 110936068.18546416,
    3: 55468034.09273208,
    4: 27734017.04636604,
    5: 13867008.52318302,
    6: 6933504.26159151,
    7: 3466752.130795755,
    8: 1733376.0653978775,
    9: 866688.0326989387,
    10: 433344.01634946937,
    11: 216672.00817473468,
    12: 108336.00408736734,
    13: 54168.00204368367,
    14: 27084.001021841836,
    15: 13542.000510920918,
    16: 6771.000255460459,
    17: 3385.5001277302295,
    18: 1692.7500638651147,
    19: 846.3750319325574,
    20: 423.1875159662787,
    21: 211.59375798313934,
};


// storage for the many overlay layers
var OVERLAYS = {};

$(document).ready(function () {
    // page initialization

    var birdTop = 424;
    var headToggle = false;
    var refineToggle = false;
    var refineUp = "-75px";
    var refineDown = "125px";

    $(".header_bird").click(function () {
        headToggle = !headToggle;
        if (headToggle) {
            $(".main_map").css({
                "height": "644px"
            });
            $(".header").animate({
                "marginTop": "-93px"
            }, 500);
            $("#map_canvas_home").css({
                "height": "650px"
            });
            birdTop = 558;
            refineUp = "-168px";
            refineDown = "42px";
            $(".callout").hide();
            $(".refineMenu").css({
                "top": refineUp
            });
            refineToggle = false;
        } else {
            $(".main_map").css({
                "height": "511px"
            });
            $(".header").animate({
                "marginTop": 0
            }, 500);
            $(".callout").hide();
            $("#map_canvas_home").css({
                "height": "516px"
            });
            birdTop = 424;
            refineUp = "-75px";
            refineDown = "125px";
            $(".refineMenu").css({
                "top": refineUp
            });
            refineToggle = false;
        }
    });

//browser bugs//

    if (navigator.appVersion.indexOf("Mac") != -1) {

        if ($.browser.mozilla) {
            $(".header_bird").css("margin-top", "-19px");
            $(".header_leaves").css("margin-top", "-10px");
        }
        $('body').addClass('mac');
    } else {$('body').addClass('pc');}

// Select All Layers 
$("#viewAllButton").click(function(){
$("#layers").find("input").each(function(){ if(!$(this).attr("checked")){ $(this).click(); }   })
});

    $(".pullDown").click(function () {
        refineToggle = !refineToggle;
        if (refineToggle) {
            $(".refineMenu").animate({
                top: refineDown
            }, 100);
        } else {
            $(".refineMenu").animate({
                top: refineUp
            }, 100);
        }
    });

    // The JSON and Jquery code for the pets and their positions
    var imgs = {
        "images": [{
            "url": "thicket_pet.png",
            "width": "460",
            "offset": "-10"
        }, {
            "url": "piney_pet.png",
            "width": "460",
            "offset": "-10"
        }, {
            "url": "trinity_pet.png",
            "width": "460",
            "offset": "-10"
        }, {
            "url": "columbia_pet.png",
            "width": "460",
            "offset": "-10"
        }, {
            "url": "prairie_pet.png",
            "width": "460",
            "offset": "-10"
        }, {
            "url": "post_pet.png",
            "width": "465",
            "offset": "378"
        }, {
            "url": "estuary_pet.png",
            "width": "465",
            "offset": "378"
        }, {
            "url": "coastal_pet.png",
            "width": "465",
            "offset": "378"
        }, {
            "url": "gulf_pet.png",
            "width": "465",
            "offset": "378"
        }, {
            "url": "bayou_pet.png",
            "width": "465",
            "offset": "378"
        }]
    };

    $(".map_icon").click(function () {

if($("#trailConnections").attr("checked")=="checked"){
   ////console.log("yep");
   $("#trailConnections").removeAttr("checked");
  // $("#trailConnections").click();
    
};


        $(".map_info").hide();
        $(".map_info").eq($(this).index()).show();
        $(".callout").css({
            "display": "block",
            "background-image": "url(http://culturepilotplus.com/~houstonw/img/" + imgs.images[$(this).index()].url + ")",
            "left": $(this).offset().left - imgs.images[$(this).index()].offset,
            "width": imgs.images[$(this).index()].width,
            "top": birdTop
        });
        $(".callout").delay(200).animate({
            "top": birdTop - 81
        }, 700, "swing");
        if (parseInt(imgs.images[$(this).index()].offset) > 0) {
            $(".callout > .map_info").removeClass("map_info_left").addClass("map_info_right");
        } else {
            $(".callout > .map_info").removeClass("map_info_right").addClass("map_info_left");
        }
    });

    $(".mainMapBtn").click(function () {
        showAllRegions();
        selectEcoregion("AllEcoregions");
    });

    $("#former").submit(function (e) {
        e.preventDefault();
        ////console.log($("#zip").val());
        if ($("#zip").val() !== "") {

            searchZip($("#zip").val());
            return true;
        }

        return false;
    });

    $("#former2").submit(function (e) {
        e.preventDefault();

        $(".menu_choices").find("input:checked").each(function (i) {makeSearchString($(this).val());});

        return false;
    });

    //selectEcoregion('AllEcoregions');
    document.getElementById('icon1').onclick = function () {selectEcoregion('BigThicket');};
    document.getElementById('icon2').onclick = function () {selectEcoregion('PineyWoods');};
    document.getElementById('icon3').onclick = function () {selectEcoregion('TrinityBottomlands');};
    document.getElementById('icon4').onclick = function () {selectEcoregion('ColumbiaBottomlands');};
    document.getElementById('icon5').onclick = function () {selectEcoregion('PrairieSystems');};
    document.getElementById('icon6').onclick = function () {selectEcoregion('PostOakSavannah');};
    document.getElementById('icon7').onclick = function () {selectEcoregion('EstuariesAndBays');};
    document.getElementById('icon8').onclick = function () {selectEcoregion('CoastalMarshes');};
    document.getElementById('icon9').onclick = function () {selectEcoregion('GulfOfMexico');};
    document.getElementById('icon10').onclick = function () {selectEcoregion('BayouWilderness');};


    LAYER = new google.maps.FusionTablesLayer(TABLEID);

    // page initialization
    // hide the loading for start
    $('#loading').hide();

    // when those overlay selector checkboxes are clicked, toggle the overlays
    $('input[type="checkbox"][name="layers"]').click(function () {refreshOverlays();});


    // MAAAAAAP
    GEOCODER = new google.maps.Geocoder();

    //create the custom basemap map type
    var customBaseMap = new google.maps.ImageMapType({
        getTileUrl: function (coord, zoom) {
            return "http://www.parkinfo.org/tilecache/tilecache.py/1.0.0/houston_basemap" + "/" + zoom + "/" + coord.x + "/" + coord.y + ".png?type=google";
        },
        tileSize: new google.maps.Size(256, 256),
        isPng: false,
        maxZoom: 16,
        minZoom: 0,
        name: CUSTOM_LAYER_NAME
    });

    OVERLAYS['ecoRegion'] = new google.maps.ImageMapType({
        getTileUrl: function (coord, zoom) {
            return "http://www.parkinfo.org/tilecache/tilecache.py/1.0.0/houston_ecoregion_" + ECOREGION + "/" + zoom + "/" + coord.x + "/" + coord.y + ".png?type=google";
        },
        tileSize: new google.maps.Size(256, 256),
        isPng: true,
        maxZoom: 16,
        minZoom: 0,
        name: "ecoRegion"
    });

    OVERLAYS['greenbelt'] = new google.maps.ImageMapType({
        getTileUrl: function (coord, zoom) {
            return "http://www.parkinfo.org/tilecache/tilecache.py/1.0.0/houston_greenbelt" + "/" + zoom + "/" + coord.x + "/" + coord.y + ".png?type=google";
        },
        tileSize: new google.maps.Size(256, 256),
        isPng: true,
        maxZoom: 16,
        minZoom: 0,
        name: "greenbelt"
    });
	OVERLAYS['parks'] = new google.maps.ImageMapType({
        getTileUrl: function(coord, zoom) {
            return "http://www.parkinfo.org/tilecache/tilecache.py/1.0.0/houston_parks_" + PARKSEGMENT + "/" + zoom + "/" + coord.x + "/" + coord.y + ".png?type=google";
        },
        tileSize: new google.maps.Size(256, 256),
        isPng: true,
        maxZoom: 16,
        minZoom: 0,
        name: "parks"
    });
	OVERLAYS['trails'] = new google.maps.ImageMapType({
        getTileUrl: function(coord, zoom) {
            return "http://www.parkinfo.org/tilecache/tilecache.py/1.0.0/houston_trails" + "/" + zoom + "/" + coord.x + "/" + coord.y + ".png?type=google";
        },
        tileSize: new google.maps.Size(256, 256),
        isPng: true,
        maxZoom: 16,
        minZoom: 0,
        name: "trails"
    });
	OVERLAYS['counties'] = new google.maps.ImageMapType({
        getTileUrl: function(coord, zoom) {
            return "http://www.parkinfo.org/tilecache/tilecache.py/1.0.0/houston_counties" + "/" + zoom + "/" + coord.x + "/" + coord.y + ".png?type=google";
        },
        tileSize: new google.maps.Size(256, 256),
        isPng: true,
        maxZoom: 16,
        minZoom: 0,
        name: "counties"
    });
    OVERLAYS['parkslabels'] = new google.maps.ImageMapType({
        getTileUrl: function (coord, zoom) {
            return "http://www.parkinfo.org/tilecache/tilecache.py/1.0.0/houston_parklabels" + "/" + zoom + "/" + coord.x + "/" + coord.y + ".png?type=google";
        },
        tileSize: new google.maps.Size(256, 256),
        isPng: true,
        maxZoom: 16,
        minZoom: 0,
        name: "parklabels"
    });
    OVERLAYS['labels'] = new google.maps.ImageMapType({
        getTileUrl: function (coord, zoom) {
            return "http://www.parkinfo.org/tilecache/tilecache.py/1.0.0/houston_labels" + "/" + zoom + "/" + coord.x + "/" + coord.y + ".png?type=google";
        },
        tileSize: new google.maps.Size(256, 256),
        isPng: true,
        maxZoom: 16,
        minZoom: 0,
        name: "labels"
    });

    // set up the map and the starting view, then reassign Wilderness as being that custom basemap
    MAP = new google.maps.Map(document.getElementById("map_canvas_home"), {
        zoom: START_ZOOM,
        center: new google.maps.LatLng(START_LAT, START_LON),
        mapTypeControlOptions: {
            mapTypeIds: [CUSTOM_LAYER_NAME, google.maps.MapTypeId.TERRAIN, google.maps.MapTypeId.SATELLITE]
        },
    streetViewControl: true,
    streetViewControlOptions: {
        position: google.maps.ControlPosition.RIGHT_BOTTOM
    },
        scaleControl: true,
        scrollwheel: false
    });
    MAP.mapTypes.set(CUSTOM_LAYER_NAME, customBaseMap);

    // debugging, event handler: when the map is zoomed, report the zoom level and estimated cartographic scale
    google.maps.event.addListener(MAP, 'bounds_changed', function() {
        var zoom = this.getBounds();
       //console.log("Bounds: " + zoom + "      " + "Scale: " + SCALES[zoom] );
    });
    google.maps.event.addListener(MAP, 'zoom_changed', function() {
        var zoom = this.getZoom();
       //console.log("Zoom level: " + zoom + "      " + "Scale: " + SCALES[zoom] );
    });

    // an event handler when the map is zoomed, make sure we're not zoomed too far out
    google.maps.event.addListener(MAP, 'zoom_changed', function() {
        if (this.getZoom() < MAX_ZOOM_LEVEL) this.setZoom(MAX_ZOOM_LEVEL);
    });

    // an event handler when the basemap is changed:
    // add or remove the overlays depending on whether we're using the custom basemap
    google.maps.event.addListener(MAP, "maptypeid_changed", refreshOverlays);

    // now change the map to our custom layer, which triggers the overlays per that event handler we just created
    MAP.setMapTypeId(CUSTOM_LAYER_NAME);

//Street view Listeners

var thePanorama = MAP.getStreetView();

google.maps.event.addListener(thePanorama, 'visible_changed', function() {

        if (thePanorama.getVisible()) {
console.log("yep");
$("#layers").hide();
$("#map_icons").hide();
$("#map_menu_bg").hide();
$("#toggle_tips").hide();
$(".pullDown").hide();
        // Display your street view visible UI

            } else {
$("#toggle_tips").show();
$("#layers").show();
$("#map_icons").show();
$("#map_menu_bg").show();
$(".pullDown").show();
console.log("nope");
       // Display your original UI

      }

});




    // when the map is clicked, do a query.
    google.maps.event.addListener(MAP, "click", function (event) {
        // which layers do we query? at present this is easy, either ecoregions or else parks
        // and ecoregions only if ALL of them are showing
        if (ECOREGION == 'AllEcoregions') layers = 'ecoregion';
        else layers = "parks";

        // fetch the click coordinates, make up a WMS request
        // this math calculates a 768px-tall viewport and provides the pixel X/Y of the click
        var lat = event.latLng.lat();
        var lon = event.latLng.lng();
        var w = MAP.getBounds().getSouthWest().lng();
        var s = MAP.getBounds().getSouthWest().lat();
        var e = MAP.getBounds().getNorthEast().lng();
        var n = MAP.getBounds().getNorthEast().lat();
        var span_ew = Math.abs(e - w);
        var span_ns = Math.abs(n - s);
        var width = parseInt(768 * span_ew / span_ns);
        var height = 768;
        var x = parseInt((lon - w) * width / span_ew);
        var y = parseInt((n - lat) * height / span_ns);

        var url = "http://culturepilotplus.com/~houstonw/query.php?";
        url += "SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&INFO_FORMAT=text/html";
        url += "&QUERY_LAYERS=" + layers + "&LAYERS=" + layers;
        url += "&X=" + x + "&Y=" + y + "&WIDTH=" + width + "&HEIGHT=" + height;
        url += "&SRS=EPSG:4326&BBOX=" + w + "," + s + "," + e + "," + n;

        // fetch the WMS info and handle the output
        // Bug in MapServer: it will ignore FEATURE_COUNT and return multiple features
        // so we use XML output and use JQuery to extract only the first feature, as a jQuery object.
        // Handling the output varies widely: parks get a InfoWindow, Ecoregions should click the button, etc.
        $('#loading').show();
        $.get(url, {}, function (xml) {
            $('#loading').hide();
            var result = $(xml).children().eq(0);
			var type = result.prop('tagName');
			switch (type) {
				case 'ECOREGION':
					var ecoregionCodeName = ECOREGION_ALIASES[result.attr('name')];
					$('#ecoregion_button_' + ecoregionCodeName).click();
                loadAnimals(ecoregionCodeName);
					break;
				case 'PARK':
					var html = "";
					html += '<div class="bubbletitle">' + result.attr('name') + '</div>';
					html += '<div class="bubblecontent">';
					var acres = parseFloat(result.attr('acres'));
					if (acres) html += acres.toFixed(1) + ' acres <br/>';
					var ecoregions = result.attr('ecoregions');
					if (ecoregions) html += 'Ecoregions: ' + ecoregions + ' <br/>';
					html += '</div>';
					if (POPUP) POPUP.setMap(null);
					POPUP = new google.maps.InfoWindow({ content:html, position:event.latLng });
					POPUP.open(MAP);
					break;
			}
        });

    });

    //refreshOverlays();

});

function loadAnimals(animal){
   switch (animal) {
            case 'PostOakSavannah':
            $(".map_icon").eq(5).click();
            break;
            case 'PrairieSystems':
            $(".map_icon").eq(4).click();
            break;            
            case 'ColumbiaBottomlands':
            $(".map_icon").eq(3).click();
            break;
            case 'CoastalMarshes':
            $(".map_icon").eq(7).click();
            break;
            case 'PineyWoods':
            $(".map_icon").eq(1).click();
            break;
            case 'Big Thicket':
            $(".map_icon").eq(0).click();
            break;
            case 'TrinityBottomlands':
            $(".map_icon").eq(2).click();
            break;
            case 'ColumbiaBottomlands':
            $(".map_icon").eq(4).click();
            break;
            case 'EstuariesAndBays':
            $(".map_icon").eq(6).click();
            break;            
}
}

function addLayer(tileList, startPosition, clearReplace) {
    // add multiple tiles at once starting at startPosition
    for (var i = startPosition; i < tileList.length; i++) {
        if (MAP.overlayMapTypes.getAt(i) != null) {
            if (tileList[i].name == MAP.overlayMapTypes.getAt(i).name) {
                //don't reload if tile did not change position
            } else {
                MAP.overlayMapTypes.setAt(i, tileList[i]);
            }
        } else {
            MAP.overlayMapTypes.setAt(i, tileList[i]);
        }
    }
    if (clearReplace) { //optional variable
        if (clearReplace == "clear") { //clear existing overlays after start position
            for (i = tileList.length; i < MAP.overlayMapTypes.length; i++) {
                MAP.overlayMapTypes.setAt(i, null);
            }
        }
        if (clearReplace == "replace") {
            // nothing yet
        }
    }
    return tileList.length;
}

function clearTileOverlays() {
    for (i = 0; i < MAP.overlayMapTypes.length; i++) {
        MAP.overlayMapTypes.setAt(i, null);
    }
}

function refreshOverlays() {
    // for starters, clear all overlays
    clearTileOverlays();

    // what overlays do we enable aside from the custom basemap?
    // should we show our awesome custom overlays?
    var layers = [];
    var showCustomOverlays = (MAP.getMapTypeId() == CUSTOM_LAYER_NAME);

    // the parks and greenbelt layers, if the checkbox is set
    if (showCustomOverlays) {
        var layername = 'counties';
        var checkbox = $('input[type="checkbox"][name="layers"][value="'+layername+'"]');
        if (checkbox.is(':checked')) layers[layers.length] = OVERLAYS[layername];

        var layername = 'greenbelt';
        var checkbox = $('input[type="checkbox"][name="layers"][value="' + layername + '"]');
        if (checkbox.is(':checked')) layers[layers.length] = OVERLAYS[layername];

        var layername = 'parks';
        var checkbox = $('input[type="checkbox"][name="layers"][value="'+layername+'"]');
        if (checkbox.is(':checked')) layers[layers.length] = OVERLAYS[layername];

        var layername = 'trails';
        var checkbox = $('input[type="checkbox"][name="layers"][value="'+layername+'"]');
        if (checkbox.is(':checked')) layers[layers.length] = OVERLAYS[layername];
    }

    // the ecoregion doesn't have a checkbox, but is always on
    //layers[layers.length] = OVERLAYS['ecoRegion']; // no checkbox for this one, having selected a region works
        var layername = 'ecoRegion';
        var checkbox = $('input[type="checkbox"][name="layers"][value="' + layername + '"]');
        if (checkbox.is(':checked')){
            layers[layers.length] = OVERLAYS[layername];
        }
    // the labels layer, if the checkbox is set
    if (showCustomOverlays) {
        var layername = 'labels';
        var checkbox = $('input[type="checkbox"][name="layers"][value="' + layername + '"]');
        if (checkbox.is(':checked')) layers[layers.length] = OVERLAYS[layername];

        var layername = 'parkslabels';
        var checkbox = $('input[type="checkbox"][name="layers"][value="' + layername + '"]');
        if (checkbox.is(':checked')) layers[layers.length] = OVERLAYS[layername];
    }

    // done figuring it out, do the overlays
    addLayer(layers, 0, "clear");
}

function selectParksByTrailSegment(which) {
    // purge the overlays and reload them
    clearTileOverlays();
    PARKSEGMENT = which;
    refreshOverlays();

    // zoom to the given region
    var bbox = PARKSEGMENT_ZOOMS[PARKSEGMENT];
    var bbox = new google.maps.LatLngBounds( new google.maps.LatLng(bbox[1],bbox[0]) , new google.maps.LatLng(bbox[3],bbox[2]) );
    MAP.fitBounds(bbox);

    // ... and proceed with other ecoregion selection stuff, such as popups or infowindows ...
}


function selectEcoregion(which) {
    // purge the overlays and reload them
    clearTileOverlays();
    ECOREGION = which;
    refreshOverlays();

    // zoom to the given region
    var bbox = ECOREGION_ZOOMS[ECOREGION];
    var bbox = new google.maps.LatLngBounds(new google.maps.LatLng(bbox[1], bbox[0]), new google.maps.LatLng(bbox[3], bbox[2]));
    MAP.fitBounds(bbox);
}


function loadParks() {
   LAYER.setQuery("SELECT 'col3' FROM " + TABLEID);
   
/*
   LAYER = new google.maps.FusionTablesLayer({
        query: {
            select: 'col3',
            from: TABLEID
        },
    });
*/
    LAYER.setMap(MAP);

}

/*
function codeAddress(_address) {
    var address = _address;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        
        var marker = new google.maps.Marker({
            map: map, 
            position: results[0].geometry.location,
            title:"Meyer Park"
        });
        
        google.maps.event.addListener(marker, "click", function(){ 
           toggle = panorama.getVisible();
            if (toggle == false) {panorama.setVisible(true);} else {panorama.setVisible(false);}
        });
        
      } else {
        alert("Geocode was not successful: " + status);
      }
    });
    
}

*/

function searchZip(_zip) {
    var zip = _zip;

    GEOCODER.geocode({
        'address': zip
    }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            makeSearch(results[0].geometry.location);

            //setTimeout("initFustion()", 2000);
        } else {
            alert("Geocode was not successful for the following reason: " + status);
        }
    });
}

function makeSearch(_latlng) {
    var loc = _latlng;
    LAYER.setQuery("SELECT 'Full Physical Address' FROM " + TABLEID + " WHERE ST_INTERSECTS('Full Physical Address', CIRCLE(LATLNG(" + loc.lat() + "," + loc.lng() + "),20000))");
    MAP.setCenter(loc);
    MAP.setZoom(9);
    LAYER.setMap(MAP);
}

function makeSearchRegion(_string) {

    var stringer = _string;
    if (stringer != "on") {
        LAYER.setQuery("SELECT 'col3' FROM " + TABLEID + " WHERE 'col10' CONTAINS '" + stringer + "'");
        var loc = new google.maps.LatLng("29.724159195132923", "-95.34458120351565");
        LAYER.setMap(MAP);
        MAP.setCenter(loc);
        MAP.setZoom(7);

    }
}

function makeSearchString(_string) {

    var stringer = _string;
    if (stringer != "on") {
        LAYER.setQuery("SELECT 'Full Physical Address' FROM " + TABLEID + " WHERE 'Related Activities' CONTAINS '" + stringer + "'");
        var loc = new google.maps.LatLng("29.724159195132923", "-95.34458120351565");
        LAYER.setMap(MAP);
        MAP.setCenter(loc);
        MAP.setZoom(7);
        $(".refineMenu").animate({
            top: "-75px"
        }, 100);
        $("#zip").val("");
    }
}

