﻿function onClientOverlayAdd(overlay) {
    if (overlay instanceof GMarker) {
        if (gmap1.Markers != null) {
            if (gmap1.Markers.length > 0) {
                if ((gmap1.Markers[0].GMarker == overlay) && (!gmap1.Markers[0].GMarker.isHidden())) {
                    setTimeout("GEvent.trigger(gmap1.Markers[0].GMarker, 'click');", 1);
                }
            }
        }
    }
}

function onMapLoad() {
    gmap1.GMap.addControl(new GOverviewMapControl(new GSize(160, 120)));
}

function onCheckDirectionsErrors() {
    var code = gmap1.Directions[0].GDirections.getStatus().code;
    if (code == G_GEO_SUCCESS) {
        document.getElementById('route_error_G_GEO_UNKNOWN_ADDRESS').style.display = 'none';
        document.getElementById('route_error_OTHER').style.display = 'none';
        hideStartMarker();
    }
    else if (code == G_GEO_UNKNOWN_ADDRESS) {
        document.getElementById('route_error_G_GEO_UNKNOWN_ADDRESS').style.display = 'block';
        document.getElementById('route_error_OTHER').style.display = 'none';
        showStartMarker();
    }
    else {
        document.getElementById('route_error_G_GEO_UNKNOWN_ADDRESS').style.display = 'none';
        document.getElementById('route_error_OTHER').style.display = 'block';
        showStartMarker();
    }
}

function onLoadDirections(from, to) {
    var query = "from: " + from + " to: " + to;
    if ((gmap1.Directions == null) || (gmap1.Directions.length == 0)) {
        gmap1.addDirection({ "Query": query, "RoutePanelId": "route" });
        GEvent.addListener(gmap1.Directions[0].GDirections, "load", onCheckDirectionsErrors);
        GEvent.addListener(gmap1.Directions[0].GDirections, "error", onCheckDirectionsErrors);
    }
    gmap1.Directions[0].clear();
    gmap1.Directions[0].load(query);
}

function hideStartMarker() {
    gmap1.Markers[0].GMarker.closeInfoWindow();
    gmap1.Markers[0].GMarker.hide();
}

function showStartMarker() {
    if (gmap1.Directions != null) {
        if (gmap1.Directions.length > 0) {
            gmap1.Directions[0].clear();
        }
    }
    gmap1.Markers[0].GMarker.show();
    setTimeout("GEvent.trigger(gmap1.Markers[0].GMarker, 'click');", 1);
}
