{"version":3,"file":"js/35057-5adc4013f89ab243f458.js","mappings":"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CVC,IAAK,SACLC,KAAM,SACN1V,MAAO,eACP,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,cAAe,SACf,aAAc,CACZ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,qBACA,sBAEF2V,UAAW,2BACXC,KAAM,eACNC,UAAW,eACXC,SAAU,qBACV,YAAa,eACb,aAAc,qBACd,YAAa,eACbzY,KAAM,qBACN,YAAa,eACb,aAAc,qBACd,YAAa,eACb,YAAa,uEACb,YAAa,uEACb,eAAgB,uEAChB,eAAgB,uEAChB,gBAAiB,yEACjB,iBAAkB,6CAClB,kBAAmB,yDACnB0Y,KAAM,eACNC,KAAM,eACNC,OAAQ,gBAEVK,GAAI,CACFd,SAAU,cACVC,IAAK,MACLC,KAAM,MACN1V,MAAO,iBACP,SAAU,KACV,SAAU,QACV,SAAU,KACV,SAAU,UACV,SAAU,QACV,SAAU,KACV,SAAU,KACV,aAAc,CACZ,QACA,UACA,cACA,QACA,cACA,cACA,gBACA,QACA,kBACA,gBACA,WACA,YAEF2V,UAAW,UACXC,KAAM,KACNC,UAAW,uBACXC,SAAU,oBACV,YAAa,WACb,aAAc,gBACd,YAAa,MACbzY,KAAM,gBACN,YAAa,WACb,aAAc,gBACd,YAAa,MACb,YAAa,2EACb,YAAa,sEACb,eAAgB,uEAChB,iBAAkB,yBAClB,eAAgB,kEAChB,gBAAiB,gDACjB,kBAAmB,gCAErBkZ,GAAI,CACFf,SAAU,WACVC,IAAK,MACLC,KAAM,OACN1V,MAAO,eACP,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,aAAc,CACZ,SACA,UACA,UACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEF2V,UAAW,cACXC,KAAM,YACNC,UAAW,WACXC,SAAU,YACV,YAAa,QACb,aAAc,QACd,YAAa,OACbzY,KAAM,aACN,YAAa,QACb,aAAc,QACd,YAAa,OACb,YAAa,yDACb,YAAa,oDACb,eAAgB,wCAChB,iBAAkB,+BAClB,eAAgB,yCAChB,gBAAiB,kEACjB,kBAAmB,6CACnBmZ,KAAM,OACNR,KAAM,SACNC,OAAQ,SACRC,QAAS,eACTC,OAAQ,eACR,eAAgB,uBAChB,iBAAkB,gBAClB,aAAc,oBACd,eAAgB,uBAElBM,GAAI,CACFjB,SAAU,gBACVC,IAAK,SACLC,KAAM,UACN1V,MAAO,SACP,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,aAAc,CACZ,QACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,aACA,UACA,YACA,aAEF2V,UAAW,mBACXC,KAAM,SACNC,UAAW,YACXC,SAAU,WACV,YAAa,SACb,aAAc,MACd,YAAa,SACbzY,KAAM,YACN,YAAa,SACb,aAAc,MACd,YAAa,SACb,YAAa,iDACb,YAAa,iDACb,eAAgB,mDAChB,iBAAkB,iCAClB,eAAgB,mDAChB,gBAAiB,sDACjB,kBAAmB,2CACnB6Y,QAAS,mBACTC,OAAQ,kBACR,eAAgB,gBAChB,iBAAkB,eAClB,aAAc,gBACd,eAAgB,uBAElBO,GAAI,CACFlB,SAAU,gBACVC,IAAK,OACLC,KAAM,QACN1V,MAAO,SACP,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,aAAc,CACZ,UACA,aACA,OACA,QACA,MACA,OACA,UACA,UACA,YACA,UACA,WACA,eAEF2V,UAAW,aACXC,KAAM,WACNC,UAAW,UACXC,SAAU,kBACV,YAAa,UACb,aAAc,OACd,YAAa,WACbzY,KAAM,UACN,YAAa,UACb,aAAc,OACd,YAAa,WACb,YAAa,+DACb,YAAa,+DACb,eAAgB,8DAChB,iBAAkB,4BAClB,eAAgB,yDAChB,gBAAiB,gEACjB,kBAAmB,4BACnB6Y,QAAS,yBACTC,OAAQ,oBACR,eAAgB,8BAChB,iBAAkB,kBAClB,aAAc,mBACd,eAAgB,0BAElBQ,GAAI,CACFnB,SAAU,kBACVC,IAAK,MACLC,KAAM,MACN1V,MAAO,KACP,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,aAAc,CACZ,YACA,aACA,aACA,aACA,WACA,YACA,YACA,YACA,aACA,aACA,WACA,YAEF2V,UAAW,sBACXC,KAAM,UACNC,UAAW,oBACXC,SAAU,kBACV,YAAa,SACb,aAAc,WACd,YAAa,QACbzY,KAAM,oBACN,YAAa,SACb,aAAc,WACd,YAAa,QACb,YAAa,qDACb,YAAa,qDACb,eAAgB,4DAChB,iBAAkB,uBAClB,eAAgB,+DAChB,gBAAiB,yDACjB,kBAAmB,oCAErBuZ,GAAI,CACFpB,SAAU,eACVC,IAAK,SACLC,KAAM,SACN1V,MAAO,SACP,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,aAAc,CACZ,UACA,WACA,QACA,SACA,SACA,SACA,SACA,SACA,YACA,UACA,WACA,YAEF2V,UAAW,cACXC,KAAM,SACNC,UAAW,aACXC,SAAU,aACV,YAAa,YACb,aAAc,OACd,YAAa,OACbzY,KAAM,WACN,YAAa,YACb,aAAc,OACd,YAAa,OACb,YAAa,oDACb,YAAa,kDACb,eAAgB,gDAChB,iBAAkB,qBAClB,eAAgB,8CAChB,gBAAiB,0DACjB,kBAAmB,kCACnB6Y,QAAS,iBACTC,OAAQ,oBACR,eAAgB,mBAChB,iBAAkB,iBAClB,aAAc,mBACd,eAAgB,sBAElBU,GAAI,CACFrB,SAAU,SACVC,IAAK,MACLC,KAAM,QACN1V,MAAO,OACP,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,QACV,SAAU,QACV,aAAc,CACZ,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEF2V,UAAW,YACX,gBAAiB,wBACjBC,KAAM,OACNC,UAAW,YACXC,SAAU,UACV,YAAa,MACb,aAAc,WACd,YAAa,QACbzY,KAAM,QACN,YAAa,MACb,aAAc,WACd,YAAa,QACb,YAAa,sDACb,YAAa,uDACb,eAAgB,qDAChB,iBAAkB,0BAClB,eAAgB,qDACh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","sources":["webpack://cms-web/./app/frontend/src/core/analytics/callback_utag_data.js","webpack://cms-web/./app/frontend/src/core/analytics/count_down_session_campaign.js","webpack://cms-web/./app/frontend/src/core/iberapi/lazy_img/lazy_img.js","webpack://cms-web/./app/frontend/src/core/iberapi/partner_shower/partner_shower.js","webpack://cms-web/./app/frontend/src/core/iberapi/visitor_type_detector/visitor_type_detector.js","webpack://cms-web/./app/frontend/src/shared/mobile_panel/mobile_panels.js","webpack://cms-web/./app/frontend/src/shared/phone_list/phone_list.js","webpack://cms-web/./app/frontend/src/shared/phone_list/phone_list_analytics.js","webpack://cms-web/./app/frontend/src/vendors/formikation/formikation.js","webpack://cms-web/./app/frontend/src/vendors/forms/parsley.min.js","webpack://cms-web/./app/frontend/src/vendors/jquery/jquery.scrollTo.js","webpack://cms-web/./app/frontend/src/vendors/rangedatepicker/rangedatepicker.js","webpack://cms-web/./app/frontend/src/vue/mobile_menu/mobile_menu_init.js"],"sourcesContent":["import { readCookie, setCookie } from '../../utils/cookie_manager';\nimport { add_user_info } from './partner_set_cookies';\nimport { get_utag_search_info } from '../analytics/utag_events';\n\nlet get_utag_data = function () {\n let index = window.location.href.indexOf('?');\n let query_string = index > 0 ? window.location.href.substring(index) : '';\n let previous_currency = readCookie('currency') || $(\"body\").data(\"default-currency\");\n let prefix_html = $('html').attr('prefix');\n let url = \"/ajax_contents/utag_data/\" + query_string\n let url_with_locale = prefix_html === '/' ? url : prefix_html + url;\n\n if (!IB.cookieManager.groupIsAccepted(\"analytics\")) { return; }\n\n $.ajax({\n dataType: 'JSON',\n type: 'GET',\n url: url_with_locale,\n success: function (response) {\n let data = JSON.stringify(response);\n // Not working in Safari, in Private Browsing Mode\n try {\n sessionStorage.setItem('utag_user', JSON.stringify(response));\n let contact_us_page = document.getElementsByClassName('contact-us');\n if (contact_us_page.length) IB.contactUs.setPrefix();\n } catch (e) {\n console.log('Your web browser does not support storing settings locally. In Safari, the most common cause of this is using Private Browsing Mode. Some settings may not save or some features may not work properly for you.');\n }\n if (data.length > 0) {\n let utagData = JSON.parse(data);\n add_user_info(utagData);\n }\n\n let currency = readCookie('currency') || $(\"body\").data(\"default-currency\");\n let selector_currency = $(\".currency-form select\").first().val();\n utag_data = $.extend({},utag_data, {\"page_currency\": currency});\n if (previous_currency == 'DEF' && currency != 'DEF') {\n IB.currencyForm.updateSelector(currency);\n IB.currencyForm.forceUpdate();\n }\n }\n });\n};\n\nfunction getParameters() {\n let vars = {};\n let parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {\n vars[key] = value;\n });\n return vars;\n}\n\nlet get_simulated_market = function () {\n let market = getParameters()['simulate_market'];\n return market;\n};\n\nwindow.ajax_utag_callback = function () {\n let market = get_simulated_market();\n let utagData;\n let fastbooking_data_utag = readCookie('fastbooking_data_utag');\n if (typeof market != 'undefined') {\n get_utag_data();\n } else {\n if ($.cookie('update_utag_data')) {\n get_utag_data();\n IB.cookieManager.deleteCookies(['update_utag_data']);\n }else if (sessionStorage.getItem('utag_user') && sessionStorage.getItem('utag_user') != 'undefined' &&\n sessionStorage.getItem('utag_user') != '' && sessionStorage.getItem('utag_user') != 'null') {\n try {\n utagData = JSON.parse(sessionStorage.getItem('utag_user'));\n add_user_info(utagData);\n } catch (err) {\n ajax_utag_callback();\n }\n } else {\n get_utag_data();\n }\n }\n set_user_id();\n if(fastbooking_data_utag !== null){\n get_utag_search_info();\n //setCookie('fastbooking_data_utag', false, -1)\n IB.cookieManager.deleteCookies(['fastbooking_data_utag'])\n }\n};\nlet check_page_site_origin = function () {\n if (typeof utag_data !== 'undefined' && utag_data !== undefined && $.cookie('page_site_origin') === 'call center') {utag_data['page_site_origin'] = 'call center';}\n};\n\nlet set_user_id = function () {\n if (typeof utag_data !== 'undefined' && utag_data !== undefined) {utag_data['user_id'] = ($.cookie('user_id') !== undefined && $.cookie('user_id') !== 'uninformed' ? $.cookie('user_id') : '')}\n};\n\n//ajax_utag_callback(); This call will be executed in cookie_manager.js instead\ncheck_page_site_origin();\nset_user_id();\n","import { getUrlVars } from './partner_set_cookies';\nimport { setCookie, setCookies } from '../../utils/cookie_manager';\n\n(function ($, undefined) {\n if (typeof IB === 'undefined') {\n window.IB = {};\n } else if (IB.UtmCampaign !== undefined) {\n return;\n } else if (IB.VisitorSessionId !== undefined) {\n return;\n }\n\n // time expiration visitor_session_id\n let minutes = 30;\n let base_domain = document.domain.split('.').slice(-2)\n .join('.');\n\n /*\n * auxiliar function to set cookies\n * if value is undefined or null, this value should change by blank value.\n */\n function setCookieDomain(key, value) {\n let base_domain = document.domain.split('.').slice(-2)\n .join('.');\n setCookie(key, value || '', null, null, '.' + base_domain);\n }\n\n /*\n * return: true if there are NOT utm parameters\n * return: fase if there are some utm parameter\n */\n function blankUtmParameters() {\n let url_utm_source = getUrlVars()['utm_source'];\n let url_utm_medium = getUrlVars()['utm_medium'];\n let url_utm_name = getUrlVars()['utm_campaign'];\n let url_utm_content = getUrlVars()['utm_content'];\n\n return undefined === url_utm_source &&\n undefined === url_utm_medium &&\n undefined === url_utm_name &&\n undefined === url_utm_content;\n }\n\n /*\n * return: true if any of utm parameters differents of cookies values\n * return: fase if all parameters values are equal of cookies values\n */\n function hasChangedValuesUtmParameters() {\n let url_utm_source = getUrlVars()['utm_source'];\n let url_utm_medium = getUrlVars()['utm_medium'];\n let url_utm_name = getUrlVars()['utm_campaign'];\n let url_utm_content = getUrlVars()['utm_content'];\n\n if (url_utm_source === undefined) {url_utm_source = '';}\n if (url_utm_medium === undefined) {url_utm_medium = '';}\n if (url_utm_name === undefined) {url_utm_name = '';}\n if (url_utm_content === undefined) {url_utm_content = '';}\n\n return $.cookie('campaign_source') !== url_utm_source ||\n $.cookie('campaign_medium') !== url_utm_medium ||\n $.cookie('campaign_name') !== url_utm_name ||\n $.cookie('campaign_content') !== url_utm_content;\n }\n\n /*\n * Set utm cookies and utag_data whit utm params.\n * if the param is undefined, default value will be blank ('')\n */\n function setUtmCampaignDatasFromUrl() {\n // set values on utag_data\n utag_data['campaign_source'] = getUrlVars()['utm_source'] || '';\n utag_data['campaign_medium'] = getUrlVars()['utm_medium'] || '';\n utag_data['campaign_name'] = getUrlVars()['utm_campaign'] || '';\n utag_data['campaign_content'] = getUrlVars()['utm_content'] || '';\n\n let domain = '.' + document.domain.split('.').slice(-2).join('.');\n setCookies([\n {'name': 'campaign_source', 'value': utag_data['campaign_source'], 'domain': domain},\n {'name': 'campaign_medium', 'value': utag_data['campaign_medium'], 'domain': domain},\n {'name': 'campaign_name', 'value': utag_data['campaign_name'], 'domain': domain},\n {'name': 'campaign_content', 'value': utag_data['campaign_content'], 'domain': domain}\n ]);\n }\n\n // Reset all utm utag_datas with cookies or blank values if cookies not exists.\n function setUtmCampaignDatasFromCookies() {\n // set values on uatg_data from cookies\n utag_data['campaign_medium'] = $.cookie('campaign_medium') || '';\n utag_data['campaign_name'] = $.cookie('campaign_name') || '';\n utag_data['campaign_source'] = $.cookie('campaign_source') || '';\n utag_data['campaign_content'] = $.cookie('campaign_content') || '';\n }\n\n // Return if exists a visitor_session_id cookie not expired.\n function hasCurrentVisitorSessionId() {\n return $.cookie('visitor_session_id') !== null && $.cookie('visitor_session_id') !== undefined;\n }\n\n function needsUpdateSessionExpire(date) {\n return $.cookie('visitor_session_id_expire') !== null && $.cookie('visitor_session_id_expire') !== undefined &&\n (date - Date.parse($.cookie('visitor_session_id_expire'))) > 90000;\n }\n\n /*\n * Session variable\n * if we have a current visitor_session_id (no expired), we get the cookie value and update expiration time\n * if not, we create a new one.\n */\n function initNewVisitorSessionId(force) {\n let visitor_session_id;\n let hasCurrentSession = hasCurrentVisitorSessionId();\n let date = new Date();\n date.setTime(date.getTime() + (minutes * 60 * 1000));\n\n\n if (hasCurrentSession && force !== true) {\n visitor_session_id = $.cookie('visitor_session_id');\n } else {\n visitor_session_id =\n Math.random().toString(36)\n .substring(2, 10) +\n Math.random().toString(36)\n .substring(2, 10);\n }\n utag_data['visitor_session_id'] = visitor_session_id;\n if (!hasCurrentSession || force == true || needsUpdateSessionExpire(date)) {\n setCookies([\n {'name': 'visitor_session_id', 'value': visitor_session_id, 'expires': date, 'domain': '.' + base_domain},\n {'name': 'visitor_session_id_expire', 'value': date, 'expires': date, path: \"/\"}\n ]);\n }\n }\n\n // Set campaign_cp variable cookie and utag_data with params value or blank value.\n function setCampaignCpFromUrl() {\n setCookieDomain('campaign_cp', getUrlVars()['cp']);\n // set values on uatg_data from cookies\n utag_data['campaign_cp'] = getUrlVars()['cp'];\n }\n /*\n * Set campaign_cp variable cookie and utag_data with params value or blank value.\n * if campaign_cp is undefined param, the new value should be the last cookie value.\n */\n function setCampaignCpFromUrlFromCookie() {\n let campaign_cp = getUrlVars()['cp'];\n // set values on uatg_data from cookies\n if (campaign_cp !== undefined && campaign_cp !== null) {setCookieDomain('campaign_cp', campaign_cp);}\n\n utag_data['campaign_cp'] = campaign_cp || $.cookie('campaign_cp') || '';\n }\n\n IB.UtmCampaign = {\n hasChangedValuesUtmParameters: hasChangedValuesUtmParameters,\n blankUtmParameters: blankUtmParameters,\n setUtmCampaignDatasFromUrl: setUtmCampaignDatasFromUrl,\n setUtmCampaignDatasFromCookies: setUtmCampaignDatasFromCookies,\n printCampaignDatas: printCampaignDatas\n };\n\n IB.CpCampaign = {\n setCampaignCpFromUrl: setCampaignCpFromUrl,\n setCampaignCpFromUrlFromCookie: setCampaignCpFromUrlFromCookie\n };\n\n IB.VisitorSessionId = {\n initNewVisitorSessionId: initNewVisitorSessionId\n\n };\n\n // DELETE AFTER UPLOAD PRODUCCTION\n function printCampaignDatas() {\n console.log('visitor_session_id -> ' + utag_data['visitor_session_id'] + '\\n' +\n 'visitor_session_expired -> ' + (hasCurrentVisitorSessionId() === false) + '\\n' +\n 'visitor_session_expired -> ' + $.cookie('visitor_session_id_expire') + '\\n' +\n 'campaign_medium -> ' + utag_data['campaign_medium'] + '\\n' +\n 'campaign_name -> ' + utag_data['campaign_name'] + '\\n' +\n 'campaign_source -> ' + utag_data['campaign_source'] + '\\n' +\n 'campaign_content -> ' + utag_data['campaign_content'] + '\\n' +\n 'campaign_cp -> ' + utag_data['campaign_cp'] + '\\n');\n }\n}(jQuery));\n\n// Init visitor_session_id\n/*\n * ******************************************************************************************\n * UTM VARIABLES, CAMPAIGN CP AND VISITOR_SESSION_ID\n * - if we have utm params and any of them is changed\n * - force create a new session_visitor_id\n * - Reset utm values from url (if value is undefined, we set blank value)\n * - Reset campaign_cp value from url (if value is undefined, we set blank value)\n * - else\n * - Create a new visitor_session_id if this is expired.\n * - Read utm values from cookies\n * - Read campaign_cp value from url and if this value is undefined, we get cookie value\n *\n * variable Campaign_cp\n * - Get value from url if any utm variables changes, if there are not url param the value will be blank\n * - if there are not utm params we get values from url or cookie.\n * - Just be changed when utm variables change, if not set a cookie value or blank value.\n *\n * visitor_session_id\n * - Just be change when there are not interaction during 30 minutes.\n * - Exists any utm params and Any of them is changed\n * - End of day.\n *********************************************************************************************\n */\n$(function () {\n // if we have utm params and any of them is changed\n if (!IB.UtmCampaign.blankUtmParameters() && IB.UtmCampaign.hasChangedValuesUtmParameters()) {\n // Force new visitor_session_id\n IB.VisitorSessionId.initNewVisitorSessionId(true);\n IB.UtmCampaign.setUtmCampaignDatasFromUrl();\n IB.CpCampaign.setCampaignCpFromUrl();\n } else {\n // set visitor_session_id whitout force\n IB.VisitorSessionId.initNewVisitorSessionId();\n IB.CpCampaign.setCampaignCpFromUrlFromCookie();\n IB.UtmCampaign.setUtmCampaignDatasFromCookies();\n }\n});\n","/*\n *\n * Lazy load for all \n *\n * The image is loaded when the user scrolls to the image position\n * It uses jquery.inview.js\n * An animation is added to the picture until the image is loaded\n *\n */\n\nconst SELECTOR_PICTURE = 'picture.inview:not(.loaded)'\nconst SELECTOR_BACKGROUND_PICTURE = '.inview[data-background-src]:not(.loaded)'\nconst SELECTOR_PIC_INVIEW = 'picture.inview:not(.loaded), .inview[data-background-src]:not(.loaded)'\nconst $images = $(`${SELECTOR_PIC_INVIEW}, ${SELECTOR_BACKGROUND_PICTURE}`)\nlet lazyObserver\nlet skeletonObserver\n\n/**\n * Adds srcset attribute to image so loading it\n * @param {*} picture\n * @param {*} visible\n */\nfunction loadImages(picture, visible) {\n const $picture = $(picture)\n visible = visible || $picture.is(':visible')\n if (visible) {\n putSrcPicture(picture, false)\n }\n}\n\nfunction loadBackgroundImages(block) {\n const $block = $(block)\n\n if ($block.is(':visible')) {\n const datasrc = $block.data('background-src')\n if (datasrc !== '' && datasrc !== undefined) {\n $block.css('background-image', `url('${datasrc}')`)\n }\n $block.addClass('loaded')\n }\n}\n\nfunction loadAllImagesSelector($selector) {\n const $pictures = $selector !== undefined ? $selector.find('picture.inview:not(.loaded)') : $(SELECTOR_PIC_INVIEW)\n $pictures.each(function () {\n loadImages(this, true)\n })\n}\n\nfunction loadAllBackgroundImagesSelector($selector) {\n $selector.each(function () {\n loadBackgroundImages(this)\n })\n}\n\nfunction putSrcPicture(picture, isObserverd) {\n const $picture = $(picture)\n $picture.find('source').each(function () {\n const $source = $(this)\n $source.attr('srcset', $source.data('srcset'))\n })\n // Fix load image IE11\n const ua = window.navigator.userAgent\n const is_iexplorer = ua.indexOf('MSIE ')\n\n if (is_iexplorer > 0 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./)) {\n if ($picture.find('img') !== undefined && $picture.find('img') !== '' && $picture.find('img') !== null) {\n picturefill({\n reevaluate: true,\n elements: [$picture.find('img')[0]],\n })\n }\n }\n\n $picture.find('img').one('load', function () {\n $picture.removeClass('skeleton').addClass('loaded')\n //If is loading home-video-with-fastbooking picture (for ADA, loading alt of overflow image)\n if ($picture.parents('.home-video-with-fastbooking').length) {\n $picture.siblings('.items .without-img').removeClass('hidden')\n }\n if (isObserverd) {\n lazyObserver.unobserve(picture)\n }\n })\n}\n\n/**\n * Function check if images are intersecting and load its\n * @param {*} entries list images observed\n */\nfunction imgLazyLoad(entries) {\n if (entries.length > 0) {\n $.each(entries, function (i, entry) {\n if (entry.isIntersecting) {\n const $picture = $(entry.target)\n if (!$picture.hasClass('loaded')) {\n const datasrc = $picture.data('background-src')\n if (datasrc !== '' && datasrc !== undefined) {\n $picture.removeClass('skeleton').addClass('loaded').css('background-image', `url('${datasrc}')`)\n lazyObserver.unobserve(entry.target)\n } else {\n putSrcPicture(entry.target, true)\n }\n }\n }\n })\n } else {\n lazyObserver.disconnect()\n }\n}\n\nfunction activeSkeleton(entries) {\n $.each(entries, function (i, entry) {\n if (entry.isIntersecting) {\n const $picture = $(entry.target)\n $picture.addClass('skeleton')\n skeletonObserver.unobserve(entry.target)\n }\n })\n}\n\nfunction loadImgsWithObserver($img) {\n /** -------- INTERSECTION OBSERVER LAZY LOADING -------- */\n const options = {\n root: null,\n rootMargin: '0px 0px 40px 0px',\n threshold: 0,\n }\n\n lazyObserver = new IntersectionObserver(imgLazyLoad, options)\n\n /** -------- INTERSECTION OBSERVER ACTIVE SKELETON -------- */\n\n const options_skeleton = {\n root: null,\n rootMargin: '0px 0px 256px 0px',\n threshold: 0,\n }\n\n skeletonObserver = new IntersectionObserver(activeSkeleton, options_skeleton)\n\n $img.each(function (i, image) {\n lazyObserver.observe(image)\n skeletonObserver.observe(image)\n })\n\n /** ---------- MUTATION OBSERVER ---------- */\n const body_node = $('body')[0]\n const main_node = $('[role=\"main\"]').length ? $('[role=\"main\"]')[0] : undefined\n const page_wrapper_node = $('.page-wrapper').length ? $('.page-wrapper')[0] : undefined\n let mutation_observer\n\n mutation_observer = new MutationObserver(function (mutation) {\n const newNodes = mutation[0].addedNodes\n if (newNodes !== null) {\n const $nodes = $(newNodes)\n $nodes.each(function () {\n const $node = $(this)\n $node.find(SELECTOR_PIC_INVIEW).each(function (i, image) {\n lazyObserver.observe(image)\n })\n })\n }\n })\n\n const mutation_options = {\n attributes: false,\n childList: true,\n characterData: false,\n subtree: false,\n }\n\n mutation_observer.observe(body_node, mutation_options)\n if (main_node !== undefined) {\n mutation_observer.observe(main_node, mutation_options)\n }\n if (page_wrapper_node !== undefined) {\n mutation_observer.observe(page_wrapper_node, mutation_options)\n }\n}\n\nexport function addImgToObserver($block) {\n if ('IntersectionObserver' in window) {\n $block.find(SELECTOR_PIC_INVIEW).each(function (i, image) {\n lazyObserver.observe(image)\n })\n }\n}\n\n$(window).trigger('checkInView')\n\n$().fancybox({\n selector: '[data-fancybox-lazy-img]',\n afterLoad(instance, current) {\n const $pictures = current.$content.find(SELECTOR_PICTURE).filter(':not(.loaded)')\n $pictures.each(function () {\n loadImages(this, true)\n })\n },\n})\n\n$('[data-ajax-lazy-img]').on('ajax:success', function () {\n const $pictures = $('.fancybox-container.fancybox-is-open').find(SELECTOR_PICTURE).filter(':not(.loaded)')\n $pictures.each(function () {\n loadImages(this, true)\n })\n})\n\n// Public methods\nwindow.IB.lazyImg = {\n loadImg: loadImages,\n loadBackgroundImg: loadBackgroundImages,\n loadAllImagesSelector,\n loadAllBackgroundImgSelector: loadAllBackgroundImagesSelector,\n loadImgsWithObserver,\n addImgToObserver,\n}\n\nIB.lazyImg.loadImgsWithObserver($images)\n","/* eslint-disable */\nimport '../lazy_img/lazy_img'\n\nimport { readCookie } from '../../../utils/cookie_manager'\nimport { exit_partner, getUrlVars } from '../../analytics/partner_set_cookies'\nimport { currentDevice } from '../../utils/currentDevice'\nimport '../../../vue/mobile_menu/mobile_menu_init'\n\nlet cp_promotional = isPromo()\n\nlet cp_tag, cp_image_tag, cp_partpdv_tag\nreadPartner()\n\nlet isUserPartner, cp, cp_image\nupdatePartner()\n\nsharePartnersBetweenSites()\n\nexport function showPartnerLogo() {\n if (IB.is_in_microsite) {\n return;\n }\n if (!$('.exit-partner').hasClass('is-hidden') && !currentDevice.isMobile) {\n //Solo queremos ejecutar esta función una vez\n return\n }\n\n if (typeof getUrlVars()['NoPartner'] !== 'undefined') {\n //No queremos ejecutar esta función si ya estamos saliendo del partner\n return\n }\n // if (isHorizons() && !readCookie(cp_tag)) return;\n\n if (cp_image == null) {\n updatePartner()\n }\n\n if (cp_image && cp_image != 'null' && cp && cp_promotional === false) {\n const src = decodeURIComponent(cp_image)\n if (currentDevice.isMobile) {\n $('#partner-logo-mobile').removeClass('is-hidden')\n $('.js-img-partner').attr('src', src)\n } else if (currentDevice.isTablet) {\n $('.js-reb-header-wrapper').find('.logo .js-img-partner').addClass('is-hidden')\n } else if (currentDevice.isDesktop) {\n // Partner own logo\n $('.js-partner-logo .js-img-partner').attr('src', src)\n $('.main-header').find('.logo').addClass('logo--partner')\n // PY05355, Header REB - Ficha de hotel 2023, ?test_reb_header=true\n $('.js-reb-header-wrapper').find('.logo').addClass('logo--partner')\n $('.js-reb-header-wrapper').find('.logo .js-imgs-container').addClass('reb-version')\n $('.js-reb-header-wrapper').find('.js-partner-logo').addClass('reb-version')\n // END TEST\n $('.main-header').find('.main-header-content').addClass('main-header-content--partner')\n }\n // Iberostar partners program logo\n $('.js-partner-logo').removeClass('is-hidden')\n IB.lazyImg.loadImg('.js-partner-logo .partner-logo-item--iberostar')\n // PY05355, Header REB - Ficha de hotel 2023, ?test_reb_header=true\n $('.js-reb-header-wrapper .partner-logo-item-menu').removeClass('is-hidden')\n $('.js-reb-header-wrapper .partner-logo-item--iberostar').addClass('is-hidden')\n // END TEST\n $('.partner-logo-fbs').removeClass('is-hidden')\n $('.exit-partner').removeClass('is-hidden')\n\n if (isPartner()) {\n $('.js-partner-logo').removeClass('is-hidden')\n $('.js-partner-logo-mobile').removeClass('is-hidden')\n } else {\n $('.main-header').find('.logo').addClass('logo--partner')\n $('.main-header').find('.main-header-content').addClass('main-header-content--partner')\n $('.main-header > .wrapper-main-header').addClass('partner-header')\n }\n hiddenLogoIberostarWhite()\n } else {\n if (!isPartner()) {\n hidePartnerLogo()\n }\n }\n\n // Do not hide menu\n //if (partnerHasVisibilityMib() === false) {\n // $('.user-options-link-wrapper').addClass('is-hidden');\n //} else {\n // $('.user-options-link-wrapper').removeClass('is-hidden');\n //}\n}\n\nfunction hiddenLogoIberostarWhite() {\n $('.logo-iberostar-white').addClass('is-hidden')\n $('.logo-green').addClass('is-hidden')\n $('.logo-white').addClass('is-hidden')\n}\n\nexport function hidePartnerLogo() {\n const microsite = document.documentElement.dataset.inMicrosite\n if (microsite !== 'false') {\n return\n }\n $('.js-partner-logo').addClass('is-hidden')\n $('#partner-logo-mobile').addClass('is-hidden')\n $('.js-partner-template').addClass('is-hidden')\n $('.exit-partner').addClass('is-hidden')\n $('#logo-iberostar, #logo-iberostar-white, #logo-green, #logo-white, .logo-green, .logo-white').removeClass(\n 'is-hidden'\n )\n $('.main-header').find('.logo').removeClass('logo--partner')\n // PY05355, Header REB - Ficha de hotel 2023, ?test_reb_header=true\n $('.js-reb-header-wrapper').find('.logo').removeClass('logo--partner')\n // END TEST\n\n $('.main-header').find('.main-header-content').removeClass('main-header-content--partner')\n $('.main-header > .wrapper-main-header').removeClass('partner-header')\n $('.user-options-link-wrapper').removeClass('is-hidden')\n}\n\nexport function isPartner() {\n return !(typeof cp === 'undefined' || cp === null)\n}\n\nfunction partnerHasVisibilityMib() {\n const cp_partpdv = readCookie(cp_partpdv_tag)\n return cp_partpdv === undefined || cp_partpdv !== '0' || cp_partpdv === null\n}\n\nfunction isPromotionalPartner() {\n return isUserPartner && cp_promotional === 'true'\n}\n\nfunction isPromo() {\n return readCookie('cp_promotional') === 'true'\n}\n\nfunction readPartner() {\n cp_tag = cp_promotional ? 'cp' : 'cp_no_prom'\n cp_image_tag = cp_promotional ? 'cp_image' : 'cp_no_prom_image'\n cp_partpdv_tag = cp_promotional ? 'cp_partpdv' : 'cp_no_prom_partpdv'\n}\n\nfunction updatePartner() {\n cp = readCookie(cp_tag)\n cp_promotional = isPromo()\n cp_image = readCookie(cp_image_tag)\n isUserPartner = isPartner()\n}\n\nexport function let_exit_partner() {\n $('.exit-partner').on('click', function (event) {\n event.preventDefault()\n if(currentDevice.isMobile && document.body.classList.contains('opened-menu')) {\n document.body.classList.remove('opened-menu')\n const header = document.querySelector('.js-mobile-header')\n if (header.classList.contains('fake-header-menu')) {\n header.classList.remove('fake-header-menu')\n header.classList.add('initial')\n }\n ScrollLock.off()\n }\n exit_partner(function () {\n hidePartnerLogo()\n })\n })\n}\n\nfunction sharePartnersBetweenSites() {\n if (window.location.href.indexOf('iberostar.com') === -1) {\n return\n }\n\n if (getUrlVars()['cp'] === undefined && $.cookie('cp') === undefined && $.cookie('cp_no_prom') === undefined) {\n return\n }\n\n const cp = getUrlVars()['cp'] || $.cookie('cp') || $.cookie('cp_no_prom')\n\n ;[\n 'https://www.iberostarbeachfront.com',\n 'https://www.iberostarhotels.com',\n 'http://www.iberostarbeachfront.com',\n 'http://www.iberostarhotels.com',\n ].forEach(function (s) {\n document.querySelectorAll(`[href^=\"${s}\"]`).forEach(function (u) {\n let href = u.href\n href += href.includes('?') ? '&' : '?'\n href += `cp=${cp}`\n u.setAttribute('href', href)\n })\n })\n}\n\nwindow.IB.partner = {\n showPartnerLogo,\n hidePartnerLogo,\n let_exit_partner,\n isPartner,\n isPromotionalPartner,\n updatePartner,\n partnerHasVisibilityMib,\n}\n\nIB.partner.showPartnerLogo()\nIB.partner.let_exit_partner()\n","\n\nlet IBEROSTAR_PRO_COOKIE_NAME = 'iberpro';\nlet USER_FIELD_NAME = 'user_email_md5';\n\nfunction is_partner() {\n return IB.partner.isPartner();\n}\n\nfunction is_agency() {\n let pro_cookie = $.cookie(IBEROSTAR_PRO_COOKIE_NAME);\n\n return typeof pro_cookie !== 'undefined';\n}\n\nfunction is_user() {\n let utag_user = sessionStorage.getItem('utag_user');\n if (utag_user === undefined || utag_user === null || !utag_user.length) return false;\n let user_mail = JSON.parse(utag_user)[USER_FIELD_NAME];\n\n return user_mail !== null && user_mail !== undefined;\n}\n\n\nwindow.IB.visitor_type_detector = {\n is_partner: is_partner,\n is_agency: is_agency,\n is_user: is_user\n};\n","import '../../vendors/jquery/jquery.scrollTo'\n\nconst $document = $(document)\nconst $html = $('html')\nconst close_tpl = $(\n ''\n)\nconst defaults = {\n from_position: 'right',\n}\nlet distance\nconst in_mobile = IB.currentDevice === 'mobile'\nconst isFhiPage = document.querySelector('html').dataset.fhiTest !== undefined\n\nfunction MobilePanel(element, options) {\n this.element = element\n this.options = $.extend({}, defaults, options)\n\n this.init()\n}\n\nMobilePanel.prototype.init = function () {\n const $el = $(this.element)\n const opts = this.options\n const from_position = typeof $el.data('panel-from') === 'undefined' ? opts.from_position : $el.data('panel-from')\n if ($el.find('.close-mobile-panel').length < 1) {\n if ($el.hasClass('date-picker-wrapper') || $el.attr('id') === 'people-mobile-panel') {\n const $date_info = $el.find('.dates-info')\n const $week_names = $el.find('.week-names')\n const $people_resume = $el.find('.people-mobile-resume')\n\n if ($date_info.length) {\n $date_info.prepend(\n $(\n '
'\n ).append(close_tpl.clone())\n )\n } else {\n $el.prepend(\n $(\n '
'\n ).append(close_tpl.clone())\n )\n }\n } else {\n $el.append(close_tpl.clone())\n }\n }\n $el.addClass(from_position)\n if (!$el.parent().is('body')) {\n $el.remove()\n $('body').append($el)\n }\n $el.addClass('ready')\n}\n\n$document.on('click', '.open-mobile-panel', function (event) {\n event.preventDefault()\n const $this = $(this)\n if ($this.attr('data-remote')) {\n $($this.attr('data-remote-panel-href')).addClass('opened')\n } else if ($this.attr('href')) {\n $($this.attr('href')).addClass('opened')\n } else {\n $($this.attr('data-target')).addClass('opened')\n }\n\n $html.addClass('mobile-panel-opened')\n if (!isFhiPage) ScrollLock.on()\n\n if (in_mobile && $this.hasClass('js-filter-list-link') && $('.filtering-container').length) {\n ScrollLock.off() // let the window scroll\n distance = $('.filtering-container').offset().top\n }\n})\n\n$document.on('click', '[data-close-panel]', function (event) {\n event.preventDefault()\n const $this = $(this)\n const $panel = $this.closest('.mobile-panel')\n let $this_trigger\n\n // Select trigger link that opens panel and set aria-selected to false when we click on close panel\n if ($panel.length) {\n $this_trigger = $(`[href=#${$panel.attr('id')}]`)\n }\n if ($this_trigger.length) {\n $this_trigger.attr('aria-selected', false)\n }\n\n const wasOpened = $panel.hasClass('opened')\n $panel.removeClass('opened opened-picker')\n if (\n !$('.mobile-panel.opened').length ||\n ($this.hasClass('apply-btn') && $panel.attr('id') === 'people-mobile-panel')\n ) {\n if (in_mobile && $this.hasClass('apply-filters') && distance !== undefined) {\n $document.scrollTo(distance - ($('.filters.sticky').height() + $('.mobile-header').height() + 50))\n }\n $('.mobile-panel').removeClass('opened')\n $('.mobile-fastbooking-bg').remove()\n $html.removeClass('mobile-panel-opened')\n wasOpened && ScrollLock.off()\n }\n})\n\n$.fn.mobilepanel = function (options) {\n return this.each(function () {\n if (!$.data(this, 'plugin_mobilepanel')) {\n $.data(this, 'plugin_mobilepanel', new MobilePanel(this, options))\n }\n })\n}\n","import { currentDevice } from '../../core/utils/currentDevice'\nimport { getPrefix } from '../../core/utils/locale.js'\nimport Modal from '../../shared/modal/modal'\nimport { readCookie } from '../../utils/cookie_manager'\nimport { getLazyData } from '../../utils/get_lazy_data'\n\nimport { initializeUtagEvents } from './phone_list_analytics.js'\n\nexport const CALL_CENTER_MODAL_OPEN_EVENT = 'call-center-modal:open'\nexport const CALL_CENTER_MODAL_CLOSE_EVENT = 'call-center-modal:close'\n\nif (currentDevice.isMobile) {\n import('./phone_list_mobile.scss')\n} else {\n import(`./phone_list.scss`)\n}\nconst isFhiPage = document.querySelector('html').dataset.fhiTest !== undefined\n$(function () {\n let opened = false\n const callCenterLinks = document.querySelectorAll('.js-call-center-modal')\n\n callCenterLinks.forEach(element => {\n element.addEventListener('click', e => {\n const utagStructure = e.currentTarget.dataset.utagStructure\n\n const threeMoreRooms = e.target.classList.contains('js-three-more-rooms')\n openCallCenterPopup(false, threeMoreRooms, utagStructure)\n })\n })\n\n $(document).on('click', '.show-phone-numbers-404', function (e) {\n e.preventDefault()\n e.stopPropagation()\n if (!opened) openCallCenterPopup(true)\n })\n\n $(document).on('click', '.phone-list-see-numbers', function () {\n if (!opened) openCallCenterPopup(true)\n if ($(this).data('show') == true) {\n $('.phone-list-number').hide()\n $('.phone-list-row').hide()\n $('.phone-list-email').hide()\n $('.phone-list-numbers').show()\n return true\n }\n $('.phone-list-number').show()\n\n hidePhoneList()\n })\n\n $(document).on('click', '.show-phone-numbers', function () {\n $('.mobile-call-center').trigger('click')\n $('.phone-list-see-numbers').trigger('click')\n $('.phone-list-number').hide()\n $('.phone-list-row').hide()\n $('.phone-list-email').hide()\n })\n\n function openCallCenterPopup(showNumbers = false, threeMoreRooms = false, utagStructure = false) {\n opened = true\n const htmlTag = document.documentElement\n const country = readCookie('x-country')\n const marketId = htmlTag.dataset.marketId\n const site = IB.is_in_microsite ? htmlTag.dataset.inMicrosite : 'iberostar'\n const force_cc = false\n const url = `${getPrefix()}/ajax_contents/lightbox_callcenter/?country=${country}&market_id=${marketId}&site=${site}&force=${force_cc}&showNumbers=${showNumbers}&three_more_rooms=${threeMoreRooms}`\n\n getLazyData(url, function (modalHtml) {\n Modal.showHtml({\n html: modalHtml,\n onShow: modal => {\n if (!isFhiPage) {\n const callCenterContainer = modal.querySelector('.js-call-center-content')\n ScrollLock.on()\n if (callCenterContainer) {\n callCenterContainer.classList.remove('hidden')\n }\n if (utagStructure) {\n modal.classList.add(utagStructure)\n }\n initializeUtagEvents()\n\n // Close modal when user opens Call Me Back Modal\n const callMeBackButton = modal.querySelector('.js-show-call-me-back-modal')\n callMeBackButton.addEventListener('click', function () {\n if (modal) {\n Modal.close()\n }\n })\n }\n },\n onClose() {\n ScrollLock.off()\n opened = false\n },\n awaitCloseAnimation: true,\n })\n })\n }\n\n function hidePhoneList() {\n $('.phone-list-numbers').hide()\n $('.phone-list-row').show()\n $('.phone-list-email').show()\n }\n\n window.IB.phone_list = {\n openCallCenterPopup,\n }\n})\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\n\nexport function initializeUtagEvents() {\n const isFhiPage = document.querySelector('html').dataset.fhiTest !== undefined\n const seeMoreNumberLink = document.querySelector('.phone-list-see-numbers.utag-event-call')\n const structure = ''\n seeMoreNumberLink.addEventListener('click', () => {\n const name = 'call_view_numbers'\n const category = 'call center'\n const action = 'view other number'\n const fhiPageType = document.querySelector('html').dataset.fhiTest\n\n sendUtagEvent({\n data: {\n event_name: name,\n event_cat: category,\n event_act: action,\n event_lbl: '',\n event_purpose: 'information',\n event_structure: 'popup',\n page_variation: isFhiPage ? fhiPageType : 'control',\n },\n })\n })\n\n document.querySelector('.utag-link-to-contact-iberostarpro').addEventListener('click', () => {\n sendUtagEvent({\n data: {\n event_name: 'call_agency',\n event_cat: 'call center',\n event_act: 'agency contact',\n event_lbl: '',\n event_purpose: 'information',\n event_structure: 'popup',\n },\n })\n })\n\n document.querySelector('.utag-link-to-contact-form').addEventListener('click', () => {\n const category = 'call center'\n const action = 'mail contact'\n const fhiPageType = document.querySelector('html').dataset.fhiTest\n\n if (!isFhiPage) {\n sendUtagEvent({\n data: {\n event_name: 'call_mail',\n event_cat: category,\n event_act: action,\n event_lbl: '',\n event_structure: 'popup',\n event_purpose: 'information',\n },\n })\n } else {\n sendUtagEvent({\n data: {\n event_name: 'call_mail',\n event_cat: category,\n event_act: action,\n event_lbl: '',\n event_structure: 'popup',\n event_purpose: 'information',\n page_variation: fhiPageType,\n },\n })\n }\n })\n document.querySelectorAll('.utag-show-call-me-back-modal').forEach(element => {\n element.addEventListener('click', function () {\n sendUtagEvent({\n data: {\n event_name: 'call_me_back',\n event_cat: 'call center',\n event_act: 'call me back',\n event_lbl: 'popup',\n event_purpose: 'information',\n event_structure: 'popup',\n },\n })\n })\n })\n}\n","\nconst formikation = {\n\n // Internal variables / DOM caching / etc.\n dat: {\n els: null // elements\n },\n\n // Default settings / params\n defaults: {\n mapClass: true,\n mapStyle: true\n },\n\n // Aquí se inicializa el tema de verdad\n init: function (params) {\n // filter out <= IE6\n if (typeof document.body.style.maxHeight === 'undefined') {\n return this;\n }\n\n // Merge the params to default\n this.defaults = $.extend(this.defaults, params);\n\n // Process elements in collection\n this.dat.els.each(function (idx) {\n // Check / radio\n if ($(this).is(':checkbox, :radio')) {\n formikation.processRadioCheck(this);\n // Select\n } else if ($(this).is('select')) {\n formikation.processSelects(this);\n // File input\n } else if ($(this).is('input:file')) {\n formikation.processInputFile(this);\n // Nor to be processed\n } else {\n // Do nothing?\n }\n });\n },\n\n // Aquí se procesan los checks\n processRadioCheck: function (el) {\n let $el = $(el);\n let $label = $el.closest('label');\n\n // Add class with sprite\n if ($el.is(':checkbox')) {\n $label.addClass('fk-check');\n } else {\n $label.addClass('fk-radio');\n }\n if (this.defaults.mapClass) {\n $label.addClass($el.attr('class'));\n }\n if (this.defaults.mapStyle) {\n $label.attr('style', $el.attr('style'));\n }\n\n $el.on('formikation.update', function () {\n if ($el.prop('checked')) {\n $el.closest('form').find(':radio[name=\"' + $el.attr('name') + '\"]').closest('label')\n .removeClass('checked');\n $label.addClass('checked');\n } else {\n $label.removeClass('checked');\n }\n\n formikation.is_disabled($el, $label);\n });\n\n $el.on('click, change', function () {\n $el.trigger('formikation.update');\n });\n\n $el.trigger('formikation.update');\n },\n\n // Process selects\n processSelects: function (el) {\n let\n $el = $(el);\n let selectInnerSpan = $('').addClass('fk-select-label');\n let selectSpan = $('');\n let prefix = 'fk-select';\n\n $el.after(selectSpan.append(selectInnerSpan));\n\n selectSpan.addClass(prefix);\n\n if (this.defaults.mapClass) {\n selectSpan.addClass($el.attr('class'));\n }\n if (this.defaults.mapStyle) {\n selectSpan.attr('style', $el.attr('style'));\n }\n\n $el.addClass('has-fk-select')\n .on('formikation.update', function () {\n formikation.changed($el, selectSpan);\n formikation.updateSelectWH($el);\n formikation.is_disabled($el, selectSpan);\n })\n .on('change', function () {\n selectSpan.addClass(formikation.getClass($el, 'Changed'));\n $el.trigger('formikation.update');\n })\n .on('keyup', function (e) {\n if (!selectSpan.hasClass(formikation.getClass($el, 'Open'))) {\n $el.blur();\n $el.focus();\n } else if (e.which == 13 || e.which == 27) {\n formikation.changed($el, selectSpan);\n }\n })\n .on('mousedown', function (e) {\n selectSpan.removeClass(formikation.getClass($el, 'Changed'));\n })\n .on('mouseup', function (e) {\n if (!selectSpan.hasClass(formikation.getClass($el, 'Open'))) {\n // if FF and there are other selects open, just apply focus\n if ($('.' + formikation.getClass($el, 'Open')).not(selectSpan).length > 0 && typeof InstallTrigger !== 'undefined') {\n $el.focus();\n } else {\n selectSpan.addClass(formikation.getClass($el, 'Open'));\n e.stopPropagation();\n $(document).one('mouseup.' + formikation.getClass($el, 'Open'), function (e) {\n if (e.target != $el.get(0) && $.inArray(e.target, $el.find('*').get()) < 0) {\n $el.blur();\n } else {\n formikation.changed($el, selectSpan);\n }\n });\n }\n }\n })\n .focus(function () {\n selectSpan.removeClass(formikation.getClass($el, '-changed')).addClass(formikation.getClass($el, '-focus'));\n })\n .blur(function () {\n selectSpan.removeClass(formikation.getClass($el, '-focus') + ' ' + formikation.getClass($el, '-open'));\n })\n .hover(function () {\n selectSpan.addClass(formikation.getClass($el, '-hover'));\n }, function () {\n selectSpan.removeClass(formikation.getClass($el, '-hover'));\n })\n .trigger('formikation.update');\n },\n\n // Process input file\n processInputFile: function (el) {\n let $div = $('
');\n let $el = $(el);\n let text = $el.attr('placeholder');\n let btn_text = $el.attr('data-text');\n\n $el.on('change formikation.update', function (e) {\n let fn = $el.val().replace(/C:\\\\fakepath\\\\/i, '');\n if (!fn) {\n fn = text;\n $el.closest('.fk-file-input').addClass('fk-is-placeholder');\n } else {\n $el.closest('.fk-file-input').removeClass('fk-is-placeholder');\n }\n $el.prev('p').html(fn);\n });\n\n formikation.is_disabled($el, $div);\n $el.wrap($div.attr('data-text', btn_text)).parent().prepend('

' + text + '

');\n },\n\n // Updates select width to match span\n updateSelectWH: function (sel) {\n let $sel = $(sel);\n let $spa = $sel.next('span');\n\n $sel.css({\n '-webkit-appearance': 'menulist-button',\n 'width': parseInt($spa.outerWidth(), 10),\n 'height': parseInt($spa.outerHeight(), 10),\n 'position': 'absolute',\n 'opacity': 0,\n 'fontSize': $spa.css('font-size')\n });\n },\n\n // HELPERS FUNCTIONS UTILITIES ================\n // Returns class depending on type adding suffix\n getClass: function (el, suffix) {\n let prefix = (el.is('input:file')) ? 'fk-file' : 'fk-select';\n return prefix + suffix;\n },\n\n // ?\n changed: function ($el, selectSpan) {\n let currentSelected = $el.find(':selected');\n let selectSpanInner = selectSpan.children(':first');\n let html = currentSelected.html() || $el.val();\n\n selectSpan.removeAttr('class');\n selectSpan.addClass('fk-select');\n selectSpan.addClass('currency-' + html);\n selectSpanInner.html(html);\n\n if (IB.currentDevice === 'mobile') {\n let $l = $('.language-selector-attr');\n let $c = $('.currency-selector-attr');\n if ($l.length) {\n let a = $l[0].textContent + ':';\n $('.footer-selectors .language-selector .fk-select').find('.fk-select-label').attr('name', a);\n }\n\n if ($c.length) {\n let b = $c[0].textContent + ':';\n $('.footer-selectors .currency-selector .fk-select').find('.fk-select-label').attr('name', b);\n }\n }\n\n\n if (currentSelected.prop('disabled')) {\n selectSpan.addClass(formikation.getClass($el, 'fk-disable-option'));\n } else {\n selectSpan.removeClass(formikation.getClass($el, 'fk-disable-option'));\n }\n\n // Add placeholder class to span if:\n // - Is first option && has NO value\n // - Is first option && HAS value && value is empty\n if (\n $el[0].selectedIndex < 1 &&\n (!currentSelected[0].hasAttribute('value') || currentSelected.val().length === 0)\n ) {\n selectSpanInner.addClass('fk-is-placeholder');\n } else {\n selectSpanInner.removeClass('fk-is-placeholder');\n }\n\n setTimeout(function () {\n selectSpan.removeClass(formikation.getClass($el, 'Open'));\n $(document).off('mouseup.' + formikation.getClass($el, 'Open'));\n }, 60);\n },\n\n // Check if element is disabled\n is_disabled: function ($el, $target) {\n if ($el.prop('disabled')) {\n $target.addClass('disabled');\n } else {\n $target.removeClass('disabled');\n }\n }\n\n};\n\n// JQuery hooks\n(function ($) {\n $.fn.formikation = function (params) {\n formikation.dat.els = this; // JQuery elements\n formikation.init(params);\n };\n})(jQuery);\n","/*!\n* Parsley.js\n* Version 2.8.1 - built Sat, Feb 3rd 2018, 2:27 pm\n* http://parsleyjs.org\n* Guillaume Potier - \n* Marc-Andre Lafortune - \n* MIT Licensed\n*/\nfunction _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t\n * @license MIT\n */\nfunction n(){var t=this,i=window||global;_extends(this,{isNativeEvent:function(e){return e.originalEvent&&e.originalEvent.isTrusted!==!1},fakeInputEvent:function(i){t.isNativeEvent(i)&&e(i.target).trigger(\"input\")},misbehaves:function(i){t.isNativeEvent(i)&&(t.behavesOk(i),e(document).on(\"change.inputevent\",i.data.selector,t.fakeInputEvent),t.fakeInputEvent(i))},behavesOk:function(i){t.isNativeEvent(i)&&e(document).off(\"input.inputevent\",i.data.selector,t.behavesOk).off(\"change.inputevent\",i.data.selector,t.misbehaves)},install:function(){if(!i.inputEventPatched){i.inputEventPatched=\"0.0.3\";for(var n=[\"select\",'input[type=\"checkbox\"]','input[type=\"radio\"]','input[type=\"file\"]'],r=0;r1)throw Error(\"Second argument not supported\");if(\"object\"!=typeof t)throw TypeError(\"Argument must be an object\");e.prototype=t;var i=new e;return e.prototype=null,i}}(),_SubmitSelector:'input[type=\"submit\"], button:submit'},o={namespace:\"data-parsley-\",inputs:\"input, textarea, select\",excluded:\"input[type=button], input[type=submit], input[type=reset], input[type=hidden]\",priorityEnabled:!0,multiple:null,group:null,uiEnabled:!0,validationThreshold:3,focus:\"first\",trigger:!1,triggerAfterFailure:\"input\",errorClass:\"parsley-error\",successClass:\"parsley-success\",classHandler:function(e){},errorsContainer:function(e){},errorsWrapper:'
    ',errorTemplate:\"
  • \"},l=function(){this.__id__=a.generateID()};l.prototype={asyncSupport:!0,_pipeAccordingToValidationResult:function(){var t=this,i=function(){var i=e.Deferred();return!0!==t.validationResult&&i.reject(),i.resolve().promise()};return[i,i]},actualizeOptions:function(){return a.attr(this.element,this.options.namespace,this.domOptions),this.parent&&this.parent.actualizeOptions&&this.parent.actualizeOptions(),this},_resetOptions:function(e){this.domOptions=a.objectCreate(this.parent.options),this.options=a.objectCreate(this.domOptions);for(var t in e)e.hasOwnProperty(t)&&(this.options[t]=e[t]);this.actualizeOptions()},_listeners:null,on:function(e,t){this._listeners=this._listeners||{};var i=this._listeners[e]=this._listeners[e]||[];return i.push(t),this},subscribe:function(t,i){e.listenTo(this,t.toLowerCase(),i)},off:function(e,t){var i=this._listeners&&this._listeners[e];if(i)if(t)for(var n=i.length;n--;)i[n]===t&&i.splice(n,1);else delete this._listeners[e];return this},unsubscribe:function(t,i){e.unsubscribeTo(this,t.toLowerCase())},trigger:function(e,t,i){t=t||this;var n,r=this._listeners&&this._listeners[e];if(r)for(var s=r.length;s--;)if(n=r[s].call(t,t,i),n===!1)return n;return!this.parent||this.parent.trigger(e,t,i)},asyncIsValid:function(e,t){return a.warnOnce(\"asyncIsValid is deprecated; please use whenValid instead\"),this.whenValid({group:e,force:t})},_findRelated:function(){return this.options.multiple?e(this.parent.element.querySelectorAll(\"[\"+this.options.namespace+'multiple=\"'+this.options.multiple+'\"]')):this.$element}};var u=function(e,t){var i=e.match(/^\\s*\\[(.*)\\]\\s*$/);if(!i)throw'Requirement is not an array: \"'+e+'\"';var n=i[1].split(\",\").map(a.trimString);if(n.length!==t)throw\"Requirement has \"+n.length+\" values when \"+t+\" are needed\";return n},d=function(e,t,i){var n=null,r={};for(var s in e)if(s){var o=i(s);\"string\"==typeof o&&(o=a.parseRequirement(e[s],o)),r[s]=o}else n=a.parseRequirement(e[s],t);return[n,r]},h=function(t){e.extend(!0,this,t)};h.prototype={validate:function(e,t){if(this.fn)return arguments.length>3&&(t=[].slice.call(arguments,1,-1)),this.fn(e,t);if(Array.isArray(e)){if(!this.validateMultiple)throw\"Validator `\"+this.name+\"` does not handle multiple values\";return this.validateMultiple.apply(this,arguments)}var i=arguments[arguments.length-1];if(this.validateDate&&i._isDateInput())return arguments[0]=a.parse.date(arguments[0]),null!==arguments[0]&&this.validateDate.apply(this,arguments);if(this.validateNumber)return!isNaN(e)&&(arguments[0]=parseFloat(arguments[0]),this.validateNumber.apply(this,arguments));if(this.validateString)return this.validateString.apply(this,arguments);throw\"Validator `\"+this.name+\"` only handles multiple values\"},parseRequirements:function(t,i){if(\"string\"!=typeof t)return Array.isArray(t)?t:[t];var n=this.requirementType;if(Array.isArray(n)){for(var r=u(t,n.length),s=0;s1?n-1:0),s=1;s0},validateString:function(e){return/\\S/.test(e)},priority:512},type:{validateString:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],n=i.step,r=void 0===n?\"any\":n,s=i.base,a=void 0===s?0:s,o=c[t];if(!o)throw new Error(\"validator type `\"+t+\"` is not supported\");if(!o.test(e))return!1;if(\"number\"===t&&!/^any$/i.test(r||\"\")){var l=Number(e),u=Math.max(f(r),f(a));if(f(l)>u)return!1;var d=function(e){return Math.round(e*Math.pow(10,u))};if((d(l)-d(a))%d(r)!=0)return!1}return!0},requirementType:{\"\":\"string\",step:\"string\",base:\"number\"},priority:256},pattern:{validateString:function(e,t){return t.test(e)},requirementType:\"regexp\",priority:64},minlength:{validateString:function(e,t){return e.length>=t},requirementType:\"integer\",priority:30},maxlength:{validateString:function(e,t){return e.length<=t},requirementType:\"integer\",priority:30},length:{validateString:function(e,t,i){return e.length>=t&&e.length<=i},requirementType:[\"integer\",\"integer\"],priority:30},mincheck:{validateMultiple:function(e,t){return e.length>=t},requirementType:\"integer\",priority:30},maxcheck:{validateMultiple:function(e,t){return e.length<=t},requirementType:\"integer\",priority:30},check:{validateMultiple:function(e,t,i){return e.length>=t&&e.length<=i},requirementType:[\"integer\",\"integer\"],priority:30},min:v(function(e,t){return e>=t}),max:v(function(e,t){return e<=t}),range:v(function(e,t,i){return e>=t&&e<=i}),equalto:{validateString:function(t,i){var n=e(i);return n.length?t===n.val():t===i},priority:256}}};var y={},_=function k(e,t,i){for(var n=[],r=[],s=0;s0&&\"undefined\"==typeof t.options.noFocus&&(this._focusedField=t.$element,\"first\"===this.options.focus))break}return null===this._focusedField?null:this._focusedField.focus()},_destroyUI:function(){this.$element.off(\".Parsley\")}},y.Field={_reflowUI:function(){if(this._buildUI(),this._ui){var e=_(this.validationResult,this._ui.lastValidationResult);this._ui.lastValidationResult=this.validationResult,this._manageStatusClass(),this._manageErrorsMessages(e),this._actualizeTriggers(),!e.kept.length&&!e.added.length||this._failedOnce||(this._failedOnce=!0,this._actualizeTriggers())}},getErrorsMessages:function(){if(!0===this.validationResult)return[];for(var e=[],t=0;t0?this._errorClass():this._resetClass()},_manageErrorsMessages:function(t){if(\"undefined\"==typeof this.options.errorsMessagesDisabled){if(\"undefined\"!=typeof this.options.errorMessage)return t.added.length||t.kept.length?(this._insertErrorWrapper(),0===this._ui.$errorsWrapper.find(\".parsley-custom-error-message\").length&&this._ui.$errorsWrapper.append(e(this.options.errorTemplate).addClass(\"parsley-custom-error-message\")),this._ui.$errorsWrapper.addClass(\"filled\").find(\".parsley-custom-error-message\").html(this.options.errorMessage)):this._ui.$errorsWrapper.removeClass(\"filled\").find(\".parsley-custom-error-message\").remove();for(var i=0;i').appendTo(this.$element)),i.attr({name:t.getAttribute(\"name\"),value:t.getAttribute(\"value\")})}this.$element.trigger(_extends(e.Event(\"submit\"),{parsley:!0}))}},validate:function(t){if(arguments.length>=1&&!e.isPlainObject(t)){a.warnOnce(\"Calling validate on a parsley form without passing arguments as an object is deprecated.\");var i=_slice.call(arguments),n=i[0],r=i[1],s=i[2];t={group:n,force:r,event:s}}return b[this.whenValidate(t).state()]},whenValidate:function(){var t,i=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=n.group,s=n.force,o=n.event;this.submitEvent=o,o&&(this.submitEvent=_extends({},o,{preventDefault:function(){a.warnOnce(\"Using `this.submitEvent.preventDefault()` is deprecated; instead, call `this.validationResult = false`\"),i.validationResult=!1}})),this.validationResult=!0,this._trigger(\"validate\"),this._refreshFields();var l=this._withoutReactualizingFormOptions(function(){return e.map(i.fields,function(e){return e.whenValidate({force:s,group:r})})});return(t=a.all(l).done(function(){i._trigger(\"success\")}).fail(function(){i.validationResult=!1,i.focus(),i._trigger(\"error\")}).always(function(){i._trigger(\"validated\")})).pipe.apply(t,_toConsumableArray(this._pipeAccordingToValidationResult()))},isValid:function(t){if(arguments.length>=1&&!e.isPlainObject(t)){a.warnOnce(\"Calling isValid on a parsley form without passing arguments as an object is deprecated.\");var i=_slice.call(arguments),n=i[0],r=i[1];t={group:n,force:r}}return b[this.whenValid(t).state()]},whenValid:function(){var t=this,i=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=i.group,r=i.force;this._refreshFields();var s=this._withoutReactualizingFormOptions(function(){return e.map(t.fields,function(e){return e.whenValid({group:n,force:r})})});return a.all(s)},refresh:function(){return this._refreshFields(),this},reset:function(){for(var e=0;e=1&&!e.isPlainObject(t)&&(a.warnOnce(\"Calling validate on a parsley field without passing arguments as an object is deprecated.\"),t={options:t});var i=this.whenValidate(t);if(!i)return!0;switch(i.state()){case\"pending\":return null;case\"resolved\":return!0;case\"rejected\":return this.validationResult}},whenValidate:function(){var e,t=this,i=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=i.force,r=i.group;if(this.refresh(),!r||this._isInGroup(r))return this.value=this.getValue(),this._trigger(\"validate\"),(e=this.whenValid({force:n,value:this.value,_refreshed:!0}).always(function(){t._reflowUI()}).done(function(){t._trigger(\"success\")}).fail(function(){t._trigger(\"error\")}).always(function(){t._trigger(\"validated\")})).pipe.apply(e,_toConsumableArray(this._pipeAccordingToValidationResult()))},hasConstraints:function(){return 0!==this.constraints.length},needsValidation:function(e){return\"undefined\"==typeof e&&(e=this.getValue()),!(!e.length&&!this._isRequired()&&\"undefined\"==typeof this.options.validateIfEmpty)},_isInGroup:function(t){return Array.isArray(this.options.group)?-1!==e.inArray(t,this.options.group):this.options.group===t},isValid:function(t){if(arguments.length>=1&&!e.isPlainObject(t)){a.warnOnce(\"Calling isValid on a parsley field without passing arguments as an object is deprecated.\");var i=_slice.call(arguments),n=i[0],r=i[1];t={force:n,value:r}}var s=this.whenValid(t);return!s||E[s.state()]},whenValid:function(){var t=this,i=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=i.force,r=void 0!==n&&n,s=i.value,o=i.group,l=i._refreshed;if(l||this.refresh(),!o||this._isInGroup(o)){if(this.validationResult=!0,!this.hasConstraints())return e.when();if(\"undefined\"!=typeof s&&null!==s||(s=this.getValue()),!this.needsValidation(s)&&!0!==r)return e.when();var u=this._getGroupedConstraints(),d=[];return e.each(u,function(i,n){var r=a.all(e.map(n,function(e){return t._validateConstraint(s,e)}));if(d.push(r),\"rejected\"===r.state())return!1}),a.all(d)}},_validateConstraint:function(t,i){var n=this,r=i.validate(t,this);return!1===r&&(r=e.Deferred().reject()),a.all([r]).fail(function(e){n.validationResult instanceof Array||(n.validationResult=[]),n.validationResult.push({assert:i,errorMessage:\"string\"==typeof e&&e})})},getValue:function(){var e;return e=\"function\"==typeof this.options.value?this.options.value(this):\"undefined\"!=typeof this.options.value?this.options.value:this.$element.val(),\"undefined\"==typeof e||null===e?\"\":this._handleWhitespace(e)},reset:function(){return this._resetUI(),this._trigger(\"reset\")},destroy:function(){this._destroyUI(),this.$element.removeData(\"Parsley\"),this.$element.removeData(\"FieldMultiple\"),this._trigger(\"destroy\")},refresh:function(){return this._refreshConstraints(),this},_refreshConstraints:function(){return this.actualizeOptions()._bindConstraints()},refreshConstraints:function(){return a.warnOnce(\"Parsley's refreshConstraints is deprecated. Please use refresh\"),this.refresh()},addConstraint:function(e,t,i,n){if(window.Parsley._validatorRegistry.validators[e]){var r=new F(this,e,t,i,n);\"undefined\"!==this.constraintsByName[r.name]&&this.removeConstraint(r.name),this.constraints.push(r),this.constraintsByName[r.name]=r}return this},removeConstraint:function(e){for(var t=0;t1){var i=[];return this.each(function(){i.push(e(this).parsley(t))}),i}if(0!=this.length)return new P(this[0],t)},\"undefined\"==typeof window.ParsleyExtend&&(window.ParsleyExtend={}),T.options=_extends(a.objectCreate(o),window.ParsleyConfig),window.ParsleyConfig=T.options,window.Parsley=window.psly=T,T.Utils=a,window.ParsleyUtils={},e.each(a,function(e,t){\"function\"==typeof t&&(window.ParsleyUtils[e]=function(){return a.warnOnce(\"Accessing `window.ParsleyUtils` is deprecated. Use `window.Parsley.Utils` instead.\"),a[e].apply(a,arguments)})});var O=window.Parsley._validatorRegistry=new p(window.ParsleyConfig.validators,window.ParsleyConfig.i18n);window.ParsleyValidator={},e.each(\"setLocale addCatalog addMessage addMessages getErrorMessage formatMessage addValidator updateValidator removeValidator hasValidator\".split(\" \"),function(e,t){window.Parsley[t]=function(){return O[t].apply(O,arguments)},window.ParsleyValidator[t]=function(){var e;return a.warnOnce(\"Accessing the method '\"+t+\"' through Validator is deprecated. Simply call 'window.Parsley.\"+t+\"(...)'\"),(e=window.Parsley)[t].apply(e,arguments)}}),window.Parsley.UI=y,window.ParsleyUI={removeError:function(e,t,i){var n=!0!==i;return a.warnOnce(\"Accessing UI is deprecated. Call 'removeError' on the instance directly. Please comment in issue 1073 as to your need to call this method.\"),e.removeError(t,{updateClass:n})},getErrorsMessages:function(e){return a.warnOnce(\"Accessing UI is deprecated. Call 'getErrorsMessages' on the instance directly.\"),e.getErrorsMessages()}},e.each(\"addError updateError\".split(\" \"),function(e,t){window.ParsleyUI[t]=function(e,i,n,r,s){var o=!0!==s;return a.warnOnce(\"Accessing UI is deprecated. Call '\"+t+\"' on the instance directly. Please comment in issue 1073 as to your need to call this method.\"),e[t](i,{message:n,assert:r,updateClass:o})}}),!1!==window.ParsleyConfig.autoBind&&e(function(){e(\"[data-parsley-validate]\").length&&e(\"[data-parsley-validate]\").parsley()});var M=e({}),R=function(){a.warnOnce(\"Parsley's pubsub module is deprecated; use the 'on' and 'off' methods on parsley instances or window.Parsley\")},D=\"parsley:\";e.listen=function(e,n){var r;if(R(),\"object\"==typeof arguments[1]&&\"function\"==typeof arguments[2]&&(r=arguments[1],n=arguments[2]),\"function\"!=typeof n)throw new Error(\"Wrong parameters\");window.Parsley.on(i(e),t(n,r))},e.listenTo=function(e,n,r){if(R(),!(e instanceof x||e instanceof w))throw new Error(\"Must give Parsley instance\");if(\"string\"!=typeof n||\"function\"!=typeof r)throw new Error(\"Wrong parameters\");e.on(i(n),t(r))},e.unsubscribe=function(e,t){if(R(),\"string\"!=typeof e||\"function\"!=typeof t)throw new Error(\"Wrong arguments\");window.Parsley.off(i(e),t.parsleyAdaptedCallback)},e.unsubscribeTo=function(e,t){if(R(),!(e instanceof x||e instanceof w))throw new Error(\"Must give Parsley instance\");e.off(i(t))},e.unsubscribeAll=function(t){R(),window.Parsley.off(i(t)),e(\"form,input,textarea,select\").each(function(){var n=e(this).data(\"Parsley\");n&&n.off(i(t))})},e.emit=function(e,t){var n;R();var r=t instanceof x||t instanceof w,s=Array.prototype.slice.call(arguments,r?2:1);s.unshift(i(e)),r||(t=window.Parsley),(n=t).trigger.apply(n,_toConsumableArray(s))};e.extend(!0,T,{asyncValidators:{\"default\":{fn:function(e){return e.status>=200&&e.status<300},url:!1},reverse:{fn:function(e){return e.status<200||e.status>=300},url:!1}},addAsyncValidator:function(e,t,i,n){return T.asyncValidators[e]={fn:t,url:i||!1,options:n||{}},this}}),T.addValidator(\"remote\",{requirementType:{\"\":\"string\",validator:\"string\",reverse:\"boolean\",options:\"object\"},validateString:function(t,i,n,r){var s,a,o={},l=n.validator||(!0===n.reverse?\"reverse\":\"default\");if(\"undefined\"==typeof T.asyncValidators[l])throw new Error(\"Calling an undefined async validator: `\"+l+\"`\");i=T.asyncValidators[l].url||i,i.indexOf(\"{value}\")>-1?i=i.replace(\"{value}\",encodeURIComponent(t)):o[r.element.getAttribute(\"name\")||r.element.getAttribute(\"id\")]=t;var u=e.extend(!0,n.options||{},T.asyncValidators[l].options);s=e.extend(!0,{},{url:i,data:o,type:\"GET\"},u),r.trigger(\"field:ajaxoptions\",r,s),a=e.param(s),\"undefined\"==typeof T._remoteCache&&(T._remoteCache={});var d=T._remoteCache[a]=T._remoteCache[a]||e.ajax(s),h=function(){var t=T.asyncValidators[l].fn.call(r,d,i,n);return t||(t=e.Deferred().reject()),e.when(t)};return d.then(h,h)},priority:-1}),T.on(\"form:submit\",function(){T._remoteCache={}}),l.prototype.addAsyncValidator=function(){return a.warnOnce(\"Accessing the method `addAsyncValidator` through an instance is deprecated. Simply call `Parsley.addAsyncValidator(...)`\"),T.addAsyncValidator.apply(T,arguments)},T.addMessages(\"en\",{defaultMessage:\"This value seems to be invalid.\",type:{email:\"This value should be a valid email.\",url:\"This value should be a valid url.\",number:\"This value should be a valid number.\",integer:\"This value should be a valid integer.\",digits:\"This value should be digits.\",alphanum:\"This value should be alphanumeric.\"},notblank:\"This value should not be blank.\",required:\"This value is required.\",pattern:\"This value seems to be invalid.\",min:\"This value should be greater than or equal to %s.\",max:\"This value should be lower than or equal to %s.\",range:\"This value should be between %s and %s.\",minlength:\"This value is too short. It should have %s characters or more.\",maxlength:\"This value is too long. It should have %s characters or fewer.\",length:\"This value length is invalid. It should be between %s and %s characters long.\",mincheck:\"You must select at least %s choices.\",maxcheck:\"You must select %s choices or fewer.\",check:\"You must select between %s and %s choices.\",equalto:\"This value should be the same.\"}),T.setLocale(\"en\");var I=new n;I.install();var q=T;return q});\n//# sourceMappingURL=parsley.min.js.map","/*!\n * jQuery.scrollTo\n * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler\n * Licensed under MIT\n * https://github.com/flesler/jquery.scrollTo\n * @projectDescription Lightweight, cross-browser and highly customizable animated scrolling with jQuery\n * @author Ariel Flesler\n * @version 2.1.2\n */\n;(function(factory) {\n\t'use strict';\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD\n\t\tdefine(['jquery'], factory);\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\t// CommonJS\n\t\tmodule.exports = factory(require('jquery'));\n\t} else {\n\t\t// Global\n\t\tfactory(jQuery);\n\t}\n})(function($) {\n\t'use strict';\n\n\tvar $scrollTo = $.scrollTo = function(target, duration, settings) {\n\t\treturn $(window).scrollTo(target, duration, settings);\n\t};\n\n\t$scrollTo.defaults = {\n\t\taxis:'xy',\n\t\tduration: 0,\n\t\tlimit:true\n\t};\n\n\tfunction isWin(elem) {\n\t\treturn !elem.nodeName ||\n\t\t\t$.inArray(elem.nodeName.toLowerCase(), ['iframe','#document','html','body']) !== -1;\n\t}\n\n\t$.fn.scrollTo = function(target, duration, settings) {\n\t\tif (typeof duration === 'object') {\n\t\t\tsettings = duration;\n\t\t\tduration = 0;\n\t\t}\n\t\tif (typeof settings === 'function') {\n\t\t\tsettings = { onAfter:settings };\n\t\t}\n\t\tif (target === 'max') {\n\t\t\ttarget = 9e9;\n\t\t}\n\n\t\tsettings = $.extend({}, $scrollTo.defaults, settings);\n\t\t// Speed is still recognized for backwards compatibility\n\t\tduration = duration || settings.duration;\n\t\t// Make sure the settings are given right\n\t\tvar queue = settings.queue && settings.axis.length > 1;\n\t\tif (queue) {\n\t\t\t// Let's keep the overall duration\n\t\t\tduration /= 2;\n\t\t}\n\t\tsettings.offset = both(settings.offset);\n\t\tsettings.over = both(settings.over);\n\n\t\treturn this.each(function() {\n\t\t\t// Null target yields nothing, just like jQuery does\n\t\t\tif (target === null) return;\n\n\t\t\tvar win = isWin(this),\n\t\t\t\telem = win ? this.contentWindow || window : this,\n\t\t\t\t$elem = $(elem),\n\t\t\t\ttarg = target,\n\t\t\t\tattr = {},\n\t\t\t\ttoff;\n\n\t\t\tswitch (typeof targ) {\n\t\t\t\t// A number will pass the regex\n\t\t\t\tcase 'number':\n\t\t\t\tcase 'string':\n\t\t\t\t\tif (/^([+-]=?)?\\d+(\\.\\d+)?(px|%)?$/.test(targ)) {\n\t\t\t\t\t\ttarg = both(targ);\n\t\t\t\t\t\t// We are done\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t// Relative/Absolute selector\n\t\t\t\t\ttarg = win ? $(targ) : $(targ, elem);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'object':\n\t\t\t\t\tif (targ.length === 0) return;\n\t\t\t\t\t// DOMElement / jQuery\n\t\t\t\t\tif (targ.is || targ.style) {\n\t\t\t\t\t\t// Get the real position of the target\n\t\t\t\t\t\ttoff = (targ = $(targ)).offset();\n\t\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar offset = $.isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset;\n\n\t\t\t$.each(settings.axis.split(''), function(i, axis) {\n\t\t\t\tvar Pos\t= axis === 'x' ? 'Left' : 'Top',\n\t\t\t\t\tpos = Pos.toLowerCase(),\n\t\t\t\t\tkey = 'scroll' + Pos,\n\t\t\t\t\tprev = $elem[key](),\n\t\t\t\t\tmax = $scrollTo.max(elem, axis);\n\n\t\t\t\tif (toff) {// jQuery / DOMElement\n\t\t\t\t\tattr[key] = toff[pos] + (win ? 0 : prev - $elem.offset()[pos]);\n\n\t\t\t\t\t// If it's a dom element, reduce the margin\n\t\t\t\t\tif (settings.margin) {\n\t\t\t\t\t\tattr[key] -= parseInt(targ.css('margin'+Pos), 10) || 0;\n\t\t\t\t\t\tattr[key] -= parseInt(targ.css('border'+Pos+'Width'), 10) || 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tattr[key] += offset[pos] || 0;\n\n\t\t\t\t\tif (settings.over[pos]) {\n\t\t\t\t\t\t// Scroll to a fraction of its width/height\n\t\t\t\t\t\tattr[key] += targ[axis === 'x'?'width':'height']() * settings.over[pos];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar val = targ[pos];\n\t\t\t\t\t// Handle percentage values\n\t\t\t\t\tattr[key] = val.slice && val.slice(-1) === '%' ?\n\t\t\t\t\t\tparseFloat(val) / 100 * max\n\t\t\t\t\t\t: val;\n\t\t\t\t}\n\n\t\t\t\t// Number or 'number'\n\t\t\t\tif (settings.limit && /^\\d+$/.test(attr[key])) {\n\t\t\t\t\t// Check the limits\n\t\t\t\t\tattr[key] = attr[key] <= 0 ? 0 : Math.min(attr[key], max);\n\t\t\t\t}\n\n\t\t\t\t// Don't waste time animating, if there's no need.\n\t\t\t\tif (!i && settings.axis.length > 1) {\n\t\t\t\t\tif (prev === attr[key]) {\n\t\t\t\t\t\t// No animation needed\n\t\t\t\t\t\tattr = {};\n\t\t\t\t\t} else if (queue) {\n\t\t\t\t\t\t// Intermediate animation\n\t\t\t\t\t\tanimate(settings.onAfterFirst);\n\t\t\t\t\t\t// Don't animate this axis again in the next iteration.\n\t\t\t\t\t\tattr = {};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tanimate(settings.onAfter);\n\n\t\t\tfunction animate(callback) {\n\t\t\t\tvar opts = $.extend({}, settings, {\n\t\t\t\t\t// The queue setting conflicts with animate()\n\t\t\t\t\t// Force it to always be true\n\t\t\t\t\tqueue: true,\n\t\t\t\t\tduration: duration,\n\t\t\t\t\tcomplete: callback && function() {\n\t\t\t\t\t\tcallback.call(elem, targ, settings);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$elem.animate(attr, opts);\n\t\t\t}\n\t\t});\n\t};\n\n\t// Max scrolling position, works on quirks mode\n\t// It only fails (not too badly) on IE, quirks mode.\n\t$scrollTo.max = function(elem, axis) {\n\t\tvar Dim = axis === 'x' ? 'Width' : 'Height',\n\t\t\tscroll = 'scroll'+Dim;\n\n\t\tif (!isWin(elem))\n\t\t\treturn elem[scroll] - $(elem)[Dim.toLowerCase()]();\n\n\t\tvar size = 'client' + Dim,\n\t\t\tdoc = elem.ownerDocument || elem.document,\n\t\t\thtml = doc.documentElement,\n\t\t\tbody = doc.body;\n\n\t\treturn Math.max(html[scroll], body[scroll]) - Math.min(html[size], body[size]);\n\t};\n\n\tfunction both(val) {\n\t\treturn $.isFunction(val) || $.isPlainObject(val) ? val : { top:val, left:val };\n\t}\n\n\t// Add special hooks so that window scroll properties can be animated\n\t$.Tween.propHooks.scrollLeft =\n\t$.Tween.propHooks.scrollTop = {\n\t\tget: function(t) {\n\t\t\treturn $(t.elem)[t.prop]();\n\t\t},\n\t\tset: function(t) {\n\t\t\tvar curr = this.get(t);\n\t\t\t// If interrupt is true and user scrolled, stop animating\n\t\t\tif (t.options.interrupt && t._last && t._last !== curr) {\n\t\t\t\treturn $(t.elem).stop();\n\t\t\t}\n\t\t\tvar next = Math.round(t.now);\n\t\t\t// Don't waste CPU\n\t\t\t// Browsers don't render floating point scroll\n\t\t\tif (curr !== next) {\n\t\t\t\t$(t.elem)[t.prop](next);\n\t\t\t\tt._last = this.get(t);\n\t\t\t}\n\t\t}\n\t};\n\n\t// AMD requirement\n\treturn $scrollTo;\n});\n","import dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\nimport localizedFormat from 'dayjs/plugin/localizedFormat'\n\nimport { setAsyncDayjsLocale } from '../../core/utils/locale'\n\ndayjs.extend(customParseFormat)\ndayjs.extend(localizedFormat)\n\nif (IB.currentDevice === 'mobile') {\n import(`./rangedatepicker_mobile.scss`)\n} else {\n import(`./rangedatepicker.scss`)\n}\n\n// daterangepicker.js\n// author : Chunlong Liu\n// license : MIT\n// www.jszen.com\n// https://github.com/longbill/jquery-date-range-picker\n\n;(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery', 'dayjs'], factory)\n } else if (typeof exports === 'object' && typeof module !== 'undefined') {\n // CommonJS. Register as a module\n module.exports = factory(require('jquery'), require('dayjs'))\n } else {\n // Browser globals\n factory(jQuery, dayjs)\n }\n})(function ($, dayjs) {\n $.dateRangePickerLanguages = {\n //default language: English\n default: {\n selected: 'Selected:',\n day: 'Day',\n days: 'Days',\n apply: 'Close',\n 'week-1': 'mo',\n 'week-2': 'tu',\n 'week-3': 'we',\n 'week-4': 'th',\n 'week-5': 'fr',\n 'week-6': 'sa',\n 'week-7': 'su',\n 'week-number': 'W',\n 'month-name': [\n 'january',\n 'february',\n 'march',\n 'april',\n 'may',\n 'june',\n 'july',\n 'august',\n 'september',\n 'october',\n 'november',\n 'december',\n ],\n shortcuts: 'Shortcuts',\n 'custom-values': 'Custom Values',\n past: 'Past',\n following: 'Following',\n previous: 'Previous',\n 'prev-week': 'Week',\n 'prev-month': 'Month',\n 'prev-year': 'Year',\n next: 'Next',\n 'next-week': 'Week',\n 'next-month': 'Month',\n 'next-year': 'Year',\n 'less-than': 'Date range should not be more than %d days',\n 'more-than': 'Date range should not be less than %d days',\n 'default-more': 'Please select a date range longer than %d days',\n 'default-single': 'Please select a date',\n 'default-less': 'Please select a date range less than %d days',\n 'default-range': 'Please select a date range between %d and %d days',\n 'default-default': 'Please select a date range',\n time: 'Time',\n hour: 'Hour',\n minute: 'Minute',\n entrada: 'Check-in date',\n salida: 'Check-out date',\n 'current-year': '',\n 'previous-month': '',\n 'next-month': '',\n 'selected-day': '',\n },\n az: {\n selected: 'Seçildi:',\n day: ' gün',\n days: ' gün',\n apply: 'tətbiq',\n 'week-1': '1',\n 'week-2': '2',\n 'week-3': '3',\n 'week-4': '4',\n 'week-5': '5',\n 'week-6': '6',\n 'week-7': '7',\n 'month-name': [\n 'yanvar',\n 'fevral',\n 'mart',\n 'aprel',\n 'may',\n 'iyun',\n 'iyul',\n 'avqust',\n 'sentyabr',\n 'oktyabr',\n 'noyabr',\n 'dekabr',\n ],\n shortcuts: 'Qısayollar',\n past: 'Keçmiş',\n following: 'Növbəti',\n previous: '   ',\n 'prev-week': 'Öncəki həftə',\n 'prev-month': 'Öncəki ay',\n 'prev-year': 'Öncəki il',\n next: '   ',\n 'next-week': 'Növbəti həftə',\n 'next-month': 'Növbəti ay',\n 'next-year': 'Növbəti il',\n 'less-than': 'Tarix aralığı %d gündən çox olmamalıdır',\n 'more-than': 'Tarix aralığı %d gündən az olmamalıdır',\n 'default-more': '%d gündən çox bir tarix seçin',\n 'default-single': 'Tarix seçin',\n 'default-less': '%d gündən az bir tarix seçin',\n 'default-range': '%d və %d gün aralığında tarixlər seçin',\n 'default-default': 'Tarix aralığı seçin',\n },\n //simplified chinese\n cn: {\n selected: '已选择:',\n day: '天',\n days: '天',\n apply: '确定',\n 'week-1': '一',\n 'week-2': '二',\n 'week-3': '三',\n 'week-4': '四',\n 'week-5': '五',\n 'week-6': '六',\n 'week-7': '日',\n 'week-number': '周',\n 'month-name': [\n '一月',\n '二月',\n '三月',\n '四月',\n '五月',\n '六月',\n '七月',\n '八月',\n '九月',\n '十月',\n '十一月',\n '十二月',\n ],\n shortcuts: '快捷选择',\n past: '过去',\n following: '将来',\n previous: '   ',\n 'prev-week': '上周',\n 'prev-month': '上个月',\n 'prev-year': '去年',\n next: '   ',\n 'next-week': '下周',\n 'next-month': '下个月',\n 'next-year': '明年',\n 'less-than': '所选日期范围不能大于%d天',\n 'more-than': '所选日期范围不能小于%d天',\n 'default-more': '请选择大于%d天的日期范围',\n 'default-less': '请选择小于%d天的日期范围',\n 'default-range': '请选择%d天到%d天的日期范围',\n 'default-single': '请选择一个日期',\n 'default-default': '请选择一个日期范围',\n time: '时间',\n hour: '小时',\n minute: '分钟',\n },\n cz: {\n selected: 'Vybráno:',\n day: 'Den',\n days: 'Dny',\n apply: 'Zavřít',\n 'week-1': 'po',\n 'week-2': 'út',\n 'week-3': 'st',\n 'week-4': 'čt',\n 'week-5': 'pá',\n 'week-6': 'so',\n 'week-7': 'ne',\n 'month-name': [\n 'leden',\n 'únor',\n 'březen',\n 'duben',\n 'květen',\n 'červen',\n 'červenec',\n 'srpen',\n 'září',\n 'říjen',\n 'listopad',\n 'prosinec',\n ],\n shortcuts: 'Zkratky',\n past: 'po',\n following: 'následující',\n previous: 'předchozí',\n 'prev-week': 'týden',\n 'prev-month': 'měsíc',\n 'prev-year': 'rok',\n next: 'další',\n 'next-week': 'týden',\n 'next-month': 'měsíc',\n 'next-year': 'rok',\n 'less-than': 'Rozsah data by neměl být větší než %d dnů',\n 'more-than': 'Rozsah data by neměl být menší než %d dnů',\n 'default-more': 'Prosím zvolte rozsah data větší než %d dnů',\n 'default-single': 'Prosím zvolte datum',\n 'default-less': 'Prosím zvolte rozsah data menší než %d dnů',\n 'default-range': 'Prosím zvolte rozsah data mezi %d a %d dny',\n 'default-default': 'Prosím zvolte rozsah data',\n },\n de: {\n selected: 'Auswahl:',\n day: 'Tag',\n days: 'Tage',\n apply: 'Schließen',\n 'week-1': 'mo',\n 'week-2': 'di',\n 'week-3': 'mi',\n 'week-4': 'do',\n 'week-5': 'fr',\n 'week-6': 'sa',\n 'week-7': 'so',\n 'month-name': [\n 'januar',\n 'februar',\n 'märz',\n 'april',\n 'mai',\n 'juni',\n 'juli',\n 'august',\n 'september',\n 'oktober',\n 'november',\n 'dezember',\n ],\n shortcuts: 'Schnellwahl',\n past: 'Vorherige',\n following: 'Folgende',\n previous: 'Vorherige',\n 'prev-week': 'Woche',\n 'prev-month': 'Monat',\n 'prev-year': 'Jahr',\n next: 'Nächste',\n 'next-week': 'Woche',\n 'next-month': 'Monat',\n 'next-year': 'Jahr',\n 'less-than': 'Datumsbereich darf nicht größer sein als %d Tage',\n 'more-than': 'Datumsbereich darf nicht kleiner sein als %d Tage',\n 'default-more': 'Bitte mindestens %d Tage auswählen',\n 'default-single': 'Bitte ein Datum auswählen',\n 'default-less': 'Bitte weniger als %d Tage auswählen',\n 'default-range': 'Bitte einen Datumsbereich zwischen %d und %d Tagen auswählen',\n 'default-default': 'Bitte ein Start- und Enddatum auswählen',\n Time: 'Zeit',\n hour: 'Stunde',\n minute: 'Minute',\n entrada: 'Anreisedatum',\n salida: 'Abreisedatum',\n 'current-year': 'ausgewähltes Jahr',\n 'previous-month': 'letzten Monat',\n 'next-month': 'nächsten Monat',\n 'selected-day': 'ausgewählter Tag',\n },\n es: {\n selected: 'Seleccionado:',\n day: 'Día',\n days: 'Días',\n apply: 'Cerrar',\n 'week-1': 'lu',\n 'week-2': 'ma',\n 'week-3': 'mi',\n 'week-4': 'ju',\n 'week-5': 'vi',\n 'week-6': 'sa',\n 'week-7': 'do',\n 'month-name': [\n 'enero',\n 'febrero',\n 'marzo',\n 'abril',\n 'mayo',\n 'junio',\n 'julio',\n 'agosto',\n 'septiembre',\n 'octubre',\n 'noviembre',\n 'diciembre',\n ],\n shortcuts: 'Accesos directos',\n past: 'Pasado',\n following: 'Siguiente',\n previous: 'Anterior',\n 'prev-week': 'Semana',\n 'prev-month': 'Mes',\n 'prev-year': 'Año',\n next: 'Siguiente',\n 'next-week': 'Semana',\n 'next-month': 'Mes',\n 'next-year': 'Año',\n 'less-than': 'El rango no debería ser mayor de %d días',\n 'more-than': 'El rango no debería ser menor de %d días',\n 'default-more': 'Por favor selecciona un rango mayor a %d días',\n 'default-single': 'Por favor selecciona un día',\n 'default-less': 'Por favor selecciona un rango menor a %d días',\n 'default-range': 'Por favor selecciona un rango entre %d y %d días',\n 'default-default': 'Por favor selecciona un rango de fechas.',\n entrada: 'Fecha de entrada',\n salida: 'Fecha de salida',\n 'current-year': 'año actual',\n 'previous-month': 'mes anterior',\n 'next-month': 'mes siguiente',\n 'selected-day': 'día seleccionado',\n },\n fr: {\n selected: 'Sélection:',\n day: 'Jour',\n days: 'Jours',\n apply: 'Fermer',\n 'week-1': 'lu',\n 'week-2': 'ma',\n 'week-3': 'me',\n 'week-4': 'je',\n 'week-5': 've',\n 'week-6': 'sa',\n 'week-7': 'di',\n 'month-name': [\n 'janvier',\n 'février',\n 'mars',\n 'avril',\n 'mai',\n 'juin',\n 'juillet',\n 'août',\n 'septembre',\n 'octobre',\n 'novembre',\n 'décembre',\n ],\n shortcuts: 'Raccourcis',\n past: 'Passé',\n following: 'Suivant',\n previous: 'Précédent',\n 'prev-week': 'Semaine',\n 'prev-month': 'Mois',\n 'prev-year': 'Année',\n next: 'Suivant',\n 'next-week': 'Semaine',\n 'next-month': 'Mois',\n 'next-year': 'Année',\n 'less-than': \"L'intervalle ne doit pas être supérieure à %d jours\",\n 'more-than': \"L'intervalle ne doit pas être inférieure à %d jours\",\n 'default-more': 'Merci de choisir une intervalle supérieure à %d jours',\n 'default-single': 'Merci de choisir une date',\n 'default-less': 'Merci de choisir une intervalle inférieure %d jours',\n 'default-range': 'Merci de choisir une intervalle comprise entre %d et %d jours',\n 'default-default': 'Merci de choisir une date',\n entrada: 'Date d’arrivée',\n salida: 'Date de départ',\n 'current-year': 'année sélectionnée',\n 'previous-month': 'le mois dernier',\n 'next-month': 'le mois prochain',\n 'selected-day': 'jour sélectionné',\n },\n hu: {\n selected: 'Kiválasztva:',\n day: 'Nap',\n days: 'Nap',\n apply: 'Ok',\n 'week-1': 'h',\n 'week-2': 'k',\n 'week-3': 'sz',\n 'week-4': 'cs',\n 'week-5': 'p',\n 'week-6': 'sz',\n 'week-7': 'v',\n 'month-name': [\n 'január',\n 'február',\n 'március',\n 'április',\n 'május',\n 'június',\n 'július',\n 'augusztus',\n 'szeptember',\n 'október',\n 'november',\n 'december',\n ],\n shortcuts: 'Gyorsválasztó',\n past: 'Múlt',\n following: 'Következő',\n previous: 'Előző',\n 'prev-week': 'Hét',\n 'prev-month': 'Hónap',\n 'prev-year': 'Év',\n next: 'Következő',\n 'next-week': 'Hét',\n 'next-month': 'Hónap',\n 'next-year': 'Év',\n 'less-than': 'A kiválasztás nem lehet több %d napnál',\n 'more-than': 'A kiválasztás nem lehet több %d napnál',\n 'default-more': 'Válassz ki egy időszakot ami hosszabb mint %d nap',\n 'default-single': 'Válassz egy napot',\n 'default-less': 'Válassz ki egy időszakot ami rövidebb mint %d nap',\n 'default-range': 'Válassz ki egy %d - %d nap hosszú időszakot',\n 'default-default': 'Válassz ki egy időszakot',\n },\n it: {\n selected: 'Selezionati:',\n day: 'Giorno',\n days: 'Giorni',\n apply: 'Chiudi',\n 'week-1': 'lu',\n 'week-2': 'ma',\n 'week-3': 'me',\n 'week-4': 'gi',\n 'week-5': 've',\n 'week-6': 'sa',\n 'week-7': 'do',\n 'month-name': [\n 'gennaio',\n 'febbraio',\n 'marzo',\n 'aprile',\n 'maggio',\n 'giugno',\n 'luglio',\n 'agosto',\n 'settembre',\n 'ottobre',\n 'novembre',\n 'dicembre',\n ],\n shortcuts: 'Scorciatoie',\n past: 'Scorso',\n following: 'Successivo',\n previous: 'Precedente',\n 'prev-week': 'Settimana',\n 'prev-month': 'Mese',\n 'prev-year': 'Anno',\n next: 'Prossimo',\n 'next-week': 'Settimana',\n 'next-month': 'Mese',\n 'next-year': 'Anno',\n 'less-than': \"L'intervallo non dev'essere maggiore di %d giorni\",\n 'more-than': \"L'intervallo non dev'essere minore di %d giorni\",\n 'default-more': 'Seleziona un intervallo maggiore di %d giorni',\n 'default-single': 'Seleziona una data',\n 'default-less': 'Seleziona un intervallo minore di %d giorni',\n 'default-range': 'Seleziona un intervallo compreso tra i %d e i %d giorni',\n 'default-default': 'Seleziona un intervallo di date',\n entrada: 'Data di arrivo',\n salida: 'Data di check-out',\n 'current-year': 'anno selezionato',\n 'previous-month': 'lo scorso mese',\n 'next-month': 'il prossimo mese',\n 'selected-day': 'giorno selezionato',\n },\n no: {\n selected: 'Valgt:',\n day: 'Dag',\n days: 'Dager',\n apply: 'Lukk',\n 'week-1': 'ma',\n 'week-2': 'ti',\n 'week-3': 'on',\n 'week-4': 'to',\n 'week-5': 'fr',\n 'week-6': 'lø',\n 'week-7': 'sø',\n 'month-name': [\n 'januar',\n 'februar',\n 'mars',\n 'april',\n 'mai',\n 'juni',\n 'juli',\n 'august',\n 'september',\n 'oktober',\n 'november',\n 'desember',\n ],\n shortcuts: 'Snarveier',\n 'custom-values': 'Egendefinerte Verdier',\n past: 'Over', // Not quite sure about the context of this one\n following: 'Følger',\n previous: 'Forrige',\n 'prev-week': 'Uke',\n 'prev-month': 'Måned',\n 'prev-year': 'År',\n next: 'Neste',\n 'next-week': 'Uke',\n 'next-month': 'Måned',\n 'next-year': 'År',\n 'less-than': 'Datoperioden skal ikkje være lengre enn %d dager',\n 'more-than': 'Datoperioden skal ikkje være kortere enn %d dager',\n 'default-more': 'Vennligst velg ein datoperiode lengre enn %d dager',\n 'default-single': 'Vennligst velg ein dato',\n 'default-less': 'Vennligst velg ein datoperiode mindre enn %d dager',\n 'default-range': 'Vennligst velg ein datoperiode mellom %d og %d dager',\n 'default-default': 'Vennligst velg ein datoperiode',\n time: 'Tid',\n hour: 'Time',\n minute: 'Minutter',\n },\n nl: {\n selected: 'Geselecteerd:',\n day: 'Dag',\n days: 'Dagen',\n apply: 'Ok',\n 'week-1': 'ma',\n 'week-2': 'di',\n 'week-3': 'wo',\n 'week-4': 'do',\n 'week-5': 'vr',\n 'week-6': 'za',\n 'week-7': 'zo',\n 'month-name': [\n 'januari',\n 'februari',\n 'maart',\n 'april',\n 'mei',\n 'juni',\n 'juli',\n 'augustus',\n 'september',\n 'october',\n 'november',\n 'december',\n ],\n shortcuts: 'Snelkoppelingen',\n 'custom-values': 'Aangepaste waarden',\n past: 'Verleden',\n following: 'Komend',\n previous: 'Vorige',\n 'prev-week': 'Week',\n 'prev-month': 'Maand',\n 'prev-year': 'Jaar',\n next: 'Volgende',\n 'next-week': 'Week',\n 'next-month': 'Maand',\n 'next-year': 'Jaar',\n 'less-than': 'Interval moet langer dan %d dagen zijn',\n 'more-than': 'Interval mag niet minder dan %d dagen zijn',\n 'default-more': 'Selecteer een interval langer dan %dagen',\n 'default-single': 'Selecteer een datum',\n 'default-less': 'Selecteer een interval minder dan %d dagen',\n 'default-range': 'Selecteer een interval tussen %d en %d dagen',\n 'default-default': 'Selecteer een interval',\n time: 'Tijd',\n hour: 'Uur',\n minute: 'Minuut',\n },\n ru: {\n selected: 'Выбрано:',\n day: 'День',\n days: 'Дней',\n apply: 'Закрыть',\n 'week-1': 'пн',\n 'week-2': 'вт',\n 'week-3': 'ср',\n 'week-4': 'чт',\n 'week-5': 'пт',\n 'week-6': 'сб',\n 'week-7': 'вс',\n 'month-name': [\n 'январь',\n 'февраль',\n 'март',\n 'апрель',\n 'май',\n 'июнь',\n 'июль',\n 'август',\n 'сентябрь',\n 'октябрь',\n 'ноябрь',\n 'декабрь',\n ],\n shortcuts: 'Быстрый выбор',\n past: 'Прошедшие',\n following: 'Следующие',\n previous: '   ',\n 'prev-week': 'Неделя',\n 'prev-month': 'Месяц',\n 'prev-year': 'Год',\n next: '   ',\n 'next-week': 'Неделя',\n 'next-month': 'Месяц',\n 'next-year': 'Год',\n 'less-than': 'Диапазон не может быть больше %d дней',\n 'more-than': 'Диапазон не может быть меньше %d дней',\n 'default-more': 'Пожалуйста выберите диапазон больше %d дней',\n 'default-single': 'Пожалуйста выберите дату',\n 'default-less': 'Пожалуйста выберите диапазон меньше %d дней',\n 'default-range': 'Пожалуйста выберите диапазон между %d и %d днями',\n 'default-default': 'Пожалуйста выберите диапазон',\n entrada: 'Дата заезда',\n salida: 'Дата выезда',\n 'current-year': 'выбранный год',\n 'previous-month': 'прошлый месяц',\n 'next-month': 'в следующем месяце',\n 'selected-day': 'выбранный день',\n },\n pl: {\n selected: 'Wybrany:',\n day: 'Dzień',\n days: 'Dni',\n apply: 'Zamknij',\n 'week-1': 'pon',\n 'week-2': 'wt',\n 'week-3': 'śr',\n 'week-4': 'czw',\n 'week-5': 'pt',\n 'week-6': 'so',\n 'week-7': 'nd',\n 'month-name': [\n 'styczeń',\n 'luty',\n 'marzec',\n 'kwiecień',\n 'maj',\n 'czerwiec',\n 'lipiec',\n 'sierpień',\n 'wrzesień',\n 'październik',\n 'listopad',\n 'grudzień',\n ],\n shortcuts: 'Skróty',\n 'custom-values': 'Niestandardowe wartości',\n past: 'Przeszłe',\n following: 'Następne',\n previous: 'Poprzednie',\n 'prev-week': 'tydzień',\n 'prev-month': 'miesiąc',\n 'prev-year': 'rok',\n next: 'Następny',\n 'next-week': 'tydzień',\n 'next-month': 'miesiąc',\n 'next-year': 'rok',\n 'less-than': 'Okres nie powinien być dłuższy niż %d dni',\n 'more-than': 'Okres nie powinien być krótszy niż %d ni',\n 'default-more': 'Wybierz okres dłuższy niż %d dni',\n 'default-single': 'Wybierz datę',\n 'default-less': 'Wybierz okres krótszy niż %d dni',\n 'default-range': 'Wybierz okres trwający od %d do %d dni',\n 'default-default': 'Wybierz okres',\n time: 'Czas',\n hour: 'Godzina',\n minute: 'Minuta',\n },\n se: {\n selected: 'Vald:',\n day: 'dag',\n days: 'dagar',\n apply: 'godkänn',\n 'week-1': 'ma',\n 'week-2': 'ti',\n 'week-3': 'on',\n 'week-4': 'to',\n 'week-5': 'fr',\n 'week-6': 'lö',\n 'week-7': 'sö',\n 'month-name': [\n 'januari',\n 'februari',\n 'mars',\n 'april',\n 'maj',\n 'juni',\n 'juli',\n 'augusti',\n 'september',\n 'oktober',\n 'november',\n 'december',\n ],\n shortcuts: 'genvägar',\n 'custom-values': 'Anpassade värden',\n past: 'över',\n following: 'följande',\n previous: 'förra',\n 'prev-week': 'vecka',\n 'prev-month': 'månad',\n 'prev-year': 'år',\n next: 'nästa',\n 'next-week': 'vecka',\n 'next-month': 'måned',\n 'next-year': 'år',\n 'less-than': 'Datumintervall bör inte vara mindre än %d dagar',\n 'more-than': 'Datumintervall bör inte vara mer än %d dagar',\n 'default-more': 'Välj ett datumintervall längre än %d dagar',\n 'default-single': 'Välj ett datum',\n 'default-less': 'Välj ett datumintervall mindre än %d dagar',\n 'default-range': 'Välj ett datumintervall mellan %d och %d dagar',\n 'default-default': 'Välj ett datumintervall',\n time: 'tid',\n hour: 'timme',\n minute: 'minut',\n },\n //Portuguese (European)\n pt: {\n selected: 'Selecionado:',\n day: 'Dia',\n days: 'Dias',\n apply: 'Fechar',\n 'week-1': 'seg',\n 'week-2': 'ter',\n 'week-3': 'qua',\n 'week-4': 'qui',\n 'week-5': 'sex',\n 'week-6': 'sab',\n 'week-7': 'dom',\n 'week-number': 'N',\n 'month-name': [\n 'janeiro',\n 'fevereiro',\n 'março',\n 'abril',\n 'maio',\n 'junho',\n 'julho',\n 'agosto',\n 'setembro',\n 'outubro',\n 'novembro',\n 'dezembro',\n ],\n shortcuts: 'Atalhos',\n 'custom-values': 'Valores Personalizados',\n past: 'Passado',\n following: 'Seguinte',\n previous: 'Anterior',\n 'prev-week': 'Semana',\n 'prev-month': 'Mês',\n 'prev-year': 'Ano',\n next: 'Próximo',\n 'next-week': 'Próxima Semana',\n 'next-month': 'Próximo Mês',\n 'next-year': 'Próximo Ano',\n 'less-than': 'O período selecionado não deve ser maior que %d dias',\n 'more-than': 'O período selecionado não deve ser menor que %d dias',\n 'default-more': 'Selecione um período superior a %d dias',\n 'default-single': 'Selecione uma data',\n 'default-less': 'Selecione um período inferior a %d dias',\n 'default-range': 'Selecione um período de %d a %d dias',\n 'default-default': 'Selecione um período',\n time: 'Tempo',\n hour: 'Hora',\n minute: 'Minuto',\n entrada: 'Data do check-in',\n salida: 'Data do check-out',\n 'current-year': 'ano selecionado',\n 'previous-month': 'mês anterior',\n 'next-month': 'próximo mês',\n 'selected-day': 'dia selecionado',\n },\n }\n\n $.fn.dateRangePicker = function (opt) {\n if (!opt) opt = {}\n opt = $.extend(\n true,\n {\n autoClose: false,\n format: 'YYYY-MM-DD',\n separator: ' to ',\n language: 'auto',\n startOfWeek: 'sunday', // or monday\n getValue() {\n return $(this).val()\n },\n setValue(s) {\n if (!$(this).attr('readonly') && !$(this).is(':disabled') && s != $(this).val()) {\n $(this).val(s)\n }\n },\n startDate: false,\n endDate: false,\n time: {\n enabled: false,\n },\n minDays: 0,\n maxDays: 0,\n showShortcuts: false,\n shortcuts: {\n //'prev-days': [1,3,5,7],\n // 'next-days': [3,5,7],\n //'prev' : ['week','month','year'],\n // 'next' : ['week','month','year']\n },\n customShortcuts: [],\n inline: false,\n container: 'body',\n alwaysOpen: false,\n singleDate: false,\n lookBehind: false,\n batchMode: false,\n duration: 200,\n stickyMonths: false,\n dayDivAttrs: [],\n dayTdAttrs: [],\n selectForward: false,\n selectBackward: false,\n applyBtnClass: '',\n singleMonth: 'auto',\n isHorizon: document.querySelector('.js-b-login-registration-lightbox'),\n hoveringTooltip(days, startTime, hoveringTime) {\n return days > 1 ? `${days} ${lang('days')}` : ''\n },\n showTopbar: true,\n swapTime: false,\n showWeekNumbers: false,\n getWeekNumber(date) {\n //date will be the first day of a week\n return dayjs(date).format('w')\n },\n customOpenAnimation: null,\n customCloseAnimation: null,\n offerLegend: false,\n offerLegendText: '',\n selectedDatesLegendText: '',\n positionRelativeToDocument: false,\n preventCloseFn(days) {\n // This option allows prevent datepicker auto close if returns true\n // Returns false by default to allow datepicker auto close\n return false\n },\n },\n opt\n )\n\n if (opt.language === 'auto') {\n setAsyncDayjsLocale()\n } else {\n setAsyncDayjsLocale(opt.language)\n }\n\n opt.start = false\n opt.end = false\n\n opt.startWeek = false\n\n //detect a touch device\n opt.isTouchDevice = 'ontouchstart' in window || navigator.msMaxTouchPoints\n\n //if it is a touch device, hide hovering tooltip\n if (opt.isTouchDevice) opt.hoveringTooltip = false\n\n //show one month on mobile devices\n if (opt.singleMonth == 'auto') opt.singleMonth = $(window).width() < 480\n if (opt.singleMonth) opt.stickyMonths = false\n\n if (!opt.showTopbar && opt.autoClose) opt.autoClose = true\n\n if (opt.startDate && typeof opt.startDate === 'string') opt.startDate = dayjs(opt.startDate, opt.format).toDate()\n if (opt.endDate && typeof opt.endDate === 'string') opt.endDate = dayjs(opt.endDate, opt.format).toDate()\n\n var langs = getLanguages()\n var box\n var initiated = false\n var self = this\n var selfDom = $(self).get(0)\n var domChangeTimer\n\n $(this)\n .unbind('.datepicker')\n .bind('click.datepicker', function (evt) {\n var isOpen = false\n if (!isOpen) open(opt.duration)\n })\n .bind('change.datepicker', function (evt) {\n checkAndSetDefaultValue()\n })\n .bind('keyup.datepicker', function () {\n try {\n clearTimeout(domChangeTimer)\n } catch (e) {}\n domChangeTimer = setTimeout(function () {\n checkAndSetDefaultValue()\n }, 2000)\n })\n\n init_datepicker.call(this)\n\n if (opt.alwaysOpen) {\n open(0)\n }\n\n // expose some api\n $(this).data('dateRangePicker', {\n setDateRange(d1, d2, silent) {\n if (typeof d1 === 'string' && typeof d2 === 'string') {\n d1 = dayjs(d1, opt.format).toDate()\n d2 = dayjs(d2, opt.format).toDate()\n }\n setDateRange(d1, d2, silent)\n },\n clear: clearSelection,\n close: closeDatePicker,\n open,\n redraw: redrawDatePicker,\n getDatePicker,\n updateFirstDate,\n setLastDate,\n updateLastDate,\n resetMonthsView,\n showMonth,\n nextMonth,\n calcPosition,\n opt,\n destroy() {\n $(self).unbind('.datepicker')\n $(self).data('dateRangePicker', '')\n $(self).data('date-picker-opened', null)\n box.remove()\n $(window).unbind('resize.datepicker', calcPosition)\n $(document).unbind('click.datepicker', closeDatePicker)\n },\n })\n\n if (IB.currentDevice !== 'tablet' && IB.currentDevice !== 'mobile')\n $(window).bind('resize.datepicker', calcPosition)\n\n return this\n\n function IsOwnDatePickerClicked(evt, selfObj) {\n return (\n selfObj.contains(evt.target) ||\n evt.target == selfObj ||\n (selfObj.childNodes != undefined && $.inArray(evt.target, selfObj.childNodes) >= 0)\n )\n }\n\n function init_datepicker() {\n var self = this\n\n if ($(this).data('date-picker-opened')) {\n closeDatePicker()\n return\n }\n $(this).data('date-picker-opened', true)\n\n box = createDom().hide()\n window.IB.rangedatepickerBox = box\n box.append('
    ')\n box.delegate('.day', 'mouseleave', function () {\n box.find('.date-range-length-tip').hide()\n if (opt.singleDate) {\n clearHovering()\n }\n })\n\n $(opt.container).append(box)\n\n if (!opt.inline) {\n calcPosition()\n } else if (opt.inline_mobile_panel) {\n opt.appendTimer = {}\n box\n .addClass('inline-wrapper mobile-panel mobile-fastbooking-cnt top opened-picker')\n .attr('data-mobile-panel', 'true')\n box.mobilepanel()\n } else {\n box.addClass('inline-wrapper')\n }\n\n if (opt.alwaysOpen) {\n box.find('.apply-btn').hide()\n }\n\n var defaultTime = getDefaultTime()\n resetMonthsView(defaultTime, opt)\n\n if (opt.time.enabled) {\n if ((opt.startDate && opt.endDate) || (opt.start && opt.end)) {\n showTime(dayjs(opt.start || opt.startDate).toDate(), 'time1')\n showTime(dayjs(opt.end || opt.endDate).toDate(), 'time2')\n } else {\n var defaultEndTime = opt.defaultEndTime ? opt.defaultEndTime : defaultTime\n showTime(defaultTime, 'time1')\n showTime(defaultEndTime, 'time2')\n }\n }\n\n //showSelectedInfo();\n\n var defaultTopText = ''\n if (opt.singleDate) defaultTopText = lang('default-single')\n else if (opt.minDays && opt.maxDays) defaultTopText = lang('default-range')\n else if (opt.minDays) defaultTopText = lang('default-more')\n else if (opt.maxDays) defaultTopText = lang('default-less')\n else defaultTopText = lang('default-default')\n\n box.find('.default-top').html(defaultTopText.replace(/\\%d/, opt.minDays).replace(/\\%d/, opt.maxDays))\n if (opt.singleMonth) {\n box.addClass('single-month')\n } else {\n box.addClass('two-months')\n }\n\n setTimeout(function () {\n updateCalendarWidth()\n initiated = true\n }, 0)\n\n box.click(function (evt) {\n evt.stopPropagation()\n })\n\n //if user click other place of the webpage, close date range picker window\n $(document).bind('click.datepicker', function (evt) {\n if (!IsOwnDatePickerClicked(evt, self[0])) {\n if (box.is(':visible')) closeDatePicker()\n }\n })\n\n box.find('.next').click(function () {\n if (!opt.stickyMonths) {\n gotoNextMonth(this)\n } else {\n gotoNextMonth_stickily(this)\n }\n })\n\n function gotoNextMonth(self) {\n var isMonth2 = $(self).parents('table').hasClass('month2')\n var month = isMonth2 ? opt.month2 : opt.month1\n month = nextMonth(month)\n if (\n (!opt.singleMonth && !opt.singleDate && !isMonth2 && compare_month(month, opt.month2) >= 0) ||\n isMonthOutOfBounds(month)\n )\n return\n showMonth(month, isMonth2 ? 'month2' : 'month1', opt)\n showGap()\n }\n\n function gotoNextMonth_stickily(self) {\n var nextMonth1 = nextMonth(opt.month1)\n var nextMonth2 = nextMonth(opt.month2)\n if (isMonthOutOfBounds(nextMonth2)) return\n if (!opt.singleDate && compare_month(nextMonth1, nextMonth2) >= 0) return\n showMonth(nextMonth1, 'month1', opt)\n showMonth(nextMonth2, 'month2', opt)\n showSelectedDays()\n }\n\n box.find('.prev').click(function () {\n if (!opt.stickyMonths) gotoPrevMonth(this)\n else gotoPrevMonth_stickily(this)\n })\n\n function gotoPrevMonth(self) {\n var isMonth2 = $(self).parents('table').hasClass('month2')\n var month = isMonth2 ? opt.month2 : opt.month1\n month = prevMonth(month)\n if ((isMonth2 && compare_month(month, opt.month1) <= 0) || isMonthOutOfBounds(month)) return\n showMonth(month, isMonth2 ? 'month2' : 'month1', opt)\n showGap()\n }\n\n function gotoPrevMonth_stickily(self) {\n var prevMonth1 = prevMonth(opt.month1)\n var prevMonth2 = prevMonth(opt.month2)\n if (isMonthOutOfBounds(prevMonth1)) return\n if (!opt.singleDate && compare_month(prevMonth2, prevMonth1) <= 0) return\n showMonth(prevMonth2, 'month2', opt)\n showMonth(prevMonth1, 'month1', opt)\n showSelectedDays()\n }\n\n box.delegate('.day', 'click', function (evt) {\n dayClicked($(this))\n })\n\n box.delegate('.day', 'mouseenter', function (evt) {\n dayHovering($(this))\n })\n\n box.delegate('.week-number', 'click', function (evt) {\n weekNumberClicked($(this))\n })\n\n box\n .attr('unselectable', 'on')\n .css('user-select', 'none')\n .bind('selectstart', function (e) {\n e.preventDefault()\n return false\n })\n\n box.find('.apply-btn, .return-btn').click(function () {\n closeDatePicker()\n var dateRange = getDateString(new Date(opt.start)) + opt.separator + getDateString(new Date(opt.end))\n $(self).trigger('datepicker-apply', {\n value: dateRange,\n date1: new Date(opt.start),\n date2: new Date(opt.end),\n })\n\n if ($(this).hasClass('apply-btn')) {\n $('.mobile-fastbooking-bg').remove()\n $('.mobile-panel').removeClass('opened')\n\n $('html').removeClass('mobile-panel-opened')\n ScrollLock.off()\n }\n })\n\n box.find('[custom]').click(function () {\n var valueName = $(this).attr('custom')\n opt.start = false\n opt.end = false\n box.find('.day.checked').removeClass('checked').removeAttr('aria-label')\n opt.setValue.call(selfDom, valueName)\n checkSelectionValid()\n showSelectedInfo(true)\n showSelectedDays()\n if (opt.autoClose) closeDatePicker()\n })\n\n box.find('[shortcut]').click(function () {\n var shortcut = $(this).attr('shortcut')\n var end = new Date(),\n start = false\n if (shortcut.indexOf('day') != -1) {\n var day = parseInt(shortcut.split(',', 2)[1], 10)\n start = new Date(new Date().getTime() + 86400000 * day)\n end = new Date(end.getTime() + 86400000 * (day > 0 ? 1 : -1))\n } else if (shortcut.indexOf('week') != -1) {\n var dir = shortcut.indexOf('prev,') != -1 ? -1 : 1\n\n if (dir == 1) var stopDay = opt.startOfWeek == 'monday' ? 1 : 0\n else var stopDay = opt.startOfWeek == 'monday' ? 0 : 6\n\n end = new Date(end.getTime() - 86400000)\n while (end.getDay() != stopDay) end = new Date(end.getTime() + dir * 86400000)\n start = new Date(end.getTime() + dir * 86400000 * 6)\n } else if (shortcut.indexOf('month') != -1) {\n var dir = shortcut.indexOf('prev,') != -1 ? -1 : 1\n if (dir == 1) start = nextMonth(end)\n else start = prevMonth(end)\n start.setDate(1)\n end = nextMonth(start)\n end.setDate(1)\n end = new Date(end.getTime() - 86400000)\n } else if (shortcut.indexOf('year') != -1) {\n var dir = shortcut.indexOf('prev,') != -1 ? -1 : 1\n start = new Date()\n start.setFullYear(end.getFullYear() + dir)\n start.setMonth(0)\n start.setDate(1)\n end.setFullYear(end.getFullYear() + dir)\n end.setMonth(11)\n end.setDate(31)\n } else if (shortcut == 'custom') {\n var name = $(this).html()\n if (opt.customShortcuts && opt.customShortcuts.length > 0) {\n for (var i = 0; i < opt.customShortcuts.length; i++) {\n var sh = opt.customShortcuts[i]\n if (sh.name == name) {\n var data = []\n // try\n // {\n data = sh['dates'].call()\n //}catch(e){}\n if (data && data.length == 2) {\n start = data[0]\n end = data[1]\n }\n\n // if only one date is specified then just move calendars there\n // move calendars to show this date's month and next months\n if (data && data.length == 1) {\n movetodate = data[0]\n showMonth(movetodate, 'month1', opt)\n showMonth(nextMonth(movetodate), 'month2', opt)\n showGap()\n }\n\n break\n }\n }\n }\n }\n if (start && end) {\n setDateRange(start, end)\n checkSelectionValid()\n }\n })\n\n box.find('.time1 input[type=range]').bind('change touchmove mousemove', function (e) {\n var target = e.target,\n hour =\n target.name == 'hour'\n ? $(target)\n .val()\n .replace(/^(\\d{1})$/, '0$1')\n : undefined,\n min =\n target.name == 'minute'\n ? $(target)\n .val()\n .replace(/^(\\d{1})$/, '0$1')\n : undefined\n setTime('time1', hour, min)\n })\n\n box.find('.time2 input[type=range]').bind('change touchmove mousemove', function (e) {\n var target = e.target,\n hour =\n target.name == 'hour'\n ? $(target)\n .val()\n .replace(/^(\\d{1})$/, '0$1')\n : undefined,\n min =\n target.name == 'minute'\n ? $(target)\n .val()\n .replace(/^(\\d{1})$/, '0$1')\n : undefined\n setTime('time2', hour, min)\n })\n\n box.delegate('.year-selector', 'change', function (evt) {\n var currentYear = dayjs().year()\n var currentMonth = dayjs().month() + 1\n var selectedYear = parseInt($(this).val())\n var selectedMonth = 1 // By default, show first month\n if (currentYear === selectedYear) {\n // If current year is selected, show current month\n selectedMonth = currentMonth\n }\n selectedMonth = `${selectedMonth}`.padStart(2, 0)\n\n var year = `${selectedYear}-${selectedMonth}-01`\n showMonth(year, 'month1', opt)\n showMonth(nextMonth(year), 'month2', opt)\n })\n var pStart = { x: 0, y: 0 }\n var pStop = { x: 0, y: 0 }\n var baseMonth = 1\n\n function swipeStart(e) {\n if (!box.is(':visible')) return\n\n if (typeof e['targetTouches'] !== 'undefined') {\n var touch = e.targetTouches[0]\n pStart.x = touch.screenX\n pStart.y = touch.screenY\n } else {\n pStart.x = e.screenX\n pStart.y = e.screenY\n }\n }\n\n function swipeEnd(e) {\n if (!box.is(':visible')) return\n\n if (typeof e['changedTouches'] !== 'undefined') {\n var touch = e.changedTouches[0]\n pStop.x = touch.screenX\n pStop.y = touch.screenY\n } else {\n pStop.x = e.screenX\n pStop.y = e.screenY\n }\n\n swipeCheck()\n }\n\n function swipeCheck() {\n var changeY = pStart.y - pStop.y\n var changeX = pStart.x - pStop.x\n if (isPullDown(changeY, changeX) && !isMonthOutOfBounds(prevMonth(opt[`month${baseMonth}`]))) {\n addMonthPrevMobile(baseMonth)\n baseMonth = baseMonth - 1\n }\n }\n\n function isPullDown(dY, dX) {\n // methods of checking slope, length, direction of line created by swipe action\n return (\n dY < 0 && ((Math.abs(dX) <= 100 && Math.abs(dY) >= 125) || (Math.abs(dX) / Math.abs(dY) <= 0.3 && dY >= 60))\n )\n }\n\n document.addEventListener(\n 'touchstart',\n function (e) {\n swipeStart(e)\n },\n false\n )\n document.addEventListener(\n 'touchend',\n function (e) {\n swipeEnd(e)\n },\n false\n )\n\n box.bind('scroll', function (e) {\n const endOffset = 100\n window.clearTimeout(opt.appendTimer)\n opt.appendTimer = window.setTimeout(() => {\n // Add new month only when scroll is near to reach end of container\n if (box[0].offsetHeight + box[0].scrollTop >= box[0].scrollHeight - endOffset) {\n addMonth()\n }\n }, 30)\n })\n }\n\n function calcPosition() {\n const isFastbooking = Boolean($(self).closest('.fastbooking').length)\n if (!opt.inline) {\n var offset = $(self).offset()\n const offsetLeft = opt.positionRelativeToDocument ? $(self).offset().left : $(self).get(0).offsetLeft\n const addDocumentScroll = opt.positionRelativeToDocument ? $(document).scrollTop() : 0\n if ($(opt.container).css('position') === 'relative') {\n var containerOffset = $(opt.container).offset()\n box.css({\n top: offset.top - containerOffset.top + $(self).outerHeight() + 4 - addDocumentScroll,\n left: isFastbooking ? $('.fastbooking').find('.container').offset() : offsetLeft,\n })\n } else if (\n document.documentElement.dataset.inMicrosite === 'star_agents' &&\n document.documentElement.dataset.deviceType === 'mobile'\n ) {\n // If box is undefined, obtain box instance from global variable\n !box && (box = window.IB.rangedatepickerBox)\n const sta_modal_height = $('.sta-modal-form').height()\n const top = offset.top + parseInt($('body').css('border-top') || 0, 10) - addDocumentScroll\n box.css({\n top: top + 330 > sta_modal_height ? sta_modal_height - 330 : top,\n left: offsetLeft,\n })\n } else {\n // If box is undefined, obtain box instance from global variable\n !box && (box = window.IB.rangedatepickerBox)\n box.css({\n top:\n offset.top + $(self).outerHeight() + parseInt($('body').css('border-top') || 0, 10) - addDocumentScroll,\n left: isFastbooking ? $('.fastbooking').find('.container').offset() : offsetLeft,\n })\n }\n }\n }\n\n // Return the date picker wrapper element\n function getDatePicker() {\n return box\n }\n\n function open(animationTime) {\n calcPosition()\n if (!opt.inline) {\n redrawDatePicker()\n }\n\n if (opt.inline_mobile_panel) {\n redrawDatePicker()\n }\n\n checkAndSetDefaultValue()\n if (opt.customOpenAnimation) {\n opt.customOpenAnimation.call(box.get(0), function () {\n $(self).trigger('datepicker-opened', { relatedTarget: box })\n })\n } else {\n box.slideDown(animationTime, function () {\n $(self).trigger('datepicker-opened', { relatedTarget: box })\n })\n }\n\n createMonthsForScrollToSelectedDateIfExists()\n $(self).trigger('datepicker-open', { relatedTarget: box })\n showGap()\n updateCalendarWidth()\n }\n\n function createMonthsForScrollToSelectedDateIfExists() {\n if (IB.currentDevice === 'mobile') {\n if ($('.dates-container').find('.check-in').val().length) {\n const date_format = $('html').attr('data-date-format')\n const start_date = new dayjs().format(date_format)\n const selected_date = $('.dates-container').find('.check-in').val()\n const number_of_months = dayjs(selected_date, date_format).diff(dayjs(start_date, date_format), 'months')\n for (var i = 0; i <= number_of_months; i++) {\n addMonth()\n }\n }\n }\n }\n\n function checkAndSetDefaultValue() {\n var __default_string = opt.getValue.call(selfDom)\n var defaults = __default_string ? __default_string.split(opt.separator) : ''\n\n if (defaults && ((defaults.length == 1 && opt.singleDate) || defaults.length >= 2)) {\n var ___format = opt.format\n if (___format.match(/Do/)) {\n ___format = ___format.replace(/Do/, 'D')\n defaults[0] = defaults[0].replace(/(\\d+)(th|nd|st)/, '$1')\n if (defaults.length >= 2) {\n defaults[1] = defaults[1].replace(/(\\d+)(th|nd|st)/, '$1')\n }\n }\n // set initiated to avoid triggerring datepicker-change event\n initiated = false\n if (defaults.length >= 2) {\n setDateRange(\n getValidValue(defaults[0], ___format, dayjs.locale(opt.language)),\n getValidValue(defaults[1], ___format, dayjs.locale(opt.language))\n )\n } else if (defaults.length == 1 && opt.singleDate) {\n setSingleDate(getValidValue(defaults[0], ___format, dayjs.locale(opt.language)))\n }\n\n initiated = true\n }\n }\n\n function getValidValue(date, format, locale) {\n if (dayjs(date, format, locale).isValid()) {\n return dayjs(date, format, locale).toDate()\n }\n return dayjs().toDate()\n }\n\n function updateCalendarWidth() {\n var month1Margin = box.find('.month1').css('margin-left')\n month1Margin = month1Margin ? parseInt(month1Margin) : 0\n\n var gapMargin = box.find('.gap').css('margin-left')\n gapMargin = gapMargin ? parseInt(gapMargin) : 0\n\n var month2Margin = box.find('.month2').css('margin-left')\n month2Margin = month2Margin ? parseInt(month2Margin) : 0\n\n var w1 = box.find('.month1').width() + month2Margin * 2\n var w2 = box.find('.gap').width() + gapMargin * 2\n var w3 = box.find('.month2').width() + month1Margin * 2\n\n if (IB.currentDevice === 'mobile') box.find('.month-wrapper').width(w1 + w2 + w3)\n }\n\n function renderTime(name, date) {\n box.find(`.${name} input[type=range].hour-range`).val(dayjs(date).hours())\n box.find(`.${name} input[type=range].minute-range`).val(dayjs(date).minutes())\n setTime(name, dayjs(date).format('HH'), dayjs(date).format('mm'))\n }\n\n function changeTime(name, date) {\n opt[name] = parseInt(\n dayjs(parseInt(date))\n .startOf('day')\n .add(dayjs(opt[`${name}Time`]).format('HH'), 'h')\n .add(dayjs(opt[`${name}Time`]).format('mm'), 'm')\n .valueOf()\n )\n }\n\n function swapTime() {\n renderTime('time1', opt.start)\n renderTime('time2', opt.end)\n }\n\n function setTime(name, hour, minute) {\n hour && box.find(`.${name} .hour-val`).text(hour)\n minute && box.find(`.${name} .minute-val`).text(minute)\n switch (name) {\n case 'time1':\n if (opt.start) {\n setRange('start', dayjs(opt.start))\n }\n setRange('startTime', dayjs(opt.startTime || dayjs().valueOf()))\n break\n case 'time2':\n if (opt.end) {\n setRange('end', dayjs(opt.end))\n }\n setRange('endTime', dayjs(opt.endTime || dayjs().valueOf()))\n break\n }\n function setRange(name, timePoint) {\n var h = timePoint.format('HH'),\n m = timePoint.format('mm')\n opt[name] = timePoint\n .startOf('day')\n .add(hour || h, 'h')\n .add(minute || m, 'm')\n .valueOf()\n }\n checkSelectionValid()\n showSelectedInfo()\n showSelectedDays()\n }\n\n function clearSelection() {\n opt.start = false\n opt.end = false\n box.find('.day.checked').removeClass('checked').removeAttr('aria-label')\n box.find('.day.last-date-selected').removeClass('last-date-selected')\n box.find('.day.first-date-selected').removeClass('first-date-selected')\n opt.setValue.call(selfDom, '')\n // updateSelectableRange();\n checkSelectionValid()\n showSelectedInfo()\n showSelectedDays()\n }\n\n function handleStart(time) {\n var r = time\n if (opt.batchMode === 'week-range') {\n if (opt.startOfWeek === 'monday') {\n r = dayjs(parseInt(time)).startOf('isoweek').valueOf()\n } else {\n r = dayjs(parseInt(time)).startOf('week').valueOf()\n }\n } else if (opt.batchMode === 'month-range') {\n r = dayjs(parseInt(time)).startOf('month').valueOf()\n }\n return r\n }\n\n function handleEnd(time) {\n var r = time\n if (opt.batchMode === 'week-range') {\n if (opt.startOfWeek === 'monday') {\n r = dayjs(parseInt(time)).endOf('isoweek').valueOf()\n } else {\n r = dayjs(parseInt(time)).endOf('week').valueOf()\n }\n } else if (opt.batchMode === 'month-range') {\n r = dayjs(parseInt(time)).endOf('month').valueOf()\n }\n return r\n }\n\n function dayClicked(day) {\n if (day.hasClass('invalid')) return\n var time = day.attr('time')\n day.addClass('checked').attr('aria-label', lang('selected-day'))\n if (opt.singleDate) {\n opt.start = time\n opt.end = false\n } else if (opt.batchMode === 'week') {\n if (opt.startOfWeek === 'monday') {\n opt.start = dayjs(parseInt(time)).startOf('isoweek').valueOf()\n opt.end = dayjs(parseInt(time)).endOf('isoweek').valueOf()\n } else {\n opt.end = dayjs(parseInt(time)).endOf('week').valueOf()\n opt.start = dayjs(parseInt(time)).startOf('week').valueOf()\n }\n } else if (opt.batchMode === 'workweek') {\n opt.start = dayjs(parseInt(time)).day(1).valueOf()\n opt.end = dayjs(parseInt(time)).day(5).valueOf()\n } else if (opt.batchMode === 'weekend') {\n opt.start = dayjs(parseInt(time)).day(6).valueOf()\n opt.end = dayjs(parseInt(time)).day(7).valueOf()\n } else if (opt.batchMode === 'month') {\n opt.start = dayjs(parseInt(time)).startOf('month').valueOf()\n opt.end = dayjs(parseInt(time)).endOf('month').valueOf()\n } else if ((opt.start && opt.end) || (!opt.start && !opt.end)) {\n opt.start = handleStart(time)\n opt.end = false\n } else if (opt.start) {\n opt.end = handleEnd(time)\n if (opt.time.enabled) {\n changeTime('end', opt.end)\n }\n }\n\n //Update time in case it is enabled and timestamps are available\n if (opt.time.enabled) {\n if (opt.start) {\n changeTime('start', opt.start)\n }\n if (opt.end) {\n changeTime('end', opt.end)\n }\n }\n\n //In case the start is after the end, swap the timestamps\n if (!opt.singleDate && opt.start && opt.end && opt.start > opt.end) {\n var tmp = opt.end\n opt.end = handleEnd(opt.start)\n opt.start = handleStart(tmp)\n if (opt.time.enabled && opt.swapTime) {\n swapTime()\n }\n }\n\n opt.start = parseInt(opt.start)\n opt.end = parseInt(opt.end)\n\n clearHovering()\n if (opt.start && !opt.end) {\n $(self).trigger('datepicker-first-date-selected', {\n date1: new Date(opt.start),\n time: opt.start,\n })\n dayHovering(day)\n }\n updateSelectableRange(time)\n checkSelectionValid()\n showSelectedInfo()\n showSelectedDays()\n if (opt.autoClose) autoclose()\n }\n\n function weekNumberClicked(weekNumberDom) {\n var thisTime = parseInt(weekNumberDom.attr('data-start-time'), 10)\n if (!opt.startWeek) {\n opt.startWeek = thisTime\n weekNumberDom.addClass('week-number-selected')\n var date1 = new Date(thisTime)\n opt.start = dayjs(date1)\n .day(opt.startOfWeek == 'monday' ? 1 : 0)\n .valueOf()\n opt.end = dayjs(date1)\n .day(opt.startOfWeek == 'monday' ? 7 : 6)\n .valueOf()\n } else {\n box.find('.week-number-selected').removeClass('week-number-selected')\n var date1 = new Date(thisTime < opt.startWeek ? thisTime : opt.startWeek)\n var date2 = new Date(thisTime < opt.startWeek ? opt.startWeek : thisTime)\n opt.startWeek = false\n opt.start = dayjs(date1)\n .day(opt.startOfWeek == 'monday' ? 1 : 0)\n .valueOf()\n opt.end = dayjs(date2)\n .day(opt.startOfWeek == 'monday' ? 7 : 6)\n .valueOf()\n }\n updateSelectableRange()\n checkSelectionValid()\n showSelectedInfo()\n showSelectedDays()\n if (opt.autoClose) autoclose()\n }\n\n function isValidTime(time) {\n time = parseInt(time, 10)\n if (opt.startDate && compare_day(time, opt.startDate) < 0) return false\n if (opt.endDate && compare_day(time, opt.endDate) > 0) return false\n\n if (opt.start && !opt.end && !opt.singleDate) {\n //check maxDays and minDays setting\n const daysFromStart = countDays(time, opt.start)\n if (opt.maxDays > 0 && daysFromStart > opt.maxDays) return false\n if (opt.minDays > 0 && daysFromStart < opt.minDays) return false\n\n //check selectForward and selectBackward\n if (opt.selectForward && time < opt.start) return false\n if (opt.selectBackward && time > opt.start) return false\n\n //check disabled days\n if (opt.beforeShowDay) {\n const dayOpts = opt.beforeShowDay(new Date(time))\n const shouldValidate = !dayOpts[3]\n if (typeof opt.beforeShowDay === 'function' && shouldValidate) {\n var valid = true\n var timeTmp = time\n let daysToCheck = daysFromStart\n while (daysToCheck > 1) {\n var arr = opt.beforeShowDay(new Date(timeTmp))\n if (!arr[0]) {\n valid = false\n break\n }\n if (Math.abs(timeTmp - opt.start) < 86400000) break\n if (timeTmp > opt.start) {\n timeTmp -= 86400000\n } else if (timeTmp < opt.start) {\n timeTmp += 86400000\n }\n daysToCheck -= 1\n }\n if (!valid) return false\n }\n }\n }\n return true\n }\n\n function updateSelectableRange() {\n box.find('.day.invalid.available').removeClass('tmp invalid').addClass('valid')\n if (opt.start && !opt.end) {\n box.find('.day.toMonth.valid').each(function () {\n var time = parseInt($(this).attr('time'), 10)\n\n if (!isValidTime(time)) $(this).addClass('invalid tmp').removeClass('valid')\n else $(this).addClass('valid tmp').removeClass('invalid')\n })\n }\n\n return true\n }\n\n function updateFirstDate() {\n var real_today\n opt.start = false\n opt.end = false\n if (box.find('.day.real-today').length) {\n real_today = parseInt(box.find('.day.real-today').attr('time'))\n } else {\n real_today = box.find('.day').first().attr('time')\n }\n box.find('.day').each(function () {\n var time = parseInt($(this).attr('time'))\n if (time >= real_today) {\n $(this).removeClass('invalid').addClass('valid')\n }\n })\n }\n\n function setLastDate(last_date) {\n var real_today\n if (box.find('.day.real-today').length) {\n real_today = parseInt(box.find('.day.real-today').attr('time'))\n } else {\n real_today = box.find('.day').first().attr('time')\n }\n opt.end = parseInt(last_date)\n box.find('.day').each(function () {\n var time = parseInt($(this).attr('time'))\n if (time >= real_today) {\n $(this).removeClass('invalid').addClass('valid')\n }\n })\n updateSelectableRange(opt.end)\n checkSelectionValid()\n showSelectedInfo()\n showSelectedDays()\n }\n\n function updateLastDate(first_date) {\n if (!opt.start && !opt.end) {\n checkAndSetDefaultValue()\n }\n\n if (opt.end) {\n var last_day = opt.end\n first_date = undefined\n var $day = $(`.day[data-id=${first_date}]`)\n opt.end = false\n dayClicked($day)\n setTimeout(function () {\n box.find('.day').each(function () {\n var time = parseInt($(this).attr('time'))\n if (time < last_day) {\n $(this).addClass('hovering-permanent')\n } else if (time === last_day) {\n $(this).addClass('last-date-selected')\n }\n })\n }, 0)\n } else if (!opt.end) {\n var $day = $(`.day[data-id=${first_date}]`)\n dayClicked($day)\n }\n }\n\n function dayHovering(day) {\n var hoverTime = parseInt(day.attr('time'))\n var tooltip = ''\n var tooptipTwoRows = false\n\n if (day.hasClass('has-tooltip') && day.attr('data-tooltip')) {\n tooltip = `${day.attr('data-tooltip')}`\n } else if (!day.hasClass('invalid')) {\n if (opt.singleDate) {\n box.find('.day.hovering').removeClass('hovering')\n day.addClass('hovering')\n } else {\n box.find('.day').each(function () {\n var time = parseInt($(this).attr('time')),\n start = opt.start,\n end = opt.end\n\n if (time == hoverTime) {\n $(this).addClass('hovering')\n } else {\n $(this).removeClass('hovering')\n }\n\n if (\n opt.start &&\n !opt.end &&\n ((opt.start < time && hoverTime >= time) || (opt.start > time && hoverTime <= time))\n ) {\n $(this).addClass('hovering')\n } else {\n $(this).removeClass('hovering')\n }\n })\n\n if (opt.start && !opt.end) {\n $(document).trigger('day-hovering', day)\n var days = countDays(hoverTime, opt.start)\n if (opt.hoveringTooltip) {\n let nights = ''\n if (typeof opt.hoveringTooltip === 'function') {\n nights = opt.hoveringTooltip(days, opt.start, hoverTime)\n } else if (opt.hoveringTooltip === true && days > 1) {\n nights = `${days} ${lang('days')}`\n }\n tooptipTwoRows = true\n tooltip = `${lang(\n 'salida'\n )}${nights}`\n }\n }\n\n if (!opt.start) {\n tooltip = `${lang('entrada')}`\n }\n }\n }\n\n if (tooltip) {\n var posDay = day.offset()\n var posBox = box.offset()\n var _left = tooptipTwoRows ? posDay.left - posBox.left + 18 : posDay.left - posBox.left - 18\n var _top = tooptipTwoRows ? posDay.top - posBox.top - 105 : posDay.top - posBox.top - 88\n _left += day.width() / 2\n\n var $tip = box.find('.date-range-length-tip')\n var w = $tip.css({ visibility: 'hidden', display: 'none' }).html(tooltip).width()\n var h = $tip.height()\n _left -= w / 2\n\n if (opt.tooltipPosition === 'top') {\n _top -= h\n } else {\n _top += day.height()\n }\n\n setTimeout(function () {\n $tip.css({ left: _left, top: _top, display: 'flex', visibility: 'visible' })\n }, 10)\n } else {\n box.find('.date-range-length-tip').hide()\n }\n }\n\n function clearHovering() {\n box.find('.day.hovering').removeClass('hovering')\n box.find('.date-range-length-tip').hide()\n }\n\n function autoclose() {\n if (opt.singleDate === true) {\n if (initiated && opt.start) {\n if (opt.autoClose) closeDatePicker()\n }\n } else if (initiated && opt.start && opt.end) {\n if (!opt.preventCloseFn(opt.start, opt.end) && opt.autoClose) closeDatePicker()\n }\n }\n\n function checkSelectionValid() {\n var days = Math.ceil((opt.end - opt.start) / 86400000) + 1\n if (opt.singleDate) {\n // Validate if only start is there\n if (opt.start && !opt.end) {\n box.find('.drp_top-bar').removeClass('error').addClass('normal')\n } else {\n box.find('.drp_top-bar').removeClass('error').removeClass('normal')\n }\n } else if (opt.maxDays && days > opt.maxDays) {\n opt.start = false\n opt.end = false\n box.find('.day').removeClass('checked').removeAttr('aria-label')\n box\n .find('.drp_top-bar')\n .removeClass('normal')\n .addClass('error')\n .find('.error-top')\n .html(lang('less-than').replace('%d', opt.maxDays))\n } else if (opt.minDays && days < opt.minDays) {\n opt.start = false\n opt.end = false\n box.find('.day').removeClass('checked').removeAttr('aria-label')\n box\n .find('.drp_top-bar')\n .removeClass('normal')\n .addClass('error')\n .find('.error-top')\n .html(lang('more-than').replace('%d', opt.minDays))\n } else if (opt.start || opt.end) {\n box.find('.drp_top-bar').removeClass('error').addClass('normal')\n } else {\n box.find('.drp_top-bar').removeClass('error').removeClass('normal')\n }\n\n if ((opt.singleDate && opt.start && !opt.end) || (!opt.singleDate && opt.start && opt.end)) {\n box.find('.apply-btn').removeClass('disabled')\n } else {\n box.find('.apply-btn').addClass('disabled')\n }\n\n if (opt.batchMode) {\n if (\n (opt.start && opt.startDate && compare_day(opt.start, opt.startDate) < 0) ||\n (opt.end && opt.endDate && compare_day(opt.end, opt.endDate) > 0)\n ) {\n opt.start = false\n opt.end = false\n box.find('.day').removeClass('checked').removeAttr('aria-label')\n }\n }\n }\n\n function showSelectedInfo(forceValid, silent) {\n box.find('.start-day').html(' ')\n box.find('.end-day').html(' ')\n if (opt.start) {\n box.find('.start-day').html(getDateString(new Date(parseInt(opt.start))))\n }\n if (opt.end) {\n box.find('.end-day').html(getDateString(new Date(parseInt(opt.end))))\n }\n\n if (opt.start && opt.singleDate) {\n box.find('.apply-btn').removeClass('disabled')\n var dateRange = getDateString(new Date(opt.start))\n opt.setValue.call(selfDom, dateRange, getDateString(new Date(opt.start)), getDateString(new Date(opt.end)))\n\n if (initiated && !silent) {\n $(self).trigger('datepicker-change', {\n value: dateRange,\n date1: new Date(opt.start),\n })\n }\n } else if (opt.start && opt.end) {\n box.find('.selected-days').show().find('.selected-days-num').html(countDays(opt.end, opt.start))\n box.find('.apply-btn').removeClass('disabled')\n var dateRange = getDateString(new Date(opt.start)) + opt.separator + getDateString(new Date(opt.end))\n opt.setValue.call(selfDom, dateRange, getDateString(new Date(opt.start)), getDateString(new Date(opt.end)))\n if (initiated && !silent) {\n $(self).trigger('datepicker-change', {\n value: dateRange,\n date1: new Date(opt.start),\n date2: new Date(opt.end),\n opt,\n box,\n })\n }\n } else if (forceValid) {\n box.find('.apply-btn').removeClass('disabled')\n } else {\n box.find('.apply-btn').addClass('disabled')\n }\n }\n\n function countDays(start, end) {\n return Math.abs(daysFrom1970(start) - daysFrom1970(end)) + 1\n }\n\n function setDateRange(date1, date2, silent) {\n if (date1.getTime() > date2.getTime()) {\n var tmp = date2\n date2 = date1\n date1 = tmp\n tmp = null\n }\n var valid = true\n if (opt.startDate && compare_day(date1, opt.startDate) < 0) valid = false\n if (opt.endDate && compare_day(date2, opt.endDate) > 0) valid = false\n if (!valid) {\n showMonth(opt.startDate, 'month1', opt)\n showMonth(nextMonth(opt.startDate), 'month2', opt)\n showGap()\n return\n }\n\n opt.start = date1.getTime()\n opt.end = date2.getTime()\n\n if (opt.time.enabled) {\n renderTime('time1', date1)\n renderTime('time2', date2)\n }\n\n if (opt.stickyMonths || (compare_day(date1, date2) > 0 && compare_month(date1, date2) === 0)) {\n if (opt.lookBehind) {\n date1 = prevMonth(date2)\n } else {\n date2 = nextMonth(date1)\n }\n }\n\n if (opt.stickyMonths && compare_month(date2, opt.endDate) > 0) {\n date1 = prevMonth(date1)\n date2 = prevMonth(date2)\n }\n\n if (!opt.stickyMonths) {\n if (compare_month(date1, date2) === 0) {\n if (opt.lookBehind) {\n date1 = prevMonth(date2)\n } else {\n date2 = nextMonth(date1)\n }\n }\n }\n\n if (!opt.inline) {\n showMonth(date1, 'month1', opt)\n showMonth(date2, 'month2', opt)\n showGap()\n }\n\n checkSelectionValid()\n showSelectedInfo(false, silent)\n if (opt.autoClose) autoclose()\n }\n\n function setSingleDate(date1) {\n var valid = true\n if (opt.startDate && compare_day(date1, opt.startDate) < 0) valid = false\n if (opt.endDate && compare_day(date1, opt.endDate) > 0) valid = false\n if (!valid) {\n showMonth(opt.startDate, 'month1', opt)\n return\n }\n\n opt.start = date1.getTime()\n\n if (opt.time.enabled) {\n renderTime('time1', date1)\n }\n showMonth(date1, 'month1', opt)\n if (opt.singleMonth !== true) {\n date2 = nextMonth(date1)\n showMonth(date2, 'month2', opt)\n }\n showGap()\n showSelectedInfo()\n if (opt.autoClose) autoclose()\n }\n\n function showSelectedDays() {\n if (!opt.start && !opt.end) return\n box.find('.day').each(function () {\n var time = parseInt($(this).attr('time')),\n start = opt.start,\n end = opt.end\n if (opt.time.enabled) {\n time = dayjs(time).startOf('day').valueOf()\n start = dayjs(start || dayjs().valueOf())\n .startOf('day')\n .valueOf()\n end = dayjs(end || dayjs().valueOf())\n .startOf('day')\n .valueOf()\n }\n if (\n (opt.start && opt.end && end >= time && start <= time) ||\n (opt.start && !opt.end && dayjs(start).format('YYYY-MM-DD') == dayjs(time).format('YYYY-MM-DD'))\n ) {\n $(this).addClass('checked').attr('aria-label', lang('selected-day'))\n } else {\n $(this).removeClass('checked').removeAttr('aria-label')\n }\n\n //add first-date-selected class name to the first date selected\n if (opt.start && dayjs(start).format('YYYY-MM-DD') == dayjs(time).format('YYYY-MM-DD')) {\n $(this).addClass('first-date-selected').removeClass('invalid')\n } else {\n $(this).removeClass('first-date-selected')\n }\n //add last-date-selected\n if (opt.end && dayjs(end).format('YYYY-MM-DD') == dayjs(time).format('YYYY-MM-DD')) {\n $(this).addClass('last-date-selected')\n } else {\n $(this).removeClass('last-date-selected')\n }\n })\n\n box.find('.week-number').each(function () {\n if ($(this).attr('data-start-time') == opt.startWeek) {\n $(this).addClass('week-number-selected')\n }\n })\n }\n\n function showMonth(date, month, opt) {\n var date = dayjs(date).toDate()\n box.find(`.${month} .month-name`).replaceWith(getMonthHead(date, opt))\n box.find(`.${month} tbody`).html(createMonthHTML(date))\n opt[month] = date\n updateSelectableRange()\n }\n\n function addMonth() {\n var month_qty = box.find('.month').length,\n month = `month${month_qty + 1}`,\n $month_el = $(getInlineMonthWrapper(month)),\n date = dayjs(opt[`month${month_qty}`]).add(1, 'months').toDate()\n $month_el.find('.month-name').replaceWith(getMonthHead(date, { inline: true }))\n $month_el.find('tbody').html(createMonthHTML(date))\n box.find('.month-wrapper').append($month_el)\n opt[month] = date\n updateSelectableRange()\n }\n\n function addMonthPrevMobile(prevMonth) {\n var month = `month${prevMonth - 1}`,\n $month_el = $(getInlineMonthWrapper(month)),\n date = dayjs(opt[`month${prevMonth}`]).add(-1, 'months').toDate()\n\n $month_el.find('.month-name').replaceWith(getMonthHead(date, { inline: true }))\n $month_el.find('tbody').html(createMonthHTML(date))\n $month_el.insertBefore(box.find('.month-wrapper').find('.month').first())\n opt[month] = date\n updateSelectableRange()\n }\n\n function showTime(date, name) {\n box.find(`.${name}`).append(getTimeHTML())\n renderTime(name, date)\n }\n\n function nameMonth(m) {\n return lang('month-name')[m]\n }\n\n function getDateString(d) {\n return dayjs(d).format(opt.format)\n }\n\n function showGap() {\n showSelectedDays()\n var m1 = parseInt(dayjs(opt.month1).format('YYYYMM'))\n var m2 = parseInt(dayjs(opt.month2).format('YYYYMM'))\n var p = Math.abs(m1 - m2)\n var shouldShow = p > 1 && p != 89\n if (shouldShow) {\n box.addClass('has-gap').removeClass('no-gap').find('.gap').css('visibility', 'visible')\n } else {\n box.removeClass('has-gap').addClass('no-gap').find('.gap').css('visibility', 'hidden')\n }\n var h1 = box.find('.month1').height()\n var h2 = box.find('.month2').height()\n box.find('.gap').height(Math.max(h1, h2))\n }\n\n function closeDatePicker() {\n if (opt.alwaysOpen) return\n var afterAnim = function () {\n $(self).data('date-picker-opened', false)\n $(self).trigger('datepicker-closed', { relatedTarget: box })\n }\n if (opt.customCloseAnimation) {\n opt.customCloseAnimation.call(box.get(0), afterAnim)\n } else {\n $(box).slideUp(opt.duration, afterAnim)\n }\n $(self).trigger('datepicker-close', { relatedTarget: box })\n }\n\n function redrawDatePicker() {\n if (box === undefined) {\n init_datepicker()\n }\n if (!opt.inline) {\n showMonth(opt.month1, 'month1', opt)\n showMonth(opt.month2, 'month2', opt)\n } else {\n var months_qty = box.find('.month').length\n for (var index = 1; index <= months_qty; index++) {\n var key = `month${index}`\n showMonth(opt[key], key, opt)\n }\n }\n // opt.inline\n }\n\n function compare_month(m1, m2) {\n var p = parseInt(dayjs(m1).format('YYYYMM')) - parseInt(dayjs(m2).format('YYYYMM'))\n if (p > 0) return 1\n if (p === 0) return 0\n return -1\n }\n\n function compare_day(m1, m2) {\n var p = parseInt(dayjs(m1).format('YYYYMMDD')) - parseInt(dayjs(m2).format('YYYYMMDD'))\n if (p > 0) return 1\n if (p === 0) return 0\n return -1\n }\n\n function nextMonth(month) {\n return dayjs(month).add(1, 'months').toDate()\n }\n\n function prevMonth(month) {\n return dayjs(month).add(-1, 'months').toDate()\n }\n\n function getTimeHTML() {\n return (\n `
    ` +\n `${lang('Time')}: 00:00` +\n `
    ` +\n `
    ` +\n `` +\n `
    ` +\n `
    ` +\n `` +\n `
    `\n )\n }\n\n function createDom() {\n var html = '
    \"\n\n if (opt.showTopbar) {\n html += '
    '\n\n if (opt.customTopBar) {\n if (typeof opt.customTopBar === 'function') opt.customTopBar = opt.customTopBar()\n html += `
    ${opt.customTopBar}
    `\n } else {\n html +=\n '
    ' +\n '
    Check In 
    '\n if (!opt.singleDate) {\n html += '
    Check Out 
    '\n }\n html += '
    '\n }\n html +=\n ''\n html += '
    '\n }\n\n if (!opt.inline_mobile_panel) {\n html += '
    '\n html += getSelectedDatesLegend(opt)\n html += getOfferLegend(opt)\n html += getMultipleBookingLegend(opt)\n html += '
    '\n }\n\n var _colspan = opt.showWeekNumbers ? 6 : 5\n if (opt.inline_mobile_panel) {\n html +=\n `
    ` +\n // Week names\n `${getWeekHead()}
    ` +\n `
    ${getOfferLegend(opt)}` +\n `
    ${\n // First Month\n getInlineMonthWrapper('month1')\n // Second Month\n }${getInlineMonthWrapper('month2')}${getInlineMonthWrapper('month3')}`\n } else {\n html +=\n `
    ` +\n `
    ` +\n `
    ` +\n `
    ` +\n `
    ` +\n `` +\n `
    ` +\n `
    ` +\n `
    ${\n opt.singleDate || !opt.stickyMonths\n ? ``\n : ''\n }
    ` +\n `
    ` +\n `${getWeekHead()}
    ` +\n `
    ` +\n `
    `\n\n if (hasMonth2()) {\n html +=\n `
    ${getGapHTML()}
    ` +\n `
    ` +\n `
    ` +\n `
    ` +\n `
    ${\n !opt.stickyMonths ? `<` : ''\n }
    ` +\n `
    ` +\n `
    ` +\n `
    ` +\n `${getWeekHead()}
    ` +\n `
    ` +\n `
    `\n }\n }\n\n //+'
    '\n if (!opt.inline) {\n html +=\n '
    ' + '
    ' + '
    '\n if (!opt.singleDate) {\n html += '
    '\n }\n html += '
    ' + '
    ' + '
    '\n\n html += '
    '\n if (opt.showShortcuts) {\n html += `
    ${lang('shortcuts')}`\n\n var data = opt.shortcuts\n if (data) {\n if (data['prev-days'] && data['prev-days'].length > 0) {\n html += ` ${lang('past')}`\n for (var i = 0; i < data['prev-days'].length; i++) {\n var name = data['prev-days'][i]\n name += data['prev-days'][i] > 1 ? lang('days') : lang('day')\n html += ` ${name}`\n }\n html += ''\n }\n\n if (data['next-days'] && data['next-days'].length > 0) {\n html += ` ${lang('following')}`\n for (var i = 0; i < data['next-days'].length; i++) {\n var name = data['next-days'][i]\n name += data['next-days'][i] > 1 ? lang('days') : lang('day')\n html += ` ${name}`\n }\n html += ''\n }\n\n if (data.prev && data.prev.length > 0) {\n html += ` ${lang('previous')}`\n for (var i = 0; i < data.prev.length; i++) {\n var name = lang(`prev-${data.prev[i]}`)\n html += ` ${name}`\n }\n html += ''\n }\n\n if (data.next && data.next.length > 0) {\n html += ` ${lang('next')}`\n for (var i = 0; i < data.next.length; i++) {\n var name = lang(`next-${data.next[i]}`)\n html += ` ${name}`\n }\n html += ''\n }\n }\n if (opt.customShortcuts) {\n for (var i = 0; i < opt.customShortcuts.length; i++) {\n var sh = opt.customShortcuts[i]\n html += ` ${sh.name}`\n }\n }\n html += '
    '\n }\n // Add Custom Values Dom\n if (opt.showCustomValues) {\n html += `
    ${opt.customValueLabel || lang('custom-values')}`\n\n if (opt.customValues) {\n for (var i = 0; i < opt.customValues.length; i++) {\n var val = opt.customValues[i]\n html += ` ${val.name}`\n }\n }\n }\n }\n\n html += '
    '\n html += '
    '\n return $(html)\n }\n\n function getOfferLegend(opt) {\n return opt.offerLegend ? `
    ${opt.offerLegendText}
    ` : ''\n }\n\n function getSelectedDatesLegend(opt) {\n var html = ''\n if (\n opt.selectedDatesLegendText &&\n opt.selectedDatesLegendText !== '' &&\n opt.selectCheckInLegendText !== '' &&\n opt.selectCheckOutLegendText !== ''\n ) {\n html += `
    `\n html += `
    ${opt.selectCheckInLegendText} ${opt.selectCheckOutLegendText}
    `\n html += '
    '\n }\n\n return html\n }\n\n function getMultipleBookingLegend(opt) {\n var html = ''\n if (\n opt.multipleBookingText &&\n opt.multipleBookingText !== '' &&\n opt.multipleBookingUrl !== '' &&\n opt.multipleBookingUrl !== ''\n ) {\n html += ''\n }\n\n return html\n }\n\n function getMonthHead(date, opt) {\n var currentDate = new Date(),\n maxYear = currentDate.getFullYear() + 100,\n monthName = `${nameMonth(date.getMonth())} `,\n yearName = date.getFullYear(),\n colspan = typeof opt !== 'undefined' && opt.inline && opt.inline_mobile_panel ? 7 : 5,\n $wrapper =\n IB.currentDevice !== 'mobile'\n ? $('
    ').html(monthName)\n : $(``).html(monthName),\n minYear = currentDate.getFullYear(),\n $select = $(`