........attendi qualche secondo.

#adessonews solo agevolazioni personali e aziendali.

per le ricerche su Google, inserisci prima delle parole di ricerca:

#adessonews

Siamo operativi in tutta Italia

YouTube player

chambre verte dans villa toute équipée avec jacuzzi – Aggiornato al 2022 | Tripadvisor #adessonews

[]
chambre verte dans villa toute équipée avec jacuzzi – Aggiornato al 2022 | Tripadvisor – Agualva-Cacem case vacanze=0&&t1e12?new Date:performance.now())-e.timeStamp;”pointerdown”==e.type?function(e,t){var n=function(){c(e,t),a()},i=function(){a()},a=function(){removeEventListener(“pointerup”,n,r),removeEventListener(“pointercancel”,i,r)};addEventListener(“pointerup”,n,r),addEventListener(“pointercancel”,i,r)}(t,e):c(t,e)}},f=function(e){[“mousedown”,”keydown”,”touchstart”,”pointerdown”].forEach((function(t){return e(t,s,r)}))},p=”hidden”===document.visibilityState?0:1/0;addEventListener(“visibilitychange”,(function e(t){“hidden”===document.visibilityState&&(p=t.timeStamp,removeEventListener(“visibilitychange”,e,!0))}),!0);o(),self.webVitals={firstInputPolyfill:function(e){i.push(e),u()},resetFirstInputPolyfill:o,get firstHiddenTime(){return p}}}();]]>0;)define.apply(e,t.d.shift());for(;t.r.length>0;)require.apply(e,t.r.shift());e.getRequireJSQueue=null}l&&+new Date-i<5e3&&a.apply(e,l)}if(!e||!e.requireCallLast){var l,i,u=!1,a=e.requireCallLast=function(e,r){l=null;var a=[].slice.call(arguments,2);t(e)?n(require(e),r,a):t("trjs")?require(["trjs!"+e],function(e){n(e,r,a)}):u||(i=+new Date,l=[].slice.call(arguments))},c=e.requireCallIfReady=function(n){t(n)&&a.apply(e,arguments)},o=function(t,n,r,l){var i=c;return!r||"click"!==r.type&&"submit"!==r.type||(i=a,r.preventDefault&&r.preventDefault()),l.unshift(n),l.unshift(t),i.apply(e,l),!1};e.remoteModule=function(e,t){return o("remoteModule",null,e,[].slice.call(arguments))},e.requireEvCall=function(e,t,n,r){return e=e.match(/^((?:[^/]+/)*[^/.]+).([^/]*)?$/),o(e[1],e[2],t,[].slice.call(arguments,1))},e.widgetEvCall=function(e,t,n,r){return o("ta/prwidgets","call",t,[].slice.call(arguments))},e.placementEvCall=function(e,t,n,r,l){return o("ta/p13n/placements","evCall",n,[].slice.call(arguments))},document.addEventListener?document.addEventListener("DOMContentLoaded",r):e.addEventListener?e.addEventListener("load",r):e.attachEvent&&e.attachEvent("onload",r)}}(window); ]]>“}”,”pageServlet”:”VacationRentalReview”,”sessionId”:”D27F2206AFF649219765A561F8499CDB”,”cdnHost”:”https://static.tacdn.com”,”quickSave”:true,”isExternalReferral”:true,”useERUserTracking”:true,”cookieDomain”:”.tripadvisor.it”,”uid”:”dfeb5cf9-c426-4573-aa68-4a2084d9a41d”,”hasReferral”:true,”posLocale”:”it”,”MEDIA_HTTP_BASE”:”https://media-cdn.tripadvisor.com/media/”,”user_id”:””,”loggedIn”:false,”securelyLoggedIn”:false},”DUST_GLOBAL”:{“IS_IELE8″:false,”LOCALE”:”it”,”IS_IE10″:false,”CDN_HOST”:”https://static.tacdn.com”,”DEVICE”:”desktop”,”IS_RTL”:false,”LANG”:”it”,”DEBUG”:false,”READ_ONLY”:false,”POS_COUNTRY”:187768},”JS_SECURITY_TOKEN”:”TNI1625!ACosJ0k/GBABCLcS3dddUrBFtd3WpmQbKlnMVTv9/TtXU2zmHJcET4KTCFc0p3m5Go+T4MbXGa4ZYAz9pJApbM9w7n1FyxrCqHmD4+K4IrXaHr+j/02S/62WeOE1wcltocgSjqdzmgmAMTQO9dPq5eq8Ni9WGsKkKxjYURTLZrnL”,”GEO_ID”:”9719123″,”hotelsInGeo”:”0″,”LOC_ID”:”12401463″,”isMobile”:false,”isRtl”:false}; });]]>>0;if(“function”!=typeof t)throw new TypeError(“predicate must be a function”);for(var n=arguments[1],o=0;o>>0;if(“function”!=typeof t)throw new TypeError(“predicate must be a function”);for(var n=arguments[1],o=0;othis.length)&&this.indexOf(t,e)!==-1}),Array.isArray||(Array.isArray=function(t){return”[object Array]”===Object.prototype.toString.call(t)}),Object.entries||(Object.entries=function(t){for(var e=Object.keys(t),r=e.length,n=new Array(r);r–;)n[r]=[e[r],t[e[r]]];return n}),Object.values||(Object.values=function(t){for(var e=Object.keys(t),r=e.length,n=new Array(r);r–;)n[r]=t[e[r]];return n}),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(t){var e=this;do{if(e.matches(t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}); window.define=window.amdResetOldDefine,window.require=window.amdResetOldRequire,window.amdResetOldDefine=void 0,window.amdResetOldRequire=void 0; ]]> Traduzione fornita da Google

Casa vacanza

camera verde in villa con piano terra comune con tre camere da letto, due bagni, un bagno con lavatrice e servizi igienici al piano terra ingresso con flipper, soggiorno, cucina completamente épuiqpée, sala da pranzo tetto in vetro con vista giardino e vasca idromassaggio , al piano superiore tre camere condividono la doccia e bagno con wc, vicino a tutti i servizi a 10 km da Lisbona e Sintra 5, un parcheggio in loco…camera verde in villa con piano terra comune con tre camere da letto, due bagni, un bagno con lavatrice e servizi igienici al piano terra ingresso con flipper, soggiorno, cucina completamente épuiqpée, sala da pranzo tetto in vetro con vista giardino e vasca idromassaggio , al piano superiore tre camere condividono la doccia e bagno con wc, vicino a tutti i servizi a 10 km da Lisbona e Sintra 5, un parcheggio in locoPiù

Animali ammessi: No

Spazi riservati a fumatori: No

Adatta ai bambini: Sì

1 bagno completo, 1 doccia

Ana Paula D

Lingue parlate:inglese

Tasso di risposta:14%

Tempo di risposta:Entro un giorno

Iscritto dal:maggio 2016

Aggiornamento elenco in corso…

Animali ammessi: No

Spazi riservati a fumatori: No

Adatta ai bambini: Sì

Biancheria da letto inclusa

Biancheria da bagno inclusa

Campo da golf raggiungibile in auto in 30 minuti

Ippodromo nelle vicinanze

Vedi altri servizi

Attività nelle vicinanze

Campo da golf raggiungibile in auto in 30 minuti, Ippodromo nelle vicinanze

  • Rimborso del 100% entro 24 ore dopo la prenotazione (a condizione che il soggiorno sia previsto almeno 60 giorni dopo).
  • Nessun rimborso disponibile una volta confermata la prenotazione

Inserisci le date di viaggio per vedere la modalità di cancellazione esatta.

Come faccio a sapere se la struttura è disponibile?

Come faccio a contattare il proprietario?

Come verrò contattato dal proprietario?

Cosa fare se il proprietario non risponde?

Come si effettua il pagamento?

Il pagamento è coperto da assicurazione?

Guadagna affittando la tua casa. Senza spese iniziali e nessun contratto, puoi guadagnare di più.

Conferma le prenotazioni con un clic e monitora l’intero processo dalla richiesta di informazioni al check-out, anche quando sei in movimento.

Con milioni di recensioni e pagamenti online protetti, Tripadvisor aiuta i viaggiatori a prenotare la tua struttura in tutta sicurezza.

Crea il tuo profilo gratuito

