/*************************************
 * HotelanWeb
 * Copyright 2015 Landín Informática
 * http://landin.es
 *************************************/

lanSeleccionHabitacionesModificada = false;
lanExtraHeight = 0;
recaptchaVal = true;
idiomaSeleccionado = "es";

var arrLang = {
  en: {
    entrada: "Check-In:",
    salida: "Check-Out:",
    tipos_habitacion: "Types of room",
    todos: "All",
    consultar_disponibilidad: "Check availability",
    resumen_reserva: "Summary",
    noches: "Nights:",
    importe_total: "Total: ",
    reservar: "Book",
    nombre: "Name:",
    apellido1: "Middle name:",
    apellido2: "Second name:",
    telefono: "Telephone:",
    tipo_documento: "Type of document:",
    direccion: "Address:",
    poblacion: "City:",
    codigo_postal: "Postal code:",
    autonomia: "Autonomía:",
    pais: "Country:",
    sexo: "Sex:",
    fecha_nacimiento: "Date of birthday:",
    pais_nacimiento: "Country of birth:",
    titular: "Holder:",
    telefono_contacto: "Telephone number:",
    campos_obligatorios: "The fields marked with * are required.",
    politica_privacidad_leido: "I have read and accept the",
    politica_privacidad: "private policy. ",
    volver: "Return",
    pagar: "Pay",
    confirmar: "Confirm",
    confirmar_pagar: "Confirm and pay",
    cliente: "Client",
    datos_reserva: "Booking data",
    titular_reserva: "Booking holder",
    opciones_habitacion: "Options room ",
    precio_noche: "Night price: ",
    habitaciones: "Rooms: ",
    cama_supletoria: "Additional bed",
    uso_individual: "Individual use",
    cuna: "Crib",
    mascota: "Pet",
    tercer_huesped: "Third guest",
    cuarto_huesped: "Fourth guest",
    cargando_habitaciones: "Loading rooms. Please, wait a few seconds.",
    todos: "All",
    habs_disponibles: " available rooms.",
    numero_documento: "Document number: ",
    error_importe_total:
      "Error: the calculated total amount is not a valid amount. Modify some of the values of the book so that the total amount is updated. If the error persists, please contact us as soon as possible. Forgive the inconvenience.",
    error_reserva: "The following error occurred while saving the book: ",
    contacto_email:
      "Please, contact us by phone or email to verify that the book has been correctly saved or formalize it directly with us otherwise. Forgive the inconvenience.",
    error_sin_respuesta:
      "Error. No response has been obtained when saving the book. Try confirming the reservation again or contact us. Forgive the inconvenience.",
    provincia_no_pais:
      "The province does not correspond to the selected country. Select a different country or province.",
    autonomia_no_pais:
      "The Autonomy does not correspond to the selected country. Select a different country or autonomy.",
    provincia_no_autonomia:
      "The province does not correspond to the selected autonomy. Select a different autonomy or province.",
    cliente_vacio: "The customers name can not be empty.",
    primer_apellido_vacio: "The clients first name can not be empty.",
    email_no_valido: "The specified email is not valid.",
    tipo_documento_no_valido: "The type of document is not valid.",
    numero_documento_vacio: "The document number can not be empty.",
    titular_vacio: "The name of the holder of the book can not be empty.",
    telefono_vacio: "The contact phone can not be empty.",
    aceptar_politica_privacidad:
      "You must accept the privacy policy in order to continue.",
    debe_seleccionar_habitacion: "You must select a room before booking.",
    obligatorio_captcha: "It is necessary to fill in the captcha to continue.",
    observaciones: "Notes: ",
    reserva_confirmada: "Booking confirmed",
    enhorabuena: "Congratulations",
    se_ha_confirmado: "Your reservation has been confirmed with the code",
    revisa_datos:
      "Review the details, and if you have any questions, you can contact us by email or phone.",
    fechas: "Dates",
    detalles_reserva: "Reservation details",
    importe_total: "Total amount",
    descargar_pdf: "Download PDF",
    guardando_reserva: "Saving booking...",
  },
  es: {
    entrada: "Entrada:",
    salida: "Salida:",
    tipos_habitacion: "Tipos de habitación",
    todos: "Todos",
    consultar_disponibilidad: "Consultar disponibilidad",
    resumen_reserva: "Resumen de la reserva",
    noches: "Noches:",
    importe_total: "Importe total:",
    reservar: "Reservar",
    nombre: "Nombre:",
    apellido1: "Primer apellido:",
    apellido2: "Segundo apellido:",
    telefono: "Teléfono",
    tipo_documento: "Tipo de documento",
    direccion: "Dirección",
    poblacion: "Población",
    codigo_postal: "Código postal",
    autonomia: "Autonomía",
    pais: "País",
    sexo: "Sexo",
    fecha_nacimiento: "Fecha de nacimiento",
    pais_nacimiento: "País de nacimiento",
    titular: "Titular: ",
    telefono_contacto: "Teléfono de contacto",
    campos_obligatorios: "Los campos marcados con * son obligatorios.",
    politica_privacidad_leido: "He leído y acepto la",
    politica_privacidad: "política de privacidad.",
    volver: "Volver",
    pagar: "Pagar",
    confirmar: "Confirmar",
    confirmar_pagar: "Confirmar y pagar",
    cliente: "Cliente",
    datos_reserva: "Datos de la reserva",
    titular_reserva: "Titular de la reserva",
    opciones_habitacion: "Opciones habitación ",
    precio_noche: "Precio noche: ",
    habitaciones: "Habitaciones: ",
    cama_supletoria: "Cama supletoria",
    uso_individual: "Uso individual",
    cuna: "Cuna",
    mascota: "Mascota",
    tercer_huesped: "Tercer huésped",
    cuarto_huesped: "Cuarto huésped",
    cargando_habitaciones:
      "Cargando habitaciones. por favor, espere unos segundos.",
    todos: "Todos",
    habs_disponibles: " habitaciones disponibles.",
    numero_documento: "Número de documento: ",
    error_importe_total:
      "Error: el importe total calculado no es un importe válido. Modifique alguno de los valores de la reserva para que se actualice el importe total. Si el error persiste, póngase en contacto con nosotros lo antes posibles. Perdone las molestias.",
    error_reserva: "Se ha producido el siguiente error guardando la reserva:",
    contacto_email:
      "Por favor, póngase en contacto con nosotros por teléfono o email para comprobar que la reserva se ha guardado correctamente o formalizarla directamente con nosotros en caso contrario. Perdone las molestias.",
    error_sin_respuesta:
      "Error. No se ha obtenido respuesta al guardar la reserva. Intente confirmar de nuevo la reserva o póngase en contacto con nosotros. Perdone las molestias.",
    provincia_no_pais:
      "La provincia no se corresponde con el país seleccionado. Seleccione un país o una provincia distintos.",
    autonomia_no_pais:
      "La autonomía no se corresponde con el país seleccionado. Seleccione un país o una autonomía distintos.",
    provincia_no_autonomia:
      "La provincia no se corresponde con la autonomía seleccionada. Seleccione una autonomía o una provincia distintas.",
    cliente_vacio: "El nombre del cliente no puede estar vacío.",
    primer_apellido_vacio:
      "El primer apellido del cliente no puede estar vacío.",
    email_no_valido: "El email especificado no es válido.",
    tipo_documento_no_valido: "El tipo de documento no es válido.",
    numero_documento_vacio: "El número de documento no puede estar vacío.",
    titular_vacio: "El nombre del titular de la reserva no puede estar vacío.",
    telefono_vacio: "El teléfono de contacto no puede estar vacío.",
    aceptar_politica_privacidad:
      "Debe aceptar la política de privacidad para poder continuar.",
    debe_seleccionar_habitacion:
      "Debe seleccionar alguna habitación antes de reservar.",
    obligatorio_captcha: "Es obligatorio rellenar el captcha para continuar.",
    observaciones: "Observaciones:",
    reserva_confirmada: "Reserva confirmada",
    enhorabuena: "Enhorabuena",
    se_ha_confirmado: "Se ha confirmado tu reserva con el código",
    revisa_datos:
      "Revisa los datos y si tienes cualquier duda puedes ponerte en contacto con nosotros por email o teléfono.",
    fechas: "Fechas",
    detalles_reserva: "Detalles de la reserva",
    importe_total: "Importe total",
    descargar_pdf: "Descargar PDF",
    guardando_reserva: "Guardando reserva...",
  },
};

$(function () {
  $(".translate").click(function () {
    var lang = $(this).attr("id");
    idiomaSeleccionado = lang;
    $(".lang").each(function (index, element) {
      $(this).text(arrLang[lang][$(this).attr("key")]);
    });

    document.getElementById("lan-boton-consultar").value =
      arrLang[lang]["consultar_disponibilidad"];
    document.getElementById("lan-boton-datos-cliente-anterior").value =
      arrLang[lang]["volver"];

    if (pasarelaPago == 1) {
      document.getElementById("lan-boton-datos-cliente-siguiente").value =
        arrLang[lang]["pagar"];
      document.getElementById("lan-boton-datos-cliente-siguiente-abajo").value =
        arrLang[lang]["confirmar_pagar"];
    } else {
      document.getElementById("lan-boton-datos-cliente-siguiente").value =
        arrLang[lang]["reservar"];
      document.getElementById("lan-boton-datos-cliente-siguiente-abajo").value =
        arrLang[lang]["confirmar"];
    }

    document.getElementById(
      "lan-boton-seleccion-habitaciones-siguiente"
    ).value = arrLang[lang]["reservar"];
    $("#lan-cli-link-politica-privacidad").text(
      arrLang[lang]["politica_privacidad"]
    );
  });
});

