LA UVITA PERDIDA (Ballena) - arvostelut sekä hintavertailu - Tripadvisor
Hotellit lähellä paikkaa La Uvita Perdida
La Uvita Perdida - arvostelut (Ballena)
4. sijalla Ballena 9 erikoismajoituksesta
4. sijalla kohteen Ballena 9 erikoismajoituspaikasta
Juan Santamaria Intl Airport102 kmNäytä kaikki lennot
Palmur Sur Airport43 kmNäytä kaikki lennot
4.4 kmLatinalainen
1.8 kmRatsastusreitit
4.8 kmRannat
4.9 kmVesiputoukset
125 $ - 131 $ (Standard-huoneen keskimääräisen hinnan perusteella)
La Uvita Perdida: usein kysytyt kysymykset
Mitä suosittuja nähtävyyksiä hotellin La Uvita Perdida lähellä on?
Lähellä ovat esimerkiksi Alturas Wildlife Sanctuary (6,4 km), Rancho La Merced National Wildlife Refuge (1,7 km) ja Uvita Beach (4,7 km).
Mitä palveluita hotelli La Uvita Perdida tarjoaa?
Mitä ruoka- ja juomavaihtoehtoja hotelli La Uvita Perdida tarjoaa?
Tarjoaako La Uvita Perdida pysäköintimahdollisuuden?
Mitä ravintoloita hotellin La Uvita Perdida lähellä on?
Kätevän matkan päässä sijaitsevat esimerkiksi Pizza Time, Bar Restaurant Los Laureles ja Mosaic.
Tarjoaako La Uvita Perdida lentokenttäkuljetuksen?
Kyllä, La Uvita Perdida tarjoaa asiakkailleen lentokenttäkuljetuksen. Suosittelemme tarkistamaan yksityiskohdat yritykseltä etukäteen.
Mitä kieliä hotellin La Uvita Perdida henkilökunta puhuu?
' ); return s.join ( '' ); }; return exports; }); require(['ta/p13n/placements'], function(placements) { var define = placements.define.bind(placements,'dual_search_dust','handlers',['deferred/lateHandlers','handlers']); /** * Private javascript for dual_search placement */ define(["placement", "lib/jquery-amd", "ta/Core/TA.Store", 'ta/Core/TA.Event', "typeahead/TypeAhead.views" /*this needs to be here when the placement is, even though we don't use it here */ ], function (placement, $, taStore, taEvent, typeAheadViews) { if (placement.params && 'typeahead_to_store' in placement.params) { var propertiesToStore = placement.params['typeahead_to_store']; if (propertiesToStore) { for (var property in propertiesToStore) { if (propertiesToStore.hasOwnProperty(property)) { taStore.store(property, propertiesToStore[property]); } } } } focusOnWrapperClick('GEO_SCOPE_CONTAINER', 'GEO_SCOPED_SEARCH_INPUT'); focusOnWrapperClick('MAIN_SEARCH_CONTAINER', 'mainSearch'); /** * allows to focus the corresponding input when its wrapper is clicked (wrapper is wider and taller than the input) */ function focusOnWrapperClick(wrapperId, inputId) { $('#' + wrapperId).on('click', function(e) { // If the click target is the input element, let the browser handle it, so we don't trigger focus twice. if ($(e.target).closest('#' + inputId).length == 0) { $('#' + inputId).focus(); } }); } var options = taStore.retrieve("typeahead_dual_search_options"); function _popAutoTooltip() { if (!options.autoTooltip || !taStore.retrieve("isFirstSessionPageView") || !window.require) { return; } var reqs = ['trjs!overlays/Overlay', 'trjs!overlays/position', 'trjs!overlays/styles/popover', 'trjs!overlays/options/maxWidth', 'trjs!overlays/options/repositionOnEvent' ]; require(reqs, function (Overlay, Position, Style, MaxWidth, Reposition) { var searchButton = document.getElementById("SEARCH_BUTTON"); var mixins = [ Position && Position['below'] && Position['below']([], false), Style && Style(searchButton, 'below', "dark small", " ", options.autoTooltip), MaxWidth && MaxWidth(220), Reposition && Reposition(window, "showingCookieConsentBanner") ]; var overlay = new Overlay(searchButton, mixins); if (overlay) { // pop tooltip immediately overlay.show() } }); } if (document.activeElement === $("#GEO_SCOPED_SEARCH_INPUT")[0]) { placement.require(["trjs!deferred/lateHandlers"], function (lh) { lh.whereFocused({type: "dummy"}, document.activeElement); }); } else if (document.activeElement === $("#mainSearch")[0]) { placement.require(["trjs!deferred/lateHandlers"], function (lh) { lh.whatFocused({type: "dummy"}, document.activeElement); }); } else if (options && options.autoTooltip) { taEvent.queueForLoad(_popAutoTooltip, "dual_search auto tooltip"); } return { getOptions: function () { return options; } }; }); }); define('calendars/CalendarDate', ['vanillajs'], function(vanilla) { 'use strict'; function CalendarDate(date) { date = date || new Date(); this.date = new Date(date.getFullYear(), date.getMonth(), date.getDate()); } CalendarDate.prototype = { constructor: CalendarDate, daysInMonth: function() { return new Date(this.year(), this.month() + 1, 0).getDate(); }, eachDayInMonth: function(callback) { for (var day = 1, days = this.daysInMonth(); day <= days; day++) { callback(new CalendarDate(new Date(this.year(), this.month(), day))); } }, thisMonth: function() { return new CalendarDate(new Date(this.year(), this.month(), 1)); }, nextMonth: function() { return this.relativeMonth(1); }, previousMonth: function() { return this.relativeMonth(-1); }, relativeMonth: function(delta) { return new CalendarDate(new Date(this.year(), this.month() + delta, 1)); }, relativeDay: function(delta) { return new CalendarDate(new Date(this.year(), this.month(), this.day() + delta)); }, firstOfMonth: function() { return new CalendarDate(new Date(this.year(), this.month(), 1)); }, lastOfMonth: function() { return new CalendarDate(new Date(this.year(), this.month(), this.daysInMonth())); }, year: function() { return this.date.getFullYear(); }, month: function() { return this.date.getMonth(); }, day: function() { return this.date.getDate(); }, dayOfWeek: function() { return this.date.getDay(); }, firstDayOfMonth: function() { return new Date(this.year(), this.month(), 1).getDay(); }, inRange: function(startDate, endDate) { if (!startDate || !endDate) { return false; } return this.compare(startDate) > 0 && this.compare(endDate) < 0; }, compare: function(other) { var toCompare = ['getFullYear', 'getMonth', 'getDate'] , current ; for (var i = 0, len = toCompare.length; i < len; i++) { current = toCompare[i]; if (this.date[current]() < other.date[current]()) { return -1; } if (this.date[current]() > other.date[current]()) { return 1; } } return 0; }, daysTo: function(other) { return Math.ceil((other.date.getTime() - this.date.getTime()) / (1000 * 60 * 60 * 24)); }, toISOString: function() { return this.date.toISOString().split("T")[0]; }, toString: function() { return this.year() + '-' + this.month() + '-' + this.day(); } }; CalendarDate.fromString = function(string) { var dateComponents = string.split('-'); return new CalendarDate(new Date(dateComponents[0], dateComponents[1], dateComponents[2])); }; return CalendarDate; });define('mixins/page-dates/DateTypeStore', ['vanillajs', 'ta/Core/TA.Store', 'calendars/CalendarDate', 'mixins/page-dates/Utils'], function(vanilla, taStore, CalendarDate, DateUtils) { 'use strict'; var PREFIX = "zu"; var DateTypeStore = { CHECKIN: { queryString: null, pathString: null }, CHECKOUT: { queryString: null, pathString: null }, STAYDATES: { children: ['CHECKIN', 'CHECKOUT'], queryString: 'staydates', pathString: PREFIX + 's' }, EATERY: { queryString: 'eaterydate', pathString: PREFIX + 'r' }, DEPARTURE: { queryString: null, pathString: null }, RETURN: { queryString: null, pathString: null }, ROUNDTRIP: { children: ['DEPARTURE', 'RETURN'], queryString: 'rtdates', pathString: PREFIX + 't' }, ONEWAYFLIGHT: { queryString: 'oneway', pathString: PREFIX + 'o' }, LEG_1: { queryString: 'leg1date', pathString: PREFIX + '1' }, LEG_2: { queryString: 'leg2date', pathString: PREFIX + '2' }, LEG_3: { queryString: 'leg3date', pathString: PREFIX + '3' }, ATTRACTION: { queryString: 'attrdate', pathString: PREFIX + 'a' }, ATTRACTION_FROM: { queryString: null, pathString: null }, ATTRACTION_TO: { queryString: null, pathString: null }, ATTRACTIONRANGE: { children: ['ATTRACTION_FROM', 'ATTRACTION_TO'], queryString: 'attrrange', pathString: PREFIX + 'e' }, VPDATES: { children: ['VPDEPARTURE', 'VPRETURN'], queryString: 'vpdates', pathString: null }, VPDEPARTURE: { queryString: null, pathString: null }, VPRETURN: { queryString: null, pathString: null } }; DateTypeStore.getStartDateType = function(dateType) { var parents = _getParentTypes(dateType); if(parents.length==0) { var children = DateTypeStore[dateType].children; if (children && children.length > 0) { return children[0]; } return dateType; } return DateTypeStore[parents[0]].children[0]; }; DateTypeStore.getEndDateType = function(dateType) { var parents = _getParentTypes(dateType); if(parents.length==0) { var children = DateTypeStore[dateType].children; if (children && children.length > 0) { return children[children.length - 1]; } return dateType; } var parentType = DateTypeStore[parents[0]]; return parentType.children[parentType.children.length - 1]; }; function _getParentTypes(childType) { var parents = []; for (var type in DateTypeStore) { if (!DateTypeStore.hasOwnProperty(type)) { continue; } if (DateTypeStore[type].children && DateTypeStore[type].children.indexOf(childType) >= 0) { parents.push(type); } } return parents; } function _getCalendarDate(dateType) { var dates = ta.page.getDates(dateType); return dates && dates[0] ? new CalendarDate(dates[0]) : null; } DateTypeStore.isChildDateType = function(dateType) { return _getParentTypes(dateType).length > 0; }; DateTypeStore.isSingleDateType = function(dateType) { var type = DateTypeStore[dateType]; return !DateTypeStore.isChildDateType(dateType) && !(type && type.children && type.children.length > 0); }; DateTypeStore.getParents = _getParentTypes; DateTypeStore.isHotelDateType = function(dateType) { return _getParentTypes(dateType).indexOf('STAYDATES') >= 0; }; DateTypeStore.isRoundTripDateType = function(dateType) { return _getParentTypes(dateType).indexOf('ROUNDTRIP') >= 0; }; DateTypeStore.isAttractionRangeDateType = function(dateType) { return _getParentTypes(dateType).indexOf('ATTRACTIONRANGE') >= 0; }; DateTypeStore.isVacationPackagesDateType = function(dateType) { return _getParentTypes(dateType).indexOf('VPDATES') >= 0; }; DateTypeStore.allowsSameDayRange = function(dateType) { return DateTypeStore.isAttractionRangeDateType(dateType) || DateTypeStore.isRoundTripDateType(dateType); }; DateTypeStore.isMultiCityDateType = function(dateType) { return dateType == 'LEG_1' || dateType == 'LEG_2' || dateType == 'LEG_3'; }; DateTypeStore.isStartDateType = function(dateType) { var parents = _getParentTypes(dateType); if (parents.length == 0) return false; return DateTypeStore[parents[0]].children.indexOf(dateType) == 0; }; DateTypeStore.isEndDateType = function(dateType) { var parents = _getParentTypes(dateType); if(parents.length==0) return false; var parentType = DateTypeStore[parents[0]]; return parentType.children.indexOf(dateType) == parentType.children.length - 1; }; DateTypeStore.getStartDate = function(dateType) { var startType = DateTypeStore.getStartDateType(dateType); if(startType == null) { return ta.page.getDates(dateType)[0]; } return ta.page.getDates(startType)[0]; }; DateTypeStore.getEndDate = function(dateType) { var endType = DateTypeStore.getEndDateType(dateType); if(endType == null) { return ta.page.getDates(dateType)[0]; } return ta.page.getDates(endType)[0]; }; DateTypeStore.getMinEnabledDate = function(dateType) { if (DateTypeStore.isHotelDateType(dateType) || DateTypeStore.isRoundTripDateType(dateType)) { var minCheckInDate = taStore.retrieve('multiDP.minCheckInDate'); if (minCheckInDate) { return new CalendarDate(DateUtils.fromString(minCheckInDate)); } } else if (dateType == 'LEG_1') { return _getCalendarDate('ONEWAYFLIGHT'); } else if (dateType == 'LEG_2') { return _getCalendarDate('LEG_1') || _getCalendarDate('ONEWAYFLIGHT'); } else if (dateType == 'LEG_3') { return _getCalendarDate('LEG_2') || _getCalendarDate('LEG_1') || _getCalendarDate('ONEWAYFLIGHT'); } else if (dateType == 'ATTRACTION_TO') { return _getCalendarDate('ATTRACTION_FROM'); } return null; }; DateTypeStore.flattenType = function(dateType) { var type = DateTypeStore[dateType]; if (!type) { return []; } if (!type.children) { return [dateType]; } return type.children.slice(0); }; DateTypeStore.getCorrespondingDateType = function(dateType) { switch(dateType) { case 'CHECKIN': return 'CHECKOUT'; case 'CHECKOUT': return 'CHECKIN'; case 'DEPARTURE': return 'RETURN'; case 'RETURN': return 'DEPARTURE'; case 'ATTRACTION_FROM': return 'ATTRACTION_TO'; case 'ATTRACTION_TO': return 'ATTRACTION_FROM'; case 'VPDEPARTURE': return 'VPRETURN'; case 'VPRETURN': return 'VPDEPARTURE'; default: return null; } }; return DateTypeStore; }); define('mixins/page-dates/picker-autoadvance-utils', [], function() { var exports = {}; exports.keepOverlayOpenOnSelection = function(target) { var overlayElmts = document.querySelectorAll(".ui_overlay"); for (var i = 0; i < overlayElmts.length; i++) { var overlayObj = overlayElmts[i].overlay; var source = overlayObj && overlayObj.sourceElement; if (source === target) { overlayObj.dontHideOnSelection = true; break; } } }; return exports; }); define('mixins/page-dates/picker-autoadvance', [ 'mixins/page-dates/DateTypeStore', 'mixins/page-dates/picker-autoadvance-utils', 'utils/domUtils' ], function( DateType, autoadvanceUtils, domUtils ) { 'use strict'; var _advancedToType = null; function apply(parentElement, autofillMissingDates, alwaysAdvanceFromStartDate) { var taPage = ta.page; taPage && taPage.on('dateSelected', function selected(target, dateType, date) { if (!domUtils.isOrContainsElement(document.body, parentElement)) { taPage.off('dateSelected', selected); return; } if (!target) { return; } if (!domUtils.isOrContainsElement(parentElement, target)) { return; } var otherType = DateType.getCorrespondingDateType(dateType); if (!otherType) { return; } var isStartDate = DateType.isStartDateType(dateType); var shouldAutoAdvance = !taPage.hasDates(otherType) || (alwaysAdvanceFromStartDate && isStartDate && dateType !== _advancedToType); if (shouldAutoAdvance) { if (autofillMissingDates && !taPage.hasDates(otherType) && Array.isArray(date)) { var autoDate = new Date(date[0].getFullYear(), date[0].getMonth(), date[0].getDate() + (isStartDate ? 1 : -1)); taPage.pushDates(null, otherType, [autoDate]); } var otherPicker = parentElement.querySelector('[data-datetype="' + otherType + '"]'); if (otherPicker) { _advancedToType = otherType; autoadvanceUtils.keepOverlayOpenOnSelection(target); setTimeout(taPage.gatherDates.bind(taPage, otherPicker)); } } }); } return { apply: apply }; }); define('mixins/page-dates/pop-calendar', [ 'ta', 'common/trackingStreams', 'common/Radio', 'ta/support/Qualtrics', 'ta/Core/TA.Store', 'ta/Core/TA.LocalStorage', 'ta/util/SessionStorage', 'utils/responsive'], function(ta, trackingStreams, radio, taQualtrics, taStore, LocalStorage, sessionStorage, responsive) { var KEY_POP_CALENDAR_DISMISSED = "pop-calendar-dismissed"; var _popFromDefault = false , _popFromVisibleOnly = false , _popFromVisibleOnlyBreakpoint = "" , _datesWereDefaulted = false , _qualtricsSurveyEnabled = false , _hasMetaMarketingDefaultDates = false , _popCalendarType = '' , _isDetailPage = false , _hasPopped = false , _isShowing = false , _isVacationPackage = false ; function _datepickerClosed() { _isShowing = false; } function init(options) { _popFromDefault = !!options.popFromDefault; _popFromVisibleOnly = !!options.popFromVisibleOnly; _popFromVisibleOnlyBreakpoint = options.popFromVisibleOnlyBreakpoint; _datesWereDefaulted = !!options.datesWereDefaulted; _popCalendarType = options.popCalendarType; _hasMetaMarketingDefaultDates = !!options.hasMetaMarketingDefaultDates; _qualtricsSurveyEnabled = !!options.qualtricsSurveyEnabled; _isDetailPage = !!options.isDetailPage; _isVacationPackage = window.pageServlet === "Vacation_Packages"; ta.page.on('datepickerRejected', _datepickerClosed); ta.page.on('dateSelected', _datepickerClosed); } function shouldPop(datePickerElement) { if (LocalStorage.enabled && LocalStorage.get('popCalendarAfterRedirectedFromIB')) { LocalStorage.remove('popCalendarAfterRedirectedFromIB'); return true; } if (!_datesWereDefaulted || _hasPopped){ return false; } if (taStore.retrieve('suppressCalendarPop')) { return false; } if (!_popCalendarType) { return false; } if (_qualtricsSurveyEnabled && (taQualtrics && (taQualtrics.canDisplay() || taQualtrics.seenThisPageView()))) { if (require.defined('page-model')) { if (require('page-model').isMobile) { return false; } } else { return false; } } if(datePickerElement && _popFromVisibleOnly && (!_popFromVisibleOnlyBreakpoint || responsive.is(_popFromVisibleOnlyBreakpoint, true, false)()) && !_isInViewport(datePickerElement)) { return false; } switch (_popCalendarType) { case "doNot": return false; case "untilClosedPerServletType": return !_getDismissedThisSessionThisServletType(); case "untilClosed": return !_getDismissedThisSession(); case "always": return true; default: break; } return _popFromDefault && _datesWereDefaulted; } function _getDismissedThisSession() { return sessionStorage.canUseSessionStore() && !!sessionStorage.getObject(KEY_POP_CALENDAR_DISMISSED); } function _getDismissedThisSessionThisServletType() { var store = sessionStorage.canUseSessionStore() && sessionStorage.getObject(KEY_POP_CALENDAR_DISMISSED); return store && !!store[_isVacationPackage ? "vp" : _isDetailPage ? "detail" : "list"]; } function _setDismissedThisSession() { if (sessionStorage.canUseSessionStore()) { var store = sessionStorage.getObject(KEY_POP_CALENDAR_DISMISSED) || {}; store[_isVacationPackage ? "vp" : _isDetailPage ? "detail" : "list"] = true; sessionStorage.setObject("pop-calendar-dismissed", store); radio('pop-calendar').emit('dismissed'); } } function _isInViewport(elem) { var bounding = elem.getBoundingClientRect(); return ( bounding.top >= 0 && bounding.left >= 0 && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) && bounding.right <= (window.innerWidth || document.documentElement.clientWidth) ); } function shouldPopMetaMarketing() { return _hasMetaMarketingDefaultDates; } function popCalendar(datePickerElement) { _isShowing = true; ta.page.gatherDates(datePickerElement); _hasPopped = true; trackingStreams.trackEvent("DATEPICKER", "auto-popped-calendar-shown", window.pageServlet); trackingStreams.trackEvent('calendar', 'in_view', 'autopop'); } function wasPoppedThisPageLoad() { return _hasPopped; } function isShowing() { return _isShowing; } function setUserEnteredDates() { _datesWereDefaulted = false; } return { init: init, shouldPop: shouldPop, shouldPopMetaMarketing: shouldPopMetaMarketing, popCalendar: popCalendar, wasPoppedThisPageLoad: wasPoppedThisPageLoad, isShowing: isShowing, setUserEnteredDates: setUserEnteredDates, setDismissedThisSession: _setDismissedThisSession }; }); define( 'mixins/page-dates/default-dates', [ 'ta', 'mixins/mixin', 'mixins/Events', 'mixins/page-dates/pop-calendar', 'mixins/page-dates/DateTypeStore', 'common/trackingStreams', 'vanillajs', 'ta/Core/TA.Event' ], function( ta, mixin, Events, PopCalendar, DateTypeStore, trackingStreams, vanillajs, taEvent ) { 'use strict'; var _currentCheckin , _currentCheckout , _datesWereDefaulted = false , _refreshLocalStorage = false , _localStorageTTL = 0 , _initComplete = false ; var HOTEL_DATE_TYPES = { beginType: 'CHECKIN', endType: 'CHECKOUT', range: 'STAYDATES' }; var ATTRACTION_DATE_TYPES = { beginType: 'ATTRACTION_FROM', endType: 'ATTRACTION_TO', range: 'ATTRACTIONRANGE' }; function init(options) { PopCalendar.init(options); _datesWereDefaulted = !!options.datesWereDefaulted; _refreshLocalStorage = !!options.refreshLocalStorage; _localStorageTTL = options.localStorageTTL; _initComplete = true; exports.emit("init"); } function onInit(callback) { if (typeof callback !== "function") { return; } if (_initComplete) { callback(); } else { exports.on("init", callback); } } function apply(parentElement, suppressAutoPop, rangeDatesTypeOverride) { var rangeDatesType = rangeDatesTypeOverride ? rangeDatesTypeOverride : 'STAYDATES'; if (!ta.page.usingUnifiedDates) { return; } if (!ta.page.hasDates(rangeDatesType)) { ta.page.clearDates(rangeDatesType); } _currentCheckin = ta.page.getDates(DateTypeStore.getStartDateType(rangeDatesType))[0]; _currentCheckout = ta.page.getDates(DateTypeStore.getEndDateType(rangeDatesType))[0]; var datePickerElement = parentElement.querySelector('[data-datetype="'+DateTypeStore.getStartDateType(rangeDatesType)+'"]'); ta.page.on('dateSelected', function handler(target, dateType, date) { var trackingEvent, hadDates = _currentCheckin && _currentCheckout, newCheckin = ta.page.getDates(rangeDatesType)[0], newCheckout = ta.page.getDates(rangeDatesType)[1]; if (parentElement.contains(target)) { if (!hadDates && ta.page.hasDates(rangeDatesType)) { trackingEvent = "undated_to_manually_dated"; } else if (newCheckin != _currentCheckin || newCheckout != _currentCheckout) { PopCalendar.setUserEnteredDates(); ta.page.off('datepickerRejected', _onDatepickerRejected); if (_datesWereDefaulted) { trackingEvent = "default_dated_to_manually_dated"; _datesWereDefaulted = false; } else { trackingEvent = "manually_dated_to_manually_dated"; } } _currentCheckin = newCheckin; _currentCheckout = newCheckout; if (trackingEvent) { var pickerLoc = ''; if (target && target.getAttribute('data-picker-location')) { pickerLoc = target.getAttribute('data-picker-location'); if (document.querySelector('#PERSISTENT_TRIP_SEARCH_BAR.fixed')) { pickerLoc += '_persistent'; } } trackingStreams.trackEvent("DATEPICKER", trackingEvent, pickerLoc); } } }); function _onDatepickerRejected(elmt) { if (PopCalendar.wasPoppedThisPageLoad()) { exports.emit('poppedCalendarDismissed', elmt); PopCalendar.setDismissedThisSession(); ta.page.off('datepickerRejected', _onDatepickerRejected); } } function load() { if (!datePickerElement) { return; } if (_datesWereDefaulted) { trackingStreams.trackEvent("DATEPICKER", "undated_to_default_dated"); } if (!suppressAutoPop) { var shouldPopFromDefault = PopCalendar.shouldPop(datePickerElement); if (shouldPopFromDefault || PopCalendar.shouldPopMetaMarketing()) { shouldPopFromDefault && exports.emit('popFromDefault'); ta.page.on('datepickerRejected', _onDatepickerRejected); PopCalendar.popCalendar(datePickerElement); } } } if (document.readyState === 'loading') { window.addEventListener('DOMContentLoaded', load); } else { load(); } taEvent.on('specialOfferClosed', function(){ if (!suppressAutoPop){ if (datePickerElement && PopCalendar.shouldPop(datePickerElement)){ PopCalendar.popCalendar(datePickerElement); } } }); } var exports = { init: init, onInit: onInit, apply: apply, usingDefaults: function() { return _datesWereDefaulted; }, shouldRefreshLocalStorage: function() { return _refreshLocalStorage; }, getLocalStorageTTL: function() { return _localStorageTTL; } }; return mixin(exports, new Events('popFromDefault')); }); require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'datepickers_desktop_horizontal_styleguide_icon','handlers',['handlers']); define(['widget', 'vanillajs', 'api-mod', 'ta/Core/TA.Event', 'mixins/page-dates/picker-autoadvance', 'mixins/page-dates/default-dates'], function(widget, vanilla, api, taEvent, pickerAutoadvance, DefaultDates) { 'use strict'; var _checkinElement = api.find('[data-datetype=CHECKIN]', widget.element) , _checkoutElement = api.find('[data-datetype=CHECKOUT]', widget.element) ; function _setDateLabel(target, date) { var label; var dateFormat = target.getAttribute('data-dateFormat'); if (!date) { label = target.getAttribute('data-emptyText'); } else { label = ta.i18n.formatDate(dateFormat, date); } api.find('.picker-inner .picker-label', target).firstChild.nodeValue = label; /* HOT-4599 */ } function _onDateSelected(target, dateType, date) { // Clean up if the widget is no longer in the document. if (!api.inDocument(widget.element)) { ta.page.removeListener('dateSelected', _onDateSelected); _checkinElement = null; _checkoutElement = null; return; } if (dateType === 'CHECKIN') { _setDateLabel(_checkinElement, date[0]); } else if (dateType === 'CHECKOUT') { _setDateLabel(_checkoutElement, date[0]); } else if (dateType === 'STAYDATES') { _setDateLabel(_checkinElement, date[0]); _setDateLabel(_checkoutElement, date[1]); } } /* HOT-8985 */ function _onDatePickerClick(elmt, defer_search) { if (!elmt) { return; } var calendarFlyout = elmt.getParent(".calendarFlyout"); if (calendarFlyout) { var deferred = calendarFlyout.deferred, // arbitrary property, set in DesktopStayDate. calendarWrapper = calendarFlyout.getElement('.calendarWrapper'); if (deferred && calendarWrapper) { deferred.reject(); ta.page.gatherDates(elmt, calendarWrapper, defer_search); return; } } ta.page.gatherDates(elmt, null, defer_search); } taEvent.queueForLoad(function() { ta.page.on('dateSelected', _onDateSelected); pickerAutoadvance.apply(widget.element); DefaultDates.apply(widget.element); }, 'datepicker widget handlers'); return { onDatePickerClick: _onDatePickerClick }; }); });define('ta/util/openNewTab', ['utils/browserutils', 'ta/Browser', 'ta/util/Cookie'], function(Browser, taBrowser, taCookie) { return function(url) { var win; if (!taBrowser.isIE10Metro()) { if (Browser.ie && !taBrowser.isIE9orHigher()) { win = window.open(url, '_blank', 'location=yes,resizable=yes,menubar=yes,scrollbars=yes,toolbar=yes,width=' + document.documentElement.clientWidth + ',height=' + document.documentElement.clientHeight); } else { win = window.open(url, '_blank'); } } if (!win || win.closed || typeof win.closed==='undefined') { taCookie.setPIDCookie(38821); window.location = url; return false; } return win; } }); define('ta/popups/CookieSettingsPanel', ['ta/util/openNewTab', 'page-model'], function(openNewTab, pageModel) { return function(evnt) { if(evnt) { evnt.stop(); } var posMapDesktop = { en: 451, en_UK: 834, en_IE: 835, en_ZA: 2635, sv: 720, no: 721, da: 1199, fr: 1197, fr_BE: 6409, fr_CH: 6410, de: 1201, de_AT: 2719, de_CH: 6431, el: 1198, it: 1202, it_CH: 6432, es: 1200, pl: 1208, nl: 1209, nl_BE: 6411, fi: 2968, hu: 3049, cs: 3128, sk: 3233, pt_PT: 13938, 'default': 451 }; var posMapMobile = { en: 8328, en_UK: 8328, en_IE: 8316, en_ZA: 8324, sv: 8322, no: 8323, da: 8310, fr: 8312, fr_BE: 8307, fr_CH: 8326, de: 8313, de_AT: 8306, de_CH: 8325, el: 8314, it: 8317, it_CH: 8327, es: 8321, pl: 8319, nl: 8318, nl_BE: 8309, fi: 8311, hu: 8315, cs: 8308, sk: 8320, pt_PT: 13939, 'default': 8328 }; var posMap = pageModel.isMobile ? posMapMobile : posMapDesktop; var localeId = (pageModel.session && pageModel.session.posLocale && posMap[pageModel.session.posLocale]) ? posMap[pageModel.session.posLocale] : posMap['default']; var url = "http://info.evidon.com/pub_info/" + localeId + "?v=1&nt=0"; openNewTab(url); } });require(['ta/p13n/placements'], function(placements) { var define = placements.define.bind(placements,'document_cookie_banner','handlers',['handlers']); define([ 'placement', 'lib/jquery-amd', 'ta/util/Cookie', 'ta/Core/TA.Event', 'ta/popups/CookieSettingsPanel', 'common/Radio' ], function( placement, $, taCookie, taEvent, cookieSettingsPanel, Radio){ 'use strict'; taEvent.queueForAfterLoad(function(){ var $placement = $('#' + placement.id); $(document.body).prepend($placement); $placement.find('p span') .on('click', function(){ cookieSettingsPanel(); }); $placement.addClass('showing'); var smartbanner = $('#smartbanner'); if (smartbanner[0]) { $placement.addClass('smart-banner-top'); } $placement.css({ marginTop: -$placement.height() }).animate({marginTop: 0}, { duration: 'long', complete: function() { taEvent.fireEvent("showingCookieConsentBanner"); Radio('cookie-banner').emit('banner-shown'); } }); // Drop a cookie to signify that the banner has been shown to the user. // This cookie is checked on the server. taCookie.write('cookieconsent', '1', taCookie.ONE_HOUR); }, 'placement: document_cookie_consent'); }); });require(['ta/p13n/placements','ta/page','$prp/resp_hr_ad_wrapper/handlers'], function(placements, impl) { window.ta.plc_resp_hr_ad_wrapper_upper_block_0_handlers = placements.load('resp_hr_ad_wrapper','handlers.js', { 'name': 'resp_hr_ad_wrapper:upper_block', 'occurrence': 0, 'id': 'taplc_resp_hr_ad_wrapper_upper_block_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {"contentUpdatedEvent":"reviewListUpdated"}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/resp_hr_ad_wrapper/handlers'], function(placements, impl) { window.ta.plc_resp_hr_ad_wrapper_lower_block_0_handlers = placements.load('resp_hr_ad_wrapper','handlers.js', { 'name': 'resp_hr_ad_wrapper:lower_block', 'occurrence': 0, 'id': 'taplc_resp_hr_ad_wrapper_lower_block_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {"contentUpdatedEvent":"qaListUpdated"}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/footer_banner_ad_billboard/handlers'], function(placements, impl) { window.ta.plc_footer_banner_ad_billboard_hotel_review_resp_0_handlers = placements.load('footer_banner_ad_billboard','handlers.es6', { 'name': 'footer_banner_ad_billboard:hotel_review_resp', 'occurrence': 0, 'id': 'taplc_footer_banner_ad_billboard_hotel_review_resp_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {"footer_banner_ad_style":"billboardAd"}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/unsupported_browser_messaging/handlers'], function(placements, impl) { window.ta.plc_unsupported_browser_messaging_0_handlers = placements.load('unsupported_browser_messaging','handlers.js', { 'name': 'unsupported_browser_messaging', 'occurrence': 0, 'id': 'taplc_unsupported_browser_messaging_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/facebook_autologin/handlers'], function(placements, impl) { window.ta.plc_facebook_autologin_0_handlers = placements.load('facebook_autologin','handlers.js', { 'name': 'facebook_autologin', 'occurrence': 0, 'id': 'taplc_facebook_autologin_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/document_cookie_banner/handlers'], function(placements, impl) { window.ta.plc_document_cookie_banner_0_handlers = placements.load('document_cookie_banner','handlers.js', { 'name': 'document_cookie_banner', 'occurrence': 0, 'id': 'taplc_document_cookie_banner_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/global_nav/handlers'], function(placements, impl) { window.ta.plc_global_nav_0_handlers = placements.load('global_nav','handlers.js', { 'name': 'global_nav', 'occurrence': 0, 'id': 'taplc_global_nav_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["deferred/lateHandlers","handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/global_nav_links/handlers'], function(placements, impl) { window.ta.plc_global_nav_links_0_handlers = placements.load('global_nav_links','handlers.js', { 'name': 'global_nav_links', 'occurrence': 0, 'id': 'taplc_global_nav_links_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {"geopillOnHome":false}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/global_nav_dropdowns/handlers'], function(placements, impl) { window.ta.plc_global_nav_dropdowns_0_handlers = placements.load('global_nav_dropdowns','handlers.js', { 'name': 'global_nav_dropdowns', 'occurrence': 0, 'id': 'taplc_global_nav_dropdowns_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/global_nav_action_inbox/handlers'], function(placements, impl) { window.ta.plc_global_nav_action_inbox_empty_0_handlers = placements.load('global_nav_action_inbox','handlers.js', { 'name': 'global_nav_action_inbox:empty', 'occurrence': 0, 'id': 'taplc_global_nav_action_inbox_empty_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/masthead_search/handlers'], function(placements, impl) { window.ta.plc_masthead_search_empty_0_handlers = placements.load('masthead_search','handlers.js', { 'name': 'masthead_search:empty', 'occurrence': 0, 'id': 'taplc_masthead_search_empty_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["deferred/lateHandlers","handlers"], 'params': {"typeahead_to_store":{"typeahead_new_location_label":"UUSI SIJAINTI","typeahead.aliases.flight_reviews":["lentoarvostelut","lentoyhtiöarvostelut"],"typeahead_throttle_requests":"true","typeahead.aliases.rental_cars":["Vuokra-autot","Autovuokraamot"],"typeahead_cruise_ships_enabled":"true","typeahead.aliases.activities":["Retket ja liput","Retket ja liput"],"typeahead.aliases.things_to_do":["Näe ja koe","Näe ja koe","nähtävyydet","aktiviteetit","tekemistä","nähtävää","Nähtävyydet","Turistinähtävyydet","Aktiviteetti","Nähtävyys","Mitä nähdä","Mihin suunnata","Missä käydä","Parhaat nähtävyydet","Parhaat nähtävät ja koettavat asiat","Parhaat turistinähtävyydet","Parhaat nähtävyydet","Suosituimmat nähtävyydet","Suosituimmat nähtävät ja koettavat asiat","Suosituimmat turistinähtävyydet","Suosituimmat nähtävyydet","Nähtävyyksien top 10","Nähtävien ja koettavien asioiden top 10","Turistinähtävyyksien top 10","Nähtävyyksien top 10"],"typeahead.enable_nearby":true,"typeahead_cruise_cruiselines_enabled":"false","typeahead_divClasses":null,"typeahead.scoped.cur_loc_denied":"Tripadvisor ei saanut lupaa sijaintiisi. Anna selaimelle ja Tripadvisorille lupa käyttää nykyistä sijaintiasi ja yritä uudelleen.","typeahead.scoped.cur_loc":"Lähellä","typeahead.aliases.travel_forums":["keskustelualue","keskustelualueet","Matkailukeskustelualue","Matkailua koskevat keskustelualueet"],"typeahead.aliases.travel_guides":["oppaat","kaupunkioppaat"],"typeahead.aliases.vacation_rentals":["loma-asunnot","loma-asunto","Airbnb","Loma-asunto","Loma-asunnot"],"typeahead.aliases.flights":["Lennot","Lento","Lento kohteeseen","lennon kohde","suorat lennot","business-luokan lennot","meno-paluulennot","lentoyhtiö ja lennot","lennot","halvat lennot","lennon lähtöpaikka","halvimmat lennot","pelkkä lento","yhdensuuntaiset lennot","suorat lennot","maan sisäiset lennot","lentolipun hinta","halvat lennot kohteeseen","lennot kohteeseen","lentoyhtiö ja lennot kohteeseen","business-luokan lennot kohteeseen","halvimmat lennot kohteeseen","suorat lennot kohteeseen","maan sisäiset lennot kohteeseen","suorat lennot kohteeseen","yhdensuuntaiset lennot kohteeseen","lentolippujen hinnat","lentolipun hinta","lentolippujen hinnat","lentolipun hinta kohteeseen","lentolippujen hinnat kohteeseen","lentolipun hinta kohteeseen","lentolippujen hinnat kohteeseen"],"typeahead_moved_label":"MUUTTANUT","typeahead_dual_search_options":{"geoID":1060412,"bypassSearch":true,"staticTypeAheadOptions":{"minChars":3,"defaultValue":"Hae","injectNewLocation":true,"typeahead1_5":true,"geoBoostFix":true},"debug":false,"navSearchTypeAheadEnabled":true,"isMobileWeb":false,"geoInfo":{"geoId":1060412,"geoName":"Ballena","parentName":"Costa Rica","shortParentName":"Costa Rica","categories":{"GEO":{"url":"/Tourism-g1060412-Ballena_Province_of_Puntarenas-Vacations.html"},"HOTEL":{"url":"/Hotels-g1060412-Ballena_Province_of_Puntarenas-Hotels.html"},"ATTRACTION":{"url":"/Attractions-g1060412-Activities-Ballena_Province_of_Puntarenas.html"},"EATERY":{"url":"/Restaurants-g1060412-Ballena_Province_of_Puntarenas.html"},"FLIGHTS_TO":{"url":"/Flights-g1060412-Ballena_Province_of_Puntarenas-Cheap_Discount_Airfares.html"},"CAR_RENTAL_OFFICE":{"url":"/RentalCars_Review?detail=1060412"}}}},"typeahead_closed_label":"SULJETTU","typeahead.scoped.all_of_trip":"Maailmanlaajuisesti","typeahead_attraction_activity_search":"false","typeahead.aliases.hotels":["hotellit","hotelli","majoittuminen","yöpymispaikat","yöpyminen","majoitus","majoituspaikat","hotelliarvostelut","Hotellit ja motellit","Parhaat hotellit","Parhaat majoituspaikat","Parhaat majoituspaikat","Parhaat hotellit ja motellit","Majoituspaikat","Majoituspaikka","Suosituimmat hotellit","Suosituimmat majoituspaikat","Suosituimmat majoituspaikat","Suosituimmat hotellit ja motellit","Hotellien top 10","Majoituspaikkojen top 10","Majoituspaikkojen top 10","Hotellien ja motellien top 10"],"typeahead.aliases.restaurants":["ruoka","ruokapaikat","syöminen","ruokailu","ravintolat","ravintola","Ruokailupaikka","Ruokapaikka","Missä ruokailla","Mitä ruoaksi","Parhaat ravintolat","Parhaat ruokailupaikat","Paras ruoka","Parhaat illallispaikat","Suosituimmat ravintolat","Suosituimmat ruokailupaikat","Suosituin ruoka","Suosituimmat illalliset","Ravintoloiden top 10","Ruokailupaikkojen top 10","Ruoan top 10","Illallispaikkojen top 10"],"typeahead.searchMore.v2":"Etsi kohdetta %","typeahead.searchSessionId":"AA32FA602DB933C8C38742241007A27D1596495619480ssid"}}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/browser_mode_tracking/handlers'], function(placements, impl) { window.ta.plc_browser_mode_tracking_0_handlers = placements.load('browser_mode_tracking','handlers.js', { 'name': 'browser_mode_tracking', 'occurrence': 0, 'id': 'taplc_browser_mode_tracking_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/qualtrics_survey/handlers'], function(placements, impl) { window.ta.plc_qualtrics_survey_0_handlers = placements.load('qualtrics_survey','handlers.js', { 'name': 'qualtrics_survey', 'occurrence': 0, 'id': 'taplc_qualtrics_survey_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/meta_click_tracker/handlers'], function(placements, impl) { window.ta.plc_meta_click_tracker_0_handlers = placements.load('meta_click_tracker','handlers.js', { 'name': 'meta_click_tracker', 'occurrence': 0, 'id': 'taplc_meta_click_tracker_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/masthead_h1/handlers'], function(placements, impl) { window.ta.plc_masthead_h1_hr_resp_0_handlers = placements.load('masthead_h1','handlers.js', { 'name': 'masthead_h1:hr_resp', 'occurrence': 0, 'id': 'taplc_masthead_h1_hr_resp_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/trip_planner_breadcrumbs/handlers'], function(placements, impl) { window.ta.plc_trip_planner_breadcrumbs_0_handlers = placements.load('trip_planner_breadcrumbs','handlers.js', { 'name': 'trip_planner_breadcrumbs', 'occurrence': 0, 'id': 'taplc_trip_planner_breadcrumbs_0', 'location_id': 8530896, 'servletClass': 'com.TripResearch.servlet.hotels.hotelreview.HotelReviewServlet', 'servletName': 'Hotel_Review', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/prwidgets', 'ta/page'], function(prwidgets) { prwidgets.initWidgets(document); });