﻿
function loadPSCMap() {
    if (typeof (homeSpatialInfo) != "undefined" && typeof (ProximityLocations) != "undefined")
    {
        if (GBrowserIsCompatible())
        {
            var map = new GMap2(document.getElementById("map"));
            map.addControl(new GSmallMapControl());
            map.addControl(new GMapTypeControl());
            map.setCenter(new GLatLng(homeSpatialInfo.latitude, homeSpatialInfo.longitude), 11);

            map.enableScrollWheelZoom();

            // Create a base icon for all of our markers that specifies the
            // shadow, icon dimensions, etc.
            var baseIcon = new GIcon();
            baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
            baseIcon.iconSize = new GSize(20, 34);
            baseIcon.shadowSize = new GSize(37, 34);
            baseIcon.iconAnchor = new GPoint(9, 34);
            baseIcon.infoWindowAnchor = new GPoint(9, 2);
            baseIcon.infoShadowAnchor = new GPoint(18, 25);


            // Creates  a tabbed marker and sets up the event window
            function createTabbedMarker(point, htmlTab1, heading1, locationNumber) {
                var icon = new GIcon(baseIcon);
                icon.image = "/images/Web/markers/marker" + locationNumber + ".png";
                var marker = new GMarker(point, icon);
                GEvent.addListener(marker, "click", function() {
                    marker.openInfoWindowTabsHtml([new GInfoWindowTab(heading1, htmlTab1)]);
                });
                return marker;
            }

            // Creates a marker whose info window displays the letter 
            // corresponding to the given index.
            function createMarker(point, name, address, telephone, urladdress, locationNumber) {
                var icon = new GIcon(baseIcon);
                icon.image = "/images/Web/markers/marker" + locationNumber + ".png";
                var marker = new GMarker(point, icon);
                GEvent.addListener(marker, "click", function() {
                    marker.openInfoWindowHtml(name + "<br />" + address + "<br />" + telephone + "<br />" + 
                                             "<a target='_blank' href='http://maps.google.com/maps?f=q&hl=en&q=from:" + 
                                             homeSpatialInfo.userAddress + "+to:" + urladdress + "'>Directions</a>");
                });
                return marker;
            }

            // Load all the markers from the JSON ProximityLocations variable
            var bounds = map.getBounds();
            var southWest = bounds.getSouthWest();
            var northEast = bounds.getNorthEast();
            var lngSpan = northEast.lng() - southWest.lng();
            var latSpan = northEast.lat() - southWest.lat();

            for (var i = 0; i < ProximityLocations.locations.length; i++)
            {
                var point = new GLatLng(ProximityLocations.locations[i].latitude,
                                        ProximityLocations.locations[i].longitude);
                map.addOverlay(
                    createTabbedMarker(point,
                                       ProximityLocations.locations[i].addressinfo +
                                       "<br /><br /><a target='_blank' href='http://maps.google.com/maps?f=q&hl=en&q=from:" +
                                       homeSpatialInfo.userAddress + "+to:" + 
                                       ProximityLocations.locations[i].urladdress + "'>Click here for directions</a>",
                                       "Address",
                                       i + 1)
                );
            }
        }
    }
}