function lanConfigurarSelectTipoHabitacion(elemento, param) {
  $.when(lanGetTiposHabitacionJSON()).then(function (tiposHabitacionAux) {
    var tiposHabitacion = JSON.parse(
      typeof tiposHabitacionAux === "string" ? tiposHabitacionAux : "{}"
    );

    $(elemento).empty();
    if (!tiposHabitacion["error"] && tiposHabitacion.length !== 0) {
      var html = '<option value="" class="lang" key="todos">Todos</option>';

      for (var i = 0; i < tiposHabitacion.length; i++) {
        html +=
          '<option value="' +
          tiposHabitacion[i]["TIPOHAB_"] +
          '">' +
          tiposHabitacion[i]["DESCRIPCION"] +
          "</option>";
      }
      $(elemento).append(html);
      $(elemento).val(param).change();
      lanPreguntarReiniciarSeleccionHabitaciones();
    } else {
      var html = '<option value="error">Error (recargar página)</option>';
      $(elemento).append(html);
      $(elemento).val("error").change();
    }
  });
}

function lanGetDatosCalendario(habSeleccionada,clear) {
    $('#lan-loader-calendario').show();
    $.when(lanGetDatosCalendarioJSON()).then(function (fechasAux) {
      try{
        var fechasMaximaOcupacion = JSON.parse(fechasAux);
        lanConfigurarDatepicker(
          $("#lan-fecha-entrada"),
          $("#lan-fecha-salida"),
          fechasMaximaOcupacion,
          habSeleccionada,
          clear
        );
      }finally{
       $('#lan-loader-calendario').hide();
      }
    });
}

function lanCalcularNumNochesReserva() {
  var numNoches =
    (new Date($("#lan-fecha-salida").val()) -
      new Date($("#lan-fecha-entrada").val())) /
    (24 * 60 * 60 * 1000);
  return !isNaN(numNoches) && numNoches !== 0 ? numNoches : 1;
}

function lanCalcularHabitacionesSeleccionadasPorTipo(tipoHabitacion) {
  var numHabitaciones = 0;
  $('*[id^="lan-select-num-habitaciones-' + tipoHabitacion + '"]').each(
    function () {
      var numHabitacionesAux = parseInt($(this).val());
      numHabitaciones += isNaN(numHabitacionesAux) ? 0 : numHabitacionesAux;
    }
  );
  return numHabitaciones;
}

//envía al servidor todas las reservas seleccionadas y muestra el importe total calculado por el mismo
function lanMostrarImporteTotalServidor(
  fechaEntrada,
  fechaSalida,
  element,
  loader
) {
  var reservas = lanGetReservasSeleccionadas();
  if (reservas.length > 0) {
    $(element).text("Calculando...");
    $(loader).show("fade", { easing: "easeOutExpo" }, 100, function () {
      $.when(
        lanCalcularImporteTotalReservaServidor(
          fechaEntrada,
          fechaSalida,
          reservas
        )
      ).then(function (importeTotalAux) {
        var importeTotal = parseFloat(importeTotalAux.replace(",", "."));
        if (isNaN(importeTotal)) $(element).text("Error");
        else $(element).text(importeTotal.toFixed(2) + " €");

        $(loader).hide(
          "blind",
          { direction: "up", easing: "easeOutExpo" },
          300,
          function () {
            lanResizeContents();
          }
        );
      });
    });
  } else {
    $(element).text("");
  }
}

//muestra el importe total calculado a partir de los datos guardados inicialmente
//no válido si la tarifa es de tipo precio por persona
function lanMostrarImporteTotal(element) {
  var reservas = lanGetReservasSeleccionadas();
  if (reservas.length > 0) {
    var importeTotal = parseFloat(lanCalcularImporteTotalReserva(reservas));
    if (isNaN(importeTotal) || importeTotal === -1)
      $(element).text("Error calculando precio");
    else $(element).text(importeTotal.toFixed(2) + " €");
  } else {
    $(element).text("");
  }
}

function lanCalcularPrecioHabitacionPorNoche(precio) {
  var numNoches = lanCalcularNumNochesReserva();
  precio = parseFloat(precio.replace(",", "."));
  if (!isNaN(precio)) {
    return precio / numNoches;
  } else {
    return 0;
  }
}

//calcula el total de la reserva a partir de los datos guardados inicialmente
//no válido si la tarifa es de tipo precio por persona
function lanCalcularImporteTotalReserva(reservas) {
  var numNoches = lanCalcularNumNochesReserva();
  var importeTotal = 0;

  for (var i = 0; i < reservas.length; i++) {
    var reserva = reservas[i];
    var tipoHabitacion = lanBuscarElementoPorId(
      lanHabitaciones,
      "TIPOHAB_",
      reserva["TIPOHAB_"]
    );
    var tarifa = lanBuscarElementoPorId(
      tipoHabitacion["TARIFAS"],
      "TARIFA_",
      reserva["TARIFA_"]
    );
    var regimen = lanBuscarElementoPorId(
      tarifa["REGIMENES"],
      "REGIMEN_",
      reserva["REGIMEN_"]
    );
    var precios = regimen["PRECIOS"];
    var precio = parseFloat(precios["PRECIO_ESTANCIA"].replace(",", "."));
    if (!isNaN(precio) && precio !== 0) {
      importeTotal += precio;
      precio = parseFloat(precios["PRECIO_SUPLETORIO"].replace(",", "."));
      importeTotal +=
        reserva["SUPLETORIO"] === "S" && !isNaN(precio) ? precio : 0;
      precio = parseFloat(precios["PRECIO_USO_INDIVIDUAL"].replace(",", "."));
      importeTotal +=
        reserva["USO_INDIVIDUAL"] === "S" && !isNaN(precio) ? precio : 0;
      precio = parseFloat(precios["PRECIO_CUNA"].replace(",", "."));
      importeTotal += reserva["CUNA"] === "S" && !isNaN(precio) ? precio : 0;
      precio = parseFloat(precios["PRECIO_MASCOTA"].replace(",", "."));
      importeTotal += reserva["MASCOTA"] === "S" && !isNaN(precio) ? precio : 0;
      precio = parseFloat(precios["PRECIO_3_HUESPED"].replace(",", "."));
      importeTotal +=
        reserva["3_HUESPED"] === "S" && !isNaN(precio) ? precio : 0;
      precio = parseFloat(precios["PRECIO_4_HUESPED"].replace(",", "."));
      importeTotal +=
        reserva["4_HUESPED"] === "S" && !isNaN(precio) ? precio : 0;
      precio =
        parseFloat(precios["PRECIO_NINO"].replace(",", ".")) *
        numNoches *
        parseInt(reserva["CANT_SUPLEMENTO_NINO"]);
      importeTotal += reserva["NINO"] === "S" && !isNaN(precio) ? precio : 0;
    }
  }

  return importeTotal;
}

