﻿var map = null; var geocoder = null; var bounds = new GLatLngBounds(); var AllMarkers = new Array(); function loadMap(map) { var divMap = new GMap2(document.getElementById(map)); bounds = new GLatLngBounds(); divMap.setMapType(G_HYBRID_MAP); divMap.addControl(new GSmallMapControl()); divMap.addControl(new GMapTypeControl()); divMap.enableDoubleClickZoom(); divMap.enableScrollWheelZoom(); return divMap; }
function displayCoords(map, lat, lng) { if (GBrowserIsCompatible()) { var divMap = loadMap(map); var point = new GLatLng(lat, lng); updateLngLat(lng, lat); divMap.setCenter(point, 7); var marker = new GMarker(point, { draggable: true }); GEvent.addListener(marker, "dragend", function() { updateLngLat(marker.getLatLng().lng(), marker.getLatLng().lat()); }); divMap.addOverlay(marker); bounds.extend(marker.getLatLng()); zoomfit(divMap); } }
function showModal(modalButton) {
    var address = document.getElementById('AddressSearchBox'); var lngbox = document.getElementById('LngTextBox'); var latbox = document.getElementById('LatTextBox'); if (address.value.length > 0) { address.value = ""; }
    lngbox.value = ""; latbox.value = ""; var modalObj = document.getElementById(modalButton); modalObj.click();
}
function setAddressLabel(address, geolocateid, verify) { var addressLabel = document.getElementById('AddressLabel'); var geolocate = document.getElementById('GeoLocateIDBox'); var verifyLabel = document.getElementById('VerifyLabel'); addressLabel.innerHTML = address; verifyLabel.innerHTML = verify; geolocate.value = geolocateid; }
function updateLngLat(lng, lat) { var lngbox = document.getElementById('LngTextBox'); var latbox = document.getElementById('LatTextBox'); lngbox.value = lng; latbox.value = lat; }
function findAddress(map) { if (GBrowserIsCompatible()) { var divMap = loadMap(map); var address = document.getElementById('AddressSearchBox'); var geocoder = new GClientGeocoder(); geocoder.getLatLng(address.value, function(point) { if (!point) { alert(address.value + " not found"); } else { divMap.setCenter(point, 13); var marker = new GMarker(point, { draggable: true }); updateLngLat(marker.getLatLng().lng(), marker.getLatLng().lat()); GEvent.addListener(marker, "dragend", function() { updateLngLat(marker.getLatLng().lng(), marker.getLatLng().lat()); }); divMap.addOverlay(marker); } }); } }
function showPoint() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); geocoder = new GClientGeocoder(); var test = document.getElementById('ctl00_MainContent_testbox'); createMark(test.value, map); } }
function zoomfit(map) { newzoom = map.getBoundsZoomLevel(bounds); newcenter = bounds.getCenter(); map.setCenter(newcenter, newzoom); if (map.getCurrentMapType() == G_HYBRID_MAP && newzoom > 17) { map.setCenter(newcenter, 17); } }
function scrollToElement(element) { $(window).scrollTo($("#map"), 1000); }
function absoluteOffset(elem) { return elem.offsetParent && elem.offsetTop + absoluteOffset(elem.offsetParent); }
function showMap() {
    if (GBrowserIsCompatible()) {
        var divmap = document.getElementById("map"); divmap.innerHTML = ""; map = new GMap2(document.getElementById("map")); map.clearOverlays(); AllMarkers = new Array(); bounds = new GLatLngBounds(); map.setUIToDefault(); map.enableDoubleClickZoom(); map.disableScrollWheelZoom(); map.removeMapType(G_PHYSICAL_MAP); var point = new GLatLng(0, 0); map.setCenter(point, 7); var PlanDropdown = document.getElementById('ctl00_MainContent_PlansDropDown'); var gridSelected = ''; if (PlanDropdown.options[PlanDropdown.selectedIndex].value == 'F') { gridSelected = 'ctl00_MainContent_ProviderResults'; } else { gridSelected = 'ctl00_MainContent_MedicaidProviderResults'; }
        var grid = document.getElementById(gridSelected); if (grid != null) {
            var testbox = document.getElementById('ctl00_MainContent_testbox'); var colnumber = grid.rows[1].cells.length; var markerManager = new GMarkerManager(map); var AddedGridIndex = new Array(); for (i = 1; i < grid.rows.length; i++) {
                if (grid.rows[i].cells.length == colnumber) {
                    var GridIndexAdded = false; var TabIndex = 0; var lat = grid.rows[i].cells[colnumber - 2].innerHTML.replace(/^\s+|\s+$/g, ''); var lng = grid.rows[i].cells[colnumber - 1].innerHTML.replace(/^\s+|\s+$/g, ''); for (k = 0; k < AddedGridIndex.length; k++) { if (AddedGridIndex[k] == i) { GridIndexAdded = true; break; } }
                    if (!GridIndexAdded) {
                        var addressIndex = colnumber - 3; var address = grid.rows[i].cells[addressIndex].innerHTML.replace(/^\s+|\s+$/g, ''); var marker; var mapTabs = new Array(); mapTabs.push(new GInfoWindowTab(address.split(',')[0].substr(0, 10), address)); AddedGridIndex.push(i); marker = createMark(i, grid, address, lat, lng); marker = createMarkAction(grid, i, marker, mapTabs, 0); for (j = i + 1; j < grid.rows.length - 1; j++) { var checkLat = grid.rows[j].cells[colnumber - 2].innerHTML.replace(/^\s+|\s+$/g, ''); var checkLng = grid.rows[j].cells[colnumber - 1].innerHTML.replace(/^\s+|\s+$/g, ''); if (lat == checkLat && lng == checkLng) { var checkAddress = grid.rows[j].cells[addressIndex].innerHTML.replace(/^\s+|\s+$/g, ''); mapTabs.push(new GInfoWindowTab(checkAddress.split(',')[0].substr(0, 10), '<div style="width:' + (mapTabs.length + 1) * 88 + 'px">' + checkAddress + '</div>')); createMarkAction(grid, j, marker, mapTabs, mapTabs.length - 1); TabIndex = mapTabs.length - 1; AddedGridIndex.push(j); } }
                        AllMarkers[AllMarkers.length] = marker; if (marker.getLatLng().lat() > 18.25 && marker.getLatLng().lat() < 22.3 && marker.getLatLng().lng() > -160.5 && marker.getLatLng().lng() < -154.3) { bounds.extend(marker.getLatLng()); zoomfit(map); map.addOverlay(marker); } 
                    }
                    if (lat > 18.5 && lat < 22.3 && lng > -160.5 && lng < -154.5) {
                        grid.rows[i].style.cursor = "pointer"; grid.rows[i].onclick = function() {
                            var lat = grid.rows[this.rowIndex].cells[colnumber - 2].innerHTML.replace(/^\s+|\s+$/g, ''); var lng = grid.rows[this.rowIndex].cells[colnumber - 1].innerHTML.replace(/^\s+|\s+$/g, ''); var MarkerIndex; for (var i = 0; i < AllMarkers.length; i++) { if (AllMarkers[i].getLatLng().lat() == lat && AllMarkers[i].getLatLng().lng() == lng) { MarkerIndex = i; break; } }
                            GEvent.trigger(AllMarkers[MarkerIndex], "click"); map.getInfoWindow().selectTab(TabIndex);
                        };
                    } 
                } 
            } 
        }
        scrollToElement(divmap);
    } 
}
function createMarkAction(grid, gridIndex, marker, infoTabs, TabIndex) { var currentClass = grid.rows[gridIndex].className; GEvent.addListener(marker, "click", function() { marker.openInfoWindowTabsHtml(infoTabs); map.getInfoWindow().enableMaximize(); grid.rows[gridIndex].className = "ProviderGridRowHighlight"; }); GEvent.addListener(marker, "infowindowclose", function() { grid.rows[gridIndex].className = currentClass; }); return marker; }
function createMark(GridIndex, grid, address, lat, lng) { var point = new GLatLng(lat, lng); var marker = new GMarker(point, { draggable: false }); var currentClass = grid.rows[GridIndex].className; var mapTabs = new Array(); return marker; }
function MapLinkPressed(id) { var link = document.getElementById(id); var divmap = document.getElementById("map"); if (link.innerHTML == "Show Map") { link.innerHTML = "Hide Map"; divmap.style.height = '300px'; showMap(); } else { link.innerHTML = "Show Map"; divmap.style.height = '0px'; divmap.innerHTML = ""; } }
function MapLinkPressed() { var divmap = document.getElementById("map"); divmap.style.height = '300px'; divmap.innerHTML = ""; showMap(); }