var markers = new Array();
function inicializa_mapas(edition)
{
    $('.map').each(function(){
        var id = $(this).attr('id');
        id = id.split('_');
        markers = [];
        //var map = new GMap2(document.getElementById('mapa_'+id[1]));        
        //map.setCenter(new GLatLng(parseFloat(latitud),parseFloat(longitud)),parseFloat(zoom));
        //map.setCenter(new google.maps.LatLng(parseFloat(latitud),parseFloat(longitud)),parseFloat(zoom));
        //map.setUIToDefault();
        //        if($('#vista_'+id[1]).val() != '')
        //            map.setMapType(map_view($('#vista_'+id[1]).val()));
        //        $('.marker_'+id[1]).each(function(){
        //            var cadena = $(this).val();
        //            var markers_array = cadena.split(',');
        //            ini_marker(map,markers_array);
        //        });
        var latitud = $('#latitud_'+id[1]).val();
        var longitud = $('#longitud_'+id[1]).val();
        var zoom = $('#zoom_'+id[1]).val();
        var latlng = new google.maps.LatLng(latitud,longitud);
        var myOptions = {
            zoom: parseInt(zoom),
            center: latlng,
            mapTypeId: map_view($('#vista_'+id[1]).val()),
            streetViewControl: true
        };
        var map = new google.maps.Map(document.getElementById('mapa_'+id[1]),myOptions);
        var panoramaOptions = {
            position: latlng,
            enableCloseButton:true
        };
        if($('#vista_'+id[1]).val() == 'streetView')
        {
            var panorama = new google.maps.StreetViewPanorama(document.getElementById('mapa_'+id[1]),panoramaOptions);
            map.setStreetView(panorama);
        }
        
//        alert('.jsonMarkers'+id[1]);
        $('.jsonMarkers_'+id[1]).each(function(){
            var str;
            str = $(this).val();
            str = eval( "(" + str + ")" );
            markers.push(str);
        });
        ini_markers(map,edition);
    });
}

function inicializa_mapa(id)
{
    map = new GMap2(document.getElementById('mapa_'+id));
    map.setCenter(new GLatLng(23.885837699862005,-102.12890625),4);
    map.setUIToDefault();
}
function ini_markers(map,edition)
{
    //var total = markers_array.length;    
    for(var indMark in markers)
    {
//        alert(markers[i]);
    if(!isNaN(indMark))
        {
        var coordenadas = new google.maps.LatLng(markers[indMark].latitud,markers[indMark].longitud);
        var html = make_html(coordenadas.lat(),coordenadas.lng(),markers[indMark].id_marker,markers[indMark].titulo,markers[indMark].descripcion,1,edition);
        set_marker(coordenadas,markers[indMark].id,html,map,edition);
        }
    }
}

function set_marker(coordenadas,titulo,html,map,edition)
{
    // tipo => 0=nuevo 1= anterior
    //var marker = new GMarker(coordenadas,{draggable: true,title:titulo});
    //map.addOverlay(marker);   
    var marker = new google.maps.Marker({
        position:coordenadas,
        map:map,
        title:titulo,
        draggable:false
    });
        
    var inputForm = document.createElement("form");    
    inputForm.innerHTML = html;
    actual = marker;    
    infowindow = new google.maps.InfoWindow({
        content:inputForm
    });

    google.maps.event.addListener(marker, 'click', function() {
        for(i in markers)
        {
//            alert(markers[i].id);
            if(markers[i].id == this.title)
            {
                var html = make_html(coordenadas.lat(),coordenadas.lng(),markers[i].id_marker,markers[i].titulo,markers[i].descripcion,1,edition);
                inputForm.innerHTML = html;
                actual = marker;
                infowindow.setContent(inputForm);
                //                infowindow1 = new google.maps.InfoWindow({content:inputForm});
                break;
            }
        }
        infowindow.open(map,actual);
    });  
}


//function ini_marker(map, markers_array)
//{
//    var coordenadas = new GLatLng(markers_array[0], markers_array[1]);
//    var marker = new GMarker(coordenadas);
//    map.addOverlay(marker);
//    var latlng = map.getCenter();
//    var lng = latlng.lng();
//    var lat = latlng.lat();
//    var html = '<div style="font-size:11px;background-color:#B9D3E2;padding-bottom:15px;border:none" id="rounded"><strong>'+markers_array[2]+'</strong>'
//    +'<hr style="margin-bottom:3px;display:block"/>'
//    +markers_array[3]+'</div>';
//    marker.bindInfoWindowHtml(html);
//
//    GEvent.addListener(marker, "dragstart", function() {
//        map.getInfoWindow().hide();
//    });
//    GEvent.addListener(marker, "click", function() {
//        actual = marker;
//    });
//}

function map_view(vista)
{
    vista = vista.toLowerCase();
    switch(vista)
    {
        case 'roadmap': case 'mapa':
            result = google.maps.MapTypeId.ROADMAP;
            break;
        case 'satellite': case 'satélite':
            result= google.maps.MapTypeId.SATELLITE;
            break;
        case 'hybrid': case 'híbrido':
            result= google.maps.MapTypeId.HYBRID;
            break;
        case 'terrain': case 'relieve':
            result= google.maps.MapTypeId.TERRAIN;
            break;
        default :
            result= google.maps.MapTypeId.ROADMAP;
            break;
    }

    return result;
}

function make_html(lat,lng,id,titulo,descripcion,tipo,edition)
{	// tipo => 0=nuevo 1= anterior
    var readonly = '';
    if(edition == false)
    {
        readonly = 'readonly';
    }
//    alert(readonly);
    var description = descripcion;
    /*
     *      Se remplaza la cadena <BL2A> por el salto de linea, para que se muestre correctamente
     *      en la edicion de la descripcion del marcador.
     **/
    description = description.replace(/<BL2A>/g,"\n");
    var html = '<table style="margin:-8px 0pt 0pt;width:100%; padding:5px 5px 10px 5px;" id="rounded">'
    +'<tr ><td><h1>'+titulo+'</h1></td></tr>'
    +'<tr ><td><div style="overflow-x:hidden;overflow-y:auto;height:85px;">' + description + '</div></td></tr>';
//    if(tipo == 0) //marcador nuevo
//    <input id="titulo" '+ readonly + ' type="text" style="width:94%" value="'
//        html = html+'<tr><td colspan="2" style="text-align:center"><a id="action" style="text-decoration:none" onClick="save_marker()" class="boton">Guardar </a> ';
//    else // marcador previamente almacenado
//        html = 	html+'<tr><td colspan="2" style="text-align:center"><a id="action" style="text-decoration:none" onClick="edit_marker()" class="boton">Actualizar </a> ';

//    html = html+'<a style="text-decoration:none" onClick="remove_marker('+id+')" id="del" class="boton"> Eliminar</a></td></tr>'
//    +'</table>'
//    + '<input type="hidden" id="id_marker" value="'+id+'"/>'
//    + '<input type="hidden" id="longitud_marker" value="'+lng+'"/>'
//    +'<input type="hidden" id="latitud_marker" value="'+lat+'"/>';
    return html;
}