//devuelve un array con todas las habitaciones y suplementos seleccionados
function lanGetReservasSeleccionadas() {
  var reservas = [];

  $(".lan-select-num-habitaciones").each(function () {
    var numHabitaciones = parseInt($(this).val());
    if (!isNaN(numHabitaciones) && numHabitaciones !== 0) {
      var idParams = lanGetParamsFromId(
        $(this).prop("id"),
        "lan-select-num-habitaciones-"
      );

      var tipoHabitacion = lanBuscarElementoPorId(
        lanHabitaciones,
        "TIPOHAB_",
        idParams[0]
      );
      var tarifa = lanBuscarElementoPorId(
        tipoHabitacion["TARIFAS"],
        "TARIFA_",
        idParams[1]
      );
      var regimen = lanBuscarElementoPorId(
        tarifa["REGIMENES"],
        "REGIMEN_",
        idParams[2]
      );

      for (var i = 1; i <= numHabitaciones; i++) {
        var reserva = {};
        reserva["SUPLEMENTOS"] = [];
        reserva["GASTOS"] = [];

        reserva["TIPOHAB_"] = idParams[0];
        reserva["DESCRIPCION_TIPOHAB"] = tipoHabitacion["DESCRIPCION"];
        reserva["TARIFA_"] = idParams[1];
        reserva["DESCRIPCION_TARIFA"] = tarifa["NOMBRE_TARIFA"];
        reserva["REGIMEN_"] = idParams[2];
        reserva["DESCRIPCION_REGIMEN"] = regimen["NOMBRE_REGIMEN"];

        //suplementos
        var idDivSuplementos =
          lanGetIdFromParams(idParams, "lan-div-suplementos-") + "-" + i;
        var idCheckbox =
          lanGetIdFromParams(idParams, "lan-checkbox-suplementos-") + "-" + i;
        var idSelect =
          lanGetIdFromParams(idParams, "lan-select-suplementos-") + "-" + i;
        var idCheckboxGasto =
          lanGetIdFromParams(idParams, "lan-checkbox-gastos-") + "-" + i;
        var idSelectGasto =
          lanGetIdFromParams(idParams, "lan-select-gastos-") + "-" + i;

        //Deberemos de recorrer un suplemento por cada uno de los que tiene disponibles la habitación parara ver si está marcado o no
        for (var j = 0; j < tipoHabitacion["SUPLEMENTOS"].length; j++) {
          if (
            $(
              "#" +
                idDivSuplementos +
                ' *[id="' +
                idCheckbox +
                "-" +
                tipoHabitacion["SUPLEMENTOS"][j]["SUPLEMENTO_"] +
                '"]:checked'
            ).length > 0
          ) {
            var suplemento = {};
            suplemento["SUPLEMENTO_"] =
              tipoHabitacion["SUPLEMENTOS"][j]["SUPLEMENTO_"];
            //Por defecto pasamos 1 como cantidad
            suplemento["CANTIDAD"] = 1;
            reserva["SUPLEMENTOS"].push(suplemento);
          } else if (
            $(
              "#" +
                idDivSuplementos +
                ' *[id="' +
                idSelect +
                "-" +
                tipoHabitacion["SUPLEMENTOS"][j]["SUPLEMENTO_"] +
                '"] option:selected'
            ).text() > 0
          ) {
            var suplemento = {};
            suplemento["SUPLEMENTO_"] =
              tipoHabitacion["SUPLEMENTOS"][j]["SUPLEMENTO_"];
            //Por defecto pasamos 1 como cantidad
            suplemento["CANTIDAD"] = parseInt(
              $(
                "#" +
                  idDivSuplementos +
                  ' *[id="' +
                  idSelect +
                  "-" +
                  tipoHabitacion["SUPLEMENTOS"][j]["SUPLEMENTO_"] +
                  '"] option:selected'
              ).text()
            );
            reserva["SUPLEMENTOS"].push(suplemento);
          }
        }

        //Recorremos los gastos
        for (var j = 0; j < tipoHabitacion["GASTOS"].length; j++) {
          if (
            $(
              "#" +
                idDivSuplementos +
                ' *[id="' +
                idCheckboxGasto +
                "-" +
                tipoHabitacion["GASTOS"][j]["ARTICULO_"] +
                '"]:checked'
            ).length > 0
          ) {
            var gasto = {};
            gasto["ARTICULO_"] = tipoHabitacion["GASTOS"][j]["ARTICULO_"];
            //Por defecto pasamos 1 como cantidad
            gasto["CANTIDAD"] = 1;
            gasto["PRECIO"] = tipoHabitacion["GASTOS"][j]["TARIFA1"];
            reserva["GASTOS"].push(gasto);
          } else if (
            $(
              "#" +
                idDivSuplementos +
                ' *[id="' +
                idSelectGasto +
                "-" +
                tipoHabitacion["GASTOS"][j]["ARTICULO_"] +
                '"] option:selected'
            ).text() > 0
          ) {
            var gasto = {};
            gasto["ARTICULO_"] = tipoHabitacion["SUPLEMENTOS"][j]["ARTICULO_"];
            //Por defecto pasamos 1 como cantidad
            gasto["CANTIDAD"] = parseInt(
              $(
                "#" +
                  idDivSuplementos +
                  ' *[id="' +
                  idSelectGasto +
                  "-" +
                  tipoHabitacion["GASTO"][j]["ARTICULO_"] +
                  '"] option:selected'
              ).text()
            );
            gasto["PRECIO"] = tipoHabitacion["GASTOS"][j]["TARIFA1"];
            reserva["GASTOS"].push(suplemento);
          }
        }

        //suplemento niños
        var idSelect =
          lanGetIdFromParams(idParams, "lan-select-num-ninos-") + "-" + i;
        var selectNumNinos = $(
          "#" + idDivSuplementos + ' *[id="' + idSelect + '"]'
        );
        var numSuplementoNinos = 0;
        if (selectNumNinos.length > 0) {
          numSuplementoNinos = parseInt(
            $("#" + idDivSuplementos + ' *[id="' + idSelect + '"]').val()
          );
          if (isNaN(numSuplementoNinos)) numSuplementoNinos = 0;
        }
        reserva["NINO"] = numSuplementoNinos > 0 ? "S" : "N";
        reserva["CANT_SUPLEMENTO_NINO"] = numSuplementoNinos;

        //Debemos de recorrer los suplementos que tienen opciones para > 1 unidad

        //niños
        var numNinos = 0;
        reserva["NUM_NINOS"] = numNinos;

        //adultos
        var numAdultos = 1;
        reserva["NUM_ADULTOS"] = numAdultos;

        reservas.push(reserva);
      }
    }
  });

  return reservas;
}

function lanGetHtmlImagenesTipo(tipoHabitacion) {
  var htmlImagenes = "";
  var imagenes = lanImagenesTiposHabitacion[tipoHabitacion["TIPOHAB_"]];
  if (imagenes) {
    for (var i = 0; i < imagenes.length; i++) {
      if (imagenes.length > 1) {
        if (i === 0)
          htmlImagenes +=
            '<a href="' +
            lanHotelanWebRoot +
            "/" +
            imagenes[i + 1] +
            '" rel="lan-grupo-imagenes-' +
            tipoHabitacion["TIPOHAB_"] +
            '" class="lan-grupo-imagenes"><img src="' +
            lanHotelanWebRoot +
            "/" +
            imagenes[i] +
            '" /></a>';
        else if (i < imagenes.length - 1)
          htmlImagenes +=
            '<a href="' +
            lanHotelanWebRoot +
            "/" +
            imagenes[i + 1] +
            '" rel="lan-grupo-imagenes-' +
            tipoHabitacion["TIPOHAB_"] +
            '" class="lan-grupo-imagenes"></a>';
      } else {
        htmlImagenes +=
          '<img src="' + lanHotelanWebRoot + "/" + imagenes[i] + '" />';
      }
    }
  }
  return htmlImagenes;
}

function lanGetHtmlHabitacionesLibresTipo(tipoHabitacion) {
  if (idiomaSeleccionado === "es") {
    var html =
      '<div class="lan-div-tipo-hab" id="lan-div-tipo-hab-"' +
      tipoHabitacion["TIPOHAB_"] +
      '">' +
      '<div class="lan-div-tipo-hab-desc"><h3>' +
      tipoHabitacion["DESCRIPCION"] +
      "</h3><p>" +
      '' +
      ' </p></div>' +
      '<div class="lan-div-tipo-hab-img">' +
      lanGetHtmlImagenesTipo(tipoHabitacion) +
      "</div>" +
      '<div class="lan-clear"></div>' +
      "</div>";
  } else {
    var html =
      '<div class="lan-div-tipo-hab" id="lan-div-tipo-hab-"' +
      tipoHabitacion["TIPOHAB_"] +
      '">' +
      '<div class="lan-div-tipo-hab-desc"><h3>' +
      tipoHabitacion["DESCRIPCION"] +
      "</h3><p>" +
       +
      ' </p></div>' +
      '<div class="lan-div-tipo-hab-img">' +
      lanGetHtmlImagenesTipo(tipoHabitacion) +
      "</div>" +
      '<div class="lan-clear"></div>' +
      "</div>";
  }

  return html;
}

function lanGetHtmlTarifa(tipoHabitacion, tarifa) {
  return (
    '<div class="lan-div-tarifa" id="lan-div-tarifa-' +
    tipoHabitacion["TIPOHAB_"] +
    "-" +
    tarifa["TARIFA_"] +
    '">' +
    tarifa["NOMBRE_TARIFA"] +
    "</div>"
  );
}

//régimen, precio, selector de número de habitaciones, detalles
function lanGetHtmlRegimen(tipoHabitacion, tarifa, regimen) {
  var precioEstancia = lanCalcularPrecioHabitacionPorNoche(
    regimen["PRECIOS"]["PRECIO_ESTANCIA"]
  ).toFixed(2);
  var html;
  if (idiomaSeleccionado === "es") {
    html =
      '<div class="lan-div-regimen" id="lan-div-regimen-' +
      tipoHabitacion["TIPOHAB_"] +
      "-" +
      tarifa["TARIFA_"] +
      "-" +
      regimen["REGIMEN_"] +
      '">' +
      '<div class="lan-div-regimen-inner">' +
      '<span class="lan-span-regimen-1">' +
      regimen["NOMBRE_REGIMEN"] +
      "</span>" +
      '<span class="lan-span-regimen-2"><span class="lang" key="habitaciones">Habitaciones:</span> ' +
      lanGetHtmlSeleccionNumHabitaciones(tipoHabitacion, tarifa, regimen) +
      "</span>" +
      '<span class="lan-span-regimen-3"><span class="lang" key="precio_noche">Precio noche:</span> <span class="lan-span-regimen-3-precio">' +
      precioEstancia +
      " €</span></span>" +
      '<div class="lan-clear"></div>' +
      "</div>" +
      '<div class="lan-div-suplementos" id="lan-div-suplementos-' +
      tipoHabitacion["TIPOHAB_"] +
      "-" +
      tarifa["TARIFA_"] +
      "-" +
      regimen["REGIMEN_"] +
      '"></div>' +
      "</div>";
  } else {
    html =
      '<div class="lan-div-regimen" id="lan-div-regimen-' +
      tipoHabitacion["TIPOHAB_"] +
      "-" +
      tarifa["TARIFA_"] +
      "-" +
      regimen["REGIMEN_"] +
      '">' +
      '<div class="lan-div-regimen-inner">' +
      '<span class="lan-span-regimen-1">' +
      regimen["NOMBRE_REGIMEN"] +
      "</span>" +
      '<span class="lan-span-regimen-2"><span class="lang" key="habitaciones">Rooms:</span> ' +
      lanGetHtmlSeleccionNumHabitaciones(tipoHabitacion, tarifa, regimen) +
      "</span>" +
      '<span class="lan-span-regimen-3"><span class="lang" key="precio_noche">Night price:</span> <span class="lan-span-regimen-3-precio">' +
      precioEstancia +
      " €</span></span>" +
      '<div class="lan-clear"></div>' +
      "</div>" +
      '<div class="lan-div-suplementos" id="lan-div-suplementos-' +
      tipoHabitacion["TIPOHAB_"] +
      "-" +
      tarifa["TARIFA_"] +
      "-" +
      regimen["REGIMEN_"] +
      '"></div>' +
      "</div>";
  }

  return html;
}

function lanGetHtmlSeleccionNumHabitaciones(tipoHabitacion, tarifa, regimen) {
  var habitacionesDisponiblesPorTipo = parseInt(
    tipoHabitacion["HABITACIONES_LIBRES"]
  );

  var idSelect =
    "lan-select-num-habitaciones-" +
    tipoHabitacion["TIPOHAB_"] +
    "-" +
    tarifa["TARIFA_"] +
    "-" +
    regimen["REGIMEN_"];
  var html =
    '<select class="lan-select-num-habitaciones" id="' + idSelect + '">';
  for (var i = 0; i <= habitacionesDisponiblesPorTipo; i++) {
    html += '<option value="' + i + '">' + i + "</option>";
  }
  html += "</select>";
  return html;
}

