var domainPath = 'http://www.despegar.com';
var iPais = 1;

//Inicio - Funciones del buscador de paquetes
function buscarPaquetes (bConFiltros) {
   document.frmPaquetes.DescripcionOriginLocation1.value = "";
   document.frmPaquetes.get2postURL.value = '/paginas/paquetes/ResultadoBusquedaPaquetes.asp';


   if (document.frmPaquetes.ADT.value == '0')
   {
      alert('Por favor seleccione la cantidad de pasajeros adultos');
      document.frmPaquetes.ADT.focus();
      return false;
   }

   document.frmPaquetes.sDuracion.value = '0';
   document.frmPaquetes.sCategoria.value = '0';
   document.frmPaquetes.sRegimen.value = '0';
   document.frmPaquetes.sActividad.value = '0';

   document.frmPaquetes.submit();
}

function validarCargaMeses()
{
   document.getElementById('jsScriptMeses').src = domainPath + "/paginas/paquetes/RE_CargarMesesJsBlog.asp";
}

function escribeOpcionesMeses(sValor, sTexto)
{
   var sTextoDelSelect = '<select class="EstiloCombosPaq" name="sMesSalida" id="sMesSalida">';
   if (sValor.length > 0 && sTexto.length > 0) {
      for (var i = 0; i < sValor.length; i++) {
         sTextoDelSelect = sTextoDelSelect + '<OPTION value="' + sValor[i] + '">' + sTexto[i] + '</OPTION>';
      }
   }
   else {
      sTextoDelSelect = sTextoDelSelect + '<OPTION value="">No hay opciones</OPTION>';
   }   
   sTextoDelSelect = sTextoDelSelect + '</select>';
   document.getElementById("OpcionesMeses").innerHTML = sTextoDelSelect;
   return true;
}

function changeCiudad()
{
   setDescripDestination();
}

function setDescripDestination()
{
   document.frmPaquetes.DescripcionDestinationLocation1.value = document.frmPaquetes.DestinationLocation1.item(document.frmPaquetes.DestinationLocation1.selectedIndex).text;
   if ((document.frmPaquetes.sRegion.value == "-1") || (document.frmPaquetes.sPais.value == "-1"))
      document.frmPaquetes.DescripcionDestinationLocation1.value = "";

   return true;
}

function cambiarOrigen()
{
   document.getElementById("OpcionesDestino").innerHTML = '<select class="EstiloCombosPaq" name="DestinationLocation1" id="DestinationLocation1"><option value="">Seleccione Región</option></select>';
   document.getElementById("OpcionesPais").innerHTML = '<select class="EstiloCombosPaq" name="sPais" id="sPais"><option value="">Seleccione Región</option></select>';
   return true;
}
//Fin - Funciones del buscador de paquetes

function DateToString(FechaSalida)
{  var sAnio, sMes, sDia
   var i, j

   i = FechaSalida.indexOf('/')
   sDia = FechaSalida.substr(0, i);
   if (sDia < 10)
   { sDia = '0' + sDia;
   }

   i = FechaSalida.indexOf('/') + 1
   j = FechaSalida.substr(i, FechaSalida.length).indexOf('/')
   sMes = FechaSalida.substr(i, j)
   if (sMes.length == 1)
   {  sMes = '0' + sMes;
   }

   sAnio = FechaSalida.substr(i + j + 1, 4)
   return(sAnio + sMes + sDia)
}


function ValidarFechas(FechaSalida, FechaRegreso)
{
   var sFechaSalida, sFechaRegreso;
   sFechaSalida = DateToString(FechaSalida);
   sFechaRegreso = DateToString(FechaRegreso);
   if (sFechaSalida <= sFechaRegreso)
   {
      return(true);
   }
   else
   {
      return(false);
   }
}

function ValidarFechasHoteles(FechaSalida, FechaRegreso)
{  var sFechaSalida, sFechaRegreso
   sFechaSalida = DateToString(FechaSalida)
   sFechaRegreso = DateToString(FechaRegreso)
   if (sFechaSalida < sFechaRegreso)
   {  return(true);
   }
   else
   {  return(false);
   }
}

