//Objeto q guarda todos los paises
var objsPaises;
//Objeto q guarda todos los aeropuertos encontrados del pais seleccionado
var objsAeropuertosPaisIda, objsAeropuertosPaisVuelta;
//Objeto q guarda todos los vuelos encontrados
var objsVuelosIda, objsVuelosVuelta;
//Variables globales para el autocompletado de los vuelos de ida y vuelta
var oACDSIda, oAutoCompIda, oACDSVuelta, oAutoCompVuelta;

/**
 * Inicializamos los objetos yahoo para el autocompleta del texto y la capa
 * pasados como argumentos
 */
function setAutoCompletadoVuelo(campoTexto, capa){
	oACDS = new YAHOO.widget.DS_XHR("/yahoo.php", [";", ";"]);
	      oACDS.responseType = YAHOO.widget.DS_XHR.TYPE_FLAT;
	oACDS.queryMatchContains = true;
	oACDS.animVert = true;
	oACDS.maxResultsDisplayed = 50;
	oACDS.queryDelay = 10;
	oACDS.autoHighlight = true;

	// Instantiate AutoComplete
	oAutoComp = new YAHOO.widget.AutoComplete(campoTexto,capa, oACDS);
      oAutoComp.delimChar = ";";
	oAutoComp.useShadow = true;
	oAutoComp.formatResult = function(oResultItem, sQuery) {
    	return oResultItem[0];
    };
}

/**
 * Inicializamos los objetos yahoo para el autocompleta del texto y la capa
 * pasados como argumentos
 */
function setAutoCompletadoAeropuerto(campoTexto, capa){

	oACDS = new YAHOO.widget.DS_XHR("/yahooAeropuerto.php", [";", ";"]);
	      oACDS.responseType = YAHOO.widget.DS_XHR.TYPE_FLAT;
	oACDS.queryMatchContains = true;
	oACDS.animVert = true;
	oACDS.maxResultsDisplayed = 100;
	oACDS.queryDelay = 10;
	oACDS.autoHighlight = true;

	// Instantiate AutoComplete
	oAutoComp = new YAHOO.widget.AutoComplete(campoTexto,capa, oACDS);
      oAutoComp.delimChar = ";";
	oAutoComp.useShadow = true;
	oAutoComp.formatResult = function(oResultItem, sQuery) {
    	return oResultItem[0];
    };
}

/* Rellena el combo de paises y preselecciona el pais pasado como parámetro y
 * obtenido por geoIp. Si el pais es encontrado, llama a la funcion encargada de
 * cargas los aeropuertos del pais
 */
function cargarPaises(idSelectPais, idSelectAeropuerto, idSelectVuelo, ordenAeropuerto, idPaisCliente, idaVuelta, desde, idioma){
    DWRUtil.removeAllOptions(idSelectPais);
	DWRUtil.addOptions(idSelectPais, [{nombre:tradSeleccionePais, id:-1}],'id','nombre');
	var paisEncontrado = false;

	//Bucle que va rellenado el combo
	if(objsPaises!=null){
		for (var i = 0; i < objsPaises.length; i++) {
			DWRUtil.addOptions(idSelectPais, [{nombre:objsPaises[i].nombre, id:objsPaises[i].id}],'id','nombre');
			//Se se ha localizado el pais y lo tenemos, se preselecciona
			if(objsPaises[i].id==idPaisCliente){
				DWRUtil.setValue(idSelectPais,objsPaises[i].id);
				paisEncontrado=true;
			}
	    }
    }else{
		//Si no hay objetos, llama a la función q hace la petición DWR, para q
		//sea ella la q recarge el combo llamando a esta función de nuevo
		getPaises("nombre asc", idioma, 1,idSelectPais, idSelectAeropuerto, idSelectVuelo, ordenAeropuerto, idPaisCliente,idaVuelta,desde)
	}
	//Si el geoIP me encuentra el pais, busco directamente los aeropuertos
	//de ese pais
    if(paisEncontrado){
		cargarAeropuertosPais(idSelectPais,idSelectAeropuerto, idSelectVuelo, ordenAeropuerto,idaVuelta,desde)
    }
}

