<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>stripper gran canaria Archives - StrippersDeluxe</title>
	<atom:link href="https://strippersdeluxe.es/tag/stripper-gran-canaria/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Organización de eventos, despedidas de soltero y soltera, cabaré y espectáculos[:en]Organización de eventos, despedidas de soltero y soltera, y espectáculos</description>
	<lastBuildDate>Thu, 20 Feb 2025 12:35:49 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.2</generator>

<image>
	<url>https://strippersdeluxe.es/wp-content/uploads/2025/01/cropped-SD_ICONO-32x32.jpg</url>
	<title>stripper gran canaria Archives - StrippersDeluxe</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Cena y espectáculo en el barrio de la Vegueta &#8211; Las Palmas de Gran Canaria</title>
		<link>https://strippersdeluxe.es/pack-despedida-las-palmas-de-gran-canaria/</link>
		
		<dc:creator><![CDATA[strippersdeluxe]]></dc:creator>
		<pubDate>Mon, 07 May 2018 14:09:41 +0000</pubDate>
				<category><![CDATA[Nuevo Restaurante! Cena y Espectáculo Privado]]></category>
		<category><![CDATA[despedida soltera]]></category>
		<category><![CDATA[despedida soltero]]></category>
		<category><![CDATA[drag queen las palmas]]></category>
		<category><![CDATA[espectáculo drag queen]]></category>
		<category><![CDATA[stripper gran canaria]]></category>
		<category><![CDATA[stripper las palmas]]></category>
		<guid isPermaLink="false">https://strippersdeluxe.es/?p=2197</guid>

					<description><![CDATA[<p>Disfruta de la despedida de soltero o soltera, cumpleaños, etc. en Las Palmas de Gran Canaria&#160;con este pack de despedida. Cena y espectáculo de Drag Queen (1h y media aprox) en la sala principal del restaurante Show divertido de stripper o boy para vuestro grupo en zona privada del Restaurante después de la cena El [&#8230;]</p>
<p>La entrada <a href="https://strippersdeluxe.es/pack-despedida-las-palmas-de-gran-canaria/">Cena y espectáculo en el barrio de la Vegueta &#8211; Las Palmas de Gran Canaria</a> aparece primero en <a href="https://strippersdeluxe.es">StrippersDeluxe</a>.</p>
]]></description>
										<content:encoded><![CDATA[<style>
<p>/* Estilos para la galería */
#galeria, #galeria * {
    box-sizing: border-box;
}
#galeria {
    padding: 10px;
    padding-bottom: 0;
    background: white;  /* Fondo de la galería */
    max-width: 100%; /* Hacer que la galería sea responsive */
    margin: 0 auto;
}
#galeria_miniaturas {
    display: flex; /* Utilizar flexbox para las miniaturas */
    justify-content: center; /* Centrar horizontalmente las miniaturas */
    flex-wrap: wrap; /* Permitir que las miniaturas se envuelvan en múltiples filas */
    gap: 10px; /* Espacio entre las miniaturas */
}
#imgGaleria {
    box-shadow: 0 1px 16px 0 #dfdfdf;
    border-radius: 25px;
    border: 1px solid #F2F2F2;  /* Borde de la imagen */
    padding: 3px;
    max-width: 100%; /* Hacer que la imagen sea responsive */
    height: auto; /* Altura automática */
    MAX-HEIGHT: 300PX; /* Demasiada altura de la imagen principal - uso para reducir */
}
.miniatura {
    border-radius: 10px;
    width: 60px;  /* Ancho de las miniaturas */
    height: 60px;  /* Alto de las miniaturas */
    cursor: pointer;
    padding: 5px;
    margin-bottom: 0px; /* Espacio entre las miniaturas */
    transition: opacity 0.3s; /* Agregar una transición de opacidad */
    object-fit: cover; /* Redimensiona y recorta la imagen para ajustarla al cuadro */</p>
<p>}
.miniatura:hover {
    opacity: 0.8;   /* Opacidad */
}
.miniatura:active {
    opacity: 1;
}</p>
</style>
<p><center><img decoding="async" class="alignnone size-full wp-image-588" src="https://strippersdeluxe.es/wp-content/uploads/2017/03/LasPalmas-StrippersDeluxe.jpg" alt="Gran Canaria Strippers Deluxe" width="279" height="151"><br />
<b style="text-align: center;">Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.</b></center></p>
<h2 style="text-align: center;">Disfruta de la despedida de soltero o soltera, cumpleaños, etc. en Las Palmas de Gran Canaria&nbsp;con este pack de despedida.</h2>
<h3 style="text-align: center;">Cena y espectáculo de Drag Queen (1h y media aprox) en la sala principal del restaurante</h3>
<h4 style="text-align: center;">Show divertido de stripper o boy para vuestro grupo en zona privada del Restaurante después de la cena</h4>
<p style="text-align: center;"><strong>El Restaurante se encuentra en el casco antiguo de las Palmas, en el barrio de la Vegueta</strong></p>
<hr />
<p><center></p>
<div id="galeria_imagen"><center><img decoding="async" id="imgGaleria" src="https://strippersdeluxe.es/wp-content/newgallery/Canarias/5/despedida-soltera-las-palmas.jpg" alt="Actividad o actividades para despedida de Soltera en Las Palmas o gran canaria"/></center></div>
<div id="galeria_miniaturas">
<img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;"src="https://strippersdeluxe.es/wp-content/newgallery/Canarias/5/despedida-soltera-las-palmas.jpg" alt="Actividad o actividades para despedida de Soltera en Las Palmas o gran canaria" /><br />
<img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;"src="https://strippersdeluxe.es/wp-content/newgallery/Canarias/5/despedida-soltero.jpg" alt="Despedida de soltero qué hacer en las palmas" /><br />
<img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;"src="https://strippersdeluxe.es/wp-content/newgallery/Canarias/5/despedida-soltera-vegueta.jpg" alt="Las Palmas Despedida de Soltera - Cena con Show" />
</div>
<p></center></p>
<hr />
<p style="text-align: center;"><strong>MENÚ DE GRUPO&nbsp;</strong></p>
<p style="text-align: center;"><strong>1 plato por cada 4 personas de:</strong></p>
<p style="text-align: center;">Ensalada de lechugas variadas, pollo crujiente, parmesano, cherry y vinagreta de mostaza y miel</p>
<p style="text-align: center;">Salteado de papas en cuadro, frankfurt, champiñones y bacon</p>
<p style="text-align: center;">Queso fresco empanado con mermelada de fresa</p>
<p style="text-align: center;">Delicias de bacalao rebozado con langostinos y tomate</p>
<p style="text-align: center;">Carrilleras de cerdo ibérico en salsa de verduras</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;"><strong>Postre</strong></p>
<p style="text-align: center;">Surtido de postres</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;"><strong>Bebidas:</strong></p>
<p style="text-align: center;"><strong>Hasta 5 bebidas por persona a consumir antes de fin del show de Draq</strong></p>
<p style="text-align: center;">Agua, refresco, cerveza, zumo, copa de vino tinto ó blanco</p>
<p style="text-align: center;">&nbsp;&nbsp;</p>
<p style="text-align: center;"><strong>PRECIO CENA MENÚ de GRUPO y DRAG QUEEN DURANTE LA CENA + ESPECTÁCULO DE BOYS CHICO STRIPER O CHICA STRIPPER = 65€* IVA Inc. por persona</strong></p>
<p style="text-align: center;"><em>*El precio es para un grupo de 10 personas o más. Si el grupo es inferior a 10 personas, el precio puede aumentar ligeramente dependiendo del número de personas.</em></p>
<p style="text-align: center;">&nbsp;&nbsp;</p>
<h4 style="text-align: center;"><a href="/restaurantes-para-despedida-o-eventos/canarias/">Click aquí para ver otras opciones&nbsp;en las Islas Canarias</a></h4>
<p style="text-align: center;">o&nbsp;</p>
<h5 style="text-align: center;">RESERVA HOY. PIDE PRESUPUESTO PARA TU GRUPO</h5>
<p><center>[contact-form-7]</center><br />
<script src="/wp-content/custom/en/email-checker.js" defer></script>
<script defer>
  document.addEventListener("DOMContentLoaded", function () {
    const pricingData = [
	  { groupSize: 5, pricePerPerson: 74, advancePayment: 0 },
      { groupSize: 6, pricePerPerson: 70, advancePayment: 30 },
      { groupSize: 7, pricePerPerson: 69, advancePayment: 50 },
      { groupSize: 8, pricePerPerson: 67.50, advancePayment: 70 },
      { groupSize: 9, pricePerPerson: 63.5, advancePayment: 71.50 },
      { groupSize: 10, pricePerPerson: 59, advancePayment: 60 },
      { groupSize: 11, pricePerPerson: 59, advancePayment: 89 },
      { groupSize: 12, pricePerPerson: 59, advancePayment: 120 },
      { groupSize: 13, pricePerPerson: 59, advancePayment: 147 },
      { groupSize: 14, pricePerPerson: 59, advancePayment: 176 },
      { groupSize: 15, pricePerPerson: 59, advancePayment: 205 },
      { groupSize: 16, pricePerPerson: 59, advancePayment: 234 },
      { groupSize: 17, pricePerPerson: 59, advancePayment: 258 },
      { groupSize: 18, pricePerPerson: 59, advancePayment: 282 },
      { groupSize: 19, pricePerPerson: 59, advancePayment: 311 },
      { groupSize: 20, pricePerPerson: 59, advancePayment: 330 },
	  { groupSize: 21, pricePerPerson: 59, advancePayment: 350 },
      { groupSize: 22, pricePerPerson: 59, advancePayment: 370 },
      { groupSize: 23, pricePerPerson: 59, advancePayment: 380 },
      { groupSize: 24, pricePerPerson: 59, advancePayment: 390 },
      { groupSize: 25, pricePerPerson: 59, advancePayment: 390 },
    ];

    const restaurantCostPerPerson = 25;
    const restaurantAgencyCommissionPerPerson = 5;
    const artistFixedFee = 120;
    const delayInMinutes = 120;

    const dinnerStartTimeInput = document.querySelector("#horaaproximada");
    const showTimeField = document.querySelector("#show-time");
    const groupSizeInput = document.querySelector("#group-size");
    const totalPriceField = document.querySelector("#total-price");
    const pricePerPersonField = document.querySelector("#price-per-person");
    const restaurantPaymentField = document.querySelector("#restaurant-payment");
    const performerPaymentField = document.querySelector("#performer-payment");
    const advancePaymentField = document.querySelector("#advance-payment");
    const artistAgencyFeeField = document.querySelector("#artist-agency-fee");
    const restaurantAgencyCommissionField = document.querySelector("#restaurant-agency-commission");
    const totalAgencyCommissionField = document.querySelector("#total-agency-commission");
    const artistFixedFeeField = document.querySelector("#artist-fixed-fee");
    const restaurantTotalCostPerPersonField = document.querySelector("#restaurant-total-cost-per-person");

    function calculateShowTime() {
      const dinnerStartTime = dinnerStartTimeInput.value;

      if (!dinnerStartTime) {
        showTimeField.value = '';
        return;
      }

      const [hours, minutes] = dinnerStartTime.split(':').map(Number);
      const dinnerStartDate = new Date();
      dinnerStartDate.setHours(hours, minutes, 0, 0);

      const showStartDate = new Date(dinnerStartDate.getTime() + delayInMinutes * 60000);

      const showTime = showStartDate.toTimeString().split(':').slice(0, 2).join(':');
      showTimeField.value = showTime;
    }

    function calculatePrices() {
      const groupSize = parseInt(groupSizeInput.value);

      if (!groupSize) {
        pricePerPersonField.value = "";
        return;
      }

      const groupPricing = pricingData.find((p) => p.groupSize === groupSize);

      if (!groupPricing) {
        pricePerPersonField.value = "";
        return;
      }

      const pricePerPerson = groupPricing.pricePerPerson;
      const advancePayment = groupPricing.advancePayment;
      const totalPrice = pricePerPerson * groupSize;

      const restaurantCost = restaurantCostPerPerson * groupSize;
      const restaurantAgencyCommission = restaurantAgencyCommissionPerPerson * groupSize;

      const performerPayment = artistFixedFee + (totalPrice - advancePayment - restaurantCost - artistFixedFee - restaurantAgencyCommission);
      const artistAgencyFee = performerPayment - artistFixedFee;

      const totalAgencyCommission = advancePayment + restaurantAgencyCommission + artistAgencyFee;

      totalPriceField.value = totalPrice.toFixed(2);
      pricePerPersonField.value = pricePerPerson.toFixed(2);
      restaurantPaymentField.value = (restaurantCost + restaurantAgencyCommission).toFixed(2);
      performerPaymentField.value = performerPayment.toFixed(2);
      advancePaymentField.value = advancePayment.toFixed(2);
      artistAgencyFeeField.value = artistAgencyFee.toFixed(2);
      restaurantAgencyCommissionField.value = restaurantAgencyCommission.toFixed(2);
      totalAgencyCommissionField.value = totalAgencyCommission.toFixed(2);
      artistFixedFeeField.value = artistFixedFee.toFixed(2);
      restaurantTotalCostPerPersonField.value = (restaurantCostPerPerson + restaurantAgencyCommissionPerPerson).toFixed(2);
    }

    dinnerStartTimeInput.addEventListener("input", calculateShowTime);
    groupSizeInput.addEventListener("input", calculatePrices);
  });
