﻿//function displayPoint(marker, i) {

//    var punto = marker.getPoint();

//    map.panTo(punto.x, punto.y);
//    var markerOffset = map.fromLatLngToDivPixel(marker.getPoint());
//    $("#message").show().css({ top: markerOffset.y, left: markerOffset.x });
//}

function mapsLoaded() {
    
    //Carga de los parámetros del inicializacion
    var latitud = $("input[ID$='latitud']").attr("value");
    var longitud = $("input[ID$='longitud']").attr("value");

    latitud = parseFloat(latitud.replace(",", "."));
    longitud = parseFloat(longitud.replace(",", "."));
    
    var zoom = $("input[ID$='zoom']").attr("value");
    var tipoMapa = $("input[ID$='tipoMapa']").attr("value");

    //Inicializacion del mapa  
    var map = new GMap2($("#map").get(0));

    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    var burnsvilleMN
     = new GLatLng(latitud, longitud);

    //Selecciono el tipo de mapa
    objTipoMapa = G_NORMAL_MAP;

    if (tipoMapa == "G_SATELLITE_MAP") {
        objTipoMapa = G_SATELLITE_MAP;
    }
    else {
        if (tipoMapa == "G_HYBRID_MAP") {

            objTipoMapa = G_HYBRID_MAP;
        }
        else {
            objTipoMapa = G_NORMAL_MAP;
        }
    }

    map.setCenter(burnsvilleMN, parseInt(zoom), objTipoMapa);

    //G_NORMAL_MAP  Este tipo de mapa (el predeterminado) muestra un callejero normal. 
    //G_SATELLITE_MAP  Este tipo de mapa muestra imágenes por satélite. 
    //G_HYBRID_MAP  Este tipo de mapa muestra una capa transparente de calles principales en imágenes por satélite. 


    var bounds = map.getBounds();
    var point = new GLatLng(latitud, longitud);
    marker = new GMarker(point);
    map.addOverlay(marker);

    marker.openInfoWindowHtml(getMessage());

    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(getMessage());
    });

    function getMessage() {
        var mensaje = $("#message");
        return mensaje[0].innerHTML;
    }

    //    $("#message").appendTo(map.getPane(G_MAP_FLOAT_SHADOW_PANE));

    //    function displayPoint(marker) {
    //        $("#message").hide();

    //        var moveEnd = GEvent.addListener(map, "moveend", function() {
    //            var markerOffset = map.fromLatLngToDivPixel(marker.getLatLng());
    //            $("#message")
    //							.fadeIn()
    //							.css({ top: markerOffset.y, left: markerOffset.x });

    //            GEvent.removeListener(moveEnd);
    //        });
    //        map.panTo(marker.getLatLng());
    //    }
}
function loadMaps() {
    google.load("maps", "2", { "callback": mapsLoaded });
}
function initLoader() {
    var googleAPI = $("input[ID$='googleAPI']").attr("value");
    var script = document.createElement("script");
    script.src = "http://www.google.com/jsapi?key=" + googleAPI + "&callback=loadMaps";
    script.type = "text/javascript";
    document.getElementsByTagName("head")[0].appendChild(script);
}
