//--Variables--//
var map;
var mgr;
var html;
var markerGroups = { "0": [], "1": [], "2": [], "3": [] };
//--Load map--//
function LoadMap(places) {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("Map"));
        map.setCenter(new GLatLng(44.10336537791152, 17.81982421875000), 8);
        map.enableDoubleClickZoom();

        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());

        CreateMarkers(places);
    }
}
//--Loop and create markers--//
function CreateMarkers(markers) {
    var batch = [];
    for (var i = 0; i < markers.length; i++) {
        var point = new GLatLng(markers[i].lat, markers[i].lon);
        batch.push(CreateMarker(point, markers[i].txt, markers[i].type));
    }
    mgr = new MarkerManager(map);
    mgr.addMarkers(batch, 8);
    mgr.refresh();
}
//--Create marker--//
function CreateMarker(point, txt, type) {
    var myIcon = new GIcon(G_DEFAULT_ICON);
    myIcon.image = '../../files/mapfiles/marker-' + type + '.png'

    var markerOptions = { icon: myIcon };
    var marker = new GMarker(point, markerOptions);
    marker.content = txt;

    markerGroups[type].push(marker);

    GEvent.addListener(marker, "click", function() {
        if (map.getInfoWindow().isHidden()) {
            marker.openInfoWindowHtml(txt);
        } else {
            marker.closeInfoWindow();
        }
    });
    return marker
}
//--Move map to point--//
function MoveToPoint(point) {
    if (map.isLoaded() == true && point.length > 0) {
        map.panTo(new GLatLng(point.split(',')[0], point.split(',')[1]));
    }
}
//--Zoom map to point--//
function ZoomToPoint(point) {
    if (map.isLoaded() == true && point.length > 0) {
        map.setCenter(new GLatLng(point.split(',')[0], point.split(',')[1]), 18, G_HYBRID_MAP);
    }
}
//--Show or hide marker group--//
function toggleMarkerGroup(type) {
    for (var i = 0; i < markerGroups[type].length; i++) {
        var marker = markerGroups[type][i];
        if (marker.isHidden()) {
            marker.show();
        } else {
            marker.hide();
        }
    }
}