/**
 * Método q usando dwr obtiene los paises y llama a la función q rellena el
 * combo. Preselecciona el pais pasado como
 * parámetro y obtenido por geoIp. Si el pais es encontrado, llama a la funcion
 * encargada de cargas los aeropuertos del pais
 */
function getPaises(ordenPais, idioma, recargarCombo,idSelectPais, idSelectAeropuerto, idSelectVuelo, ordenAeropuerto, idPaisCliente,idaVuelta,desde, aeropuertoTraslado){
  //Petición al servlet dwr para obtener los países
  if(objsPaises==null || objsPaises.length==0)	{
	  BeanViajesAlameda.getPaises(ordenPais, idioma, function(objs) {

		//Si he obtenido resultados
		if(objs!=null){
			//Me guardo en una variable global los paises, pq los utilizaré después
			//y así me evito llamadas posteriores al servidor
			objsPaises = objs;
			//Compruebo si tengo q recargar el combo de los paises pq se ha quedado sin datos
			if(recargarCombo==1){
				cargarPaises(idSelectPais, idSelectAeropuerto, idSelectVuelo, ordenAeropuerto, idPaisCliente,idaVuelta,desde);
			}
		}
	  });
  }
}

/**
 * Método q usando dwr obtiene los aeropuertos de un pais.
 */
function cargarAeropuertosPais(idSelectPais,idSelect, idSelectVuelos, orden, idaVuelta, desde){

  //Borro todos los aeropuertos y vuelos anteriores
  DWRUtil.removeAllOptions(idSelect);
  DWRUtil.removeAllOptions(idSelectVuelos);

   DWRUtil.addOptions(idSelect, [tradCargando]);
  //Petición al servlet dwr para obtener los aeropuertos del pais pasado por parametro
  BeanTransfer.getAeropuertosPais(DWRUtil.getValue(idSelectPais), orden, "En", function(objs) {

	//Me guardo en una variable global los aeropuertos, pq los utilizaré después
	//y así me evito llamadas posteriores al servidor
	if(idaVuelta=="ida"){
		objsAeropuertosPaisIda = objs;
	}else if(idaVuelta=="vuelta"){
		objsAeropuertosPaisVuelta = objs;
	}

	DWRUtil.removeAllOptions(idSelect);
	//Si he obtenido resultados
	if(objs!=null){
		if(idaVuelta=="ida" && desde=="aeropuerto"){
			DWRUtil.addOptions(idSelect, [{nombre:tradSeleccioneAeropuertoOrigen,id:-1}],'id','nombre');
		}
		else if(idaVuelta=="ida" && desde=="poblacion"){
			DWRUtil.addOptions(idSelect, [{nombre:tradSeleccioneAeropuertoDestino,id:-1}],'id','nombre');
		}
		else if(idaVuelta=="vuelta" && desde=="aeropuerto"){
			DWRUtil.addOptions(idSelect, [{nombre:tradSeleccioneAeropuertoOrigen,id:-1}],'id','nombre');
		}
		else if(idaVuelta=="vuelta" && desde=="poblacion"){
			DWRUtil.addOptions(idSelect, [{nombre:tradSeleccioneAeropuertoDestino,id:-1}],'id','nombre');
		}else{
			DWRUtil.addOptions(idSelect, [{nombre:tradSeleccioneAeropuerto,id:-1}],'id','nombre');
		}
		//Bucle que va rellenado el combo
		for (var i = 0; i < objs.length; i++) {
			DWRUtil.addOptions(idSelect, [{nombre:objs[i].cityName+" "+objs[i].airportName+" ("+objs[i].code+")", id:objs[i].id}],'id','nombre');
	    }
	}else{
		DWRUtil.addOptions(idSelect, [{nombre:tradNoExistenAeropuertos,id:-2}],'id','nombre');
	}
  });
}

/**
 * Método que me inicializa los aeropuertos de un pais
 * @param idPais. Id del select q contiene los paises
 * @param orden . Cláusula order por la que buscar los paises
 * @param idaVuelta. Indica si el traslado es de ida o vuelta
 */