function buscarVuelos(bConFiltros)
{
   var okey = 1;
   var msg;
   var dia;
   var mes;
   var anio;
   var fechaDesde;
   var fechaHasta;
   var fechaSinHora;
   var frm;

   frm = document.getElementById('frmVuelosMain');
   frm.get2postURL.value = '/paginas/vuelos/buscando.asp';

   msg = '';
   okey = 1;

   if(frm.OriginLocation1.value == frm.DestinationLocation1.value)
   {
      okey = 0;
      msg = msg + 'El origen y el destino no pueden ser iguales\n';
   }
   if(frm.OriginLocation1.value.length == 0)
   {
      okey = 0;
      msg = msg + 'Por favor, ingrese la ciudad de origen\n';
   }
   if(frm.DestinationLocation1.value.length == 0)
   {
      okey = 0;
      msg = msg + 'Por favor, ingrese la ciudad de destino\n';
   }


   if (frm.FechaSalida.value.length > 0 && frm.FechaSalida.value != 'dd/mm/aaaa')
   {
      fechaDesde = frm.DepartureDate1.value;
      if (fechaDesde.indexOf('/') == -1)
      {
         if (fechaDesde.indexOf('T') != -1)
         {
            fechaSinHora = fechaDesde.split('T');
            fechaSinHora = fechaSinHora[0]
            fecha = fechaSinHora.split('-');
         }
         else
         {
            fecha = fechaDesde.split('-');
         }
         dia   = fecha[2];
         mes   = fecha[1];
         anio  = fecha[0];
      }
      else
      {
         fecha = fechaDesde.split('/');
         dia   = fecha[0];
         mes   = fecha[1];
         anio  = fecha[2];
      }

      if(dia < 10){
         dia = '0' + parseInt(dia, 10);
      }
      if(mes < 10){
         mes = '0' + parseInt(mes, 10);
      }

      if (bConFiltros) frm.ClasePref.value = document.getElementById('buscadorOpAvVuelosClasePref').value;

      switch (frm.ClasePref.value)
      {
         case 'YC' :
            frm.CabinPref1.value = 'Y';
            frm.RefundPenalty.value = 'True';
            break;
         case 'YS' :
            frm.CabinPref1.value = 'Y';
            frm.RefundPenalty.value = 'False';
            break;
         case 'C' :
            frm.CabinPref1.value = 'C';
            frm.RefundPenalty.value = 'False';
            break;
         case 'F' :
            frm.CabinPref1.value = 'F';
            frm.RefundPenalty.value = 'False';
            break;
      }


      if (frm.DepartureTime1.value.length != 0)
      {
         Time = frm.DepartureTime1.value.split('.')
         frm.DepartureDate1.value = anio + '-' + mes + '-' + dia + 'T' + Time[0] + ':' + Time[1] + ':00' ;
      }
      else
      {
         frm.DepartureDate1.value = anio + '-' + mes + '-' + dia;
      }
   }
   else
   {
      okey = 0;
      msg  = msg + 'Por favor, ingrese una fecha de partida\n';
   }


   if (frm.FechaRegreso.value.length > 0 && frm.FechaRegreso.value != 'dd/mm/aaaa')
   {
      fechaHasta = frm.DepartureDate2.value;
      if (fechaHasta.indexOf('/') == -1)
      {
         if (fechaHasta.indexOf('T') != -1)
         {
            fechaSinHora = fechaHasta.split('T');
            fechaSinHora = fechaSinHora[0]
            fecha = fechaSinHora.split('-');
         }
         else
         {
            fecha = fechaHasta.split('-');
         }
         dia   = fecha[2];
         mes   = fecha[1];
         anio  = fecha[0];
      }
      else
      {
         fecha = fechaHasta.split('/');
         dia   = fecha[0];
         mes   = fecha[1];
         anio  = fecha[2];
      }
      if(dia < 10)
      {
            dia = '0' + parseInt(dia, 10);
      }
      if(mes < 10)
      {
         mes = '0' + parseInt(mes, 10);
      }
      
      if (frm.DepartureTime2.value.length != 0)
      {
         Time = frm.DepartureTime2.value.split('.')
         frm.DepartureDate2.value = anio + '-' + mes + '-' + dia + 'T' + Time[0] + ':' + Time[1] + ':00' ;
      }
      else
      {
         frm.DepartureDate2.value = anio + '-' + mes + '-' + dia;
      }
   }
   else
   {
      if(frm.sTripType[0].checked)
      {
         okey = 0;
         msg  = msg + 'Por favor, ingrese una fecha de regreso\n';
      }
   }

   if(frm.sTripType[0].checked)
   {
      if( !ValidarFechas(frm.FechaSalida.value, frm.FechaRegreso.value) )
      {
         okey = 0;
         msg = msg + 'Por favor, la fecha de salida debe ser anterior a la fecha de llegada\n';
      }
   }


   if (bConFiltros) frm.MaxStopsQuantity.value = document.getElementById('buscadorOpAvVuelosMaxStopQuantity').value;

   if(okey == 1) {
      frm.submit();
   }
   else
   {
      alert(msg);
   }
}