function lanGetHtmlSeleccionSuplementos(
  tipoHabitacion,
  tarifa,
  regimen,
  numHabitacion
) {
  var idCheckbox =
    "lan-checkbox-suplementos-" +
    tipoHabitacion["TIPOHAB_"] +
    "-" +
    tarifa["TARIFA_"] +
    "-" +
    regimen["REGIMEN_"] +
    "-" +
    numHabitacion;
  var idSelect =
    "lan-select-suplementos-" +
    tipoHabitacion["TIPOHAB_"] +
    "-" +
    tarifa["TARIFA_"] +
    "-" +
    regimen["REGIMEN_"] +
    "-" +
    numHabitacion;
  var idSelectGasto =
    "lan-select-gastos-" +
    tipoHabitacion["TIPOHAB_"] +
    "-" +
    tarifa["TARIFA_"] +
    "-" +
    regimen["REGIMEN_"] +
    "-" +
    numHabitacion;
  var idCheckboxGasto =
    "lan-checkbox-gastos-" +
    tipoHabitacion["TIPOHAB_"] +
    "-" +
    tarifa["TARIFA_"] +
    "-" +
    regimen["REGIMEN_"] +
    "-" +
    numHabitacion;
  var html =
    '<div class="lan-div-suplementos-habitacion" id="lan-div-suplementos-' +
    tipoHabitacion["TIPOHAB_"] +
    "-" +
    tarifa["TARIFA_"] +
    "-" +
    regimen["REGIMEN_"] +
    "-" +
    numHabitacion +
    '">';
  var numNoches = lanCalcularNumNochesReserva();
  if (idiomaSeleccionado === "es") {
    html +=
      '<div class="lan-div-suplemento"><h5><span class="lang" key="opciones_habitacion">Opciones habitación </span>' +
      numHabitacion +
      ":</h5></div>";
  } else {
    html +=
      '<div class="lan-div-suplemento"><h5><span class="lang" key="opciones_habitacion">Options room </span>' +
      numHabitacion +
      ":</h5></div>";
  }

  //adultos
  /*html += '<div class="lan-div-suplemento"><select class="lan-select-num-adultos" id="' + idSelect + '">';
  //var maximoAdultos = Math.max(parseInt(tipoHabitacion["ADMITE_MAXIMO_ADULTOS"]), 1);
  var maximoAdultos = Math.max(parseInt(tarifa["DATOS_TARIFA"][0]["MAXIMO_ADULTOS"]), 1);
  for(var i = 0; i <= maximoAdultos; i++) {
    html += '<option value="' + i + '">' + i + '</option>';
  }
  html += '</select><span class="lan-span-num-adultos">Adultos</span></div>';*/
  for (var i = 0; i < tipoHabitacion["SUPLEMENTOS"].length; i++) {
    let suplemento = tipoHabitacion["SUPLEMENTOS"][i];
    //TODO
    let precio = 0;
    //Recorremos los suplementos y asignamos el precio correspondiente
    for (var j = 0; j < regimen["PRECIOS"]["PRECIOS_SUPLEMENTOS"].length; j++) {
      if (
        regimen["PRECIOS"]["PRECIOS_SUPLEMENTOS"][j]["SUPLEMENTO_"] ==
        suplemento.SUPLEMENTO_
      ) {
        precio = regimen["PRECIOS"]["PRECIOS_SUPLEMENTOS"][j]["PRECIO"];
        break;
      }
    }

    if (suplemento["CANTIDAD_MAXIMA"] > 1) {
      html +=
        '<div class="lan-div-suplemento"><select class="lan-select-suplementos" id="' +
        idSelect +
        "-" +
        suplemento.SUPLEMENTO_ +
        '">';
      var maxCantidad = suplemento["CANTIDAD_MAXIMA"];
      for (var k = 0; k <= maxCantidad; k++) {
        html += '<option value="' + k + '">' + k + "</option>";
      }
      html +=
        '</select><span class="lan-span-num-ninos">' +
        suplemento["SUPLEMENTO"] +
        " (" +
        precio +
        " €) ()</span></div>";
    } else {
      html +=
        '<div class="lan-div-suplemento"><input type="checkbox" class="lan-checkbox-suplementos" id="' +
        idCheckbox +
        "-" +
        suplemento.SUPLEMENTO_ +
        '" name="' +
        idCheckbox +
        "-" +
        suplemento.SUPLEMENTO_ +
        '"/><label for="' +
        idCheckbox +
        "-" +
        suplemento.SUPLEMENTO_ +
        '"><span class="lang" key="' +
        suplemento.SUPLEMENTO_ +
        '">' +
        suplemento.SUPLEMENTO +
        "</span> (" +
        precio +
        " €)</label></div>";
    }
  }

  //Recorremos los gastos
  for (let index = 0; index < tipoHabitacion["GASTOS"].length; index++) {
    let gasto = tipoHabitacion["GASTOS"][index];
    html +=
      '<div class="lan-div-suplemento"><input type="checkbox" class="lan-checkbox-suplementos" id="' +
      idCheckboxGasto +
      "-" +
      gasto.ARTICULO_ +
      '" name="' +
      idCheckboxGasto +
      "-" +
      gasto.ARTICULO_ +
      '"/><label for="' +
      idCheckboxGasto +
      "-" +
      gasto.ARTICULO_ +
      '"><span class="lang" key="' +
      gasto.ARTICULO_ +
      '">' +
      gasto.NOMBRE +
      "</span> (" +
      gasto.TARIFA1 +
      " €)</label></div>";
  }

  html += '<div class="lan-clear"></div>';
  html += "</div>";
  return html;
}

//mostrar suplementos y precio al seleccionar número de habitaciones
function lanConfigurarSelectNumHabitaciones(element) {
  $(element).data("anterior", "0");

  $(element).change(function () {
    var idParams = lanGetParamsFromId(
      $(this).prop("id"),
      "lan-select-num-habitaciones-"
    );
    var idDivSuplementos = lanGetIdFromParams(idParams, "lan-div-suplementos-");
    var tipoHabitacion = lanBuscarElementoPorId(
      lanHabitaciones,
      "TIPOHAB_",
      idParams[0]
    );
    var tarifa = lanBuscarElementoPorId(
      tipoHabitacion["TARIFAS"],
      "TARIFA_",
      idParams[1]
    );
    var regimen = lanBuscarElementoPorId(
      tarifa["REGIMENES"],
      "REGIMEN_",
      idParams[2]
    );
    var habitacionesSeleccionadasPorTipo =
      lanCalcularHabitacionesSeleccionadasPorTipo(tipoHabitacion["TIPOHAB_"]);
    var habitacionesDisponiblesPorTipo = parseInt(
      tipoHabitacion["HABITACIONES_LIBRES"]
    );
    var numHabitaciones = parseInt($(this).val());
    var numHabitacionesAnterior = parseInt($(this).data("anterior"));

    //eliminar divs sobrantes de suplementos si se selecciona un número menor de habitaciones
    for (var i = numHabitaciones + 1; i <= numHabitacionesAnterior; i++) {
      $("#" + idDivSuplementos + "-" + i).remove();
    }

    //añadir nuevos divs de suplementos
    for (var i = numHabitacionesAnterior + 1; i <= numHabitaciones; i++) {
      $("#" + idDivSuplementos).append(
        lanGetHtmlSeleccionSuplementos(tipoHabitacion, tarifa, regimen, i)
      );

      //actualizar resumen al modificar los suplementos
      var idCheckbox =
        lanGetIdFromParams(idParams, "lan-checkbox-suplementos-") + "-" + i;
      var idSelect =
        lanGetIdFromParams(idParams, "lan-select-suplementos-") + "-" + i;
      var idCheckboxGasto =
        lanGetIdFromParams(idParams, "lan-checkbox-gastos-") + "-" + i;
      var idSelectGasto =
        lanGetIdFromParams(idParams, "lan-select-gastos-") + "-" + i;
      $(
        "#" +
          idDivSuplementos +
          ' *[id^="' +
          idCheckbox +
          '"]' +
          ", #" +
          idDivSuplementos +
          ' *[id^="' +
          idSelect +
          '"]'
      ).each(function () {
        $(this).change(function () {
          lanSeleccionHabitacionesModificada = true;
          lanActualizarResumen();
        });
      });
      //Gastos
      $(
        "#" +
          idDivSuplementos +
          ' *[id^="' +
          idCheckboxGasto +
          '"]' +
          ", #" +
          idDivSuplementos +
          " #" +
          idSelectGasto
      ).each(function () {
        $(this).change(function () {
          lanSeleccionHabitacionesModificada = true;
          lanActualizarResumen();
        });
      });
    }
    lanResizeContents();

    //modificar todos los selects una vez seleccionado el actual para que muestren el máximo de habitaciones menos las ya seleccionadas
    $(
      '*[id^="lan-select-num-habitaciones-' + tipoHabitacion["TIPOHAB_"] + '"]'
    ).each(function () {
      var numHabitacionesAnterior = parseInt($(this).val());
      $(this).empty();
      var totalHabitaciones = Math.max(
        habitacionesDisponiblesPorTipo -
          habitacionesSeleccionadasPorTipo +
          numHabitacionesAnterior,
        numHabitacionesAnterior
      );
      for (var i = 0; i <= totalHabitaciones; i++)
        $(this).append('<option value="' + i + '">' + i + "</option>");
      $(this).val(numHabitacionesAnterior);
    });

    $(this).data("anterior", $(this).val());
    lanSeleccionHabitacionesModificada = true;
    lanActualizarResumen();
  });

  $(element).val("0");
}