function setArrayAeropuertos(idPais, orden, idaVuelta){

  if(objsAeropuertosPaisIda==null || objsAeropuertosPaisVuelta==null){
	  BeanTransfer.getAeropuertosPais(DWRUtil.getValue(idPais), orden, "En", function(objs) {

		//Me guardo en una variable global los aeropuertos, pq los utilizaré después
		//y así me evito llamadas posteriores al servidor
		if(idaVuelta=="ida"){
			objsAeropuertosPaisIda = objs;
		}else if(idaVuelta=="vuelta"){
			objsAeropuertosPaisVuelta = objs;
		}
	  });
	}
}

/**
 * Método q usando dwr obtiene los vuelos para una fecha y un aeropuerto origen
 * y destino dado
 */
function preCargarVuelos(idSelectPais,idSelectAeropuerto,aeropuerto,fecha,
					tipoBusqueda, idSelect, idioma, nombreAeropuerto,
					idAeropuertoHidden, idaVuelta, desde, numVueloPreseleccionado){

  if(objsAeropuertosPaisIda==null || objsAeropuertosPaisVuelta==null){
	  BeanTransfer.getAeropuertosPais(DWRUtil.getValue(idSelectPais), 'cityName asc', "En", function(objs) {

		//Me guardo en una variable global los aeropuertos, pq los utilizaré después
		//y así me evito llamadas posteriores al servidor
		if(idaVuelta=="ida"){
			objsAeropuertosPaisIda = objs;
		}else if(idaVuelta=="vuelta"){
			objsAeropuertosPaisVuelta = objs;
		}

		cargarVuelos(idSelectPais,idSelectAeropuerto,aeropuerto,fecha,
					tipoBusqueda, idSelect, idioma, nombreAeropuerto,
					idAeropuertoHidden, idaVuelta, desde, numVueloPreseleccionado);
	  });
	}else{
		cargarVuelos(idSelectPais,idSelectAeropuerto,aeropuerto,fecha,
					tipoBusqueda, idSelect, idioma, nombreAeropuerto,
					idAeropuertoHidden, idaVuelta, desde, numVueloPreseleccionado);
	}

}

/**
 * Método q usando dwr obtiene los vuelos para una fecha y un aeropuerto origen
 * y destino dado
 */
