// JavaScript Document
//Función que obtiene los parámetros de la URL
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}

//Cogemos resultados de origen y destino
function buscarViaje()
{
	//Parseamos los parámetros:
	var params = getUrlVars();
	
	//Parseamos campos origen, destino, buscar y festival:
	var origen = params['origen'];
	var destino = params['destino'];
	
	//Buscamos origen y destino en gMaps:
	var geocoder = new google.maps.Geocoder();
	destino = getLocation(destino);
	var lon = 0;
    if (geocoder) {
      geocoder.geocode( { 'address': origen }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
        	document.getElementById("lat_origen").value = results[0].geometry.location.lat();
        	document.getElementById("lon_origen").value = results[0].geometry.location.lng();
			//alert(document.getElementById("lat_origen").value+" "+document.getElementById("lon_origen").value);
        } else {
          alert("Por favor introduzca origen y destino válidos (" + status+ ")");
          return;
        }
      });
      geocoder.geocode( { 'address': destino}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
        	document.getElementById("lat_destino").value = results[0].geometry.location.lat();
        	document.getElementById("lon_destino").value = results[0].geometry.location.lng();
			//alert(document.getElementById("lat_destino").value+" "+document.getElementById("lon_destino").value);
        } else {
          alert("Por favor introduzca origen y destino válidos (" + status+ ")");
          return;
        }
      });
	}
	document.getElementById("origen").value = origen;
	document.getElementById("destino").value = destino;
	document.getElementById("distancia").value = 600;
	setTimeout("enviarBusqueda()",750);
}

function enviarBusqueda()
{
	var f = document.forms["buscar_viaje"];
	f.submit();
}
	

function initWidgetH()
{
	
	//Parseamos los parámetros:
	var params = getUrlVars();
	
	
	//Título y Subtítulo:
	var titulo = limpiar(params['titulo']);
	var subtitulo = limpiar(params['subtitulo']);
	//document.getElementById('titulo').innerHTML = titulo;
	document.getElementById('subtitulo').appendChild(document.createTextNode(subtitulo));
	document.getElementById('titulo').appendChild(document.createTextNode(titulo));
	
	//Parseamos campos origen, destino, buscar y festival:
	var origen = limpiar(params['origen']);
	var destino = limpiar(params['destino']);
	var festival = limpiar(params['festival']);
	var buscar = limpiar(params['buscar']);
	document.getElementById('origenLabel').appendChild(document.createTextNode(origen));
	document.getElementById('destinoLabel').appendChild(document.createTextNode(destino));
	document.getElementById('origen').value = '';
	document.getElementById('destino').value = festival;
	document.getElementById('submitBuscar').value = buscar;

	//Parseamos el tema (número)
	var tema = params['tema'];
	document.getElementById('css').href='amovensTema'+tema+'H.css';
	
	//Color (hexadecimal). Se aplica dependiendo del tema.
	var color = params['color'];
	if (tema == "2" || tema == "3")
	{
		document.getElementById('origen').style.borderColor = color;
		document.getElementById('destino').style.borderColor = color;
		document.getElementById('submitBuscar').style.borderColor = color;
		document.getElementById('dialog').style.borderColor = color;
	}
	
	//Ancho y alto (en píxeles)
	var ancho = params['ancho'];
	var alto = params['alto'];
	ancho = ancho - 10;
	if (tema == "1") alto = alto - 40;
	else alto = alto - 30;
	document.getElementById('contenedor').style.width=ancho+'px';
	document.getElementById('contenido').style.height = alto+'px';
	
	//Ancho de los forms:
	var anchoForm = (ancho - 80)/2;
	document.getElementById('origen').style.width = anchoForm+'px';
	document.getElementById('destino').style.width = anchoForm+'px';
	
	if (tema != "4"){
		document.getElementById('imagen').innerHTML = '';
	}
}

