﻿var GoogleMap;
var MarkerManager;

function load(elementName) {
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById(elementName));
        map.setCenter(new GLatLng(0, 0), 10);
        map.setUIToDefault();
        map.disableScrollWheelZoom();
        var mgr = new MarkerManager(map);

        GoogleMap = map;
        MarkerManager = mgr;
    }
}

function getSuppplierMarker(latitude, longitude, supplierUrl, name, address, markerImagePath) {
    var point = new GLatLng(latitude, longitude);

    var mapIcon = new GIcon();
    mapIcon.image = markerImagePath;
    mapIcon.iconSize = new GSize(42, 33);
    mapIcon.iconAnchor = new GPoint(6, 20);
    mapIcon.infoWindowAnchor = new GPoint(21, 16);

    markerOptions = { icon: mapIcon };

    var marker = new GMarker(point, markerOptions);

    GEvent.addListener(marker, 'click', function () {
        marker.openInfoWindow(supplierPopupText(supplierUrl, name, address));
    });

    return marker;
}

function plotSupplier(latitude, longitude, supplierUrl, name, address, markerImagePath) {
    GoogleMap.addOverlay(getSuppplierMarker(latitude, longitude, supplierUrl, name, address, markerImagePath));
}

function plotSearchTerm(latitude, longitude) {
    var point = new GLatLng(latitude, longitude);

    var marker = new GMarker(point);

    GoogleMap.addOverlay(marker);
}

function plotMultipleSuppliers(markerArray) {
    MarkerManager.addMarkers(markerArray, 10);
    MarkerManager.refresh();
}

function supplierPopupText(supplierUrl, name, address) {
    return "<div class='info'><h3><a href='" + supplierUrl + "'>" + name + "</a></h3><p>" + address + "</p></div><br style=\"clear: both;\"/>";
}

function centerMap(latitude, longitude, zoomLevel) {
    if (GoogleMap != null) {
        GoogleMap.setCenter(new GLatLng(latitude, longitude), zoomLevel);
    }
}                