function buscarHoteles(bConFiltros) {
   var okey = 1;
   var msg;
   var dia;
   var mes;
   var anio;
   var fechaDesde;
   var fechaHasta;
   var fechaSinHora;
   var frm;

   frm = document.getElementById('frmHotelesMain');
   frm.get2postURL.value = '/paginas/vuelos/buscando.asp';

   msg = '';
   okey = 1;

   frm.sCiudadDesde.value = frm.sCiudadDesdeHotel.value;

   if (frm.FechaEntradaHotel.value.length > 0 && frm.FechaEntradaHotel.value != 'dd/mm/aaaa')
   {
      fechaDesde = frm.FechaEntradaHotel.value;
      fecha = fechaDesde.split('/');
      dia   = fecha[0];
      mes   = fecha[1];
      anio  = fecha[2];
      if(dia < 10){dia = '0' + parseInt(dia, 10);}
      if(mes < 10){mes = '0' + parseInt(mes, 10);}
      frm.dFechaEntrada.value = dia + '/' + mes;
   }
   else
   {
      okey = 0;
      msg  = msg + 'Por favor, ingrese una fecha de llegada al hotel\n';
   }
   if (frm.FechaSalidaHotel.value.length > 0 && frm.FechaSalidaHotel.value != 'dd/mm/aaaa')
   {
      fechaHasta = frm.FechaSalidaHotel.value;
      fecha = fechaHasta.split('/');
      dia   = fecha[0];
      mes   = fecha[1];
      anio  = fecha[2];
      if(dia < 10){dia = '0' + parseInt(dia, 10);}
      if(mes < 10){mes = '0' + parseInt(mes, 10);}
      frm.dFechaSalida.value = dia + '/' + mes;
   }
   else
   {
      okey = 0;
      msg  = msg + 'Por favor, ingrese una fecha de salida del hotel\n';
   }

   if( !ValidarFechasHoteles(frm.FechaEntradaHotel.value, frm.FechaSalidaHotel.value) )
   {
      okey = 0;
      msg = msg + 'Por favor, la fecha de salida debe ser posterior a la fecha de llegada\n';
   }

   if (bConFiltros) {
      frm.cboAmenities1.value = document.getElementById('buscadorOpAvHotelesCboAmenities1').value;
      frm.cboAmenities2.value = document.getElementById('buscadorOpAvHotelesCboAmenities2').value;
   }


   if(okey == 1) {
      frm.DescripcionCiudadDesdeHotel.value = obtenerDescripcionCiudadHotel ( frm.sCiudadDesdeHotel.value );
      frm.submit();
   }
   else
   {
      alert(msg);
   }
}

