// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

// Carga Google Maps.
var mapa_grande;
var mapa_mini;

function cargar() {
	if (GBrowserIsCompatible()) {
		mapa_grande = new GMap2(document.getElementById("mapa_grande"), {mapTypes:[G_NORMAL_MAP, G_HYBRID_MAP]});

		mapa_mini = new GMap2(document.getElementById("mapa_mini"));
		
		mapa_grande.addControl(new GSmallMapControl());
		mapa_grande.addControl(new GMapTypeControl());
		mapa_grande.setCenter(new GLatLng(centro[0], centro[1]), zoom, mapa_grande.getMapTypes()[tipo_mapa]);

		// Eventos para guardar características del mapa.
		GEvent.addListener(mapa_grande, "moveend", function() {
			guardar_posicion(); // Definida en cabecera de página.
		});
		GEvent.addListener(mapa_grande, "zoomend", function(ini, fin) {
			guardar_posicion();
		});
		GEvent.addListener(mapa_grande, "maptypechanged", function() {
			guardar_posicion();
		});
		
		mapa_mini.disableDragging();
		mapa_mini.setCenter(new GLatLng(centro_mini[0], centro_mini[1]), zoom_mini);

		mapa_mini.addOverlay(poli);
		//mapa_grande.addOverlay(poli);

		poner_iconos();
	}
}

function descargar() {
	GUnload();
}

// Esta función es necesaria para que funcione la asignación de eventos a los
// marcadores. Si no, todos cogen el mismo.
function crear_marcador(punto, html) {
	var marcador = new GMarker(punto);
	GEvent.addListener(marcador, "click", function() {
		marcador.openInfoWindowHtml(html);
	});
	return marcador;
}

// Esta función es necesaria para que funcione la asignación de eventos a los
// marcadores. Si no, todos cogen el mismo.
function crear_marcador_mini(punto, marcador, html) {
	var marcador_mini = new GMarker(punto);
	GEvent.addListener(marcador_mini, "click", function() {
		marcador.openInfoWindowHtml(html);
	});
	return marcador_mini;
}


function poner_iconos() {
	if(datos != null) {
		for (var i = 0; i < datos.length; i++) {
			var punto = new GLatLng(datos[i]['coordenadas'][0], datos[i]['coordenadas'][1]);
			var marcador = crear_marcador(punto, datos[i]['html']);
			var marcador_mini = crear_marcador_mini(punto, marcador, datos[i]['html']);
			mapa_grande.addOverlay(marcador);
			mapa_mini.addOverlay(marcador_mini);
		}

	}
}

function getTipoMapa() {
	for (var i = 0; i < mapa_grande.getMapTypes().length; i++) {
		if (mapa_grande.getCurrentMapType() == mapa_grande.getMapTypes()[i]) {
			return i;
		}
	}
}
