/*
	este modulo maneja los compartamientos de un mapa de google a partir de llamadas realizadas para un helper
	de la clase de google maps
*/

    var map = null;
    var geocoder = null;
    var time_inicio = Math.round(new Date().getTime()/1000.0);
    	time_inicio = time_inicio;
    var time_consulta = 10000;
    var time_mark = time_consulta*20; //20 markers en el mapa
    var id_geoev = null;
	
    function initialize(zoomValue, mapControl) {
		if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById("map_canvas"));
						
			map.setCenter(new GLatLng(0, 0), zoomValue);
			map.addMapType(G_PHYSICAL_MAP);
			map.removeMapType(G_NORMAL_MAP);
			map.removeMapType(G_SATELLITE_MAP);
			map.removeMapType(G_HYBRID_MAP);
			if (mapControl){
				//map.addControl(new GLargeMapControl());
			}
			//map.addControl(new GMapTypeControl());
			GEvent.addListener(map, 'click', function (overlay, point) {
				if (overlay && overlay.myId > 0) {
					GDownloadUrl("/esp/todos/todos/ajax/index/mbpvisionretrieve?ajax=1&request=getUser&tipo="+overlay.tipo+"&time="+overlay.time+"&id="+overlay.myId,function(data, responseCode) {
						overlay.openInfoWindowHtml(data);
					});
				} 
			});

			MBPvision (map);
		}

	}
	
	/*
	 * esta funcion es la que se encarga de buscar los eventos y generar los marcadores, luego se muestran los datos
	 */
	function MBPvision (map, last_id) {
		//action para buscar los datos
		var path = "/esp/todos/todos/ajax/index/mbpvisionsearch";
		//parametros iniciales de busqueda
		var datos = {"search": 1, "time" : time_inicio, "last_id": last_id, "ajax": 1 };
		//parametros adicionales
		if($('#id_pais').val() != 0) {
			datos['id_pais'] = $('#id_pais').val();
		}
		if($('#id_deportes').val() != 0) {
			datos['id_deporte'] = $('#id_deportes').val();
		}
				
		//envio los datos para realizar la busqueda
		$.post(path, datos, function(banner){
			//si la funcion devuelve vacio no hago nada y empieza la busqueda por el primero de los habilitados
			if (banner.status == "vacio"){
				id_geoev = 0;
			} else {
				id_geoev = banner.id_geoevento;
				var point = new GLatLng(banner.latitud, banner.longitud);
				add_mark(point, banner.id, banner.fecha, banner.tipo, map);
				map.setCenter(new GLatLng(banner.latitud, banner.longitud), 5);
			}
		}, 'json');
		//corro nuevamente la funcion
		window.setTimeout(function() {
			MBPvision (map, id_geoev) 
		},time_consulta);
	}
	
	/*
	 * esta funcion es la que crea el marker y cuelga los datos, lo hace dependiendo del tipo de evento que se quiere
	 * mostrar
	 */
	function add_mark(point,user,time,tipo,map) {
			var mbpicon = new GIcon(G_DEFAULT_ICON);
			if(tipo=='anuncio') {
				mbpicon.image='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/blue-dot.png';
				//mbpicon.shadow='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/info_circle.shadow.png';
			} else if (tipo=='evento') {
				mbpicon.image='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/green-dot.png';
				//mbpicon.shadow='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/info_circle.shadow.png';
			} else if (tipo=='video') {
				mbpicon.image='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/yellow-dot.png';
				//mbpicon.shadow='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/webcam.shadow.png';
			} else if (tipo=='blog') {
				mbpicon.image='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/purple-dot.png';
				//mbpicon.shadow='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/POI.shadow.png';
			} else {
				mbpicon.image='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/red-dot.png';
				//mbpicon.shadow='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/sportvenue.shadow.png';
			}
			mbpicon.shadow='http://maps.google.com/intl/es_ALL/mapfiles/ms/micons/msmarker.shadow.png';
			mbpicon.iconSize = new GSize(32, 32);
			mbpicon.shadowSize = new GSize(59, 32);
			markerOptions = { icon:mbpicon };

			var marker = new GMarker(point, markerOptions);
			var user = user;
			var request;
			
			marker.myId = user;
			marker.tipo = tipo;
			marker.time = time;

			GDownloadUrl("/esp/todos/todos/ajax/index/mbpvisionretrieve?ajax=1&request=getUser&tipo="+tipo+"&time="+time+"&id="+user,function(data, responseCode) {
					marker.openInfoWindowHtml(data);
			});
			
			map.addOverlay(marker);	
			
			window.setTimeout(function() { 
				map.removeOverlay(marker);
			},time_mark);
			
	}
	
	function recargar_mapa() {
		initialize(5, true);		
	}
	
	$(document).ready(function(){
		initialize(5, true);
	});