function lanActualizarResumen() {
  var fechaEntrada = $("#lan-fecha-entrada").val();
  var fechaSalida = $("#lan-fecha-salida").val();
  $("#lan-resumen-fecha-entrada").text(fechaEntrada);
  $("#lan-resumen-fecha-salida").text(fechaSalida);
  $("#lan-resumen-num-noches").text(lanCalcularNumNochesReserva());
  if (lanMostrarTotalAlmacenado)
    lanMostrarImporteTotal($("#lan-resumen-span-importe-total"));
  else
    lanMostrarImporteTotalServidor(
      fechaEntrada,
      fechaSalida,
      $("#lan-resumen-span-importe-total"),
      $("#lan-loader-resumen")
    );
}

function lanConfirmarGuardarReserva() {
  var cabecera = {};
  var datosCliente = {};

  $(
    "#lan-boton-datos-cliente-siguiente, #lan-boton-datos-cliente-siguiente-abajo"
  ).prop("disabled", true);

  var importeTotalMostrado = $("#lan-resumen-span-importe-total").text();
  importeTotalMostrado = parseFloat(importeTotalMostrado);
  if (isNaN(importeTotalMostrado)) {
    parent
      .$("#lan-dialogo-info-1")
      .html(
        "<p >" + arrLang[idiomaSeleccionado]["error_importe_total"] + "</p>"
      )
      .dialog("open");
    $(
      "#lan-boton-datos-cliente-siguiente, #lan-boton-datos-cliente-siguiente-abajo"
    ).prop("disabled", false);
    return;
  }

  if (!lanValidarDatosReserva()) {
    $(
      "#lan-boton-datos-cliente-siguiente, #lan-boton-datos-cliente-siguiente-abajo"
    ).prop("disabled", false);
    return;
  }

  //cabecera = titular--telefono--fechares--deposito--plazoanul--impanul
  cabecera["titular"] = $("#lan-cli-titular").val();
  cabecera["telefono"] = $("#lan-cli-telefono-contacto").val();
  cabecera["fechares"] = "";
  cabecera["deposito"] = 0;
  cabecera["plazoanul"] = 0;
  cabecera["impanul"] = 0;
  cabecera["observaciones"] = $("#lan-cli-observaciones-reserva").val();

  //datosCliente = tipodoc--numdoc--fechaexp--nombre--ape1--ape2--sexo--fechanac--paisnac--direc--pobl--prov--auton--pais--tfijo--tmov--codpostal--email--tipotarj--numtarj--cadtarj
  datosCliente["tipodoc"] = $("#lan-cli-tipo-doc").val();
  datosCliente["numdoc"] = $("#lan-cli-num-doc").val();
  datosCliente["fechaexp"] = $("#lan-cli-doc-id-fecha-expedicion").val();
  datosCliente["nombre"] = $("#lan-cli-nombre").val();
  datosCliente["ape1"] = $("#lan-cli-primer-apellido").val();
  datosCliente["ape2"] = $("#lan-cli-segundo-apellido").val();
  datosCliente["sexo"] = $("#lan-cli-sexo").val();
  datosCliente["fechanac"] = $("#lan-cli-fecha-nacimiento").val();
  datosCliente["paisnac"] = $("#lan-cli-pais-nacimiento").val();
  datosCliente["direc"] = $("#lan-cli-direccion").val();
  datosCliente["pobl"] = $("#lan-cli-poblacion").val();
  datosCliente["prov"] = $("#lan-cli-provincia").val();
  datosCliente["auton"] = $("#lan-cli-autonomia").val();
  datosCliente["pais"] = $("#lan-cli-pais-residencia").val();
  datosCliente["tfijo"] = $("#lan-cli-telefono").val();
  datosCliente["tmov"] = $("#lan-cli-telefono-movil").val();
  datosCliente["codpostal"] = $("#lan-cli-cod-postal").val();
  datosCliente["email"] = $("#lan-cli-email").val();
  datosCliente["tipotarj"] = $("#lan-cli-tipo-tarjeta").val();
  datosCliente["numtarj"] = $("#lan-cli-numero-tarjeta").val();
  datosCliente["cadtarj"] = $("#lan-cli-fecha-caducidad-tarjeta")
    .val()
    .concat("--");

  //detalles = [tipohab--reg--fentrada--fsalida--supl--ind--cuna--masc--3h--4h--suplnino--cantnino--comensales--numninos--numadultos--precioestancia--preciosupl--precioind--preciocuna--preciomascota--precio3h--precio4h--precionino][...]
  //en lugar de los detalles, se pasan las reservas marcadas y el servidor se encarga de especificar todos los detalles y precios
  var reservas = lanGetReservasSeleccionadas();

  $(
    "#lan-resumen-texto-guardando-reserva, #lan-resumen-texto-guardando-reserva-abajo"
  ).show();
  $("#lan-loader-resumen-abajo").show();
  lanResizeContents();
  $("#lan-loader-resumen").show(
    "fade",
    { easing: "easeOutExpo" },
    100,
    function () {
      $.when(
        lanGuardarReserva(
          $("#lan-fecha-entrada").val(),
          $("#lan-fecha-salida").val(),
          cabecera,
          datosCliente,
          reservas,
          importeTotalMostrado,
          idiomaSeleccionado
        )
      ).then(function (resultadoAux) {
        if (resultadoAux.length > 0) {
          var resultado = JSON.parse(
            typeof resultadoAux === "string" ? resultadoAux : "{}"
          );

          if (resultado["error"]) {
            parent
              .$("#lan-dialogo-info-1")
              .html("<p>" + resultado["error"] + "</p>")
              .dialog("open");
            $(
              "#lan-boton-datos-cliente-siguiente, #lan-boton-datos-cliente-siguiente-abajo"
            ).prop("disabled", false);
          } else if (resultado["resultado"] && resultado["pdf"]) {
            $("#lan-div-introduccion-datos").hide(
              "fade",
              { direction: "left", easing: "easeInOutSine" },
              300,
              function () {
                
            $.when(lanEnviarPago(resultado["resultado"],importeTotalMostrado.toFixed(2),datosCliente["email"]+"||"+datosCliente["nombre"]+" "+datosCliente["ape1"]+datosCliente["ape2"]+"||"+$("#lan-fecha-entrada").val()+"||"+$("#lan-fecha-salida").val()+"||"+cabecera["telefono"]+"||"+idiomaSeleccionado)).then(function(resultadoPago) {
                $("#lan-pasarela-pago").html(resultadoPago);
                //Realizamos pago
                $("#clickButton").click();
            });
          /*
                lanMostrarReservaConfirmada(
                  $("#lan-fecha-entrada").val(),
                  $("#lan-fecha-salida").val(),
                  resultado,
                  cabecera,
                  datosCliente,
                  reservas,
                  importeTotalMostrado
                );*/
              }
            );
          } else {
            parent
              .$("#lan-dialogo-info-1")
              .html(
                "<p>" +
                  arrLang[idiomaSeleccionado]["error_reserva"] +
                  "</p>" +
                  "<p>" +
                  resultado +
                  "</p>" +
                  "<p>" +
                  arrLang[idiomaSeleccionado]["contacto_email"] +
                  "</p>"
              )
              .dialog("open");
            $(
              "#lan-boton-datos-cliente-siguiente, #lan-boton-datos-cliente-siguiente-abajo"
            ).prop("disabled", false);
          }
        } else {
          parent
            .$("#lan-dialogo-info-1")
            .html(
              "<p>" +
                arrLang[idiomaSeleccionado]["error_sin_respuesta"] +
                "</p>"
            )
            .dialog("open");
          $(
            "#lan-boton-datos-cliente-siguiente, #lan-boton-datos-cliente-siguiente-abajo"
          ).prop("disabled", false);
        }

        $("#lan-resumen-texto-guardando-reserva").hide();
        $("#lan-resumen-texto-guardando-reserva-abajo").hide();
        $("#lan-loader-resumen, #lan-loader-resumen-abajo").hide(
          "blind",
          { direction: "up", easing: "easeOutExpo" },
          300
        );
      });
    }
  );
}

function lanMostrarReservaConfirmada(
  fechaEntrada,
  fechaSalida,
  resultado,
  cabecera,
  datosCliente,
  reservas,
  importeTotalMostrado
) {
  $("#lan-reserva-confirmada-titular").text(cabecera["titular"]);
  $("#lan-reserva-confirmada-codigo").text(resultado["resultado"]);
  $("#lan-reserva-confirmada-fecha-entrada").text(fechaEntrada);
  $("#lan-reserva-confirmada-fecha-salida").text(fechaSalida);
  var detalles = "";
  for (var i = 0; i < reservas.length; i++) {
    detalles +=
      reservas[i]["DESCRIPCION_TIPOHAB"] +
      " (" +
      reservas[i]["DESCRIPCION_REGIMEN"] +
      ")" +
      "<br />";
  }
  $("#lan-div-reserva-confirmada-detalles").html(detalles);
  $("#lan-reserva-confirmada-importe-total").html(
    importeTotalMostrado.toFixed(2) + " €"
  );

  $("#lan-generar-pdf-reserva").click(function () {
    $("#lan-pdf-pdf").val(resultado["pdf"]);
    //$("#lan-pdf-filename").val("confirmacion-reserva-" + fechaEntrada + ".PDF");
    $("#lan-form-pdf").prop(
      "action",
      lanHotelanWebRoot +
        "/include/descargar-pdf.php?lan-pdf-filename=confirmacion-reserva-" +
        fechaEntrada +
        ".PDF"
    );
    $("#lan-form-pdf").submit();
  });

  parent.window.scrollTo(0, 0);
  $("#lan-div-reserva-confirmada").show(
    "fade",
    { direction: "left", easing: "easeInOutSine" },
    300,
    function () {
      lanResizeContents();
    }
  );
}