function cargarVuelos(idSelectPais,idSelectAeropuerto,aeropuerto,fecha,
					tipoBusqueda, idSelect, idioma, nombreAeropuerto,
					idAeropuertoHidden, idaVuelta, desde, numVueloPreseleccionado){

  DWRUtil.removeAllOptions(idSelect);

	//Me guardo en una variable global los vuelos, pq los utilizaré después
	//y así me evito llamadas posteriores al servidor
	if(idaVuelta=="ida"){
		objsAeropuertosPais = objsAeropuertosPaisIda;
	}else if(idaVuelta=="vuelta"){
		objsAeropuertosPais = objsAeropuertosPaisVuelta;
	}

  //Compruebo si se ha elegido correctamente un aeropuerto
  if(DWRUtil.getValue(idSelectAeropuerto)>0 &&
  	objsAeropuertosPais[$(idSelectAeropuerto).selectedIndex-1].code!=aeropuerto){

	  //Le doy valor al campo hidden para poder pasárselo a datosVueloManual.php
	  $(idAeropuertoHidden).value=
		objsAeropuertosPais[$(idSelectAeropuerto).selectedIndex-1].cityName+" "+
		objsAeropuertosPais[$(idSelectAeropuerto).selectedIndex-1].airportName+" "+
			" ("+objsAeropuertosPais[$(idSelectAeropuerto).selectedIndex-1].code+")";


	  DWRUtil.addOptions(idSelect, [tradCargando]);
	  BeanTransfer.getVuelos(DWRUtil.getValue(idSelectAeropuerto), aeropuerto,
	  						fecha, tipoBusqueda, 'dd/MM/yyyy', idioma, function(objs) {

		//Si he obtenido resultados
		if(objs!=null){
			//Me guardo en una variable global los vuelos, pq los utilizaré después
			//y así me evito llamadas posteriores al servidor
			if(idaVuelta=="ida"){
				objsVuelosIda = objs;
			}else if(idaVuelta=="vuelta"){
				objsVuelosVuelta = objs;
			}
			//Se muestra el combo de los vuelos
			$(idSelect).style.display="block";

		    DWRUtil.removeAllOptions(idSelect);
			var etiqueta = "";

			if((idaVuelta=="ida" && desde=="aeropuerto") ||
				(idaVuelta=="vuelta" && desde=="aeropuerto")){

				etiqueta = tradSeleccioneVueloIda;
			}
			else if((idaVuelta=="ida" && desde=="poblacion") ||
				(idaVuelta=="vuelta" && desde=="poblacion")){

				etiqueta = tradSeleccioneVueloVuelta;
			}

			DWRUtil.addOptions(idSelect, [{nombre:etiqueta+
				objsAeropuertosPais[$(idSelectAeropuerto).selectedIndex-1].cityName+" "+
				" ("+objsAeropuertosPais[$(idSelectAeropuerto).selectedIndex-1].code+")"
				,id:-2}],'id','nombre');

			//Bucle que va rellenado el combo
			for (var i = 0; i < objs.length; i++) {
				DWRUtil.addOptions(idSelect,
					[{nombre:objs[i].carrierName+" "+
						objs[i].flightNumber+" "+
						//Del aeropuerto seleccionado, me quedo con el nombre de la ciudad

						(tipoBusqueda=="llegada" ?
							objsAeropuertosPais[$(idSelectAeropuerto).selectedIndex-1].cityName
							: nombreAeropuerto)+" "+
							objs[i].diaDespegue+" "+
							objs[i].horaSalida
							+" -> "+

						(tipoBusqueda=="salida" ?
							objsAeropuertosPais[$(idSelectAeropuerto).selectedIndex-1].cityName
							: nombreAeropuerto)+" "+
						objs[i].diaAterrizaje+" "+
						objs[i].horaLlegada
						,
					id:objs[i].id}],
					'id',
					'nombre');

				if(objs[i].flightNumber==numVueloPreseleccionado){
					//Combo del vuelo
					$(idSelect).options[$(idSelect).options.length-1].selected = true;

					//Creo la coletilla del texto de los campos hidden (Ida, Vuelta)
					var tx = idaVuelta.substr(0,1).toUpperCase()+
						idaVuelta.substr(1,idaVuelta.length);

					//Le doy valor a todos los campos hidden q uso para la
					//comprobación de datos
					$("idVuelo"+tx).value = objs[i].id;
					$("lineaAerea"+tx).value = objs[i].carrierName;
					$("codLineaAerea"+tx).value = objs[i].carrierCode;
					$("vueloManual"+tx).value = objs[i].flightNumber;
				}
		    }
			DWRUtil.addOptions(idSelect, [{nombre:tradOtroVueloNoListado,id:-1}],'id','nombre');
		}
		if(objs==null){
		    DWRUtil.removeAllOptions(idSelect);
			DWRUtil.addOptions(idSelect, [{nombre:tradErrorNoExistenVuelos,id:-2}],'id','nombre');
		}
	  });
	} 	//Fin de la comprobación de selección de un aeropuerto correcto
	else if(DWRUtil.getValue(idSelectAeropuerto)>0 &&
	  	objsAeropuertosPais[$(idSelectAeropuerto).selectedIndex-1].code.toUpperCase()==aeropuerto.toUpperCase()){

		alert(tradErrorAeropuertosSalidaLlegadaIguales);
	}
}

/**
 * Rellena los campos de texto, lineaAerea y vuelo, con el vuelo seleccionado
 * y obtenido mediante DWR
 */
