//------------------------------------------------------------------------------
//VUELOS------------------------------------------------------------------------
//------------------------------------------------------------------------------
function ValidaFormVuelos()
{
var Hoy=new Date();
var MensajeError='';
//Aeropuertos
if (FINDLayer('AeropuertoOrigen').value.length<3)
  {
  FINDLayer('AeropuertoOrigen').className='EditBuscadorError';
  MensajeError=MensajeError+'- Elija un Aeropuerto de ORIGEN (m\u00EDnimo 3 letras).\n\n';
  }
else FINDLayer('AeropuertoOrigen').className='EditBuscador';
if (FINDLayer('AeropuertoDestino').value.length<3)
  {
  FINDLayer('AeropuertoDestino').className='EditBuscadorError';
  MensajeError=MensajeError+'- Elija un Aeropuerto de DESTINO (m\u00EDnimo 3 letras).\n\n';
  }
else FINDLayer('AeropuertoDestino').className='EditBuscador';

//Aeropuertos por defecto
//Al menos ha tecleado 3 caracteres, pero no ha elegido un aeropuerto de la lista (o es netscape y no funciona el desplegable suggest)
if((FINDLayer('AeropuertoOrigen').value.length>=3) && (FINDLayer('AeropuertoOrigenIATA').value.length!=3)) //Falla Origen
  {
  if (!BuscaAeropuertosPorDefecto('AeropuertoOrigen','AeropuertoOrigenIATA'))//Falla la busqueda por defecto
    {
    FINDLayer('AeropuertoOrigen').className='EditBuscadorError';
    MensajeError=MensajeError+'- No se ha encontrado ning\u00FAn aeropuerto similar al Aeropuerto de ORIGEN introducido.\n\n';
    }
  }
if (EncodeLocale(FINDLayer('AeropuertoOrigenIATA').value)=='---')//Si me devuelve (Aeropuerto desconocido)|--- es que no lo ha encontrado
  {
  FINDLayer('AeropuertoOrigen').className='EditBuscadorError';
  MensajeError=MensajeError+'- No se ha encontrado ning\u00FAn aeropuerto similar al Aeropuerto de ORIGEN introducido.\n\n';
  }
//Al menos ha tecleado 3 caracteres, pero no ha elegido un aeropuerto de la lista (o es netscape y no funciona el desplegable suggest)
if((FINDLayer('AeropuertoDestino').value.length>=3) && (FINDLayer('AeropuertoDestinoIATA').value.length!=3)) //Falla Origen
  {
  if (!BuscaAeropuertosPorDefecto('AeropuertoDestino','AeropuertoDestinoIATA'))//Falla la busqueda por defecto
    {
    FINDLayer('AeropuertoDestino').className='EditBuscadorError';
    MensajeError=MensajeError+'- No se ha encontrado ning\u00FAn aeropuerto similar al Aeropuerto de DESTINO introducido.\n\n';
    }
  }
if (EncodeLocale(FINDLayer('AeropuertoDestinoIATA').value)=='---')//Si me devuelve (Aeropuerto desconocido)|--- es que no lo ha encontrado
  {
  FINDLayer('AeropuertoDestino').className='EditBuscadorError';
  MensajeError=MensajeError+'- No se ha encontrado ning\u00FAn aeropuerto similar al Aeropuerto de DESTINO introducido.\n\n';
  }
//Los dos iatas deben ser distintos
if(FINDLayer('AeropuertoOrigenIATA').value==FINDLayer('AeropuertoDestinoIATA').value)
  {
  FINDLayer('AeropuertoOrigen').className='EditBuscadorError';
  FINDLayer('AeropuertoDestino').className='EditBuscadorError';
  MensajeError=MensajeError+'- Los Aeropuertos de ORIGEN y DESTINO deben ser distintos.\n\n';
  }
//Fechas
if(CompruebaFechaStrValida(FINDLayer('FechaSalidaOrigen').value))
  {
  if (DiasEntre(Hoy,ConvierteStrAFecha(FINDLayer('FechaSalidaOrigen').value))<1)//La fecha de salida debe ser mañana como mínimo
    {
    FINDLayer('FechaSalidaOrigen').className='EditBuscadorError';//Es una fecha antigua, menor a mañana
    MensajeError=MensajeError+'- La Fecha de IDA debe ser mayor a la de hoy.\n\n';
    }
  else FINDLayer('FechaSalidaOrigen').className='EditBuscador';//es una fecha correcta
  }
else
 {
 FINDLayer('FechaSalidaOrigen').className='EditBuscadorError';//Es una fecha antigua, menor a mañana
 MensajeError=MensajeError+'- La Fecha de IDA introducida no es una fecha v\u00E1lida (formato dd/mm/aaaa).\n\n';
 }
 
if(document.FormBuscadorVuelos.TipoIdaVuelta[0].checked)//IDA Y VUELTA si no no tiene sentido mirar este campo
  {   
  var FechaIDA=ConvierteStrAFecha(FINDLayer('FechaSalidaOrigen').value);
  if(CompruebaFechaStrValida(FINDLayer('FechaSalidaDestino').value))
    {
    if (DiasEntre(FechaIDA,ConvierteStrAFecha(FINDLayer('FechaSalidaDestino').value))<0)//La fecha de vuelta debe ser mayor o igual que la de ida
      {
      FINDLayer('FechaSalidaDestino').className='EditBuscadorError';//Es una fecha antigua, menor a mañana
      MensajeError=MensajeError+'- La Fecha de VUELTA debe ser mayor o igual a la Fecha de Ida.\n\n';
      }
    else FINDLayer('FechaSalidaDestino').className='EditBuscador';//es una fecha correcta
    }
  else
   {
   FINDLayer('FechaSalidaDestino').className='EditBuscadorError';//Es una fecha antigua, menor a mañana
   MensajeError=MensajeError+'- La Fecha de VUELTA introducida no es una fecha v\u00E1lida (formato dd/mm/aaaa).\n\n';
   }
  }

//Combos horas

if((ComboBoxHoras_DameOrdinal(0)==-1) || (ComboBoxHoras_DameOrdinal(1)==24))//Alguno de los dos es "Me da igual", todo OK
  {
  ComboBoxHoras_SetClassName(0,"EditBuscador");
  ComboBoxHoras_SetClassName(1,"EditBuscador");
  }
else 
  {
  if(ComboBoxHoras_DameOrdinal(1)<=ComboBoxHoras_DameOrdinal(0))
    {//Se cruzan, error al canto
    ComboBoxHoras_SetClassName(0,"EditBuscadorError");
    ComboBoxHoras_SetClassName(1,"EditBuscadorError");
    MensajeError=MensajeError+'- El rango de Horas de salida "desde" y "hasta" del vuelo de IDA se cruzan,\n'+
                              '   el campo "hasta" debe ser al menos una hora mayor que el campo "desde",\n'+
                              '   corr\u00EDjalo o deje por lo menos uno de los campos con el valor "Me da igual".\n\n';
    }
   else//Tienen una combinación válida
    {
    ComboBoxHoras_SetClassName(0,"EditBuscador");
    ComboBoxHoras_SetClassName(1,"EditBuscador");
    }
  }


if((ComboBoxHoras_DameOrdinal(2)==-1) || (ComboBoxHoras_DameOrdinal(3)==24))//Alguno de los dos es "Me da igual", todo OK
  {
  ComboBoxHoras_SetClassName(2,"EditBuscador");
  ComboBoxHoras_SetClassName(3,"EditBuscador");
  }
else 
  {
  if(ComboBoxHoras_DameOrdinal(3)<=ComboBoxHoras_DameOrdinal(2))
    {//Se cruzan, error al canto
    ComboBoxHoras_SetClassName(2,"EditBuscadorError");
    ComboBoxHoras_SetClassName(3,"EditBuscadorError");
    MensajeError=MensajeError+'- El rango de Horas de salida "desde" y "hasta" del vuelo de VUELTA se cruzan,\n'+
                              '   el campo "hasta" debe ser al menos una hora mayor que el campo "desde",\n'+
                              '   corr\u00EDjalo o deje por lo menos uno de los campos con el valor "Me da igual".\n\n';
    }
   else//Tienen una combinación válida
    {
    ComboBoxHoras_SetClassName(2,"EditBuscador");
    ComboBoxHoras_SetClassName(3,"EditBuscador");
    }
  }
//Persona
if(DameValor(4)<=0)//Adultos
  {
  MensajeError=MensajeError+'- El n\u00B0 de Adultos debe ser mayor o igual a uno.\n\n';
  ComboBoxHoras_SetClassName(4,"EditBuscadorError");
  }
else
  {
  if (parseInt(DameValor(6),10)>parseInt(DameValor(4),10))//No puede haber más bebes que adultos
    {
    ComboBoxHoras_SetClassName(4,"EditBuscadorError");
    ComboBoxHoras_SetClassName(6,"EditBuscadorError");
    MensajeError=MensajeError+'- El n\u00B0 de Adultos debe ser mayor o igual al n\u00B0 de beb\u00E9s.\n\n';
    }
  else 
    {
    ComboBoxHoras_SetClassName(4,"EditBuscador");
    ComboBoxHoras_SetClassName(6,"EditBuscador");
    }
  }

//-------------------------------------------------------------------------------------------------------
//Muestro el error si lo hay, en otro caso mando---------------------------------------------------------
if (MensajeError.length>0)  
  {
  if(MensajeError.length>2)
    MensajeError=MensajeError.substring(0,MensajeError.length-2);//Quito los 2 últimos saltos, \n es un solo caracter
  MensajeError='HAY ERRORES EN LOS DATOS INTRODUCIDOS:\n\n'+MensajeError;
  alert(MensajeError)
  return false;
  }
//Si esta todo OK Reasigno los valores correctos a cada campo a enviar y lo mando
document.FormBuscadorVuelos.HoraDesdeSalidaOrigen.value=DameValor(0);
if (document.FormBuscadorVuelos.HoraDesdeSalidaOrigen.value=='Me da igual')
  document.FormBuscadorVuelos.HoraDesdeSalidaOrigen.value='-1:00';
document.FormBuscadorVuelos.HoraHastaSalidaOrigen.value=DameValor(1);
if (document.FormBuscadorVuelos.HoraHastaSalidaOrigen.value=='Me da igual')
  document.FormBuscadorVuelos.HoraHastaSalidaOrigen.value='-1:00';
document.FormBuscadorVuelos.HoraDesdeSalidaDestino.value=DameValor(2);
if (document.FormBuscadorVuelos.HoraDesdeSalidaDestino.value=='Me da igual')
  document.FormBuscadorVuelos.HoraDesdeSalidaDestino.value='-1:00';
document.FormBuscadorVuelos.HoraHastaSalidaDestino.value=DameValor(3);
if (document.FormBuscadorVuelos.HoraHastaSalidaDestino.value=='Me da igual')
  document.FormBuscadorVuelos.HoraHastaSalidaDestino.value='-1:00';
document.FormBuscadorVuelos.Adultos.value=DameValor(4);
document.FormBuscadorVuelos.Ninios.value=DameValor(5);
document.FormBuscadorVuelos.Bebes.value=DameValor(6);
return true;
}
//------------------------------------------------------------------------------
//HOTELES-----------------------------------------------------------------------
//------------------------------------------------------------------------------
function ValidaFormHoteles()
{
var MensajeError='';
F=FINDLayer('FormBuscadorHoteles');
//Compruebo la fecha de entrada al hotel y lo reparto en los campos hidden que espera el servidor "edreams"
if (!CompruebaFechaStrValida(F.FechaEntradaHotel.value))
  MensajeError=MensajeError+('Fecha de entrada incorrecta\n');
else 
  {
  Fecha=ConvierteStrAFecha(F.FechaEntradaHotel.value)
  F.td_arrivalDay.value=Fecha.getDate(); 
  if(F.td_arrivalDay.value.length<2)
    F.td_arrivalDay.value='0'+F.td_arrivalDay.value;
  F.td_arrivalMonth.value=Fecha.getMonth(); 
  } 
//Compruebo la fecha de salida del hotel y lo reparto en los campos hidden que espera el servidor "edreams"
if (!CompruebaFechaStrValida(F.FechaSalidaHotel.value))
  MensajeError=MensajeError+('Fecha de salida incorrecta\n');
else 
  {
  Fecha=ConvierteStrAFecha(F.FechaSalidaHotel.value)
  F.td_departureDay.value=Fecha.getDate(); 
  if(F.td_departureDay.value.length<2)
    F.td_departureDay.value='0'+F.td_departureDay.value;
  F.td_departureMonth.value=Fecha.getMonth(); 
  }
//Compruebo que el nº de noches sea >0
if (parseInt(F.NumNoches.value,10)<=0)
  MensajeError=MensajeError+('El n\u00B0 de d\u00EDas de la reserva debe ser mayor de cero\n');//Jodiendo con utf, mirar codigos en el mapa de caracteres
//La fecha de entrada debe ser mayor que la de hoy
//La fecha de salida debe ser mayor que la de entrada
//-------------------------------------------------------------------------------------------------------
//Muestro el error si lo hay, en otro caso mando---------------------------------------------------------
if (MensajeError.length>0)  
  {
  MensajeError='HAY ERRORES EN LOS DATOS INTRODUCIDOS:\n\n'+MensajeError;
  alert(MensajeError)
  return false;
  }
else return true;
}
//------------------------------------------------------------------------------
//HOTELES-----------------------------------------------------------------------
//------------------------------------------------------------------------------