function buscarAutos(bConFiltros) {

   var okey = 1;
   var msg;
   var dia;
   var mes;
   var anio;
   var fechaDesde;
   var fechaHasta;
   var fechaSinHora;
   var frm;

   frm = document.getElementById('frmAutosMain');
   frm.get2postURL.value = '/paginas/vuelos/buscando.asp';

   msg = '';
   okey = 1;

   if(frm.buscadorAutosRegresaEn.vlaue == 'misma') {
      frm.sCiudadHastaAutos.value = frm.sCiudadDesdeAutos.value;
   }


   frm.sCiudadDesde.value = frm.sCiudadDesdeAutos.value;
   frm.sCiudadHasta.value = frm.sCiudadHastaAutos.value;

   if(frm.sCiudadDesde.value.length == 0)
   {
      okey = 0;
      msg = msg + 'Por favor, ingrese la ciudad en que retira el automóvil.\n';
   }

   if(frm.sCiudadHasta.value.length == 0 && frm.buscadorAutosRegresaEn.value == 'otra')
   {
      okey = 0;
      msg = msg + 'Por favor, ingrese la ciudad en que devuelve el automóvil.\n';
   }
   if (frm.FechaSalidaAuto.value.length > 0 && frm.FechaSalidaAuto.value != 'dd/mm/aaaa')
   {
      fechaDesde = frm.FechaSalidaAuto.value;
      fecha = fechaDesde.split('/');
      dia   = fecha[0];
      mes   = fecha[1];
      anio  = fecha[2];
      if(dia < 10){dia = '0' + parseInt(dia, 10);}
      if(mes < 10){mes = '0' + parseInt(mes, 10);}
      frm.dFechaRetiro.value = dia + '/' + mes;
   }
   else
   {
      okey = 0;
      msg  = msg + 'Por favor, ingrese una fecha de retiro del automóvil.\n';
   }
   if (frm.FechaRegresoAuto.value.length > 0 && frm.FechaRegresoAuto.value != 'dd/mm/aaaa')
   {
      fechaHasta = frm.FechaRegresoAuto.value;
      fecha = fechaHasta.split('/');
      dia   = fecha[0];
      mes   = fecha[1];
      anio  = fecha[2];
      if(dia < 10){dia = '0' + parseInt(dia, 10);}
      if(mes < 10){mes = '0' + parseInt(mes, 10);}
      frm.dFechaDevolucion.value = dia + '/' + mes;
   }
   else
   {
      okey = 0;
      msg  = msg + 'Por favor, ingrese una fecha de devolución del automóvil.\n';
   }

   if( !ValidarFechas(frm.FechaSalidaAuto.value, frm.FechaRegresoAuto.value))
   {
      okey = 0;
      msg = msg + 'Por favor, la fecha de retiro del auto debe ser anterior a la fecha de entrega\n';
   }


   if(okey == 1) {
      frm.submit();
   }
   else
   {
      alert(msg);
   }

}

function obtenerDescripcionCiudadHotel(sCodigo)
{
   var sSalida;
   sSalida = '';
   
   switch(sCodigo) {
      case 'MHH': sSalida = 'Marsh Harbour, Abaco, Bahamas'; break;
      case 'TCB': sSalida = 'Treasure Cay, Abaco, Bahamas'; break;
      case 'AXP': sSalida = 'Spring Point'; break;
      case 'ASD': sSalida = 'Andros Town, Andros (International), Bahamas'; break;
      case 'TZN': sSalida = 'South Andros, Andros (Congo Town), Bahamas'; break;
      case 'MAY': sSalida = 'Mangrove Cay, Bahamas'; break;
      case 'SAQ': sSalida = 'San Andros (Nichols Town), Andros (San Andros), Bahamas'; break;
      case 'ATC': sSalida = 'Arthur´s Town, Cat, Bahamas'; break;
      case 'TBI': sSalida = 'The Bight, Bahamas'; break;
      case 'CRI': sSalida = 'Crooked Island, Crooked, Bahamas'; break;
      case 'GHB': sSalida = 'Governors Harbour, Eleuthera, Bahamas'; break;
      case 'ELH': sSalida = 'North Eleuthera, Eleuthera (North Eleuthera), Bahamas'; break;
      case 'RSD': sSalida = 'Rock Sound, Eleuthera, Bahamas'; break;
      case 'GGT': sSalida = 'George Town, Exuma, Bahamas'; break;
      case 'FPO': sSalida = 'Freeport, Grand Bahama (Freeport International Airport), Bahamas'; break;
      case 'IGA': sSalida = 'Inagua (Matthew Town), Great Inagua, Bahamas'; break;
      case 'LGI': sSalida = 'Deadman´s Cay, Long, Bahamas'; break;
      case 'SML': sSalida = 'Stella Maris, Long, Bahamas'; break;
      case 'MYG': sSalida = 'Mayaguana, Mayaguana, Bahamas'; break;
      case 'NAS': sSalida = 'Nassau, New Providence (International Airport), Bahamas'; break;
      case 'ZSA': sSalida = 'San Salvador (Cockburn Town), San Salvador, Bahamas'; break;
   }
   
   return sSalida;
}

function buscar(sFlow) {
   switch(sFlow) {
      case 'v':
         buscarVuelos(false);
         break;
      case 'p':
         buscarPaquetes(false);
         break;
      case 'h':
         buscarHoteles(false);
         break;
      case 'a':
         buscarAutos(false);
         break;
   }
}