function cargarVuelo(idCodLineaAerea,idLineaAerea, idVuelo, idSelect,
					 idVueloHidden, idResumenFechaVuelo, adminVuelo, numServicio,tipoViaje,pax,
					 fechaVueloDiaAnterior, fechaVuelo, fechaVueloDiaSiguiente, fechaCompra,
					 origen, destino,currency,desde, codAgente,
					 idTransportista, idioma, paso1, capaReceptoraFoco, idTipoTicketTraslado, idTipoVehiculo){

	//Quito el foco y lo mando a otro lado para q la rueda del ratón no
	//rompa el funcionamiento. Por el dichoso explorer
	$(capaReceptoraFoco).focus();

	if(DWRUtil.getValue(idSelect)==-1 || DWRUtil.getValue(idSelect)==-2){
		$(idLineaAerea).value = '';
		$(idVuelo).value = '';
		$(idCodLineaAerea).value = '';
	}else{
		//Me quedo con el índice del array de vuelos seleccionado
		var i = $(idSelect).selectedIndex-1;
		var precioWeb = 0;

		if(numServicio==1){
			objsVuelos = objsVuelosIda;
		}else if(numServicio==2){
			objsVuelos = objsVuelosVuelta;
		}

		//Todo el recálculo de precios sólo se hace en el proceso de compra
		if(!adminVuelo){

		//Primero calculo la fecha real del vuelo
		if(desde=="aeropuerto"){
			//Compruebo si el vuelo llega al dia siguiente
			if(objsVuelos[i].extraDay==1){
				fechaVuelo = objsVuelos[i].fechaAterrizaje+" "+objsVuelos[i].horaLlegadaFormateada;
				//Troceo la fecha de traslado para modificar los hidden del form
				var arrayFechas =
					(objsVuelos[i].fechaAterrizaje+" "+objsVuelos[i].horaLlegada).split(" ");
			}else{
				fechaVuelo = objsVuelos[i].fechaAterrizaje+" "+objsVuelos[i].horaLlegadaFormateada;
				//Troceo la fecha de traslado para modificar los hidden del form
				var arrayFechas =
					(objsVuelos[i].fechaAterrizaje+" "+objsVuelos[i].horaLlegada).split(" ");
			}
		}
		else if(desde=="poblacion"){
			fechaVuelo = objsVuelos[i].fechaDespegue+" "+objsVuelos[i].horaSalidaFormateada;
			//Troceo la fecha de traslado para modificar los hidden del form
			var arrayFechas = (objsVuelos[i].fechaDespegue+" "+objsVuelos[i].horaSalida).split(" ");
		}
		//Me quedo por un lado con los dias, y por otro con las horas de la fecha
		//del traslado, q está regido por la hora del vuelo
		var arrayDias = arrayFechas[0].split("/");
		var arrayHoras = arrayFechas[1].split(":");

		//Me quedo con el precio de la web, para compararlo con el recálculo
		if(numServicio==1){
			precioWeb = $("precioPersonaIda").value;
		}else if(numServicio==2){
			precioWeb = $("precioPersonaVuelta").value;
		}

		//Vuelvo a calcular el precio y la fecha de recogida, y comprobar
		//si para esa fecha hay disponibilidad
		BeanTransfer.recalcularPrecioFechas(tipoViaje,
										pax,
										idTipoTicketTraslado,
										fechaVuelo,
										fechaCompra,
										origen,
										destino,
										currency,
										numServicio,
										desde,
										codAgente,
										idTransportista,
										precioWeb,
										idioma,
										idTipoVehiculo,
										function(objs) {

			//Si he obtenido resultados
			if(objs!=null){
				if(objs.disponibilidad!=1){
					alert(tradErrorTrasladoNoDisponiblePorCambioDeFechas);

					document.forms.formulario.action=paso1;
					document.forms.formulario.submit();
				}
				else if(Math.abs(precioWeb-objs.precioDivisa)>1){
					alert(tradCambioPrecioFechaEnTrasladoPorCambioDeFechas);
				}

				//Primero pongo todos los combos de los extras a cero
				if($("numExtrasProveedor")!=null && $("numExtrasProveedor").value>0){
					for(num=1; num<=$("numExtrasProveedor").value; num++){
						$("numExtra"+num).selectedIndex=0;
						$("precioExtra"+num).value="0.00";
					}
				}

				//Compruebo si es la ida
				if(numServicio==1){
					//Actualizo los precios si son distintos de cero
					if(objs.precioDivisa!=0 && objs.precioEuro!=0){

						$("precioPersonaIda").value=objs.precioDivisa;
						$("precioIda").value=objs.precioDivisa*$("pasajerosIda").value;
						$("precioPersonaIdaEuro").value=objs.precioEuro;
						$("precioIdaEuro").value=objs.precioEuro*$("pasajerosIda").value;
					}

					//Actualizo la fecha de ida
					$("year").value=arrayDias[1]+"/"+arrayDias[2];
					$("day").value=arrayDias[0];
					$("hora").value=formatearHora(arrayHoras[0]);
					$("minutos").value=formatearMinutos(arrayHoras[1]);

					//Actualizo el texto de la etiqueta
					escribirTextoEtiquetasVueloConSmall("etiqFechaTrasladoIda",
													objs.fechaTrasladoFormateada);
					escribirTextoEtiquetasVueloConSmall("etiqPrecioPaxIda",
						" x "+currency+" "+objs.precioDivisa+" pp");
				}
				//Compruebo si es la vuelta
				else if(numServicio==2){
					//Actualizo los precios si son distintos de cero
					if(objs.precioDivisa!=0 && objs.precioEuro!=0){

						$("precioPersonaVuelta").value=objs.precioDivisa;
						$("precioVuelta").value=objs.precioDivisa*$("pasajerosVuelta").value;
						$("precioPersonaVueltaEuro").value=objs.precioEuro;
						$("precioVueltaEuro").value=objs.precioEuro*$("pasajerosVuelta").value;
					}

					//Actualizo la fecha de ida
					$("yearF").value=arrayDias[1]+"/"+arrayDias[2];
					$("dayF").value=arrayDias[0];
					$("horaV").value=formatearHora(arrayHoras[0]);
					$("minutosV").value=formatearMinutos(arrayHoras[1]);

					//Actualizo el texto de la etiqueta
					escribirTextoEtiquetasVueloConSmall("etiqFechaTrasladoVuelta",
													objs.fechaTrasladoFormateada);
					escribirTextoEtiquetasVueloConSmall("etiqPrecioPaxVuelta",
						" x "+currency+" "+objs.precioDivisa+" pp");
				}
				//Actualizo el texto de la etiqueta
				escribirTextoEtiquetasVueloConSmall(idResumenFechaVuelo,
													objs.fechaVueloFormateada);

				//Actualizo los precios y redondeo para q salga 2 decimales
				if($("precioVuelta").value=="" || $("precioVueltaEuro").value==""){
					$("precioVuelta").value = 0;
					$("precioVueltaEuro").value = 0;
				}
				$("precioTotal").value=
					Math.round((parseFloat($("precioIda").value)*100)+
					(parseFloat($("precioVuelta").value)*100))/100;
				$("precioTotalEuro").value=
					Math.round((parseFloat($("precioIdaEuro").value)*100)+
					(parseFloat($("precioVueltaEuro").value)*100))/100;
			}

			$(idVueloHidden).value = objsVuelos[i].id;
			$(idLineaAerea).value = objsVuelos[i].carrierName;
			$(idCodLineaAerea).value = objsVuelos[i].carrierCode;
			$(idVuelo).value = objsVuelos[i].flightNumber;
	  	});


		//Si estamos en la administracion de los datos del vuelo, al cargar
		//los datos del vuelo se deben cambiar los datos insertador por el cliente
		}else if(adminVuelo){
			getNombreDescriptivoAeropuerto(objsVuelos[i].departureAirport,
				"aeropuertoOrigenTransfer"+numServicio);

			getNombreDescriptivoAeropuerto(objsVuelos[i].arrivalAirport,
				"aeropuertoDestinoTransfer"+numServicio);

			$("horaSalidaAeropuertoOrigenTransfer"+numServicio).value =
				objsVuelos[i].horaSalida;

			$("horaLlegadaAeropuertoDestinoTransfer"+numServicio).value =
				objsVuelos[i].horaLlegada;

			getNuevaFechaLlegadaVuelo(numServicio, i);

			$(idVueloHidden).value = objsVuelos[i].id;
			$(idLineaAerea).value = objsVuelos[i].carrierName;
			$(idCodLineaAerea).value = objsVuelos[i].carrierCode;
			$(idVuelo).value = objsVuelos[i].flightNumber;
		}
	}
}

