// En caso de cambiar contenido, cambiar la caché // Espera a que se cargue todo el contenido de la página document.addEventListener('DOMContentLoaded', function() { // Idioma let language = 'en'; // Textos let texts = []; // Obtiene el idioma de un input en general const metaTag = document.querySelector('meta[name="language-app-popover-change-influence"]'); if (metaTag) { language = metaTag.getAttribute('content'); } // Obtener el texto por el idioma texts = getContentButton(language); // Crear el boton popover const buttonPopOverWarningGaV1PuntaSuarez = createButtonPopOverWarningV1(texts[0]); const buttonPopOverWarningGaV1Genovesa = createButtonPopOverWarningV1(texts[1]); const buttonPopOverWarningGaV1CaboDouglasPointVicente = createButtonPopOverWarningV1(texts[2]); const buttonPopOverWarningGaV1GenovesaGalaxyItineraryE = createButtonPopOverWarningV1(texts[3]); const buttonPopOverWarningGaV1GenovesaBonitaItineraryC = createButtonPopOverWarningV1(texts[4]); const buttonPopOverWarningGaV1GenovesaAlyaItineraryAAM = createButtonPopOverWarningV1(texts[5]); const buttonPopOverWarningGaV1GenovesaAlyaItineraryAPM = createButtonPopOverWarningV1(texts[6]); const buttonPopOverWarningGaV1GenovesaEcogalaxyItineraryA = createButtonPopOverWarningV1(texts[7]); const buttonPopOverWarningGaV1LobosIsland = createButtonPopOverWarningV1(texts[8]); // Selecciona todos los elementos con la clase "button-warning-container" // Punta Suarez const containersPS = document.querySelectorAll('.button-warning-container-punta-suarez'); browseElementsPaintElement(containersPS, buttonPopOverWarningGaV1PuntaSuarez); // Genovesa const containersG = document.querySelectorAll('.button-warning-container-genovesa'); browseElementsPaintElement(containersG, buttonPopOverWarningGaV1Genovesa); // Cabo Douglas Point Vicente const containersCDPV = document.querySelectorAll('.button-warning-container-cabo-douglas-point-vicente'); browseElementsPaintElement(containersCDPV, buttonPopOverWarningGaV1CaboDouglasPointVicente); // Genovesa Galaxy Itinerario E const containersGGE = document.querySelectorAll('.button-warning-container-genovesa-galaxy-itinerary-e'); browseElementsPaintElement(containersGGE, buttonPopOverWarningGaV1GenovesaGalaxyItineraryE); // Genovesa Bonita Itinerario C const containersGBE = document.querySelectorAll('.button-warning-container-genovesa-bonita-itinerary-c'); browseElementsPaintElement(containersGBE, buttonPopOverWarningGaV1GenovesaBonitaItineraryC); // Alya Itinerario A AM const containersGAAM = document.querySelectorAll('.button-warning-container-genovesa-alya-itinerary-a-am'); // Alya Itinerario A PM const containersGAPM = document.querySelectorAll('.button-warning-container-genovesa-alya-itinerary-a-pm'); browseElementsPaintElement(containersGAAM, buttonPopOverWarningGaV1GenovesaAlyaItineraryAAM); browseElementsPaintElement(containersGAPM, buttonPopOverWarningGaV1GenovesaAlyaItineraryAPM); // Genovesa Ecogalaxy Itinerario A const containersGEA = document.querySelectorAll('.button-warning-container-genovesa-ecogalaxy-itinerary-a'); browseElementsPaintElement(containersGEA, buttonPopOverWarningGaV1GenovesaEcogalaxyItineraryA); /* Lobos Island const containersLI = document.querySelectorAll('.button-warning-container-lobos-island'); browseElementsPaintElement(containersLI, buttonPopOverWarningGaV1LobosIsland);*/ // Elementos nuevos /* // Sirius if (document.querySelector('[data-pagina="sirius"]')) { buscarElementos({ idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryB', filaDeseada: 4, columnaDeseada: 3, texto: texts[10] }); buscarElementos({ idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryB', filaDeseada: 6, columnaDeseada: 3, texto: texts[9] }); } // FIn Sirius // Alya if (document.querySelector('[data-pagina="alya"]')) { buscarElementos({ idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryB', filaDeseada: 4, columnaDeseada: 3, texto: texts[10] }); buscarElementos({ idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryB', filaDeseada: 5, columnaDeseada: 2, texto: texts[9] }); } // Fin Alya // Ecogalaxy if (document.querySelector('[data-pagina="ecogalaxy"]')) { buscarElementos({ idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryB', filaDeseada: 4, columnaDeseada: 3, texto: texts[10] }); buscarElementos({ idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryB', filaDeseada: 6, columnaDeseada: 3, texto: texts[9] }); } // Fin Ecogalaxy // Bonita if (document.querySelector('[data-pagina="bonita"]')) { buscarElementos({ idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryA', filaDeseada: 6, columnaDeseada: 3, texto: texts[10] }); buscarElementos({ idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryA', filaDeseada: 5, columnaDeseada: 2, texto: texts[9] }); } // Fin Bonita // Galaxy Diver if (document.querySelector('[data-pagina="galaxy-diver"]')) { buscarElementos({ idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryB', filaDeseada: 4, columnaDeseada: 3, texto: texts[9] }); buscarElementos({ idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryB', filaDeseada: 6, columnaDeseada: 3, texto: texts[10] }); } // Fin Galaxy Diver // Galaxy Diver 2 if (document.querySelector('[data-pagina="galaxy-diver-2"]')) { buscarElementos({ idSeccionItinerario: 'naturalist_itinerary_section', idTablaItinerario: 'tableItineraryB', filaDeseada: 4, columnaDeseada: 3, texto: texts[9] }); buscarElementos({ idSeccionItinerario: 'naturalist_itinerary_section', idTablaItinerario: 'tableItineraryB', filaDeseada: 6, columnaDeseada: 3, texto: texts[10] }); } // Fin Galaxy Diver 2 */ // Galaxy if (document.querySelector('[data-pagina="galaxy"]')) { buscarElementos({ pagina: 'galaxy', idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryC_2024', filaDeseada: 4, columnaDeseada: 3, texto: texts[11] }); buscarElementos({ pagina: 'galaxy', idSeccionItinerario: 'itinerary', idTablaItinerario: 'tableItineraryC_2024', filaDeseada: 5, columnaDeseada: 2, texto: texts[11] }); } // Fin Galaxy }); /** * Buscador de elementos */ function buscarElementos(opciones) { let { idSeccionItinerario, idTablaItinerario, filaDeseada, columnaDeseada, texto } = opciones; let seccionItinerario = document.querySelector('#'+idSeccionItinerario); if (!seccionItinerario) { console.log('No se encontró la sección del itinerario: ' + seccionItinerario + ' dentro de la página.'); return; } let tablaItinerario = seccionItinerario.querySelector('#'+idTablaItinerario); if (!tablaItinerario) { console.log('No se encontró la tabla del itinerario: ' + tablaItinerario + ' dentro de la sección.'); return; } // Verificar que la tabla tenga al menos tantas filas y columnas como se desea if (filaDeseada >= tablaItinerario.rows.length) { console.log('La tabla no tiene suficientes filas o columnas.'); return; } // Obtener la celda deseada let celdaDeseada = tablaItinerario.querySelector('tbody').rows[filaDeseada - 1].cells[columnaDeseada - 1]; // Agregar un dentro de la celda let contenidoTexto = createButtonPopOverWarningV1(texto); celdaDeseada.insertAdjacentHTML('beforeend', `
${contenidoTexto}
`); //console.log('Se actualizo el elemento') } /** * Crea un botón con el contenido recibido por el parámetro */ function createButtonPopOverWarningV1(content) { const buttonPopOverWarningGaV1 = `

