$().ready( function() { 
	load();
});
$().unload( function() { GUnload();});


var googleMap;
var markerManager = new Array();

var mapName = 'googlemap';

var defaultCenter = new GLatLng(43.32767520320563, -2.849578857421875);
var initZoom = 11;
var minZoomToChangeIcon = 14;
var showPoint = true;
var marker;
var geocoder;
var listenerMapClick;
var actualZoom = initZoom;

var image1 = '../../imagenes/iconos/iglesia-aheb4g.png';
var image2 = '../../imagenes/iconos/iglesia-aheb4p.png';
var size1 = new GSize(20, 22);
var size2 = new GSize(25, 28);


var icon = new GIcon(); 
icon.image = image1;
icon.iconSize = size1;
//icon.shadow = 'img/sombra.png';
//icon.shadowSize = new GSize(22, 20);
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);

function load() {
	if (GBrowserIsCompatible()) {
		googleMap = new GMap2(document.getElementById(mapName));
		googleMap.addMapType(G_PHYSICAL_MAP);
		googleMap.setMapType(G_HYBRID_MAP);
		googleMap.addControl(new GMapTypeControl());
		googleMap.addControl(new GLargeMapControl());
		googleMap.addControl(new GOverviewMapControl(new GSize(120, 90)));
		googleMap.enableScrollWheelZoom();
		
		googleMap.setCenter(defaultCenter, initZoom);
		
		//markerManager = new MarkerManager(googleMap);
		
		GEvent.addListener(googleMap, "moveend", function(){
			if((googleMap.getZoom() == minZoomToChangeIcon)  && (actualZoom == minZoomToChangeIcon - 1)){
				// poner icono grande
				icon.image = image2;
				icon.iconSize = size2;
				changeImage();
			}else if((googleMap.getZoom() == minZoomToChangeIcon - 1)  && (actualZoom == minZoomToChangeIcon)){
				icon.image = image1;
				icon.iconSize = size1;
				changeImage();
			}
			actualZoom = googleMap.getZoom();
			$("#zoom").val(actualZoom);
		});
		
		
		mapPoints();
	}
}


function mapPoints(){
	for (var i = 0; i < markers.length; i++) {
		var marker = createMarker(markers[i]);
		markerManager.push(marker);
		googleMap.addOverlay(marker);
		//markerManager.addMarker(marker, 0, 17);
	}
	//markerManager.refresh();
}


function clearMarkers() {
 	//markerManager.clearMarkers();
}


function createMarker(input){
	var marker = new GMarker(input.point, icon);
	var html1 = '<div class="infoTab"><h3 style="margin:0">' + input.nombre + '</h3>' + '<br />';
	html1 += '<strong>Registros indexados en el AHEB-BEHA:</strong><br />';
	html1 += '<strong>Bautismos:</strong> '+ input.bautismos_sum + ' (' + input.bautismos_fecha + ')<br />';
	html1 += '<strong>Matrimonios:</strong> '+ input.matrimonios_sum + ' (' + input.matrimonios_fecha + ')<br />';
	html1 += '<strong>Difuntos:</strong> '+ input.difuntos_sum + ' (' + input.difuntos_fecha + ')<br /><br />';
	html1 += '<a href="http://internet.aheb-beha.org/paginas/indexacion/n_indexacion.php" target="_blank">Consultar registros</a>';
	
	var html2 = '<div class="infoTab"><h3 style="margin:0">' + input.nombre + '</h3>' + '<br />';
	html2 += '<strong>Dirección:</strong> ' + input.direccion + '<br />';
	html2 += '<strong>Teléfono:</strong> ' + input.telefono + '<br />';
	
	
	var infoTabs = [new GInfoWindowTab("", html1), new GInfoWindowTab("Otros datos", html2)];
   	GEvent.addListener(marker, "click", function(){marker.openInfoWindowTabsHtml(infoTabs);});
	return marker;
}


function addParroquia(){
	listenerMapClick = GEvent.addListener(googleMap, "click", function(overlay,point) {
		if(point){
			addPoint(point);
		}
	});
	addPoint(googleMap.getCenter());
}

function addPoint(point){
	if(!marker){
		var options = {"draggable": true, "dragCrossMove": true};
		marker = new GMarker(point, options);
		
		GEvent.addListener(marker, "dragend", function(point){
			$('#latitud').val(point.lat());
			$('#longitud').val(point.lng());
		});
		googleMap.addOverlay(marker);
		//markerManager.addMarker(marker, 0, 17);
	}else{
		marker.setPoint(point);
		marker.show();
	}	
	
	$('#latitud').val(point.lat());
	$('#longitud').val(point.lng());
	
	//markerManager.refresh();
}



function searchAddress(){
	var address = $("#address").val(); 
	if (geocoder){
		geocoder.getLatLng(address, function(point){
			if (!point){
				alert('No hemos encontrado la dirección ' + '"' + address + '"');
			}else{
				//markerManager.clearMarkers();
				if(listenerMapClick){
					GEvent.removeListener(listenerMapClick);
				}
				googleMap.setZoom(16);
				googleMap.setCenter(point);
				
				if(!marker){
					addPoint(point);
				}else{
					marker.setPoint(point);
					marker.show();
				}
				
				$('#latitud').val(point.lat());
				$('#longitud').val(point.lng());
				//markerManager.refresh();
			}
		});
	}
}

function changeImage()
{
	googleMap.clearOverlays();
	mapPoints();

}
