﻿function InitializeGMap(mapID) {
    if (GBrowserIsCompatible() && document.getElementById(mapID)) {
        var map = new GMap2(document.getElementById(mapID));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(30.240086, -85.358276), 7);
        return map;
    } else {
        return null;
    }
}

function LoadCountyBorders(map, borderString) {
    var parseResults = ParseBorderString(borderString);
    var borderCoords = parseResults[0];
    var bounds_lat = parseResults[1];
    var bounds_lng = parseResults[2];
    var center_lat = (1.0 * bounds_lat[0]) + (bounds_lat[1] - bounds_lat[0]) / 2.0;
    var center_lng = (1.0 * bounds_lng[0]) + (bounds_lng[1] - bounds_lng[0]) / 2.0;

    map.setCenter(new GLatLng(center_lat, center_lng), 9);
    var borderPolyline = new GPolygon(borderCoords, "#ff0000", 1, 0.9, "#cc3e3e", 0.2);
    map.addOverlay(borderPolyline);
}

/* returns array in form: [ coords(array of GLatLng objects), [minlat, maxlat], [minlng, maxlng] ] */
function ParseBorderString(borderString) {
    var minlat = 90.0, minlng = 180.0, maxlat = -90.0, maxlng = -180.0;
    var coords = Array();
    var borderParts = borderString.split(";");
    for (var x = 0; x < borderParts.length; x++) {
        var coordParts = borderParts[x].trim().split(",");
        if (coordParts.length == 2) {
            var lng = coordParts[0].trim();
            var lat = coordParts[1].trim();
            minlat = (lat < minlat) ? lat : minlat;
            minlng = (lng < minlng) ? lng : minlng;
            maxlat = (lat > maxlat) ? lat : maxlat;
            maxlng = (lng > maxlng) ? lng : maxlng;
            coords.push(new GLatLng(lat, lng));
        }
    }
    return [coords, [minlat, maxlat], [minlng, maxlng]];
}

function LoadLocation(map, siteName, lat, lng, street, city, state, zip) {
    var markerContents = "<div style=\"width:240px;\">" +
                         siteName + "<br/>" + street + "<br/>" + city + ", " + state + " " + zip +
                         "</div>";
    var marker = new GMarker(new GLatLng(lat, lng));
    GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(markerContents); });
    map.addOverlay(marker);
}