function CreaInput(Form,id,nombre,valor)
{
  var TempInput=document.createElement('INPUT');
  TempInput.setAttribute('name', nombre);
  TempInput.setAttribute('id', id);
  TempInput.setAttribute('value', valor);
  Form.appendChild(TempInput);
}

function ValidaFormVehiculos()
{
var Hoy=new Date();
var MensajeError='';
Resultado=null;
//Compruebo condiciones previas
if (FINDLayer('CiudadRecogidaVehiculo').value.length<=0)
  {
  FINDLayer('CiudadRecogidaVehiculo').className='EditBuscadorError';
  MensajeError=MensajeError+'- La Ciudad de Recogida del vehículo no puede estar vacía.\n\n';
  }
else FINDLayer('CiudadRecogidaVehiculo').className='EditBuscador';
if (FINDLayer('CiudadDevolucionVehiculo').value.length<=0)
  {
  FINDLayer('CiudadDevolucionVehiculo').className='EditBuscadorError';
  MensajeError=MensajeError+'- La Ciudad de Devolución del vehículo no puede estar vacía.\n\n';
  }
else FINDLayer('CiudadDevolucionVehiculo').className='EditBuscador';

//Fechas
if(CompruebaFechaStrValida(FINDLayer('FechaRecogidaVehiculo').value))
  {
  if (DiasEntre(Hoy,ConvierteStrAFecha(FINDLayer('FechaRecogidaVehiculo').value))<1)//La fecha de salida debe ser mañana como mínimo
    {
    FINDLayer('FechaRecogidaVehiculo').className='EditBuscadorError';//Es una fecha antigua, menor a mañana
    MensajeError=MensajeError+'- La Fecha de Recogida del Vehículo debe ser mayor a la de hoy.\n\n';
    }
  else FINDLayer('FechaRecogidaVehiculo').className='EditBuscador';//es una fecha correcta
  }
else
 {
 FINDLayer('FechaRecogidaVehiculo').className='EditBuscadorError';//Es una fecha antigua, menor a mañana
 MensajeError=MensajeError+'- La Fecha de Recogida del Vehículo no es una fecha v\u00E1lida (formato dd/mm/aaaa).\n\n';
 }
 
var FechaIDA=ConvierteStrAFecha(FINDLayer('FechaRecogidaVehiculo').value);
if(CompruebaFechaStrValida(FINDLayer('FechaDevolucionVehiculo').value))
  {
  if (DiasEntre(FechaIDA,ConvierteStrAFecha(FINDLayer('FechaDevolucionVehiculo').value))<1)//La fecha de devolución debe ser mayor que la recogida
    {
    FINDLayer('FechaDevolucionVehiculo').className='EditBuscadorError';//Es una fecha antigua, menor a mañana
    MensajeError=MensajeError+'- La Fecha de Devolución del Vehículo debe ser mayor que la Fecha de Recogida del Vehículo.\n\n';
    }
  else FINDLayer('FechaDevolucionVehiculo').className='EditBuscador';//es una fecha correcta
  }
else
 {
 FINDLayer('FechaDevolucionVehiculo').className='EditBuscadorError';//Es una fecha antigua, menor a mañana
 MensajeError=MensajeError+'- La Fecha de Devolución del Vehículo no es una fecha v\u00E1lida (formato dd/mm/aaaa).\n\n';
 }
//Edad
if(isNumero(FINDLayer('EdadConductor').value))
  Temporal=parseInt(FINDLayer('EdadConductor').value,10)
else Temporal=0;
if (Temporal<25)
  {
  FINDLayer('EdadConductor').className='EditBuscadorError';
  MensajeError=MensajeError+'- La edad del conducto debe ser un nº entero mayor o igual a 25.\n\n';
  }
else FINDLayer('EdadConductor').className='EditBuscador';
//Si ha habido error aviso y termino  

if (MensajeError.length>0)  
  {
  if(MensajeError.length>2)
    MensajeError=MensajeError.substring(0,MensajeError.length-2);//Quito los 2 últimos saltos, \n es un solo caracter
  MensajeError='HAY ERRORES EN LOS DATOS INTRODUCIDOS:\n\n'+MensajeError;
  alert(MensajeError)
  return null;
  }

//Genero la URL

//-------------------
//INICIO EBOOKERS----
//De momento solo este
if(true && (MensajeError.length<=0)) //Porque de momento solo está este, --->(document.FormBuscadorVehiculos.RBProveedorVehiculos[0].checked)
  {
  var FormTemporalVehiculos=document.FormTemporalVehiculos;
  if(!FormTemporalVehiculos)
    return null;
//Los parametos, name e id lo he sacado del javascript del elemento gráfico
  FormTemporalVehiculos.setAttribute('action','http://clk.tradedoubler.com/click?p=18857&a=1270734&g=841395&url=http://carbookers.com/search/s1.shtml?COM=ESTD-BuscaCochesRojo&xtor=AL-121');

  //Ya no me hace falta esta línea, lo meto directamente en el html, pero sin valores. ----> document.appendChild(FormTemporalVehiculos);
  //Borro todos los INPUT que tuviera asignados antes
  while (FormTemporalVehiculos.childNodes.length>0)
    {
    FormTemporalVehiculos.removeChild(FormTemporalVehiculos.childNodes[0]);
    }
  //CREO Y CARGO TODOS LOS INPUT

  Temporal=ConvierteStrAFecha(FINDLayer('FechaRecogidaVehiculo').value).getMonth();
  Temporal=String(parseInt(Temporal,10)+1);//Los meses comienzan en mes 0 enero
  while (Temporal.length<2) Temporal='0'+String(Temporal);//Si no es mm falla
  CreaInput(FormTemporalVehiculos,'td_pick_up_month','td_pick_up_month',Temporal);

  Temporal=String(ConvierteStrAFecha(FINDLayer('FechaRecogidaVehiculo').value).getDate());
  while (Temporal.length<2) Temporal='0'+String(Temporal);//Si no es dd falla
  CreaInput(FormTemporalVehiculos,'td_pick_up_day','td_pick_up_day',Temporal);

  CreaInput(FormTemporalVehiculos,'td_pick_up_hour','td_pick_up_hour',FINDLayer('HoraRecogidaVehiculo').value);
  CreaInput(FormTemporalVehiculos,'td_pick_up_min','td_pick_up_min',FINDLayer('MinutosRecogidaVehiculo').value);
  
  Temporal=ConvierteStrAFecha(FINDLayer('FechaRecogidaVehiculo').value).getMonth();
  Temporal=String(parseInt(Temporal,10)+1);//Los meses comienzan en mes 0 enero
  while (Temporal.length<2) Temporal='0'+Temporal;//Si no es mm falla
  CreaInput(FormTemporalVehiculos,'td_drop_off_month','td_drop_off_month',Temporal);

  Temporal=String(ConvierteStrAFecha(FINDLayer('FechaDevolucionVehiculo').value).getDate());
  while (Temporal.length<2) Temporal='0'+String(Temporal);//Si no es dd falla
  CreaInput(FormTemporalVehiculos,'td_drop_off_day','td_drop_off_day',Temporal);

  CreaInput(FormTemporalVehiculos,'td_drop_off_hour','td_drop_off_hour',FINDLayer('HoraDevolucionVehiculo').value);
  CreaInput(FormTemporalVehiculos,'td_drop_off_min','td_drop_off_min',FINDLayer('MinutosDevolucionVehiculo').value);

  CreaInput(FormTemporalVehiculos,'pick_up_city','td_guess',FINDLayer('CiudadRecogidaVehiculo').value);
  CreaInput(FormTemporalVehiculos,'drop_off_city','td_guess2',FINDLayer('CiudadDevolucionVehiculo').value);

  CreaInput(FormTemporalVehiculos,'td_driver_age','td_driver_age',FINDLayer('EdadConductor').value);
  //Fin devuelvo el resultado
  return FormTemporalVehiculos;
  }
//FIN    EBOOKERS----
//-------------------

return null;
}
//------------------------------------------------------------------------------