/**
 * Implementação do serviço de geração de mapas da google
 */
registarNameSpace("Mn.Base.GoogleMaps");

/**
 * Inicia um mapa utilizando o google maps.
 * Necessita que a API esteja previamente carregada.
 *
 * @author MNDeployer
 * @version 1.0
 * @since 0.01
 *
 * @param {Object} elemento_mapa_jquery Objecto jquery com o selector para o container do mapa
 * @param {String} coord_latitude
 * @param {String} coord_longitude
 * @param {String} html_marcador Código HTML a incluir no marcador
 * @param {Array} opcoes_mapa Contendo as configurações do mapa que se pretendam inicializar, caso não seja passado utiliza as por defeito
 */
Mn.Base.GoogleMaps.iniciaMapa = function(elemento_mapa_jquery, coord_latitude, coord_longitude, html_marcador, opcoes_mapa) {

    var myLatlng = new google.maps.LatLng(coord_latitude, coord_longitude);
    if(opcoes_mapa != undefined){
        var myOptions = opcoes_mapa;
    }
    else{
        myOptions = {
            zoom: 16,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
    }
    
    var map = new google.maps.Map(elemento_mapa_jquery.get(0), myOptions);

    //marcador mapa
    var marker_opt = {
        position: myLatlng,
        map: map
    };
    var marker = new google.maps.Marker(marker_opt);
    var info_win_opt = {
        content: html_marcador
    };
    var info_win = new google.maps.InfoWindow(info_win_opt);

    //eventos
    google.maps.event.addListener(marker, "click", function() {
        info_win.open(map,marker);
    });

}