//Calculo el posible cambio de fecha en la llegada del vuelo
function getNuevaFechaLlegadaVuelo(numServicio, i){
	BeanTransfer.getNuevaFechaLlegadaVuelo(
					$("fechaLlegadaAeropuertoDestinoTransfer"+numServicio).value,
					objsVuelos[i].id,
					'dd/MM/yyyy',
					function(objs) {

		//Si he obtenido resultados
		if(objs!=null){
			$("fechaLlegadaAeropuertoDestinoTransfer"+numServicio).value = objs
		}
	});
}

/**
 * Método q me va a devolver una frase más descriptiva a partir del codigo de
 * aeropuerto, ejemplo: BCN -> Barcelona (BCN)
 * @param codigo. Codigo del aeropuerto
 * @param campoTexto. Input text para escribir el resultado
 */
function getNombreDescriptivoAeropuerto(codigo, campoTexto){
	if(codigo!=""){
		BeanTransfer.getAeropuerto(codigo, function(objs) {
			$(campoTexto).value = objs;
		});
	}
}

/**
 * Hace una subcadena de la linea aerea cogida de forma manual
 *
 */
function getCodigoLineaAerea(idLineaAerea, etiqueta){
//	if($(idLineaAerea).value!=""){
		//Elimino el texto anterior
//		eliminarObjetosAnteriores($(etiqueta));
		//Inserto los nuevos valores
		var longitud = 3;
		if($(idLineaAerea).value.indexOf(")")-$(idLineaAerea).value.indexOf("(")==3){
			longitud=2;
		}
		/*$(etiqueta).appendChild(document.createTextNode(
			$(idLineaAerea).value.substr($(idLineaAerea).value.indexOf("(")+1,longitud)));*/

		if($(idLineaAerea).value.indexOf("(")>0){
			$(etiqueta).value=
				$(idLineaAerea).value.substr($(idLineaAerea).value.indexOf("(")+1,longitud);

			$(idLineaAerea).value=
				$(idLineaAerea).value.substr(0,$(idLineaAerea).value.indexOf("(")-1);

		}
}