function lanValidarDatosReserva() {
  if (!recaptchaVal) {
    //parent.$("#lan-dialogo-info-1").html("<p>La verificación del captcha no se ha realizado correctamente.</p>").dialog("open");
    $("#lan-error-captcha").show("fade", { easing: "easeOutExpo" }, 100);
    return false;
  }

  if ($("#lan-cli-pais-residencia").val() !== "") {
    if ($("#lan-cli-provincia").val() !== "") {
      //Comprobamos si la provincia corresponde con el pais
      if (
        $("#lan-cli-provincia :selected").data("pais") !=
        $("#lan-cli-pais-residencia").val()
      ) {
        parent
          .$("#lan-dialogo-info-1")
          .html(
            "<p>" + arrLang[idiomaSeleccionado]["provincia_no_pais"] + "</p>"
          )
          .dialog("open");
        $("#lan-cli-pais-residencia").focus();
        return false;
      }
    }
  }
  if ($("#lan-cli-nombre").val() === "") {
    parent
      .$("#lan-dialogo-info-1")
      .html("<p>" + arrLang[idiomaSeleccionado]["cliente_vacio"] + "</p>")
      .dialog("open");
    $("#lan-cli-nombre").focus();
    return false;
  }
  if ($("#lan-cli-primer-apellido").val() === "") {
    parent
      .$("#lan-dialogo-info-1")
      .html(
        "<p>" + arrLang[idiomaSeleccionado]["primer_apellido_vacio"] + "</p>"
      )
      .dialog("open");
    $("#lan-cli-primer-apellido").focus();
    return false;
  }
  if (
    $("#lan-cli-email").val() === "" ||
    !lanValidarEmail($("#lan-cli-email").val())
  ) {
    parent
      .$("#lan-dialogo-info-1")
      .html("<p>" + arrLang[idiomaSeleccionado]["email_no_valido"] + "</p>")
      .dialog("open");
    $("#lan-cli-email").focus();
    return false;
  }
  if ($("#lan-cli-tipo-doc").val() === "") {
    parent
      .$("#lan-dialogo-info-1")
      .html(
        "<p>" + arrLang[idiomaSeleccionado]["tipo_documento_no_valido"] + "</p>"
      )
      .dialog("open");
    $("#lan-cli-tipo-doc").focus();
    return false;
  }
  if ($("#lan-cli-num-doc").val() === "") {
    parent
      .$("#lan-dialogo-info-1")
      .html(
        "<p>" + arrLang[idiomaSeleccionado]["numero_documento_vacio"] + "</p>"
      )
      .dialog("open");
    $("#lan-cli-num-doc").focus();
    return false;
  }
  if ($("#lan-cli-titular").val() === "") {
    parent
      .$("#lan-dialogo-info-1")
      .html("<p>" + arrLang[idiomaSeleccionado]["titular_vacio"] + "</p>")
      .dialog("open");
    $("#lan-cli-titular").focus();
    return false;
  }
  if ($("#lan-cli-telefono-contacto").val().trim() === "") {
    parent
      .$("#lan-dialogo-info-1")
      .html("<p>" + arrLang[idiomaSeleccionado]["telefono_vacio"] + "</p>")
      .dialog("open");
    $("#lan-cli-telefono-contacto").focus();
    return false;
  }
  if (
    $("#lan-cli-checkbox-politica-privacidad").length !== 0 &&
    !$("#lan-cli-checkbox-politica-privacidad").is(":checked")
  ) {
    parent
      .$("#lan-dialogo-info-1")
      .html(
        "<p>" +
          arrLang[idiomaSeleccionado]["aceptar_politica_privacidad"] +
          "</p>"
      )
      .dialog("open");
    $("#lan-cli-checkbox-politica-privacidad").focus();
    return false;
  }

  if (
    $("#lan-cli-numero-tarjeta").length !== 0 &&
    !lanValidarTarjeta($("#lan-cli-numero-tarjeta").val())
  ) {
    parent
      .$("#lan-dialogo-info-1")
      .html("<p>El número de tarjeta de crédito no es correcto.</p>")
      .dialog("open");
    return false;
  }

  return true;
}

function mostrarSelectsDatosCli() {
  if ($("#lan-cli-tipo-doc").val() === "") {
    $.when(lanGetTiposDocumentosIdentidadJSON()).then(function (tiposDocIdAux) {
      var tiposDocId = JSON.parse(
        typeof tiposDocIdAux === "string" ? tiposDocIdAux : "{}"
      );
      if (tiposDocId.length > 0) {
        lanSortByField(tiposDocId, "TIPO_DOCUMENTO_IDENTIDAD");
        $("#lan-cli-tipo-doc").empty();
        $("#lan-cli-tipo-doc").append(
          '<option value="">-- SELECCIONAR --</option>'
        );
        for (var iTiposDocId in tiposDocId) {
          $("#lan-cli-tipo-doc").append(
            '<option value="' +
              tiposDocId[iTiposDocId]["TIPO_DOCUMENTO_IDENTIDAD"] +
              '">' +
              tiposDocId[iTiposDocId]["TIPO_DOCUMENTO_IDENTIDAD"] +
              "</option>"
          );
          if (tiposDocId[iTiposDocId]["TIPO_DOCUMENTO_IDENTIDAD"] === "NIF - D")
            $("#lan-cli-tipo-doc").val("NIF - D").select();
        }
      }
    });
  }
  if (
    $("#lan-cli-pais-nacimiento").val() === "" &&
    $("#lan-cli-pais-residencia").val() === ""
  ) {
    $.when(lanGetPaisesJSON()).then(function (paisesAux) {
      var paises = JSON.parse(typeof paisesAux === "string" ? paisesAux : "{}");
      if (paises.length > 0) {
        lanSortByField(paises, "NOMBRE_PAIS");
        if ($("#lan-cli-pais-nacimiento").val() === "") {
          $("#lan-cli-pais-nacimiento").empty();
          $("#lan-cli-pais-nacimiento").append(
            '<option value="">-- SELECCIONAR --</option>'
          );
          for (var iPaises in paises)
            $("#lan-cli-pais-nacimiento").append(
              '<option value="' +
                paises[iPaises]["CODIGO_PAIS"] +
                '">' +
                paises[iPaises]["NOMBRE_PAIS"] +
                "</option>"
            );
        }
        if ($("#lan-cli-pais-residencia").val() === "") {
          $("#lan-cli-pais-residencia").empty();
          $("#lan-cli-pais-residencia").append(
            '<option value="">-- SELECCIONAR --</option>'
          );
          for (var iPaises in paises)
            $("#lan-cli-pais-residencia").append(
              '<option value="' +
                paises[iPaises]["CODIGO_PAIS"] +
                '">' +
                paises[iPaises]["NOMBRE_PAIS"] +
                "</option>"
            );
        }
      }
    });
  }
  if ($("#lan-cli-autonomia").val() === "") {
    $.when(lanGetAutonomiasJSON()).then(function (autonomiasAux) {
      var autonomias = JSON.parse(
        typeof autonomiasAux === "string" ? autonomiasAux : "{}"
      );
      if (autonomias.length > 0) {
        lanSortByField(autonomias, "NOMBRE_AUTONOMIA");
        $("#lan-cli-autonomia").empty();
        $("#lan-cli-autonomia").append(
          '<option value="">-- SELECCIONAR --</option>'
        );
        for (var iAutonomias in autonomias)
          $("#lan-cli-autonomia").append(
            '<option value="' +
              autonomias[iAutonomias]["CODIGO_AUTONOMIA"] +
              '">' +
              autonomias[iAutonomias]["NOMBRE_AUTONOMIA"] +
              "</option>"
          );
      }
    });
  }
  if ($("#lan-cli-provincia").val() === "") {
    $.when(lanGetProvinciasJSON()).then(function (provinciasAux) {
      var provincias = JSON.parse(
        typeof provinciasAux === "string" ? provinciasAux : "{}"
      );
      if (provincias.length > 0) {
        lanSortByField(provincias, "NOMBRE_PROVINCIA");
        $("#lan-cli-provincia").empty();
        $("#lan-cli-provincia").append(
          '<option value="">-- SELECCIONAR --</option>'
        );
        for (var iProvincias in provincias) {
          $("#lan-cli-provincia").append(
            '<option value="' +
              provincias[iProvincias]["CODIGO_PROVINCIA"] +
              '" data-autonomia="' +
              provincias[iProvincias]["CODIGO_AUTONOMIA"] +
              '" data-pais="' +
              provincias[iProvincias]["PAIS_"] +
              '">' +
              provincias[iProvincias]["NOMBRE_PROVINCIA"] +
              "</option>"
          );
        }
      }
    });
  }
  if ($("#lan-cli-tipo-tarjeta").val() === "") {
    $.when(lanGetTiposTarjetaJSON()).then(function (tiposTarjetaAux) {
      var tiposTarjeta = JSON.parse(
        typeof tiposTarjetaAux === "string" ? tiposTarjetaAux : "{}"
      );
      if (tiposTarjeta.length > 0) {
        lanSortByField(tiposTarjeta, "TIPO_TARJETA");
        $("#lan-cli-tipo-tarjeta").empty();
        $("#lan-cli-tipo-tarjeta").append(
          '<option value="">-- SELECCIONAR --</option>'
        );
        for (var iTiposTarjeta in tiposTarjeta)
          $("#lan-cli-tipo-tarjeta").append(
            '<option value="' +
              tiposTarjeta[iTiposTarjeta]["TIPO_TARJETA"] +
              '">' +
              tiposTarjeta[iTiposTarjeta]["TIPO_TARJETA"] +
              "</option>"
          );
      }
    });
  }
}

