{"version":3,"file":"js/69542-b0808fef34f6e30e06ba.js","mappings":"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","sources":["webpack://cms-web/./app/frontend/src/auth0/sso.js","webpack://cms-web/./app/frontend/src/blocks/auto_pop_up/auto_pop_up.js","webpack://cms-web/./app/frontend/src/blocks/best_online_rate/best_online_rate.js","webpack://cms-web/./app/frontend/src/blocks/cookies_content/cookies_content.js","webpack://cms-web/./app/frontend/src/blocks/header_customized/head_video.js","webpack://cms-web/./app/frontend/src/blocks/header_customized/header_customized.analytics.js","webpack://cms-web/./app/frontend/src/shared/offer_modal/offer_modal.js","webpack://cms-web/./app/frontend/src/shared/offer_modal/offer_modal.analytics.js","webpack://cms-web/./app/frontend/src/blocks/header_customized/header_customized.js","webpack://cms-web/./app/frontend/src/blocks/home_megabanner_slider/cta_info_card/cta_info_card.js","webpack://cms-web/./app/frontend/src/blocks/home_megabanner_slider/home_megabanner_slider.analytics.js","webpack://cms-web/./app/frontend/src/blocks/home_megabanner_slider/home_megabanner_slider.js","webpack://cms-web/./app/frontend/src/blocks/hotel_information_ratings/hotel_information_ratings.analytics.js","webpack://cms-web/./app/frontend/src/blocks/hotel_information_ratings/hotel_information_ratings.js","webpack://cms-web/./app/frontend/src/blocks/hotels_info_with_filtering_packed/hotels_info_with_filtering.constants.js","webpack://cms-web/./app/frontend/src/blocks/landing_typekit_header/landing_typekit_header.js","webpack://cms-web/./app/frontend/src/blocks/register_form/register_form.js","webpack://cms-web/./app/frontend/src/core/cancel_online_bookings/force_cc_lightbox.js","webpack://cms-web/./app/frontend/src/core/horizons_lightbox/horizons_postregister_lightbox.js","webpack://cms-web/./app/frontend/src/core/horizons_lightbox/horizons_postregister_lightbox.analytics.js","webpack://cms-web/./app/frontend/src/utils/ib_session_fancybox.js","webpack://cms-web/./app/frontend/src/elements/alert/alert.js","webpack://cms-web/./app/frontend/src/elements/destination_breadcrumb/destination_breadcrumb.js","webpack://cms-web/./app/frontend/src/shared/promo_link/promo_link.js","webpack://cms-web/./app/frontend/src/elements/headband/headband.analytics.js","webpack://cms-web/./app/frontend/src/elements/headband/headband.js","webpack://cms-web/./app/frontend/src/elements/pro_link/pro_link.js","webpack://cms-web/./app/frontend/src/pages/my_iberostar/facebook_widget.js","webpack://cms-web/./app/frontend/src/pages/register/register.js","webpack://cms-web/./app/frontend/src/pages/session_page/session_page.js","webpack://cms-web/./app/frontend/src/shared/callmeback/callmeback.js","webpack://cms-web/./app/frontend/src/shared/currency_agency_selector/currency_agency_selector.js","webpack://cms-web/./app/frontend/src/shared/footer_sticky/footer_sticky.js","webpack://cms-web/./app/frontend/src/shared/hotel_next_opening/hotel_next_opening.js","webpack://cms-web/./app/frontend/src/shared/next_bookings/next_bookings.js","webpack://cms-web/./app/frontend/src/shared/offer_notifications/offer_notifications.js","webpack://cms-web/./app/frontend/src/shared/side_panel/side_panel.js","webpack://cms-web/./app/frontend/src/shared/social_share_builder/social_share_builder.js","webpack://cms-web/./app/frontend/src/shared/update_prices/update_prices.js","webpack://cms-web/./app/frontend/src/utils/countdown.js","webpack://cms-web/./app/frontend/src/utils/get_mobile_os.js","webpack://cms-web/./app/frontend/src/utils/videoUtils.js"],"sourcesContent":["import cookieCheck from '3rd-cookie-check'\nimport auth0 from 'auth0-js'\n\nimport horizons_postregister_lightbox from '../core/horizons_lightbox/horizons_postregister_lightbox.js'\nimport { readCookie, setCookie } from '../utils/cookie_manager'\nimport on from '../utils/events_delegation'\n\n// Variables to be sent to the Auth0 login view\nconst extraMetrics = [\n 'campaign_content',\n 'campaign_cp_origin',\n 'campaign_cp',\n 'campaign_medium',\n 'campaign_name',\n 'campaign_source',\n 'campaign_term',\n 'cookies_consent', //\n 'device_type',\n 'hotel_headquarter_final',\n 'hotel_headquarter_origin',\n 'page_language',\n 'page_platform',\n 'promo_is_miiberostar',\n 'promo_is_resident',\n 'user_id_horizons', //\n 'user_id',\n 'user_level',\n 'visitor_country_code',\n 'visitor_country',\n 'visitor_depth', //\n 'visitor_has_reservation',\n 'visitor_headquarter_market',\n 'visitor_id', //\n 'visitor_internal_market',\n 'visitor_is_buyer',\n 'visitor_is_logged', //\n 'visitor_is_repeater',\n 'visitor_personalized_tratement',\n 'visitor_recive_advertising',\n 'visitor_recurrence',\n 'visitor_session_count',\n 'visitor_session_id',\n 'visitor_type',\n]\n\nfunction extractProperties(obj, keys) {\n const newObject = {}\n keys.forEach(function (key) {\n if (obj.hasOwnProperty(key)) {\n newObject[key] = obj[key]\n }\n })\n return newObject\n}\n\nfunction getCurrentLocale() {\n let locale = readCookie('locale')\n if (!locale) {\n const languajeSelectorLinks = document.querySelector('ul.js-language-selector-links li.active a')\n locale = languajeSelectorLinks !== null ? languajeSelectorLinks.getAttribute('data-locale') : null\n }\n return locale\n}\n\nexport function auth0Login(register = false) {\n setCookie('prelogin_url', window.location.href)\n\n const webAuth = new auth0.WebAuth({\n domain: AUTH0_CONFIG.custom_domain,\n clientID: AUTH0_CONFIG.clientId,\n redirectUri: AUTH0_CONFIG.redirectUri,\n audience: AUTH0_CONFIG.audience,\n responseType: 'token id_token',\n scope: 'openid profile user_metadata',\n })\n\n let environment = document.querySelector('#environment')?.value\n if (document.querySelector('#environment')?.value === 'development') {\n environment = AUTH0_CONFIG.connection === 'STAGING' ? 'uat' : AUTH0_CONFIG.connection.toLowerCase()\n }\n\n const microsite = document.querySelector('#microsite')?.value\n const backUrl = window.location.href\n .replaceAll(/([\\?&])open=[^&$]+&?/g, '$1') // We replace the open=login parameters to avoid redirection loops\n .replaceAll(/[\\?&]$/g, '') // And then replace & at the end\n const locale = getCurrentLocale()\n\n webAuth.authorize({\n ui_locales: locale,\n application: 'CMS',\n back: backUrl,\n register: register ? '1' : '0',\n environment,\n microsite,\n update_metadata: `${document.location.origin}/update_app_metadata`,\n responseType: 'code',\n extraMetric: extractProperties(window.utag_data, extraMetrics),\n })\n}\n\nexport function auth0UpdateMetadata(locale, microsite, environment) {\n const csrfToken = document.querySelector('[name=csrf-token]').content\n fetch('/update_app_metadata', {\n method: 'POST',\n body: JSON.stringify({ locale, microsite, environment }),\n headers: { 'Content-type': 'application/json; charset=UTF-8', 'X-CSRF-Token': csrfToken },\n })\n .then(r => r.json())\n .catch(error => {\n console.error(`Update metadata error: ${error}`)\n })\n}\n\nfunction checkConfig() {\n return (\n AUTH0_CONFIG.domain.length > 1 &&\n AUTH0_CONFIG.clientId.length > 1 &&\n AUTH0_CONFIG.redirectUri.length > 1 &&\n AUTH0_CONFIG.audience.length > 1\n )\n}\n\nfunction thirdPartyCookieCheck() {\n const loggedMessagesCookie = readCookie('logged_messages')\n const currentUser = loggedMessagesCookie?.includes('true') ? true : false\n const confirmUser = readCookie('auth0_login') !== 'true'\n const microsite = document.querySelector('#microsite')?.value || 'iberostar'\n\n const clientAuth0 = new auth0.WebAuth({\n domain: AUTH0_CONFIG.domain,\n clientID: AUTH0_CONFIG.clientId,\n redirectUri: AUTH0_CONFIG.redirectUri,\n audience: AUTH0_CONFIG.audience,\n connection: AUTH0_CONFIG.connection,\n responseType: 'token id_token',\n scope: 'openid profile user_metadata',\n })\n\n cookieCheck({\n timeout: 3000,\n iframeSrc: 'https://viglesias.github.io/3rdCookieChecker/index.html',\n }).then(function (resultCookieCheck) {\n // Verificamos si viene de APP para no aplicar el checkSession\n const is_app = readCookie('in_app') === 'true'\n const is_simulated = readCookie('simulated_account') === 'true'\n\n if (currentUser && !is_app && !is_simulated && resultCookieCheck.supported) {\n clientAuth0.checkSession(\n {\n audience: AUTH0_CONFIG.audience,\n scope: 'read:current_user',\n },\n function (err) {\n if (err) {\n console.error(`Error checkSession auth0: ${err.description}`)\n // Forzamos el cierre de sesión (este caso pretende forzar el cierre por ejemplo si el usuario ha cerrado sesión en CRS de fomra que vayan acompasados)\n const logout_url = `${window.location.protocol}//${window.location.host}/auth/logout`\n IB.cookieManager.deleteCookies(['logged_messages'])\n window.location.href = logout_url\n }\n }\n )\n } else if (\n (!currentUser || !confirmUser) &&\n microsite !== 'star_agents' &&\n checkConfig() &&\n resultCookieCheck.supported\n ) {\n // Si no hay sesión de rails\n clientAuth0.checkSession({}, function (err, authResult) {\n if (err) {\n console.error(`Error checkSession auth0 (init_session): ${err.description}`)\n IB.cookieManager.deleteCookies(['logged_messages'])\n } else if (authResult) {\n const csrfToken = document.querySelector('[name=csrf-token]').content\n // Si no tiene currentUser, no va a mostrar el formulario de postregisto document.cookie['user_metadata'] y obtiene valores de auth0 authResult\n fetch('/sso_or_postregister', {\n method: 'POST',\n body: JSON.stringify(authResult),\n headers: { 'Content-type': 'application/json; charset=UTF-8', 'X-CSRF-Token': csrfToken },\n })\n .then(r => r.json())\n .then(data => {\n if (data.postregister_form === true) {\n if (document.getElementById('session-tab-registration') === null) {\n horizons_postregister_lightbox()\n }\n } else if (data.redirect_url !== undefined && data.redirect_url !== null) {\n location.href = data.redirect_url\n } else if (data.reload === true) {\n location.reload()\n }\n })\n .catch(error => {\n console.error(`SSO error: ${error}`)\n })\n }\n })\n }\n })\n}\n\nfunction initSSO() {\n setTimeout(() => {\n thirdPartyCookieCheck()\n }, 100)\n // Login - Añadimos la función on incluso en elementos que aún no se han cargado en la carga inicial.\n on({\n eventName: 'click',\n selector: `.js-login-link`,\n handler(e) {\n e.preventDefault()\n auth0Login(false)\n },\n })\n\n document.querySelectorAll('.js-register-link').forEach(link => {\n link.addEventListener('click', function (e) {\n e.preventDefault()\n auth0Login(true)\n })\n })\n\n // Login tras expiración del token\n if (document.querySelector('#auth0_expired_token')?.value === 'true') {\n auth0Login(false)\n }\n\n document.querySelector('#change_password')?.addEventListener('click', function (e) {\n e.preventDefault()\n const webAuth = new auth0.WebAuth({\n domain: AUTH0_CONFIG.custom_domain,\n clientID: AUTH0_CONFIG.clientId,\n redirectUri: AUTH0_CONFIG.redirectUri,\n audience: AUTH0_CONFIG.audience,\n responseType: 'token id_token',\n scope: 'openid profile user_metadata',\n })\n\n const locale = getCurrentLocale()\n const microsite = document.querySelector('#microsite')?.value || 'iberostar'\n const environment = document.querySelector('#environment')?.value\n\n auth0UpdateMetadata(locale, microsite, environment)\n\n let email = document.querySelector('.current-email').innerText\n\n if (\n document.documentElement.dataset.inMicrosite === 'star_agents' &&\n document.querySelector('.edit-user-content #agent_current_code')\n ) {\n email = document.querySelector('.edit-user-content #agent_current_code').value\n }\n // STA - StarAgents\n if (!email) email = document.querySelector('.current-email').value\n\n webAuth.changePassword(\n {\n ui_locales: locale,\n application: 'CMS',\n connection: AUTH0_CONFIG.connection,\n environment,\n microsite,\n email,\n },\n function (err) {\n var text = err ? '#change-password-error' : '#change-password-success'\n\n Modal.showHtml({\n html: document.querySelector(text).outerHTML,\n modalClass: 'multi-modal-full-container',\n onShow: () => {\n ScrollLock.on()\n },\n onClose: () => {\n ScrollLock.off()\n },\n awaitCloseAnimation: true,\n })\n }\n )\n })\n\n // Parameter added to utag_data\n window.utag_data['cookies_consent'] = readCookie('cookies_consent') ? readCookie('cookies_consent') : ''\n\n // Here we check for the open parameter and redirect to auth0 login page\n const TYPE_LIGHTBOX = IB.urlParser.getParam('open')\n const isLogged = IB?.browsing_sessions?.isUserLogged()\n\n if (!isLogged) {\n // Capture microsite value to avoid if registration goes to SSO view\n const microsite = document.querySelector('#microsite')?.value\n\n if (microsite === 'star_agents') return\n\n if (TYPE_LIGHTBOX === 'login') {\n setCookie('prelogin_url', window.location.href)\n auth0Login(false)\n } else if (TYPE_LIGHTBOX === 'register') {\n if (microsite !== 'star_agents') {\n setCookie('prelogin_url', window.location.href)\n auth0Login(true)\n }\n }\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', initSSO)\n","import { setCookie } from '../../utils/cookie_manager';\n\nfunction autoPopUpOpen() {\n let $auto_pop_up = $('#auto-pop-up');\n let is_mobile = IB.currentDevice === 'mobile';\n let bg = is_mobile ? $auto_pop_up.data('mobile') : $auto_pop_up.data('desktop');\n\n if (!$auto_pop_up.length) return;\n\n if (bg !== '' && bg !== undefined) {\n $auto_pop_up.css({\n 'background-image': 'url(' + bg + ')'\n });\n }\n $.fancybox.open($auto_pop_up, {\n afterClose: function () {\n setCookie('seen_auto_pop_up', 'true', 30);\n }\n });\n}\n\n\n$(function () {\n if ($('#auto-pop-up').length) {\n if (typeof $.cookie('seen_auto_pop_up') === 'undefined') {\n autoPopUpOpen();\n }\n }\n});\n","$(document).on('change', '.claim-form [name=\"[have_booking]\"]', function () {\n let $el = $(this);\n let $booking_option = $('.booking-option');\n\n $booking_option.hide();\n $booking_option.find('input, select').each(function () {\n $(this).attr('data-parsley-required', 'false');\n });\n\n $('#' + $el.val()).show();\n $('#' + $el.val() + ' input, #' + $el.val() + ' select').each(function () {\n $(this).attr('data-parsley-required', 'true');\n });\n})\n .on('change', '#hotel_country_id', function () {\n let country_id = $(this).val();\n let $hotel = $('#hotel_id');\n $hotel.find('option').show().not('[data-country-id=\"' + country_id + '\"]')\n .hide();\n $hotel.val('').trigger('change').trigger('formikation.update');\n })\n .on('change', '#hotel_id', function () {\n let hotel_id = $(this).val();\n $('#hotel_room_id').find('option').show()\n .not('[data-hotel-id=\"' + hotel_id + '\"]')\n .hide();\n $('#board_id').find('option').hide()\n .filter(function () {\n return $.inArray(parseInt(hotel_id, 10), $(this).data('hotel-ids')) > -1;\n })\n .show();\n $('#hotel_room_id, #hoard_id').val('').trigger('change')\n .trigger('formikation.update');\n })\n .on('change', '#hotel_room_id', function () {\n let $opt_selected = $(this).find('option:selected');\n let max_occupancy = parseInt($opt_selected.attr('data-max-occupancy'), 10);\n let max_children = parseInt($opt_selected.attr('data-max-children'), 10);\n let $adults = $('#adults');\n let $children = $('#children');\n\n $adults.find('option').show().filter(function () {\n return parseInt($(this).val(), 10) > max_occupancy;\n })\n .hide();\n\n let adults_val = max_occupancy ? Math.min(2, max_occupancy) : 2;\n $adults.val(adults_val).trigger('change').trigger('formikation.update');\n\n if (max_children > 0) {\n if ($children.val() > max_children) {\n $children.val(max_children).trigger('change').trigger('formikation.update');\n }\n $children.prop('disabled', false).find('option').show()\n .filter(function () {\n return parseInt($(this).val(), 10) > max_children;\n })\n .hide();\n } else {\n $children.val('0').trigger('change').trigger('formikation.update');\n $children.prop('disabled', true);\n }\n });\n","$(document).on('click', '.cookies-content .close-fancybox', function () {\n $('.fancybox-close-small')[0].click();\n $('#cookies-config')[0].click();\n});\n\n$(document).on('click', '#agree_cookies_in_cookies_lightbox_floating, #agree_cookies_in_cookies_lightbox', function () {\n $('.fancybox-close-small')[0].click();\n $('#agree-cookies')[0].click();\n});\n\nfunction toggleFaq(event) {\n if(event.target && event.target.parentNode && event.target.parentNode.classList){\n if (event.target.parentNode.classList.contains('collapsible-blocks')) {\n let content = event.target.nextElementSibling;\n\n event.target.classList.toggle('active');\n\n if (content.style.display === 'block') {\n content.style.display = 'none';\n } else {\n content.style.display = 'block';\n }\n }\n }\n}\n\ndocument.addEventListener('click', toggleFaq);\n\n","import { loadHlsVideo } from '../../utils/load_hls_video'\n\ninit()\nfunction init() {\n loadHlsVideo('.video-looping')\n}\n\n$(function () {\n const $video = $('.js-header-video')\n\n if ($video.length === 0) return false\n\n const mp4_src = $video.data('mp4-src')\n const webm_src = $video.data('webm-src')\n\n $video.append(``)\n})\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\n\nconst BLOCK_SELECTOR = '.js-header-customized'\n\nfunction handleElementPageOfferViewConditions(buttonCta) {\n buttonCta.addEventListener('click', function () {\n sendUtagEvent({\n data: {\n event_name: 'offers',\n event_cat: 'offers',\n event_act: 'view offers conditions',\n event_lbl: '',\n event_purpose: 'information',\n event_structure: 'header',\n },\n })\n })\n}\n\nfunction handleElementPageOfferViewHotels(elementCta) {\n elementCta.addEventListener('click', function () {\n sendUtagEvent({\n data: {\n event_name: 'offers',\n event_cat: 'offers',\n event_act: 'view hotels',\n event_lbl: '',\n event_purpose: 'inspiration',\n event_structure: 'header',\n },\n })\n })\n}\n\nexport function initializeUtagEvents(blockSelector) {\n const block = document.querySelector(blockSelector)\n\n if (!block) return\n\n const elementPageOfferTitleViewConditions = document.querySelector(\n `${BLOCK_SELECTOR} #id-offer-page-title-view-conditions`\n )\n\n const elementPageOfferTitleViewHotels = document.querySelector(`${BLOCK_SELECTOR} #id-offer-page-title-view_hotels`)\n\n if (elementPageOfferTitleViewConditions) {\n handleElementPageOfferViewConditions(elementPageOfferTitleViewConditions)\n }\n\n if (elementPageOfferTitleViewHotels) {\n handleElementPageOfferViewHotels(elementPageOfferTitleViewHotels)\n }\n\n if (block.classList.contains('js-header-with-offer')) {\n const elementPageOfferCtaViewConditions = document.querySelector(`${BLOCK_SELECTOR} .js-offer-cta-show-conditions`)\n const elementPageOfferCtaViewHotels = document.querySelector(`${BLOCK_SELECTOR} .js-offer-cta-show-hotels`)\n\n if (elementPageOfferCtaViewConditions) {\n handleElementPageOfferViewConditions(elementPageOfferCtaViewConditions)\n }\n\n if (elementPageOfferCtaViewHotels) {\n handleElementPageOfferViewHotels(elementPageOfferCtaViewHotels)\n }\n }\n}\n","import { FILTER_OFFER_EVENT } from '../../blocks/hotels_info_with_filtering_packed/hotels_info_with_filtering.constants'\nimport Modal from '../../shared/modal/modal'\n\nimport { initializeUtagEvents } from './offer_modal.analytics'\n\nfunction initializeShowHotelsButton(button) {\n button.addEventListener('click', event => {\n Modal.close()\n // this timeout is for user experience\n setTimeout(() => {\n const offerId = event.target.dataset.offerId\n const customEvent = new CustomEvent(FILTER_OFFER_EVENT, { detail: { offerId } })\n document.dispatchEvent(customEvent)\n }, 500)\n })\n}\n\nexport function initModal(modalSelector) {\n const modalContent = document.querySelector(modalSelector)\n\n if (modalContent.classList.contains('initialized')) return\n\n const showHotelsButton = modalContent.querySelector('.js-offer-show-hotels')\n\n if (showHotelsButton) {\n initializeShowHotelsButton(showHotelsButton)\n }\n\n initializeUtagEvents(modalSelector)\n\n modalContent.classList.add('initialized')\n}\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\nimport on from '../../utils/events_delegation'\nimport { currentPageType } from '../../utils/page_type_detector'\nimport { getCleanedString } from '../../utils/utilities'\n\nexport function initializeUtagEvents(parentSelector) {\n on({\n eventName: 'click',\n selector: `${parentSelector} .utag-offer-modal-go-to-campaign`,\n handler() {\n const utagEec = JSON.parse(this.dataset.utagEec)\n\n sendUtagEvent({\n data: {\n enh_action: 'promo_click',\n event_name: 'select_promotion',\n event_cat: 'ecommerce',\n event_act: 'promo click',\n event_lbl: getCleanedString(utagEec.promotion_name),\n event_purpose: 'booking',\n event_structure: 'popup',\n promotion_id: [utagEec.promotion_id],\n promotion_name: [utagEec.promotion_name],\n promotion_creative: [utagEec.promotion_creative],\n promotion_position: [utagEec.promotion_position],\n },\n })\n\n if (currentPageType.isDestination()) {\n sendUtagEvent({\n data: {\n event_name: 'offers',\n event_cat: 'offers',\n event_act: 'view offers conditions',\n event_lbl: '',\n event_purpose: 'information',\n event_structure: 'popup',\n },\n })\n }\n },\n })\n\n if (currentPageType.isDestination()) {\n on({\n eventName: 'click',\n selector: `${parentSelector} .utag-offer-modal-show-hotels`,\n handler() {\n sendUtagEvent({\n data: {\n event_name: 'offers',\n event_cat: 'offers',\n event_act: 'view hotels',\n event_lbl: '',\n event_purpose: 'inspiration',\n event_structure: 'popup',\n },\n })\n },\n })\n }\n}\n","import './head_video'\n\nimport { currentDevice } from '../../core/utils/currentDevice'\nimport Modal from '../../shared/modal/modal'\nimport { initModal } from '../../shared/offer_modal/offer_modal'\nimport on from '../../utils/events_delegation'\nimport getRealMarketContent, { dispatchRealMarketContentUpdatedEvent } from '../../utils/get_real_market_content'\nimport { FILTER_OFFER_EVENT } from '../hotels_info_with_filtering_packed/hotels_info_with_filtering.constants'\n\nimport { initializeUtagEvents } from './header_customized.analytics'\n\nconst BLOCK_SELECTOR = '.js-header-customized'\nconst SHOW_CONDITIONS_BUTTON_SELECTOR = '.js-offer-cta-show-conditions'\n\nfunction deactivateAllFilterBlocks() {\n document.querySelectorAll('.js-filter').forEach(filterBlock => {\n filterBlock.classList.remove('active')\n filterBlock.querySelector('.js-filter-block').style.display = 'none'\n\n const filterBlockTitle = filterBlock.querySelector('.js-filter-title')\n filterBlockTitle.classList.remove('active')\n filterBlockTitle.setAttribute('aria-expanded', 'false')\n })\n}\n\nfunction initShowHotelButtonClickLogic() {\n function handlerShowHotelButtonClickLogic(event) {\n Modal.close()\n const offerId = event.target.dataset.offerId\n const customEvent = new CustomEvent(FILTER_OFFER_EVENT, { detail: { offerId } })\n document.dispatchEvent(customEvent)\n }\n\n on({ eventName: 'click', selector: '.js-offer-cta-show-hotels', handler: handlerShowHotelButtonClickLogic })\n}\n\nfunction initializeShowConditionsButton() {\n const showConditionsButton = document.querySelector(SHOW_CONDITIONS_BUTTON_SELECTOR)\n\n if (!showConditionsButton) return\n\n function handleShowConditionsButtonClick() {\n if (currentDevice.isMobile) {\n initModal(`#${showConditionsButton.dataset.sidePanelId}`)\n } else {\n const modalId = `js-offer-modal-${showConditionsButton.dataset.offerId}`\n Modal.show(modalId, {\n onShow: modal => {\n ScrollLock.on()\n initModal(`#${modalId}`)\n\n // move texts from original element to modal\n const setTexts = modal.querySelectorAll('[data-take-text-from]:not([data-text-filled])')\n\n setTexts.forEach(textElem => {\n const originId = textElem.dataset.takeTextFrom\n\n if (!originId) return\n\n const originElem = document.querySelector(`#${originId}`)\n\n if (!originElem) return\n\n const clonedElement = originElem.cloneNode(true)\n\n clonedElement.className = ''\n\n textElem.appendChild(clonedElement)\n textElem.dataset.textFilled = ''\n })\n },\n onClose: () => {\n ScrollLock.off()\n },\n awaitCloseAnimation: true,\n })\n }\n }\n\n on({ eventName: 'click', selector: SHOW_CONDITIONS_BUTTON_SELECTOR, handler: handleShowConditionsButtonClick })\n}\n\nfunction initHeaderCustomizedWithOffer() {\n deactivateAllFilterBlocks()\n initShowHotelButtonClickLogic()\n initializeShowConditionsButton()\n}\n\nfunction updateOfferWithRealMarketContent(callback) { \n const blockSelector = '.js-header-with-offer'\n const mainContainer = document.querySelector(blockSelector)\n const blockId = mainContainer?.dataset.blockId\n const constrainedViewId = mainContainer?.dataset.constrainedViewId\n const resourceId = mainContainer?.dataset.resourceId\n const resourceType = mainContainer?.dataset.resourceType\n const additionalParams = `resource_id=${encodeURIComponent(resourceId)}&resource_type=${encodeURIComponent(resourceType)}`; \n if (blockId && constrainedViewId) {\n getRealMarketContent({ blockId, constrainedViewId, additionalParams })\n .then(response => {\n const headerContent = document.querySelector('.js-header-with-offer-content')\n\n if (!headerContent) return\n\n headerContent.outerHTML = response.html_replacement\n\n dispatchRealMarketContentUpdatedEvent({ blockSelector, blockName: 'header-with-offer' })\n callback && callback()\n })\n .catch(error => {\n if (error !== 'alreadyApplied') return\n callback && callback()\n })\n } else {\n callback && callback()\n }\n}\n\nfunction initBlock() {\n // Init countdown (deadline requires jquery object)\n $('[data-deadline]')?.deadline()\n if (document.querySelector('.js-header-with-offer-cta')) {\n initHeaderCustomizedWithOffer()\n }\n\n Modal.init({\n openTrigger: 'data-modal-legal-conditions-trigger',\n awaitCloseAnimation: true,\n })\n\n initializeUtagEvents(BLOCK_SELECTOR)\n}\n\nfunction init() { \n const header = document.querySelector(BLOCK_SELECTOR)\n\n if (!header) return\n\n if (document.querySelector('.js-header-with-offer')) {\n updateOfferWithRealMarketContent(initBlock)\n } else {\n initBlock()\n }\n}\n\ninit()\n","import countdown from '../../../utils/countdown'\n\nfunction validateCountdown(countdownEnd) {\n if (!countdownEnd) return false\n\n const currentDateTime = new Date()\n const countdownEndTime = new Date(countdownEnd)\n\n if (countdownEndTime >= currentDateTime) return true\n}\n\nexport function showCountdown(blockSelector) {\n if (!blockSelector) return\n\n const block = document.querySelector(blockSelector)\n\n if (!block) return\n\n const countdowns = block.querySelectorAll('.js-countdown')\n\n if (!countdowns.length) return\n\n let countdownsInitialized = false\n\n countdowns.forEach(element => {\n const countdownIsValid = validateCountdown(element.dataset.countdown)\n if (!countdownsInitialized && countdownIsValid) {\n countdown(1000, 9999)\n countdownsInitialized = true\n } else if (!countdownIsValid) {\n element.remove()\n }\n })\n}\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\nimport on from '../../utils/events_delegation'\n\nexport function initializeUtagEvents() {\n const megabannerSlider = document.querySelector('.js-home-megabanner-slider')\n const megabannerItems = megabannerSlider.querySelectorAll('.js-home-megabanner-item:not(.swiper-slide-duplicate)')\n const emptyPromoName = 'empty promotion'\n const emptyPromoId = 'empty-promotion'\n\n const utagData = {\n enh_action: 'impression list',\n event_name: 'view promotion',\n event_cat: 'ecommerce',\n event_act: 'promotion impression list',\n event_lbl: '',\n non_interaction: '1',\n event_purpose: 'booking',\n event_structure: 'impression',\n promotion_id: [],\n promotion_name: [],\n promotion_creative: ['home|home|video with fastbooking'],\n promotion_position: [],\n }\n\n megabannerItems.forEach((item, index) => {\n // Corporative\n if (item.classList.contains('js-corporative-banner')) {\n utagData.promotion_id.push('wave-of-change')\n utagData.promotion_name.push('wave of change')\n utagData.promotion_creative.push('home|home|video with fastbooking')\n utagData.promotion_position.push((index + 1).toString())\n } else if (item.classList.contains('js-last-searches-slide')) {\n // Last Searches\n const dataHotelName = item.querySelector('[data-hotel-name]')\n const promotionName = dataHotelName.dataset.hotelName.toLowerCase()\n const promotionId = promotionName.replaceAll(' ', '-')\n utagData.promotion_id.push(promotionId)\n utagData.promotion_name.push(promotionName)\n utagData.promotion_creative.push('home|home|video with fastbooking')\n utagData.promotion_position.push((index + 1).toString())\n } else {\n // Items Slides\n const dataPromoName = item.querySelector('[data-promotion-name]')\n const dataPromoId = item.querySelector('[data-promotion-id]')\n const promoName = dataPromoName?.dataset.promotionName.toLowerCase()\n const promoIdValue = dataPromoId?.dataset.promotionId.toLowerCase()\n const promoId = promoIdValue?.replaceAll(' ', '-')\n utagData.promotion_name.push(promoName || emptyPromoName)\n utagData.promotion_id.push(promoId || emptyPromoId)\n utagData.promotion_creative.push('home|home|video with fastbooking')\n utagData.promotion_position.push((index + 1).toString())\n }\n })\n\n sendUtagEvent({ data: utagData })\n\n // Event for CTA Buttons\n on({\n eventName: 'click',\n selector: '.utag-home-megabanner-cta',\n handler() {\n const utag_data = {\n enh_action: 'promo_click',\n event_name: 'select_promotion',\n event_cat: 'ecommerce',\n event_act: 'promo click',\n event_purpose: 'booking',\n event_structure: 'header',\n event_lbl: '',\n promotion_id: [],\n promotion_name: [],\n promotion_creative: ['home|home|video with fastbooking'],\n promotion_position: [],\n }\n\n const promoClickName = this.dataset.promotionName.toLowerCase()\n const promoClickId = this.dataset.promotionId.toLowerCase().replaceAll(' ', '-')\n\n let slideIndex = this.closest('.js-slide-element')?.dataset.swiperSlideIndex\n slideIndex = slideIndex ? Number(slideIndex) : 0\n\n utag_data.promotion_name.push(promoClickName || emptyPromoName)\n utag_data.promotion_id.push(promoClickId || emptyPromoId)\n utag_data.promotion_creative.push('home|home|video with fastbooking')\n utag_data.promotion_position.push(slideIndex + 1).toString()\n\n sendUtagEvent({ data: utag_data })\n },\n })\n}\n","import '../../vendors/swiper/swiper.scss'\n\nimport Swiper from 'swiper'\nimport { Autoplay, Manipulation, Navigation, Pagination } from 'swiper/modules'\n\nimport { ADA_DISABLED_EVENT, ADA_ENABLED_EVENT } from '../../accessibility/constants'\nimport { currentDevice } from '../../core/utils/currentDevice'\nimport { updateLastSearches } from '../../shared/last_searches/last_searches'\nimport { LAST_SEARCHES_LOADED_EVENT } from '../../shared/last_searches_cards/last_searches_cards.constants'\nimport { loadHlsVideo } from '../../utils/load_hls_video'\nimport { addSourcesToVideosFromDataAttributes } from '../../utils/videoUtils'\n\nimport { showCountdown } from './cta_info_card/cta_info_card'\nimport { initializeUtagEvents } from './home_megabanner_slider.analytics'\n\nconst BLOCK_SELECTOR = '.js-home-megabanner-slider'\nconst CORPORATIVE_SLIDE_SELECTOR = '.js-corporative-banner'\nconst INFO_CARD_SELECTOR = '.js-home-megabanner-slider-info-card'\nconst SLIDER_CONTROLS_SELECTOR = '.js-home-megabanner-slider-controls'\n\n/**\n * Gets last visited hotel data from localstorage\n *\n * @returns last visited hotel data\n */\nfunction getLastVisitedHotel() {\n let local_last_searches = localStorage.getItem('last_searches')\n if (!local_last_searches) {\n return false\n }\n\n local_last_searches = JSON.parse(local_last_searches)\n if (!local_last_searches.length) {\n return false\n }\n\n // Get only hotel searches and take the last one\n const lastVisitedHotel = local_last_searches.filter(search => search.place_to_go.includes('h')).pop()\n\n return lastVisitedHotel\n}\n\n/**\n * Create a new slide with the last search hotel data\n *\n * @param {Node} megabannerSlider\n */\nfunction createLastVisitedHotelSlide(megabannerSlider, swiper) {\n const lastVisitedHotelSlide = megabannerSlider.querySelector('.js-last-searches-slide')\n if (!lastVisitedHotelSlide) {\n return\n }\n\n // Update last searches before adding the last visited hotel card to the swiper\n updateLastSearches(() => {\n const lastVisitedHotel = getLastVisitedHotel()\n if (!lastVisitedHotel) {\n lastVisitedHotelSlide.remove()\n const homeMegabanner = document.querySelector(BLOCK_SELECTOR)\n homeMegabanner.classList.add('margin-extra')\n } else {\n const hotelNameContainer = lastVisitedHotelSlide.querySelector('[data-hotel-name]')\n const hotelStarsContainer = lastVisitedHotelSlide.querySelector('[data-stars-name]')\n const hotelDescriptionContainer = lastVisitedHotelSlide.querySelector('[data-hotel-description]')\n const visitButton = lastVisitedHotelSlide.querySelector('[data-hotel-url]')\n const hotelImage = lastVisitedHotelSlide.querySelector('[data-last-search-hotel-img]')\n\n if (IB.currentDevice === 'desktop') {\n hotelImage.src = lastVisitedHotel.image_desktop\n } else if (IB.currentDevice === 'mobile') {\n hotelImage.src = lastVisitedHotel.image_mobile\n } else {\n hotelImage.src = lastVisitedHotel.image_tablet\n }\n // Add info last search hotel to card\n hotelNameContainer.innerHTML = lastVisitedHotel.title\n hotelNameContainer.setAttribute('data-hotel-name', lastVisitedHotel.title)\n hotelStarsContainer.classList.add(`r${lastVisitedHotel.category}*`)\n hotelDescriptionContainer.innerHTML = lastVisitedHotel.description\n\n // Add url to button\n const urlDomain = `${window.location.protocol}//${window.location.hostname}`\n const urlVisit = urlDomain + lastVisitedHotel.path\n visitButton.href = urlVisit\n\n // Reduce width if there is more than one card in mobile\n window.addEventListener(LAST_SEARCHES_LOADED_EVENT, () => {\n if (currentDevice.isMobile) {\n const cards = megabannerSlider.querySelectorAll('.js-last-search-card')\n if (cards.length > 1) {\n cards.forEach(card => {\n card.classList.add('reduce-width')\n })\n }\n }\n })\n\n lastVisitedHotelSlide.classList.remove('is-hidden')\n swiper.addSlide(swiper.realIndex + 1, lastVisitedHotelSlide)\n swiper.update()\n }\n })\n}\n\nfunction manageSlideVideoPlayingState(swiper, index, state = 'stop') {\n const slide = swiper.slides[index]\n const video = slide?.querySelector('video')\n\n if (!video) return\n\n if (state === 'play') {\n video.play()\n } else {\n video.pause()\n video.currentTime = 0\n }\n}\nfunction showInfoCards(parentElem) {\n const infoCards = parentElem.querySelectorAll(INFO_CARD_SELECTOR)\n\n if (!infoCards.length) return\n\n infoCards.forEach(infoCard => {\n infoCard.classList.remove('is-hidden')\n })\n}\n\nfunction init() {\n const megabannerSlider = document.querySelector(BLOCK_SELECTOR)\n\n if (!megabannerSlider) return\n\n const autoplaySpeed = (megabannerSlider.dataset.autoplaySpeed || 6) * 1000\n\n // Remove corporative slide\n const corporativeSlide = megabannerSlider.querySelector(CORPORATIVE_SLIDE_SELECTOR)\n if (corporativeSlide) {\n corporativeSlide.remove()\n }\n\n initializeUtagEvents()\n // Initialize swiper\n const swiperElement = megabannerSlider.querySelector('.js-swiper-container')\n\n Swiper.use([Manipulation, Navigation, Pagination, Autoplay])\n new Swiper(swiperElement, {\n slidesPerView: 1,\n spaceBetween: 0,\n loop: true,\n speed: 800,\n effect: 'fade',\n autoplay: {\n delay: autoplaySpeed,\n disableOnInteraction: false,\n },\n pagination: {\n el: '.js-swiper-pagination',\n clickable: true,\n type: 'bullets',\n },\n navigation: {\n prevEl: megabannerSlider.querySelector('.home-megabanner-slider__button.nav-btn-prev'),\n nextEl: megabannerSlider.querySelector('.home-megabanner-slider__button.nav-btn-next'),\n },\n on: {\n init(swiper) {\n showInfoCards(swiper.el)\n // Create last visited hotel slide\n createLastVisitedHotelSlide(megabannerSlider, swiper)\n },\n slideChange(swiper) {\n manageSlideVideoPlayingState(swiper, swiper.previousIndex, 'stop')\n manageSlideVideoPlayingState(swiper, swiper.activeIndex, 'play')\n },\n },\n })\n\n // Show controls\n const sliderControls = document.querySelector(SLIDER_CONTROLS_SELECTOR)\n sliderControls?.classList.remove('is-hidden')\n\n // Load videos\n const videos = megabannerSlider.querySelectorAll('.js-head-video')\n if (videos.length) {\n addSourcesToVideosFromDataAttributes(videos)\n }\n loadHlsVideo(BLOCK_SELECTOR, {\n autoplay: false,\n loop: true,\n playsWhenEnterViewport: false,\n })\n\n // Each slide could have a wrapping link, that is, the whole slide is clickable and should redirect to wrapping link url\n // but for html semantic reasons is not possible use tag as a wrapper (has buttons and another tags inside)\n // Because of this, an inline hidden link was rendered in the html and we trigger it through slide click.\n const megabannerItemsWithLink = megabannerSlider.querySelectorAll('.js-slide-element-with-link')\n\n if (megabannerItemsWithLink.length) {\n megabannerItemsWithLink.forEach(item => {\n item.addEventListener('click', event => {\n if (event.target.tagName === 'A' || event.target.tagName === 'BUTTON') return\n item.querySelector('.js-slide-link')?.click()\n })\n })\n }\n\n // Initialize countdowns\n showCountdown(BLOCK_SELECTOR)\n}\n\n// Public\nwindow.IB.megabanner = {\n startSlider: init,\n}\n\n// Initialize\n;(() => {\n const megabannerSlider = document.querySelector(BLOCK_SELECTOR)\n\n if (!megabannerSlider) return\n\n const corporativeSlide = megabannerSlider.querySelector(CORPORATIVE_SLIDE_SELECTOR)\n\n if (!corporativeSlide || IB.is_in_microsite) {\n init()\n }\n\n // A11y - changes main header background\n const mainHeaderWrapper = document.querySelector('.wrapper-main-header')\n const noTransitionDuration = 600\n const backgroundHorizonsDelay = 200\n\n function handleTransition(enable) {\n if (!mainHeaderWrapper) return\n\n mainHeaderWrapper.classList.add('no-transition')\n\n setTimeout(() => {\n if (enable) {\n mainHeaderWrapper.classList.add('background-horizons')\n document.body.classList.remove('transparent-header')\n } else {\n mainHeaderWrapper.classList.remove('background-horizons')\n document.body.classList.add('transparent-header')\n }\n }, backgroundHorizonsDelay)\n\n setTimeout(() => {\n mainHeaderWrapper.classList.remove('no-transition')\n }, noTransitionDuration)\n }\n\n document.addEventListener(ADA_ENABLED_EVENT, () => handleTransition(true))\n document.addEventListener(ADA_DISABLED_EVENT, () => handleTransition(false))\n\n // Show the white header if you start loading with ADA on\n document.addEventListener('DOMContentLoaded', () => {\n if (document.body.classList.contains('ada')) {\n handleTransition(true)\n }\n })\n})()\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\n\nexport function initializeUtagEvents(buttons) {\n /* Click on FH awards module */\n buttons?.forEach(btn => {\n btn.addEventListener('click', () => {\n sendUtagEvent({\n data: {\n event_name: 'hotel_awards',\n event_cat: 'hotel information',\n event_act: 'see hotel info',\n event_lbl: 'awards',\n event_purpose: 'inspiration',\n event_structure: 'body',\n },\n })\n })\n })\n}\n","import { currentDevice } from '../../core/utils/currentDevice'\n\nimport { initializeUtagEvents } from './hotel_information_ratings.analytics'\n\nfunction init() {\n const showMoreBtn = document.querySelectorAll('.js-awards-show-more')\n initializeUtagEvents(showMoreBtn)\n\n showMoreBtn.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n event.stopPropagation()\n const target = event.target\n const awardsList = target.closest('.awards-list')\n const hiddenItems = awardsList.querySelectorAll('.award-item.hidden')\n\n hiddenItems.forEach((item, index) => {\n if (index < 3) {\n item.classList.remove('hidden')\n }\n })\n if (hiddenItems.length < 3) {\n target.classList.add('hidden')\n }\n })\n })\n}\n\nif (currentDevice.isMobile || currentDevice.isLikeMobile) {\n init()\n}\n","export const FILTER_OFFER_EVENT = 'hotels_info_with_filtering:apply_offer'\n\nexport const FILTERS_IN_PARAMS = [\n 'filter_destinations',\n 'filter_categories',\n 'filter_amenities',\n 'filter_specialties',\n 'filter_offers',\n]\n","function init() {\n const $block = $('.landing-typekit-header')\n if (!$block.length) return\n\n const $image = $block.find('.image')\n const $hotel_list = $(\"div[data-block-layout='hotels_info_with_filtering'], div[data-block-layout='hotel_list']\")\n\n if ($hotel_list.length) $block.find('a[href=\"#hotels-info-with-filtering\"]').removeClass('not-visible')\n if (\n $image.length &&\n IB.currentDevice !== 'desktop' &&\n $image.data('mobile') !== '' &&\n $image.data('mobile') !== undefined\n ) {\n $image.css('background-image', `url(${$image.data('mobile')})`)\n }\n\n const $menu_items = $block.find('.internal-nav-cnt-nfh')\n if ($menu_items.length) {\n IB.currentDevice === 'mobile' ? initMenuItemsMobile($menu_items) : initMenuItems($block, $menu_items)\n\n initCheckInternalNav()\n\n if (IB.currentDevice === 'tablet') {\n let position = $(window).scrollTop()\n const $header_sticky = $('#header-sticky')\n const distance = $menu_items.offset().top + $menu_items.height()\n $(window).on('scroll', function () {\n const scroll = $(window).scrollTop()\n if (scroll > distance) {\n if (scroll > position) $header_sticky.css('transform', 'translate(0, 300px)')\n else $header_sticky.css('transform', 'translate(0, 378px)')\n } else $header_sticky.css('transform', 'translate(0, -90px)')\n\n position = scroll\n })\n }\n }\n}\n\nfunction initMenuItems($block, $menu) {\n const $clone_menu = $menu.first().clone(true, true)\n const $header_sticky = $('#header-sticky')\n $menu.find('.internal-nav').addClass('no-sticky')\n\n $header_sticky.find('.sticky-internal-nav .wrapper').html($clone_menu)\n\n const block_height = $block.outerHeight()\n const block_bottom = $block.offset().top + block_height\n\n $(window).on('scroll', function () {\n menuSticky(block_bottom, $header_sticky)\n })\n}\n\nfunction initMenuItemsMobile($menu) {\n const $mobile_sticky_container = $('.footer-fixed-buttons')\n if ($mobile_sticky_container.length) $mobile_sticky_container.prepend($menu)\n}\n\nfunction menuSticky(block_bottom, $header_sticky) {\n if (window.pageYOffset > block_bottom + 20) {\n $header_sticky.addClass('active')\n } else {\n $header_sticky.removeClass('active')\n $('#more-container-sticky').hide()\n\n $('.floating-action .active').map(function (index, elem) {\n return $(elem).removeClass('active')\n })\n }\n}\n\nlet blocksObserver\nlet initialized = false\n\nfunction initCheckInternalNav() {\n if (initialized) return\n initialized = true\n\n const arr_menu = []\n const $sticky_header = $('#header-sticky')\n const header_height = $sticky_header.height()\n\n $('.internal-nav-cnt-nfh')\n .first()\n .find('ul li.menu_item:not(.multi-button) a')\n .each(function () {\n arr_menu.push($(this).attr('href'))\n })\n\n // Si se deja de dar soporte a IE11, podríamos borrar esta comprobación y el método checkMenuLink entero y dejar solo el código del else.\n if (!('IntersectionObserver' in window)) {\n $(window).on('scroll', function () {\n checkMenuLink($(this))\n })\n } // end IE11\n else {\n /** -------- INTERSECTION OBSERVER ACTIVE INTERNAL LINK -------- */\n const options_blocks = {\n root: null,\n rootMargin: '0px 0px 0px 0px',\n threshold: 0.5,\n }\n\n const $blocks = $('[role=\"main\"] > *[name]')\n\n blocksObserver = new IntersectionObserver(activeBlock, options_blocks)\n $blocks.each(function (i, block) {\n blocksObserver.observe(block)\n })\n }\n\n function checkMenuLink($el) {\n const $items = $('.internal-nav-cnt-nfh ul li.menu_item:not(.multi-button)')\n const $this = $el\n const scroll_top = $sticky_header.hasClass('active') ? $this.scrollTop() + header_height : $this.scrollTop()\n\n $items.removeClass('active')\n\n if (!$sticky_header.hasClass('active') && IB.currentDevice !== 'mobile') {\n $items.find(`[href=\"${arr_menu[0]}\"]`).parent('.menu_item').addClass('active')\n return false\n }\n\n $.each(arr_menu, function (indexInArray, value) {\n const $box = $(value).length ? $(value) : $(`[name=${value.slice(1)}]`)\n\n if (!$box.length) return false\n\n const is_mobile = IB.currentDevice === 'mobile'\n let scroll_compensation = is_mobile\n ? $('.internal-nav-cnt-nfh:visible .menu-trigger-responsive').outerHeight() + 21\n : 30\n\n if (is_mobile && $box.offset().top < scroll_top) {\n // will scroll up, so header will be visible\n scroll_compensation += $('.mobile-header-cnt').height() + 10\n }\n\n const box_top = $box.offset().top - scroll_compensation\n const box_bottom = box_top + $box.height()\n\n if (alreadyInView(scroll_top, box_top, box_bottom)) {\n const $item = $items.find(`[href=\"${value}\"]`).parent('.menu_item')\n $item.addClass('active')\n }\n })\n }\n}\n\nfunction activeBlock(entries) {\n $.each(entries, function (i, entry) {\n if (entry.isIntersecting) {\n const $block = $(entry.target)\n const value = $block.attr('name')\n const $items = $('.internal-nav-cnt-nfh ul li.menu_item:not(.multi-button)')\n $items.removeClass('active')\n if (value !== undefined && value !== null) {\n const $item = $items.find(`[href=\"#${value}\"]`).parent('.menu_item')\n $item.addClass('active')\n }\n }\n })\n}\n\nfunction alreadyInView(elemTop, docViewTop, docViewBottom) {\n return elemTop >= docViewTop && elemTop <= docViewBottom\n}\n\nwindow.IB.landing_typekit_header = {\n init,\n}\n\nIB.landing_typekit_header.init()\n","let $register_form = $('.b-register-form');\nlet halfs = [0, 1, 5, 6];\nlet thirds = [2, 3, 4];\nlet only = [2];\n$register_form.find('.register .fz-row').each(function (i) {\n if (halfs.indexOf(i) != -1) $(this).addClass('half');\n if (thirds.indexOf(i) != -1) $(this).addClass('third');\n if (only.indexOf(i) != -1) $(this).addClass('only');\n});\n$register_form.find('.textual-content').remove();\n// para añadir cuando esten hechas las RRSS $('.row.actions').append('¿Prefieres registrarte con tus redes sociales?');\n$register_form.find('.block-form').addClass('show visible');\n\n$(document).on('click', '.b-register-form .switch-links', function () {\n let blocks = { hiddenBlock: '.rrss-form', visibleBlock: '.block-form' };\n if ($(this).attr('id') === 'linkto_rrss') {\n let aux = blocks.hiddenBlock;\n blocks.hiddenBlock = blocks.visibleBlock;\n blocks.visibleBlock = aux;\n }\n $(blocks.hiddenBlock).removeClass('show visible');\n $(blocks.visibleBlock).addClass('show');\n setTimeout(function () {\n $(blocks.visibleBlock).addClass('visible');\n }, 100);\n});\n\n\n$(document).on('click', 'a[data-link=\"profiling\"]', function (e) {\n $('[data-link=\"profiling-anchor\"]').each(function () {\n $(this).show('slow');\n });\n});\n\n$(document).on('click', '#link-form-here', function (e) {\n var noSpam = document.querySelector('.content-spam');\n noSpam.classList.toggle('spam');\n});\n","/**\n * Force Call Center Lightbox\n *\n * When cancel online bookings option is enabled in CMS,\n * we override the following links:\n * - Manage bookings in Vue header (already rendered with the FLAG_CLASS)\n * - Manage bookings in footer (a.manage-bookings)\n * - Points exchange in MIB (.bottom-links-container both .exchange-points and .cancel links)\n *\n * with a XHR petition that returns a lightbox, very much alike the contact lightbox.\n * Not overriding directly without the class to make it clear that the click\n * event is being overriden by this enabled mode in the CMS.\n *\n **/\nimport { getLazyData } from '../../utils/get_lazy_data';\nimport { readCookie } from '../../utils/cookie_manager';\nimport { getPrefix } from '../../core/utils/locale.js';\n\nconst ONLINE_BOOKINGS_DISABLED = document.getElementsByTagName('body')[0].classList.contains('js-force-callcenter-lightbox');\nif (ONLINE_BOOKINGS_DISABLED) {\n let htmlTag = document.documentElement;\n let device = htmlTag.dataset.deviceType;\n\n let classes = '.js-force-callcenter-lightbox-link, .manage-my-booking, .bottom-links-contaniner .cancel, .bottom-links-contaniner .modify, .bottom-links-contaniner .modify-booking, .bottom-links-contaniner .exchange-points';\n if (device !== 'mobile') {\n classes += ', a.manage-bookings';\n } else {\n classes += ', .menu_item:not(.title) a.manage-bookings, .bottom-links-mobile .cancel, .bottom-links-mobile .modify, .bottom-links-mobile .modify-booking, .bottom-links-mobile .exchange-points, .points-bottom .exchange-points-link';\n }\n\n $(document).on('click', `${classes}`, function (e) {\n e.preventDefault();\n let htmlTag = document.documentElement;\n let country = readCookie('x-country');\n let marketId = htmlTag.dataset.marketId;\n let site = IB.is_in_microsite ? htmlTag.dataset.inMicrosite : 'iberostar';\n let url = `${getPrefix()}/ajax_contents/lightbox_callcenter/?country=${country}&market_id=${marketId}&site=${site}&force=${force_cc}`;\n\n getLazyData(url, function (lightboxHtml) {\n $.fancybox.open(lightboxHtml);\n });\n });\n}\n","import { getPrefix } from '../../core/utils/locale.js'\nimport { deleteCookies, readCookie } from '../../utils/cookie_manager'\nimport { getLazyData } from '../../utils/get_lazy_data'\nimport { openSessionFancybox } from '../../utils/ib_session_fancybox'\n\nimport { initializeUtagEvents } from './horizons_postregister_lightbox.analytics.js'\n\nfunction cleanSymbols(value) {\n if (/[+%&]/.test(value)) {\n value = value.replace(/[+%&]/g, ' ')\n }\n return value\n}\n\nconst openPostregistrationForm = function postregistration_form() {\n const auth0_postregister_form = readCookie('auth0_postregister_form')\n const user_metadata = readCookie('user_metadata')\n\n if (auth0_postregister_form !== 'true' && user_metadata === null) return\n\n try {\n const prelead_type = cleanSymbols(readCookie('prelead_type'))\n\n if (prelead_type && prelead_type !== null) {\n initializeUtagEvents(prelead_type)\n }\n\n const metadata = readCookie('user_metadata')\n\n // Asegúrate de que metadata no sea nulo antes de parsear\n if (metadata) {\n const metadataAsObject = JSON.parse(decodeURIComponent(metadata))\n let metadataAsUrl = ''\n for (const key in metadataAsObject) {\n metadataAsUrl += `&${key}=${metadataAsObject[key]}`\n }\n const URL_LIGHTBOX = `${getPrefix()}/ajax_contents/lightbox_for_block/?lightbox_type=registration&postregistration=true${metadataAsUrl}`\n\n getLazyData(URL_LIGHTBOX, function (fancyboxHtml) {\n openSessionFancybox(fancyboxHtml, '.register form', {}, true)\n\n // Delete cookie when user cancels post-registration window\n const cancelPostRegister = document.querySelector('.cancel-register')\n cancelPostRegister?.addEventListener('click', () => {\n deleteCookies(['prelead_type'])\n })\n })\n }\n } catch (e) {\n console.log(`Error horizons_postregister_lightbox.js: ${e}`)\n }\n}\n\nexport default openPostregistrationForm\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\nimport { getCleanedString } from '../../utils/utilities'\n\nexport function initializeUtagEvents(eventLabel) {\n sendUtagEvent({\n data: {\n event_name: 'pre_lead',\n event_cat: 'lead',\n event_act: 'pre lead',\n event_lbl: getCleanedString(eventLabel),\n event_purpose: 'loyalty',\n event_structure: 'impression',\n },\n })\n}\n","import { checkloadComponentStyles } from '../../src/lazy_wrappers/lazy_block_lightbox'\n\nexport function openSessionFancybox(fancyboxHtml, formSelector, userData, onlyRegister) {\n $.fancybox.open(fancyboxHtml, {\n trapFocus: false,\n afterShow: () => {\n IB.deviceDetector.loadDeviceDataToForm()\n checkloadComponentStyles()\n },\n })\n if (formSelector === '.login form') {\n document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-login\"]').classList.add('active')\n document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-registration\"]').classList.remove('active')\n if (document.getElementById('session-tab-login')) {\n document.getElementById('session-tab-login').classList.add('active')\n }\n document.getElementById('session-tab-registration').classList.remove('active')\n IB.forms.initValidation($(formSelector))\n } else {\n if (document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-login\"]')) {\n document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-login\"]').classList.remove('active')\n }\n if (document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-registration\"]')) {\n document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-registration\"]').classList.add('active')\n }\n if (document.getElementById('session-tab-login')) {\n document.getElementById('session-tab-login').classList.remove('active')\n }\n if (document.getElementById('session-tab-registration')) {\n document.getElementById('session-tab-registration').classList.add('active')\n }\n IB.forms.initValidation($(formSelector))\n }\n\n if (onlyRegister) {\n if (document.getElementsByClassName('cabecera').length > 0) {\n document.getElementsByClassName('cabecera')[0].remove()\n }\n if (document.getElementById('session-tab-login')) {\n document.getElementById('session-tab-login').remove()\n }\n }\n\n IB.forms.register_form.init()\n IB.formUtagEvents.init()\n const $form = $('.js-login-form form')\n const $required_fields = $form.find('[data-parsley-required]:not([data-parsley-errors-container])')\n const parsley_config = {\n errorsContainer: pe => {\n const $err = pe.$element.closest('.fz-col').find('.fz-error-container')\n return $err\n },\n }\n\n FORMZ.required_fields.init($required_fields)\n $form.parsley(parsley_config)\n}\n","import './alert.scss';\n\nexport function init() {\n if ($('.flash.fixed').length) {\n $('body').append($('.flash.fixed').addClass('active'));\n setTimeout((function () {\n $('.flash.fixed').css('transform', 'translateY(-100%)');\n }), 5000);\n }\n}\n\n$(document).on('click', '.alert .close', function (event) {\n event.preventDefault();\n let $this = $(this);\n let $flash = $this.closest('.wrapper.flash');\n $this.closest('.alert').remove();\n if (!$flash.find('.alert').length) $flash.remove();\n});\n\ninit();\n","function initDestinationBreadcrumbs() {\n $('.destination-breadcrumb .destination-list .wrapper').each(function () {\n let $wrapper = $(this);\n $wrapper.width($wrapper.siblings('.d-link').width());\n });\n $(document).on('click', '.destination-breadcrumb .d-link', function (e) {\n e.preventDefault();\n let $target = $(this).closest('.d-link');\n\n calculateChildrenPosition($target);\n\n if (!$target.hasClass('active')) {\n let $prev_active = $('.destination-breadcrumb .d-link.active');\n\n $($prev_active.attr('data-target')).hide();\n $prev_active.removeClass('active');\n }\n\n $($target.attr('data-target')).slideToggle('fast');\n $target.toggleClass('active');\n });\n\n $('.destination-breadcrumb .destination-list').scroll(function () {\n let $active_dropdowns = $(this).find('.d-link.active');\n if ($active_dropdowns.length) {\n calculateChildrenPosition($active_dropdowns);\n }\n });\n}\n\nfunction calculateChildrenPosition($target) {\n let $submenuWrapper = $target.closest('.has-children').find('.wrapper');\n let menuItemPos = $target.position();\n\n $submenuWrapper.css({\n top: menuItemPos.top + $target.outerHeight(),\n left: menuItemPos.left\n });\n}\n\ninitDestinationBreadcrumbs();\n","import fastbooking from '../fastbooking/ibh_fastbooking'\n\n/**\n * The referenced tag should contain:\n * data-url-link with the url link\n * data-text-link with the text to show in the link\n * data-promocode with the promocode\n * data-url-cta with the url to redirect that contains the promocode\n * data-apply-code-lang with the translation to apply the promocode\n * Example: \n *\n * @param {*} promolink - DOM element with the datas\n * @returns void\n */\nexport default function initPromoLink(promolink) {\n const urlLink = promolink.dataset.urlLink\n const textLink = promolink.dataset.textLink\n const promocode = promolink.dataset.promocode\n const urlCta = promolink.dataset.urlCta\n const parameters = promolink.dataset.parameters\n const applyCodeLang = promolink.dataset.applyCodeLang\n\n if (urlLink === '' && promocode === '') {\n promolink.remove()\n return\n }\n\n let href = '#'\n if (parameters) {\n href = `${location.protocol}//${location.host}${location.pathname}?${parameters}`\n } else if ((urlLink && promocode) || urlLink !== '') {\n href = urlCta\n } else if (urlLink === '' && promocode && urlCta !== '') {\n href = window.location.origin + urlCta\n }\n\n let innerText = `${applyCodeLang} ${promocode}`\n if (textLink) {\n innerText = textLink\n }\n\n function clickHandler(e) {\n if (!parameters && promocode && !urlLink && !urlCta) {\n e.preventDefault()\n fastbooking.setPromocode(promocode)\n }\n }\n\n promolink.innerHTML = `${innerText} `\n promolink.addEventListener('click', clickHandler)\n}\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\nimport { getCleanedString } from '../../utils/utilities'\n\nexport function sendHeadbandUtagEvent(headband) {\n const event_cat = getCleanedString(headband.dataset.eventCat)\n const event_act = getCleanedString((headband.dataset.eventAct || '').toLowerCase())\n let event_lbl = getCleanedString(headband.dataset.eventLbl)\n\n sendUtagEvent({\n data: {\n event_name: 'offers_apply',\n event_cat,\n event_act,\n event_lbl,\n event_purpose: 'booking',\n event_structure: 'sticky',\n },\n })\n\n if (event_act === 'promo code') {\n event_lbl = getCleanedString(headband.querySelector('.js-promolink').dataset.promocode)\n\n sendUtagEvent({\n data: {\n event_name: 'offers_apply',\n event_cat: 'offers',\n event_act: 'apply offers',\n event_lbl,\n event_purpose: 'booking',\n event_structure: 'sticky',\n },\n })\n }\n\n sendUtagEvent({\n data: {\n event_name: 'headband_module',\n event_cat,\n event_act,\n event_lbl,\n event_purpose: 'information',\n event_structure: 'sticky',\n },\n })\n}\n","import { getUserLevel } from '../../core/iberapi/browsing_session/browsing_session'\nimport initPromoLink from '../../shared/promo_link/promo_link'\nimport countdownClock from '../../utils/countdown'\n\nimport { sendHeadbandUtagEvent } from './headband.analytics'\n\nconst ACTIVE_STICKY_HEADBANDS_CLASS = '.js-headband.sticky.slide-down'\nconst visibleHeadbands = []\nconst AFFECTED_ELEMENTS_BY_STICKY_HEADBANDS = [\n 'js-reb-header',\n 'js-fastbooking-home',\n 'js-mobile-header',\n 'js-vue-mobile-menu',\n 'js-header-sticky-hotel',\n]\n\nfunction showHeadbandCountdown(headband) {\n const now = new Date()\n const countdownStart = new Date(headband.dataset.countdownStart)\n const countdownEnd = new Date(headband.dataset.countdownEnd)\n const countdown = headband.querySelector('.js-countdown')\n const expiredText = JSON.parse(countdown.dataset.translations).expired\n\n if (now >= countdownStart) {\n countdown.classList.remove('hidden')\n countdownClock(1000, 9999)\n\n if (expiredText === '' && now >= countdownEnd) {\n countdown.remove()\n }\n }\n}\n\nfunction cleanUnusedHeadbands() {\n document.querySelectorAll('.js-headband:not(.slide-down)').forEach(hiddenHeadband => {\n hiddenHeadband.remove()\n })\n}\n\nfunction isHeadbandInTime(headband) {\n const now = new Date()\n const start = new Date(headband.dataset.start)\n const end = new Date(headband.dataset.end)\n\n if (now >= start && now <= end) {\n return true\n }\n}\n\nfunction slideDownHeadband(headband, callback) {\n headband.classList.add('slide-down')\n\n headband.addEventListener('transitionend', callback, { once: true })\n}\n\nasync function loopHeadbands(headbands) {\n const userLevel = getUserLevel()\n\n for (const headband of headbands) {\n const allowedUserLevels = JSON.parse(headband.dataset.loggedInLevels)\n const isVisibleToUser = allowedUserLevels.includes(userLevel)\n const unlockMetrics = headband.dataset.metrics\n\n if (isVisibleToUser && isHeadbandInTime(headband)) {\n showHeadbandCountdown(headband)\n slideDownHeadband(headband)\n headband.classList.remove('headband__stash')\n setTimeout(function () {\n headband.classList.remove('headband__stash')\n }, 100)\n\n const promoLinkElement = headband.querySelector('.js-promolink')\n\n if (unlockMetrics === 'true') {\n promoLinkElement.addEventListener('click', function () {\n sendHeadbandUtagEvent(headband)\n })\n }\n\n initPromoLink(promoLinkElement)\n visibleHeadbands.push(headband)\n }\n }\n}\n\nfunction addStickyStateClassToAffectedElements() {\n AFFECTED_ELEMENTS_BY_STICKY_HEADBANDS.forEach(affectedElement => {\n const elements = document.querySelectorAll(`.${affectedElement}`)\n\n if (!elements) return\n\n elements.forEach(element => {\n element.classList.add('pushed-by-sticky-headbands')\n })\n })\n}\n\nfunction pushBodyWhenHeadbandAreSticky(occupiedHeight) {\n document.body.style.transition = 'all 1s ease-in-out'\n document.body.style.paddingTop = `${occupiedHeight}px`\n document.body.style.position = 'relative'\n}\n\nfunction setStickyHeadbandsPositions() {\n const stickyHeadbands = document.querySelectorAll(ACTIVE_STICKY_HEADBANDS_CLASS)\n\n stickyHeadbands.forEach((headband, index) => {\n const previousHeadband = stickyHeadbands[index - 1]\n if (previousHeadband) {\n headband.style.top = `${previousHeadband.clientHeight}px`\n }\n })\n}\n\nfunction addPushedByStickyHeadbandsClassToBody(occupiedHeight) {\n const style = document.createElement('style')\n style.innerHTML = `\n .sticky.pushed-by-sticky-headbands {\n top: ${occupiedHeight}px !important;\n }\n `\n document.body.appendChild(style)\n}\n\nfunction getTotalHeightOfStickyHeadbands() {\n const stickyHeadbands = document.querySelectorAll(ACTIVE_STICKY_HEADBANDS_CLASS)\n const stickyHeadbandsTotalHeight = Array.from(stickyHeadbands).reduce(\n (total, stickyHeadband) => total + stickyHeadband.clientHeight,\n 0\n )\n return stickyHeadbandsTotalHeight - 2 // quit 2px to avoid gaps\n}\n\nexport default function init() {\n const headbands = document.querySelectorAll('.js-headband')\n\n if (!headbands) return\n\n loopHeadbands(headbands)\n cleanUnusedHeadbands()\n\n const headband = Array.from(visibleHeadbands).find(headband => headband.classList.contains('sticky'))\n if (headband) {\n setStickyHeadbandsPositions()\n addStickyStateClassToAffectedElements()\n slideDownHeadband(headband, () => {\n const occupiedHeight = getTotalHeightOfStickyHeadbands()\n addPushedByStickyHeadbandsClassToBody(occupiedHeight)\n pushBodyWhenHeadbandAreSticky(occupiedHeight)\n })\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n requestIdleCallback(init)\n})\n","$(function () {\n if (IB.currentDevice === 'desktop') { // in desktop or small desktop\n let wait_time = 0;\n\n $(document).on('mouseenter', '.pro-link', function () {\n let $el = $(this);\n wait_time = 0;\n $el.find('.pro-letter').each(function (index, el) {\n setTimeout(function () {$(el).addClass('active');}, wait_time);\n wait_time += 4;\n });\n }).on('mouseleave', '.pro-link', function () {\n let $el = $(this);\n wait_time = 100;\n $($el.find('.pro-letter').get().reverse()).each(function (index, el) {\n setTimeout(function () {$(el).removeClass('active');}, wait_time);\n wait_time += 4;\n });\n });\n }\n});\n","import { getLazyData } from '../../utils/get_lazy_data';\n\nif($(\"#divFBwidget\").length){\n let lang = document.documentElement.getAttribute('data-js-lang') == 'es' ? '' : '/' + document.documentElement.getAttribute('data-js-lang');\n let url = lang+\"/social-login/widget/\";\n getLazyData(url, function (response) {\n if(response.length > 0){\n $(\"#divFBwidget\").append(response);\n $(\"#x_recommend\").attr(\"style\",\"\");\n $(\"#x_banner\").attr(\"style\",\"\");\n $(\".facebook-summary-widget-block\").removeClass(\"hidden\");\n }\n });\n}\n","/* eslint-disable no-jquery/no-data */\n/* eslint-disable no-jquery/no-jquery-constructor */\n/* eslint-disable no-jquery/no-other-methods */\n/* eslint-disable no-jquery/no-each-collection */\n/* eslint-disable no-jquery/no-attr */\n/*no*/\nimport '../../blocks/register_form/register_form'\n\nimport dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\nimport { currentDevice } from '../../core/utils/currentDevice'\nimport Modal from '../../shared/modal/modal'\n\ndayjs.extend(customParseFormat)\n;(function () {\n // Variable to store date field intersection status\n let isIntersecting = false\n\n if (typeof IB === 'undefined') {\n window.IB = {}\n } else if (typeof IB.forms === 'undefined') {\n IB.forms = {}\n } else if (typeof IB.forms.register_form !== 'undefined') {\n return\n }\n\n function init() {\n const $birth_date = $('.single-datepicker-birth-date')\n if ($birth_date.length > 0) {\n const language = document.documentElement.getAttribute('data-js-lang')\n const date_format = $('html').attr('data-date-format')\n const start_of_week = $('html').attr('data-start-of-week')\n\n $birth_date.each(function (index, el) {\n if ($(el).data('dateRangePicker')) {\n $(el).data('dateRangePicker').destroy()\n }\n $(el)\n .dateRangePicker({\n autoClose: true,\n format: date_format,\n startOfWeek: start_of_week,\n language,\n showDropdowns: true,\n startDate: new dayjs().subtract(100, 'years').format(date_format),\n endDate: new dayjs().subtract(18, 'years').format(date_format),\n minYear: new dayjs().year() - 100,\n maxYear: new dayjs().year() - 18,\n defaultTime: new dayjs().subtract(18, 'years').format(date_format),\n singleDate: true,\n singleMonth: true,\n selectBackward: true,\n showTopbar: false,\n })\n .on('datepicker-open', function () {\n // Lock Scroll on datepicker open only in mobile\n currentDevice.isMobile && ScrollLock.on()\n const offset_left = $(el).offset().left\n $('.date-picker-wrapper').css('left', offset_left)\n // When the calendar is opened, set this variable to true to prevent\n // the datepicker from closing on scroll until the intersection observer\n // detects a new intersection between both elements\n isIntersecting = true\n if ($(el).val() === '') {\n const date = new dayjs().subtract(18, 'years').format(date_format)\n $(el).data('dateRangePicker').setDateRange(date, date)\n }\n })\n .on('datepicker-opened', function (ev, picker) {\n $(this).prop('readonly', true)\n })\n .on('datepicker-first-date-selected', function (ev, picker) {\n $(this).prop('readonly', false)\n $(this).val(dayjs(picker.time).format(date_format)).trigger('change')\n $(el).closest('form').parsley().validate('datepicker')\n })\n .on('datepicker-close', function () {\n // Unlock Scroll on datepicker close only in mobile\n currentDevice.isMobile && ScrollLock.off()\n })\n\n $(el).on('focus', function () {\n $(el).data('dateRangePicker').open()\n })\n\n // PY04776-533 - 761157 - Calendario de registro se descoloca\n // Fix bug that if the postregister modal is closed and the data picker is open, the data picker closes as well.\n $('[data-fancybox-close]').on('click', function () {\n $(el).data('dateRangePicker').close()\n })\n })\n }\n\n // Depending on the device type, the observer should be fired differently.\n // Add .register class for the register form in star agents\n const PARENT_SCROLL_SELECTOR = `${\n currentDevice.isMobile ? '.js-login-registration-lightbox' : '.session-tab-registration'\n }, .second-layer.register`\n\n // Initialize the observer\n var observer = new IntersectionObserver(\n entries => {\n isIntersecting = entries[0].isIntersecting\n },\n {\n root: null,\n threshold: 1,\n rootMargin: '0px 0px -280px 0px',\n }\n )\n\n // Listen for scroll in the register form.\n // Depending on the device type, the scroll event will be fired differently.\n if ($birth_date[0] !== undefined) {\n // Set the element to observe\n observer.observe(document.querySelector('.single-datepicker-birth-date'))\n // Lister for scroll to calculate the position of the calendar or close it\n $birth_date[0].closest(PARENT_SCROLL_SELECTOR)?.addEventListener('scroll', e => {\n if (isIntersecting) {\n // While the field is visible, change the position of the calendar.\n $birth_date.data('dateRangePicker').calcPosition()\n } else {\n // If the field is not visible, close the calendar.\n $birth_date.data('dateRangePicker').close()\n }\n })\n }\n\n // Modal con vídeo para el formulario de registro de Iberostar PRO\n // --> PY04777-688: 747192 - Tutorial Alta en registro de alta\n const videoLink = document.querySelector('.js-video-module')\n const videoPlay = document.querySelector('.modal-play')\n\n videoLink?.addEventListener('click', function (e) {\n e.preventDefault()\n Modal.show('video-tutorial-register', {\n onShow: () => {\n videoPlay.play()\n },\n onClose: () => {\n videoPlay.pause()\n },\n awaitCloseAnimation: true,\n })\n })\n }\n\n window.IB.forms.register_form = {\n init,\n }\n\n // Inialize the register form only in the iberostar pro microsite\n const userRegisterForm = document.querySelector('.form-users')\n if (IB.current_microsite === 'iberostar_pro' && userRegisterForm) {\n init()\n }\n})()\n","$(document)\n .on('click', '.show-password', function (event) {\n event.preventDefault()\n const $this = $(this)\n const $input = $($this.data('element'))\n const text = $($this).attr('data-label-toogle-text')\n const label = $($this).attr('aria-label')\n\n $this.toggleClass('active')\n if ($this.hasClass('active')) {\n $input.attr('type', 'text')\n } else {\n $input.attr('type', 'password')\n }\n\n if (text && label) {\n $($this).attr('data-label-toogle-text', label)\n $($this).attr('aria-label', text)\n }\n })\n .on('click', '.show-password-external', function (event) {\n event.preventDefault()\n const $this = $(this)\n const $input = $($this.data('element'))\n $this.toggleClass('active')\n $input.toggleClass('active')\n if ($input.hasClass('active')) {\n $input.attr('type', 'text')\n } else {\n $input.attr('type', 'password')\n }\n })\n .on('keyup', '.password-row input', function (event) {\n const $this = $(event.target)\n\n if ($this.hasClass('without-errors')) return\n\n const $pass_row = $this.closest('.password-row')\n let $parsley_errors\n const $err_new_list = $this.hasClass('out-errors') ? $($this.data('out-errors-id')) : $pass_row.find('.validation-errors')\n let group_to_validate\n\n group_to_validate = typeof $pass_row.data('group-to-validate') === 'undefined' ? 'password' : $pass_row.data('group-to-validate')\n\n $err_new_list.removeClass('hidden')\n\n // retrieve parsley error messages to copy later\n $pass_row.closest('form').parsley().validate(group_to_validate)\n $parsley_errors = $pass_row.find('.parsley-errors-list')\n\n // iterate over our custom error list to match parsley errors\n // in order to apply validated message class\n setTimeout(function () {\n $.each($err_new_list.find('li'), function () {\n const $that = $(this)\n const elClass = $that.attr('class').split(' ')[0]\n if ($parsley_errors.find('li').length == 1 && $parsley_errors.find('li').attr('class') == 'parsley-required') {\n $that.removeClass('validated')\n } else if ($parsley_errors.find(`.${elClass}`).length === 0) {\n $that.addClass('validated')\n } else {\n $that.removeClass('validated')\n }\n })\n }, 200)\n })\n\n$().fancybox({\n selector: 'a.reset-password',\n type: 'ajax',\n beforeClose() {\n if ($('.date-picker-wrapper').is(':visible')) {\n $('.date-picker-wrapper').hide()\n }\n },\n afterShow() {\n const $close = $(this.$smallBtn[0])\n const $content = $('.reset-password-wrapper')\n if ($content.length) {\n // When open fancybox of reset password, we focus on content and put close button at first place\n $($content).attr('tabindex', '-1')\n $($content).trigger('focus')\n if ($close.length) {\n $close.insertBefore($content)\n }\n }\n },\n})\n","import on from '../../utils/events_delegation'\n\non({\n eventName: 'click',\n selector: `.js-show-call-me-back-modal`,\n handler(e) {\n e.preventDefault()\n try {\n window.lanzo_cmb()\n } catch (err) {}\n },\n})\n","let DEFAULT_CURRENCY = 'EUR';\nlet actual_currency = $.cookie('currency') !== undefined ? $.cookie('currency') : DEFAULT_CURRENCY;\n\n$(document).on('change', '.currency-agency-selector select', function () {\n let $el = $(this);\n let currency = $el.parents('.currency-agency-form').find('.fk-select-label').text();\n\n if (currency === 'DEF') currency = DEFAULT_CURRENCY;\n\n let $general_selector = $el.parents('.reserve-index-list, .quote-index-list');\n\n $general_selector.find('.data.active').removeClass('active');\n $general_selector.find('.data-' + currency).addClass('active');\n if ($general_selector.find('.data.default-currency.active').length) {\n $general_selector.find('.warning').addClass('hidden');\n } else {\n $general_selector.find('.warning').removeClass('hidden');\n }\n});\n\n$(document).on('change', '.currency-selector select', function () {\n if (!$('.reserve-index-list, .quote-index-list').length) return; // No se puede poner fuera porque las reservas tardan en cargar\n\n let $el = $(this);\n let currency = $el.parents('.currency-form').find('.fk-select-label').text();\n let $agency_select = $('.currency-agency-selector select');\n\n currency = currency !== '€/$' ? currency : DEFAULT_CURRENCY;\n\n if (actual_currency !== currency && !$agency_select.find('option[value=' + currency + ']').length) {\n $agency_select.find('option[value=' + actual_currency + ']').remove();\n $agency_select.append($('