/**
 * Rellena los campos de texto, lineaAerea y vuelo, con el vuelo seleccionado
 * y obtenido mediante DWR
 */
function enviarDatosVueloCapaInferior(capa,idLineaAerea, idVuelo, idCampoValorLineaAerea, idCampoValorVuelo, idSelect, idVueloHidden, numServicio){
	//Me quedo con el id del vuelo

	if(DWRUtil.getValue(idSelect)>0 && objsVuelos!=null && objsVuelos.length>0){
		var i = $(idSelect).selectedIndex-1;
		$(idVueloHidden).value = objsVuelos[i].id;
	}
	if($(idCampoValorLineaAerea).value!="" && $(idCampoValorVuelo).value!=""){
		//Elimino el texto anterior
		eliminarObjetosAnteriores($(idLineaAerea));
		eliminarObjetosAnteriores($(idVuelo));
		//Inserto los nuevos valores
		$(idLineaAerea).appendChild(document.createTextNode($(idCampoValorLineaAerea).value));
		$(idVuelo).appendChild(document.createTextNode($(idCampoValorVuelo).value));

		//Cierro la ventana
		popup(capa,3);
	}else{
		//Doy un error si no ha elegido de forma manual la linea aerea y/o el vuelo
		if(numServicio==1){
			alert(tradErrorInfoVueloTraslado1);
		}
		else if(numServicio==2){
			alert(tradErrorInfoVueloTraslado2);
		}
	}
}

function escribirTextoEtiquetasVueloConSmall(idEtiqueta, texto){
	//Elimino el texto de la etiqueta
	eliminarObjetosAnteriores($(idEtiqueta));
	//Creo el objeto small
	var small = document.createElement("small");
	//Le asigno el texto al objeto small
	small.appendChild(document.createTextNode(texto));
	//Le añado a la etiqueta el objeto small
	$(idEtiqueta).appendChild(small);
}