function initWidgetV()
{
	
	//Parseamos los parámetros:
	var params = getUrlVars();
	
	
	//Título
	var titulo = limpiar(params['titulo']);
	document.getElementById('titulo').appendChild(document.createTextNode(titulo));
	var subtitulo = limpiar(params['subtitulo']);
	document.getElementById('subtitulo').appendChild(document.createTextNode(subtitulo));
	
	//Parseamos campos origen, destino, buscar y festival:
	var origen = limpiar(params['origen']);
	var destino = limpiar(params['destino']);
	var festival = limpiar(params['festival']);
	var buscar = limpiar(params['buscar']);
	document.getElementById('origenLabel').appendChild(document.createTextNode(origen));
	document.getElementById('destinoLabel').appendChild(document.createTextNode(destino));
	document.getElementById('origen').value = '';
	document.getElementById('destino').value = festival;
	document.getElementById('submitBuscar').value = buscar;

	//Parseamos el tema (número)
	var tema = params['tema'];
	document.getElementById('css').href='amovensTema'+tema+'V.css';
    
    if (tema != "4"){
        document.getElementById('imagen').innerHTML = '';
    }
	
	//Color (hexadecimal). Se aplica dependiendo del tema.
	var color = params['color'];
	if (tema == "2" || tema == "3")
	{
		document.getElementById('origen').style.borderColor = color;
		document.getElementById('destino').style.borderColor = color;
		document.getElementById('submitBuscar').style.borderColor = color;
		document.getElementById('dialog').style.borderColor = color;
	}
	
	//Ancho y alto (en píxeles)
	var ancho = params['ancho'];
	var alto = params['alto'];
	ancho = ancho - 10;
	if (tema == "1") alto = alto - 40;
	else alto = alto - 30;
	document.getElementById('contenedor').style.width=ancho+'px';
	document.getElementById('contenido').style.height = alto+'px';
	
	//Ancho de los forms:
	var anchoForm;
	if(tema == "1") anchoForm = ancho - 60;
	else anchoForm = ancho -40;
	
	//document.getElementById('formulario').style.width = anchoForm+'px';
	document.getElementById('origen').style.width = anchoForm+'px';
	document.getElementById('destino').style.width = anchoForm+'px';
	
}

//sustituimos caracteres especiales por su representación compatible
function preparar (cadena)
{
	cadena = cadena.replace(/ /gi, '%20');
	cadena = cadena.replace(/¿/gi, '%C2%BF');
	cadena = cadena.replace(/¡/gi, '%C2%A1');
	cadena = cadena.replace(/á/gi, '%C3%A1');
	cadena = cadena.replace(/à/gi, '%C3%A0');
	cadena = cadena.replace(/ä/gi, '%C3%A4');
	cadena = cadena.replace(/é/gi, '%C3%A9');
	cadena = cadena.replace(/è/gi, '%C3%A8');
	cadena = cadena.replace(/ë/gi, '%C3%AB');
	cadena = cadena.replace(/í/gi, '%C3%AD');
	cadena = cadena.replace(/ì/gi, '%C3%AC');
	cadena = cadena.replace(/ï/gi, '%C3%AF');
	cadena = cadena.replace(/ó/gi, '%C3%B3');
	cadena = cadena.replace(/ò/gi, '%C3%B2');
	cadena = cadena.replace(/ö/gi, '%C3%B6');
	cadena = cadena.replace(/ú/gi, '%C3%BA');
	cadena = cadena.replace(/ù/gi, '%C3%B9');
	cadena = cadena.replace(/ü/gi, '%C3%BC');
	return cadena;           
}

//limpiamos la cadena de espacios y caractéres especiales
function limpiar (cadena)
{
	cadena = cadena.replace(/%20/gi, ' ');
	cadena = cadena.replace(/\+/gi, ' ');
	cadena = cadena.replace(/%C3%B1/gi, 'ñ');
	cadena = cadena.replace(/%C3%91/gi, 'Ñ');
	cadena = cadena.replace(/%C2%BF/gi, '¿');
	cadena = cadena.replace(/%C2%A1/gi, '¡');
	cadena = cadena.replace(/%C3%A1/gi, 'á');
	cadena = cadena.replace(/%C3%A0/gi, 'à');
	cadena = cadena.replace(/%C3%A4/gi, 'ä');
	cadena = cadena.replace(/%C3%A9/gi, 'é');
	cadena = cadena.replace(/%C3%A8/gi, 'è');
	cadena = cadena.replace(/%C3%AB/gi, 'ë');
	cadena = cadena.replace(/%C3%AD/gi, 'í');
	cadena = cadena.replace(/%C3%AC/gi, 'ì');
	cadena = cadena.replace(/%C3%AF/gi, 'ï');
	cadena = cadena.replace(/%C3%B3/gi, 'ó');
	cadena = cadena.replace(/%C3%B2/gi, 'ò');
	cadena = cadena.replace(/%C3%B6/gi, 'ö');
	cadena = cadena.replace(/%C3%BA/gi, 'ú');
	cadena = cadena.replace(/%C3%B9/gi, 'ù');
	cadena = cadena.replace(/%C3%BC/gi, 'ü');
	return cadena;           
}