function lanReiniciarSeleccionHabitaciones() {
  var fechaEntrada = $("#lan-fecha-entrada").val();
  var fechaSalida = $("#lan-fecha-salida").val();
  var tipoSeleccionado = $("#lan-tipo-habitacion").val();

  if (fechaEntrada !== "" && fechaSalida !== "") {
    $("#lan-boton-consultar").prop("disabled", true);
    $("#lan-boton-seleccion-habitaciones-siguiente").prop("disabled", true);

    $("#lan-loader-habitaciones-libres").show(
      "fade",
      { easing: "easeOutExpo" },
      100
    );

    $("#lan-div-habitaciones-libres").hide(
      "blind",
      { direction: "up", easing: "easeOutExpo" },
      300,
      function () {
        if (idiomaSeleccionado === "es") {
          $("#lan-div-habitaciones-libres").empty();
          $("#lan-div-habitaciones-libres").append(
            '<p class="lan-info-1 lang" key="cargando_habitaciones">Cargando habitaciones. Por favor, espere unos segundos.</p>'
          );
          $("#lan-div-habitaciones-libres").show(
            "blind",
            { direction: "up", easing: "easeOutExpo" },
            700
          );
        } else {
          $("#lan-div-habitaciones-libres").empty();
          $("#lan-div-habitaciones-libres").append(
            '<p class="lan-info-1 lang" key="cargando_habitaciones">Loading rooms. Please, wait a few seconds.</p>'
          );
          $("#lan-div-habitaciones-libres").show(
            "blind",
            { direction: "up", easing: "easeOutExpo" },
            700
          );
        }
      }
    );

    $.when(
      lanGetPreciosCompleto(fechaEntrada, fechaSalida, tipoSeleccionado)
    ).then(function (preciosAux) {
      $("#lan-div-habitaciones-libres").hide(
        "blind",
        { direction: "up", easing: "easeOutExpo" },
        300,
        function () {
          lanHabitaciones = JSON.parse(
            typeof preciosAux === "string" ? preciosAux : "{}"
          );
          var numRegimenesAux = 0;

          $("#lan-div-habitaciones-libres").empty();
          if (lanHabitaciones["error"]) {
            $("#lan-div-habitaciones-libres").append(
              '<p class="lan-info-1">Error: No se ha obtenido respuesta del servidor. Por favor, inténtelo de nuevo en unos segundos o póngase en contacto con nosotros para poder resolver el problema lo antes posible. Perdone las molestias.</p>'
            );
          } else if (lanHabitaciones.length === 0) {
            $("#lan-div-habitaciones-libres").append(
              '<p class="lan-info-1">No se han encontrado habitaciones libres en las fechas seleccionadas. Inténtelo con otras fechas o tipos de habitación o póngase en contacto con nosotros.</p>'
            );
          } else {
            var tipoSeleccionado = $("#lan-tipo-habitacion").val();

            for (var iTipoHabitacion in lanHabitaciones) {
              if (
                tipoSeleccionado === "" ||
                tipoSeleccionado ===
                  lanHabitaciones[iTipoHabitacion]["TIPOHAB_"]
              ) {
                var htmlHabitacionesLibresTipo =
                  lanGetHtmlHabitacionesLibresTipo(
                    lanHabitaciones[iTipoHabitacion]
                  );
                $("#lan-div-habitaciones-libres").append(
                  htmlHabitacionesLibresTipo
                );

                function lanConfigurarGaleria() {
                  $(
                    'a[rel="lan-grupo-imagenes-' +
                      lanHabitaciones[iTipoHabitacion]["TIPOHAB_"] +
                      '"]'
                  ).fancybox({
                    transitionIn: "fade",
                    transitionOut: "fade",
                    speedIn: 500,
                    speedOut: 300,
                    overlayShow: true,
                    overlayColor: "#333",
                    margin: 20,
                    padding: 2,
                    type: "image",
                  });
                }

                function lanConfigurarGaleriaFueraIframe() {
                  var gallery = [];
                  $(
                    'a[rel="lan-grupo-imagenes-' +
                      lanHabitaciones[iTipoHabitacion]["TIPOHAB_"] +
                      '"]'
                  ).each(function (i) {
                    gallery.push({ href: this.href });
                    $(this).click(function (e) {
                      e.preventDefault();
                      parent.$.fancybox(gallery, {
                        index: i,
                        transitionIn: "fade",
                        transitionOut: "fade",
                        speedIn: 500,
                        speedOut: 300,
                        overlayShow: true,
                        overlayColor: "#333",
                        margin: 20,
                        padding: 2,
                        type: "image",
                      });
                    });
                  });
                }

                //lanConfigurarGaleria();
                lanConfigurarGaleriaFueraIframe();

                //tarifas
                for (var iTarifa in lanHabitaciones[iTipoHabitacion][
                  "TARIFAS"
                ]) {
                  var htmlTarifa = lanGetHtmlTarifa(
                    lanHabitaciones[iTipoHabitacion],
                    lanHabitaciones[iTipoHabitacion]["TARIFAS"][iTarifa]
                  );
                  $("#lan-div-habitaciones-libres").append(htmlTarifa);

                  //regímenes
                  for (var iRegimen in lanHabitaciones[iTipoHabitacion][
                    "TARIFAS"
                  ][iTarifa]["REGIMENES"]) {
                    var htmlRegimen = lanGetHtmlRegimen(
                      lanHabitaciones[iTipoHabitacion],
                      lanHabitaciones[iTipoHabitacion]["TARIFAS"][iTarifa],
                      lanHabitaciones[iTipoHabitacion]["TARIFAS"][iTarifa][
                        "REGIMENES"
                      ][iRegimen]
                    );
                    $("#lan-div-habitaciones-libres").append(htmlRegimen);
                    numRegimenesAux++;
                  }
                }
              }
            }
          }

          $("#lan-loader-habitaciones-libres").hide(
            "fade",
            { easing: "easeOutExpo" },
            300,
            function () {
              lanExtraHeight = numRegimenesAux * 100;
              lanResizeContents(10);
              $("#lan-div-habitaciones-libres").show(
                "blind",
                { direction: "up", easing: "easeOutExpo" },
                700,
                function () {
                  lanExtraHeight = 0;
                  lanResizeContents();

                  $("#lan-boton-consultar").prop("disabled", false);
                  $("#lan-boton-seleccion-habitaciones-siguiente").prop(
                    "disabled",
                    false
                  );
                  lanActualizarResumen();
                }
              );

              $(".lan-select-num-habitaciones").each(function () {
                lanConfigurarSelectNumHabitaciones($(this));
              });
            }
          );
        }
      );
    });

    $("#lan-fecha-entrada").data("anterior", $("#lan-fecha-entrada").val());
    $("#lan-fecha-salida").data("anterior", $("#lan-fecha-salida").val());
    $("#lan-tipo-habitacion").data("anterior", $("#lan-tipo-habitacion").val());
  }
}

function configurarPoliticaPrivacidad() {
  if ($("#lan-cli-link-politica-privacidad")) {
    $("#lan-cli-checkbox-politica-privacidad").prop("checked", false);
    $("#lan-cli-link-politica-privacidad").click(function () {
      parent.$.fancybox(
        lanHotelanWebRoot +
          "/personalizacion/politica-privacidad.html?t=" +
          Math.floor(Math.random() * 1000),
        {
          index: 0,
          transitionIn: "fade",
          transitionOut: "fade",
          speedIn: 500,
          speedOut: 300,
          overlayShow: true,
          overlayColor: "#333",
          margin: 20,
          padding: 2,
          type: "iframe",
        }
      );
    });
  }
}

function lanSiguienteSeleccionHabitaciones() {
  if (lanGetReservasSeleccionadas().length === 0) {
    parent
      .$("#lan-dialogo-info-1")
      .html(
        "<p>" +
          arrLang[idiomaSeleccionado]["debe_seleccionar_habitacion"] +
          "</p>"
      )
      .dialog("open");
    return;
  }

  parent.window.scrollTo(0, 0);
  mostrarSelectsDatosCli();

  $(
    "#lan-cli-fecha-nacimiento, #lan-cli-doc-id-fecha-expedicion, #lan-cli-fecha-caducidad-tarjeta"
  ).datepicker({
    dateFormat: "yy-mm-dd",
    firstDay: 1,
    minDate: "-100y",
    maxDate: "+1y",
    changeMonth: true,
    changeYear: true,
    yearRange: "-100y:+1y",
  });

  $("#lan-boton-seleccion-habitaciones-siguiente").hide();
  $(
    "#lan-boton-datos-cliente-anterior, #lan-boton-datos-cliente-siguiente"
  ).show();
  lanResizeContents(10);
  $("#lan-div-seleccion-habitaciones").hide(
    "fade",
    { direction: "left", easing: "easeInOutSine" },
    300,
    function () {
      $("#lan-div-datos-cliente").show(
        "fade",
        { direction: "left", easing: "easeInOutSine" },
        300,
        function () {
          lanResizeContents();
        }
      );
    }
  );
}

function lanAnteriorDatosCliente() {
  parent.window.scrollTo(0, 0);
  $(
    "#lan-boton-datos-cliente-anterior, #lan-boton-datos-cliente-siguiente"
  ).hide();
  $("#lan-boton-seleccion-habitaciones-siguiente").show();
  $("#lan-div-datos-cliente").hide(
    "fade",
    { direction: "right", easing: "easeInOutSine" },
    300,
    function () {
      lanResizeContents();
      $("#lan-div-seleccion-habitaciones").show(
        "fade",
        { direction: "right", easing: "easeInOutSine" },
        300
      );
    }
  );
}

function lanSiguienteDatosCliente() {
  lanConfirmarGuardarReserva();
}

function lanPreguntarReiniciarSeleccionHabitaciones() {
  if (lanSeleccionHabitacionesModificada) {
    parent
      .$("#lan-dialogo-confirmacion-1")
      .html(
        "<p>Si modifica las fechas o el tipo de habitación se perderá la selección actual de habitaciones y suplementos. ¿Seguro que desea continuar?</p>"
      )
      .dialog("open");
  } else {
    lanReiniciarSeleccionHabitaciones();
  }
}

