﻿var map;

function loadMap() {
    if (GBrowserIsCompatible()) {
        var divId=document.getElementById($(".map").attr("id"));    
        map = new GMap2(divId);
        map.enableScrollWheelZoom();
        new GKeyboardHandler(map);

        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(43.698146,11.451208), 10);
    }
}

function createMarker(point,html,iconType) {
    var marker;
    
    if (iconType!="") {
        var customIcon = new GIcon(G_DEFAULT_ICON);
        customIcon.image = "img/map"+iconType+"Pin.png";
        customIcon.iconSize = new GSize(32, 32);

        var markerOptions = { icon:customIcon };
        marker = new GMarker(point, markerOptions);
    }
    else {
        marker = new GMarker(point);    
    }
        
    GEvent.addListener(marker, "click", function() {
      marker.openInfoWindowHtml(html);
    });
    return marker;
}

function loadMarkersByIDTipoFilialeIDMarca(idTipoFiliale, idMarca) {  
    map.clearOverlays();     
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "ws/wsBase.asmx/GetMapMarkersByIDTipoFilialeIDMarca",
        data: "{'idTipoFiliale':"+idTipoFiliale+","
            + "'idMarca':"+idMarca+"}",
        dataType: "json",
        success: function(data, textStatus) {
            $.each(data, function(i,val){
                if (val.latitude!=0) {
                    var point=new GLatLng(val.latitude, val.longitude);
                    var marker= createMarker(point,val.infoWindow,val.iconType);
                    map.addOverlay(marker);
                    map.checkResize();
                }
            });
            
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
        }
    });
}

function loadMarkerByIDFiliale(idFiliale) {  
    // N.B. Dovendo ritornare i dati JSon prima della visualizzazione imposta la chiamata come sincrona
    var retData;
    map.clearOverlays();     
    $.ajax({
        type: "POST",
        async: false,
        contentType: "application/json; charset=utf-8",
        url: "ws/wsBase.asmx/GetMapMarkerByIDFiliale",
        data: "{'idFiliale':"+idFiliale+"}",
        dataType: "json",
        success: function(data, textStatus) {
            $.each(data, function(i,val){
                if (val.latitude!=0) {
                    var point=new GLatLng(val.latitude, val.longitude);
                    var marker= createMarker(point,val.infoWindow,val.iconType);
                    map.addOverlay(marker);
                    map.setCenter(new GLatLng(val.latitude, val.longitude), 13);
                    GEvent.trigger(marker, "click");
                }
            });
            retData=data;
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
        }
    });    
    return retData;
}   
