﻿        var map;

        function InitializeMap() {
            //            map = new GMap2(document.getElementById("divMapCanvas"));

            //            var point = new GLatLng(43.771636, -79.283609);
            //            var marker = new GMarker(point);

            //            map.addOverlay(marker);
            //            map.setCenter(point, 10);
            //


            if (GBrowserIsCompatible()) {
                GoogleMapService.GetAllMapPoints(gotPoints, notGotPoints);
            }

        }




        function DivisionMap(divKey) {
            if (GBrowserIsCompatible()) {
                GoogleMapService.GetDivisionMapPoints(divKey, gotPoints, notGotPoints);
            }
        }

        function SinglePointMap(pointKey) {
            if (GBrowserIsCompatible()) {
                GoogleMapService.GetBranchDivisionMapPoint(pointKey, gotSinglePoint, notGotPoints);
            }
        }

        function gotPoints(result) {

            map = new GMap2(document.getElementById("divMapCanvas"));
            var bounds = new GLatLngBounds();

            var ind;
            for (ind = 0; ind < result.length; ind++) {
                var lat = result[ind].Latitude;
                var lng = result[ind].Longitude;
                var latlng = new GLatLng(lat, lng);

                var marker = GetMarker(result[ind].BranchOwner, latlng);

                marker.BranchOwner = result[ind].BranchOwner;
                marker.BranchID = result[ind].BranchID;

                map.addOverlay(marker);

                GEvent.addListener(marker,
                           "click",
                           function(coordinates) {
                               GoogleMapService.GetBranchInfo(this.BranchOwner,
                                                                                   this.BranchID,
                                                                                   openContextWindow,
                                                                                   notGotPoints,
                                                                                   this);
                           }
                          );


                bounds.extend(latlng);

            }
            AddMapControls();
            map.setCenter(bounds.getCenter());
            
            var zoom = (result.length == 1) ? 11 : map.getBoundsZoomLevel(bounds);
            zoom = (zoom > 14) ? 14 : zoom;
            map.setZoom(zoom);
        }


        function notGotPoints(result, context) {
            alert('failed');
        }

        function gotSinglePoint(result) {

            map = new GMap2(document.getElementById("divMapCanvas"));
            AddMapControls();
            var point = new GLatLng(result.Latitude, result.Longitude);


            if (point) {

                var marker = GetMarker(result.BranchOwner, point);


                map.addOverlay(marker);
                map.setCenter(point, 10);

                map.openInfoWindow(point, result.InfoHTML);
                GEvent.addListener(marker, "click", function() {
                    map.openInfoWindow(point, result.InfoHTML);
                }
                          );
            }

            location.href = '#anchorMap';
        }
        function AddMapControls() {
            map.enableScrollWheelZoom();
            map.addControl(new GScaleControl);
            map.addControl(new GLargeMapControl3D);
            map.addControl(new GMapTypeControl);
        }


        function GetMarker(branchOwner, point) {
            var customIcon = new GIcon(G_DEFAULT_ICON);

            switch (branchOwner) {
                case 'r':
                    customIcon.image = '/images/maps-marker_randstad.png';
                    break;

                case 's':
                    customIcon.image = '/images/maps-marker_sapphire.png';
                    break;

                case 'a':
                    customIcon.image = '/images/maps-marker_ats.png';
                    break;
            }

            var markerOptions = { icon: customIcon };

            var oM = new GMarker(point, markerOptions);

            return oM;
        }


        function openContextWindow(result, context) {

            context.openInfoWindow(result);
        }

        function AreaMap(areaID) {
            if (GBrowserIsCompatible()) {
                GoogleMapService.GetAreaMapPoints(areaID, gotPoints, notGotPoints);
            }
        }