</script>

<script defer>
document.addEventListener("DOMContentLoaded", function () {
  const locales = {
    es: {
      alert1: "Inicio de la comida o cena debe ser entre 13:30 - 15:15 o 20:30 - 22:00. Por favor, elija un horario válido dentro del horario de apertura.",
      alert2: "Lo sentimos, el restaurante está cerrado el día seleccionado. Por favor, elija otra fecha.",
      success: "✓ Perfecto😋🍽️",
      warning1: "Lo sentimos, no hay disponibilidad. Las solicitudes de reserva deben hacerse con al menos 20 horas de antelación por motivos de organización.",
      warning2: "Al ser el evento mañana, necesitaremos la confirmación hoy por motivos organizativos. Revisa la bandeja de entrada (y la de Spam por si acaso). Gracias."
    },
    en: {
      alert1: "The start time for lunch or dinner must be between 13:30 - 15:15 or 20:30 - 22:00. Please select a time within the restaurant's allowed hours.",
      alert2: "Sorry, the restaurant is closed on the selected day. Please choose another date.",
      success: "✓ Great choice😋🍽️",
      warning1: "Sorry, there is no availability. Reservation requests must be made at least 20 hours in advance for organizational reasons.",
      warning2: "As the event is tomorrow, we will need confirmation today for organizational reasons. Please check your inbox (and spam folder just in case). Thank you."
    }
  };

  // Detectar el idioma desde la URL
  function getLocaleFromUrl() {
    const path = window.location.pathname;
    const match = path.match(/^\/(en|es)\//);
    return match ? match[1] : "es"; // Por defecto 'es'
  }

  const currentLocale = getLocaleFromUrl();
  const messages = locales[currentLocale] || locales["es"];

  const form = document.querySelector("form.wpcf7-form");
  const horaInput = document.getElementById("horaaproximada");
  const fechaInput = document.getElementById("fecha");

  // Crear los mensajes de error y éxito dinámicos
  const horaErrorMessage = document.createElement('div');
  horaErrorMessage.id = 'hora-mensaje';
  horaErrorMessage.style.display = 'none';
  horaErrorMessage.style.marginTop = '5px';

  const horaSuccessMessage = document.createElement('div');
  horaSuccessMessage.id = 'hora-success-mensaje';
  horaSuccessMessage.style.display = 'none';
  horaSuccessMessage.style.marginTop = '5px';

  const warningMessage1 = document.createElement('div');
  warningMessage1.id = 'warning-message1';
  warningMessage1.style.display = 'none';
  warningMessage1.style.marginTop = '5px';

  const warningMessage2 = document.createElement('div');
  warningMessage2.id = 'warning-message2';
  warningMessage2.style.display = 'none';
  warningMessage2.style.marginTop = '5px';

  // Añadir los mensajes después del campo de hora
  if (horaInput) {
    horaInput.parentNode.insertBefore(horaErrorMessage, horaInput.nextSibling);
    horaInput.parentNode.insertBefore(horaSuccessMessage, horaErrorMessage.nextSibling);
    horaInput.parentNode.insertBefore(warningMessage1, horaSuccessMessage.nextSibling);
    horaInput.parentNode.insertBefore(warningMessage2, warningMessage1.nextSibling);
  }

  // Función para mostrar mensaje de error, éxito o advertencia
  function displayMessage(message, className, element) {
    element.innerText = message;
    element.className = className;
    element.style.display = 'block';
    forceRedibujo(element); // Forzar redibujo para visibilidad correcta
  }

  // Forzar redibujo del mensaje
  function forceRedibujo(element) {
    element.style.display = 'none';
    element.offsetHeight; // Forzar redibujo
    element.style.display = 'block';
  }

  // Función de validación
  function validateTime() {
    const fechaSeleccionada = new Date(fechaInput.value);
    const horaSeleccionada = horaInput.value.split(":");

  // Verificar que ambos campos (hora y fecha) estén seleccionados
  if (!horaInput.value || !fechaInput.value) {
    // Si falta la hora o la fecha, mostrar el mensaje de error
    displayMessage(messages.alert1, 'error-message', horaErrorMessage);
    horaSuccessMessage.style.display = 'none'; // Ocultar el mensaje de éxito
    return false; // Prevenir el envío si falta la hora o la fecha
  }


    // Ajustar la fecha seleccionada para incluir la hora
    fechaSeleccionada.setHours(horaSeleccionada[0], horaSeleccionada[1], 0, 0);

    // Validar horarios permitidos (dos rangos)
    const horariosPermitidos = [
      { inicio: [13, 30], fin: [15, 15] }, // Primer rango
      { inicio: [20, 30], fin: [22, 00] } // Segundo rango
    ];

    const selectedHour = fechaSeleccionada.getHours();
    const selectedMinute = fechaSeleccionada.getMinutes();
    let horarioValido = false;

    for (const rango of horariosPermitidos) {
      const [startHour, startMinute] = rango.inicio;
      const [endHour, endMinute] = rango.fin;

      const isInThisRange =
        (selectedHour > startHour || (selectedHour === startHour && selectedMinute >= startMinute)) &&
        (selectedHour < endHour || (selectedHour === endHour && selectedMinute <= endMinute));

      if (isInThisRange) {
        horarioValido = true;
        break;
      }
    }

    // Si el horario no es válido, mostrar el mensaje de error
    if (!horarioValido) {
      displayMessage(messages.alert1, 'error-message', horaErrorMessage);
      horaSuccessMessage.style.display = 'none'; // Ocultar el mensaje de éxito
      return false; // Evitar envío si el horario no es válido
    } else {
      displayMessage(messages.success, 'success-message', horaSuccessMessage);
      horaErrorMessage.style.display = 'none'; // Ocultar el mensaje de error
    }

    // Validar días cerrados del restaurante
    const restaurantClosedDays = []; // Ejemplo: 0 = Domingo 1 = Lunes...
    const dayOfWeek = fechaSeleccionada.getDay();
    if (restaurantClosedDays.includes(dayOfWeek)) {
      displayMessage(messages.alert2, 'error-message', horaErrorMessage);
      horaSuccessMessage.style.display = 'none'; // Ocultar el mensaje de éxito
      return false; // Evitar envío si el restaurante está cerrado
    }

    // Validación de advertencia: 20 horas de antelación
    const ahora = new Date();
    const limiteFecha = new Date(ahora.getTime() + 20 * 60 * 60 * 1000); // 20 horas
    if (fechaSeleccionada < limiteFecha) {
      displayMessage(messages.warning1, 'error-message', warningMessage1);
      warningMessage2.style.display = 'none'; // Ocultar la advertencia del evento mañana
      horaSuccessMessage.style.display = 'none'; // Ocultar mensaje de éxito
      return false; // Detener envío del formulario si el mensaje warning1 es visible
    } else {
      warningMessage1.style.display = 'none'; // Ocultar la advertencia de las 20 horas
    }

    // Validación de advertencia: evento mañana (20-30 horas)
    const limiteFechaAdicional = new Date(ahora.getTime() + 30 * 60 * 60 * 1000); // 30 horas
    if (fechaSeleccionada >= limiteFecha && fechaSeleccionada < limiteFechaAdicional) {
      displayMessage(messages.warning2, 'error-message', warningMessage2);
    } else {
      warningMessage2.style.display = 'none'; // Ocultar advertencia si no es el caso
    }
  }

  // Añadir eventos de validación en tiempo real
  if (horaInput && fechaInput) {
    horaInput.addEventListener("input", validateTime); // Validar cuando se cambia la hora
    fechaInput.addEventListener("input", validateTime); // Validar cuando se cambia la fecha
  }

  if (form) {
    form.addEventListener("submit", function (event) {
      // Si el mensaje de advertencia (warning1) está visible, prevenimos el envío
      if (warningMessage1.style.display === 'block' || horaErrorMessage.style.display === 'block') {
        event.preventDefault(); // Prevenir el envío del formulario
        event.stopImmediatePropagation(); // Detener otros eventos de envío
        horaInput.focus(); // Enfocar el campo de hora
        return false; // Detener el flujo
      }
    });
  }
});
</script>


<script defer>
document.addEventListener("DOMContentLoaded", function () {
  const locales = {
    es: {
      alert: "Por favor, selecciona número de personas.",
      success: "✓ Bien"
    },
    en: {
      alert: "Please select the number of people.",
      success: "✓ Nice"
    }
  };

  // Detectar el idioma desde la URL
  function getLanguageFromUrl() {
    const path = window.location.pathname;
    return path.includes("/en/") ? "en" : "es"; // Por defecto, 'es'
  }

  const currentLocale = getLanguageFromUrl();
  const messages = locales[currentLocale];

  const form = document.querySelector("form.wpcf7-form");
  const groupSizeInput = document.getElementById("group-size");

  // Crear el mensaje de error dinámico
  const groupSizeErrorMessage = document.createElement('div');
  groupSizeErrorMessage.id = 'group-size-mensaje';
  groupSizeErrorMessage.style.display = 'none';
  groupSizeErrorMessage.style.marginTop = '5px';

  // Crear el mensaje de éxito dinámico
  const groupSizeSuccessMessage = document.createElement('div');
  groupSizeSuccessMessage.id = 'group-size-success-mensaje';
  groupSizeSuccessMessage.style.display = 'none';
  groupSizeSuccessMessage.style.marginTop = '5px';

  // Añadir los mensajes después del campo de grupo
  if (groupSizeInput) {
    groupSizeInput.parentNode.insertBefore(groupSizeErrorMessage, groupSizeInput.nextSibling);
    groupSizeInput.parentNode.insertBefore(groupSizeSuccessMessage, groupSizeErrorMessage.nextSibling);
  }

  // Función para mostrar mensaje de error o éxito y forzar redibujo
  function displayGroupSizeMessage(message, className) {
    const messageElement = className === 'error-message' ? groupSizeErrorMessage : groupSizeSuccessMessage;
    messageElement.innerText = message;
    messageElement.className = className;
    messageElement.style.display = 'block';
    forceRedraw(messageElement); // Forzar redibujo para visibilidad correcta
  }

  // Forzar redibujo del mensaje
  function forceRedraw(element) {
    element.style.display = 'none';
    element.offsetHeight; // Forzar redibujo
    element.style.display = 'block';
  }

  // Al cambiar el número de personas
  groupSizeInput.addEventListener("change", function () {
    // Si el valor está vacío, mostrar el mensaje de error
    if (!groupSizeInput.value) {
      displayGroupSizeMessage(messages.alert, 'error-message'); // Muestra el mensaje de error
    } else {
      displayGroupSizeMessage(messages.success, 'success-message'); // Muestra el mensaje de éxito
      groupSizeErrorMessage.style.display = 'none'; // Oculta el mensaje de error
    }
  });

  // Si el formulario se envía sin seleccionar el número de personas, mostrar el mensaje de error
  if (form) {
    form.addEventListener("submit", function (event) {
      // Validar que se haya seleccionado un número de personas
      if (!groupSizeInput.value) {
        displayGroupSizeMessage(messages.alert, 'error-message'); // Muestra el mensaje de error
        event.preventDefault(); // Prevenir el envío del formulario
        event.stopImmediatePropagation(); // Detener otros manejadores
        groupSizeInput.focus(); // Enfocar el campo de número de personas
        return false; // Detener el flujo de envío
      }

      // Si se selecciona un número válido, se limpia el mensaje de error
      groupSizeErrorMessage.style.display = 'none';
    });
  }
});
</script>

<script defer>
document.addEventListener('DOMContentLoaded', function () {
    const espectaculoField = document.getElementById('espectaculo');
    const hiddenInput = document.getElementById('tipo-espectaculo');
    const form = document.querySelector('.wpcf7 form'); // Selecciona el formulario de Contact Form 7

    if (!espectaculoField || !hiddenInput || !form) {
        console.error('No se encontraron los elementos "espectaculo", "tipo-espectaculo" o el formulario.');
        return;
    }

    // Detecta si la página está en inglés o español
    const isEnglish = window.location.pathname.includes('/en/');
    const warningMessage = {
        noSelection: isEnglish
            ? "Please select whether your group would like a male or female performer for the show."
            : "Por favor selecciona si os gustaría un espectáculo de chico o chica.",
        noFemale: isEnglish
            ? "We are very sorry, we currently don't have any female performers available in this city."
            : "Lo sentimos mucho, actualmente en esa ciudad no tenemos ninguna chica disponible.",
        noMale: isEnglish
            ? "We are very sorry, we currently don't have any male performers available in this city."
            : "Lo sentimos mucho, actualmente en esa ciudad no tenemos ningún chico disponible.",
        success: isEnglish
            ? "✓ Your group is going to have a blast🔥"
            : "✓ Genial🔥"
    };

    let preventSubmission = false; // Bandera para prevenir el envío del formulario
    let warningShown = ''; // Mensaje de advertencia a mostrar

    // Crear los mensajes de error y éxito dinámicos
    const errorMessage = document.createElement('div');
    errorMessage.id = 'espectaculo-error-message';
    errorMessage.style.display = 'none';
    errorMessage.style.marginTop = '5px';

    const successMessage = document.createElement('div');
    successMessage.id = 'espectaculo-success-message';
    successMessage.style.display = 'none';
    successMessage.style.marginTop = '5px';

    // Añadir los mensajes después del campo de "espectaculo"
    if (espectaculoField) {
        espectaculoField.parentNode.insertBefore(errorMessage, espectaculoField.nextSibling);
        espectaculoField.parentNode.insertBefore(successMessage, errorMessage.nextSibling);
    }

    // Función para mostrar mensaje de error o éxito y forzar redibujo
    function displayMessage(message, className, element) {
        element.innerText = message;
        element.className = className;
        element.style.display = 'block';
        forceRedibujo(element); // Forzar redibujo para visibilidad correcta
    }

    // Forzar redibujo del mensaje
    function forceRedibujo(element) {
        element.style.display = 'none';
        element.offsetHeight; // Forzar redibujo
        element.style.display = 'block';
    }

    // Función para manejar el cambio en el campo "espectaculo"
    espectaculoField.addEventListener('change', function () {
        const selectedValue = espectaculoField.value;
        let pageUrl = '';

        // Ocultar ambos mensajes de error y éxito al cambiar la selección
        errorMessage.style.display = 'none';
        successMessage.style.display = 'none';

        // Lógica para español
        if (!isEnglish) {
            if (selectedValue === 'Selecciona') {
                displayMessage(warningMessage.noSelection, 'error-message', errorMessage); // Mostrar mensaje de advertencia
                hiddenInput.value = ''; // Limpia el campo oculto
                espectaculoField.focus(); // Mueve el foco al campo "espectaculo"
                return;
            }

            if (selectedValue === 'Stripper Chico o Boy') {
                pageUrl = `${window.location.origin}/k1l45z/`; // URL para chicos en español - Deja vacío si no hay chicos disponibles en español
            } else if (selectedValue === 'Stripper Chica') {
                pageUrl = `${window.location.origin}/b3t1d8/`; // Deja vacío si no hay chicas disponibles en español
            }
        }

        // Lógica para inglés
        else {
            if (selectedValue === 'Choose') {
                displayMessage(warningMessage.noSelection, 'error-message', errorMessage); // Mostrar mensaje de advertencia
                hiddenInput.value = ''; // Limpia el campo oculto
                espectaculoField.focus(); // Mueve el foco al campo "espectaculo"
                return;
            }

            if (selectedValue === 'Male Stripper') {
                pageUrl = `${window.location.origin}/en/k1l45z/`; // URL para chicos en inglés - Deja vacío si no hay chicos disponibles
            } else if (selectedValue === 'Female Stripper') {
                pageUrl = `${window.location.origin}/en/b3t1d8/`; // Deja vacío si no hay chicas disponibles en inglés
            }
        }

        // Verifica si hay URL válida o no
        if (!pageUrl) {
            displayMessage(warningMessage.noMale, 'error-message', errorMessage); // Mostrar mensaje de advertencia
            hiddenInput.value = ''; // Limpia el campo oculto
            espectaculoField.focus(); // Mueve el foco al campo "espectaculo"
            return;
        }

        // Actualiza el campo oculto con la URL absoluta
        hiddenInput.value = pageUrl;
        displayMessage(warningMessage.success, 'success-message', successMessage); // Mostrar mensaje de éxito
    });

    // Previene el envío del formulario si la selección no es válida
    form.addEventListener('submit', function (event) {
        if (espectaculoField.value === (isEnglish ? 'Choose' : 'Selecciona')) {
            event.preventDefault(); // Prevenir el envío del formulario
            event.stopImmediatePropagation(); // Detener otros eventos de envío
            displayMessage(warningMessage.noSelection, 'error-message', errorMessage); // Mostrar el mensaje de advertencia
            successMessage.style.display = 'none'; // Ocultar mensaje de éxito
            espectaculoField.focus(); // Mueve el foco al campo "espectaculo"
            console.log('El envío del formulario ha sido prevenido debido a una selección inválida.');
        }
    });
});
</script>

<script defer>
document.addEventListener('wpcf7mailsent', function () {
    // Determina el idioma por la URL
    const isEnglish = window.location.href.includes('/en/');
    
    // Selecciona la página de agradecimiento según el idioma
    const thankYouPage = isEnglish ? 'thanks-dinner' : 'gracias-cena';
    const languagePrefix = isEnglish ? '/en' : '';

    // Redirige a la página correspondiente con URL relativa
        window.location.href = `${languagePrefix}/${thankYouPage}/`;
});
</script>

<script defer>
document.addEventListener("DOMContentLoaded", function () {
  const locales = {
    es: { days: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'], months: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'] },
    en: { days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }
  };

  // Detectar el idioma desde la URL
  function getLocaleFromUrl() {
    const path = window.location.pathname;
    const match = path.match(/^\/(en|es)\//);
    return match ? match[1] : "es"; // Por defecto 'es'
  }

  const currentLocale = getLocaleFromUrl();
  const { days, months } = locales[currentLocale];

  function formatDate(dateStr) {
    const date = new Date(dateStr);
    const dayName = days[date.getDay()];
    const day = date.getDate();
    const month = months[date.getMonth()];
    const year = date.getFullYear();

    return `${dayName}, ${day} ${month}, ${year}.`;
  }

  const fechaInput = document.getElementById("fecha");
  const fechaDisplay = document.createElement('div');
  fechaDisplay.id = 'fecha-completa-display';
  fechaDisplay.className = 'success-message'; // Aplicar la clase success-message
  fechaDisplay.style.display = 'none'; // Ocultar el contenedor inicialmente

  // Añadir el div para la fecha debajo del campo de fecha
  if (fechaInput) {
    fechaInput.parentNode.insertBefore(fechaDisplay, fechaInput.nextSibling);
  }

  // Forzar redibujo del mensaje
  function forceRedibujo(element) {
    element.style.display = 'none';
    element.offsetHeight; // Forzar redibujo
    element.style.display = 'block';
  }

  // Actualizar la fecha completa cuando se cambie la fecha
  if (fechaInput) {
    fechaInput.addEventListener('change', function() {
      if (fechaInput.value) {
        const formattedDate = formatDate(fechaInput.value);
        fechaDisplay.innerText = formattedDate; // Mostrar la fecha en letras
        fechaDisplay.style.display = 'block'; // Mostrar el mensaje cuando se selecciona la fecha
        forceRedibujo(fechaDisplay); // Forzar redibujo para visibilidad correcta
      } else {
        fechaDisplay.innerText = ''; // Limpiar la fecha si no se ha seleccionado
        fechaDisplay.style.display = 'none'; // Ocultar el mensaje si no se selecciona la fecha
        forceRedibujo(fechaDisplay); // Forzar redibujo para visibilidad correcta
      }
    });
  }
});
</script>
</p>
<p>La entrada <a href="https://strippersdeluxe.es/pack-despedida-las-palmas-de-gran-canaria/">Cena y espectáculo en el barrio de la Vegueta &#8211; Las Palmas de Gran Canaria</a> aparece primero en <a href="https://strippersdeluxe.es">StrippersDeluxe</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