{sPrice}u003c/span> u003cspan class=”{priceClass}”>{price}u003c/span>”,”attraction_booking_age_band_count_plural_price_styled_1_pl”:”{sBand, plural, one {1 adulto} other {{sBand} adulti}} per u003cspan class=”{priceClass}”>{price}u003c/span>”,”attraction_booking_age_band_count_plural_price_styled_2_pl”:”{sBand, plural, one {1 bambino} other {{sBand} bambini}} per u003cspan class=”{priceClass}”>{price}u003c/span>”,”attraction_booking_age_band_count_plural_price_styled_3_pl”:”{sBand, plural, one {1 neonato} other {{sBand} neonati}} per u003cspan class=”{priceClass}”>{price}u003c/span>”,”attraction_booking_age_band_count_plural_price_styled_4_pl”:”{sBand, plural, one {1 giovane} other {{sBand} giovani}} per u003cspan class=”{priceClass}”>{price}u003c/span>”,”attraction_booking_age_band_count_plural_price_styled_5_pl”:”{sBand, plural, one {1 anziano} other {{sBand} anziani}} per u003cspan class=”{priceClass}”>{price}u003c/span>”,”trip_detail_remove_from_trip”:”Elimina dal Viaggio”,”trips_save_to_a_trip”:”Salva in un viaggio”,”sponsored_articles_sponsored_by”:”Sponsorizzati da {sponsorName}”,”ds_contributor_authors_one_plus”:”Di {authorName} e altri {numOtherAuthors}”,”ds_contributor_authors_two”:”Di {authorName1} e {authorName2}”,”ds_contributor_authors_three”:”Di {authorName1}, {authorName2} e {authorName3}”,”ds_contributor_authors_three_plus”:”Di {authorName1}, {authorName2}, {authorName3} e altri {numOtherAuthors}”,”ds_award_michelin_one_star_label”:”Una stella MICHELIN”,”ds_award_michelin_two_star_label”:”Due stelle MICHELIN”,”ds_award_michelin_three_star_label”:”Tre stelle MICHELIN”,”sng_award_michelin_bib”:”Bib Gourmand Michelin”,”ds_award_michelin_text”:”MICHELIN”,”About_TC_Winner”:”Vincitore del premio Travellers’ Choice {0}”,”common_Previous”:”Indietro”,”common_Next”:”Avanti”,”common_Terrible”:”Pessimo”,”common_Poor”:”Scarso”,”common_Average”:”Nella media”,”common_VeryGood”:”Molto buono”,”common_Excellent”:”Eccellente”,”mobile_reviews_plural”:”{0, plural, one{# recensione} other{# recensioni}}”,”common_Xof5bubbles”:”Punteggio {0} su 5″,”stat_modal_save_to_trip_v2″:”Salva in un viaggio”,”save_all_items_modal_header”:”Salva tutti gli elementi in un Viaggio”,”stat_modal_create_a_trip_v2″:”Crea un viaggio”,”select_trip_header”:”Seleziona un viaggio”,”stat_modal_view_trip_v2″:”Vedi viaggio”,”create_trip_success_toast_with_bold”:”u003cb>{TripName}u003c/b> creato!”,”stat_modal_saved_to_tripname_with_bold”:”Salvato in u003cb>{TripName}u003c/b>”,”stat_modal_undo”:”Annulla”,”stat_modal_removed_from_tripname_with_bold_v3″:”Rimosso da u003ca href=”{TripLink}” class=”{TripClass}”>u003cb>{TripName}u003c/b>u003c/a>”,”stat_modal_change”:”Modifica”,”stat_modal_saved_to_tripname_with_bold_v3″:”Salvato in u003ca href=”{TripLink}” class=”{TripClass}”>u003cb>{TripName}u003c/b>u003c/a>”,”m1_trips_my_saves_header”:”Preferiti”,”stat_modal_removed_from_tripname”:”Rimosso da {sTripName}”,”m1_trips_save_success_stat_d2″:”Salvato! Ora organizzalo in un Viaggio.”,”trips_inline_profanity_check”:”I viaggi pubblici non possono contenere linguaggio volgare”,”linkify_url_error”:”L’URL inserito non u00E8 corretto”,”trips_error_default_add_item_comment_v2″:”Si u00E8 verificato un problema con l’aggiunta della nota a questo elemento del Viaggio. Riprova.”,”trips_error_default_add_note”:”Si u00E8 verificato un problema con l’aggiunta della nota al Viaggio. Riprova.”,”trip_note_update_error”:”Si u00E8 verificato un problema con l’aggiornamento della nota del Viaggio. Riprova.”,”trips_error_default_update_comment”:”Si u00E8 verificato un problema con l’aggiornamento di questo commento. Riprova.”,”trips_error_duplicate”:”Hai giu00E0 un viaggio con questo nome.”,”trips_stat_modal_profanity_check_native”:”Non u00E8 stato possibile creare il tuo viaggio. I viaggi pubblici non possono contenere linguaggio volgare. Riprova.”,”create_trip_general_error_v2″:”Si u00E8 verificato un problema con la creazione di questo viaggio. Riprova.”,”trip_contains_profanity”:”Il tuo viaggio contiene linguaggio volgare e non puu00F2 essere pubblicato. Modifica il viaggio e riprova. Domande? Consulta il u003ca href=”https://www.tripadvisorsupport.com/hc/it/articles/360008133913-Tripadvisor-s-Content-Policy”>Regolamento per i contenutiu003c/a> di Tripadvisor.”,”trips_error_default_edit_privacy”:”Si u00E8 verificato un problema con l’aggiornamento della privacy di questo Viaggio. Riprova.”,”trips_error_default_edit_trip”:”Si u00E8 verificato un problema con la modifica di questo Viaggio. Riprova.”,”new_trip_name_error_msg”:”Scegli un nuovo nome per il Viaggio.”,”social_no_permission”:”Non disponi delle autorizzazioni per eseguire questa operazione.”,”trips_error_save_trip_full”:”Errore! Troppi elementi nel tuo Viaggio. Rimuovi qualche elemento e riprova a salvare.”,”trips_error_default_add_item_to_trip”:”Si u00E8 verificato un problema con l’aggiunta dell’elemento al Viaggio. Riprova.”,”trips_error_default_move_item”:”Si u00E8 verificato un errore durante lo spostamento di questo elemento del Viaggio. Riprova.”,”trips_error_unsave”:”Si u00E8 verificato un problema durante la rimozione di questo elemento dal tuo Viaggio. Riprova.”,”stat_modal_general_error”:”Si u00E8 verificato un problema nel salvare questo elemento. Riprova.”,”m1_trips_unsave_error”:”Si u00E8 verificato un problema con la rimozione di questo elemento. Riprova.”,”trips_error_general_default”:”Si u00E8 verificato un problema con questo Viaggio. Riprova.”,”social_loading_error_1″:”Si u00E8 verificato un errore.”,”soical_loading_error_2″:”Riprova.”,”mobile_try_again”:”Riprova”,”embedded_content_terms_and_conditions_label”:”termini e condizioni”,”embedded_content_third_party_notice”:”Questo contenuto u00E8 offerto da terzi ({hostName}). Visualizzando i contenuti esterni accetti i {termsUrl} di {hostName}.”,”embedded_content_show_content_label”:”Visualizza contenuto esterno”,”embedded_content_remember_choice_label”:”Ricorda la mia scelta”,”phoenix_maps_accessibility_toggle_list”:”Vedi l’elenco”,”rd_hd_viewMap”:”Guarda la mappa”,”phoenix_accessibility_list_label”:”Elenco”,”common_Map”:”Mappa”,”social_nowFollowing”:”Stai seguendo”,”social_nCount_followers2″:”{0, plural, one{# follower} other{# follower}}”,”m2_trips_detail_date_display”:”{0} u2022 {1}”,”see_all_results_for”:”Vedi tutti i risultati per “{query}””,”common_Hotels”:”Hotel”,”common_Restaurants”:”Ristoranti”,”common_Thingstodo”:”Cose da fare”,”common_Forums”:”Forum”,”plus_checkout_billing_info_field”:”Dati di fatturazione”,”plus_checkout_country_field”:”Paese”,”plus_checkout_select_country”:”Seleziona il paese”,”plus_checkout_address_1_field”:”Indirizzo riga 1″,”plus_checkout_error_state_address”:”Indirizzo non valido”,”plus_checkout_address_2_field”:”Indirizzo riga 2″,”plus_checkout_city_field”:”Cittu00E0″,”plus_checkout_error_state_city”:”Cittu00E0 non valida”,”plus_checkout_select_state_error”:”Seleziona lo stato”,”plus_checkout_state_field”:”Provincia”,”plus_checkout_select_state”:”Seleziona lo stato”,”plus_checkout_zip_code_field”:”CAP”,”plus_checkout_error_state_zip_code”:”CAP non valido”,”plus_checkout_add_card”:”Aggiungi questa carta al tuo account per velocizzare le prenotazioni”,”plus_checkout_cardholder_name_field”:”Titolare della carta”,”plus_checkout_error_state_cardholder_name”:”Inserisci un titolare della carta valido”,”plus_checkout_security_info”:”Questo modulo u00E8 crittografato e le tue informazioni sono sempre al sicuro.”,”plus_checkout_security_view_details”:”Vedi i dettagli”,”plus_checkout_security_tooltip”:”Questo modulo u00E8 protetto con crittografia SSL a 256 bit”,”plus_checkout_billing_address”:”Indirizzo di fatturazione:”,”plus_checkout_default_payment_method”:”Metodo di pagamento predefinito”,”plus_payment_type_pp”:”PayPal”,”plus_payment_type_cc”:”Carta di credito”,”plus_checkout_payment_details_heading”:”Dettagli del pagamento”,”plus_checkout_change_payment_method_cta”:”Cambia metodo di pagamento”,”ds_textarea_minimum_characters”:”{numCount}/{numLimit} caratteri min”,”ds_textarea_maximum_characters”:”{numCount}/{numLimit} caratteri max”,”text_input_show_password_icon”:”Mostra password”,”plus_checkout_cards_modal_ending_in”:”che termina con”,”plus_checkout_cards_modal_expires_space_date”:”Scadenza: {date}”,”tooltip_close”:”Chiudi suggerimento”,”plus_checkout_cards_modal_new_card”:”Aggiungi una nuova carta”,”plus_checkout_cards_modal_expires_colon_date”:”Scadenza: {date}”,”plus_checkout_cards_modal_new_provided_account”:”Aggiungi un nuovo account {sProviderName}”,”plus_checkout_cards_modal_your_stored_payment_methods”:”I tuoi metodi di pagamento archiviati”,”plus_checkout_cards_modal_name_on_card”:”Nome sulla carta”,”plus_checkout_cards_modal_expires”:”Scadenza”,”plus_checkout_cards_modal_select_payment_method”:”Seleziona un metodo di pagamento”,”plus_checkout_cards_modal_continue”:”Continua”,”common_Verygood_fffffabd”:”Molto buono”,”plus_checkout_promo_code_expired”:”Questo codice promozionale u00E8 scaduto”,”plus_checkout_promo_code_error”:”Si u00E8 verificato un errore. Riprova”,”plus_checkout_promo_code_unauthorized”:”Codice promozionale non autorizzato”,”plus_checkout_promo_code_used”:”Questo codice promozionale u00E8 stato utilizzato”,”plus_checkout_promo_code_invalid”:”Codice promozionale non valido”,”plus_checkout_promo_code_placeholder”:”Inserisci il codice promozionale”,”plus_checkout_promo_code_apply”:”Applica”,”plus_checkout_promo_code”:”Codice promozionale”,”plus_partner_discount_tooltip”:”Sconto {0}”,”plus_first_year_discount_title”:”Sconto sull’abbonamento per il primo anno”,”plus_first_year_discount_body”:”Questo sconto si applica soltanto al primo anno di abbonamento. Ti verru00E0 addebitato il costo pari a {originalPrice} per il rinnovo il prossimo anno.”,”plus_discount_expire_date”:”Questo sconto u00E8 valido fino al giorno {expireDate}.”,”plus_hotels_banner_sign_in_is”:”Accedi per vedere gli sconti sugli hotel con Tripadvisor Plus.”,”plus_hotels_banner_cta”:”Accedi ora”,”plus_hotels_banner_sign_in_vf”:”Accedi per vedere i rimborsi offerti sulle prenotazioni degli hotel con Tripadvisor Plus.”,”vr_cancellation_policy_nav”:”Modalitu00E0″,”overview_common”:”Panoramica”,”common_Reviews”:”Recensioni”,”vr_amenities_short_100b”:”Servizi”,”vr_detail_anchorAvailability_171f”:”Disponibilitu00E0″,”vr_detail_map_2015_map”:”Mappa”,”vr_detail_availability_viewFewer_fffffa80″:”Vedi meno mesi”,”vr_detail_availability_viewAll_fffffa80″:”Vedi tutti i mesi”,”common_day_sun_short”:”D”,”common_day_mon_short”:”L”,”common_day_tue_short”:”M”,”common_day_wed_short”:”M”,”common_day_thu_short”:”G”,”common_day_fri_short”:”V”,”common_day_sat_short”:”S”,”common_day_sun_abbr”:”dom”,”common_day_mon_abbr”:”lun”,”common_day_tue_abbr”:”mar”,”common_day_wed_abbr”:”mer”,”common_day_thu_abbr”:”gio”,”common_day_fri_abbr”:”ven”,”common_day_sat_abbr”:”sab”,”common_month_year1″:”Gennaio {0}”,”common_month_year2″:”Febbraio {0}”,”common_month_year3″:”Marzo {0}”,”common_month_year4″:”Aprile {0}”,”common_month_year5″:”Maggio {0}”,”common_month_year6″:”Giugno {0}”,”common_month_year7″:”Luglio {0}”,”common_month_year8″:”Agosto {0}”,”common_month_year9″:”Settembre {0}”,”common_month_year10″:”Ottobre {0}”,”common_month_year11″:”Novembre {0}”,”common_month_year12″:”Dicembre {0}”,”common_month_year”:”Mese Anno”,”vr_srp_persuasion_message_top”:”Aggiungi le date per vedere la disponibilitu00E0 e i prezzi esatti”,”vr_srp_clear_dates_datepicker”:”Cancella date”,”common_n_adults_declension”:”{0, plural, one{# adulto} other{# adulti}}”,”common_n_children_0_pl”:”{0, plural, one {1 bambino} other {{0} bambini}}”,”hac_guests_label_ffffdfce”:”Ospiti”,”common_n_guests_248_pl”:”{0, plural, one {1 ospite} other {# ospiti}}”,”plural_adults_da”:”adulti”,”common_children”:”Bambini”,”airm_apply”:”Applica”,”ftl_no_pets”:”Nessun animale”,”vr_common_n_dogs_declension”:”{0, plural, one{# cane} other{# cani}}”,”vr_common_cats_declension”:”{0, plural, one{# gatto} other{# gatti}}”,”vr_common_pets_label”:”Animali”,”vr_cats”:”Gatti”,”vr_dogs”:”Cani”,”vr_common_dogs_plural”:”cani”,”vr_common_cats_plural”:”gatti”,”vr_checkin_ffffdd04″:”Arrivo”,”vr_checkout_ffffdd04″:”Partenza”,”common_n_rooms_declension”:”{0, plural, one{# camera} other{# camere}}”,”ftl_adults_number”:”Ospiti: {0}”,”vacation_rental_bedrooms_criteria”:”Camere”,”plural_guests_da”:”ospiti”,”location_field_bathrooms”:”Bagni”,”common_Loading”:”Caricamento in corso…”,”trip_planner_clear”:”Cancella”,”vr_tip_send_message_14cd”:”Invia messaggio”,”vr_inquiry_missing_required_error_ffffdcba”:”Non hai compilato tutti i campi obbligatori”,”vr_please_refresh”:”Spiacenti, ma si u00E8 verificato un problema. Prova ad aggiornare la pagina.”,”vr_price_found_is_cheaper_than_others”:”Il prezzo trovato u00E8 piu00F9 basso del u003cspan>{0}%u003c/span> rispetto alle altre {1} camere nelle vicinanze.”,”vr_savings_alert_n_percent_cheaper”:”avviso di risparmio: {0}% in meno”,”vr_responsive_card_per_night”:”a notte”,”vr_responsive_card_per_week”:”a settimana”,”vr_payment_protection”:”Protezione del pagamento”,”ftl_peace_of_mind_book_hl_171f”:”Usa una carta di credito per prenotare usufruendo della nostra Protezione del pagamento.”,”airm_learnMore”:”Per saperne di piu00F9″,”vr_property_has_payment_protection”:”Questa struttura dispone della protezione del pagamento”,”vr_affiliate_logo”:”Logo di {sAffiliateName}”,”vr_fees_applied_ffffdcba_sl2″:”Potrebbero essere applicati costi aggiuntivi dal {0, select, 1 {gestore} other {proprietario}}”,”vr_rate_info_msg_undated_default_ffffeea6″:”Le tariffe possono variare in base alla stagione, alla durata del soggiorno e ad altri fattori. Potrebbero essere applicate spese aggiuntive. Per informazioni sul prezzo totale, contatta il proprietario/gestore.”,”vr_x_travelers”:”{nNumTravelers} viaggiatori”,”vr_viewed_property_last_week”:”hanno visualizzato questa struttura la settimana scorsa”,”vr_wire_transfer_warning_icon_info”:”Non ti chiederemo mai di pagare tramite bonifico o direttamente su un conto bancario di Tripadvisor. Se ciu00F2 avvenisse, non esitare a contattarci. Paga online tramite il portale sicuro di Tripadvisor e sarai coperto dalla nostra Protezione del pagamento.”,”vr_wire_transfer_info”:”Scopri di piu00F9 sui pagamenti sicuri.”,”vr_wire_transfer_warning”:”Non effettuare mai il pagamento della casa vacanza tramite bonifico.”,”ftl_inquire_for_rates”:”Richiedi le tariffe”,”ftl_make_inquiry”:”Invia richiesta”,”shopping_cart_instant_confirmation”:”Conferma immediata”,”vr_book_now”:”Prenota ora”,”vr_pdp_show_price_vrc6880″:”Mostra prezzo”,”vr_price_from_283″:”Da”,”vr_rate_periods_c35_pl”:”{0, select, 1 {notte} 2 {settimana} other {mese} other {}}”,”ftl_split_pay_available”:”Le date sono u003cspan class='{cssClasses}’>disponibili.u003cspan>”,”vr_owner_terms_apply”:”Si applicano i termini del proprietario”,”vr_why_total_estimate”:”Perchu00E9 il totale u00E8 una stima”,”vr_rate_info_msg_dated_detail_ffffeea6″:”Il costo totale per questa struttura potrebbe includere spese aggiuntive. Per informazioni sul prezzo complessivo, contatta il proprietario/gestore.”,”vr_rap_subtotal_27a_pl”:”Tariffa per {0} {0, plural, one {notte} other {notti}}”,”vr_fees_tax_81f”:”Tassa”,”ftl_deposit”:”Acconto”,”vr_owner_fees_ffffdcba”:”Tariffe del proprietario”,”vr_estimated_total”:”Totale stimato”,”ftl_split_pay_reserve”:”Paga un acconto di”,”ftl_subtotal”:”Subtotale”,”vr_detail_rate2_171f_pl”:”{0}{1, select, 1 { a notte} 2 { a settimana} 3 { al mese} other {}}”,”vr_pdp_nightly_period_lower”:”{numNights, plural, one{# notte} other{# notti}}”,”vr_call_manager_owner_pl”:”Chiama il{0, select, 1 {gestore} 2 {proprietario} 3 {proprietario} other {gestore}}”,”ftl_quote_rates_title_14cd”:”Preventivo”,”vr_studio_room”:”monolocale”,”vr_mobile_plural_bedrooms”:”{0, plural, one{# camera} other{# camere}}”,”vr_mobile_plural_baths”:”{0, plural, one{# bagno} other{# bagni}}”,”vr_detail_sleeps_171f”:”{0} posti letto”,”vr_send_a_message_to”:”Invia un messaggio a {managerName}”,”vr_pm_languages_ffffdcba”:”Lingue parlate:”,”vr_inquiry_name_input_tip_c35″:”Includi nome e cognome”,”vr_inquiry_email_input_tip”:”Inserisci un indirizzo email valido”,”vr_inquiry_phone_input_tip_c35″:”Inserisci un numero di telefono valido”,”please_include_message_to_owner”:”Includi un messaggio per il proprietario”,”vr_check_in_too_soon”:”La data del check-in u00E8 troppo vicina, perciu00F2 non possiamo effettuare questa prenotazione online. Modifica la data del check-in.”,”vr_inquiry_form_your_email”:”Indirizzo email”,”vr_full_page_inquiry_name_ffffeea6″:”Nome”,”vr_full_page_inquiry_phone_ffffeea6″:”Numero di telefono”,”vr_booking_form_sms_optin_gdpr”:”Ricevi SMS sulla tua richiesta di informazioni, sulla prenotazione e sulle offerte per le migliori attrazioni vicine alla tua casa vacanza. Puoi annullare l’iscrizione in qualsiasi momento.”,”vr_gdpr_inquiry_form_email_optin”:”Ricevi email sugli alloggi e altre offerte da Tripadvisor. Puoi annullare l’iscrizione in qualsiasi momento.”,”vr_full_page_inquiry_message_ffffeea6″:”Il tuo messaggio”,”ftl_ask_about_pets”:”Chiedi se la struttura u00E8 adatta per gli animali”,”ftl_pets_allowed”:”Sono ammessi animali domestici”,”ftl_pets_not_allowed”:”Animali non ammessi”,”ftl_ask_about_kids”:”Chiedi se la struttura u00E8 adatta per i bambini”,”ftl_kid_friendly”:”Adatto ai bambini”,”ftl_not_kid_friendly”:”Non adatto ai bambini”,”vr_nights_min_stay_plural”:”Soggiorno minimo di {0, plural, one{# notte} other{# notti}}”,”vr_inquiry_privacy_and_terms_new_tab”:”Inviando questo messaggio, accetti i nostri u003ca class=”termsLink” target=”_blank” href=”{termsLink}”>Termini d’utilizzou003c/a> e la nostra u003ca class=”privacyLink” target=”_blank” href=”{privacyLink}”>Normativa sulla privacyu003c/a>”,”vr_inquiry_message_sent”:”Il tuo messaggio u00E8 stato inviato.”,”vr_bookings_are_first_come_first_served”:”Per le prenotazioni… chi prima arriva, meglio alloggia!”,”vr_send_booking_request_urgency”:”Invia una richiesta di prenotazione per aumentare le possibilitu00E0 di ottenere questo profilo.”,”vr_inquiry_no_thanks_171f”:”no, grazie”,”vr_view_in_rental_inbox”:”Vedi nella casella di posta per le case vacanza”,”vr_inquire_on_few_more_rentals”:”Invia una richiesta per qualche altra casa vacanza”,”vr_travelers_who_send_four_inquiries”:”Di solito i viaggiatori che inviano almeno quattro richieste trovano la soluzione migliore per il loro viaggio.”,”vr_see_similar_rentals_in_geo”:”Vedi case vacanza simili a {0}”,”vr_see_similar_rentals”:”Vedi case vacanza simili”,”VRInquireSorry_171f”:”Siamo spiacenti.”,”VRInquireTechnical_171f”:”Non abbiamo ancora inviato la tua richiesta di informazioni a causa di un problema tecnico.”,”VRInquireAlerted_171f”:”Siamo stati informati del problema, tuttavia ti suggeriamo alcuni piccoli accorgimenti:”,”VRInquireTryRefreshHint_ffffe9f1″:”Prova ad aggiornare la pagina e a inviare di nuovo la richiesta.”,”VRInquireSupport_v2_ffffe9f1″:”u003cdiv class=”tipHead”>Se questo non funziona, notificaci il problema.u003c/div> Effettua la segnalazione utilizzando il nostro u003ca href=”{0}” rel=”nofollow”>modulo per l’assistenzau003c/a>”,”VRInquireAgain_171f”:”Ci scusiamo ancora per eventuali inconvenienti.”,”fallback_ad_reco_headline”:”Tutto pianificato da noi.”,”fallback_ad_reco_subheading”:”Ricordi unici, solo tuoi.”,”fallback_ad_cta_1″:”Scopri di piu00F9″,”fallback_ad_trips_headline”:”Vedi qualcosa che ti piace? Fai clic sul cuore per salvarlo”,”fallback_ad_trips_subheading”:”E vedi tutte le idee di viaggio salvate su una mappa”,”fallback_ad_cta_3″:”Inizia subito”,”fallback_ad_tc_hotels_headline”:”Il tuo prossimo viaggio comincia qui”,”fallback_ad_tc_hotels_subheading”:”Gli hotel piu00F9 votati che si sono aggiudicati il titolo di Best of the Best.”,”fallback_ad_cta_4″:”Vedi la lista”,”fallback_ad_tc_beaches_headline”:”Cieli blu all’orizzonte”,”fallback_ad_tc_beaches_subheading”:”Scegli queste spiagge Best of the Best per la tua prossima grande vacanza.”,”fallback_ad_phx_headline”:”u00C8 ora di farvi un viaggetto.”,”fallback_ad_cta_2″:”Scarica l’app”,”fallback_ad_phx_subheading”:”Pianifica la tua meritata vacanza con la nostra app.”,”fallback_ad_helpcenter_headline”:”Trova le risposte a tutte le tue domande su Tripadvisor”,”fallback_ad_helpcenter_subheading”:”Visita subito il Centro Assistenza”,”fallback_ad_tc_experiences_headline”:”Preparati a partire”,”fallback_ad_tc_experiences_subheading”:”Tour, attrazioni e attivitu00E0 Best of the Best da non perdere.”,”reg_error_reload”:”Siamo spiacenti, si u00E8 verificato un errore con l’accesso al tuo account. Aggiorna la pagina e riprova.”,”geetest_slide_to_verify”:”Scorri per verificare”,”captcha_50f”:”Verifica:”,”vr_detail_carNotNeeded_171f”:”Automobile non necessaria”,”vr_detail_carAdvised_171f”:”Automobile consigliata”,”vr_detail_carRecommended_171f”:”Automobile consigliata”,”vr_detail_access_171f”:”Accesso”,”vr_detail_howto_171f”:”Come arrivarci”,”vr_detail_airport_171f”:”Aeroporto:”,”vr_detail_railway_171f”:”Ferrovia:”,”vr_detail_ferry_171f”:”Traghetto:”,”vr_detail_activities_171f”:”Attivitu00E0 nelle vicinanze”,”vr_detail_sectionNearby_171f”:”Cittu00E0 nelle vicinanze”,”vr_about_the_neighborhood”:”Informazioni sul quartiere”,”vr_getting_around”:”Come muoversi”,”vr_location_description_81f”:”Ulteriori informazioni sulla localitu00E0″,”tavrs_common_view_less”:”Mostra meno”,”VR_quick_view_more_ffffeea6″:”Altro”,”vr_similar_rentals”:”case vacanza simili”,”vr_list_it_title_283″:”Sei proprietario di una casa vacanza? Pubblica un’inserzione”,”pdp_redesign_2015_extra_income”:”Reddito extra”,”pdp_redesign_2015_extra_income_content”:”Guadagna affittando la tua casa. Senza spese iniziali e nessun contratto, puoi guadagnare di piu00F9.”,”pdp_redesign_2015_easy_to_manage”:”Facile da gestire”,”pdp_redesign_2015_easy_to_manage_content”:”Conferma le prenotazioni con un clic e monitora l’intero processo dalla richiesta di informazioni al check-out, anche quando sei in movimento.”,”pdp_redesign_2015_trusted_by_travelers”:”I viaggiatori si fidano”,”pdp_redesign_2015_trusted_by_travelers_content”:”Con milioni di recensioni e pagamenti online protetti, Tripadvisor aiuta i viaggiatori a prenotare la tua struttura in tutta sicurezza.”,”vr_setup_listing_283″:”Crea il tuo profilo gratuito”,”vr_similar_more_171f”:”Altre destinazioni – {0}”,”vr_pom_payment_protection”:”Protezione del pagamento”,”vr_pom_payment_guarantee”:”Paga questa casa su Tripadvisor per ricevere la nostra esclusiva Protezione del pagamento. Solo cosu00EC potrai usufruirne.”,”vr_title_listing_by_ffffdcba_v1″:”Profilo {0}”,”ftl_property_available”:”Come faccio a sapere se la struttura u00E8 disponibile?”,”ftl_faq_contact_owner_c35″:”Come faccio a contattare il proprietario?”,”ftl_how_contact”:”Come verru00F2 contattato dal proprietario?”,”ftl_hear_back”:”Cosa fare se il proprietario non risponde?”,”ftl_pay”:”Come si effettua il pagamento?”,”ftl_insured”:”Il pagamento u00E8 coperto da assicurazione?”,”vr_property_availability_check_216b”:”Per prima cosa, controlla la scheda Disponibilitu00E0 in questa pagina per verificare se le date desiderate sono disponibili. Se lo sono, contatta il proprietario tramite la casella di posta per le case vacanza di Tripadvisor per confermare la disponibilitu00E0.”,”vr_faq_contact_owner_answer_216b”:”Se il proprietario ha fornito i contatti, puoi contattarlo direttamente. In caso contrario, u00E8 il proprietario a decidere se rispondere.”,”vr_faq_contact_owner_answer2_216b”:”Initially, you may contact the owner via the Tripadvisor Rental Inbox. This inbox is created after you send your first message or booking request to the owner. After you’ve made your first payment, you’ll be able to see the owner’s contact information.”,”vr_faq_contact_answer_216b”:”Il proprietario potrebbe contattarti telefonicamente o al tuo indirizzo e-mail personale.”,”vr_faq_contact_answer2_216b”:”This owner will contact you via the Tripadvisor Rental Inbox.”,”vr_faq_hear_back_answer_216b”:”Se hai contattato il proprietario ma non hai ricevuto risposta, Tripadvisor ti consiglia di inviare richieste ad altre strutture.”,”vr_faq_hear_back_answer2_216b”:”You can send another message via the Tripadvisor Rental Inbox to ask if the property is still available.”,”vr_faq_pay_answer1_216b”:”If the owner approves your stay, he or she will let you know which forms of payment are accepted.”,”vr_faq_pay_answer2_216b”:”This owner does not currently accept payments via the Tripadvisor inbox.”,”vr_faq_pay_answer3_216b”:”For this property, please use a credit card to pay via the Tripadvisor Rental Inbox. Once the owner approves your stay, he or she will send you a quote, which will include payment instructions.”,”vr_faq_insured_answer1_216b”:”Yes. Payments made via the Tripadvisor inbox are covered by our Payment Protection.”,”vr_faq_contact_owner_answer3_216b”:”If the owner has provided contact information, you may contact him or her directly. If not, you can contact the owner via the Tripadvisor Rental Inbox. This inbox is created after you send your first message or booking request to the owner”,”vr_faq_contact_answer_3_216b”:”This owner may contact you via the Tripadvisor Rental Inbox, your personal email, or phone.”,”vr_faq_hear_back_answer3_216b”:”You can send another message via the Tripadvisor Rental Inbox to check if the property is still available. If the owner has listed a phone number, you can also call to follow up. If you still don’t hear from the owner, Tripadvisor recommends that you send inquiries to other properties.”,”vr_faq_hear_back_answer4_216b”:”You can send another message via the Tripadvisor Rental Inbox to check if the property is still available. If the owner has listed a phone number, you can also call to follow up. send inquiries to other properties.”,”vr_faq_hear_back_answer5_216b”:”If you still don’t hear from the owner, Tripadvisor recommends that you send inquiries to other properties.”,”vr_faq_pay_answer4_216b”:”For this property, you may use a credit card to pay via the Tripadvisor Rental Inbox; the owner may also offer other payment options. “,”vr_faq_pay_answer5_216b”:”You must pay via the Tripadvisor Rental Inbox if you want to be covered by our Payment Protection. Once the owner approves your stay, he or she will send you a quote, which will include payment instructions.”,”vr_faq_pay_answer6_216b”:”Se il proprietario conferma il soggiorno, ti contatteru00E0 per rendere noti i metodi di pagamento accettati. Al momento questo proprietario non accetta pagamenti tramite la casella di posta di Tripadvisor. Puoi chiedergli di registrarsi. I pagamenti effettuati tramite la casella di posta per le case vacanza di Tripadvisor sono coperti dalla nostra Protezione del pagamento.”,”vr_faq_pay_answer7_216b”:”If the owner approves your stay, he or she will let you know which forms of payment are accepted. “,”vr_faq_pay_answer8_216b”:”This owner does not currently accept payments via the Tripadvisor inbox.”,”vr_faq_insured_answer2_216b”:”If you pay online via the Tripadvisor Rental Inbox, your payment will be covered by our Payment Protection.”,”vr_faq_insured_answer3_216b”:”If you would like payment protection, ask the owner to sign up to accept online payments on Tripadvisor. Payments made via the Tripadvisor Rental Inbox are covered by our Payment Protection.”,”ftl_view_prop_faqs_ffffddea”:”Visualizza tutte le FAQ sulle strutture”,”vr_detail_additionalAmenities_171f”:”Info su servizi e caratteristiche aggiuntivi”,”vr_see_less_amenities”:”Mostra meno servizi”,”vr_see_more_amenities”:”Vedi altri servizi”,”engage_question_thanks_short”:”Grazie per l’aiuto.”,”engage_share_another_experience”:”Condividi un’altra esperienza prima di partire.”,”common_Yes”:”Su00EC”,”common_No”:”No”,”mobile_tagsbutton_unsure”:”Non so”,”vr_cancellation_policy_refund_percent_and_date”:”Rimborso ({nNumber}%)* in caso di cancellazione {withDate, select, 1 {entro il giorno {sDate}} other {almeno {nWeeks} settimane prima del check-in}}”,”vr_cancellation_policy_dates_passed”:”Nessun rimborso disponibile per le date di viaggio selezionate”,”vr_cancellation_policy_no_refund_thereafter”:”Nessun rimborso disponibile per le cancellazioni successive”,”vr_cancellation_policy_no_refund_at_all”:”Rimborso del 100% in caso di cancellazione entro 24 ore dalla prenotazione”,”vr_cancellation_policy_full_refund_dateless_v2″:”Rimborso del 100% entro 24 ore dopo la prenotazione (a condizione che il soggiorno sia previsto almeno 60 giorni dopo).”,”vr_cancellation_policy_no_refund_for_confirmed_booking”:”Nessun rimborso disponibile una volta confermata la prenotazione”,”vr_cancellation_policy_dates_suggestion”:”u003cspan id=”{0}” class=”{1}”>Inserisci le date di viaggiou003c/span> per vedere la modalitu00E0 di cancellazione esatta.”,”vr_cancellation_policy_refund_bk_fee_note”:”*Le spese di prenotazione sono escluse dall’importo del rimborso”,”vr_cancellation_policy_section”:”Modalitu00E0 di cancellazione”,”ftl_section_title_faq”:”Informazioni su questa struttura”,”vr_find_what_you_looking_for_c35″:”Non hai trovato quello che cercavi?”,”attraction_poi_tours_and_tickets_shelf”:”Tour e biglietti per {pointOfInterest} “,”attractions_near_saved”:”Attrazioni vicino a {0}”,”faq_about_header”:”Domande frequenti su {sName}”,”vr_ask_81f”:”Chiedi”,”vacation_rental_pets_allowed”:”Animali ammessi: {0}”,”vacation_rental_smoking_allowed”:”Spazi riservati a fumatori: {0}”,”vacation_rental_kid_friendly”:”Adatta ai bambini: {0}”,”maps_zoom_in”:”Ingrandisci”,”maps_zoom_out”:”Riduci”,”vr_srp_total_price_lower”:”prezzo totale”,”vr_responsive_srp_per_night_lower”:”{numNights, plural, one{# notte} other{# notti}}”,”airm_airm_loadingDotDotDot”:”Caricamento in corsou2026″,”nsp.legacyLoginForm.errorAlert”:”Errore!”,”read_full_review”:”Leggi tutta la recensione”,”vr_tablet_about_this_property_283″:”Informazioni su questa struttura”,”more_link”:”Piu00F9″,”03_Stay_05_AmenitiesTitle”:”Servizi”,”common_Most_recent_reviews_1bd8″:”Le recensioni piu00F9 recenti”,”mc_see_all_reviews”:”Vedete tutte le recensioni”,”CertExcellence_ffffdc53″:”Certificato di Eccellenza”,”vr_ftl_pom_protection_fffff6a4″:”Protezione del pagamento”,”vr_srp_match”:”Corrisponde a:”,”vr_srp_card_rental_category”:”{rentalCategory} a {listOfNeighborhoods}”,”vr_just_booked_v3″:”Appena prenotata!”,”vr_no_longer_available”:”Questa struttura non u00E8 piu00F9 disponibile nelle tue date”,”vr_srp_bedrooms_plural”:”{numBedrooms, plural, one{# camera} other{# camere}}”,”vr_srp_bathrooms_plural”:”{numBathrooms, plural, one{# bagno} other{# bagni}}”,”vr_srp_sleeps”:”{numGuests} posti letto”,”vr_srp_mobile_beds_plural”:”{numBeds, plural, one{# camera} other{# camere}}”,”vr_srp_mobile_baths_plural”:”{numBaths, plural, one{# bagno} other{# bagni}}”,”vr_srp_sleeps_lower”:”{numGuests} posti letto”,”attractions_more_info_inline”:”Ulteriori informazioni”,”show_prices_29d”:”Mostra prezzi”,”vr_aria_previous_photo”:”Foto precedente”,”vr_aria_next_photo”:”Foto successiva”,”vr_img_carousel_alt_text”:”{rentalName}, casa vacanza a {geoName}”,”common_Read_more”:”Scopri di piu00F9″,”common_Readless”:”Mostra meno”,”p13n_category_carousel_numbers”:”{0} di {1}”,”Travelers_Choice_Botb_POI_1″:”Cos’u00E8 il premio Travellers’ Choice Best of the Best?”,”what_is_travelers_choice”:”Cos’u00E8 Travellers’ Choice?”,”Travelers_Choice_Botb_POI_2″:”Questo premio u00E8 il nostro maggiore riconoscimento e viene conferito annualmente alle strutture nominate Best of the Best su Tripadvisor, ovvero quelle che ottengono recensioni eccellenti dai viaggiatori e si classificano nell’1% delle migliori strutture di tutto il mondo.”,”tc_popup_text”:”Questo premio rappresenta il nostro maggiore riconoscimento e viene conferito annualmente all’1% delle strutture meglio classificate in diverse categorie.”,”Travelers_Choice_Botb_POI_3″:”Scopri di piu00F9″,”tch_booking_button_learn_more”:”Scopri di piu00F9″,”translation_powered_by_img_provider_v2″:”Traduzione fornita da u003cimg src=”{imgUri}” alt=”{providerName}”>”,”mtprovider_attribution_microsoft”:”Tecnologia u003cb>Microsoftu003csup>®u003c/sup> Translatoru003c/b>”,”vr_pdp_king_bed_plural”:”{0, plural, one{# letto King} other{# letti King}}”,”vr_pdp_queen_bed_plural”:”{0, plural, one{# letto Queen} other{# letti Queen}}”,”vr_pdp_full_bed_plural”:”{0, plural, one{# letto matrimoniale} other{# letti matrimoniali}}”,”vr_pdp_sofa_plural”:”{0, plural, one{# divano} other{# divani}}”,”vr_pdp_bunk_bed_plural”:”{0, plural, one{# letto a castello} other{# letti a castello}}”,”vr_pdp_twin_bed_plural”:”{0, plural, one{# letto separato} other{# letti separati}}”,”vr_pdp_crib_bed_plural”:”{0, plural, one{# culla} other {# culle}}”,”vr_pdp_unknown_bed_plural”:”{0, plural, one{# sconosciuto} other{# sconosciuti}}”,”vr_pdp_full_bath_pl”:”{0, select, 0 {} other {{0, plural, one {1 bagno completo} other {{0} bagni completi}}}}”,”vr_pdp_half_bath_pl”:”{0, select, 0 {} other {{0, plural, one {1 bagno di servizio} other {{0} bagni di servizio}}}}”,”vr_pdp_shower_bath_pl”:”{0, select, 0 {} other {{0, plural, one {1 doccia} other {{0} docce}}}}”,”vr_pdp_attached_bath”:”{0} collegato (in camera)”,”vr_pdp_unknown_bathroom_pl”:”{0, select, 0 {} other {{0, plural, one {1 tipo sconosciuto} other {{0} tipi sconosciuti}}}}”,”vr_mobile_plural_min_nights_2″:”{0, plural, one{# notte (minimo)} other{# notti (minimo)}}”,”vr_rental_minimum_stay_varies”:”Il soggiorno minimo puu00F2 variare”,”vr_description_less”:”Meno”,”vr_description_more”:”Piu00F9″,”vr_mobile_plural_guests”:”{0, plural, one{# ospite} other{# ospiti}}”,”link_share_share”:”Condividi”,”ftl_mobile_house_rules_14cd”:”Regole”,”vacation_rental_bathrooms_criteria”:”Bagni”,”vr_show_less”:”Mostra meno”,”vr_show_more”:”Mostra di piu00F9″,”vr_owner_response_rate_responsive_pdp”:”Tasso di risposta:”,”vr_owner_response_time_responsive_pdp”:”Tempo di risposta:”,”see_more_properties”:”Vedi altre strutture”,”vr_owner_listed_since_responsive_pdp”:”Iscritto dal”,”vr_pdp_owner_contact_inquiry”:”Domande?”,”vr_interaction_with_guests”:”Interazione con gli ospiti”,”vacation_rental_more”:”mostra altro”,”vacation_rental_less”:”mostra meno”,”vr_about_the_owner_pl”:”Informazioni sul {0, select, 1 {gestore} 2 {proprietario} 3 {proprietario} other {gestore}}”,”vr_surface_business_host_details_business_tooltip_title”:”Questa struttura u00E8 offerta da una societu00E0″,”vr_surface_business_host_details_consumer_tooltip_title_v2″:”Questa struttura u00E8 offerta da un proprietario privato (individuo)”,”tavrs_web_business_name”:”Nome della societu00E0″,”tavrs_web_business_email”:”Email aziendale”,”tavrs_web_business_address”:”Indirizzo aziendale”,”tavrs_web_business_telephone”:”Numero di telefono aziendale”,”tavrs_web_other_business_information”:”Altre informazioni aziendali”,”vr_surface_business_host_details_tooltip_business_intro”:”Ecco i dettagli forniti dal proprietario della struttura.”,”vr_pdp_owner_details_not_available”:”Non disponibile”,”vr_surface_business_host_details_tooltip_consumer_content_v2″:”Questa struttura u00E8 offerta da un proprietario privato (individuo) e non da una societu00E0. Le prenotazioni della struttura potrebbero non essere coperte dalle leggi in materia di tutela dei consumatori dell’Unione Europea o del Regno Unito. Tuttavia, le societu00E0 di Tripadvisor Rentals offriranno lo stesso servizio clienti previsto per qualsiasi altro alloggio.”,”social_Saved”:”Salvato”,”trips_save_CTA”:”Salva”,”vr_pdp_sign_in_message”:”Vuoi avvisi esclusivi sulle offerte, promemoria di prenotazione e pagamenti piu00F9 rapidi?”,”vr_pdp_sign_in_message_link”:”Accedi ora”,”vr_pdp_photo_carousel_all_photos”:”Tutte le foto ({photo_count})”,”vr_pdp_photo_carousel_showing_total_photos”:”Mostra {photo_count} foto”,”vr_pdp_photo_carousel_modal_end_of_the_page_message”:”Sei arrivato alla fine della galleria.”,”vr_pdp_photo_carousel_all_photo_count”:”Tutte ({photo_count})”,”carousel_progress_numbers”:”{photos}/{totalPhotos}”,”full_view”:”Vista completa”,”all_photos_parens”:”Tutte le foto ({nCount})”,”mv_photos_from_everyone”:”tutti”,”mv_photos_from_travelers”:”viaggiatori”,”mv_photos_from_professionals”:”professionisti”,”mv_photos_from_management”:”direzione”,”omnibus_we_perform_checks”:”Controlliamo le recensioni”,”omnibus_disclaimer_title”:”L’approccio di Tripadvisor alle recensioni”,”omnibus_review_disclaimer_vr”:”u003cdiv class=”{lineClass}”>Prima della pubblicazione, ogni recensione di Tripadvisor viene esaminata dal sistema di monitoraggio automatico che raccoglie informazioni rispondendo alle seguenti domande: come, cosa, dove e quando. Se il sistema rileva un elemento che potrebbe essere in contrasto con il u003ca href=”{link}”>regolamento della communityu003c/a>, la recensione non viene pubblicata.u003c/div>nu003cdiv class=”{lineClass}”>Se il sistema rileva un problema, la recensione viene rifiutata automaticamente, inviata al recensore per la conferma o esaminata manualmente dal team di esperti di contenuti, al lavoro 24 ore su 24, 7 giorni su 7, per mantenere la qualitu00E0 delle recensioni sul nostro sito.u003c/div>nu003cdiv class=”{lineClass}”>Il nostro team verifica ogni recensione pubblicata sul sito segnalata dalla community per mancata conformitu00E0 al u003ca href=”{link}”>regolamento della communityu003c/a>.u003c/div>nu003cdiv class=”{lineClass}”>Se hai inviato una recensione per una casa vacanza, Tripadvisor si riserva di chiedere una prova del soggiorno per assicurare che la recensione sia associata alla struttura corretta.u003c/div>nu003cdiv class=”{lineClass}”>Le recensioni delle case vacanza raccolte tramite VRBO (ex Homeaway) e trasmesse sul sito di Tripadvisor non sono attualmente soggette alle procedure di moderazione standard di Tripadvisor.u003c/div>nu003cdiv class=”{lineClass}”>u003ca href=”{link}”>Scopri di piu00F9u003c/a> sulla moderazione delle recensioni.u003c/div>”,”omnibus_review_disclaimer”:”u003cdiv class=”{lineClass}”>Prima della pubblicazione, ogni recensione di Tripadvisor viene esaminata dal sistema di monitoraggio automatico che raccoglie informazioni rispondendo alle seguenti domande: come, cosa, dove e quando. Se il sistema rileva un elemento che potrebbe essere in contrasto con il u003ca href=”{link}”>regolamento della communityu003c/a>, la recensione non viene pubblicata.u003c/div>nu003cdiv class=”{lineClass}”>Se il sistema rileva un problema, la recensione viene rifiutata automaticamente, inviata al recensore per la conferma o esaminata manualmente dal team di esperti di contenuti, al lavoro 24 ore su 24, 7 giorni su 7, per mantenere la qualitu00E0 delle recensioni sul nostro sito.u003c/div>nu003cdiv class=”{lineClass}”>Il nostro team verifica ogni recensione pubblicata sul sito segnalata dalla community per mancata conformitu00E0 al u003ca href=”{link}”>regolamento della communityu003c/a>.u003c/div>nu003cdiv class=”{lineClass}”>u003ca href=”{link}”>Scopri di piu00F9u003c/a> sulla moderazione delle recensioni.u003c/div>”,”onetap_message_unlock”:”Scopri il meglio di Tripadvisor”,”onetap_subhead_signin_alerts_deals”:”Accedi per ricevere offerte e avvisi sui prezzi”,”terms_and_policy_links”:”Continuando, accetti i nostri u003ca rel=”nofollow” class=”{2}” target=”_blank” href=”{0}”>Termini di utilizzou003c/a> e confermi di aver letto la nostra u003ca rel=”nofollow” class=”{2}” target=”_blank” href=”{1}”>Normativa sulla privacyu003c/a>.”,”I_live_in”:”Vivo a…”,”home_location_things_near_you”:”Dicci dove vivi per ricevere grandi idee su attivitu00E0 vicine a te.”,”mobile_no_results_found_8e0″:”Nessun risultato trovato”,”post_video_typeahead_placeholder_text_search”:”Cerca”,”post_video_location_typeahead_add_location”:”Aggiungi un’altro luogo”,”dual_search_worldwide”:”In tutto il mondo”,”home_rentals_vacation”:”Affitta una casa per la tua prossima vacanza”},”features”:{“rubicon_header_bidding”:true,”vr_seo_machine_translated_markup_detail_page”:true,”vr_show_home_away_branding”:true,”vr_home_away_phase_1″:true,”seo_image_carousel_vr_test”:false,”facebook_onetap_mobile”:false,”facebook_onetap_desktop”:true,”hr_defer_facebook_sdk”:false,”h_defer_facebook_sdk”:false,”mobile_web”:false,”home_location_prompt_master”:true,”disable_reg_dialog_for_hardgate”:false},”urqlCache”:{“489002805”:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”sticky_horizon_restaurants_1656466249″,”bucket”:null}]}]}”},”1001551604″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”show_sign_in_on_mw_global_nav_1651502963″,”bucket”:”test”}]}]}”},”1175266553″:{“data”:”{“RentalInformation_getDetailRentals”:[{“averageRatingNumber”:-1,”bathCount”:2,”cancellationPolicy”:”SUPER_STRICT”,”isInstantBook”:false,”detailFields”:{“businessInfo”:{“isFreeToList”:true,”isSubscribeToList”:true,”questionAndAnswerListType”:”FTL_LIST_TYPE”,”subscriptionType”:”COMMISSION”,”tipType”:”TIP”},”descriptions”:[{“key”:”NAME”,”lang”:null,”machineTranslated”:true,”machineTranslatedSourceLang”:null,”status”:”MACHINE_GOOGLE”,”text”:”camera verde in villa completamente attrezzata con vasca idromassaggio”},{“key”:”OVERVIEW”,”lang”:null,”machineTranslated”:true,”machineTranslatedSourceLang”:null,”status”:”MACHINE_GOOGLE”,”text”:”camera verde in villa con piano terra comune con tre camere da letto, due bagni, un bagno con lavatrice e servizi igienici al piano terra ingresso con flipper, soggiorno, cucina completamente u00E9puiqpu00E9e, sala da pranzo tetto in vetro con vista giardino e vasca idromassaggio , al piano superiore tre camere condividono la doccia e bagno con wc, vicino a tutti i servizi a 10 km da Lisbona e Sintra 5, un parcheggio in loco”}],”carRequired”:”UNKNOWN”,”inquiryMetadata”:{“canReceiveInquiries”:true,”rateComment”:null,”requiresPetInput”:false},”legacyData”:{“baseDailyRate”:{“amount”:70.55388000071486,”currency”:”USD”},”bedroomInfo”:”1 letto matrimoniale”,”bathroomInfo”:”1 bagno completo, 1 doccia”,”rentalTypeLocalized”:{“localizedString”:”Casa vacanza”},”rentalSubtypeLocalized”:{“localizedString”:”Casa vacanza”}},”locationAlert”:null,”mapData”:{“isExactMap”:true},”features”:[{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_all_pets_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”NO”},{“count”:0,”localizedDescription”:{“localizedString”:”Balcone”},”distance”:null,”featureCode”:”amn_balcony”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Griglia”},”distance”:null,”featureCode”:”amn_bbq”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_car_required”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”UNKNOWN”},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_children”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”YES”},{“count”:1,”localizedDescription”:{“localizedString”:”Letti matrimoniali ({0})”},”distance”:null,”featureCode”:”amn_double_bed”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_elderly_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”YES”},{“count”:1,”localizedDescription”:{“localizedString”:”Bagni completi ({0})”},”distance”:null,”featureCode”:”amn_family_bathroom”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Frigorifero”},”distance”:null,”featureCode”:”amn_fridge”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Sala giochi”},”distance”:null,”featureCode”:”amn_gamesroom”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Accesso a Internet”},”distance”:null,”featureCode”:”amn_internet_access”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Ferro da stiro”},”distance”:null,”featureCode”:”amn_iron”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Vasca con Jacuzzi”},”distance”:null,”featureCode”:”amn_jacuzzi”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Bollitore”},”distance”:null,”featureCode”:”amn_kettle”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Biancheria da letto inclusa”},”distance”:null,”featureCode”:”amn_linens_provided”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Forno a microonde”},”distance”:null,”featureCode”:”amn_mircowave”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Parcheggio”},”distance”:null,”featureCode”:”amn_parking”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Cortile privato”},”distance”:null,”featureCode”:”amn_private_yard”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”TV satellitare/via cavo”},”distance”:null,”featureCode”:”amn_satellite_tv”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:1,”localizedDescription”:{“localizedString”:”Cabine doccia ({0})”},”distance”:null,”featureCode”:”amn_shower_room”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_smoking_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”NO”},{“count”:0,”localizedDescription”:{“localizedString”:”Impianto stereo”},”distance”:null,”featureCode”:”amn_stereo”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Stufa”},”distance”:null,”featureCode”:”amn_stove”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Terrazza”},”distance”:null,”featureCode”:”amn_terrace”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Biancheria da bagno inclusa”},”distance”:null,”featureCode”:”amn_towels_provided”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”TV”},”distance”:null,”featureCode”:”amn_tv”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Lavatrice”},”distance”:null,”featureCode”:”amn_washing_machine”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_wheelchair_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”NO”},{“count”:0,”localizedDescription”:{“localizedString”:”Wi-Fi”},”distance”:null,”featureCode”:”amn_wifi”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Campo da golf raggiungibile in auto in 30 minuti”},”distance”:null,”featureCode”:”area_golf_far”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Ippodromo nelle vicinanze”},”distance”:null,”featureCode”:”area_horse_riding_nearby”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:2,”localizedDescription”:{“localizedString”:”N. di bagni”},”distance”:null,”featureCode”:”dsc_bathrooms”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:1,”localizedDescription”:{“localizedString”:”N. di camere da letto”},”distance”:null,”featureCode”:”dsc_bedrooms”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:2,”localizedDescription”:{“localizedString”:”Numero di ospiti”},”distance”:null,”featureCode”:”dsc_sleeps_max”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null}],”supplierData”:{“affiliateLogoUrl”:null,”externalId”:null,”formattedSourceID”:”#HL2228749989″,”isPartnerSupplier”:null,”propertyManagerData”:{“isBusiness”:true,”contactManagerUrl”:null,”establishedDate”:”2016-05-24″,”id”:783948,”isRbo”:true,”listingLink”:”https://rentals.tripadvisor.com/register?utm_source=13091&utm_medium=web&utm_campaign=talist”,”localizedLanguagesString”:”inglese”,”localizedResponseTime”:{“localizedString”:”Entro un giorno”},”managerType”:null,”managerTypeValue”:3,”name”:”Ana Paula D”,”obfuscatedLanderUrl”:”Zm9vXy9SZW50YWxQcm9wZXJ0eU1hbmFnZXItYV9tYW5hZ2VyLjc4Mzk0OF9iYXI=”,”phoneNumber”:null,”photoUrl”:null,”rawPhoneNumber”:null,”respondedPercentage”:14,”responseTime”:19,”shouldShowPhoneNumber”:null},”providerOrdinal”:null,”shouldOverridePartnerImageAltText”:null,”supplierLogoSourceURL”:”/img2/vacationrentals/brand_refresh/HL_Supplier_Logo_2021.png”,”termsAndConditionsUrl”:null,”vrAffiliateSourceID”:”HL”,”vrSourceID”:”HL”}},”geoCoordinates”:{“lat”:38.773388,”lng”:-9.312224},”id”:12401463,”name”:”camera verde in villa completamente attrezzata con vasca idromassaggio”,”nearbyGeosInfo”:[],”isAffiliate”:false,”isIndexable”:true,”isOnlineBookable”:true,”minStay”:2,”paymentStats”:{“totalPayments”:0},”photos”:[{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f3/26/81.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f3/26/81.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f3/26/81.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f3/26/81.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/7c.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/7c.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/7c.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/7c.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/62.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/62.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/62.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/62.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f3/26/d4.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f3/26/d4.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f3/26/d4.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f3/26/d4.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/86.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/86.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/86.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/86.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/87.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/87.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/87.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/87.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/82.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/82.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/82.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/82.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/72/6e.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/72/6e.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/72/6e.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/72/6e.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/e5.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/e5.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/e5.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/e5.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/cc.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/cc.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/cc.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/cc.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/cb.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/cb.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/cb.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/cb.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/d3.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/d3.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/d3.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/d3.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/ee.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/ee.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/ee.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/ee.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/df.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/df.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/df.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/df.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/bc/d7/f7.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d7/f7.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d7/f7.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d7/f7.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/bc/d8/5a.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d8/5a.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d8/5a.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d8/5a.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/bc/d8/59.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d8/59.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d8/59.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d8/59.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/f1.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/f1.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/f1.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/f1.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d7/fa.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d7/fa.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d7/fa.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d7/fa.jpg”}],”recentViewCount”:0,”roomCount”:1,”scope”:”TA”,”sleepCount”:2,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f3/26/81.jpg”,”titleInfo”:{“reqLang”:”it”,”srcLang”:”pt”,”title”:”camera verde in villa completamente attrezzata con vasca idromassaggio”},”url”:”/12401463″,”userReviewCount”:0}],”coeAward”:[{“locations”:[]}],”locations”:[{“parent”:{“url”:”/Tourism-g9719123-Agualva_Cacem_Sintra_Municipality_Lisbon_District_Central_Portugal-Vacations.html”,”name”:”Agualva-Cacem”,”id”:9719123}}]}”},”1512344935″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”tavr_availabilitycalendarmobile_1655884591″,”bucket”:null}]}]}”},”2244803483″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”cash_back_on_plus_native_1632146213″,”bucket”:null},{“experimentKey”:”plus_master_1643231491″,”bucket”:null}]}]}”},”2410598101″:{“data”:”{“RentalInformation_getDetailRentals”:[{“averageRatingNumber”:-1,”bathCount”:2,”cancellationPolicy”:”SUPER_STRICT”,”isInstantBook”:false,”detailFields”:{“businessInfo”:{“isFreeToList”:true,”isSubscribeToList”:true,”questionAndAnswerListType”:”FTL_LIST_TYPE”,”subscriptionType”:”COMMISSION”,”tipType”:”TIP”},”descriptions”:[{“key”:”NAME”,”lang”:null,”machineTranslated”:true,”machineTranslatedSourceLang”:null,”status”:”MACHINE_GOOGLE”,”text”:”camera verde in villa completamente attrezzata con vasca idromassaggio”},{“key”:”OVERVIEW”,”lang”:null,”machineTranslated”:true,”machineTranslatedSourceLang”:null,”status”:”MACHINE_GOOGLE”,”text”:”camera verde in villa con piano terra comune con tre camere da letto, due bagni, un bagno con lavatrice e servizi igienici al piano terra ingresso con flipper, soggiorno, cucina completamente u00E9puiqpu00E9e, sala da pranzo tetto in vetro con vista giardino e vasca idromassaggio , al piano superiore tre camere condividono la doccia e bagno con wc, vicino a tutti i servizi a 10 km da Lisbona e Sintra 5, un parcheggio in loco”}],”carRequired”:”UNKNOWN”,”inquiryMetadata”:{“canReceiveInquiries”:true,”rateComment”:null,”requiresPetInput”:false},”legacyData”:{“baseDailyRate”:{“amount”:69,”currency”:”EUR”},”bedroomInfo”:”1 letto matrimoniale”,”bathroomInfo”:”1 bagno completo, 1 doccia”,”rentalTypeLocalized”:{“localizedString”:”Casa vacanza”},”rentalSubtypeLocalized”:{“localizedString”:”Casa vacanza”}},”locationAlert”:null,”mapData”:{“isExactMap”:true},”features”:[{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_all_pets_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”NO”},{“count”:0,”localizedDescription”:{“localizedString”:”Balcone”},”distance”:null,”featureCode”:”amn_balcony”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Griglia”},”distance”:null,”featureCode”:”amn_bbq”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_car_required”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”UNKNOWN”},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_children”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”YES”},{“count”:1,”localizedDescription”:{“localizedString”:”Letti matrimoniali ({0})”},”distance”:null,”featureCode”:”amn_double_bed”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_elderly_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”YES”},{“count”:1,”localizedDescription”:{“localizedString”:”Bagni completi ({0})”},”distance”:null,”featureCode”:”amn_family_bathroom”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Frigorifero”},”distance”:null,”featureCode”:”amn_fridge”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Sala giochi”},”distance”:null,”featureCode”:”amn_gamesroom”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Accesso a Internet”},”distance”:null,”featureCode”:”amn_internet_access”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Ferro da stiro”},”distance”:null,”featureCode”:”amn_iron”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Vasca con Jacuzzi”},”distance”:null,”featureCode”:”amn_jacuzzi”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Bollitore”},”distance”:null,”featureCode”:”amn_kettle”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Biancheria da letto inclusa”},”distance”:null,”featureCode”:”amn_linens_provided”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Forno a microonde”},”distance”:null,”featureCode”:”amn_mircowave”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Parcheggio”},”distance”:null,”featureCode”:”amn_parking”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Cortile privato”},”distance”:null,”featureCode”:”amn_private_yard”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”TV satellitare/via cavo”},”distance”:null,”featureCode”:”amn_satellite_tv”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:1,”localizedDescription”:{“localizedString”:”Cabine doccia ({0})”},”distance”:null,”featureCode”:”amn_shower_room”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_smoking_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”NO”},{“count”:0,”localizedDescription”:{“localizedString”:”Impianto stereo”},”distance”:null,”featureCode”:”amn_stereo”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Stufa”},”distance”:null,”featureCode”:”amn_stove”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Terrazza”},”distance”:null,”featureCode”:”amn_terrace”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Biancheria da bagno inclusa”},”distance”:null,”featureCode”:”amn_towels_provided”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”TV”},”distance”:null,”featureCode”:”amn_tv”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Lavatrice”},”distance”:null,”featureCode”:”amn_washing_machine”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_wheelchair_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”NO”},{“count”:0,”localizedDescription”:{“localizedString”:”Wi-Fi”},”distance”:null,”featureCode”:”amn_wifi”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Campo da golf raggiungibile in auto in 30 minuti”},”distance”:null,”featureCode”:”area_golf_far”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Ippodromo nelle vicinanze”},”distance”:null,”featureCode”:”area_horse_riding_nearby”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:2,”localizedDescription”:{“localizedString”:”N. di bagni”},”distance”:null,”featureCode”:”dsc_bathrooms”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:1,”localizedDescription”:{“localizedString”:”N. di camere da letto”},”distance”:null,”featureCode”:”dsc_bedrooms”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:2,”localizedDescription”:{“localizedString”:”Numero di ospiti”},”distance”:null,”featureCode”:”dsc_sleeps_max”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null}],”supplierData”:{“affiliateLogoUrl”:null,”externalId”:null,”formattedSourceID”:”#HL2228749989″,”isPartnerSupplier”:null,”propertyManagerData”:{“isBusiness”:true,”contactManagerUrl”:null,”establishedDate”:”2016-05-24″,”id”:783948,”isRbo”:true,”listingLink”:”https://rentals.tripadvisor.com/register?utm_source=13091&utm_medium=web&utm_campaign=talist”,”localizedLanguagesString”:”inglese”,”localizedResponseTime”:{“localizedString”:”Entro un giorno”},”managerType”:null,”managerTypeValue”:3,”name”:”Ana Paula D”,”obfuscatedLanderUrl”:”Zm9vXy9SZW50YWxQcm9wZXJ0eU1hbmFnZXItYV9tYW5hZ2VyLjc4Mzk0OF9iYXI=”,”phoneNumber”:null,”photoUrl”:null,”rawPhoneNumber”:null,”respondedPercentage”:14,”responseTime”:19,”shouldShowPhoneNumber”:null},”providerOrdinal”:null,”shouldOverridePartnerImageAltText”:null,”supplierLogoSourceURL”:”/img2/vacationrentals/brand_refresh/HL_Supplier_Logo_2021.png”,”termsAndConditionsUrl”:null,”vrAffiliateSourceID”:”HL”,”vrSourceID”:”HL”}},”geoCoordinates”:{“lat”:38.773388,”lng”:-9.312224},”id”:12401463,”name”:”camera verde in villa completamente attrezzata con vasca idromassaggio”,”nearbyGeosInfo”:[],”isAffiliate”:false,”isIndexable”:true,”isOnlineBookable”:true,”minStay”:2,”paymentStats”:{“totalPayments”:0},”photos”:[{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f3/26/81.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f3/26/81.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f3/26/81.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f3/26/81.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/7c.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/7c.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/7c.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/7c.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/62.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/62.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/62.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/62.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f3/26/d4.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f3/26/d4.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f3/26/d4.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f3/26/d4.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/86.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/86.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/86.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/86.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/87.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/87.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/87.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/87.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/82.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/82.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/82.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/82.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/72/6e.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/72/6e.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/72/6e.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/72/6e.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/e5.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/e5.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/e5.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/e5.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/cc.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/cc.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/cc.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/cc.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/cb.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/cb.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/cb.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/cb.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/d3.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/d3.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/d3.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/d3.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/ee.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/ee.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/ee.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/ee.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/df.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/df.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/df.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/df.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/bc/d7/f7.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d7/f7.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d7/f7.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d7/f7.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/bc/d8/5a.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d8/5a.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d8/5a.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d8/5a.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/bc/d8/59.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d8/59.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d8/59.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d8/59.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/f1.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/f1.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/f1.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/f1.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d7/fa.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d7/fa.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d7/fa.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d7/fa.jpg”}],”recentViewCount”:0,”roomCount”:1,”scope”:”TA”,”sleepCount”:2,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f3/26/81.jpg”,”titleInfo”:{“reqLang”:”it”,”srcLang”:”pt”,”title”:”camera verde in villa completamente attrezzata con vasca idromassaggio”},”url”:”/12401463″,”userReviewCount”:0}],”coeAward”:[{“locations”:[]}],”locations”:[{“parent”:{“url”:”/Tourism-g9719123-Agualva_Cacem_Sintra_Municipality_Lisbon_District_Central_Portugal-Vacations.html”,”name”:”Agualva-Cacem”,”id”:9719123}}]}”},”2417373525″:{“data”:”{“faqs”:[[]],”locations”:[{“name”:”chambre verte dans villa toute u00E9quipu00E9e avec jacuzzi”}]}”},”2569710536″:{“data”:”{“canViewOptimusFeatures”:false}”},”2688004075″:{“data”:”{“currency”:{“code”:”EUR”,”name”:”Euro”,”symbol”:”u20AC”}}”},”2774867532″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”global_nav_to_unbounce___1638464717″,”bucket”:null}]}]}”},”3036985302″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”home_page_faceted_search_1644944340″,”bucket”:null}]}]}”},”3105840187″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”plus_master_1643231491″,”bucket”:null}]}]}”},”3234764917″:{“data”:”{“Breadcrumbs_buildBreadcrumbs”:{“breadcrumbs”:[{“text”:”Europa”,”url”:”/Tourism-g4-Europe-Vacations.html”,”obfuscated”:false},{“text”:”Portogallo”,”url”:”/Tourism-g189100-Portugal-Vacations.html”,”obfuscated”:false},{“text”:”Portogallo centrale”,”url”:”/Tourism-g3932272-Central_Portugal-Vacations.html”,”obfuscated”:false},{“text”:”Quartieri di Lisbona”,”url”:”/Tourism-g3874225-Lisbon_District_Central_Portugal-Vacations.html”,”obfuscated”:false},{“text”:”Sintra Municipality”,”url”:”/Tourism-g1673801-Sintra_Municipality_Lisbon_District_Central_Portugal-Vacations.html”,”obfuscated”:false},{“text”:”Agualva-Cacem”,”url”:”/Tourism-g9719123-Agualva_Cacem_Sintra_Municipality_Lisbon_District_Central_Portugal-Vacations.html”,”obfuscated”:false},{“text”:”Case vacanza”,”url”:”/VacationRentals-g9719123-Reviews-Agualva_Cacem_Sintra_Municipality_Lisbon_District_Central_Portugal-Vacation_Rentals.html”,”obfuscated”:false}]}}”},”3254178535″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”tavr_pdpsigninpersuasion_1655884322″,”bucket”:null}]}]}”},”3286325481″:{“data”:”{“locations”:[{“parentGeoId”:9719123,”postPhotosUrl”:”/PostPhotos-d12401463″,”writeUserReviewUrl”:”/UserReview-g9719123-d12401463-Chambre_verte_dans_villa_toute_equipee_avec_jacuzzi-Agualva_Cacem_Sintra_Municipality_Lisbon_D.html”,”currentUserOwnerStatus”:null}]}”},”3391688600″:{“data”:”{“locations”:[{“parents”:[{“locationId”:1673801},{“locationId”:3874225},{“locationId”:3932272},{“locationId”:189100},{“locationId”:4},{“locationId”:1}]}]}”},”3440470457″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”nvt_dining_club_ff_1649177192″,”bucket”:null}]}]}”},”3591741753″:{“data”:”{“RentalInformation_getDetailRentals”:[{“averageRatingNumber”:-1,”bathCount”:2,”cancellationPolicy”:”SUPER_STRICT”,”isInstantBook”:false,”detailFields”:{“businessInfo”:{“isFreeToList”:true,”isSubscribeToList”:true,”questionAndAnswerListType”:”FTL_LIST_TYPE”,”subscriptionType”:”COMMISSION”,”tipType”:”TIP”},”descriptions”:[{“key”:”NAME”,”lang”:null,”machineTranslated”:true,”machineTranslatedSourceLang”:null,”status”:”MACHINE_GOOGLE”,”text”:”camera verde in villa completamente attrezzata con vasca idromassaggio”},{“key”:”OVERVIEW”,”lang”:null,”machineTranslated”:true,”machineTranslatedSourceLang”:null,”status”:”MACHINE_GOOGLE”,”text”:”camera verde in villa con piano terra comune con tre camere da letto, due bagni, un bagno con lavatrice e servizi igienici al piano terra ingresso con flipper, soggiorno, cucina completamente u00E9puiqpu00E9e, sala da pranzo tetto in vetro con vista giardino e vasca idromassaggio , al piano superiore tre camere condividono la doccia e bagno con wc, vicino a tutti i servizi a 10 km da Lisbona e Sintra 5, un parcheggio in loco”}],”carRequired”:”UNKNOWN”,”inquiryMetadata”:{“canReceiveInquiries”:true,”rateComment”:null,”requiresPetInput”:false},”legacyData”:{“baseDailyRate”:{“amount”:69,”currency”:”EUR”},”bedroomInfo”:”1 letto matrimoniale”,”bathroomInfo”:”1 bagno completo, 1 doccia”,”rentalTypeLocalized”:{“localizedString”:”Casa vacanza”},”rentalSubtypeLocalized”:{“localizedString”:”Casa vacanza”}},”locationAlert”:null,”mapData”:{“isExactMap”:true},”features”:[{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_all_pets_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”NO”},{“count”:0,”localizedDescription”:{“localizedString”:”Balcone”},”distance”:null,”featureCode”:”amn_balcony”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Griglia”},”distance”:null,”featureCode”:”amn_bbq”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_car_required”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”UNKNOWN”},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_children”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”YES”},{“count”:1,”localizedDescription”:{“localizedString”:”Letti matrimoniali ({0})”},”distance”:null,”featureCode”:”amn_double_bed”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_elderly_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”YES”},{“count”:1,”localizedDescription”:{“localizedString”:”Bagni completi ({0})”},”distance”:null,”featureCode”:”amn_family_bathroom”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Frigorifero”},”distance”:null,”featureCode”:”amn_fridge”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Sala giochi”},”distance”:null,”featureCode”:”amn_gamesroom”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Accesso a Internet”},”distance”:null,”featureCode”:”amn_internet_access”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Ferro da stiro”},”distance”:null,”featureCode”:”amn_iron”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Vasca con Jacuzzi”},”distance”:null,”featureCode”:”amn_jacuzzi”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Bollitore”},”distance”:null,”featureCode”:”amn_kettle”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Biancheria da letto inclusa”},”distance”:null,”featureCode”:”amn_linens_provided”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Forno a microonde”},”distance”:null,”featureCode”:”amn_mircowave”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Parcheggio”},”distance”:null,”featureCode”:”amn_parking”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Cortile privato”},”distance”:null,”featureCode”:”amn_private_yard”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”TV satellitare/via cavo”},”distance”:null,”featureCode”:”amn_satellite_tv”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:1,”localizedDescription”:{“localizedString”:”Cabine doccia ({0})”},”distance”:null,”featureCode”:”amn_shower_room”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_smoking_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”NO”},{“count”:0,”localizedDescription”:{“localizedString”:”Impianto stereo”},”distance”:null,”featureCode”:”amn_stereo”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Stufa”},”distance”:null,”featureCode”:”amn_stove”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Terrazza”},”distance”:null,”featureCode”:”amn_terrace”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Biancheria da bagno inclusa”},”distance”:null,”featureCode”:”amn_towels_provided”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”TV”},”distance”:null,”featureCode”:”amn_tv”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Lavatrice”},”distance”:null,”featureCode”:”amn_washing_machine”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:null},”distance”:null,”featureCode”:”amn_wheelchair_temp”,”featureType”:”ENUM”,”hasFeature”:false,”value”:”NO”},{“count”:0,”localizedDescription”:{“localizedString”:”Wi-Fi”},”distance”:null,”featureCode”:”amn_wifi”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Campo da golf raggiungibile in auto in 30 minuti”},”distance”:null,”featureCode”:”area_golf_far”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:0,”localizedDescription”:{“localizedString”:”Ippodromo nelle vicinanze”},”distance”:null,”featureCode”:”area_horse_riding_nearby”,”featureType”:”YN”,”hasFeature”:true,”value”:null},{“count”:2,”localizedDescription”:{“localizedString”:”N. di bagni”},”distance”:null,”featureCode”:”dsc_bathrooms”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:1,”localizedDescription”:{“localizedString”:”N. di camere da letto”},”distance”:null,”featureCode”:”dsc_bedrooms”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null},{“count”:2,”localizedDescription”:{“localizedString”:”Numero di ospiti”},”distance”:null,”featureCode”:”dsc_sleeps_max”,”featureType”:”COUNT”,”hasFeature”:false,”value”:null}],”supplierData”:{“affiliateLogoUrl”:null,”externalId”:null,”formattedSourceID”:”#HL2228749989″,”isPartnerSupplier”:null,”propertyManagerData”:{“isBusiness”:true,”contactManagerUrl”:null,”establishedDate”:”2016-05-24″,”id”:783948,”isRbo”:true,”listingLink”:”https://rentals.tripadvisor.com/register?utm_source=13091&utm_medium=web&utm_campaign=talist”,”localizedLanguagesString”:”inglese”,”localizedResponseTime”:{“localizedString”:”Entro un giorno”},”managerType”:null,”managerTypeValue”:3,”name”:”Ana Paula D”,”obfuscatedLanderUrl”:”Zm9vXy9SZW50YWxQcm9wZXJ0eU1hbmFnZXItYV9tYW5hZ2VyLjc4Mzk0OF9iYXI=”,”phoneNumber”:null,”photoUrl”:null,”rawPhoneNumber”:null,”respondedPercentage”:14,”responseTime”:19,”shouldShowPhoneNumber”:null},”providerOrdinal”:null,”shouldOverridePartnerImageAltText”:null,”supplierLogoSourceURL”:”/img2/vacationrentals/brand_refresh/HL_Supplier_Logo_2021.png”,”termsAndConditionsUrl”:null,”vrAffiliateSourceID”:”HL”,”vrSourceID”:”HL”}},”geoCoordinates”:{“lat”:38.773388,”lng”:-9.312224},”id”:12401463,”name”:”camera verde in villa completamente attrezzata con vasca idromassaggio”,”nearbyGeosInfo”:[],”isAffiliate”:false,”isIndexable”:true,”isOnlineBookable”:true,”minStay”:2,”paymentStats”:{“totalPayments”:0},”photos”:[{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f3/26/81.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f3/26/81.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f3/26/81.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f3/26/81.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/7c.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/7c.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/7c.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/7c.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/62.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/62.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/62.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/62.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f3/26/d4.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f3/26/d4.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f3/26/d4.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f3/26/d4.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/86.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/86.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/86.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/86.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/87.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/87.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/87.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/87.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/71/82.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/71/82.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/71/82.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/71/82.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f6/72/6e.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/04/f6/72/6e.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/04/f6/72/6e.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/04/f6/72/6e.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/e5.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/e5.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/e5.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/e5.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/cc.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/cc.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/cc.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/cc.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/cb.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/cb.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/cb.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/cb.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/d3.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/d3.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/d3.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/d3.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/ee.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/ee.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/ee.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/ee.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/df.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/df.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/df.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/df.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/bc/d7/f7.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d7/f7.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d7/f7.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d7/f7.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/bc/d8/5a.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d8/5a.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d8/5a.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d8/5a.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/bc/d8/59.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d8/59.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d8/59.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d8/59.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/07/a3/f3/f1.jpg”,”landscape”:true,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/a3/f3/f1.jpg”,”largestHeight”:600,”largestWidth”:800,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/a3/f3/f1.jpg”,”stdHeight”:111,”stdWidth”:148,”thumbHeight”:36,”thumbWidth”:48,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/a3/f3/f1.jpg”},{“description”:null,”jumboUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d7/fa.jpg”,”landscape”:false,”largeUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-l/07/bc/d7/fa.jpg”,”largestHeight”:800,”largestWidth”:600,”medUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-m/07/bc/d7/fa.jpg”,”stdHeight”:320,”stdWidth”:240,”thumbHeight”:36,”thumbWidth”:27,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-s/07/bc/d7/fa.jpg”}],”recentViewCount”:0,”roomCount”:1,”scope”:”TA”,”sleepCount”:2,”thumbnailUrl”:”https://media-cdn.tripadvisor.com/media/vr-splice-j/04/f3/26/81.jpg”,”titleInfo”:{“reqLang”:”it”,”srcLang”:”pt”,”title”:”camera verde in villa completamente attrezzata con vasca idromassaggio”},”url”:”/12401463″,”userReviewCount”:0}],”coeAward”:[{“locations”:[]}],”locations”:[{“parent”:{“url”:”/Tourism-g9719123-Agualva_Cacem_Sintra_Municipality_Lisbon_District_Central_Portugal-Vacations.html”,”name”:”Agualva-Cacem”,”id”:9719123}}]}”},”3647387268″:{“data”:”{“currentLocale”:{“pointOfSaleName”:”Italia”,”ietfLocale”:”it”,”languageName”:”Italiano”,”country”:{“locationId”:187768,”name”:”Italia”}}}”},”3729433323″:{“data”:”{“gptInfo”:[{“adBase”:”/5349/ta.ta.it.s/eu.portugal”,”ppid”:”YPBCTVHY5PXVTDO3ZNIGJ56JCI6QEQWEVMPHAOAGC3QVH4TYBILQ”,”pageLevelTargeting”:[{“key”:”browser”,”value”:[“ie”]},{“key”:”country”,”value”:[“189100”]},{“key”:”detail”,”value”:[“12401463”]},{“key”:”geo”,”value”:[“9719123”]},{“key”:”geo_ctx”,”value”:[“11930″,”11941″,”12028″,”12029″,”12056″,”21827”]},{“key”:”hname”,”value”:[“chambre_verte_dans_villa_toute_quip_e_avec_jacuzzi”]},{“key”:”kw”,”value”:[“chambre_verte_dans_villa_toute_quip_e_avec_jacuzzi”]},{“key”:”loctype”,”value”:[“rentals”]},{“key”:”PageType”,”value”:[“VacationRentalReview”]},{“key”:”platform”,”value”:[“desktop”]},{“key”:”rd”,”value”:[“it”]},{“key”:”region”,”value”:[“1673801″,”3874225″,”3932272″]}]}]}”},”3779296974″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”cash_back_on_plus_native_1632146213″,”bucket”:null},{“experimentKey”:”plus_master_1643231491″,”bucket”:null},{“experimentKey”:”plus_bundling_1636650090″,”bucket”:null}]}]}”},”4011964305″:{“data”:”{“footerLinks”:{“aboutUsLinks”:[{“preLocalizedAnchorText”:”Chi siamo”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”about_us”,”url”:”https://tripadvisor.mediaroom.com/it-about-us”},{“preLocalizedAnchorText”:”Stampa”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”press”,”url”:”https://tripadvisor.mediaroom.com/it-contact-us”},{“preLocalizedAnchorText”:”Risorse e normative”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”resources_and_policies”,”url”:”https://tripadvisor.mediaroom.com/it-resources”},{“preLocalizedAnchorText”:”Fiducia e sicurezza”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”trust_and_safety”,”url”:”/Trust”},{“preLocalizedAnchorText”:”Contattateci”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”contact_us”,”url”:”https://tripadvisor.mediaroom.com/IT-contact-us”}],”businessLinks”:[{“preLocalizedAnchorText”:”Proprietari”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”claim_listing_click”,”url”:”/Owners?m=58397″},{“preLocalizedAnchorText”:”Business Advantage”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”business_advantage_click”,”url”:”/business/businessadvantage?args=-m57398″},{“preLocalizedAnchorText”:”Inserzioni sponsorizzate”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”sponsored_placements_click”,”url”:”/business/sponsored-placements?args=-m58399″},{“preLocalizedAnchorText”:”Pubblicitu00E0″,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”advertise”,”url”:”/MediaKit”},{“preLocalizedAnchorText”:”Access our Content API”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”content_licensing_click”,”url”:”/developers”}],”restaurantLinks”:[{“preLocalizedAnchorText”:”Gestite la vostra struttura”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”rs_footer_manage_your_business_click”,”url”:”/Owners”},{“preLocalizedAnchorText”:”Promuovete il vostro ristorante”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”rs_footer_click_advertise_your_restaurant”,”url”:”/Restaurant_Ads”},{“preLocalizedAnchorText”:”Tripadvisor Premium”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”rs_footer_click_ta_premium”,”url”:”/Premium”},{“preLocalizedAnchorText”:”Altre risorse”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”rs_footer_click_more_resources”,”url”:”/ForRestaurants”}],”exploreLinks”:[{“preLocalizedAnchorText”:”Chi siamo”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”about_us”,”url”:”https://tripadvisor.mediaroom.com/it-about-us”,”isObfuscated”:null},{“preLocalizedAnchorText”:”Centro Assistenza”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”help_center”,”url”:”https://www.tripadvisorsupport.com/hc/it”,”isObfuscated”:null}],”legalLinks”:[{“preLocalizedAnchorText”:”Termini di utilizzo”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”terms_of_use”,”url”:”https://tripadvisor.mediaroom.com/IT-terms-of-use”,”isObfuscated”:null},{“preLocalizedAnchorText”:”Normativa sulla privacy e sui cookie”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”privacy_policy”,”url”:”https://tripadvisor.mediaroom.com/it-privacy-policy”,”isObfuscated”:null},{“preLocalizedAnchorText”:”Consenti i cookie”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”cookie_consent”,”url”:”modal://cookie-consent”,”isObfuscated”:null},{“preLocalizedAnchorText”:”Mappa del sito”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”site_map”,”url”:”/SiteIndex-g189100-Portugal.html”,”isObfuscated”:null},{“preLocalizedAnchorText”:”Uso del sito”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”hamon_law”,”url”:”/pages/service_it.html”,”isObfuscated”:null},{“preLocalizedAnchorText”:”Contattateci”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”contact_us”,”url”:”https://tripadvisor.mediaroom.com/IT-contact-us”,”isObfuscated”:null}],”appLinks”:[{“preLocalizedAnchorText”:”App per iPhone”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”ios_app”,”url”:”/ShowUrl-a_partnerKey.1-a_url.http%3A__2F____2F__itunes__2E__apple__2E__com__2F__it__2F__app__2F__tripadvisor__2F__id284876795__3F__mt%3D8__26__pt%3D14124__26__ct%3DBrand__5F__AppPage__5F__0__5F__63742-a_urlKey.396273b8cf18a7a16.html”},{“preLocalizedAnchorText”:”App per Android”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”android_app”,”url”:”/ShowUrl-a_partnerKey.1-a_url.https%3A__2F____2F__play__2E__google__2E__com__2F__store__2F__apps__2F__details__3F__id%3Dcom__2E__tripadvisor__2E__tripadvisor__26__hl%3DIT__26__referrer%3Dutm__5F__download__5F__tracking%253DBrand__5F__AppPage__5F__0__5F__63742-a_urlKey.acb669598c1f6bffc.html”}],”socialLinks”:[{“preLocalizedAnchorText”:”Facebook”,”localizedAnchorText”:null,”iconUrl”:”/img2/social/icons/facebook_20x20.png”,”trackAction”:”facebook”,”url”:”/ShowUrl-a_partnerKey.1-a_url.http%3A__2F____2F__www__2E__facebook__2E__com__2F__TripAdvisor-a_urlKey.15090f72418302936.html”},{“preLocalizedAnchorText”:”Twitter”,”localizedAnchorText”:null,”iconUrl”:”/img2/social/icons/twitter_20x20.png”,”trackAction”:”twitter”,”url”:”/ShowUrl-a_partnerKey.1-a_url.https%3A__2F____2F__twitter__2E__com__2F__tripadvisorit-a_urlKey.d3219741a9905cab0.html”},{“preLocalizedAnchorText”:”Instagram”,”localizedAnchorText”:null,”iconUrl”:”/img2/social/icons/instagram_20x20.png”,”trackAction”:”instagram”,”url”:”/ShowUrl-a_partnerKey.1-a_url.https%3A__2F____2F__instagram__2E__com__2F__tripadvisor__2F__-a_urlKey.95e728d4c18d14f29.html”}],”partnerLinks”:[{“preLocalizedLink”:”Prenota i ristoranti migliori con u003ca target=\”_blank\” class=\”inlineLink\” href=\”https://www.thefork.it/\”>TheForku003c/a>”,”localizedLink”:null,”trackAction”:”sites_thefork”},{“preLocalizedLink”:”Prenota biglietti per tour e attrazioni su u003ca target=\”_blank\” class=\”inlineLink\” href=\”https://www.viator.com/it-IT/\”>Viatoru003c/a>”,”localizedLink”:null,”trackAction”:”sites_viator”}]}}”},”4104916663″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”add_shopping_cart_icon_across_ta_1652149198″,”bucket”:null}]}]}”},”4150555622″:{“data”:”{“AbTesting_evaluateTests”:[{“testResults”:[{“experimentKey”:”tavr_tamgvsvrbopdp_1658393419″,”bucket”:null}]}]}”}},”redux”:{“i18n”:{“locale”:”it”,”language”:”it”,”ietfLocale”:”it-IT”,”isRtl”:false,”distanceUnit”:”KILOMETERS”,”firstDayOfWeek”:1},”api”:{“requests”:{“_data_1_0_vr_similarGeos_9719123”:{“loading”:false,”result”:[“/data/1.0/vr/similarGeos/9719123″],”url”:”/data/1.0/vr/similarGeos/9719123″},”_data_1_0_brand_header_servlet_VacationRentalReview_viewportCategory_DESKTOP_geoId_9719123_pageName_VacationRentalReview_isTaReferrer_false”:{“loading”:false,”result”:[“/data/1.0/brand/header?servlet=VacationRentalReview&viewportCategory=DESKTOP&geoId=9719123&pageName=VacationRentalReview&isTaReferrer=false”],”url”:”/data/1.0/brand/header?servlet=VacationRentalReview&viewportCategory=DESKTOP&geoId=9719123&pageName=VacationRentalReview&isTaReferrer=false”},”_data_1_0_tagQuestions_12401463″:{“loading”:false,”result”:[“/data/1.0/tagQuestions/12401463″],”url”:”/data/1.0/tagQuestions/12401463″},”_data_1_0_vr_rental_calendarData_12401463″:{“loading”:false,”result”:[“/data/1.0/vr/rental/calendarData/12401463″],”url”:”/data/1.0/vr/rental/calendarData/12401463″}},”responses”:{“/data/1.0/vr/rental/calendarData/12401463”:{“data”:{“startDate”:”2022/08/05″,”endDate”:”2024/03/31″,”bookedBits”:{},”lastUpdated”:”2022/07/29″},”error”:null},”/data/1.0/tagQuestions/12401463″:{“data”:{“locationId”:1,”securityToken”:””,”userReviewUrl”:””},”error”:null},”/data/1.0/brand/header?servlet=VacationRentalReview&viewportCategory=DESKTOP&geoId=9719123&pageName=VacationRentalReview&isTaReferrer=false”:{“data”:{“adjustForSmartBanner”:false,”showGeopill”:true,”numLines”:2,”isPersistentHeader”:false,”usePersistentIcons”:true,”hideLogo”:false,”liteHeader”:false},”error”:null},”/data/1.0/vr/similarGeos/9719123″:{“data”:null,”error”:null}}},”page”:{“name”:”LOCATION_DETAIL”,”geoId”:9719123,”detailId”:12401463,”crossSells”:null},”travelerInfo”:{“preferences”:{“currency”:”EUR”},”hotels”:null,”vr”:{“start”:null,”end”:null,”adults”:2,”children”:0},”attractions”:{“singleDate”:””,”fromDate”:””,”toDate”:””,”attractionPaxAdults”:0,”attractionPaxChildren”:0},”restaurants”:{“date”:”2022-08-06″,”time”:”8:00 PM”,”partySize”:”2″,”isDefault”:true,”displayDate”:”sab 6/8″},”home”:null,”flights”:{“oneWayDate”:”2022-08-20″,”departureDate”:”2022-08-20″,”returnDate”:”2022-08-27″,”originAirportCode”:null,”destinationAirportCode”:null}},”auth”:{“isMember”:false,”csrfToken”:”TNI1625!AKM+D1jlclCqG6lSL0zsV7oYZxg10IzAo7jnQ40SLuHQqLWIeV0WQASdOBCWM1W3wfmRXVb5nmOsBXGO3YYzDnQ8z0dfpx7rvY/3vzqOiPQ17g5Hhivh4GdSr2kaEl+t0TZfWqOlwSmdkSwJ3Hg/BGA3cT9D6S3e7VZ2ogSNtF13″,”altSessId”:”E7D7C741DC0A60A781EE067A6442D035″,”loggedInUserId”:null,”captcha”:null,”fbApi”:{“apiVersion”:”v6.0″,”facebookConnectApiKey”:”162729813767876″,”facebookConnectAppId”:”162729813767876″,”facebookConnectAppName”:”tripadvisor”,”taServerTime”:1659764053,”skipFacebookSessionCheck”:false,”sdkUrl”:”//connect.facebook.net/it_IT/sdk.js”,”facebookPermissions”:”email,user_friends”}},”route”:{“geo”:”9719123″,”detail”:”12401463″,”page”:”VacationRentalReview”},”lithiumRoute”:[{“page”:”VacationRentalReview”,”params”:{“geoId”:9719123,”detailId”:12401463},”path”:”/VacationRentalReview-g9719123-d12401463-Chambre_verte_dans_villa_toute_equipee_avec_jacuzzi-Agualva_Cacem_Sintra_Municipalit.html”,”fragment”:””},{“uid”:”dfeb5cf9-c426-4573-aa68-4a2084d9a41d”}],”overlays”:{“global”:null,”fab”:null,”locals”:{},”toasts”:[]},”meta”:{“initialServletName”:”VacationRentalReview”,”device”:{“viewportCategory”:”DESKTOP”,”userAgentCategory”:”DESKTOP”,”os”:{“family”:”UNKNOWN”,”majorVersion”:-1},”browser”:{“family”:”IE”,”majorVersion”:11},”securityToken”:”b20d594dd7dcb36c670b29323e4d8c3c09b57bfbee66875f6efaa385f4639ffe”},”readonlyMode”:false,”initialRelativeUrl”:”/VacationRentalReview-g9719123-d12401463-Chambre_verte_dans_villa_toute_equipee_avec_jacuzzi-Agualva_Cacem_Sintra_Municipalit.html”,”initialAbsoluteUrl”:”https://www.tripadvisor.it/VacationRentalReview-g9719123-d12401463-Chambre_verte_dans_villa_toute_equipee_avec_jacuzzi-Agualva_Cacem_Sintra_Municipalit.html”,”baseUrl”:”https://www.tripadvisor.it”,”imageCdnUrl”:”https://static.tacdn.com”,”cookieDomain”:”.tripadvisor.it”,”taUnique”:”web306a.89.46.104.160.18271A59497″,”isTaReferrer”:false,”referrerUrl”:”http://www.bing.com/”,”forceFullSite”:false,”environment”:”Live”,”isNativeWebview”:false,”commerceCountryId”:187768,”impressionData”:{“pageLoadUid”:”dfeb5cf9-c426-4573-aa68-4a2084d9a41d”},”lineItemsByLoc”:{}},”tracking”:{“mcid”:10570,”uid”:”dfeb5cf9-c426-4573-aa68-4a2084d9a41d”,”analytics”:{“cv”:[[“_deleteCustomVar”,1],[“_deleteCustomVar”,47],[“_setCustomVar”,11,”Detail”,”chambre verte dans villa toute equipee avec jacuzzi-12401463″,3],[“_setCustomVar”,12,”Country”,”Portugal-189100″,3],[“_setCustomVar”,19,”Region”,”Central Portugal-3932272″,3],[“_setCustomVar”,25,”Continent”,”Europe-4″,3],[“_setCustomVar”,13,”Geo”,”Agualva-Cacem-9719123″,3],[“_setCustomVar”,20,”PP”,”–“,3],[“_deleteCustomVar”,14],[“_deleteCustomVar”,8],[“_deleteCustomVar”,10]],”url”:”/VacationRentalReview”},”searchSessionId”:”D27F2206AFF649219765A561F8499CDB1659764053189ssid”,”sessionId”:”D27F2206AFF649219765A561F8499CDB”,”uniqueId”:”web306a.89.46.104.160.18271A59497″,”serverName”:”www.tripadvisor.com”,”hostName”:”web306a.a.tripadvisor.com”,”vcsRevision”:1547537,”vcsBranch”:”releases/PRODUCTION_1546899_20220801_0401″,”uvmScore”:””,”retargetingUrl”:”www.tamgrt.com/RT”,”domainName”:”www.tripadvisor.it”}},”assets”:[“/assets/EkR174/sGoOO4.5418392f.es5.css”,”/assets/uWZ6Id.18aa1106.es5.css”,”/assets/7yGKf-.48a1aff5.es5.css”,”/assets/pyY-iJ/9Z4jqe.9234c356.es5.css”,”/assets/RH7wJe.11e3eb21.es5.css”,”/assets/Ly5eaD.b9738b4f.es5.css”,”/assets/VP50Wc.cfcc80b3.es5.css”,”/assets/iekllc.98a9f1fd.es5.css”,”/assets/W3_c4H.39cf10a2.es5.css”,”/assets/OC9u-G.da6f367c.es5.css”,”/assets/dX3eZQ.7ef19a25.es5.css”,”/assets/meOI_T.3c6191c6.es5.css”,”/assets/MNKFIS.86a2930b.es5.css”,”/assets/5KqyYa.0a5a62ef.es5.css”,”/assets/oiya90.b18657b5.es5.css”,”/assets/eDFcUX.401af52e.es5.css”,”/assets/z2XL6d.4526a8b6.es5.css”,”/assets/jPSRY1.07675655.es5.css”,”/assets/xfnW1G.acfb59b2.es5.css”,”/assets/lMO0v3.a09def4b.es5.css”,”/assets/MNe656.2669b35d.es5.css”,”/assets/U1tcLB.f5e29e9b.es5.css”,”/assets/MBK0so.530ba472.es5.css”,”/assets/1weFyZ.3ef48195.es5.css”,”/assets/7Aj2pc.3d6b3141.es5.css”,”/assets/DCBGY9.6476e42d.es5.css”,”/assets/g7DBrU.78ed6ae7.es5.css”,”/assets/wwtmHV.ca601794.es5.css”,”/assets/HZtvHO.cbb2109f.es5.css”,”/assets/LFeTN6.2d24c167.es5.css”,”/assets/V08PS7.bb207b55.es5.css”,”/assets/6nM-E7.c47927b8.es5.css”,”/assets/DjNvou.ab7633bf.es5.css”,”/assets/xegF5W.aee11ca9.es5.css”,”/assets/iuYvTO.348d0b18.es5.css”,”/assets/m5ZZFI.ba304d58.es5.css”,”/assets/PiTJFd.a8fe92e0.es5.css”,”/assets/BgJkqv.7aee2f04.es5.css”,”/assets/MCrJhI.3146d6b4.es5.css”,”/assets/QLckY2.5a46cafd.es5.css”,”/assets/TkeYrn.01f3693c.es5.css”,”/assets/Kv5xL1.88b6e295.es5.css”,”/assets/L2wXtu.4afb8d96.es5.css”,”/assets/MsxLpS.2a45eaa9.es5.css”,”/assets/E1X9WP.6d9cab5b.es5.css”,”/assets/ENvJHX.19231d98.es5.css”,”/assets/cpBgJU.ecfa32e6.es5.css”,”/assets/4J6GHD.8e3e1a44.es5.css”,”/assets/Xi-2HZ.aa4be22e.es5.css”,”/assets/-bPXQG.e38616f0.es5.css”,”/assets/1jVxH0.8857776e.es5.css”,”/assets/AXLM-R.e88c168b.es5.css”,”/assets/7bbexq.77c15711.es5.css”,”/assets/AFIA6D.001b6165.es5.css”,”/assets/SzaY02.9cf21cd9.es5.css”,”/assets/rAeVJg.5936545f.es5.css”,”/assets/FeJ68J.ef7156f4.es5.css”,”/assets/P89JOf.a555e4ec.es5.css”,”/assets/7vyllf.77398003.es5.css”,”/assets/Q7TAd7.76a7d5e1.es5.css”,”/assets/EkR174/fLDnkF.5418392f.es5.css”,”/assets/_qQcW3.a1136d2f.es5.css”,”/assets/4CrHtN.8556ff9c.es5.css”,”/assets/ANe_04.41fe6431.es5.css”,”/assets/PCLJ0D/SDkQ3j.90c68802.es5.css”,”/assets/VANuRt.941bf102.es5.css”,”/assets/nCvudh/YZM5IX.366f63e7.es5.css”,”/assets/Ov85iR.0a82ec72.es5.css”,”/assets/EkR174/BjesWH.5418392f.es5.js”,”/assets/F5FCuN.3daac502.es5.js”,”/assets/cDcdfi/0c5YgU.3daac502.es5.js”,”/assets/EkR174/sGoOO4.5418392f.es5.js”,”/assets/pLbCP4.c5127f4d.es5.js”,”/assets/UWCmG6.c1cecbbc.es5.js”,”/assets/uWZ6Id.18aa1106.es5.js”,”/assets/0DsHEV.1381cbd3.es5.js”,”/assets/2R4xv2.1b21ba2d.es5.js”,”/assets/7yGKf-.48a1aff5.es5.js”,”/assets/ywkzYd.9234c356.es5.js”,”/assets/pyY-iJ/9Z4jqe.9234c356.es5.js”,”/assets/pTftos.9234c356.es5.js”,”/assets/-ZQddk.714258a5.es5.js”,”/assets/OnmvvE.9fdc8d9b.es5.js”,”/assets/vWxBAe.becb41d9.es5.js”,”/assets/YwNsO_.5746f163.es5.js”,”/assets/gsKhh7.9d5298a4.es5.js”,”/assets/b3xEaf.86e9b697.es5.js”,”/assets/DbN8HP.b195c081.es5.js”,”/assets/5X2em-.94aa92f6.es5.js”,”/assets/Dg5_-9.cd0eb86b.es5.js”,”/assets/30t50h.601c0a7c.es5.js”,”/assets/RH7wJe.11e3eb21.es5.js”,”/assets/MCZL0n.9234c356.es5.js”,”/assets/sHdhNM.9234c356.es5.js”,”/assets/fbMx8J.9234c356.es5.js”,”/assets/MBE70W.9234c356.es5.js”,”/assets/Ly5eaD.b9738b4f.es5.js”,”/assets/VP50Wc.cfcc80b3.es5.js”,”/assets/iekllc.98a9f1fd.es5.js”,”/assets/W3_c4H.39cf10a2.es5.js”,”/assets/4Z07E2.fe7645af.es5.js”,”/assets/cNxigm.82eb1130.es5.js”,”/assets/S-RL4Q.404372ea.es5.js”,”/assets/OC9u-G.da6f367c.es5.js”,”/assets/BIMMTw.0b8cf91e.es5.js”,”/assets/BLrxBS.1045ed29.es5.js”,”/assets/w4JHTr.397cd0bd.es5.js”,”/assets/38xMQJ.79bbafe8.es5.js”,”/assets/l6BSGt.ed852dcb.es5.js”,”/assets/jSLlaY.062bfbf1.es5.js”,”/assets/RiHMo-.68d62dff.es5.js”,”/assets/XtxvfD.7fb1cd53.es5.js”,”/assets/h74DsO.cc2f0894.es5.js”,”/assets/faye7n.538b7c02.es5.js”,”/assets/aunxON.ac6928e3.es5.js”,”/assets/c9QfOM.e1d68d04.es5.js”,”/assets/F8raOV.9aa3e811.es5.js”,”/assets/gGW5sO.a728be89.es5.js”,”/assets/vybtJq.64342008.es5.js”,”/assets/nIW_Rw.079902d4.es5.js”,”/assets/rKB8Wf.83f49e0a.es5.js”,”/assets/dX3eZQ.7ef19a25.es5.js”,”/assets/T8P9K0.73815dd4.es5.js”,”/assets/griB9b.516f7b35.es5.js”,”/assets/QZqymc.e233b4ff.es5.js”,”/assets/meOI_T.3c6191c6.es5.js”,”/assets/a4q8MG.fc21d650.es5.js”,”/assets/FttHiS.209c9779.es5.js”,”/assets/MNKFIS.86a2930b.es5.js”,”/assets/5KqyYa.0a5a62ef.es5.js”,”/assets/oiya90.b18657b5.es5.js”,”/assets/dROhDJ.1863e104.es5.js”,”/assets/nPqO2d.fd035598.es5.js”,”/assets/eDFcUX.401af52e.es5.js”,”/assets/MHKLZN.b801f64c.es5.js”,”/assets/z2XL6d.4526a8b6.es5.js”,”/assets/vd4nty.0fdfbb82.es5.js”,”/assets/_Z-1K3.594e64dc.es5.js”,”/assets/_g8cls.435943d8.es5.js”,”/assets/zXGKDf.c9bc6a76.es5.js”,”/assets/Z_Ebpb.f6a023e4.es5.js”,”/assets/l74tu_.9234c356.es5.js”,”/assets/BQgc0E.9234c356.es5.js”,”/assets/mHPUmd.2ecd4d70.es5.js”,”/assets/il7j5o.d411d334.es5.js”,”/assets/2kkWwV.8d5fdcd5.es5.js”,”/assets/6NeHQy.bab9373d.es5.js”,”/assets/NJheb1.3b5e0890.es5.js”,”/assets/jPSRY1.07675655.es5.js”,”/assets/xfnW1G.acfb59b2.es5.js”,”/assets/jaCyxS.e48bcd68.es5.js”,”/assets/lMO0v3.a09def4b.es5.js”,”/assets/vmXh3M.2c884483.es5.js”,”/assets/h7E4Ym.0981881e.es5.js”,”/assets/MNe656.2669b35d.es5.js”,”/assets/mF32av.31922403.es5.js”,”/assets/BfEQXK.39ea1a4f.es5.js”,”/assets/i8dCG0.fd512821.es5.js”,”/assets/U1tcLB.f5e29e9b.es5.js”,”/assets/MBK0so.530ba472.es5.js”,”/assets/1weFyZ.3ef48195.es5.js”,”/assets/9wf81N.9234c356.es5.js”,”/assets/j6P7_e.9234c356.es5.js”,”/assets/7Aj2pc.3d6b3141.es5.js”,”/assets/l16qFs.7133f944.es5.js”,”/assets/ww5eTI.9234c356.es5.js”,”/assets/DCBGY9.6476e42d.es5.js”,”/assets/4kVXmt.698c6d8b.es5.js”,”/assets/g7DBrU.78ed6ae7.es5.js”,”/assets/wwtmHV.ca601794.es5.js”,”/assets/HZtvHO.cbb2109f.es5.js”,”/assets/RXx5aI.3517f163.es5.js”,”/assets/LFeTN6.2d24c167.es5.js”,”/assets/c_rvp5.301ae570.es5.js”,”/assets/V08PS7.bb207b55.es5.js”,”/assets/6nM-E7.c47927b8.es5.js”,”/assets/O8LbtK.7e73730e.es5.js”,”/assets/DjNvou.ab7633bf.es5.js”,”/assets/xegF5W.aee11ca9.es5.js”,”/assets/2x7WI3.9234c356.es5.js”,”/assets/8xs-IB.d14066fb.es5.js”,”/assets/iuYvTO.348d0b18.es5.js”,”/assets/jb_4W2.a5d2347b.es5.js”,”/assets/m5ZZFI.ba304d58.es5.js”,”/assets/9I0t-6.a0d089c0.es5.js”,”/assets/JFHNGL.f6188fbe.es5.js”,”/assets/fTyhRT.8e3c09d3.es5.js”,”/assets/PiTJFd.a8fe92e0.es5.js”,”/assets/WkP2XE.e588de91.es5.js”,”/assets/eFKnUp.5aee304c.es5.js”,”/assets/U-DhDC.ce1105e4.es5.js”,”/assets/O-HcBE.ea9a3c97.es5.js”,”/assets/BgJkqv.7aee2f04.es5.js”,”/assets/65W9ZJ.9234c356.es5.js”,”/assets/DY6uxn.a667c359.es5.js”,”/assets/igzpAK.17d14f79.es5.js”,”/assets/XxFPum.2d79f0c1.es5.js”,”/assets/agWPHr.9bae9018.es5.js”,”/assets/ETqDaL.7b3f571e.es5.js”,”/assets/KVPkQ6.9234c356.es5.js”,”/assets/W15VPO.8b031372.es5.js”,”/assets/0uWw9s.0d0ecf17.es5.js”,”/assets/MCrJhI.3146d6b4.es5.js”,”/assets/RSzTs1.9234c356.es5.js”,”/assets/QLckY2.5a46cafd.es5.js”,”/assets/mzWrCc.9234c356.es5.js”,”/assets/RC_tk4.9234c356.es5.js”,”/assets/5cM30E.9234c356.es5.js”,”/assets/8XXl8D.9234c356.es5.js”,”/assets/LeTNY3.9234c356.es5.js”,”/assets/mhckab.9234c356.es5.js”,”/assets/TkeYrn.01f3693c.es5.js”,”/assets/Kv5xL1.88b6e295.es5.js”,”/assets/3LpzHo.9234c356.es5.js”,”/assets/qKFflQ.e5f34d13.es5.js”,”/assets/ABlMo4.91d41529.es5.js”,”/assets/X3dUVA.9234c356.es5.js”,”/assets/3gj0sT.9234c356.es5.js”,”/assets/YCW2WX.9234c356.es5.js”,”/assets/2G8iY6.9234c356.es5.js”,”/assets/PC6zgt.9234c356.es5.js”,”/assets/jmIMrC.f3f6525b.es5.js”,”/assets/1yEXVQ.200c44ea.es5.js”,”/assets/L2wXtu.4afb8d96.es5.js”,”/assets/zeV7p9.9234c356.es5.js”,”/assets/fiorRT.d3b209f0.es5.js”,”/assets/06lnvq.55888ca7.es5.js”,”/assets/MsxLpS.2a45eaa9.es5.js”,”/assets/49O7Qn.9234c356.es5.js”,”/assets/1IPwUZ.9234c356.es5.js”,”/assets/E1X9WP.6d9cab5b.es5.js”,”/assets/AhTrXA.9234c356.es5.js”,”/assets/6RAaot.47c86848.es5.js”,”/assets/BWm3Dg.bdfdec02.es5.js”,”/assets/ENvJHX.19231d98.es5.js”,”/assets/hstmlT.b7de1669.es5.js”,”/assets/cpBgJU.ecfa32e6.es5.js”,”/assets/4J6GHD.8e3e1a44.es5.js”,”/assets/czuCoQ.9234c356.es5.js”,”/assets/Xi-2HZ.aa4be22e.es5.js”,”/assets/-bPXQG.e38616f0.es5.js”,”/assets/LzjZ7J.68e97d82.es5.js”,”/assets/1jVxH0.8857776e.es5.js”,”/assets/T2p98h.bbffb4c9.es5.js”,”/assets/AXLM-R.e88c168b.es5.js”,”/assets/TgP6c0.7487ac90.es5.js”,”/assets/7bbexq.77c15711.es5.js”,”/assets/nLgubM.9234c356.es5.js”,”/assets/s5JuW6.9234c356.es5.js”,”/assets/eEiluJ.9234c356.es5.js”,”/assets/AFIA6D.001b6165.es5.js”,”/assets/SzaY02.9cf21cd9.es5.js”,”/assets/kYmwth.b22d1d27.es5.js”,”/assets/zHdDWu.2af24e6e.es5.js”,”/assets/khWrbV.a070f165.es5.js”,”/assets/_cZwhS.4e7aa268.es5.js”,”/assets/a8cI6n.c502cb8c.es5.js”,”/assets/941Zf4.7bbee2a5.es5.js”,”/assets/v_y45t.acfc5eab.es5.js”,”/assets/1NSVY_.cf5216c6.es5.js”,”/assets/8kF3mN.ba72516f.es5.js”,”/assets/IfB3jr.b6405df0.es5.js”,”/assets/rAeVJg.5936545f.es5.js”,”/assets/04AXJi.2cf72d9b.es5.js”,”/assets/FeJ68J.ef7156f4.es5.js”,”/assets/p55fed.8fe543c0.es5.js”,”/assets/P89JOf.a555e4ec.es5.js”,”/assets/ha81uR.4240f26a.es5.js”,”/assets/tVuenP.62af1d4d.es5.js”,”/assets/-WwUo-.fd3825d5.es5.js”,”/assets/fsml46.54e45ec0.es5.js”,”/assets/2NwMnm.24102bde.es5.js”,”/assets/x5AnXu.d3dfa6c1.es5.js”,”/assets/R5mFUK.9234c356.es5.js”,”/assets/7vyllf.77398003.es5.js”,”/assets/xsqNye.adeec8ee.es5.js”,”/assets/vq6MSq.a6d0f695.es5.js”,”/assets/FSK9SR.9234c356.es5.js”,”/assets/mv7yXI.dabdc8ca.es5.js”,”/assets/Q7TAd7.76a7d5e1.es5.js”,”/assets/cDcdfi.3daac502.es5.js”,”/assets/EkR174/fLDnkF.5418392f.es5.js”,”/assets/Jk5sjx.e2fdaf84.es5.js”,”/assets/pT-O8u.9a2e15c7.es5.js”,”/assets/CSOnVf.ccb4b28e.es5.js”,”/assets/rf6OMe.3cc039cd.es5.js”,”/assets/_qQcW3.a1136d2f.es5.js”,”/assets/OkJwbt.dc0d6fa3.es5.js”,”/assets/hxnqL3.c5bf4518.es5.js”,”/assets/4CrHtN.8556ff9c.es5.js”,”/assets/JoCmNf.9234c356.es5.js”,”/assets/O1-97K.9234c356.es5.js”,”/assets/pavudl.9234c356.es5.js”,”/assets/N_V-Sx.9234c356.es5.js”,”/assets/CnY-mJ.9234c356.es5.js”,”/assets/TnWSun.9234c356.es5.js”,”/assets/tpzmJG.9234c356.es5.js”,”/assets/MG7IEl.8244c757.es5.js”,”/assets/yP3WOz.dc8ede1e.es5.js”,”/assets/FAXpyL.a4f6f670.es5.js”,”/assets/xZoNdB.1aa67228.es5.js”,”/assets/ANe_04.41fe6431.es5.js”,”/assets/PCLJ0D.90c68802.es5.js”,”/assets/PCLJ0D/SDkQ3j.90c68802.es5.js”,”/assets/VANuRt.941bf102.es5.js”,”/assets/SfdMbo.532f7810.es5.js”,”/assets/nCvudh.366f63e7.es5.js”,”/assets/nCvudh/YZM5IX.366f63e7.es5.js”,”/assets/wzAQTx.96b1e54d.es5.js”,”/assets/n3D4ip.9dad0c41.es5.js”,”/assets/b57PJQ.f75c7b15.es5.js”,”/assets/oo669z.6476c986.es5.js”,”/assets/N4pTU2.6d259629.es5.js”,”/assets/asW43G.4b20000c.es5.js”,”/assets/6hYgtn.9ff3923a.es5.js”,”/assets/Ov85iR.0a82ec72.es5.js”,”/assets/-i3PJS.78300c74.es5.js”,”/assets/peh_3a.43b1634a.es5.js”,”/assets/XjkW5l.dcad8f07.es5.js”,”/assets/EkR174.5418392f.es5.js”,”/assets/A2N2VC.6c483483.es5.css”,”/assets/Rrxa7Z.d5a4c540.es5.css”,”/assets/wo8gOE.499a83ed.es5.css”,”/assets/dAea-m.478cab22.es5.css”,”/assets/fZR2pj.d79adcd6.es5.css”,”/assets/o2xOtp.a2e493b6.es5.css”,”/assets/qfSfGN.aa5a7360.es5.css”,”/assets/GhS-hc.b3a7eb34.es5.css”,”/assets/A2N2VC.6c483483.es5.js”,”/assets/Rrxa7Z.d5a4c540.es5.js”,”/assets/wo8gOE.499a83ed.es5.js”,”/assets/dAea-m.478cab22.es5.js”,”/assets/fZR2pj.d79adcd6.es5.js”,”/assets/Erjc5t.192d24f3.es5.js”,”/assets/PCbs_l.4fdefe53.es5.js”,”/assets/o2xOtp.a2e493b6.es5.js”,”/assets/qfSfGN.aa5a7360.es5.js”,”/assets/GhS-hc.b3a7eb34.es5.js”,”/assets/wLDeDm.968dae8c.es5.js”,”/assets/nHP58Z.f301c8ed.es5.js”,”/assets/_8z_5C.ef7308fb.es5.css”,”/assets/dHlxRh.6a195275.es5.css”,”/assets/3QDZ0Y.f5586b36.es5.css”,”/assets/9lPTHX.72b0204b.es5.css”,”/assets/Hgrhyo.77ed7f5d.es5.css”,”/assets/KwOV1Z.c7d453e9.es5.css”,”/assets/PJdz7W.b377bd36.es5.css”,”/assets/x9N_Dh.3c16148c.es5.css”,”/assets/_8z_5C.ef7308fb.es5.js”,”/assets/1WHcLE.39ba81eb.es5.js”,”/assets/dHlxRh.6a195275.es5.js”,”/assets/X39Ojm.e462f08d.es5.js”,”/assets/M4pchU.5cd35423.es5.js”,”/assets/7DeCCA.e6644178.es5.js”,”/assets/gzFIw8.5ef83530.es5.js”,”/assets/3QDZ0Y.f5586b36.es5.js”,”/assets/HKQFPT.4390a513.es5.js”,”/assets/MyxN18.66c318e8.es5.js”,”/assets/9lPTHX.72b0204b.es5.js”,”/assets/Hgrhyo.77ed7f5d.es5.js”,”/assets/KwOV1Z.c7d453e9.es5.js”,”/assets/AoLEtg.4c3762bb.es5.js”,”/assets/l6H5vD.2c3d179d.es5.js”,”/assets/xCwNt1.aa4b29bb.es5.js”,”/assets/CWvkcL.e1bbd288.es5.js”,”/assets/PJdz7W.b377bd36.es5.js”,”/assets/D0dF5Z.9234c356.es5.js”,”/assets/x9N_Dh.3c16148c.es5.js”,”/assets/Knxjr7.b924cbad.es5.js”,”/assets/4ItfM-.ae41c580.es5.css”,”/assets/QnohJ2.3913d34b.es5.css”,”/assets/HEemX4.fb1c33a4.es5.css”,”/assets/M4Ci5g.f9d52505.es5.css”,”/assets/VswJjR.b2ab41c4.es5.css”,”/assets/miRpRf.797488bc.es5.css”,”/assets/KB4cfU.a589ecb8.es5.css”,”/assets/yIC5Nu.6cd65347.es5.css”,”/assets/VwUieX.4c8adcee.es5.css”,”/assets/aqM4oG.e46975f9.es5.css”,”/assets/jmC6mk.8c69ebff.es5.css”,”/assets/4ItfM-.ae41c580.es5.js”,”/assets/QnohJ2.3913d34b.es5.js”,”/assets/HEemX4.fb1c33a4.es5.js”,”/assets/M4Ci5g.f9d52505.es5.js”,”/assets/VswJjR.b2ab41c4.es5.js”,”/assets/Uau69a.fa234736.es5.js”,”/assets/miRpRf.797488bc.es5.js”,”/assets/KB4cfU.a589ecb8.es5.js”,”/assets/yIC5Nu.6cd65347.es5.js”,”/assets/UaLTva.2614273a.es5.js”,”/assets/VwUieX.4c8adcee.es5.js”,”/assets/kI6OFW.6f2fd32a.es5.js”,”/assets/A8AD3f.87bbfa28.es5.js”,”/assets/1ZdsaN.4551f7c3.es5.js”,”/assets/3GTqa_.64e68162.es5.js”,”/assets/aqM4oG.e46975f9.es5.js”,”/assets/jmC6mk.8c69ebff.es5.js”,”/assets/-qDq4b.9c6d8f98.es5.js”,”/assets/iCUE3I.20d8f219.es5.css”,”/assets/iCUE3I.20d8f219.es5.js”,”/assets/zI2w6b.2e507248.es5.css”,”/assets/vF730k.b05cf3f9.es5.css”,”/assets/zI2w6b.2e507248.es5.js”,”/assets/vF730k.b05cf3f9.es5.js”,”/assets/6bd9WA.9234c356.es5.js”,”/assets/ppW8My.9234c356.es5.js”,”/assets/OYoFCQ.6d530738.es5.js”,”/assets/KqMS3F.c1f5871e.es5.css”,”/assets/IBpJWf.43489e31.es5.css”,”/assets/s1eoNx.d9c8d46b.es5.css”,”/assets/KqMS3F.c1f5871e.es5.js”,”/assets/IBpJWf.43489e31.es5.js”,”/assets/lfA4fx.2c332d36.es5.js”,”/assets/wc54S1.c10dd5a2.es5.js”,”/assets/s1eoNx.d9c8d46b.es5.js”,”/assets/PbGVd2.82934c1f.es5.js”,”/assets/qLI6tg.9234c356.es5.js”,”/assets/udMzMW.61f6931f.es5.js”,”/assets/8fgG38.963e416f.es5.css”,”/assets/8fgG38.963e416f.es5.js”,”/assets/Sxc0m2.1ca53863.es5.js”,”/assets/y-ABxT.890d65be.es5.js”,”/assets/BqoTCX.385efadd.es5.css”,”/assets/zPgUM0.dda46078.es5.css”,”/assets/BqoTCX.385efadd.es5.js”,”/assets/MWFqPp.ed40609a.es5.js”,”/assets/zPgUM0.dda46078.es5.js”,”/assets/Pxaagl.9234c356.es5.js”,”/assets/XSy8QM.9234c356.es5.js”,”/assets/X850ZG.9234c356.es5.js”,”/assets/G6Uvud.9234c356.es5.js”,”/assets/z3PMnh.9234c356.es5.js”,”/assets/vB1dSR.9234c356.es5.js”,”/assets/eHdo3d.9234c356.es5.js”,”/assets/tmDVyI.9234c356.es5.js”,”/assets/7xf3ti.9234c356.es5.js”,”/assets/e0vlJc.9234c356.es5.js”,”/assets/bhd70c.9234c356.es5.js”,”/assets/yydgdt.9234c356.es5.js”,”/assets/El2pbj.9234c356.es5.js”,”/assets/6YNTzB.9234c356.es5.js”,”/assets/IuX4Ar.8c446481.es5.js”,”/assets/wU942v.8703089e.es5.js”,”/assets/J7ol2P.f96d5e81.es5.css”,”/assets/a2MVnz.24eeb2c8.es5.css”,”/assets/J7ol2P.f96d5e81.es5.js”,”/assets/2IPQDU.eac22972.es5.js”,”/assets/UarIJl.3534fbb2.es5.js”,”/assets/a2MVnz.24eeb2c8.es5.js”,”/assets/mxARhC.d99035d4.es5.js”,”/assets/zoCfOB.a4c29c8f.es5.js”,”/assets/GVTdZB.691e0ecb.es5.js”],”bundles”:[“XjkW5l”,”peh_3a”,”MG7IEl”,”4CrHtN”,”EkR174/BjesWH”,”EkR174/fLDnkF”,”cDcdfi”,”dX3eZQ”,”RiHMo-“,”jSLlaY”,”l6BSGt”,”BLrxBS”,”OC9u-G”,”cNxigm”,”EkR174/sGoOO4″,”F5FCuN”,”cDcdfi/0c5YgU”,”uWZ6Id”,”pLbCP4″,”UWCmG6″,”4Z07E2″,”W3_c4H”,”7yGKf-“,”0DsHEV”,”2R4xv2″,”iekllc”,”VP50Wc”,”Ly5eaD”,”MBE70W”,”fbMx8J”,”sHdhNM”,”MCZL0n”,”-ZQddk”,”pTftos”,”ywkzYd”,”pyY-iJ/9Z4jqe”,”RH7wJe”,”30t50h”,”Dg5_-9″,”OnmvvE”,”5X2em-“,”DbN8HP”,”b3xEaf”,”gsKhh7″,”YwNsO_”,”vWxBAe”,”S-RL4Q”,”BIMMTw”,”38xMQJ”,”w4JHTr”,”aunxON”,”h74DsO”,”XtxvfD”,”faye7n”,”rKB8Wf”,”vybtJq”,”F8raOV”,”c9QfOM”,”gGW5sO”,”nIW_Rw”,”Q7TAd7″,”mv7yXI”,”FSK9SR”,”vq6MSq”,”xsqNye”,”7vyllf”,”R5mFUK”,”x5AnXu”,”2NwMnm”,”fsml46″,”tVuenP”,”v_y45t”,”941Zf4″,”a8cI6n”,”_cZwhS”,”zHdDWu”,”BWm3Dg”,”E1X9WP”,”MsxLpS”,”06lnvq”,”fiorRT”,”Kv5xL1″,”TkeYrn”,”mhckab”,”LeTNY3″,”8XXl8D”,”MCrJhI”,”0uWw9s”,”W15VPO”,”KVPkQ6″,”agWPHr”,”XxFPum”,”igzpAK”,”MNe656″,”xfnW1G”,”jPSRY1″,”il7j5o”,”mHPUmd”,”BQgc0E”,”l74tu_”,”Z_Ebpb”,”zXGKDf”,”eDFcUX”,”meOI_T”,”QZqymc”,”T8P9K0″,”griB9b”,”MNKFIS”,”FttHiS”,”a4q8MG”,”nPqO2d”,”oiya90″,”5KqyYa”,”dROhDJ”,”MHKLZN”,”_Z-1K3″,”vd4nty”,”z2XL6d”,”_g8cls”,”2kkWwV”,”6NeHQy”,”NJheb1″,”h7E4Ym”,”lMO0v3″,”jaCyxS”,”vmXh3M”,”DY6uxn”,”65W9ZJ”,”U1tcLB”,”BfEQXK”,”mF32av”,”i8dCG0″,”BgJkqv”,”wwtmHV”,”g7DBrU”,”DCBGY9″,”7Aj2pc”,”1weFyZ”,”MBK0so”,”j6P7_e”,”9wf81N”,”ww5eTI”,”l16qFs”,”4kVXmt”,”HZtvHO”,”U-DhDC”,”eFKnUp”,”PiTJFd”,”fTyhRT”,”JFHNGL”,”9I0t-6″,”jb_4W2″,”O8LbtK”,”6nM-E7″,”V08PS7″,”c_rvp5″,”LFeTN6″,”RXx5aI”,”iuYvTO”,”DjNvou”,”xegF5W”,”8xs-IB”,”2x7WI3″,”m5ZZFI”,”WkP2XE”,”O-HcBE”,”ETqDaL”,”5cM30E”,”QLckY2″,”RSzTs1″,”RC_tk4″,”mzWrCc”,”zeV7p9″,”L2wXtu”,”1yEXVQ”,”jmIMrC”,”ABlMo4″,”qKFflQ”,”3LpzHo”,”PC6zgt”,”2G8iY6″,”YCW2WX”,”3gj0sT”,”X3dUVA”,”1IPwUZ”,”49O7Qn”,”6RAaot”,”AhTrXA”,”kYmwth”,”ENvJHX”,”SzaY02″,”AFIA6D”,”7bbexq”,”TgP6c0″,”AXLM-R”,”T2p98h”,”1jVxH0″,”LzjZ7J”,”-bPXQG”,”Xi-2HZ”,”czuCoQ”,”4J6GHD”,”cpBgJU”,”hstmlT”,”eEiluJ”,”s5JuW6″,”nLgubM”,”khWrbV”,”IfB3jr”,”8kF3mN”,”1NSVY_”,”rAeVJg”,”ha81uR”,”P89JOf”,”FeJ68J”,”04AXJi”,”p55fed”,”-WwUo-“,”hxnqL3″,”OkJwbt”,”_qQcW3″,”pT-O8u”,”Jk5sjx”,”CSOnVf”,”rf6OMe”,”tpzmJG”,”TnWSun”,”CnY-mJ”,”N_V-Sx”,”pavudl”,”O1-97K”,”JoCmNf”,”-i3PJS”,”6hYgtn”,”N4pTU2″,”xZoNdB”,”FAXpyL”,”yP3WOz”,”oo669z”,”b57PJQ”,”n3D4ip”,”nCvudh”,”VANuRt”,”ANe_04″,”PCLJ0D”,”PCLJ0D/SDkQ3j”,”SfdMbo”,”nCvudh/YZM5IX”,”wzAQTx”,”asW43G”,”Ov85iR”,”@ta/features”,”EkR174″,”A2N2VC”,”nHP58Z”,”Rrxa7Z”,”wLDeDm”,”GhS-hc”,”o2xOtp”,”wo8gOE”,”PCbs_l”,”dAea-m”,”Erjc5t”,”fZR2pj”,”qfSfGN”,”_8z_5C”,”PJdz7W”,”3QDZ0Y”,”1WHcLE”,”dHlxRh”,”7DeCCA”,”M4pchU”,”X39Ojm”,”gzFIw8″,”CWvkcL”,”xCwNt1″,”l6H5vD”,”Hgrhyo”,”9lPTHX”,”MyxN18″,”HKQFPT”,”KwOV1Z”,”AoLEtg”,”x9N_Dh”,”D0dF5Z”,”Knxjr7″,”4ItfM-“,”aqM4oG”,”3GTqa_”,”1ZdsaN”,”VwUieX”,”UaLTva”,”KB4cfU”,”HEemX4″,”QnohJ2″,”miRpRf”,”M4Ci5g”,”Uau69a”,”VswJjR”,”yIC5Nu”,”A8AD3f”,”kI6OFW”,”-qDq4b”,”jmC6mk”,”iCUE3I”,”zI2w6b”,”vF730k”,”ppW8My”,”6bd9WA”,”OYoFCQ”,”KqMS3F”,”qLI6tg”,”IBpJWf”,”PbGVd2″,”s1eoNx”,”wc54S1″,”lfA4fx”,”udMzMW”,”8fgG38″,”y-ABxT”,”Sxc0m2″,”BqoTCX”,”wU942v”,”IuX4Ar”,”zPgUM0″,”MWFqPp”,”6YNTzB”,”El2pbj”,”yydgdt”,”bhd70c”,”e0vlJc”,”7xf3ti”,”tmDVyI”,”eHdo3d”,”vB1dSR”,”z3PMnh”,”G6Uvud”,”X850ZG”,”XSy8QM”,”Pxaagl”,”J7ol2P”,”a2MVnz”,”UarIJl”,”2IPQDU”,”mxARhC”,”zoCfOB”,”GVTdZB”],”lazyLoadedModules”:[“4CrHtN”,”EkR174/BjesWH”],”renders”:[{“id”:”component_11″,”props”:{},”package”:”BqoTCX”}],”hydrations”:[{“id”:”component_14″,”props”:{},”package”:”EkR174″},{“id”:”component_1″,”props”:{},”package”:”A2N2VC”},{“id”:”component_2″,”props”:{},”package”:”_8z_5C”},{“id”:”component_3″,”props”:{},”package”:”4ItfM-“},{“id”:”component_4″,”props”:{},”package”:”iCUE3I”},{“id”:”component_5″,”props”:{},”package”:”zI2w6b”},{“id”:”component_6″,”props”:{},”package”:”OYoFCQ”},{“id”:”component_7″,”props”:{},”package”:”KqMS3F”},{“id”:”component_8″,”props”:{“additionalWrapperClass”:”withTopBorder”},”package”:”udMzMW”},{“id”:”component_9″,”props”:{“showVRcontent”:”true”,”marginTop”:”spacing-02″},”package”:”8fgG38″},{“id”:”component_12″,”props”:{},”package”:”J7ol2P”},{“id”:”component_13″,”props”:{},”package”:”mxARhC”},{“id”:”component_15″,”props”:{“marginTop”:”spacing-02″},”package”:”8fgG38″},{“id”:”component_16″,”props”:null,”package”:”zoCfOB”},{“id”:”component_10″,”props”:{},”package”:”GVTdZB”}]}};(this.$WP=this.$WP||[]).push([‘@ta/features’,function(e){return [function(){e(‘default’,__WEB_CONTEXT__.pageManifest.features);},[]]},[]]);]]>= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || html.clientHeight) && rect.right 0 && slUtils.isInViewport(elem[0])) { taRecord.trackImpressionEventOnPage('favorite_review_viewed', 'in_view', window.modelLocId); document.removeEventListener("scroll", trackFavReviewShownToUser); } } document.addEventListener("DOMContentLoaded", function(event) { var elem = document.getElementsByClassName("ownerFavLabel") || []; if(elem.length === 0) { // don't add handler if there's no favorite review return; } document.addEventListener("scroll", trackFavReviewShownToUser); }); return { }; }); });require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'common_location_content_header','handlers',['handlers']); /** * Private handlers for LocationContentHeaderWidget * @author xli * @since June 2017 */ define(['widget', 'ta/Core/TA.Record', 'ta/Core/TA.Event', 'ta/util/Cookie'], function(widget, taRecord, taEvent, taCookie){ 'use strict'; function _warOnClick(pid) { if (pid && pid > 0) { taCookie.setPIDCookie(pid); } taRecord.setEvtCookie(‘Reviews’, ‘click’, ‘write_review’, 0, ‘/UserReviewEdit’); } function _warOnClickForOwner(locationId, href, pid) { if (pid && pid > 0) { taCookie.setPIDCookie(pid); } taRecord.setEvtCookie(‘owner_cta’, ‘owner_visit_mc_middle’, locationId, 0, href); } function _openReviewSearchOverlay() { taEvent.fireEvent(‘review-search-overlay’); } return { warOnClick: _warOnClick, warOnClickForOwner: _warOnClickForOwner, openReviewSearchOverlay: _openReviewSearchOverlay }; });});if (require) {require([‘ta/rollupAmdShim’], function(rollupAmdShim) { rollupAmdShim.install([], [“ta”]); }); } else {if (window.ta&&ta.rollupAmdShim) {ta.rollupAmdShim.install([],[“ta”]);} } define(‘utils/AjaxData’, [‘ta’, “mixins/Events”, ‘lib/jquery-amd’], function(ta, Events, $) { ‘use strict’; function _noop() {}; function AjaxData(options) { options = options || {}; var events = new Events(“update”); var activeTimer = null; var pendingRequestTime = null; var pendingRequest = null; var activeRequest = null; var instance = this; var dataVersion = 0; var _ajaxFunc = options.ajaxFunc || $.ajax; var _transform = options.transformer || _noop; var dataTypeOption = options.dataType || “html”; var holdDataOption = !!options.holdData; var dataOnError = void(0); this.dataVersion = 0; function _isBusy() { return(pendingRequest !== null || activeRequest !== null); } function _stopRequest() { var ret = _isBusy(); var timer = activeTimer; var req = activeRequest; activeTimer = null; pendingRequest = null; activeRequest = null; if (req!==null) { try { req.abort(); } catch(e) { } } if (timer!==null) { clearTimeout(timer); } return ret; } function _startRequest() { var reqData = pendingRequest; pendingRequest = null; if (!reqData) { return; } var req; reqData.success = function(response){ if (activeRequest==req) { activeRequest=null; if (holdDataOption) { dataOnError=response; } instance.data=response; instance.error=void(0); instance.dataVersion=++dataVersion; _transform(instance, req, reqData.data); events.emit(“update”); } }; reqData.error = function(xhr, errorType, error) { if (activeRequest == req) { activeRequest = null; instance.data = dataOnError; instance.dataVersion=++dataVersion; instance.error = { type: errorType, error: error, status: xhr.status, responseText: xhr.responseText }; _transform(instance, req, reqData.data); events.emit(“update”); } }; req = _ajaxFunc(reqData); activeRequest = req; events.emit(“update”); } this.on = events.on.bind(events); this.off = events.off.bind(events); this.removeListener = events.removeListener.bind(events); this.isDone = function() { return !_isBusy(); }; this.isBusy = function() { return _isBusy(); }; this.clear = function() { var doupdate = _isBusy() || typeof(this.data)!==’undefined’ || typeof(this.error)!==’undefined’; _stopRequest(); dataOnError = void(0); instance.data = void(0); instance.error = void(0); instance.dataVersion = 0; _transform(instance); if (doupdate) { events.emit(“update”); } }; this.refresh = function(method, url, params, delayms, timeout) { _stopRequest(); if (!delayms || delayms < 0) { delayms=0; } pendingRequest={ type: method, url: url, data: params, dataType: dataTypeOption, xhrFields: {withCredentials: true} }; if (typeof timeout !== 'undefined') { pendingRequest.timeout = timeout; } activeTimer = setTimeout(_startRequest, delayms); instance.error = void(0); if (!holdDataOption) { instance.data = void(0); _transform(instance); } events.emit("update"); }; this.postJson = function(url, data, delayms, timeout) { _stopRequest(); delayms = delayms || 0; if (delayms = 0 ? '&' : '?'; for (var i=0; i=0; --i) { var key = _cacheKeyList[i]; var obj = _cacheByKey[key]; if (obj && !newCache[key]) { if (obj.hasClients() || (++nUnused =0; --i) { var obj = _cacheByKey[_cacheKeyList[i]]; if (obj.needsTravelInfo) { obj.invalidate(); } } } } function _onPricingModeUpdate() { _cleanCache(); for (var i=_cacheKeyList.length-1; i>=0; –i) { var obj = _cacheByKey[_cacheKeyList[i]]; if (obj.invalidateOnPricingModeUpdate) { obj.invalidate(); } } } function _requestData(rawData, url, params, sendTravelInfo, sendDefaultDates, reqNum, delay) { sendTravelInfo = sendTravelInfo && ta.page && ta.page.usingUnifiedDates; if (sendTravelInfo) { _travelInfoUsed = true; var travelInfo = ta.page.datesToQueryString(“STAYDATES”); if (!travelInfo && sendDefaultDates) { travelInfo = ta.page.defaultDatesToQueryString(“STAYDATES”); } if (travelInfo) { url+=”&” + travelInfo; } if (!_didListenerInit) { _didListenerInit = true; ta.page.on(“dateSelected”, _onTravelInfoChange); ta.page.on(“guestsSelected”, _onTravelInfoChange); require([‘trjs!common/Radio’], function(Radio) { if (!_pricingModeRadio) { _pricingModeRadio = Radio(‘web-component-pricingMode’); _pricingModeRadio.on(‘update’, function() { _onPricingModeUpdate(); }) } }); } } if (reqNum > 1) { if (reqNum > 20) { return; } url+=”&reqNum=” + reqNum; if (!(delay>=0)) { delay = 2000; } } else { delay=0; } if (!params) { rawData.refresh(“GET”, url, void(0), delay) } else { rawData.refresh(“POST”, url, params, delay); } resourceLoader.load(_resources, function() { _resourcesLoaded = true; _onRawUpdate(); }); } function _onRawUpdate() { if (_rawData.isBusy() || !_resourcesLoaded) { if (_pendingUpdateTimer) { clearTimeout(_pendingUpdateTimer); } _pendingUpdateTimer = void(0); return; } if (!_rawData.data) { if (_rawData.dataVersion !== 0) { if (!_this.error || _this.error !== _rawData.error) { _this.error = _rawData.error || “no content”; _pendingUpdateTimer = _pendingUpdateTimer || setTimeout(_doPendingUpdate,0); } } else if (_lastUpdateVersion !== 0) { _lastUpdateContent = _loadingContent; _lastUpdateVersion = _rawData.dataVersion; _lastUpdateDirectives=[]; if (_events.hasListeners(“update”)) { _pendingUpdateTimer = _pendingUpdateTimer || setTimeout(_doPendingUpdate,0); } } return; } if (_lastUpdateVersion === _rawData.dataVersion) { return; } try { var div = document.createElement(‘div’); div.innerHTML = _rawData.data; var doinstall = _installing; var head = document.head || document.getElementsByTagName(“head”)[0]; _lastUpdateDirectives = []; if (!reqOptions.noScript) { Array.prototype.forEach.call(div.querySelectorAll(‘script’), function(script) { if (doinstall) { var newScript = document.createElement(‘script’); newScript.setAttribute(‘type’, ‘text/javascript’); if (script.src) { newScript.src = script.src; } if (script.text) { newScript.text = script.text; } newScript.setAttribute(‘data-rup’, script.getAttribute(‘data-rup’)); head.appendChild(newScript); if (!script.src) { head.removeChild(newScript); } } script.parentNode.removeChild(script); }); } Array.prototype.forEach.call(div.querySelectorAll(‘style’), function(style) { if (doinstall) { head.appendChild(style); } else { style.parentNode.removeChild(style); } }); Array.prototype.forEach.call(div.querySelectorAll(‘[data-targetEvent]’), function(element) { _lastUpdateDirectives.push(element); element.parentNode.removeChild(element); }); if (doinstall) { _installing = false; _modulesInstalled[reqOptions.inlineResourceId] = true; } _lastUpdateContent = div.innerHTML; _lastUpdateVersion = _rawData.dataVersion; _rawData.data = void(0); } catch(e) { _this.error = “invalid HTML”; } _pendingUpdateTimer = _pendingUpdateTimer || setTimeout(_doPendingUpdate,0); } function _doPendingUpdate() { var nobodyCares = !_events.hasListeners(“update”); var div; _pendingUpdateTimer = void(0); _this.data = _lastUpdateContent; _this.dataVersion = _lastUpdateVersion; _events.emit(“update”); while((div = _lastUpdateDirectives.shift())) { var directive = div.getAttribute(“data-targetEvent”); if (directive === “repoll-required”) { if (nobodyCares) { _lastUpdateDirectives=[]; _this.data = _lastUpdateContent = _loadingContent; _this.dataVersion = _lastUpdateVersion = 0; return; } if (!(++_pollReqNum > 1)) { _pollReqNum = 2; } var delay = Number(div.getAttribute(“data-delay”)); _requestData(_rawData, requestUrl, reqOptions.reqParams, _sendTravelInfo, _sendDefaultDates, _pollReqNum, delay); } else { _events.emit(“data-targetEvent”, directive, div); } } } this.error = void(0); this.loadingData = _loadingContent; this.data = _lastUpdateContent; this.dataVersion = _lastUpdateVersion; this.needsTravelInfo = _sendTravelInfo; this.invalidateOnPricingModeUpdate = _invalidateOnPricingModeUpdate; this.on = _events.on.bind(_events); this.off = _events.off.bind(_events); this.removeListener = _events.removeListener.bind(_events); this.init = function() { _rawData.on(“update”, _onRawUpdate.bind(this)); }; this.isBusy = function() { return _rawData.isBusy() || _pendingUpdateTimer; }; this.isDone = function() { return !_rawData.isBusy() && !_pendingUpdateTimer; }; this.invalidate = function() { _rawData.clear(); _pollReqNum = 0; if (this.hasClients()) { _requestData(_rawData, requestUrl, reqOptions.reqParams, _sendTravelInfo,_sendDefaultDates, 0, 0); } else { _this.data = _lastUpdateContent = _loadingContent; _this.dataVersion = _lastUpdateVersion = 0; } }; this.hasClients = function() { return(_events.hasListeners(“update”)); }; this.load = function() { if (_rawData.isBusy()) { return; } else if (_rawData.dataVersion!==0) { setTimeout(function() { _events.emit(“update”); }, 1); return; } var params = reqOptions.reqParams; var blockDuplicateResources = !reqOptions.isWidget || !reqOptions.inlineResourceId || !_modulesInstalled[reqOptions.inlineResourceId]; if (blockDuplicateResources) { var resources = amdLoaders.getLoadedFilesParams(); _installing = true; params = (params ? shallowCopy(params) : {}); params.haveJses = resources.haveJses; params.haveCsses = resources.haveCsses; if (reqOptions.isWidget) { params.Action = “install”; } } _resources = reqOptions.resources; _pollReqNum = 0; _requestData(_rawData, requestUrl, params, _sendTravelInfo, _sendDefaultDates, 0, 0); }; } function _getData(url, options) { var keyUrl = _makeFullUrl(url, options.reqParams); if (keyUrl.length _cacheCheckSize) { _cleanCache(); } } return ajaxData; } return { loadData: function(url, options) { !options && (options = {}); var data = _getData(url, options); data.load(); return data; }, loadOverlayWidget: function(widgetType, options, servletName) { var url=”/OverlayWidgetAjax?Mode=”+widgetType; if (servletName) { url+=”&metaReferer=” + encodeURIComponent(servletName); } else if (typeof(crPageServlet)===’string’) { url+=”&metaReferer=” + encodeURIComponent(crPageServlet); } options = (options ? shallowCopy(options) : {}); options.inlineResourceId=widgetType; options.isWidget = true; var data = _getData(url, options); data.load(); return data; }, cleanCache: _cleanCache }; }); require([‘ta/p13n/placements’], function(placements) { var define = placements.define.bind(placements,’location_reviews_list’,’handlers’,[‘handlers’]); define([“placement”, ‘lib/jquery-amd’, ‘overlays/ajaxUtil’, ‘ta/Core/TA.Event’, ‘utils/urlDecoder’], function(placement, $, ajaxUtil, taEvent, urlDecoder) { var _container = $(“#”+placement.id + ” .listContainer”); var _listingInfos=[]; var _listingById={}; var _expansionSoftGate = !!_container.children(“.info[data-expansionSoftGate=true]”)[0]; function _initExpansion() { //HR can replace the placement content, so we have to reinitialize everything _container = $(“#”+placement.id + ” .listContainer”); _listingInfos=[]; _listingById={}; _container.children(“[data-reviewId]”).each( function(index,elem) { var collapsed = elem.getAttribute(“data-collapsed”)===”true”; var deferred = elem.getAttribute(“data-deferred”)===”true”; var reviewId = Number(elem.getAttribute(“data-reviewId”)); var showMt = elem.getAttribute(“data-showMt”)===”true”; var info = { elem: elem, id: reviewId, deferred: deferred, saved: false, frozen: (!collapsed && !deferred), expanded: (!collapsed && !deferred), showMt: showMt }; _listingInfos.push(info); _listingById[reviewId]=info; }); _container.off(“review:expand”, _expandReview); _container.on(“review:expand”, _expandReview); _container.off(“review:collapse”, _collapseReview); _container.on(“review:collapse”, _collapseReview); _loadDeferred(); $(“.seeMoreReviewsButton”, _container).click(function() { $(“.seeMoreReviewsButton”, _container).hide(); $(“.collapsedReviewsList”, _container).show(); }); } function _updateContent(reviewId) { var info=_listingById[reviewId]; if (!info || !info.source || info.frozen) { return; } var source = info.source; var listing = info.elem; if (source.isLoading) { $(listing).addClass(“listingLoading”); } else if (source[reviewId]) { $(listing).removeClass(“listingLoading”); listing.innerHTML = source[reviewId]; ta.prwidgets.initWidgets(listing); } else { $(listing).removeClass(“listingLoading”); //loading didn’t work. reset so the user can try again if (listing.expandedSource === source) { listing.expandedSource = undefined; listing.expanded = false; } if (listing.collapsedSource === source) { listing.collapsedSource = undefined; } } } function _setSource(reviewId, expand) { var info=_listingById[reviewId]; if (!info || info.frozen) { return; } if (!!info.expanded === !!expand && (expand || !info.deferred)) { return; } //save current content if necessary if (info.expanded && !info.expandedSource) { info.expandedSource = {}; info.expandedSource[reviewId]= info.elem.innerHTML; } if (!info.expanded && !info.collapsedSource && !info.defered) { info.collapsedSource = {}; info.collapsedSource[reviewId]= info.elem.innerHTML; } info.expanded = expand; info.source = (expand ? info.expandedSource : info.collapsedSource); if (expand) { info.wasExpanded=true; // if we collapse it, then it won’t be auto-expanded again } _updateContent(reviewId); } function _onAjaxChange(sourceObj, data) { if (data.isBusy() || !sourceObj.isLoading) { return; } var div = document.createElement(‘div’); $(div).html(data.data).children(“[data-reviewListingId]”).each(function(index, listing){ sourceObj[Number(listing.getAttribute(“data-reviewListingId”))] = listing.innerHTML; }); sourceObj.isLoading = false; $.each(_listingInfos, function(i,v) { if (v.source===sourceObj) { _updateContent(v.id); } }); } //this bubbles up from widgets function _expandReview(event, elem, reviewId) { var expandIds=[]; var loadIds=[]; var found=false; var newSource={}; $.each(_listingInfos,function(index,info){ //expand the target review and all subsequent reviews found = found||(info.id === reviewId); if (found && !info.expanded && !info.frozen && (info.id === reviewId || !info.wasExpanded)) { expandIds.push(info.id); if (!info.expandedSource) { info.expandedSource = newSource; loadIds.push(info.id); } } }); if (loadIds.length>0) { //we need to load some content var expandedRespWidgetChoice = _container.attr(‘data-responsiveType’) === ‘VR’ ? “EXPANDED_VR_REVIEW_RESPONSIVE” : “EXPANDED_REVIEW_RESPONSIVE”; var widgetChoice = _container.attr(‘data-responsive’) === ‘true’ ? expandedRespWidgetChoice : “EXPANDED_HOTEL_REVIEW_HSX”; var data = ajaxUtil.loadOverlayWidget(“EXPANDED_HOTEL_REVIEWS”, { loadingContent: “”, noCache: true, reqParams: { reviews: String(loadIds), widgetChoice: widgetChoice } }); newSource.isLoading=true; data.on(“update”,_onAjaxChange.bind({},newSource,data)); _onAjaxChange(newSource,data); //just in case it’s cached } $.each(expandIds,function(i,v){ _setSource(v, true); }); if (_expansionSoftGate) { _expansionSoftGate=false; require([“trjs!ta/registration/RegOverlay”], function (RegOverlay) { RegOverlay.show({type: ‘dummy’}, event.target||elem, { flow: ‘CORE_COMBINED’, pid: 39415, onSuccess: function(){} }); }); } // ADS-2647: Firing an event when reviews are expanded // Currently listened to by _Review pages in Ads.js to refresh the ads taEvent.fireEvent(‘ReviewExpanded’); return false; }; //this bubbles up from widgets function _collapseReview(event, elem, reviewId) { $(“html, body”).animate({ scrollTop: ($(“#review_” + reviewId).offset().top – 54) // 54 to accommodate persistent tab bar }, 200); _setSource(reviewId, false); }; //Some reviews aren’t supposed to be crawled by search bots, so their //content is not included on page load. We have to inject via ajax after function _loadDeferred() { var loadIds=[]; var idxMtIds=[]; var newSource={}; var loadDeferredExpanded = _container.attr(‘data-loadDeferredExpanded’) === ‘true’; var deferredLoadingFunction = loadDeferredExpanded ? “EXPANDED_HOTEL_REVIEWS” : “COLLAPSED_HOTEL_REVIEWS”; var contextChoice = _container.attr(‘data-contextChoice’); var responsiveWidgetChoice = _container.attr(‘data-responsiveType’) === ‘VR’ ? “VR_REVIEW_RESPONSIVE” : “REVIEW_RESPONSIVE”; var widgetChoice = _container.attr(‘data-responsive’) === ‘true’ ? (loadDeferredExpanded ? “EXPANDED_REVIEW_RESPONSIVE” : responsiveWidgetChoice) : (loadDeferredExpanded ? “EXPANDED_HOTEL_REVIEW_HSX” : “BASIC_HOTEL_REVIEW”); //find all the deferred reviews $.each(_listingInfos,function(index,info){ if (info.deferred && !info.frozen) { info.collapsedSource = newSource; loadIds.push(info.id); } if (info.showMt) { idxMtIds.push(info.id); } }); if (loadIds.length>0) { //we need to load some content var data = ajaxUtil.loadOverlayWidget(deferredLoadingFunction, { loadingContent: “”, reqParams: { reviews: String(loadIds), idxMtReviews: String(idxMtIds), contextChoice: contextChoice, widgetChoice: widgetChoice } }); newSource.isLoading=true; data.on(“update”,_onAjaxChange.bind({},newSource,data)); _onAjaxChange(newSource,data); //just in case it’s cached } $.each(loadIds,function(i,v){ _setSource(v, false); }); }; _initExpansion(); //we need to reprocess our list after HR updates it taEvent.on(“review-list-update”, _initExpansion); return { goToCommerceLink: urlDecoder.goToCommerceLinkWithProductCode }; }); }); define(‘overlays/styles/popover’, [‘api-mod’, ‘lib/jquery-amd’, ‘overlays/utils’], function(api, $, util){ ‘use strict’; function buildDOM( dir, style, cssStyles, elementType ){ this.container = api.createElement( elementType, { ‘class’: ‘ui_overlay ui_popover arrow_’ + util.getArrowDir(dir, this.sourceElement, this.domParent) + ‘ ‘ + style, ‘style’: cssStyles }); this.arrow = api.createElement( ‘div’, { ‘class’: ‘arrow’ }); this.container.appendChild( this.arrow ); this.header = api.createElement( ‘div’, { ‘class’: ‘header_text’ }); this.container.appendChild( this.header ); this.inner = api.createElement( ‘div’, { ‘class’: ‘body_text’ }); this.container.appendChild( this.inner ); this.contentElement = this.inner; this.close = api.createElement( ‘div’, { ‘class’: ‘ui_close_x’ }); this.container.appendChild( this.close ); } var Popover = function( elmt, dir, options, header, content, elementType ){ elmt = $(elmt); options = options || elmt.attr(‘data-popover’) || ”; header = header || elmt.attr(‘data-header’ ) || ”; content = content || elmt.attr(‘data-content’) || ”; var outerStyles = elmt.attr(“data-style”) || ”; var headerSelector = elmt.attr(‘data-header-element’); var headerCopySelector = elmt.attr(‘data-header-copy’); return function(){ buildDOM.call( this, dir, options, outerStyles, elementType || ‘span’); this.updateContent( content ); if (header) { util.injectContent( this.header, elmt, header, headerSelector, headerCopySelector ); } api.addEvent( this.close, ‘click’, api.bind(function() {this.hide.apply(this, arguments);}, this, ‘close-button’) ); }; }; return Popover; }); define(‘overlays/styles/dropdown’, [‘vanillajs’, ‘api-mod’], function(vanilla, api) { ‘use strict’; function buildDOM( dir, classes, styles, elementType ){ this.container = api.createElement( elementType || ‘span’, { ‘class’: ‘ui_overlay ui_dropdown ‘ + classes, ‘style’: styles }); this.contentElement = this.container; } var Dropdown = function( elmt, dir, options, content, containerStyles, elementType ){ options = options || elmt.getAttribute( ‘data-dropdown’ ) || ”; var styles = containerStyles || elmt.getAttribute(“style”) || ”; return function(){ buildDOM.call( this, dir, options, styles, elementType ); this.updateContent( content ); }; }; return Dropdown; }); define(‘overlays/options/ajax’, [‘vanillajs’, ‘overlays/ajaxUtil’], function(vanilla, ajaxUtil) { ‘use strict’; function _isUrl(url) { return url && url.match(/^((https?:)?(//)?([da-z.-u00a1-uffff]+).([a-z.u00a1-uffff]{2,6}))?(/[w]+)*(?[/w.+%=-#&/!u00a1-uffff]+)?$/); } function _AjaxConstructor(url, options) { if (!options) { options = {}; } function _AjaxMixin() { if (this.sourceElement) { url = url || this.sourceElement.getAttribute(‘data-url’); if (options.noCache === undefined) { options.noCache = this.sourceElement.getAttribute(‘data-ajaxNoCache’); } if (!options.resources) { options.resources = this.sourceElement.getAttribute(‘data-resources’); if (options.resources) { options.resources = options.resources.replace(/[[]]/g, ”).split(/[ ,]+/); } } if (!options.invalidateOnPricingModeUpdate) { options.invalidateOnPricingModeUpdate = this.sourceElement.getAttribute(‘data-invalidateOnPricingModeUpdate’); } } if (!url) { return; } var _ajaxData; var _shownVersion = 0; var _onUpdate = (function() { if (_ajaxData.dataVersion !== _shownVersion) { this.contentElement.innerHTML = _ajaxData.data; this.emit(‘contentsUpdated’); _shownVersion = _ajaxData.dataVersion; if (require.defined(‘ta/prwidgets’)) { require(‘ta/prwidgets’).initWidgets(this.contentElement); } } this.reposition(); setTimeout(this.reposition.bind(this), 1); this.emit(‘contentLoaded’, _ajaxData.error); }).bind(this); var loadedUrl; var _loadCurrentUrl = (function(skipLoadingState) { if (loadedUrl == url) { this.reposition(); this.emit(‘contentsUnchanged’); return; } if (!options.skipInvalidate) { _ajaxData && _ajaxData.invalidate(); } loadedUrl = url; _ajaxData = ajaxUtil.loadData(url, options); if (!skipLoadingState) { this.contentElement.innerHTML = _ajaxData.data; } this.emit(‘contentsUpdated’); this.reposition(); _shownVersion = _ajaxData.dataVersion; if (require.defined(‘ta/prwidgets’)) { require(‘ta/prwidgets’).initWidgets(this.contentElement); } _ajaxData.on(“update”, _onUpdate); _ajaxData.on(“data-targetEvent”, _onDataEvent); }).bind(this); var _onDataEvent = this.emit.bind(this, “data-targetEvent”); this.on(“show”, _loadCurrentUrl); this.on(“hide”, function() { if (_ajaxData) { _ajaxData.off(“update”, _onUpdate); _ajaxData.off(“data-targetEvent”, _onDataEvent); _ajaxData = void(0); } }); var _updateContent = this.updateContent; this.updateContent = function(newUrl, skipLoadingState) { if (!newUrl) { url = ”; newUrl = this.sourceElement.getAttribute(‘data-url’); return newUrl ? this.updateContent(newUrl) : _updateContent.apply(this, arguments); } if (!_isUrl(newUrl)) { url = ”; return _updateContent.apply(this, arguments); } url = newUrl; if (this.isOpen()) { _loadCurrentUrl(skipLoadingState); } return this; }; } return _AjaxMixin; } return _AjaxConstructor; }); define(‘overlays/options/pinnable’, [‘vanillajs’, ‘api-mod’, ‘ta/Core/TA.Event’], function(vanilla, api, taEvent) { ‘use strict’; return function() { var _this = this; var shade; this.pinned = false; this.invisibleBackdrop = false; function _checkShowPin() { if (_this.pinned && api.inDocument(_this.container) && !shade) { var classString = _this.invisibleBackdrop ? ‘ui_backdrop’ : ‘ui_backdrop dark’; shade = api.createElement( ‘div’, {‘class’ : classString}); shade.setAttribute(“style”, “z-index:499”); api.addEvent(shade, “click”, function() {_this.hide();}); _this.domParent.appendChild( shade ); } } function _pin(invisibleBackdrop) { _this.pinned = true; _this.invisibleBackdrop = invisibleBackdrop; _checkShowPin(); } this.pin = _pin; this.on(‘show’, function(){ _checkShowPin(); taEvent.on(_this.sourceElement, “click”, _pin); }); this.on(‘hide’, function(){ if (shade) { _this.domParent.removeChild(shade); shade=void(0); taEvent.off(_this.sourceElement, “click”, _pin); } }); }; }); define(‘overlays/options/closeOnWindowshadeClick’, [‘vanillajs’, ‘api-mod’], function(vanillajs, api){ ‘use strict’; return function() { var overlay = this; api.addEvent(this.shade, ‘click’, function(){ overlay.hide(‘windowshade’); }); }; }); define(‘overlays/options/repositionOnEvent’, [‘vanillajs’, ‘api-mod’], function(vanillajs, api) { ‘use strict’; function _reposition() { this.emit(‘positionDirty’); } return function(target, eventName) { return function() { var eventList = eventName.splice ? eventName : [eventName]; var handler = api.bind(_reposition, this); this.on(‘show’, function () { eventList.forEach(function(evt) { api.addEvent(target, evt, handler); }); }).on(‘hide’, function () { eventList.forEach(function(evt) { api.removeEvent(target, evt, handler); }); }); }; }; }); define(‘overlays/styles/default’, [‘lib/jquery-amd’], function($){ ‘use strict’; function buildDOM(style, header, subheader, tagName){ this.container = $(”) .addClass(‘ui_overlay’) .addClass(style || ”) .get(0); if (header) { this.header = $(”, { ‘class’: ‘header_text’ }) .html(header) .appendTo(this.container) .get(0); } if (subheader) { this.subheader = $(”) .addClass(‘subheader_text’) .html(subheader) .appendTo(this.container) .get(0); } this.contentElement = $(”) .addClass(‘body_text’) .appendTo(this.container) .get(0); this.close = $(”) .addClass(‘ui_close_x’) .appendTo(this.container) .get(0); } var Default = function(elmt, options, header, subheader, content, tagName){ options = (options || ”) + (elmt && (‘ ‘ + elmt.getAttribute(‘data-overlay’)) || ”); header = header || (elmt && elmt.getAttribute( ‘data-header’ )) || ”; subheader = subheader || (elmt && elmt.getAttribute( ‘data-subheader’ )) || ”; return function(){ buildDOM.call(this, options, header, subheader, tagName); this.updateContent(content); $(this.close).on(‘click’, function(){ this.hide.apply(this, arguments.length ? arguments : [‘close-button’]); }.bind(this)); }; }; return Default; }); define(‘overlays/position/conditional’, [ ‘overlays/position/base’ ], function( Position ){ ‘use strict’; return function(condition, mixinT, mixinF){ var f = Position(); f.label = ‘conditional’; var previous; f.onPosition = function(){ var c = (condition() ? mixinT : mixinF); if (previous && c !== previous){ previous.offPosition && previous.offPosition.apply(this); } (previous = c).onPosition && previous.onPosition.apply(this); }; f.offPosition = function(){ previous = null; var m = (condition() ? mixinT : mixinF); m.offPosition && m.offPosition.apply(this); }; return f; }; }); define(‘overlays/position/fullscreen’, [ ‘lib/jquery-amd’, ‘overlays/position/base’, ‘overlays/options/disableBodyScroll’ ], function( $, Position, disableBodyScroll ){ ‘use strict’; return function(skipBodyTopPreservation){ var position = Position(); var stopScroll = disableBodyScroll(skipBodyTopPreservation); function composed() { position.call(this); stopScroll.call(this); } composed.onPosition = position.onPosition = function(){ $(this.container).css({ position: ‘fixed’, top: 0, left: 0, bottom: 0, right: 0, height: ‘auto’, width: ‘auto’ }) .addClass(‘fullscreen’); }; composed.offPosition = position.offPosition = function(){ $(this.container).removeClass(‘fullscreen’); }; return composed; }; }); define(‘overlays/ux/elementToggle’, [ ‘lib/jquery-amd’ ], function( $ ){ ‘use strict’; return function(evt, elt){ elt && (elt[‘on’ + evt.type] = null); var type = evt.type || ‘click’; return function(){ $(this.sourceElement).on(type, function(evt){ evt.stopPropagation(); if (!this.isOpen()){ this.show(); } else if (type == ‘click’){ this.hide(); } }.bind(this)); }; }; }); define(‘overlays/support/radio’, [ ‘common/Radio’ ], function( Radio ){ ‘use strict’; return { hide: function(channel, evt){ channel || (channel = ‘overlays’); evt || (evt = ‘shown’); return function(){ var overlay = this; var radio = Radio(channel); var hide = function(o){ o != overlay && overlay.hide(); }; this .on(‘show’, function(){ radio.on(evt, hide); }) .on(‘hide’, function(){ radio.off(evt, hide); }); }; }, announce: function(name, channel, evt){ channel || (channel = ‘overlays’); evt || (evt = ‘shown’); return function(){ var overlay = this; var radio = Radio(channel); this.on(‘show’, function(){ radio.emit(evt, overlay, name); }); }; } }; }); define(‘styleguide/overlays/Modal’, [ ‘lib/jquery-amd’, ‘utils/responsive’, ‘overlays/Overlay’, ‘overlays/styles/default’, ‘overlays/styles/windowshade’, ‘overlays/position/autosize’, ‘overlays/position/conditional’, ‘overlays/position/center’, ‘overlays/position/fullscreen’, ‘overlays/options/repositionOnEvent’, ‘overlays/ux/elementToggle’, ‘overlays/options/closeOnWindowshadeClick’, ‘overlays/options/closeOnDocClick’, ‘overlays/support/radio’ ], function( $, Responsive, Overlay, Default, WindowShade, Autosize, Position, Center, Fullscreen, RepositionOnEvent, Toggle, CloseOnWindowshadeClick, CloseOnDocClick, OverlayRadio ){ ‘use strict’; return function(evt, elt){ var mixins = [ Default(elt, ‘ui_modal’), Position(Responsive.mobile, Fullscreen(), Center()), Autosize(0), RepositionOnEvent(window, ‘resize’), OverlayRadio.hide(), OverlayRadio.announce(), Array.prototype.slice.call(arguments, 2) ]; if (evt) { mixins.push(Toggle(evt, elt)); } var options = elt && elt.getAttribute(‘data-sg-overlay’) || ”; if (options.indexOf(‘nobackdrop’) (docw – elmtx – elmtw) ? “leftEvenInRtl” : “rightEvenInRtl”); } catch(e) { pos = “right”; } } var classes = options.classes | “”; var url = _makeBaseUrl(widgetChoice, options); options.reqParams = reqParams; options.inlineResourceId = widgetChoice; options.isWidget = true; var mixins = [Popover(elmt,pos,classes,””), Ajax(url, options), positions[pos](dir, false), pinnableOption]; if (options.mixins && options.mixins.length>0) { mixins.push.apply(mixins, options.mixins); } var overlay = new Overlay(elmt, mixins); if (triggerType === “click”) { overlay.pin(options.invisibleBackdrop); } overlay.show(); anchorState.overlay = overlay; _bindOverlayEvents(overlay, anchorState); options.onLoad && overlay.on(‘contentsUpdated’, options.onLoad); } function showLightbox(widgetChoice, reqParams, options) { options = options || {}; var pos = (options.position || ‘center’).trim().split(‘ ‘)[0]; var url = _makeBaseUrl(widgetChoice, options); options.reqParams = reqParams; options.inlineResourceId = widgetChoice; options.isWidget = true; var mixins = [Modal(null, null, options.classes), Ajax(url, options), positions[pos](void(0), true), WindowShade(), closeOnWindowshadeClickOption, repositionOnEventOption(window,’resize’)]; if (options.mixins && options.mixins.length>0) { mixins.push.apply(mixins, options.mixins); } var sourceElement = null; if (options.sourceElement) { sourceElement = options.sourceElement; } var overlay = new Overlay(sourceElement, mixins); overlay.show(); return overlay; } function showStyleguideModal(widgetChoice, reqParams, options) { options = options || {}; var url = _makeBaseUrl(widgetChoice, options); options.reqParams = reqParams; options.inlineResourceId = widgetChoice; options.isWidget = true; var mixins = [Ajax(url, options)]; if (options.mixins && options.mixins.length > 0) { mixins.push.apply(mixins, options.mixins); } return styleguideModal(null, options.sourceElement || null, mixins); } function triggerFlyout(evnt, elmt, widgetChoice, reqParams, options) { evnt = evnt || window.event; elmt = elmt || evnt.currentTarget; var type = (evnt && evnt.type) || “click”; if (evnt) { api.stopEvent(evnt); } var anchorState = _getAnchorState(elmt,widgetChoice); if (type === “click”) { if (!anchorState.overlay) { _showFlyoutNow(elmt, type, widgetChoice, reqParams, options); } } else { if (anchorState.overlay) { if (anchorState.overlay.prw_leaveTimer) { clearTimeout(anchorState.overlay.prw_leaveTimer); delete anchorState.overlay.prw_leaveTimer; } return false; } if (anchorState.showtimer) { return false; } if (!anchorState.hasLeaveHandler) { api.removeEvent(elmt, “mouseleave”, _anchorLeaveHandler); api.addEvent(elmt, “mouseleave”, _anchorLeaveHandler); anchorState.hasLeaveHandler = true; } anchorState.showtimer = setTimeout(function() { _showFlyoutNow(elmt, type, widgetChoice, reqParams, options); }, options.delay || 300); } return false; } function showDropdown(evnt, elmt, widgetChoice, reqParams, options) { evnt = evnt || window.event; elmt = elmt || evnt.currentTarget; if (evnt) { api.stopEvent(evnt); } options = options || {}; var pos = (options.position || ‘below’).trim().split(‘ ‘)[0]; var url = _makeBaseUrl(widgetChoice, options); options.reqParams = reqParams; options.inlineResourceId = widgetChoice; options.isWidget = true; var mixins = [ DropDown(elmt, pos, options.classes, null, options.containerStyles, options.elementType || ‘div’), Ajax(url, options), positions[pos](void(0), true) ]; if (options.mixins && options.mixins.length>0) { mixins.push.apply(mixins, options.mixins); } var overlay = new Overlay(elmt, mixins); overlay.show(); return overlay; } return { triggerFlyout: triggerFlyout, showLightbox: showLightbox, showDropdown: showDropdown, showStyleguideModal: showStyleguideModal }; }); define(‘common/metric-recorder’, [‘babel/babel-helpers’, ‘ajax-request’], function (babelHelpers, request) { return function (metrics) { return request({ ‘method’: ‘POST’, ‘url’: ‘/MetricsAjax’, ‘x-requested-by’: require(‘page-model’).JS_SECURITY_TOKEN, ‘data’: ‘metricsData=’ + encodeURIComponent(JSON.stringify(metrics)) }); }; }); define(‘utils/uuid’, [‘babel/babel-helpers’], function (babelHelpers) { return function () { return ‘xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx’.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0; var v = c === ‘x’ ? r : r & 0x3 | 0x8; return v.toString(16); }); }; }); define(‘hotels/tracking/timing’, [‘babel/babel-helpers’, ‘common/metric-recorder’, ‘utils/uuid’, ‘ta/Core/TA.PageVisibility’], function (babelHelpers, recordMetrics, uuid, visibility) { var _enabled = false; var _validTimers = {}; function enable() { if (_enabled) { return; } _enabled = true; visibility.addBlurListener(function () { return _validTimers = {}; }); } function start(metric, locid) { if (!_enabled) { return function () { return Promise.resolve(); }; } var nonce = uuid(); _validTimers[nonce] = true; var startTime = Date.now(); return function () { if (!_validTimers[nonce]) { return Promise.resolve(); } delete _validTimers[nonce]; var delta = Date.now() – startTime; return recordMetrics([{ name: metric, value: delta, labels: [locid] }]); }; } return { enable: enable, start: start }; }); define(“members/memberOverlay”, [‘utils/stopevent’, ‘overlays/widgetoverlays’, ‘common/trackingStreams’, ‘utils/responsive’, ‘amdloaders’, ‘hotels/tracking/timing’, ‘common/Radio’], function(stopEvent, widgetoverlays, tracking, Responsive, Loaders, timeTracking, radio) { var ANCHOR_INIT_KEY = “members_memberOverlay_init”; function _handleTriggerEvent(event, elmt, memberDivId, trackingPlacement, trackAnchorType) { if (!event || (event.type !== “click” && event.type !== “mouseenter” && event.type !== “mouseover”)) { return; } var isMobile = Responsive.mobile(); if (isMobile && event.type !== ‘click’) { return false; } if (event.type === “click”) { stopEvent(event); } var uid = “”; var src = “”; var catid = “”; var fus = false; var partner = false; var params = memberDivId.split(“-“); for (var i = 0; i 0 && arguments[0] !== undefined ? arguments[0] : ”; var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ”; if (_viewModeIsCurrent(viewMode)) { trackingStreams.trackEvent(PAGE_PROPERTIES, viewMode, value, LOC_ID); } } function trackSimpleAction(pageAction) { trackingStreams.trackEvent(PAGE_PROPERTIES, pageAction, ”, LOC_ID); } function _viewModeIsCurrent(mode) { var classNameToVerify = void 0; if (mode.includes(‘grid_view’)) { classNameToVerify = GRID_VIEW_CLASS_NAME; } else if (mode.includes(‘detail_view’)) { classNameToVerify = HERO_VIEW_CLASS_NAME; } else { return false; } return $(PHOTO_CONTAINER_SELECTOR).hasClass(classNameToVerify); } var _recordWindowResize = throttle(function () { setTimeout(function () { var newWidth = $(window).width(); var newHeight = $(window).height(); if (newWidth !== prevWidth || newHeight !== prevHeight) { trackingStreams.trackEvent(‘screenSizeRecord’, ‘resize’, ‘s’ + prevWidth + ‘x’ + prevHeight + ‘b’ + newWidth + ‘x’ + newHeight, ”); prevWidth = newWidth; prevHeight = newHeight; } }, RESIZE_TIMEOUT); }, RESIZE_TIMEOUT); function attachResizeTracker() { prevHeight = $(window).height(); prevWidth = $(window).width(); $(window).off(‘resize’, _recordWindowResize).on(‘resize’, _recordWindowResize); } function detachResizeTracker() { $(window).off(‘resize’, _recordWindowResize); } function recordArrowClick() { responsive.desktop() && taEvent.fireEvent(‘galNavClick’); trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_DETAIL_ARROW, null); } function recordBackToGalleryClick() { trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_DETAIL_GALLERY_CLICK, null, LOC_ID); } function recordPhotoStripArrowClick() { trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_PHOTO_STRIP_ARROW_CLICK, null, LOC_ID); } function recordNavArrowVisibilityChange(shown) { var pageAction = shown ? “detail_view_show_nav_click” : “detail_view_hide_nav_click”; trackPhotoViewerEvent(PAGE_PROPERTIES, pageAction, null, LOC_ID); } function recordGridDropdownAbandonment(pageAction) { trackPhotoViewerEvent(PAGE_PROPERTIES, pageAction, PRODUCT_ATTRIBUTE_DROPDOWN_ABANDONED, LOC_ID); } function recordAlbumDropdownAbandonment(pageAction) { trackPhotoViewerEvent(PAGE_PROPERTIES, pageAction, PRODUCT_ATTRIBUTE_DROPDOWN_ABANDONED, LOC_ID); } function recordCaptionReviewClick() { trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_CAPTION_REVIEW_CLICK, null, LOC_ID); } function recordCaptionAttributionUrlClick() { trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_CAPTION_ATTRIBUTION_URL_CLICK, null, LOC_ID); } function recordHeroClickOnDesktop() { responsive.desktop() && trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_DESKTOP_HERO_CLICK, null, LOC_ID); } function recordPhotoSwipe() { trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_DETAIL_SWIPE, null); } function recordFilmstripThumbClick() { responsive.mobile() && taEvent.fireEvent(‘galThumbClick’); } function recordGridTileClick() { var mediaId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1; var mediaAlbum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1; var mediaGroupFilter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1; var mediaType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ”; var storyboardId = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_GRID_THUMB_CLICK, mediaId + ‘|’ + mediaAlbum + ‘|’ + mediaGroupFilter + ‘|’ + mediaType); if (mediaType === 1 && mediaId !== storyboardId) { trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_PROPERTY_VIDEO_GRID_THUMB_CLICK, mediaId + ‘|’ + mediaAlbum + ‘|’ + mediaGroupFilter + ‘|’ + mediaType); } } function recordHeroThumbClick() { var mediaId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1; var mediaAlbum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1; var mediaGroupFilter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1; var mediaType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ”; trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_HERO_THUMB_CLICK, mediaId + ‘|’ + mediaAlbum + ‘|’ + mediaGroupFilter + ‘|’ + mediaType); responsive.desktop() && taEvent.fireEvent(‘galThumbClick’); } function recordFilterItemClick(value, element, filterName) { var isHeroView = $(element).closest(PHOTO_CONTAINER_SELECTOR).hasClass(HERO_VIEW_CLASS_NAME); var isFlyout = $(element).hasClass(FLYOUT_ITEM_CLASS_NAME); var view = isHeroView ? ‘detail’ : ‘grid’; var action = isFlyout ? ‘dropdown_open’ : ‘dropdown_select’; trackPhotoViewerEvent(PAGE_PROPERTIES, ” + view + suffixMap[filterName], action + ‘_’ + value); } function recordHelpfulClick(mediaId, mediaAlbum, mediaGroupFilter, mediaType) { trackPhotoViewerEvent(PAGE_PROPERTIES, PAGE_ACTION_HELPFUL_CLICK, mediaId + ‘|’ + mediaAlbum + ‘|’ + mediaGroupFilter + ‘|’ + mediaType); } return { attachResizeTracker: attachResizeTracker, detachResizeTracker: detachResizeTracker, trackPhotoViewerEvent: trackPhotoViewerEvent, trackPhotoViewerImpression: trackPhotoViewerImpression, trackSimpleAction: trackSimpleAction, recordBackToGalleryClick: recordBackToGalleryClick, recordCaptionReviewClick: recordCaptionReviewClick, recordCaptionAttributionUrlClick: recordCaptionAttributionUrlClick, recordPhotoStripArrowClick: recordPhotoStripArrowClick, recordGridDropdownAbandonment: recordGridDropdownAbandonment, recordAlbumDropdownAbandonment: recordAlbumDropdownAbandonment, recordHeroClickOnDesktop: recordHeroClickOnDesktop, recordNavArrowVisibilityChange: recordNavArrowVisibilityChange, recordArrowClick: recordArrowClick, recordPhotoSwipe: recordPhotoSwipe, recordFilmstripThumbClick: recordFilmstripThumbClick, recordGridTileClick: recordGridTileClick, recordHeroThumbClick: recordHeroThumbClick, recordFilterItemClick: recordFilterItemClick, recordHelpfulClick: recordHelpfulClick }; }); define(‘utils/HistoryManager’, [], function() { ‘use strict’; function HistoryManager() { var m_popCallbacks = {}; var m_otherCallbacks = {}; var m_suppressHandlers = false; this.pushState = function(state, title, path, callback) { var id = _generateId(); m_popCallbacks[id] = callback; state.id = id; history.pushState(state, title, path); }; this.replaceState = function(state, title, path, callback) { var id = _generateId(); m_popCallbacks[id] = callback; state.id = id; history.replaceState(state, title, path); }; this.addCallback = function(type, fn) { if (!m_otherCallbacks[type]) { m_otherCallbacks[type] = []; } m_otherCallbacks[type].push(fn); }; this.removeCallback = function(type, fn) { if (m_otherCallbacks[type]) { var idx = m_otherCallbacks[type].indexOf(fn); if (idx >= 0) { m_otherCallbacks[type].splice(idx, 1); } } }; this.doCallbacks = function(type) { if (m_otherCallbacks[type]) { m_otherCallbacks[type].each(function(fn) { fn(); }); } }; this.isSupported = function() { return (typeof history != ‘undefined’) && (‘pushState’ in history); }; this.disableCallbacks = function(disabled) { m_suppressHandlers = disabled; }; function _generateId() { return (new Date().getTime()) + ” + Math.random(); } function _popState(evnt) { var state = evnt.state; if (!m_suppressHandlers && state && state.id) { var id = state.id; var cb = m_popCallbacks[id]; cb && cb(state.data); } } window.addEventListener(‘popstate’, _popState); } return HistoryManager; }); 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 1 && arguments[1] !== undefined ? arguments[1] : false; var fromHistoryPop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var overlayClass = ‘no_padding’; params.currentHeroId = params.ff; if (!_overlay) { _overlay = new Overlay(document.body, modalOverlay(null, ”, overlayClass), fullscreenOverlay(), closeOnEscape, closeOnEmit(OfferClickEvents, ‘beforeClick’, function (token) { return token.isBooking; }), overlayAjax(buildUrl(params), { resources: [], noCache: true, skipInvalidate: true }), overlayRadio.hide(‘responsive-photoviewer’, ‘close’) ); _addHistoryManagement(autoOpenFromUrlFragment, params); _overlay.on(‘contentLoaded’, _overlayContentLoaded); _overlay.on(‘contentsUnchanged’, function () { radio(‘responsive-photoviewer’).trigger(‘contents-unchanged’); }); _overlay.on(‘data-targetEvent’, taFireEvent.fireEvent); _overlay.on(‘hide’, function () { radio(‘responsive-photoviewer’).trigger(‘overlay-hide’); tracking.trackSimpleAction(‘photoviewer_close_click’); tracking.detachResizeTracker(); if (_resetCalendarPop) { taStore.remove(“suppressCalendarPop”); } var datePickerElement = $(“[data-datetype=’CHECKIN’]”).get(0); if (popCalendar.shouldPop(datePickerElement)) { popCalendar.popCalendar(datePickerElement); } }); _overlay.on(‘show’, function () { radio(‘responsive-photoviewer’).trigger(‘overlay-shown’); }); } else { var currentHeroId = void 0; var placementRadio = _getPlacementRadio(); if (placementRadio) { currentHeroId = placementRadio.request(“currentHeroId”); } if (currentHeroId) { params.currentHeroId = currentHeroId; } _overlay.updateContent(buildUrl(params), true); } if (!fromHistoryPop && !autoOpenFromUrlFragment) { _historyHandler(params); } _overlay.show(); } function _historyHandler(params) { var aggregationId = params.aggregationId, albumid = params.albumid, ff = params.ff, filter = params.filter, panoId = params.panoId; var historyParams = { aggregationId: aggregationId, albumid: albumid, filter: filter }; if (ff) { historyParams.ff = ff; } if (panoId) { historyParams.panoId = panoId; } var path = HISTORY_ENABLED_FRAGMENT + $.param(historyParams); radio(“responsive-photoviewer”).trigger(“addHistory”, { data: historyParams }, document.title, path, function () { return load(historyParams, false, true); }); } function _addHistoryManagement(autoOpenFromUrlFragment, origParams) { var historyManager = new HistoryManager(); if (historyManager.isSupported()) { if (autoOpenFromUrlFragment) { var origUrl = window.location.href; window.setTimeout(function () { if (origUrl === window.location.href) { var pushStateUrl = window.location.protocol + ‘//’ + window.location.host + window.location.pathname + window.location.search; window.history.replaceState(null, “”, pushStateUrl); _historyHandler(origParams); } }, 0); } radio(“responsive-photoviewer”).on(“addHistory”, historyManager.pushState); var _backingOutOfViewer = false; _overlay.on(“hide”, function () { if (window.location.hash.indexOf(LEGACY_PHOTO_FRAGMENT) >= 0) { _backingOutOfViewer = true; historyManager.disableCallbacks(true); history.back(); } }); window.addEventListener(“popstate”, function () { if (window.location.hash.indexOf(LEGACY_PHOTO_FRAGMENT) >= 0) { if (_backingOutOfViewer) { history.back(); } else { _overlay.show(); } } else { _backingOutOfViewer = false; historyManager.disableCallbacks(false); _overlay.hide(); } }); } } $(function () { if (!taStore.retrieve(“mediaviewer”)) { var hash = window.location.hash; if (hash.indexOf(LEGACY_PHOTO_FRAGMENT) >= 0) { if (!taStore.retrieve(“suppressCalendarPop”)) { _resetCalendarPop = true; taStore.store(“suppressCalendarPop”, “true”); } var params = void 0; var fragmentQueryString = hash.indexOf(HISTORY_ENABLED_FRAGMENT) >= 0 && hash.substring(hash.indexOf(HISTORY_ENABLED_FRAGMENT) + HISTORY_ENABLED_FRAGMENT.length, hash.length); if (fragmentQueryString && fragmentQueryString.length > 0) { params = urlutils.getUrlQueryArgs(“?” + fragmentQueryString); } else { params = _generateParams({}); } params.updateType = ‘full’; load(params, true); } } }); radio(‘responsive-photoviewer’).on(‘load’, load); return { load: load, buildUrl: buildUrl, getOverlayId: getOverlayId }; }); define(‘actions/openRespPhotoViewer’, [‘common/trackingStreams’, ‘ta/util/Cookie’, ‘photoviewer/loader’], function(track, taCookie, photoViewer) { function open(evt, elem, locationId, geoId, imageId, filter) { track.trackEvent(‘photoviewer’, ‘click’, ‘btf_userphotos’); taCookie.setPIDCookie(5042); var options = {detail: locationId, geo: geoId, imageId: imageId, filter: filter}; if (imageId > 0) { options.ff = imageId; } options.albumViewMode = “hero”; options.updateType = ‘full’; photoViewer.load(options); } function openWithOptions(options) { photoViewer.load(options); } return { open: open, openWithOptions: openWithOptions }; }); require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’reviews_inline_room_tips_hsx’,’handlers’,[‘handlers’]); define([“widget”, ‘overlays/Overlay’, ‘overlays/styles/modal’, ‘overlays/position’, ‘overlays/options/autoReposition’, ‘overlays/options/closeOnEscape’, ‘overlays/options/closeOnDocClick’, ‘overlays/options/ajax’, ‘vanillajs’], function(widget, Overlay, modal, position, autoReposition, closeOnEscape, closeOnDocClick, ajax) { function click(event, elem, locId, lang) { var overlay = new Overlay(null, [ modal(null, ‘center’, ‘small no_padding’), position.center(), autoReposition, closeOnEscape, closeOnDocClick, ajax(‘/AccommodationTips?d=’ + locId + (lang ? ‘&filterLang=’+lang : ”)) ]); overlay.on(‘contentLoaded’, function() { if (overlay.contentElement.querySelector(‘#emptyTips’)) { setTimeout(overlay.hide.bind(overlay), 1); } }); overlay.show(); return false; }; return { click : click }; }); });require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’reviews_user_links_hsx’,’handlers’,[‘handlers’]); //Private javascript for reviews/user_links_hsx define([ ‘widget’, ‘lib/jquery-amd’, ‘utils/stopevent’, ‘ta/Core/TA.Record’, ‘ta/util/Cookie’ ],function( widget, $, stopEvent, taRecord, taCookie ) { function _onclick(event, target) { var linkElem = $(target); var hrefElem = $(‘.userLink a’, widget.element); var pid = linkElem.attr(‘data-pid’); var locId = linkElem.attr(‘data-locId’); var screenName = linkElem.attr(‘data-screenName’); var memberId = linkElem.attr(‘data-memberId’); var language = linkElem.attr(‘data-language’); var reviewId = linkElem.attr(‘data-reviewId’); var subject = linkElem.attr(‘data-subject’); var href = hrefElem.attr(‘href’); if (pid === ‘19169’) { taRecord.setEvtCookie(‘Reviews’, ‘click’, ‘more_reviews_by_user’, 0, href); taCookie.setPIDCookie(pid); } else if (pid === ‘38673’) { if (memberId) { stopEvent(event); require([‘trjs!answers/misc’], function(misc) { misc.askReviewerIntercept( target, locId, screenName, memberId, language, reviewId, subject, pid ); }); return false; } else { stopEvent(event); requireCallLast(‘answers/question_overlay_stub’, ‘open’, locId, pid); } taRecord.trackEventOnPage(‘Reviews’, ‘click’, ‘ask_user’); } } return { onclick: _onclick }; }); });require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’reviews_basic_review_responsive’,’handlers’,[‘handlers’]); define([“widget”,’lib/jquery-amd’, ‘ta/util/Cookie’, ‘common/trackingStreams’], function(widget, $, taCookie, track) { var selectorElem=$(“.reviewSelector”,widget.element); var reviewId = Number(selectorElem.attr(“data-reviewId”)); function clickExpand() { //bubble this up to the containing placement $(widget.element).trigger(“review:expand”, [widget.element, reviewId]); } function clickCollapse() { //bubble this up to the containing placement $(widget.element).trigger(“review:collapse”, [widget.element, reviewId]); } function viaMobileClick() { taCookie.setPIDCookie(24687); track.trackEvent(‘Reviews’, ‘click’, ‘via_mobile_itunes’); window.open(‘/apps’); } return { clickExpand : clickExpand, clickCollapse : clickCollapse, viaMobileClick: viaMobileClick }; }); });require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’common_north_star_pagination’,’handlers’,[‘handlers’]); define([“widget”, “vanillajs”, “ta/Core/TA.Event”, “common/trackingStreams”], function(widget, vanilla, taEvent, track) { “use strict”; function paginate(event, element) { taEvent.fireEvent(‘paginationChanged’, element); } function trackClick(event, elem, pageProperty, trackingStr, pageNum) { track.trackEvent(pageProperty, ‘click’, trackingStr, pageNum); } return { paginate : paginate, trackClick : trackClick }; });});require([‘ta/p13n/placements’], function(placements) { var define = placements.define.bind(placements,’vr_srp_listings’,’handlers’,[‘handlers’]); define([‘placement’, ‘lib/jquery-amd’, ‘utils/ajax’, ‘ta/util/Error’, ‘ta/Core/TA.LocalStorage’ ], function (placement, $, ajax, taError, localStorage ) { var ABANDONED_CART_INFO = “abandonedCart”; var _placement = $(‘#’ + placement.id); var addAbandonedCartCell = function () { var abandonedCart = localStorage.getObject(ABANDONED_CART_INFO); if (abandonedCart) { ajax({ url: ‘/MetaPlacementAjax’, data: { /* MetaPlacementAjax parameters */ placementName: ‘vr_abandoned_cart_cell’, skipLocation: true, assets: false, packagePrivateAssets: true, wrap: true, /* AbandonedCartCellRenderer parameters */ metaReferer: placement.servletName, geo: placement.location_id, // UrlArg.LOCATION_ID locationId: abandonedCart.locationId, // UrlArg.LOCATIONID checkIn: abandonedCart.checkIn, // UrlArg.CHECK_IN checkOut: abandonedCart.checkOut, // UrlArg.CHECK_OUT inquiryAdults: abandonedCart.inquiryAdults, // VacationRentalsAjax.PARAM_ADULTS numOfKids: abandonedCart.numOfKids // VRDetailUtil.PARAM_N_KIDS }, type: ‘POST’, evalScripts: false, success: function (data) { if (data.indexOf(“vr_listing”) vH){ var eH = api.getSize(el).y; this.container.style.height = vH + ‘px’; var h = (eH + vH – oH) + ‘px’; var css = document.createElement(‘style’); css.type = ‘text/css’; css.innerHTML = this.container.className .split(‘ ‘) .map(function(c){ return ‘.’ + c; }) .join(”) + ‘ .autosize { height: ‘ + h + ‘; }’; document.head.appendChild(css); } } }; this.on(‘show’, autosize); }; }; }); define(‘overlays/options/centerArrowOnSrcElement’, [‘vanillajs’, ‘api-mod’], function(vanilla, api){ ‘use strict’; var option = function(target){ function positionArrow() { target = target || this.sourceElement; if (this.container && target && this.arrow) { var containerCoords = api.getCoords(this.container) , sourceCoords = api.getCoords(target) , horizontal = api.hasClass(this.container, “arrow_top”) || api.hasClass(this.container, “arrow_bottom”) ; if (horizontal) { var center = sourceCoords.left + sourceCoords.width / 2 , arrowBuffer = api.getSize(this.arrow).x / 2 , left = Math.max(arrowBuffer, Math.min(containerCoords.width – arrowBuffer, center – containerCoords.left)) ; api.setStyle(this.arrow, { ‘left’: left + ‘px’, ‘right’: ‘auto’, ‘margin’: ‘0 0 0 -‘ + arrowBuffer + ‘px’ }); } else { var center = sourceCoords.top + sourceCoords.height / 2 , arrowBuffer = api.getSize(this.arrow).y / 2 , top = Math.max(arrowBuffer, Math.min(containerCoords.height – arrowBuffer, center – containerCoords.top)) ; api.setStyle(this.arrow, { ‘top’: top + ‘px’, ‘bottom’: ‘auto’, ‘margin’: ‘-‘ + arrowBuffer +’px 0 0 0’ }); } } } return function() { this.on(‘show’, api.bind(positionArrow, this)); this.on(‘positionDirty’, api.bind(positionArrow, this)); this.on(‘repositionArrow’, api.bind(positionArrow, this)); } }; return option; }); define(‘overlays/options/closeOnChildClick’, [‘vanillajs’, ‘api-mod’], function(vanilla, api){ ‘use strict’; function hide(evnt){ if (api.containsElement(this.container, evnt.target)) { this.hide(‘child-click’); } } function makeMixin(includeTouchEvents) { return function() { var handler = api.bind(hide, this); this.on(‘show’, function () { api.addEvent(this.domParent, ‘click’, handler); includeTouchEvents && api.addEvent(this.domParent, ‘touchstart’, handler); }).on(‘hide’, function () { api.removeEvent(this.domParent, ‘click’, handler); includeTouchEvents && api.removeEvent(this.domParent, ‘touchstart’, handler); }); }; } var option = makeMixin(true); option.withoutTouchEvents = makeMixin(false); return option; }); require([‘ta/p13n/placements’], function(placements) { var define = placements.define.bind(placements,’shopping_cart_simple_flyout’,’handlers’,[‘handlers’]); define( [ ‘placement’, ‘lib/jquery-amd’, ‘overlays/Overlay’, ‘overlays/options/autosize’, ‘overlays/options/autoReposition’, ‘overlays/options/centerArrowOnSrcElement’, ‘overlays/options/closeOnChildClick’, ‘overlays/options/closeOnEscape’, ‘overlays/position’, ‘overlays/styles/popover’, ‘ta/Core/TA.Record’ ], function( placement, $, Overlay, Autosize, AutoReposition, CenterArrowOnSrcElement, CloseOnChildClick, CloseOnEscape, Position, Popover, taRecord ) { ‘use strict’; function SimpleFlyout(targetElement, header, body, cookieId, pageProperty) { var overlay = undefined; function _showAlert() { if (overlay) { return; } overlay = new Overlay( targetElement, [ Popover(targetElement, ‘below’, ”, header.html(), body.html()), Autosize(0), AutoReposition, CloseOnEscape, CloseOnChildClick, Position.below([8, -20]), CenterArrowOnSrcElement(targetElement) ]); if (overlay) { overlay.on(‘hide’, function() { taRecord.trackEventOnPage(pageProperty, ‘close’); }); overlay.show(); // bounce the cart $(targetElement).addClass(‘animated’); // request to mark session as seen. if (cookieId) { $.get(‘/AttractionCommerceAjax?a=’ + cookieId); } } } this.show = _showAlert; } var content = $(‘.scream_overlay’); var flyout = new SimpleFlyout($(‘.shopping-cart-link’).get(0), $(‘.scream_header’), $(‘.scream_body’), content.attr(‘data-cookieId’), content.attr(‘data-pageProperty’)); $(document).ready(flyout.show); return {}; }); }); define(“cpm/AdBlockDetect”, [“lib/jquery-amd”,”utils/browserutils”,”ta/Core/TA.Event”,”ta/Core/TA.Record”,”ta/util/Error”], function( $, Browser, taEvent, taRecord, taError) { ‘use strict’; var exports = {}; var _testImg; var DEFAULT_LABEL = “ab_chk”; var _isPixelLoadError; var _logged = false; var _cdn = window.CDNHOST || “”; var _pixelUrl = “/img2/x.gif?&ads=1&adsize=2&adslot=3&rnd=”; var _generatePixel = function() { var rnd = Math.floor(Math.random() * 100000); return $(‘‘); }; var _getAdCount = function() { var count = document.querySelectorAll(“.gptAd:not(.inactive)”).length; if (screen.width SCROLL_BUFFER) { $(surveyContainerClassName).hide(); } }; $(window).on(‘scroll’, throttle(hide, 100)); } var surveyRadio = Radio(“QualtricsSurvey”); // use radio so this functionality can be added to WC footer easily window.addEventListener(“qsi_js_loaded”, function() { // this event is fired when the Qualtrics external JS has finished loading if (surveyRadio.requestAny(“shouldSuppress”, true)) { $(surveyContainerClassName).hide(); } }); surveyRadio.on(“hide”, function() {$(surveyContainerClassName).hide();}); surveyRadio.on(“show”, function() {$(surveyContainerClassName).show();}); } } }); return { }; }); }); define(‘maps/v3/providers/providerShim’, [‘babel/babel-helpers’, ‘mixins/Events’], function (babelHelpers, Events) { ‘use strict’; var _providerFactoryImpl = null; var _providerInitResolve = null; var _providerInitPromise = new Promise(function (resolve) { return _providerInitResolve = resolve; }); var _providerLoadPromise = null; var _events = new Events(“providerRequested”); var _providerRequested = false; var _getMapPromiseCache = {}; function _loadProvider() { if (_providerLoadPromise) { return _providerLoadPromise; } _providerLoadPromise = new Promise(function (resolve) { if (!_providerFactoryImpl) { _providerRequested = true; _events.emit(“providerRequested”); } _providerInitPromise.then(function () { _providerFactoryImpl.loadLibrary(resolve); }); }); return _providerLoadPromise; } function _getCurrentMapCacheEntry(container) { var cacheEntry = _getMapPromiseCache[container]; if (!cacheEntry) { cacheEntry = {}; cacheEntry.promise = new Promise(function (resolve) { cacheEntry.resolve = resolve; }); _getMapPromiseCache[container] = cacheEntry; } return cacheEntry; } return { registerProvider: function registerProvider(providerFactory) { if (_providerFactoryImpl) { throw “provider already registered”; } if (providerFactory) { _providerFactoryImpl = providerFactory; _providerInitResolve(); } else { throw “Attempted to register a null provider”; } }, providerRequested: function providerRequested() { return _providerRequested; }, createMap: function createMap(options) { var loadPromise = _loadProvider(); return new Promise(function (resolve) { loadPromise.then(function () { var instance = _providerFactoryImpl.getMapInstance(options); resolve(instance); var currentMapCacheEntry = _getCurrentMapCacheEntry(options.container); currentMapCacheEntry.resolve(instance); }); }); }, waitForMap: function waitForMap(container) { var currentMapCacheEntry = _getCurrentMapCacheEntry(container); return currentMapCacheEntry.promise; }, on: _events.on.bind(_events) }; }); define(‘maps/v3/tracking’, [‘babel/babel-helpers’, ‘common/trackingStreams’], function (babelHelpers, trackingStreams) { ‘use strict’; function _trackToggleWidthInPixels(opening, mapWidth) { trackingStreams.trackEvent(‘map_view’, opening ? ‘open’ : ‘close’, mapWidth, null); } function _trackMapWidthInMeters(pageProperties, pageAction, meters) { trackingStreams.trackEvent(pageProperties, pageAction, meters, null); } function _trackMapPinEvents(pageAction, propId) { var pinType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; trackingStreams.trackEvent(‘map_pin’, pageAction, pinType, propId); } function trackMapFirstOpen() { _trackToggleWidthInPixels(true, null); } function trackMapOpenRequested(context) { trackingStreams.trackEvent(‘map_view’, ‘open_requested’, context); } function trackMapOpen(mapContainer) { window.setTimeout(function () { _trackToggleWidthInPixels(true, mapContainer.offsetWidth); }, 0); } function trackMapClose(mapContainer, numPins) { _trackToggleWidthInPixels(false, mapContainer.offsetWidth); trackingStreams.trackEvent(“map_view”, “map_close_num_pins”, numPins); } function trackMapLoadedWhenClosed(loaded, durationMapWasOpen) { var props = { loaded: loaded, timeSpentOnMap: durationMapWasOpen }; trackingStreams.trackEvent(“map_view”, “map_close_load_test”, JSON.stringify(props)); } function trackMapProvider(mapImpl) { trackingStreams.trackEvent(“map_view”, “map_impl”, mapImpl); } function trackNoPins(meters) { _trackMapWidthInMeters(‘map_view’, ‘empty’, meters); } function trackRedoSearch(meters, auto) { _trackMapWidthInMeters(‘map_view’, auto ? ‘redo_auto’ : ‘redo’, meters); } function trackMapGrow() { trackingStreams.trackEvent(“map_view”, “grow”); } function trackMapShrink() { trackingStreams.trackEvent(“map_view”, “shrink”); } function trackMapPan(meters) { _trackMapWidthInMeters(‘map_move’, ‘pan’, meters); } function trackMapZoomIn(meters) { _trackMapWidthInMeters(‘map_move’, ‘zoom_in’, meters); } function trackMapZoomOut(meters) { _trackMapWidthInMeters(‘map_move’, ‘zoom_out’, meters); } function trackMapPinHover(propertyId, pinType) { _trackMapPinEvents(‘hover’, propertyId, pinType); } function trackMapPinClick(propertyId, pinType) { _trackMapPinEvents(‘click’, propertyId, pinType); } function trackMapDetailCardPhotoClick(propertyId) { trackingStreams.trackEvent(‘map_detail_card’, ‘photo_click’, propertyId, null); } function trackMapDetailCardSaveClick(propertyId) { trackingStreams.trackEvent(‘map_detail_card’, ‘saveCTA_click’, propertyId, null); } function trackMapDetailCardTitleClick(propertyId) { trackingStreams.trackEvent(‘map_detail_card’, ‘title_click’, propertyId, null); } function trackMapDetailCardCTAClick(propertyId) { trackingStreams.trackEvent(‘map_card_cta’, ‘click’, propertyId, null); } function trackCarouselSwipe(propertyId) { trackingStreams.trackEvent(‘map_carousel’, ‘swipe’, propertyId, null); } function trackAlsoShowClick(pageAction, label) { trackingStreams.trackEvent(‘also_show’, pageAction, label); } return { trackMapOpen: trackMapOpen, trackMapClose: trackMapClose, trackMapFirstOpen: trackMapFirstOpen, trackMapOpenRequested: trackMapOpenRequested, trackRedoSearch: trackRedoSearch, trackMapGrow: trackMapGrow, trackMapShrink: trackMapShrink, trackNoPins: trackNoPins, trackMapPan: trackMapPan, trackMapZoomIn: trackMapZoomIn, trackMapZoomOut: trackMapZoomOut, trackMapPinHover: trackMapPinHover, trackMapPinClick: trackMapPinClick, trackMapDetailCardPhotoClick: trackMapDetailCardPhotoClick, trackMapDetailCardSaveClick: trackMapDetailCardSaveClick, trackMapDetailCardTitleClick: trackMapDetailCardTitleClick, trackMapDetailCardCTAClick: trackMapDetailCardCTAClick, trackCarouselSwipe: trackCarouselSwipe, trackAlsoShowClick: trackAlsoShowClick, trackMapLoadedWhenClosed: trackMapLoadedWhenClosed, trackMapProvider: trackMapProvider }; }); require([‘ta/p13n/placements’], function(placements) { var define = placements.define.bind(placements,’map_provider_loader’,’handlers’,[‘handlers’]); /** * Created by brandonwilliams on 8/25/17. */ define([‘placement’, ‘maps/v3/providers/providerShim’, ‘maps/v3/tracking’], function(placement, providerShim, mapTracking) { ‘use strict’; function _registerProvider() { var demandMapImpl = “trjs!” + placement.params.map_impl; // Pull down the map provider rollup only if requested. // This allows the demand loaded JS to honor JS_CONCAT settings if(placement.params.includeRollup) { var demandRollup = “trjs!” + placement.params.map_rollup; placement.require([demandMapImpl, demandRollup], function(mapImpl, rollupOk) { if(!rollupOk) { throw “Unable to load map rollup”; } mapImpl.configureLibrary(placement.params.mapConfig || {}); mapTracking.trackMapProvider(placement.params.map_rollup); providerShim.registerProvider(mapImpl); }); } else { placement.require([demandMapImpl], function(mapImpl) { mapImpl.configureLibrary(placement.params.mapConfig || {}); mapTracking.trackMapProvider(placement.params.map_rollup); providerShim.registerProvider(mapImpl); }); } } providerShim.providerRequested() ? _registerProvider() : providerShim.on(“providerRequested”, _registerProvider); } );});require([‘ta/p13n/placements’,’$prp/map_provider_loader/handlers’], function(placements, impl) { window.ta.plc_map_provider_loader_google_handlers = placements.load(‘map_provider_loader’,’handlers.js’, { ‘name’: ‘map_provider_loader:google’, ‘id’: ‘taplc_map_provider_loader_google’, ‘location_id’: 12401463, ‘servletClass’: ‘com.TripResearch.servlet.vacationrentals.jaxrs.VacationRentalDetailPage’, ‘servletName’: ‘VacationRentalReview’, ‘params’: {“map_impl”:”maps/v3/providers/impl/google”,”map_rollup”:”ta-mapsv3-provider-google”,”includeRollup”:true,”mapConfig”:{“channel”:”ta.desktop.vacationrentalreview”}}, ‘data’: {}});}); 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), ]; 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 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; } } 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/Utils', ['vanillajs'], function(vanilla) { 'use strict'; function _pad(number) { var r = String(number); return (r.length === 1 ? '0' : '') + r; } function _dateToIso(date) { return date.getFullYear() + '_' + _pad(date.getMonth() + 1) + '_' + _pad(date.getDate()); } function _dateToCommerceUrlParams(date, type) { return type + 'Year=' + date.getFullYear() + '&' + type + 'Month=' + (date.getMonth() + 1) + '&' + type + 'Day=' + date.getDate(); } function _datesToCommerceUrlParams(dates) { return _dateToCommerceUrlParams(dates[0], 'in') + '&' + _dateToCommerceUrlParams(dates[1], 'out'); } function _fromString(dateString) { if (!dateString) { return null; } var components = dateString.split('-'); if (components.length < 2) { components = dateString.split('_'); } return new Date(parseInt(components[0], 10), parseInt(components[1], 10) - 1, parseInt(components[2], 10)); } function _isDateType(element) { return Object.prototype.toString.call(element) === '[object Date]'; } function _compareDatesWithNoTime(date1, date2) { if ((!date1 || !date2) && [date1, date2].every(_isDateType)) { return false; } var date1_clone = new Date(date1.getTime()); var date2_clone = new Date(date2.getTime()); date1_clone.setHours(0, 0, 0, 0); date2_clone.setHours(0, 0, 0, 0); return date1_clone.getTime() === date2_clone.getTime(); } function _getNumNightsWithNoTime(date1, date2) { if ((!date1 || !date2) && [date1, date2].every(_isDateType)) { return false; } var date1_clone = new Date(date1.getTime()); var date2_clone = new Date(date2.getTime()); var day = 1000*60*60*24; date1_clone.setHours(0, 0, 0, 0); date2_clone.setHours(0, 0, 0, 0); return Math.round((date2_clone.getTime() - date1_clone.getTime())/day); } function _findClosestDatepicker(target, type) { var el; while (target) { el = target.querySelector('[data-dateType=' + type + ']'); if (el) { return el; } target = target.parentNode; } return null; } function _compareDatesArrayNoTime(dates1, dates2) { if (!Array.isArray(dates1) || !Array.isArray(dates2) || dates1.length !== dates2.length) { return false; } var ret = true; for (var i = 0 ; i 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

[]Clicca qui per collegarti al sito e articolo dell’autore

[]”https://www.tripadvisor.it/VacationRentalReview-g9719123-d12401463-Chambre_verte_dans_villa_toute_equipee_avec_jacuzzi-Agualva_Cacem_Sintra_Municipalit.html”

[]Pubblichiamo solo i migliori articoli della rete. Clicca qui per visitare il sito di provenienza. SITE: the best of the best ⭐⭐⭐⭐⭐

[]Clicca qui per collegarti al sito e articolo dell’autore

[]La rete Adessonews è un aggregatore di news e replica gli articoli senza fini di lucro ma con finalità di critica, discussione od insegnamento, come previsto dall’art. 70 legge sul diritto d’autore e art. 41 della costituzione Italiana. Al termine di ciascun articolo è indicata la provenienza dell’articolo. Per richiedere la rimozione dell’articolo clicca qui

#adessonews

#adessonews

#adessonews

 
Richiedi info
1
Richiedi informazioni
Ciao Posso aiutarti?
Per qualsiasi informazione:
Inserisci il tuo nominativo e una descrizione sintetica dell'agevolazione o finanziamento richiesto.
Riceverai in tempi celeri una risposta.