function lanResizeContents(extraMargin) {
  extraMargin = extraMargin ? extraMargin : 0;
  var minWidth = 800;

  var w = $("#lan-div-consulta").width();
  $("#lan-div-reserva-confirmada").width(w - 50);

  //general
  if (w > minWidth) {
    $("#lan-div-resumen").width(270);
    $("#lan-div-resumen").css("margin", "8px 8px 8px 0px");
    var wResumen = $("#lan-div-resumen").outerWidth(true);

    var wDatos = w - wResumen - 26; // - extraMargin;
    $("#lan-div-seleccion-habitaciones").width(wDatos);
    $("#lan-div-datos-cliente").width(wDatos);
    $("#lan-div-habitaciones-libres").width(wDatos - 10);
    $(".lan-cli-texto-pie").css("margin", "8px 0px 8px 32%");
  } else {
    $("#lan-div-resumen").width(w - 34);
    $("#lan-div-resumen").css("margin", "0px 8px 8px 8px");

    $("#lan-div-seleccion-habitaciones").width(w - 26);
    $("#lan-div-datos-cliente").width(w - 26);
    $("#lan-div-habitaciones-libres").width(w - 36);
    $(".lan-cli-texto-pie").css("margin", "8px 0px 8px 8px");
  }

  //selección de fechas y tipo de habitación
  if ($("#lan-div-form-disponibilidad").outerWidth(true) > 710) {
    $("#lan-div-fecha-entrada").css("width", "auto");
    $("#lan-fecha-entrada").css("width", "110px");
    $("#lan-div-fecha-salida").css("width", "auto");
    $("#lan-fecha-salida").css("width", "110px");

    $("#lan-div-tipo-habitacion").css("width", "auto");
    $("#lan-div-boton-consultar").css("width", "auto");
    $("#lan-tipo-habitacion").css("width", "180px");

    $("#lan-div-boton-consultar label").show();
    $("#lan-boton-consultar").css("width", "200px");

    $("#lan-loader-habitaciones-libres").css("margin", "22px 6px 0px 0px");
    $("#lan-loader-habitaciones-libres").css("text-align", "right");
    $("#lan-loader-habitaciones-libres").css("width", "auto");
  } else {
    $("#lan-div-fecha-entrada").css("width", "47%");
    $("#lan-fecha-entrada").css("width", "95%");
    $("#lan-div-fecha-salida").css("width", "48%");
    $("#lan-fecha-salida").css("width", "95%");

    $("#lan-div-tipo-habitacion").css("width", "98%");
    $("#lan-div-tipo-habitacion").css("width", "98%");
    $("#lan-div-boton-consultar").css("width", "98%");
    $("#lan-tipo-habitacion").css("width", "100%");

    $("#lan-div-boton-consultar label").hide();
    $("#lan-boton-consultar").css("width", "100%");

    $("#lan-loader-habitaciones-libres").css("margin", "8px auto 0px auto");
    $("#lan-loader-habitaciones-libres").css("text-align", "center");
    $("#lan-loader-habitaciones-libres").css("width", "98%");
  }

  //suplementos
  if ($("#lan-div-seleccion-habitaciones").outerWidth(true) > 550) {
    $(".lan-span-regimen-1, .lan-span-regimen-2, .lan-span-regimen-3").width(
      $("#lan-div-seleccion-habitaciones").outerWidth() / 3 - 16
    );
    $(".lan-span-regimen-2, .lan-span-regimen-3").css("text-align", "right");
  } else {
    $(".lan-span-regimen-1, .lan-span-regimen-2, .lan-span-regimen-3").width(
      $("#lan-div-seleccion-habitaciones").outerWidth() - 16
    );
    $(".lan-span-regimen-2, .lan-span-regimen-3").css("text-align", "left");
  }

  //redimensionar iframe
  $("#lan-button-resize-contents-helper").trigger("click");
}

$(document).ready(function () {
  //evitar saltos provocados en las animaciones
  $("#lan-div-habitaciones-libres").css("display", "inline-block");
  $("#lan-div-habitaciones-libres").hide();

  //configuraciones iniciales
  $("#lan-fecha-entrada").val(lanGetParam("lan-fecha-entrada"));
  $("#lan-fecha-salida").val(lanGetParam("lan-fecha-salida"));
  $("#lan-fecha-entrada").data("anterior", $("#lan-fecha-entrada").val());
  $("#lan-fecha-salida").data("anterior", $("#lan-fecha-salida").val());

  lanConfigurarSelectTipoHabitacion(
    $("#lan-tipo-habitacion"),
    lanGetParam("lan-tipo-habitacion")
  );
  lanGetDatosCalendario();

  $("#lan-fecha-salida").datepicker("option", "onSelect", function (date, obj) {
    lanComprobarFechaSalida(
      $("#lan-fecha-entrada"),
      $("#lan-fecha-salida"),
      $("#lan-dialogo-info-1")
    );
  });

  $("#lan-fecha-entrada").datepicker(
    "option",
    "onSelect",
    function (date, obj) {
      lanComprobarFechaEntrada(
        $("#lan-fecha-entrada"),
        $("#lan-fecha-salida"),
        $("#lan-dialogo-info-1")
      );
    }
  );

  $("#lan-boton-consultar").click(function () {
    if (
      lanValidarSeleccionFechas(
        $("#lan-fecha-entrada"),
        $("#lan-fecha-salida"),
        $("#lan-tipo-habitacion"),
        parent.$("#lan-dialogo-info-1")
      )
    )
      lanPreguntarReiniciarSeleccionHabitaciones();
  });

  $("#lan-boton-seleccion-habitaciones-siguiente").click(
    lanSiguienteSeleccionHabitaciones
  );
  $("#lan-boton-datos-cliente-anterior").click(lanAnteriorDatosCliente);
  $(
    "#lan-boton-datos-cliente-siguiente, #lan-boton-datos-cliente-siguiente-abajo"
  ).click(lanSiguienteDatosCliente);

  //configurar diálogos
  var wDivConsulta = $("#lan-div-consulta").width();
  var wDialogs = wDivConsulta < 600 ? wDivConsulta - 32 : 600;
  parent.$("#lan-dialogo-confirmacion-1").dialog({
    //appendTo: "#lan-div-consulta",
    autoOpen: false,
    resizable: false,
    width: wDialogs,
    modal: true,
    buttons: {
      Aceptar: function () {
        parent.$(this).dialog("close");
        lanSeleccionHabitacionesModificada = false;
        lanReiniciarSeleccionHabitaciones();
      },
      Cancelar: function () {
        parent.$(this).dialog("close");
        $("#lan-fecha-entrada").val($("#lan-fecha-entrada").data("anterior"));
        $("#lan-fecha-salida").val($("#lan-fecha-salida").data("anterior"));
        $("#lan-tipo-habitacion").val(
          $("#lan-tipo-habitacion").data("anterior")
        );
      },
    },
  });

  parent.$("#lan-dialogo-info-1").dialog({
    //appendTo: "#lan-div-consulta",
    autoOpen: false,
    resizable: false,
    width: wDialogs,
    modal: true,
    buttons: {
      Aceptar: function () {
        parent.$(this).dialog("close");
      },
    },
  });

  $("#lan-resumen-importe-total").click(function () {
    lanActualizarResumen();
  });

  configurarPoliticaPrivacidad();

  //al actualizar la página en firefox, quedan desactivados los botones, por lo que hay que activarlos siempre al iniciar
  $(
    "#lan-boton-datos-cliente-siguiente, #lan-boton-datos-cliente-siguiente-abajo"
  ).prop("disabled", false);

  //modificación automática de varios datos del cliente al introducir otros
  $(
    "#lan-cli-nombre, #lan-cli-primer-apellido, #lan-cli-segundo-apellido"
  ).keyup(function () {
    $("#lan-cli-titular").val(
      $("#lan-cli-nombre").val() +
        " " +
        $("#lan-cli-primer-apellido").val() +
        ($("#lan-cli-segundo-apellido").val() != ""
          ? " " + $("#lan-cli-segundo-apellido").val()
          : "")
    );
  });
  $("#lan-cli-telefono").keyup(function () {
    $("#lan-cli-telefono-contacto").val($("#lan-cli-telefono").val());
  });
  $("#lan-cli-provincia").change(function () {
    if ($(this).val() !== "") {
      $("#lan-cli-pais-residencia")
        .val($("#lan-cli-provincia :selected").data("pais"))
        .change();
      if ($("#lan-cli-pais-nacimiento").val() === "")
        $("#lan-cli-pais-nacimiento").val("724").change();
    }
  });

  $('#lan-tipo-habitacion').change(function(){
    lanGetDatosCalendario($('#lan-tipo-habitacion').val());
  })
});

$(window).load(function () {
  lanResizeContents();
  $(window).resize(function () {
    lanResizeContents();
  });
});

window.recaptchaCallback = function recaptchaCallback(response) {
  // console.log('CALLBACK - captcha response: ' + response);
  $.ajax({
    method: "POST",
    url: "URL_DE_LA_WEB/HotelanWeb/service.ajax.php",
    data: { "g-recaptcha-response": response },
  })
    //Enviamos la petición POST

    .done(function (msg) {
      // console.log(msg);
      if (msg.success === true) {
        // hide panel that contains recaptcha challenge...
        //$("#panel-recaptcha").hide();
        // ... and show service result instead
        recaptchaVal = true;
        $("#lan-error-captcha").hide();
      } else {
        $("#lan-error-captcha").show("fade", { easing: "easeOutExpo" }, 100);
      }
    })
    .fail(function (jqXHR, textStatus) {
      $("#lan-error-captcha").show("fade", { easing: "easeOutExpo" }, 100);
    });
};
