// JavaScript Document

// PUNTUACIONES DE LA FICHA
// Para asociar el id_imagen al campo
function imagenCampo (id_imagen)
{
	// Devuelvo el valor del campo
	switch(id_imagen)
	{
		case 'Image1':
			campo = 'val_global';
			break;
		case 'Image2':
			campo = 'val_comida';
			break;
		case 'Image3':
			campo = 'val_servicio';
			break;
		case 'Image4':
			campo = 'val_ambiente';
			break;
		default:
	}
	
	return campo;
}

// Cambia la imagen en el mouse over (para la puntuación)
function cambiarImagen(id_imagen, nueva_imagen, actualizar)
{
	// Actualizo la imagen
	document.getElementById(id_imagen).src = URL_APP + nueva_imagen;

	// Actualizo el valor del campo en caso de ser necesario
	if (actualizar)
	{
		// Saco el valor del campo asociado
		campo = imagenCampo(id_imagen);

		// Le asigno el nuevo valor
		nuevo_valor = nueva_imagen.substr(11, 1);
		document.getElementById(campo).value = nuevo_valor;
	}
	
	return true;
}

function restaurarImagen(id_imagen)
{
	campo = imagenCampo(id_imagen);
	valor_campo = document.getElementById(campo).value;

	if (!valor_campo)
	{
		valor_campo = 0;
	}
	nueva_imagen = 'estrellasg-' + valor_campo + '.png';
	document.getElementById(id_imagen).src = URL_APP + nueva_imagen;
}


// MAPAS DE LA FICHA
// Función que geolocaliza la calle
function showAddress(nombre, direccion, cp, localidad, provincia, latitud, longitud)
{
	// Creo el mapa
	var map = new GMap2(document.getElementById("mapa_ficha"));

	// Le añado los controles oportunos
	//var mapControl = new GSmallZoomControl();
	var mapControl = new GLargeMapControl();
	map.addControl(mapControl);

	var mapControl = new GMapTypeControl();
	map.addControl(mapControl);

	// Compongo la cadena de la dirección a buscar
	var direccion_buscar = (direccion + ', ' + cp + ' ' + localidad);
	var direccion_buscar2 = (cp + ', ' + provincia);
	
	// Texto del globo de búsqueda
	var texto_direccion = '<strong>' + nombre + '</strong><br />' + direccion + '<br />' + cp + ' - ' + localidad + ' (' + provincia + ')';


	// Posiciono el mapa en función de si tiene coordenadas
	if (latitud && longitud)
	{
		// Si tiene coordenadas localizo el mapa por ellas
		var point	= new GLatLng(latitud, longitud);
		map.setCenter(point, 12);

		// Marcador
		var marker	= new GMarker(point);
		map.addOverlay(marker);
		marker.openInfoWindowHtml('<div class="textoMapa">' + texto_direccion + '</div>');
	}
	else
	{
		// Creo el geocoder para localizar direcciones
		var geocoder = new GClientGeocoder();
	
		// Posicionamiento automático de la calle con dos posibles búsquedas, tiene un parámetro con la calle y una función manejadora de la búsqueda
		geocoder.getLatLng
		(
			direccion_buscar ,
	
			function(point)
			{
				// No he encontrado la dirección
				if (!point)
				{
	
					// Segunda posible búsqueda
					//alert(direccion + " no encontrada");
					geocoder.getLatLng
					(
						direccion_buscar2 ,
	
						function(point2)
						{
							// No se ha encontrado definitivamente
							if (!point2)
							{
								alert('No se ha localizado la dirección en el mapa');
							}
							// Se ha encontrado a la segunda
							else
							{
								map.setCenter(point2, 12);
								var marker = new GMarker(point2);
								map.addOverlay(marker);
								marker.openInfoWindowHtml('<div class="textoMapa"><span style="font-size:10px;">Dirección aproximada:</span><br />' + texto_direccion + '</div>');
							}
						}
					);
				}
				// Si encuentro la dirección
				else
				{
					map.setCenter(point, 13);
					var marker = new GMarker(point);
					map.addOverlay(marker);
					marker.openInfoWindowHtml('<div class="textoMapa">' + texto_direccion + '</div>');
				}
			}
		);
	}
}


/* Función que limita lo que se escribe */
function limitText(campoTexto)
{
	var limite = 400;
	if (campoTexto.value.length > limite)
	{
		campoTexto.value = campoTexto.value.substring(0, limite);
		campoTexto.scrollTop = 999999;
	}
}