${content}

`; return buttonPopOverWarningGaV1; } function createButtonPopOverWarningV2(content) { const buttonPopOverWarningGaV1 = `

${content}

`; return buttonPopOverWarningGaV1; } /** * Recorre los elementos recibidos del primer parámetro y agrega el elemento recibido del segundo parámetro */ function browseElementsPaintElement(containers, element) { // Recorre cada elemento containers.forEach(container => { // Crea un elemento div y establece su contenido HTML const buttonContainer = document.createElement('div'); buttonContainer.innerHTML = element; // Agrega el elemento contenedor con el botón al elemento con la clase "button-warning-container" container.appendChild(buttonContainer); }); } /** * Agrega la clase visible al contenedor */ function showPopOverGaV1(element) { // Agregar al show solo al que necesita element.classList.toggle('show'); } /** * Devuelve el contenido según el idioma */ function getContentButton(language) { // Resultador let texts = []; switch (language) { case 'fr': texts[0] = 'Itinéraire de Punta Suárez temporairement modifié en raison de la conservation des espèces; seules les visites de 360 degrés en panga sont autorisées'; texts[1] = 'Itinéraire de Genovesa modifié temporairement pour la conservation des espèces; visites maintenant à Marchena'; texts[2] = 'Itinéraire de Cabo Douglas et Punto Vicente Roca modifié temporairement pour la conservation; visites maintenant à Cabo Marshall et Ciudad de las Mantas'; texts[3] = 'L’itinéraire de Genovesa a été temporairement modifié en raison de la conservation des espèces ; les visites se font maintenant à San Cristóbal - Witch Hill et Highlands.'; texts[4] = 'L’itinéraire de Genovesa a été temporairement modifié en raison de la conservation des espèces; les visites se font maintenant à Santa Cruz : Eden Islet et Santiago : Chapeau chinois.'; texts[5] = 'L’itinéraire de Genovesa a été temporairement modifié en raison de la conservation des espèces; les visites se font maintenant à Santa Cruz: Eden Islet'; texts[6] = 'L’itinéraire de Genovesa a été temporairement modifié en raison de la conservation des espèces; les visites se font maintenant à Rabida: Rabida'; texts[7] = 'L’itinéraire de Genovesa a été temporairement modifié en raison de la conservation des espèces ; les visites se font maintenant à Santa Cruz : Dragon Hill et Eden Islet.'; texts[8] = 'L’itinéraire de l’île Lobos a été temporairement modifié en raison de la conservation des espèces ; seules la plongée en apnée et la promenade en panga sont autorisées.'; // Punta espinoza, solo se permiten kayak texts[9] = 'La visite de Punta Espinoza est temporairement fermée en raison de la conservation des espèces ; seuls le kayak, la plongée en apnée et les balades en panga sont autorisés.'; // Bahía Urbina, kayak, snorkel texts[10] = 'La visite de la baie d’Urbina est temporairement fermée en raison de la conservation des espèces ; seuls le kayak, la plongée en apnée et les promenades en panga sont autorisés.'; // Galaxy, Itinerary C texts[11] = 'L’itinéraire de Genovesa a été temporairement modifié en raison de la conservation des espèces ; les visites se font désormais à Santa Cruz : Colline du Dragon et Bachas'; // Galaxy, Itinerary C, Lobos Island texts[12] = 'L’itinéraire de l’île Lobos a été temporairement modifié en raison de la conservation des espèces ; seules la plongée en apnée et la promenade en panga sont autorisées.'; return texts; case 'es': texts[0] = 'Itinerario Punta Suárez cambiado temporalmente por conservación de especies; solo recorridos 360 en panga permitidos'; texts[1] = 'Itinerario Genovesa cambiado temporalmente por conservación de las especies; visitas ahora a Marchena'; texts[2] = 'Itinerario Cabo Douglas y Punto Vicente Roca cambiado temporalmente por conservación; visitas ahora a Cabo Marshall y Ciudad de las Mantas'; texts[3] = 'Itinerario de Genovesa temporalmente cambiado debido a la conservación de especies; visitas ahora a San Cristóbal - Cerro Brujo y Parte Alta.'; texts[4] = 'Itinerario de Genovesa cambiado temporalmente debido a la conservación de especies; visitas ahora a Santa Cruz: Islote Edén y Santiago: Sombrero Chino.'; texts[5] = 'Itinerario de Genovesa cambiado temporalmente debido a la conservación de especies; visitas ahora a Santa Cruz: Islote Edén'; texts[6] = 'Itinerario de Genovesa cambiado temporalmente debido a la conservación de especies; visitas ahora a Rabida: Rabida'; texts[7] = 'Itinerario de Genovesa modificado temporalmente debido a la conservación de especies; visitas ahora a Santa Cruz: Cerro Dragón e Islote Edén'; texts[8] = 'El itinerario de la isla de Lobos se modifica temporalmente debido a la conservación de las especies; sólo se permite el snorkel y el paseo en panga'; // Punta espinoza, solo se permiten kayak texts[9] = 'Visita terrestre a Punta Espinoza temporalmente cerrada debido a la conservación de especies; sólo se permite kayak, snorkel y paseo en panga'; // Bahía Urbina, kayak, snorkel texts[10] = 'Visita terrestre a Bahía Urbina temporalmente cerrada debido a la conservación de especies; sólo se permite kayak, snorkel y paseo en panga '; // Galaxy, Itinerary C texts[11] = 'Itinerario de Genovesa temporalmente cambiado debido a la conservación de especies; visitas ahora a Santa Cruz: Cerro del Dragón y Bachas'; // Galaxy, Itinerary C, Lobos Island texts[12] = 'El itinerario por la isla de Lobos cambia temporalmente debido a la conservación de las especies; sólo se permite el snorkel y el paseo en panga'; return texts; case 'de': texts[0] = 'Reiseroute Punta Suárez vorübergehend wegen Artenschutz geändert; nur 360-Grad-Panga-Touren erlaubt'; texts[1] = 'Reiseroute Genovesa vorübergehend wegen Artenschutz geändert; Besuche jetzt auf Marchena'; texts[2] = 'Reiseroute Cabo Douglas und Punto Vicente Roca vorübergehend wegen Naturschutz geändert; Besuche jetzt in Cabo Marshall und Ciudad de las Mantas'; texts[3] = 'Genovesa Reiseroute vorübergehend geändert aufgrund des Artenschutzes; Besuche jetzt in San Cristóbal - Witch Hill und Highlands.'; texts[4] = 'Genovesa-Reiseplan aufgrund des Artenschutzes vorübergehend geändert; Besuche jetzt in Santa Cruz: Eden Islet und Santiago: Chinesischer Hut.'; texts[5] = 'Genovesa Reiseplan aufgrund des Artenschutzes vorübergehend geändert; Besuche jetzt in Santa Cruz: Eden Islet.'; texts[6] = 'Genovesa Reiseplan aufgrund des Artenschutzes vorübergehend geändert; Besuche jetzt in Rabida: Rabida.'; texts[7] = 'Genovesa Reiseroute vorübergehend geändert aufgrund des Artenschutzes; Besuche jetzt in Santa Cruz: Dragon Hill und Eden Islet.'; texts[8] = 'Die Reiseroute auf der Insel Lobos wurde aus Gründen des Artenschutzes vorübergehend geändert; nur Schnorcheln und Pangafahrt erlaubt'; // Punta espinoza, solo se permiten kayak texts[9] = 'Punta Espinoza Landbesuch wegen Artenschutz vorübergehend geschlossen; nur Kajakfahren, Schnorcheln und Pangafahrt erlaubt'; // Bahía Urbina, kayak, snorkel texts[10] = 'Landgang in der Bucht von Urbina aus Gründen des Artenschutzes vorübergehend geschlossen; nur Kajakfahren, Schnorcheln und Pangafahrten erlaubt '; // Galaxy, Itinerary C texts[11] = 'Die Genovesa-Route wurde aus Gründen des Artenschutzes vorübergehend geändert; Besuche jetzt in Santa Cruz: Drachenberg und Bachas'; // Galaxy, Itinerary C, Lobos Island texts[12] = 'Die Reiseroute auf der Insel Lobos wurde aus Gründen des Artenschutzes vorübergehend geändert; nur Schnorcheln und Pangafahrt erlaubt'; return texts; default: texts[0] = 'Suarez Point itinerary temporarily changed due to species conservation; only 360-degree panga tours allowed'; texts[1] = 'Genovesa itinerary temporarily changed due to species conservation; visits now to Marchena'; texts[2] = 'Cabo Douglas and Punto Vicente Roca itinerary temporarily changed for conservation; visits now to Cabo Marshall and Ciudad de las Mantas'; texts[3] = 'Genovesa itinerary temporarily changed due to species conservation; visits now to San Cristóbal - Witch Hill and Highlands.'; texts[4] = 'Genovesa itinerary temporarily changed due to species conservation; visits now to Santa Cruz: Eden Islet and Santiago: Chinese Hat.'; texts[5] = 'Genovesa itinerary temporarily changed due to species conservation; visits now to Santa Cruz: Eden Islet.'; texts[6] = 'Genovesa itinerary temporarily changed due to species conservation; visits now to Rabida: Rabida.'; texts[7] = 'Genovesa itinerary temporarily changed due to species conservation; visits now to Santa Cruz: Dragon Hill and Eden Islet'; texts[8] = 'Lobos Island itinerary temporarily changed due to species conservation; only snorkeling and panga ride allowed'; // Punta espinoza, solo se permiten kayak texts[9] = 'Punta Espinoza land visit temporarily closed due to species conservation; only Kayaking, snorkeling and panga ride allowed'; // Bahía Urbina, kayak, snorkel texts[10] = 'Urbina Bay land visit temporarily closed due to species conservation; only Kayaking, snorkeling and panga ride allowed'; // Galaxy, Itinerary C texts[11] = 'Genovesa itinerary temporarily changed due to species conservation; visits now to Santa Cruz: Dragon Hill and Bachas'; // Galaxy, Itinerary C, Lobos Island texts[12] = 'Lobos Island itinerary temporarily changed due to species conservation; only snorkeling and panga ride allowed'; return texts; } } /** * Devuelve los lugares que tienen que tener las etiquetas correspondientes con cada una * * @param String place Lugar * @param String ship Barco * @param String itinerary Itinerario * @param String schedule Horario * * @return Array */ function obtainPlacesByTemporaryItineraries(params = []) { language = params['language'] ?? null place = params['place'] ?? null ship = params['ship'] ?? null itinerary = params['itinerary'] ?? null schedule = params['schedule'] ?? null //console.log(language, place, ship, itinerary, schedule) // Obtener el texto por el idioma texts = getContentButton(language) // Genovesa Alya Itinerary A Darwin Bay y Barranco if ((place == 'Darwin Bay' || place == 'Barranco') && ship == 'M/C Alya' && itinerary == `Itinerario A`) { return createButtonPopOverWarningV2(texts[6]) } // Española Alya Itinerary C Suarez Point if (place == 'Suarez Point' && ship == 'M/C Alya' && itinerary == `Itinerario C`) { return createButtonPopOverWarningV2(texts[6]) } } /*const buttonPopOverWarningGaV1PuntaSuarez = createButtonPopOverWarningV1(texts[0]); const buttonPopOverWarningGaV1Genovesa = createButtonPopOverWarningV1(texts[1]); const buttonPopOverWarningGaV1CaboDouglasPointVicente = createButtonPopOverWarningV1(texts[2]); const buttonPopOverWarningGaV1GenovesaGalaxyItineraryE = createButtonPopOverWarningV1(texts[3]); const buttonPopOverWarningGaV1GenovesaBonitaItineraryC = createButtonPopOverWarningV1(texts[4]); const buttonPopOverWarningGaV1GenovesaAlyaItineraryAAM = createButtonPopOverWarningV1(texts[5]); const buttonPopOverWarningGaV1GenovesaAlyaItineraryAPM = createButtonPopOverWarningV1(texts[6]); const buttonPopOverWarningGaV1GenovesaEcogalaxyItineraryA = createButtonPopOverWarningV1(texts[7]); const buttonPopOverWarningGaV1LobosIsland = createButtonPopOverWarningV1(texts[8]);*/ /** * Devuelve la palabra itinerario en el idioma requerido */ function getWordItineraryLanguages(language) { switch (language) { case 'en': return 'Itinerario' break; case 'es': return 'Itinerario' break; case 'fr': return 'Itinerario' break; case 'de': return 'Itinerario' break; default: break; } }