﻿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 AreaMap(areaID, onlyDivsion) {
    if (GBrowserIsCompatible) {
        GoogleMapService.GetAreaMapPoints(areaID, onlyDivsion, 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());
    map.setZoom(map.getBoundsZoomLevel(bounds));
}


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);
}

