200&&(c=c.substring(0,Math.min(c.length,200))+”…”),i.withScope(function(e){e.setTag(“logger”,n),e.setExtra(“jQueryEvent”,c),i.captureException(a)})}else i.withScope(function(e){e.setTag(“logger”,n),i.captureException(r)})}else o&&setTimeout(function(){t(e,r,n,!1)},1e4)}function n(){require([“ta/util/Error”],function(r){for(;g.length;){var n=g.shift();n.msg.match(/(^|[^w.])ta .*defin/)||(r.record(n.error,”window.onerror:: “+n.msg,n.evt,n.data,e(n.error),{isglobal:!0}),t(n.msg,n.error,”PageLoad”,!0))}s=!0})}function o(){l=null,E=!1,d=u=null}function i(e,t,n,i,a,c){var f=c&&c.target;if(E){if((!d||a&&a.stack)&&(d=a),!w)try{w=arguments.callee}catch(e){}l?f=l:(!f||u&&f==window)&&(f=u),r(e,t,n,i,d,{target:f,callee:w}),o()}else{d=a,E=!0,u=f;try{w=arguments.callee}catch(e){}}}function a(e){e=e||window.event,i(e.message,e.filename,e.lineno,e.colno,e.error||e,e)}function c(e){e=e||window.event,l=e.target||e.srcElement,f&&clearTimeout(f),f=setTimeout(function(){f=0,l=null},1)}var d,u,l,w,f,s=!1,g=[],E=!1;window.__scriptLoadError=function(e,r){if(e instanceof HTMLScriptElement){var t=e.getAttribute(“data-rup”);if(t){r&&window.define&&window.define(t,[],function(){return{}});var n=new Error(“Error loading script tag for: “+t);throw n.level=”WARN”,n}}},window.onerror=function(e,r,t,n,o){return i(e,r,t,n,o,window.event),!window.IS_DEBUG},window.addEventListener?(window.addEventListener(“error”,a,!1),window.addEventListener(“click”,c,!0),window.addEventListener(“load”,n)):window.attachEvent&&(window.attachEvent(“onerror”,a),document.attachEvent(“onmouseup”,c),window.attachEvent(“onload”,n))}(); !function(){var e,n,t=0,a=5e3;window.uiOverlay=function(l){if(document.readyState in{complete:1,loaded:1}){var i=arguments;require([“trjs!overlays/uiOverlay”],function(e){e.apply(null,i)})}else document.addEventListener&&(e=[].slice.call(arguments),t=(new Date).getTime(),n||(n=!0,document.addEventListener(“DOMContentLoaded”,function(){Date.now()-t 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); ]]> Lake Conroe Bachelor Party – Texas Message Board – Tripadvisor Privacy Policy.”; var JS_coppa_deleted = “Your account has been deleted.”; var JS_close = “Close”; var JS_close_image = “https://static.tacdn.com/img2/buttons/closeButton.gif”; var JS_CHANGES_SAVED = “Changes saved”; var JS_community_on = “Community has been enabled”; var lang_Close = JS_close; var JS_UpdatingYourResults = “Updating your results …”; var JS_OwnerPhoto_heading = “Thank you for submitting your request to Tripadvisor. “; var JS_OwnerPhoto_subheading = “We process most listings and changes within 5 business days. “; var JS_OwnerPhoto_more = “Add more photos to your listing”; var JS_OwnerPhoto_return = “Return to your Owner’s Centre”; var JS_NMN_Timeout_title = “Do you want to keep trying?”; var JS_NMN_Timeout_msg = “It is taking longer than expected to get your location.”; var JS_NMN_Error_title = “Location error”; var JS_NMN_Error_msg = “There has been an error in trying to determine your location”; var JS_KeepTrying = “Keep Trying”; var JS_TryAgain = “Try Again”; var js_0001 = “Please select at least one vendor from the list.”; var js_0002 = “Please choose dates in the future.”; var js_0003 = “Please choose a check-out date that is at least one day later than your check-in date.”; var js_0004 = “Please choose dates that are less than 330 days away.”; var js_0005 = “Searching for deals … this may take a few moments”; var js_0006 = “Your selections have not changed.”; var js_0010 = “Please click again to open each window or adjust browser settings to disable popup blockers.”; var js_0011 = “Update”; var js_0012 = “Show next offer”; var js_0013 = “Please click the “Check Rates!” button above to open each window.”; var js_0014 = ‘Opens one window for each offer. Please disable pop-up blockers.’; var js_0015 = ‘Compare prices’; var js_invalid_dates_text = “The dates entered are invalid. Please correct your dates and search again.”; var js_invalid_dates_text_new = “Please enter dates to check rates”; var js_invalid_dates_text_new2 = “Please enter dates to show prices”; var qcErrorImage = ‘‘; var selectedHotelName = “”; var cr_loc_vend = ‘https://static.tacdn.com/img2/checkrates/cr.gif’; var cr_loc_vend_ch = ‘https://static.tacdn.com/img2/checkrates/cr_check.gif’; var cr_loc_logo = ‘https://static.tacdn.com/img2/checkrates/logo.gif’; var cd_loc_vend = ‘https://static.tacdn.com/img2/checkrates/cd.png’; var cd_loc_vend_ch = ‘https://static.tacdn.com/img2/checkrates/cd_check.png’; var JS_Any_Date = “Any Date”; var JS_Update_List = “Update List”; var sNexusTitleMissing = “The title must be populated”; var JS_Challenge=”Challenge”; var JS_TIQ_Level=”Level”; var JS_TIQ=”Travel IQ”; var JS_TIQ_Pts=”pts”; var RATING_STRINGS = [ “Click to rate”, “Terrible”, “Poor”, “Average”, “Very Good”, “Excellent” ]; var overlayLightbox = false; if(“” != “”) { overlayLightbox = true; } var isTakeOver = false; var overlayOptions = “”; var overlayBackupLoc = “”; var gmapDomain = “maps.google.com”; var mapChannel = “ta.desktop.showtopic”; var bingMapsLang = “en”.toLowerCase(); var bingMapsCountry = “UK”.toLowerCase(); var bingMapsBaseUrl = “http://www.bing.com/maps/default.aspx?cc=uk&”; var googleMapsBaseUrl = “http://maps.google.co.uk/?”; var yandexMapsBaseUrl = “http://maps.yandex.com”; var serverPool = “C”; var posLocale = “en_UK”; var cssPhotoViewerAsset = “https://static.tacdn.com/css2/build/concat/photos_with_inline_review-v22858779083a.css”; var cssAlbumViewerExtendedAsset = “https://static.tacdn.com/css2/build/concat/media_albums_extended-v23775176461a.css”; var jsPhotoViewerAsset = ‘https://static.tacdn.com/js3/src/ta/photos/Viewer-v23776172971a.js’; var jsAlbumViewerAsset = [“https://static.tacdn.com/js3/build/concat/album_viewer-c-v21720198776a.js”]; var jsAlbumViewerExtendedAsset = [“https://static.tacdn.com/js3/build/concat/media_albums_extended-c-v21319642680a.js”]; var cssInlinePhotosTabAsset = “https://static.tacdn.com/css2/build/concat/photo_albums_stacked-v24123383951a.css”; var cssPhotoLightboxAsset = “https://static.tacdn.com/css2/build/concat/photo_albums-v2231729968a.css”; var jsDesktopBackboneAsset = [“https://static.tacdn.com/js3/build/concat/desktop_modules_modbone-c-v21048715873a.js”]; var jsPhotoViewerTALSOAsset = ‘https://static.tacdn.com/js3/src/TALSO-v21232481152a.js’; ]]> =0&&o1e12?new Date:performance.now())-t.timeStamp;”pointerdown”==t.type?function(t,o){function i(){p(t,o),r()}function c(){r()}function r(){e(a,i,f),e(u,c,f)}n(a,i,f),n(u,c,f)}(o,t):p(o,t)}}function w(n){[“click”,”mousedown”,”keydown”,”touchstart”,”pointerdown”].forEach(function(e){n(e,l,f)})}w(n),self.perfMetrics=self.perfMetrics||{},self.perfMetrics.onFirstInputDelay=function(n){c.push(n),s()}}(addEventListener,removeEventListener);]]> “}”,”pageServlet”:”ShowTopic”,”sessionId”:”E3F29FFC53AE4079A7819F879D2A3F93″,”cdnHost”:”https://static.tacdn.com”,”quickSave”:true,”isExternalReferral”:true,”useERUserTracking”:true,”cookieDomain”:”.tripadvisor.co.uk”,”uid”:”YCRXoQokLI8AAum8C7QAAABT”,”hasReferral”:true,”posLocale”:”en_UK”,”MEDIA_HTTP_BASE”:”https://media-cdn.tripadvisor.com/media/”,”user_id”:””,”loggedIn”:false,”securelyLoggedIn”:false},”DUST_GLOBAL”:{“IS_IELE8″:false,”LOCALE”:”en_UK”,”IS_IE10″:false,”CDN_HOST”:”https://static.tacdn.com”,”DEVICE”:”desktop”,”IS_RTL”:false,”LANG”:”en”,”DEBUG”:false,”READ_ONLY”:false,”POS_COUNTRY”:186216},”JS_SECURITY_TOKEN”:”TNI1625!APRLZL8ZQ5qC6Y2ugbaRidfoveYeGvivOi3n8R6HTK3WPJxw+yzVFehdoXad4wK9ZuS+SgeGPqZVNAsql/hzU+x8gWjJ0vNvhaZMOPy2NeEkzHVWwD9lhM0Q7wUJPjpG8BBc8n5O7pD/HHOlKicpOkvNi/Iq4QivDfAn2FR3NvTq”,”GEO_ID”:”28964″,”hotelsInGeo”:”5493″,”LOC_ID”:”28964″,”isMobile”:false,”isRtl”:false}; return model; }); } ]]>
!!x).forEach(x => {x.classList.add(‘skyExpanded’);});} else {setTimeout(()=>{document.querySelectorAll(‘#LEADER_BOARD_SKY_STYLE’).forEach(x=>{x.innerHTML=””;});}, 300);}}});});})();]]> 1) { postId = window.location.hash.substring(1); var thisPostIndex = parseInt(postIndex[postId]); if (!isNaN(thisPostIndex) && thisPostIndex !=0 ) { if ( postSortOrder == “newFirst”) { correctOffset = parseInt((numReplies – thisPostIndex) / 10) * 10; } else { correctOffset = parseInt((thisPostIndex-1) / 10) * 10; } if (correctOffset != 0) { window.location = require(‘ta/util/Doer’).tadoless(‘ShowTopic’, {g: ‘28964’, i: ’75’, k: ‘9337622’, o: ’99’}, [‘Lake_Conroe_Bachelor_Party’, ‘Texas’],”).replace(“-o99-“,”-o”+correctOffset+”-“) + “#”+postId; } } } ]]>
I’m throwing a bachelor party at Lake Conroe in May. Many of us are coming in for out of town and are unfamiliar with the area. We are all in our 30’s so I think we are all uninterested in doing the “typical” bachelor party activities, but given the large number of attendees, I’d like to come up with several options for all of the guys so we can split up during the day to pursue different activities. Any suggestions?
Evan–
The reason you’re probably not getting many responses is that Lake Conroe is primarily a lake of numerous private communities or resorts (emphasis on the word “private”). Public facilities are somewhat limited Unless you can make arrangements with whichever of the resorts or communities you’re having the bachelor party at for things like golf, water skiing, boating, etc., your buddies are going to be relegated to renting from the public vendors. There was a recent announcement (last couple of days) that motorized boats, ski-doo’s, etc., are temporarily banned on Lake Conroe because recent rains have caused a lot of hidden dangers in the way of tree stumps, piers, etc. Canoeing and kayaking are still okay, though.
You guys may be better off driving 20 miles or so south to The Woodlands to find things to do. Virtually everything there is open to the public (except possibly the golf clubs). More and better restaurants, some bars (but always use a designated driver, as cops patrol the area), lots to do.
Congratulations on your upcoming nuptials, and you guys all have fun!
6 posts
I live on Lake Conroe… for this area:
Look up B 52 brewery. It’s an outdoor, picnic table, bring your own chair kinda place. Buy a mug for 13 dollars or something and pick 3 of their specialty beers. They are awesome and you can sample them all.
-:- Message from Tripadvisor staff -:-
This topic has been closed to new posts due to inactivity. We hope you’ll join the conversation by posting to an open topic or starting a new one.
To review the Tripadvisor Forums Posting Guidelines, please follow this link: http://www.tripadvisor.com/pages/forums_posting_guidelines.html
We remove posts that do not follow our posting guidelines, and we reserve the right to remove any post for any reason.
Removed on: 15 March 2017, 04:18
Get answers to your questions about Texas
FIRST_AD_TOP – apiTrigger) {window.removeEventListener(‘scroll’, initAtFirstAd);if (!initHasRun) {initHasRun = true;require([‘@ta/platform.runtime’, ‘trjs!cpm/Desktop’], function(runtime, desktopAds) {runtime.importBundle(‘@ta/platform.consent’).then(function (bundle) {bundle.requestConsent(bundle.CategoriesEnum.ADVERTISING, function() {desktopAds.initDoubleClick(initOpts); });});});}}}initAtFirstAd();window.addEventListener(‘scroll’, initAtFirstAd);});]]>
{TripName}u003c/b> created!”,”stat_modal_saved_to_tripname_with_bold”:”Saved to u003cb>{TripName}u003c/b>”,”stat_modal_undo”:”Undo”,”stat_modal_removed_from_tripname_with_bold_v3″:”Removed from u003ca href=”{TripLink}” class=”{TripClass}”>u003cb>{TripName}u003c/b>u003c/a>”,”stat_modal_change”:”Change”,”stat_modal_saved_to_tripname_with_bold_v3″:”Saved to u003ca href=”{TripLink}” class=”{TripClass}”>u003cb>{TripName}u003c/b>u003c/a>”,”m1_trips_my_saves_header”:”My Saves”,”stat_modal_removed_from_tripname”:”Removed from {sTripName}”,”m1_trips_save_success_stat_d2″:”Saved! Next, organise it in a Trip.”,”trips_inline_profanity_check”:”Public Trips cannot contain profanity”,”linkify_url_error”:”You have entered an inappropriate URL”,”trips_error_default_add_item_comment_v2″:”There was a problem adding a note to this Trip item. Please try again.”,”trips_error_default_add_note”:”There was a problem adding a note to this Trip. Please try again.”,”trip_note_update_error”:”There was a problem updating your Trip note. Please try again.”,”trips_error_default_update_comment”:”There was a problem updating this comment. Please try again.”,”trips_error_duplicate”:”You already have a Trip with this name.”,”trips_stat_modal_profanity_check_native”:”Your Trip could not be created because public Trips cannot contain profanity. Please try again.”,”create_trip_general_error_v2″:”There was a problem creating this Trip. Please try again.”,”trip_contains_profanity”:”Your Trip contains profanity and cannot be made public. Please modify your Trip and try again. Questions? View Tripadvisor’s u003ca href=”https://www.tripadvisorsupport.com/hc/articles/360008133913-Tripadvisor-s-Content-Policy”>Content Guidelinesu003c/a>.”,”trips_error_default_edit_privacy”:”There was a problem updating the privacy of this Trip. Please try again.”,”trips_error_default_edit_trip”:”There was a problem editing this Trip. Please try again.”,”new_trip_name_error_msg”:”Please select a new name for your Trip.”,”social_no_permission”:”You don’t have permission to take this action.”,”trips_error_save_trip_full”:”Oh no! Your Trip has too many items in it. Please remove some items and try saving again.”,”trips_error_default_add_item_to_trip”:”There was a problem adding the item to this Trip. Please try again.”,”trips_error_default_move_item”:”There was a problem moving this Trip item. Please try again.”,”trips_error_unsave”:”There was a problem removing this item from your Trip. Please try again.”,”stat_modal_general_error”:”There was a problem saving this item. Please try again.”,”m1_trips_unsave_error”:”There was a problem removing this item. Please try again.”,”trips_error_general_default”:”There was a problem with this Trip. Please try again.”,”social_loading_error_1″:”Whoops, something went wrong.”,”soical_loading_error_2″:”Give it another try, please.”,”mobile_try_again”:”Try again”,”stat_modal_trip_name”:”Trip name”,”trips_trip_name_character_count”:”{nCharacterCount} / 50 characters”,”stat_modal_name_exceeds_50″:”Trip name must not exceed 50 characters”,”trip_privacy_setting_header”:”Choose who can see your Trip”,”stat_modal_create”:”Create”,”trips_move_error”:”There was a problem moving this item. Please try again.”,”airm_mobile_show_more”:”Show more”,”create_trip_screen_privacy_private”:”Private”,”trips_privacy_explanation_new”:”Not visible to other Tripadvisor users and members, except for you and any friends with whom you share your Trip.”,”create_trip_screen_privacy_public”:”Public”,”create_trip_screen_privacy_public_explanation_v2″:”Visible to all travellers on Tripadvisor, including any friends you share your Trip with”,”trips_reported_explanation”:”Your Trip does not meet Tripadvisor’s u003ca href=”https://www.tripadvisorsupport.com/hc/articles/360008133913-Tripadvisor-s-Content-Policy”>Content Guidelinesu003c/a> for public Trips and has been set to private. It cannot be made public again.”,”trips_collaborator_privacy_modal”:”This Trip is {privacySetting}. Only the owner of the Trip can change this setting.”,”embedded_content_terms_and_conditions_label”:”terms and conditions”,”embedded_content_third_party_notice”:”This content is hosted by a third party ({hostName}). By showing external content you accept the {termsUrl} of {hostName}.”,”embedded_content_show_content_label”:”Show external content”,”embedded_content_remember_choice_label”:”Remember my choice”,”ib_more_info”:”More Info”,”profile_update_error_username_too_short”:”{0} needs to be at least 3 characters”,”profile_update_error_username_too_long”:”{0} cannot be longer than 20 characters”,”mobile_profile_update_error_username_invalid_characters”:”Only use Latin characters (A-Z), numbers, underscore “_”, and dash “-“.”,”profile_update_error_username_already_exists”:”{0} has already been taken”,”profile_update_error_contains_profanity”:”Profanity is not allowed”,”profile_update_error_username_contains_ta_words”:”Words such as u201CStaffu201D, u201CAdminu201D, u201CTripadvisoru201D are not allowed.”,”social_edit_profile_username”:”Username”,”onboarding_social_name_screen_username_ghost_text”:”e.g. SavvyTraveler123″,”onboarding_social_name_screen_username_helper_text_period_814″:”This unique handle helps travellers search for you.”,”onboarding_social_name_screen_display_name_field_v2″:”Display name”,”mobile_profile_update_error_display_name_too_short”:”Display name needs to be at least 3 characters”,”profile_update_error_display_name_too_long”:”{0} cannot be longer than 40 characters”,”onboarding_social_name_screen_returning_header”:”Please confirm or update your profile information”,”onboarding_social_name_screen_display_name_ghost_text”:”e.g. John Doe”,”onboarding_social_name_screen_display_name_helper_text_period_814″:”This appears on your profile and any content you post.”,”onboarding_social_name_screen_cta”:”Confirm”,”onboarding_social_skip_link”:”Skip for now”,”2019_by_skipping_username_step”:”By skipping this step you will be given an automatically generated display name and @username”,”compliment_9bd”:”Sorry, an unexpected error has occurred. Please try again in a moment.”,”link_uploader_refresh”:”Refresh”,”btn_cancel”:”Cancel”,”brand_save_money_we_search_200″:”u003cb>Save money.u003c/b> We search 200+ sites for the lowest hotel prices.”,”ads_perf_dashboard_get_started_updated”:”Get Started”,”a11y_skip_link”:”Skip to main content”,”nav_rs_premium_contact_support”:”Call {sSupportPhoneNumber} with your ID: {nLocationId}”,”tavrs_view_profile”:”View profile”,”owners_managelisting_open”:”Open”,”common_TripAdvisor”:”Tripadvisor”,”abandon_cart_home_banner_2350″:”Still interested?”,”attractions.cart_recapture.abandoned_cart_overlay_cta”:”Visit your shopping basket to see the items you saved last time u2014 and check out when youu2019re ready.”,”attractions.cart_recapture.alert.headline”:”Now you can pick up where you left off!”,”attractions.cart_recapture.alert_body”:”Click here at any time to finish your booking. Be sure to log-in or register to access your basket from any device.”,”utility_nav_cart”:”Shopping Basket”,”attractions.cart_button_acc”:”Basket”,”inbox_title”:”Inbox”,”ip_view_profile_1cf1″:”View profile”,”global_nav_profile_my_business”:”My business”,”my_bookings_headtext_fffff9b3″:”Bookings”,”mem_account_info”:”Account info”,”common_Signout”:”Sign out”,”utility_nav_profile”:”Profile”,”reg_and_join”:”JOIN”,”trips_product_name”:”Trips”,”common_Signin”:”Sign in”,”homepage_war_button”:”Write a review”,”ugc_uploader_photo_v3″:”Post photos”,”global_nav_content_cta_post”:”Post”,”dmo_hdr_alerts”:”Alerts”,”insurance_title”:”Insurance”,”links_tahelphostname”:”https://www.tripadvisorsupport.com/hc/en-gb”,”common_more_capital_ffffe27f”:”More”,”mem_settings”:”Settings”,”mw_common_menu_fffffd37″:”Menu”,”cx_explicit_preferences_profile_header3″:”Welcome! Tell us about yourself.”,”my_name_is”:”My name is…”,”explicit_preferences_account_screen_name”:”Name”,”cx_explicit_preferences_profile_name_help”:”This is how your name will appear on Tripadvisor”,”cx_explicit_preferences_profile_hometown”:”I live in…”,”cx_explicit_preferences_profile_hometown_help2″:”Get travel ideas and flight deals based on where you live”,”cx_explicit_preferences_profile_end_screen2″:”Thanks, {displayName}”,”cx_explicit_preferences_profile_end_screen_no_name”:”Thanks.”,”common_Search”:”Search”,”mobile_back_8e0″:”Back”,”mobile_search_filter_clear_26e8″:”Clear”,”mw_js_positionPermissionDenied”:”Tripadvisor was denied permission to access your location. Give your browser and Tripadvisor permission to use your current location and try again.”,”mx_nearby”:”Nearby”,”social_mobile_reason_for_sponsored”:”Sponsored”,”dual_search_recently_viewed_all_caps”:”RECENTLY VIEWED”,”dual_search_popular_destinations”:”POPULAR DESTINATIONS”,”help_center_topics_ffffe427″:”Popular Help Centre Topics”,”common_ffffe429″:”Write a u003ca href=”{0}”>reviewu003c/a>”,”og_masthead_social_sharing_ffffe427″:”Social sharing”,”guidelines_and_policies_ffffe427″:”Guidelines and policies”,”are_you_an_owner_ffffe427″:”Are you an u003ca href=”{0}”>owner or representativeu003c/a>?”,”getlistednew_list_on_tripadvisor_ffffe427″:”List your business”,”respond_to_a_review_ffffe427″:”u003ca href=”{0}”>Respondu003c/a> to a review”,”visit_your_center_ffffe427″:”Visit your u003ca href=”{0}”>Management Centreu003c/a>”,”have_other_questions_ffffe427″:”Have Other Questions?”,”visit_the_help_center_ffffe427″:”Visit the u003ca href=”{0}”>Help Centreu003c/a>”,”articles_opf_title_v2″:”Travel Articles | Travel Tips, Insights, & Inspiration from Tripadvisor”,”articles_opf_meta_description”:”Browse through our articles to find useful travel tips and inspiration to plan your next trip. From must have travel products to breathtaking destinations, Tripadvisor has you covered!”,”social_nowFollowing”:”Following”,”social_nCount_followers2″:”{0, plural, one{# follower} other{# followers}}”,”m2_trips_detail_date_display”:”{0} u2022 {1}”,”see_all_results_for”:”See all results for “{query}””,”common_Hotels”:”Hotels”,”common_Restaurants”:”Restaurants”,”common_Thingstodo”:”Things to do”,”common_Forums”:”Forums”,”post_video_file_type_error”:”This file type is not supported. Please try a .mov, .mp4 or m4v file”,”post_photo_unsupported_file”:”This file type is not supported. Please refer to Tripadvisor’s photo posting guidelines. “,”post_video_size_error”:”This file size is not supported. Please make sure your file is less than 500MB “,”mobile_offline_megabyte_ffffec6c”:”{0} MB”,”file_size_too_big_photo_oops_message”:”This file size is not supported. Please make sure your file is less than {0}”,”video_upload_max_number”:”You can upload a maximum of {nVideos} videos at a time”,”post_photo_tips_guidelines”:”You can upload a maximum of 10 photos at a time”,”video_upload_fail”:”Oops! One or more of your videos failed to upload.”,”post_photo_upload_failed”:”Your photo upload failed. Please try again. “,”uploader_error_required_field”:”This field is required”,”post_video_video_count_text”:”Video {nCurrentVideoCount} of {nTotalVideoCount}”,”post_photo_video_count_text”:”Photo {nCurrentphotoCount} of {nTotalphotoCount}”,”mobile_delete”:”Delete”,”post_photo_add_description_v2_part_1″:”Add a description “,”post_video_add_description_v2_part_2”:”Tell other travellers about your video “,”post_photo_add_description_v2_part_2”:”Tell other travellers about your photo “,”photo_uploader_add_a_location_tag”:”Add a location tag”,”remove_location_cf6″:”Remove location”,”post_video_upload_another_video”:”Drag and drop or u003c/> u003cspan class=”{sColorClass1}”>upload another video u003c/span>”,”post_photo_upload_another_video”:”Drag and drop or u003c/> u003cspan class=”{sColorClass1}”>upload another photo u003c/span>”,”add_more_videos_mw_uploader”:”Add more videos”,”add_more_photos_mw_uploader”:”Add more photos”,”post_photo_upload_photos_button”:”Upload photos”,”post_photo_or_just_text”:”or”,”post_photo_drag_and_drop_from_desktop”:”Drag and drop a file from your desktop “,”success_repost_video”:”Your video was posted!”,”success_repost_photo”:”Your photo was posted!”,”ds_textarea_minimum_characters”:”{numCount}/{numLimit} min characters”,”ds_textarea_maximum_characters”:”{numCount}/{numLimit} max characters”,”new_videos_terms_of_use”:”By uploading these videos,u00A0I verify that I am the owner of this content and I accept Tripadvisor’s u003ca href={link} target=’_blank’>Terms of Useu003c/a>”,”new_photos_terms_of_use”:”By uploading these photos,u00A0I verify that I am the owner of this content and I accept Tripadvisor’s u003ca href={link} target=’_blank’>Terms of Useu003c/a>”,”new_video_terms_of_use”:”By uploading this video,u00A0I verify that I am the owner of this content and I accept Tripadvisor’s u003ca href={link} target=’_blank’>Terms of Useu003c/a>”,”new_photo_terms_of_use”:”By uploading this photo,u00A0I verify that I am the owner of this content and I accept Tripadvisor’s u003ca href={link} target=’_blank’>Terms of Useu003c/a>”,”mobile_help_center_url”:”https://www.tripadvisorsupport.com/hc/en-us”,”flash_uploader_tips_and_guidelines_10d8″:”Tips & guidelines”,”video_upload_video_formats_accepted”:”Accepted video formats include {sFileExtentions}”,”post_photo_accepted_formats”:”Accepted photo formats include .jpg .jpeg .gif and .png”,”file_size_limit_photo”:”File size should be less than {0}MB.”,”video_upload_more_info_guidelines_link”:”For more information see our u003cspan>video uploader guidelinesu003c/span>”,”post_photo_more_info_2″:”For more information see our u003cspan>photo uploader guidelinesu003c/span>”,”social_confirm_close_photo_post”:”Are you sure you want to close out of your photo post?”,”post_videos_button”:”Post videos”,”post_video_button”:”Post video”,”ugc_uploader_photo_v2″:”Post photo”,”post_a_video_modal_header”:”Post a video”,”post_photos_form_header”:”Post photos”,”reg_back”:”Back”,”trip_planner_clear”:”Clear”,”jfy”:”Just for you”,”10_off_tour_activity_v2″:”u003cspan class=”{1}”>10% offu003c/span>u003cbr/> any tour or activity”,”check_email_subheader”:”Check your email for your discount code and get ready to do more for less.”,”discover_ttd”:”Discover things to do”,”continue_sub_cta”:”Continue where you left off”,”free_cancel_ahead”:”u003cspan class=”{0}”>No commitment:u003c/span> Cancel for free up to 24 hours ahead.”,”expiry_date_cta”:”u003cspan class=”{0}”>But donu2019t wait:u003c/span> Expires on {sDate} at {sTime}”,”common_btn_cancel_ffffe209″:”Cancel”,”nearby_use_my_location”:”Use my location”,”common_Populardestinations”:”Popular destinations”,”explicit_preferences_who_are_you_traveling_with_skip_button”:”SKIP”,”common_Next”:”Next”,”dual_search_worldwide”:”Worldwide”,”mobile_no_results_found_8e0″:”No results found”,”typeAheadSearchFor_fffff81b”:”Search for “{0}””,”post_video_typeahead_placeholder_text_search”:”Search”,”post_video_location_typeahead_add_location”:”Add another location “,”common_NEW_1bd8″:”NEW”,”mobile_discovery_where_to”:”Where to?”,”cx_explicit_preferences_cta_header”:”Tell us about your trip”,”cx_explicit_preferences_cta_subheader3″:”Youu2019ll see personalised ideas from other travellers like you.”,”onboarding_social_brand_splash_get_started_cta”:”Get started”,”cx_explicit_preferences_edit_cta_header”:”Your trip details”,”cx_explicit_preferences_edit_trip_details”:”Edit trip details”,”ONB_saves_educator_tap_the_heart_subhead”:”Now let's help you plan an awesome trip. When you see something you like, tap the heart to save it.”,”cx_explicit_preferences_end_body_nearby”:”Now start discovering nearby ideas from other travellers.”,”cx_explicit_preferences_end_body_geo”:”Now start discovering great {destinationGeoName} ideas from other travellers like you.”,”cx_explicit_preferences_welcome_header3″:”Hi, {displayName}. Letu2019s help you plan a trip youu2019ll love.”,”cx_explicit_preferences_welcome_header_no_name2″:”Thanks. Now, let’s help you plan a trip you’ll love.”,”cx_explicit_preferences_welcome_subheader2″:”Answer some questions about your trip so we can show you more personalised ideas.”,”cx_explicit_preferences_welcome_yes”:”Yes, letu2019s go”,”cx_explicit_preferences_welcome_no”:”No thanks”,”cx_explicit_preferences_segment_partner”:”My partner”,”cx_explicit_preferences_segment_family”:”My family”,”cx_explicit_preferences_segment_friends”:”My friends”,”cx_explicit_preferences_segment_solo”:”Myself”,”command_where_to_screen_v2″:”Tell us where you’re going.”,”cx_explicit_preferences_destination_header2″:”Great. Where to?”,”cx_explicit_preferences_destination_subheader2″:”Weu2019ll show you recommendations from other travellers whou2019ve been there.”,”dual_search_ghost_im_going_to”:”I’m going to…”,”where_to_hint_text”:”Paris, Costa Rica, Brazil…”,”command_dates_screen_geo”:”Tell us when are you travelling to {destinationGeoName}.”,”cx_explicit_preferences_dates_header”:”When are you travelling to {destinationGeoName}?”,”cx_explicit_preferences_dates_flexible”:”My dates are flexible”,”command_companion_v2″:”Tell us who you’re travelling with.”,”cx_explicit_preferences_segment_header”:”Who are you travelling with?”,”command_interests_screen”:”Tell us what you want to do on your trip.”,”cx_explicit_preferences_interests_header2″:”What do you want to do on your trip?”,”cx_explicit_preferences_interests_subheader3″:”Take a look at what {destinationGeoName} travellers are talking about and select what you might like.”,”cx_explicit_preferences_cta_month2″:”Travelling in {month}”,”cx_explicit_preferences_cta_months2″:”Travelling from {month1} to {month2}”,”cx_explicit_preferences_cta_date2″:”Travelling on {date}”,”cx_explicit_preferences_cta_dates2″:”Travelling from {date1} to {date2}”,”cx_explicit_preferences_cta_traveling_partner”:”Travelling with your partner”,”cx_explicit_preferences_cta_partner2″:”With your partner”,”cx_explicit_preferences_cta_traveling_family”:”Travelling with family”,”cx_explicit_preferences_cta_family2″:”With family”,”cx_explicit_preferences_cta_traveling_friends”:”Travelling with friends”,”cx_explicit_preferences_cta_friends3″:”With friends”,”cx_explicit_preferences_cta_traveling_solo”:”Travelling solo”,”cx_explicit_preferences_cta_solo2″:”Solo”,”cx_explicit_preferences_cta_interested_in”:”Interested in”,”mx_geo_picker_popular_destinations”:”POPULAR DESTINATIONS”,”trips_lander_title”:”Trips on Tripadvisor”,”trips_lander_md”:”Trips makes it easy to save travel plans, build wish lists and map out all your ideas for places to eat, things to do and where to stay u2014 and bring them with you, wherever you go.”,”trips_education_amazing_ideas_one_place”:”Trips: your amazing travel ideas, all in one place”,”trips_education_easy_save_orgaize_map_bring_with_you”:”Trips makes it easy to save, organise and map out all your ideas for places to eat, things to do and where to stay u2014 and bring them with you, wherever you go.”,”trips_lander_header”:”Travelling soon? Save your amazing ideas all in one place with Trips.”,”trips_lander_copy_1″:”Save traveller-recommended places for your trip”,”trips_lander_copy_2″:”View the things to do, restaurants and hotels you saved on a map”,”trips_lander_copy_3b”:”Easily access all your saves while travelling, wherever you go”,”empty_trip_home_get_started”:”Get started”,”trips_log_in_now”:”Log in now”,”hrm_onboarding_flyout_autoreviewcollection”:”Let us do the work for you to collect more reviews! Connect and enable your provider to get started.”,”hrm_onboarding_flyout_donotshowagain”:”Do not show again”,”hrm_onboarding_flyout_customizecampaigns”:”Create a review collection campaign with our optimised templates that can be customised to make them your own.”,”hrm_onboarding_flyout_partners”:”Save precious time by responding to reviews across Tripadvisor, Google and Facebook all on the same page.”,”hrm_flyoutupsell_hr”:”Hi {sUserDisplayName}! Unlock our reputation management solutions to help impact your Tripadvisor bubble score and ranking.”,”hrm_flyoutupsell_cta_tryitforfree”:”Try it for free”,”hrm_flyoutupsell_managementcenter”:”Unlock our reputation management solutions to collect more reviews and give travellers confidence to book.”,”hrm_flyoutupsell_cta_starttrial”:”Start a free trial”,”hrm_flyoutupsell_ownerresponse”:”Save time by responding to reviews across Tripadvisor, Google, and Facebook all on the same page.”,”hrm_flyoutupsell_reviewcollection”:”Let us collect more reviews for you with even less effort. More reviews means more opportunities to impact your ranking and increase your visibility on Tripadvisor.”,”member_support_reviews”:”Reviews”,”rs_reputation_filter_accounts_ta”:”Tripadvisor”,”rs_reputation_filter_accounts_google”:”Google”,”rs_reputation_filter_accounts_fb”:”Facebook”,”common_Xof5bubbles”:”{0} of 5 bubbles”,”mobile_reviews_plural”:”{0, plural, one{# review} other{# reviews}}”,”sbx_survey_prompt_text”:”Can you tell us about your Tripadvisor experience?”,”sbx_take_survey”:”Take survey”,”common_Cookie_consent_14f6″:”Cookie consent”,”footer_disclaimer_line1″:”This is the version of our website addressed to speakers of {language} in {country}. If you are a resident of another country or region, please select the appropriate version of Tripadvisor for your country or region in the drop-down menu.”,”footer_disclaimer_line1_no_country”:”This version of our website is addressed to speakers of {language} generally, except for when a specific version of our website exists for their country or region. You may use the drop-down menu to access other versions of Tripadvisor addressed to specific countries and regions.”,”footer_disclaimer_line2″:”TripAdvisor LLC makes no guarantees for availability of prices advertised on our sites and applications. Listed prices may require a stay of a particular length or have blackout dates, qualifications or other applicable restrictions. TripAdvisor LLC is not responsible for any content on external web sites that are not owned or operated by Tripadvisor.”,”footer_disclaimer_line2_estimates”:”Indicative hotel prices displayed on our u201CExploreu201D pages are estimates extrapolated from historic pricing data.”,”footer_disclaimer_line3″:”TripAdvisor LLC is not a booking agent or tour operator. When you book with one of our partners, please be sure to check their site for a full disclosure of all applicable fees.”,”common_26ec”:”u00A9 {0} TripAdvisor LLC”,”common_Allrightsreserved”:”All rights reserved.”,”photos_provided_by_2_1bed”:”Some photos provided by {0}.”,”common_more_ffffe87d”:”more”,”common_9bc”:”Currency”,”footer_region”:”Region”,”footer_about_ta_v2″:”About Tripadvisor”,”footer_explore_v2″:”Explore”,”footer_do_business_v2″:”Do Business With Us”,”footer_get_app_v2″:”Get The App”,”footer_ta_sites_v2″:”Tripadvisor Sites”,”region_americas_25ed”:”The Americas”,”bhotw_region_europe_title”:”Europe”,”region_apac_25ed”:”Asia Pacific”,”inspiration_region_6_ffffee49″:”Africa & the Middle East”,”onetap_message_unlock”:”Unlock the best of Tripadvisor”,”onetap_subhead_signin_alerts_deals”:”Log in to get price alerts and deals”,”terms_and_policy_links”:”By proceeding, you agree to our u003ca rel=”nofollow” class=”{2}” target=”_blank” href=”{0}”>Terms of Useu003c/a> and confirm you have read our u003ca rel=”nofollow” class=”{2}” target=”_blank” href=”{1}”>Privacy Policyu003c/a>.”,”I_live_in”:”I live in…”,”home_location_things_near_you”:”Tell us where you live to get great ideas for things to do near you.”,”onetap_message_subhead_to_get_the_most”:”Log in to get the most out of Tripadvisor”,”global_travel_notice_head”:”TRAVEL NOTICE:”,”global_travel_notice_covid19″:”Learn more about COVID-19″},”features”:{“saves_hotspot_button”:false,”trips_skip_check_whitelist_public_trips”:true,”trips_heart_icon”:true,”trips_bookmark”:true,”trips_pop_stat_modal”:true,”sentryio_js”:false,”hr_dark_green_icons”:true,”react_tracking_impressions”:true,”trips_2018_collab”:true,”trips_2018_writes”:true,”t12368_project_nova_all_servlets”:false,”post_signup_attr_promo_masthead_join”:false,”dd_brand_refresh”:false,”shopping_cart_desktop”:true,”saves”:true,”trips_2018″:true,”unified_inbox_v2″:true,”breadcrumbs_and_masthead_h1_on_new_tourism”:false,”persistent_header_unscoped_bu_home”:true,”global_nav_links_test”:false,”breadcrumbs_as_global_nav”:false,”post_signup_attr_promo_explicit_preferences_control”:false,”post_signup_attr_promo_explicit_preferences”:false,”ep_has_command_screen”:false,”ep_has_command_screen_control”:false,”cx_explicit_preferences_onboarding”:false,”cx_explicit_preferences_onetap”:true,”cx_explicit_preferences_scoped_home_cta”:true,”cx_explicit_preferences_scoped_home_cta_always_edit”:true,”cx_explicit_preferences_geopill”:false,”account_screen_onb”:false,”optimus”:true,”optimus_new_members”:false,”optimus_banner_test_control”:false,”optimus_banner_test_a”:false,”optimus_banner_test_b”:false,”delayed_ad_calls_lure_variant”:false,”attractions_lithium_filtered”:false,”fusion_lithium_attractions_client_side_navigation”:false,”fusion_lithium_attraction_products_list_page”:false,”fusion_lithium_hotels_list_page”:false,”fusion_lithium_restaurant_review_page”:false,”fusion_lithium_hotel_review_page”:false,”restaurant_list_consolidation”:false,”home_lithium”:true,”nearby_lithium”:true,”tourism_lithium”:true,”travel_advice”:true,”travel_advice_preview”:true,”rich_content_editor”:true,”curated_shelves_preview”:true,”cruise_better_by_sea”:false,”account_merge”:true,”forum_home_lithium”:true,”vr_broad_geo_list_redesign”:false,”tourism_management_center”:false,”mc_redesign_core”:false,”media_preview_focal_point”:false,”places_sift_tracking”:false,”quicklinks_sorting_model”:false,”mobile_web_feature_dual_search_geo_navi”:false,”social_homepage_autopop_geopill”:false,”social_homepage_new_headline”:false,”saves_educator_explicit_preferences”:false,”saves_educator_control”:false,”navigation_to_scoped_home”:false,”trips_saves_heart”:true,”t4b_management_center_full_story_sampled”:false,”t4b_management_center_full_story”:true,”hrm_beta_full_story”:true,”qualtrics_site_brand_experience_surveys_journey”:true,”qualtrics_site_brand_experience_surveys_bu”:false,”t9944_sbx_2_bu”:false,”t9945_sbx_2_journey”:true,”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,”qualtrics_surveys_any”:false,”disable_reg_dialog_for_hardgate”:false,”fbot_single_screen_onb”:false,”account_screen_onb_control”:false,”ml_hard_gate_model_v1_reevaluate_on_page_view”:false,”ml_hard_gate_dt_v1_master”:false,”ml_hard_gate_dt_v2_master”:false,”ml_hard_gate_dt_v3_master”:false,”ml_hard_gate_master”:false,”ml_hard_gate_dt”:false,”hard_gate_excl_disable_domain_direct”:false,”ungate_sponsored_listing_clicks”:true,”review_detail_hard_gate_master_dt”:false,”review_detail_hard_gate_dt_other_servlets”:false,”ml_hard_gate_targeting_logic”:false,”ml_hard_gate_no_reqlo”:false,”mw_hard_gate_ghost”:false,”mobile_fixed_ad”:false,”post_signup_attr_promo_onetap”:false,”onetap_onboarding”:true,”reg_emailoptin”:true,”google_onetap_contextual_message_mobile_lithium”:false,”google_onetap_contextual_message_desktop_lithium”:true,”health_notice_banner”:true,”prod_runtime_tracking”:false,”dummy_cache_on_client”:false,”rubicon_header_bidding”:true,”amazon_header_bidding”:true,”apr_lithium_control”:false},”apolloCache”:null,”urqlCache”:{“824923715”:{“data”:{“locations”:[null]}},”1711287447″:{“data”:{“footerLinks”:{“aboutUsLinks”:[{“preLocalizedAnchorText”:”About Us”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”about_us”,”url”:”https://tripadvisor.mediaroom.com/uk-about-us”},{“preLocalizedAnchorText”:”Press”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”press”,”url”:”https://tripadvisor.mediaroom.com/uk-contact-us”},{“preLocalizedAnchorText”:”Resources and Policies”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”resources_and_policies”,”url”:”https://tripadvisor.mediaroom.com/uk-resources”},{“preLocalizedAnchorText”:”Content Integrity”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”content_integrity”,”url”:”https://tripadvisor.mediaroom.com/UK-content-integrity-policy”}],”businessLinks”:[{“preLocalizedAnchorText”:”Owners”,”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”:”Sponsored Placements”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”sponsored_placements_click”,”url”:”/business/sponsored-placements?args=-m58399″},{“preLocalizedAnchorText”:”Advertise with Us”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”advertise”,”url”:”/MediaKit”},{“preLocalizedAnchorText”:”Become an Affiliate”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”affiliate”,”url”:”/affiliates”}],”restaurantLinks”:[{“preLocalizedAnchorText”:”Manage Your Business”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”rs_footer_manage_your_business_click”,”url”:”/Owners”},{“preLocalizedAnchorText”:”Advertise Your Restaurant”,”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”:”More Resources”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”rs_footer_click_more_resources”,”url”:”/ForRestaurants”}],”exploreLinks”:[{“preLocalizedAnchorText”:”About Us”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”about_us”,”url”:”https://tripadvisor.mediaroom.com/uk-about-us”,”isObfuscated”:null},{“preLocalizedAnchorText”:”Help Centre”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”help_center”,”url”:”https://www.tripadvisorsupport.com/hc/en-gb”,”isObfuscated”:null}],”legalLinks”:[{“preLocalizedAnchorText”:”Terms of Use”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”terms_of_use”,”url”:”https://tripadvisor.mediaroom.com/uk-terms-of-use”,”isObfuscated”:null},{“preLocalizedAnchorText”:”Privacy and Cookies Statement”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”privacy_policy”,”url”:”https://tripadvisor.mediaroom.com/uk-privacy-policy”,”isObfuscated”:null},{“preLocalizedAnchorText”:”Cookie consent”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”cookie_consent”,”url”:”modal://cookie-consent”,”isObfuscated”:null},{“preLocalizedAnchorText”:”Site Map”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”site_map”,”url”:”/SiteIndex-g191-United_States.html”,”isObfuscated”:null},{“preLocalizedAnchorText”:”How the site works”,”localizedAnchorText”:null,”newWindow”:null,”trackAction”:”hamon_law”,”url”:”/pages/serviceEN.html”,”isObfuscated”:null}],”appLinks”:[{“preLocalizedAnchorText”:”iPhone App”,”localizedAnchorText”:null,”newWindow”:true,”trackAction”:”ios_app”,”url”:”/ShowUrl-a_partnerKey.1-a_url.http%3A__2F____2F__itunes__2E__apple__2E__com__2F__gb__2F__app__2F__tripadvisor__2F__id284876795__3F__mt%3D8__26__pt%3D14124__26__ct%3DBrand__5F__AppPage__5F__0__5F__63742-a_urlKey.fbc1ea310d45d92e4.html”},{“preLocalizedAnchorText”:”Android App”,”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%3Den__26__referrer%3Dutm__5F__download__5F__tracking%253DBrand__5F__AppPage__5F__0__5F__63742-a_urlKey.70bb05c81415ae292.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__TripAdvisorUK-a_urlKey.bfb24c722a7bcd1ca.html”},{“preLocalizedAnchorText”:”Pinterest”,”localizedAnchorText”:null,”iconUrl”:”/img2/social/icons/pinterest_20x20.png”,”trackAction”:”pinterest”,”url”:”/ShowUrl-a_partnerKey.1-a_url.https%3A__2F____2F__www__2E__pinterest__2E__com__2F__tripadvisorus__2F__-a_urlKey.dc384df7d23fa0257.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”:”Book the best restaurants with u003ca target=”_blank” class=”inlineLink” href=”https://www.thefork.co.uk/”>TheForku003c/a>”,”localizedLink”:null,”trackAction”:”sites_thefork”},{“preLocalizedLink”:”Book tours and attraction tickets on u003ca target=”_blank” class=”inlineLink” href=”https://www.viator.com/en-GB/”>Viatoru003c/a>”,”localizedLink”:null,”trackAction”:”sites_viator”},{“preLocalizedLink”:”Read cruise reviews on u003ca target=”_blank” class=”inlineLink” href=”https://www.cruisecritic.co.uk/”>Cruise Criticu003c/a>”,”localizedLink”:null,”trackAction”:”sites_cruisecritic”},{“preLocalizedLink”:”Search for holiday rentals on u003ca target=”_blank” class=”inlineLink” href=”https://www.holidaylettings.co.uk/”>Holiday Lettingsu003c/a>”,”localizedLink”:null,”trackAction”:”sites_holidaylettings”}]}}},”2652962399″:{“data”:{“currency”:{“code”:”USD”,”name”:”U.S. Dollars”,”symbol”:”$”}}},”3091633093″:{“data”:{“locations”:[{“name”:”Texas”}],”insightProfile”:{“locations”:[{“location”:{“locationId”:28964,”parentId”:191,”name”:”Texas”,”url”:”/Tourism-g28964-Texas-Vacations.html”,”HOTELS_URL”:”/Hotels-g28964-Texas-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g28964-Activities-Texas.html”,”RESTAURANTS_URL”:”/Restaurants-g28964-Texas.html”,”isGeo”:true,”locationV2″:{“placeType”:”STATE”,”names”:{“longOnlyHierarchyTypeahead”:”United States, North America”,”longOnlyHierarchyTypeaheadV2″:”United States, North America”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g28964-Reviews-Texas-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/15/33/fb/14/texas.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/15/33/fb/14/texas.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/15/33/fb/14/texas.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/15/33/fb/14/texas.jpg”},{“width”:250,”height”:62,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/15/33/fb/14/texas.jpg”},{“width”:550,”height”:137,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/15/33/fb/14/texas.jpg”},{“width”:1024,”height”:255,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/15/33/fb/14/texas.jpg”},{“width”:1280,”height”:318,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/15/33/fb/14/texas.jpg”}]},”placeType”:”STATE”}}]},”popularDestinations”:[{“locationId”:34515,”parentId”:1591089,”name”:”Orlando”,”url”:”/Tourism-g34515-Orlando_Florida-Vacations.html”,”HOTELS_URL”:”/Hotels-g34515-Orlando_Florida-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g34515-Activities-Orlando_Florida.html”,”RESTAURANTS_URL”:”/Restaurants-g34515-Orlando_Florida.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”Florida, United States”,”longOnlyHierarchyTypeaheadV2″:”Central Florida, United States”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g34515-Reviews-Orlando_Florida-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/03/74/78/7e/christmas-magic.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/03/74/78/7e/christmas-magic.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/03/74/78/7e/christmas-magic.jpg”},{“width”:153,”height”:205,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/03/74/78/7e/christmas-magic.jpg”},{“width”:337,”height”:450,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/03/74/78/7e/christmas-magic.jpg”},{“width”:2448,”height”:3264,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/03/74/78/7e/christmas-magic.jpg”}]},”placeType”:”CITY”},{“locationId”:45963,”parentId”:28949,”name”:”Las Vegas”,”url”:”/Tourism-g45963-Las_Vegas_Nevada-Vacations.html”,”HOTELS_URL”:”/Hotels-g45963-Las_Vegas_Nevada-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g45963-Activities-Las_Vegas_Nevada.html”,”RESTAURANTS_URL”:”/Restaurants-g45963-Las_Vegas_Nevada.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”Nevada, United States”,”longOnlyHierarchyTypeaheadV2″:”Nevada, United States”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g45963-Reviews-Las_Vegas_Nevada-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/0d/90/b1/d5/las-vegas-welcome-sign.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/0d/90/b1/d5/las-vegas-welcome-sign.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/0d/90/b1/d5/las-vegas-welcome-sign.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/0d/90/b1/d5/las-vegas-welcome-sign.jpg”},{“width”:250,”height”:167,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/0d/90/b1/d5/las-vegas-welcome-sign.jpg”},{“width”:550,”height”:367,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/0d/90/b1/d5/las-vegas-welcome-sign.jpg”},{“width”:1024,”height”:683,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/0d/90/b1/d5/las-vegas-welcome-sign.jpg”},{“width”:1200,”height”:800,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/0d/90/b1/d5/las-vegas-welcome-sign.jpg”}]},”placeType”:”CITY”},{“locationId”:186330,”parentId”:186318,”name”:”Windermere”,”url”:”/Tourism-g186330-Windermere_Lake_District_Cumbria_England-Vacations.html”,”HOTELS_URL”:”/Hotels-g186330-Windermere_Lake_District_Cumbria_England-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g186330-Activities-Windermere_Lake_District_Cumbria_England.html”,”RESTAURANTS_URL”:”/Restaurants-g186330-Windermere_Lake_District_Cumbria_England.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”Cumbria, England”,”longOnlyHierarchyTypeaheadV2″:”Lake District, United Kingdom”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g186330-Reviews-Windermere_Lake_District_Cumbria_England-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/0f/38/c9/b6/fall-colours-along-the.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:250,”height”:166,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:320,”height”:212,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/320×120/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:550,”height”:364,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:768,”height”:509,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/768×250/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:1024,”height”:678,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:1024,”height”:678,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1024×250/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:1280,”height”:848,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1280×250/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:2000,”height”:1325,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/0f/38/c9/b6/fall-colours-along-the.jpg”},{“width”:2560,”height”:1696,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/2560×500/0f/38/c9/b6/fall-colours-along-the.jpg”}]},”placeType”:”CITY”},{“locationId”:186338,”parentId”:186217,”name”:”London”,”url”:”/Tourism-g186338-London_England-Vacations.html”,”HOTELS_URL”:”/Hotels-g186338-London_England-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g186338-Activities-London_England.html”,”RESTAURANTS_URL”:”/Restaurants-g186338-London_England.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”England, United Kingdom”,”longOnlyHierarchyTypeaheadV2″:”England, United Kingdom”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g186338-Reviews-London_England-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1c/0e/6d/d4/caption.jpg?w=100&h=100&s=1&cx=1948&cy=2197&chk=v1_ea18b266c4e57c41167a”},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1c/0e/6d/d4/caption.jpg”},{“width”:137,”height”:205,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1c/0e/6d/d4/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1c/0e/6d/d4/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1c/0e/6d/d4/caption.jpg”},{“width”:300,”height”:450,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1c/0e/6d/d4/caption.jpg”},{“width”:550,”height”:825,”url”:”https://media-cdn.tripadvisor.com/media/photo-p/1c/0e/6d/d4/caption.jpg”},{“width”:853,”height”:1280,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/1c/0e/6d/d4/caption.jpg”},{“width”:1024,”height”:1536,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1c/0e/6d/d4/caption.jpg”}]},”placeType”:”CITY”},{“locationId”:186525,”parentId”:186485,”name”:”Edinburgh”,”url”:”/Tourism-g186525-Edinburgh_Scotland-Vacations.html”,”HOTELS_URL”:”/Hotels-g186525-Edinburgh_Scotland-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g186525-Activities-Edinburgh_Scotland.html”,”RESTAURANTS_URL”:”/Restaurants-g186525-Edinburgh_Scotland.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Scotland, United Kingdom”,”longOnlyHierarchyTypeaheadV2″:”Scotland, United Kingdom”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g186525-Reviews-Edinburgh_Scotland-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1b/33/f6/dd/caption.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1b/33/f6/dd/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1b/33/f6/dd/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1b/33/f6/dd/caption.jpg”},{“width”:250,”height”:140,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1b/33/f6/dd/caption.jpg”},{“width”:550,”height”:309,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1b/33/f6/dd/caption.jpg”},{“width”:1024,”height”:574,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1b/33/f6/dd/caption.jpg”},{“width”:1280,”height”:718,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/1b/33/f6/dd/caption.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:187069,”parentId”:187052,”name”:”Manchester”,”url”:”/Tourism-g187069-Manchester_Greater_Manchester_England-Vacations.html”,”HOTELS_URL”:”/Hotels-g187069-Manchester_Greater_Manchester_England-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g187069-Activities-Manchester_Greater_Manchester_England.html”,”RESTAURANTS_URL”:”/Restaurants-g187069-Manchester_Greater_Manchester_England.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”Greater Manchester, England”,”longOnlyHierarchyTypeaheadV2″:”Greater Manchester, United Kingdom”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g187069-Reviews-Manchester_Greater_Manchester_England-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/06/3d/31/60/manchester-town-hall.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/06/3d/31/60/manchester-town-hall.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/06/3d/31/60/manchester-town-hall.jpg”},{“width”:250,”height”:173,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/06/3d/31/60/manchester-town-hall.jpg”},{“width”:320,”height”:222,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/320×120/06/3d/31/60/manchester-town-hall.jpg”},{“width”:550,”height”:380,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/06/3d/31/60/manchester-town-hall.jpg”},{“width”:768,”height”:532,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/768×250/06/3d/31/60/manchester-town-hall.jpg”},{“width”:1024,”height”:708,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/06/3d/31/60/manchester-town-hall.jpg”},{“width”:1024,”height”:709,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1024×250/06/3d/31/60/manchester-town-hall.jpg”},{“width”:1280,”height”:886,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/06/3d/31/60/manchester-town-hall.jpg”},{“width”:1280,”height”:886,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1280×250/06/3d/31/60/manchester-town-hall.jpg”},{“width”:2560,”height”:1772,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/2560×500/06/3d/31/60/manchester-town-hall.jpg”}]},”placeType”:”CITY”},{“locationId”:187147,”parentId”:187144,”name”:”Paris”,”url”:”/Tourism-g187147-Paris_Ile_de_France-Vacations.html”,”HOTELS_URL”:”/Hotels-g187147-Paris_Ile_de_France-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g187147-Activities-Paris_Ile_de_France.html”,”RESTAURANTS_URL”:”/Restaurants-g187147-Paris_Ile_de_France.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”Ile-de-France, France”,”longOnlyHierarchyTypeaheadV2″:”Ile-de-France, France”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g187147-Reviews-Paris_Ile_de_France-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1b/33/ca/c8/caption.jpg?w=100&h=100&s=1&cx=2893&cy=2540&chk=v1_3f03b07d6776236b4686″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1b/33/ca/c8/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1b/33/ca/c8/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1b/33/ca/c8/caption.jpg”},{“width”:250,”height”:167,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1b/33/ca/c8/caption.jpg”},{“width”:550,”height”:367,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1b/33/ca/c8/caption.jpg”},{“width”:1024,”height”:683,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1b/33/ca/c8/caption.jpg”},{“width”:1280,”height”:853,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/1b/33/ca/c8/caption.jpg”}]},”placeType”:”CITY”},{“locationId”:240327,”parentId”:659488,”name”:”Puerto Morelos”,”url”:”/Tourism-g240327-Puerto_Morelos_Yucatan_Peninsula-Vacations.html”,”HOTELS_URL”:”/Hotels-g240327-Puerto_Morelos_Yucatan_Peninsula-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g240327-Activities-Puerto_Morelos_Yucatan_Peninsula.html”,”RESTAURANTS_URL”:”/Restaurants-g240327-Puerto_Morelos_Yucatan_Peninsula.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Quintana Roo, Mexico”,”longOnlyHierarchyTypeaheadV2″:”Yucatan Peninsula, Mexico”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g240327-Reviews-Puerto_Morelos_Yucatan_Peninsula-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/0e/97/2c/bd/photo0jpg.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/0e/97/2c/bd/photo0jpg.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/0e/97/2c/bd/photo0jpg.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/0e/97/2c/bd/photo0jpg.jpg”},{“width”:250,”height”:188,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/0e/97/2c/bd/photo0jpg.jpg”},{“width”:320,”height”:240,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/320×120/0e/97/2c/bd/photo0jpg.jpg”},{“width”:550,”height”:413,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/0e/97/2c/bd/photo0jpg.jpg”},{“width”:768,”height”:576,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/768×250/0e/97/2c/bd/photo0jpg.jpg”},{“width”:1024,”height”:768,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/0e/97/2c/bd/photo0jpg.jpg”},{“width”:1024,”height”:768,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1024×250/0e/97/2c/bd/photo0jpg.jpg”},{“width”:1280,”height”:960,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1280×250/0e/97/2c/bd/photo0jpg.jpg”},{“width”:2048,”height”:1536,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/0e/97/2c/bd/photo0jpg.jpg”},{“width”:2560,”height”:1920,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/2560×500/0e/97/2c/bd/photo0jpg.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:34439,”parentId”:28930,”name”:”Miami Beach”,”url”:”/Tourism-g34439-Miami_Beach_Florida-Vacations.html”,”HOTELS_URL”:”/Hotels-g34439-Miami_Beach_Florida-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g34439-Activities-Miami_Beach_Florida.html”,”RESTAURANTS_URL”:”/Restaurants-g34439-Miami_Beach_Florida.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”Florida, United States”,”longOnlyHierarchyTypeaheadV2″:”Florida, United States”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g34439-Reviews-Miami_Beach_Florida-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/12/f7/4e/c3/miami-beach.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/12/f7/4e/c3/miami-beach.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/12/f7/4e/c3/miami-beach.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/12/f7/4e/c3/miami-beach.jpg”},{“width”:250,”height”:109,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/12/f7/4e/c3/miami-beach.jpg”},{“width”:320,”height”:140,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/320×120/12/f7/4e/c3/miami-beach.jpg”},{“width”:550,”height”:241,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/12/f7/4e/c3/miami-beach.jpg”},{“width”:768,”height”:336,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/768×250/12/f7/4e/c3/miami-beach.jpg”},{“width”:1024,”height”:448,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/12/f7/4e/c3/miami-beach.jpg”},{“width”:1024,”height”:448,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1024×250/12/f7/4e/c3/miami-beach.jpg”},{“width”:1280,”height”:561,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1280×250/12/f7/4e/c3/miami-beach.jpg”},{“width”:2560,”height”:1121,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/2560×500/12/f7/4e/c3/miami-beach.jpg”},{“width”:8289,”height”:3630,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/12/f7/4e/c3/miami-beach.jpg”}]},”placeType”:”CITY”},{“locationId”:34345,”parentId”:34340,”name”:”Key West”,”url”:”/Tourism-g34345-Key_West_Florida_Keys_Florida-Vacations.html”,”HOTELS_URL”:”/Hotels-g34345-Key_West_Florida_Keys_Florida-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g34345-Activities-Key_West_Florida_Keys_Florida.html”,”RESTAURANTS_URL”:”/Restaurants-g34345-Key_West_Florida_Keys_Florida.html”,”isGeo”:true,”locationV2″:{“placeType”:”ISLAND”,”names”:{“longOnlyHierarchyTypeahead”:”Florida, United States”,”longOnlyHierarchyTypeaheadV2″:”Florida Keys, United States”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g34345-Reviews-Key_West_Florida_Keys_Florida-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/15/33/ff/1f/key-west.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/15/33/ff/1f/key-west.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/15/33/ff/1f/key-west.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/15/33/ff/1f/key-west.jpg”},{“width”:250,”height”:49,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/15/33/ff/1f/key-west.jpg”},{“width”:550,”height”:108,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/15/33/ff/1f/key-west.jpg”},{“width”:1024,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/15/33/ff/1f/key-west.jpg”},{“width”:1280,”height”:250,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/15/33/ff/1f/key-west.jpg”}]},”placeType”:”ISLAND”},{“locationId”:150807,”parentId”:1575485,”name”:”Cancun”,”url”:”/Tourism-g150807-Cancun_Yucatan_Peninsula-Vacations.html”,”HOTELS_URL”:”/Hotels-g150807-Cancun_Yucatan_Peninsula-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g150807-Activities-Cancun_Yucatan_Peninsula.html”,”RESTAURANTS_URL”:”/Restaurants-g150807-Cancun_Yucatan_Peninsula.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Quintana Roo, Mexico”,”longOnlyHierarchyTypeaheadV2″:”Yucatan Peninsula, Mexico”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g150807-Reviews-Cancun_Yucatan_Peninsula-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1b/33/d5/84/caption.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1b/33/d5/84/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1b/33/d5/84/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1b/33/d5/84/caption.jpg”},{“width”:250,”height”:167,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1b/33/d5/84/caption.jpg”},{“width”:550,”height”:367,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1b/33/d5/84/caption.jpg”},{“width”:1024,”height”:683,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1b/33/d5/84/caption.jpg”},{“width”:1199,”height”:800,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/1b/33/d5/84/caption.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:152515,”parentId”:150773,”name”:”Cabo San Lucas”,”url”:”/Tourism-g152515-Cabo_San_Lucas_Los_Cabos_Baja_California-Vacations.html”,”HOTELS_URL”:”/Hotels-g152515-Cabo_San_Lucas_Los_Cabos_Baja_California-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g152515-Activities-Cabo_San_Lucas_Los_Cabos_Baja_California.html”,”RESTAURANTS_URL”:”/Restaurants-g152515-Cabo_San_Lucas_Los_Cabos_Baja_California.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”Baja California Sur, Mexico”,”longOnlyHierarchyTypeaheadV2″:”Baja California, Mexico”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g152515-Reviews-Cabo_San_Lucas_Los_Cabos_Baja_California-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/01/bf/3a/e9/wow.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/01/bf/3a/e9/wow.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/01/bf/3a/e9/wow.jpg”},{“width”:250,”height”:187,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/01/bf/3a/e9/wow.jpg”},{“width”:550,”height”:412,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/01/bf/3a/e9/wow.jpg”},{“width”:640,”height”:480,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/01/bf/3a/e9/wow.jpg”}]},”placeType”:”CITY”},{“locationId”:150812,”parentId”:659488,”name”:”Playa del Carmen”,”url”:”/Tourism-g150812-Playa_del_Carmen_Yucatan_Peninsula-Vacations.html”,”HOTELS_URL”:”/Hotels-g150812-Playa_del_Carmen_Yucatan_Peninsula-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g150812-Activities-Playa_del_Carmen_Yucatan_Peninsula.html”,”RESTAURANTS_URL”:”/Restaurants-g150812-Playa_del_Carmen_Yucatan_Peninsula.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Quintana Roo, Mexico”,”longOnlyHierarchyTypeaheadV2″:”Yucatan Peninsula, Mexico”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g150812-Reviews-Playa_del_Carmen_Yucatan_Peninsula-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1b/33/eb/17/caption.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1b/33/eb/17/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1b/33/eb/17/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1b/33/eb/17/caption.jpg”},{“width”:250,”height”:141,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1b/33/eb/17/caption.jpg”},{“width”:550,”height”:309,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1b/33/eb/17/caption.jpg”},{“width”:1024,”height”:576,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/1b/33/eb/17/caption.jpg”},{“width”:1024,”height”:576,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1b/33/eb/17/caption.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:150813,”parentId”:659488,”name”:”Tulum”,”url”:”/Tourism-g150813-Tulum_Yucatan_Peninsula-Vacations.html”,”HOTELS_URL”:”/Hotels-g150813-Tulum_Yucatan_Peninsula-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g150813-Activities-Tulum_Yucatan_Peninsula.html”,”RESTAURANTS_URL”:”/Restaurants-g150813-Tulum_Yucatan_Peninsula.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Quintana Roo, Mexico”,”longOnlyHierarchyTypeaheadV2″:”Yucatan Peninsula, Mexico”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g150813-Reviews-Tulum_Yucatan_Peninsula-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1b/36/37/eb/caption.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1b/36/37/eb/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1b/36/37/eb/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1b/36/37/eb/caption.jpg”},{“width”:250,”height”:128,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1b/36/37/eb/caption.jpg”},{“width”:550,”height”:281,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1b/36/37/eb/caption.jpg”},{“width”:1024,”height”:523,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1b/36/37/eb/caption.jpg”},{“width”:1280,”height”:654,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/1b/36/37/eb/caption.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:147293,”parentId”:3458428,”name”:”Punta Cana”,”url”:”/Tourism-g147293-Punta_Cana_La_Altagracia_Province_Dominican_Republic-Vacations.html”,”HOTELS_URL”:”/Hotels-g147293-Punta_Cana_La_Altagracia_Province_Dominican_Republic-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g147293-Activities-Punta_Cana_La_Altagracia_Province_Dominican_Republic.html”,”RESTAURANTS_URL”:”/Restaurants-g147293-Punta_Cana_La_Altagracia_Province_Dominican_Republic.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Dominican Republic, Caribbean”,”longOnlyHierarchyTypeaheadV2″:”La Altagracia Province, Dominican Republic”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g147293-Reviews-Punta_Cana_La_Altagracia_Province_Dominican_Republic-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1b/36/36/c0/caption.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1b/36/36/c0/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1b/36/36/c0/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1b/36/36/c0/caption.jpg”},{“width”:250,”height”:158,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1b/36/36/c0/caption.jpg”},{“width”:550,”height”:347,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1b/36/36/c0/caption.jpg”},{“width”:1024,”height”:646,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1b/36/36/c0/caption.jpg”},{“width”:1280,”height”:807,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/1b/36/36/c0/caption.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:60982,”parentId”:29222,”name”:”Honolulu”,”url”:”/Tourism-g60982-Honolulu_Oahu_Hawaii-Vacations.html”,”HOTELS_URL”:”/Hotels-g60982-Honolulu_Oahu_Hawaii-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g60982-Activities-Honolulu_Oahu_Hawaii.html”,”RESTAURANTS_URL”:”/Restaurants-g60982-Honolulu_Oahu_Hawaii.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”Hawaii, United States”,”longOnlyHierarchyTypeaheadV2″:”Oahu, United States”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g60982-Reviews-Honolulu_Oahu_Hawaii-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/04/bc/8d/b2/hanauma-bay.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/04/bc/8d/b2/hanauma-bay.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/04/bc/8d/b2/hanauma-bay.jpg”},{“width”:250,”height”:187,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/04/bc/8d/b2/hanauma-bay.jpg”},{“width”:550,”height”:412,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/04/bc/8d/b2/hanauma-bay.jpg”},{“width”:1024,”height”:768,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/04/bc/8d/b2/hanauma-bay.jpg”},{“width”:2000,”height”:1500,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/04/bc/8d/b2/hanauma-bay.jpg”}]},”placeType”:”CITY”},{“locationId”:60763,”parentId”:28953,”name”:”New York City”,”url”:”/Tourism-g60763-New_York_City_New_York-Vacations.html”,”HOTELS_URL”:”/Hotels-g60763-New_York_City_New_York-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g60763-Activities-New_York_City_New_York.html”,”RESTAURANTS_URL”:”/Restaurants-g60763-New_York_City_New_York.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”New York, United States”,”longOnlyHierarchyTypeaheadV2″:”New York, United States”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g60763-Reviews-New_York_City_New_York-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1b/43/e5/f4/caption.jpg?w=100&h=100&s=1&cx=2496&cy=2574&chk=v1_7cd1e4b62d481349a709″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1b/43/e5/f4/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1b/43/e5/f4/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1b/43/e5/f4/caption.jpg”},{“width”:250,”height”:164,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1b/43/e5/f4/caption.jpg”},{“width”:550,”height”:360,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1b/43/e5/f4/caption.jpg”},{“width”:1024,”height”:671,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1b/43/e5/f4/caption.jpg”},{“width”:1280,”height”:839,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/1b/43/e5/f4/caption.jpg”}]},”placeType”:”CITY”},{“locationId”:295424,”parentId”:2630221,”name”:”Dubai”,”url”:”/Tourism-g295424-Dubai_Emirate_of_Dubai-Vacations.html”,”HOTELS_URL”:”/Hotels-g295424-Dubai_Emirate_of_Dubai-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g295424-Activities-Dubai_Emirate_of_Dubai.html”,”RESTAURANTS_URL”:”/Restaurants-g295424-Dubai_Emirate_of_Dubai.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”United Arab Emirates, Middle East”,”longOnlyHierarchyTypeaheadV2″:”Emirate of Dubai, United Arab Emirates”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g295424-Reviews-Dubai_Emirate_of_Dubai-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1b/51/ca/8d/caption.jpg?w=100&h=100&s=1&cx=2985&cy=1423&chk=v1_ee80618899fd7d7544dd”},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1b/51/ca/8d/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1b/51/ca/8d/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1b/51/ca/8d/caption.jpg”},{“width”:250,”height”:167,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1b/51/ca/8d/caption.jpg”},{“width”:550,”height”:367,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1b/51/ca/8d/caption.jpg”},{“width”:1024,”height”:683,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1b/51/ca/8d/caption.jpg”},{“width”:1280,”height”:853,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/1b/51/ca/8d/caption.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:293974,”parentId”:293969,”name”:”Istanbul”,”url”:”/Tourism-g293974-Istanbul-Vacations.html”,”HOTELS_URL”:”/Hotels-g293974-Istanbul-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g293974-Activities-Istanbul.html”,”RESTAURANTS_URL”:”/Restaurants-g293974-Istanbul.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”Turkey, Europe”,”longOnlyHierarchyTypeaheadV2″:”Turkey, Europe”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g293974-Reviews-Istanbul-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1b/33/f6/60/caption.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1b/33/f6/60/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1b/33/f6/60/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1b/33/f6/60/caption.jpg”},{“width”:250,”height”:138,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1b/33/f6/60/caption.jpg”},{“width”:550,”height”:304,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1b/33/f6/60/caption.jpg”},{“width”:1024,”height”:566,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1b/33/f6/60/caption.jpg”},{“width”:1280,”height”:707,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/1b/33/f6/60/caption.jpg”}]},”placeType”:”CITY”},{“locationId”:312725,”parentId”:13098613,”name”:”Belek”,”url”:”/Tourism-g312725-Belek_Serik_District_Turkish_Mediterranean_Coast-Vacations.html”,”HOTELS_URL”:”/Hotels-g312725-Belek_Serik_District_Turkish_Mediterranean_Coast-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g312725-Activities-Belek_Serik_District_Turkish_Mediterranean_Coast.html”,”RESTAURANTS_URL”:”/Restaurants-g312725-Belek_Serik_District_Turkish_Mediterranean_Coast.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Turkey, Europe”,”longOnlyHierarchyTypeaheadV2″:”Turkish Mediterranean Coast, Turkey”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g312725-Reviews-Belek_Serik_District_Turkish_Mediterranean_Coast-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/0a/cd/d5/11/caption.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/0a/cd/d5/11/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/0a/cd/d5/11/caption.jpg”},{“width”:250,”height”:156,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/0a/cd/d5/11/caption.jpg”},{“width”:320,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/320×120/0a/cd/d5/11/caption.jpg”},{“width”:550,”height”:343,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/0a/cd/d5/11/caption.jpg”},{“width”:768,”height”:479,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/768×250/0a/cd/d5/11/caption.jpg”},{“width”:1024,”height”:639,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/0a/cd/d5/11/caption.jpg”},{“width”:1024,”height”:639,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1024×250/0a/cd/d5/11/caption.jpg”},{“width”:1280,”height”:799,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1280×250/0a/cd/d5/11/caption.jpg”},{“width”:1575,”height”:983,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/0a/cd/d5/11/caption.jpg”},{“width”:2560,”height”:1598,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/2560×500/0a/cd/d5/11/caption.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:297962,”parentId”:297960,”name”:”Antalya”,”url”:”/Tourism-g297962-Antalya_Turkish_Mediterranean_Coast-Vacations.html”,”HOTELS_URL”:”/Hotels-g297962-Antalya_Turkish_Mediterranean_Coast-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g297962-Activities-Antalya_Turkish_Mediterranean_Coast.html”,”RESTAURANTS_URL”:”/Restaurants-g297962-Antalya_Turkish_Mediterranean_Coast.html”,”isGeo”:true,”locationV2″:{“placeType”:”CITY”,”names”:{“longOnlyHierarchyTypeahead”:”Turkey, Europe”,”longOnlyHierarchyTypeaheadV2″:”Turkish Mediterranean Coast, Turkey”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g297962-Reviews-Antalya_Turkish_Mediterranean_Coast-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/15/33/fd/3c/antalya.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/15/33/fd/3c/antalya.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/15/33/fd/3c/antalya.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/15/33/fd/3c/antalya.jpg”},{“width”:250,”height”:49,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/15/33/fd/3c/antalya.jpg”},{“width”:550,”height”:108,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/15/33/fd/3c/antalya.jpg”},{“width”:1024,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/15/33/fd/3c/antalya.jpg”},{“width”:1280,”height”:250,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/15/33/fd/3c/antalya.jpg”}]},”placeType”:”CITY”},{“locationId”:297549,”parentId”:297545,”name”:”Hurghada”,”url”:”/Tourism-g297549-Hurghada_Red_Sea_and_Sinai-Vacations.html”,”HOTELS_URL”:”/Hotels-g297549-Hurghada_Red_Sea_and_Sinai-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g297549-Activities-Hurghada_Red_Sea_and_Sinai.html”,”RESTAURANTS_URL”:”/Restaurants-g297549-Hurghada_Red_Sea_and_Sinai.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Egypt, Africa”,”longOnlyHierarchyTypeaheadV2″:”Red Sea and Sinai, Egypt”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g297549-Reviews-Hurghada_Red_Sea_and_Sinai-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/15/33/fc/eb/hurghada.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/15/33/fc/eb/hurghada.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/15/33/fc/eb/hurghada.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/15/33/fc/eb/hurghada.jpg”},{“width”:250,”height”:49,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/15/33/fc/eb/hurghada.jpg”},{“width”:550,”height”:107,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/15/33/fc/eb/hurghada.jpg”},{“width”:1024,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/15/33/fc/eb/hurghada.jpg”},{“width”:1280,”height”:250,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/15/33/fc/eb/hurghada.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:297555,”parentId”:297556,”name”:”Sharm El Sheikh”,”url”:”/Tourism-g297555-Sharm_El_Sheikh_South_Sinai_Red_Sea_and_Sinai-Vacations.html”,”HOTELS_URL”:”/Hotels-g297555-Sharm_El_Sheikh_South_Sinai_Red_Sea_and_Sinai-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g297555-Activities-Sharm_El_Sheikh_South_Sinai_Red_Sea_and_Sinai.html”,”RESTAURANTS_URL”:”/Restaurants-g297555-Sharm_El_Sheikh_South_Sinai_Red_Sea_and_Sinai.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Egypt, Africa”,”longOnlyHierarchyTypeaheadV2″:”Red Sea and Sinai, Egypt”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g297555-Reviews-Sharm_El_Sheikh_South_Sinai_Red_Sea_and_Sinai-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/15/33/fc/ed/sharm-el-sheikh.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/15/33/fc/ed/sharm-el-sheikh.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/15/33/fc/ed/sharm-el-sheikh.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/15/33/fc/ed/sharm-el-sheikh.jpg”},{“width”:250,”height”:49,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/15/33/fc/ed/sharm-el-sheikh.jpg”},{“width”:550,”height”:108,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/15/33/fc/ed/sharm-el-sheikh.jpg”},{“width”:1024,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/15/33/fc/ed/sharm-el-sheikh.jpg”},{“width”:1280,”height”:250,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/15/33/fc/ed/sharm-el-sheikh.jpg”}]},”placeType”:”MUNICIPALITY”}]}},”3622097493″:{“data”:{“locations”:[{“name”:”Texas”}],”memberProfile”:null,”explicitPreferences”:{“where”:{“value”:44881},”segment”:{“value”:null},”dates”:{“value”:null},”interests”:{“value”:null}}}},”3968619487″:{“data”:{“explicitPreferences”:{“where”:{“value”:44881},”segment”:{“value”:null},”dates”:{“value”:null},”interests”:{“value”:null}}}},”156401003945857″:{“data”:{“currentLocale”:{“pointOfSaleName”:”United Kingdom”,”ietfLocale”:”en-GB”,”languageName”:”English”,”country”:{“locationId”:186216,”name”:”United Kingdom”}}}}},”redux”:{“i18n”:{“locale”:”en_UK”,”language”:”en”,”ietfLocale”:”en-GB”,”isRtl”:false,”distanceUnit”:”MILES”,”firstDayOfWeek”:1},”api”:{“requests”:{“_data_1_0_brand_header_servlet_ShowTopic_viewportCategory_DESKTOP_geoId_28964_pageName_ShowTopic_isTaReferrer_false”:{“loading”:false,”result”:[“/data/1.0/brand/header?servlet=ShowTopic&viewportCategory=DESKTOP&geoId=28964&pageName=ShowTopic&isTaReferrer=false”],”url”:”/data/1.0/brand/header?servlet=ShowTopic&viewportCategory=DESKTOP&geoId=28964&pageName=ShowTopic&isTaReferrer=false”}},”responses”:{“/data/1.0/brand/header?servlet=ShowTopic&viewportCategory=DESKTOP&geoId=28964&pageName=ShowTopic&isTaReferrer=false”:{“data”:{“adjustForSmartBanner”:false,”showGeopill”:true,”numLines”:2,”isPersistentHeader”:false,”usePersistentIcons”:true,”hideLogo”:false,”liteHeader”:false},”error”:null}}},”page”:{“name”:”LOCATION_DETAIL”,”geoId”:28964,”detailId”:0,”crossSells”:{“atLeastOneLocationRegistered”:false,”requestNumber”:1}},”travelerInfo”:{“preferences”:{“currency”:”USD”},”hotels”:null,”vr”:{“start”:null,”end”:null,”adults”:2,”children”:0},”attractions”:{“singleDate”:””,”fromDate”:””,”toDate”:””,”attractionPaxAdults”:0,”attractionPaxChildren”:0},”restaurants”:{“date”:”2021-02-10″,”time”:”8:00 PM”,”partySize”:”2″,”isDefault”:true,”displayDate”:”Wed, 2/10″},”home”:null,”flights”:{“oneWayDate”:”2021-02-24″,”departureDate”:”2021-02-24″,”returnDate”:”2021-03-03″,”originAirportCode”:null,”destinationAirportCode”:null}},”auth”:{“isMember”:false,”csrfToken”:”TNI1625!ALZpQUSvsgkUPOHB/tPRdVOHP+IyA3DPOXhGT8ijdxcLdH/2Xt1O3IFRLiziJl3f17/VhG8seDZiPcgyxskeV+iglsLBoj11fUGArCOHcWnbJKK9seUQ6oAVudk4N66jKy/7Z9VMFnwUrQh6t6j/PzW6rX75OwMSn81ywFWjXy7B”,”altSessId”:”9A710A24B997EED6228B5E6620D6CF3E”,”loggedInUserId”:null,”captcha”:null,”fbApi”:{“apiVersion”:”v3.2″,”facebookConnectApiKey”:”162729813767876″,”facebookConnectAppId”:”162729813767876″,”facebookConnectAppName”:”tripadvisor”,”taServerTime”:1612994466,”skipFacebookSessionCheck”:false,”sdkUrl”:”//connect.facebook.net/en_GB/sdk.js”,”facebookPermissions”:”email,user_hometown,user_friends,user_likes,user_location,user_status,user_photos”}},”route”:{“geo”:”28964″,”ff”:”75″,”page”:”ShowTopic”,”ft”:”9337622″},”lithiumRoute”:[{“page”:”ShowTopic”,”params”:{“topicId”:9337622,”geoId”:28964,”forumId”:75},”path”:”/ShowTopic-g28964-i75-k9337622-Lake_Conroe_Bachelor_Party-Texas.html”,”fragment”:””},{“uid”:”YCRXoQokLI8AAum8C7QAAABT”}],”overlays”:{“global”:null,”fab”:null,”locals”:{},”toasts”:[]},”meta”:{“initialServletName”:”ShowTopic”,”device”:{“viewportCategory”:”DESKTOP”,”userAgentCategory”:”DESKTOP”,”os”:{“family”:”UNKNOWN”,”majorVersion”:-1},”browser”:{“family”:”CHROME”,”majorVersion”:60},”securityToken”:”a801f5fa2b9af9d0b9f6c1c1092887f8a0255ac08c77c4b1edaf74d980528dd1″},”readonlyMode”:false,”initialRelativeUrl”:”/ShowTopic-g28964-i75-k9337622-Lake_Conroe_Bachelor_Party-Texas.html”,”initialAbsoluteUrl”:”https://www.tripadvisor.co.uk/ShowTopic-g28964-i75-k9337622-Lake_Conroe_Bachelor_Party-Texas.html”,”baseUrl”:”https://www.tripadvisor.co.uk”,”imageCdnUrl”:”https://static.tacdn.com”,”cookieDomain”:”.tripadvisor.co.uk”,”taUnique”:”web548a.207.244.230.32.1778DF650AC”,”isTaReferrer”:false,”referrerUrl”:”http://www.bing.com/”,”forceFullSite”:false,”environment”:”Live”,”isNativeWebview”:false,”commerceCountryId”:191,”impressionData”:{“pageLoadUid”:”YCRXoQokLI8AAum8C7QAAABT”},”lineItemsByLoc”:{}},”tracking”:{“mcid”:10570,”uid”:”YCRXoQokLI8AAum8C7QAAABT”,”analytics”:{“cv”:[[“_deleteCustomVar”,1],[“_deleteCustomVar”,47],[“_setCustomVar”,12,”Country”,”United States-191″,3],[“_setCustomVar”,25,”Continent”,”North America-19″,3],[“_setCustomVar”,20,”PP”,”–“,3],[“_deleteCustomVar”,11],[“_deleteCustomVar”,13],[“_deleteCustomVar”,19],[“_deleteCustomVar”,14],[“_deleteCustomVar”,8],[“_deleteCustomVar”,10]],”url”:”/ShowTopic”},”searchSessionId”:”E3F29FFC53AE4079A7819F879D2A3F931612994466390ssid”,”sessionId”:”E3F29FFC53AE4079A7819F879D2A3F93″,”uniqueId”:”web548a.207.244.230.32.1778DF650AC”,”serverName”:”www.tripadvisor.com”,”hostName”:”web548a.a.tripadvisor.com”,”vcsRevision”:1477474,”vcsBranch”:”releases/PRODUCTION_1477018_20210208_0401″,”drsInfo”:”ABC.42*AFIL.16*ATTPromo.71*AUC.12*BBML.25*BMP.31*BRDTTD.68*Brand.12*CAKE.60*CAR.60*COM.65*CRS.34*Community.14*Content.1*CoreX.55*EATPIZZA.46*EID.1*EXP.78*Engage.69*FDP.94*FDS.49*FDU.77*FLTMERCH.10*FLTREV.92*Filters.91*Flights.96*HRATF.9*HSX.16*HSXB.19*IBEX.62*ING.85*INT1.95*INT2.20*ITR.70*L10N.33*ML.53*ML6.79*MM.45*MOBILEAPP.-1*MOF.11*MPS.16*MTA.11*Me2.32*Mem.12*Mobile.78*MobileCore.52*Notifications.91*Other.62*P13N.74*PIE.25*PLS.39*POS.59*PRT.15*RDS1.7*RDS2.20*RDS3.50*RDS4.71*RDS5.54*RET.96*REV.90*REVB.49*REVH.81*REVM.93*REVSD.99*REVSP.24*REVXS.87*RNA.80*RSE1.42*RSE2.41*Rooms.85*S3PO.58*SD40.64*SE2O.29*SEM.92*SEO.30*SORT1.6*Sales.93*Search.38*SiteX.92*Surveys.71*T4B.68*TGT.47*TRP.29*TTD.25*TX.58*Timeline.45*VP.97*VR.63*YM.52*YMB.94″,”uvmScore”:””,”retargetingUrl”:”www.tamgrt.com/RT”,”domainName”:”www.tripadvisor.co.uk”}},”assets”:[“/assets/XjkW5l.f6108d45.js”,”/assets/peh_3a.49635c65.js”,”/assets/lMO0v3.563e8a5b.css”,”/assets/u6QS-O.3a46bf58.css”,”/assets/jb_4W2.5314dece.css”,”/assets/Q7TAd7.7c212531.css”,”/assets/Ov85iR.ea03243f.css”,”/assets/VANuRt.15df56a1.css”,”/assets/m5ZZFI.6d538fab.css”,”/assets/OMqGt0.bd2dce96.css”,”/assets/5-GvUO/_q6t87.83e0c223.css”,”/assets/_qQcW3.037ac9f0.css”,”/assets/eDFcUX.ba126569.css”,”/assets/V08PS7.f6fed3ca.css”,”/assets/PCLJ0D/-EYc4Q.504a8abe.css”,”/assets/yfS4GB.44edef45.css”,”/assets/hA1RHn.4a77d2c6.css”,”/assets/wId9j-.1ba8c346.css”,”/assets/eFikmI.c3f2acf7.css”,”/assets/iuYvTO.dcd71b6c.css”,”/assets/DjNvou.d30e9941.css”,”/assets/gt5mGS.9686d342.css”,”/assets/rSqx0N.2e3ce9a9.css”,”/assets/z2XL6d.2379630c.css”,”/assets/xegF5W.76971e96.css”,”/assets/W3_c4H.f30ba025.css”,”/assets/MG7IEl.d189e8ca.js”,”/assets/cDcdfi.8e4ba464.js”,”/assets/faye7n.8e4ba464.js”,”/assets/h74DsO.8e4ba464.js”,”/assets/RiHMo-.7bced3ea.js”,”/assets/lMO0v3.563e8a5b.js”,”/assets/nIW_Rw.737d8e87.js”,”/assets/-i3PJS.542b908d.js”,”/assets/6hYgtn.5bb1ba2c.js”,”/assets/OnmvvE.16a8be95.js”,”/assets/535agn.a3584d36.js”,”/assets/4LU1Ax.a06d8490.js”,”/assets/B7vHz6.0892d3dc.js”,”/assets/N4pTU2.5e7ec947.js”,”/assets/aunxON.39d15ffc.js”,”/assets/Jk5sjx.8e002f8e.js”,”/assets/pLbCP4.28fe589a.js”,”/assets/UhC_bI.86d98a78.js”,”/assets/fsml46.f22f221d.js”,”/assets/2R4xv2.55d57602.js”,”/assets/xZoNdB.cd18bd59.js”,”/assets/rf6OMe.8e4ba464.js”,”/assets/UWCmG6.8e4ba464.js”,”/assets/rKB8Wf.8e4ba464.js”,”/assets/XtxvfD.65afde83.js”,”/assets/vmXh3M.8e4ba464.js”,”/assets/E8NZou.e0e34172.js”,”/assets/MGkW-Q.8e4ba464.js”,”/assets/17wlKY.8e4ba464.js”,”/assets/YwNsO_.8e4ba464.js”,”/assets/vq6MSq.8f73dab0.js”,”/assets/u6QS-O.3a46bf58.js”,”/assets/jb_4W2.5314dece.js”,”/assets/0DsHEV.17b794b3.js”,”/assets/Q7TAd7.7c212531.js”,”/assets/jaCyxS.4d3173e2.js”,”/assets/5-GvUO.83e0c223.js”,”/assets/F8raOV.0b800539.js”,”/assets/oo669z.7c7ba19d.js”,”/assets/Ov85iR.ea03243f.js”,”/assets/VANuRt.15df56a1.js”,”/assets/mv7yXI.615490ad.js”,”/assets/5X2em-.8e4ba464.js”,”/assets/DbN8HP.8e4ba464.js”,”/assets/b3xEaf.ccbf23e8.js”,”/assets/gsKhh7.a1e4ab1e.js”,”/assets/vWxBAe.f35ae892.js”,”/assets/asW43G.ccd2c892.js”,”/assets/c9QfOM.fbbf9e94.js”,”/assets/l6BSGt.9ec7947b.js”,”/assets/dROhDJ.abc3aa05.js”,”/assets/BLrxBS.a9388b3d.js”,”/assets/6NeHQy.cc71d4e5.js”,”/assets/b57PJQ.8e4ba464.js”,”/assets/n3D4ip.9d1969ed.js”,”/assets/PCLJ0D.504a8abe.js”,”/assets/30t50h.5d1b9e53.js”,”/assets/I81Q5L.4d86f310.js”,”/assets/jmIMrC.8b99cba4.js”,”/assets/QZqymc.9cb69180.js”,”/assets/m5ZZFI.6d538fab.js”,”/assets/jSLlaY.972e0a6b.js”,”/assets/6RAaot.eac3b17c.js”,”/assets/OMqGt0.bd2dce96.js”,”/assets/5-GvUO/_q6t87.83e0c223.js”,”/assets/gGW5sO.5fa0fbac.js”,”/assets/_qQcW3.037ac9f0.js”,”/assets/eDFcUX.ba126569.js”,”/assets/O8LbtK.0345a734.js”,”/assets/V08PS7.f6fed3ca.js”,”/assets/Dg5_-9.3aedc4fc.js”,”/assets/f9x1OV.f0127012.js”,”/assets/T7FcVR.8e4ba464.js”,”/assets/38xMQJ.6ecfb16c.js”,”/assets/w4JHTr.3a6a73ac.js”,”/assets/NJheb1.8e4ba464.js”,”/assets/PCLJ0D/-EYc4Q.504a8abe.js”,”/assets/yfS4GB.44edef45.js”,”/assets/hA1RHn.4a77d2c6.js”,”/assets/wId9j-.1ba8c346.js”,”/assets/eFikmI.c3f2acf7.js”,”/assets/MHKLZN.8b97af2a.js”,”/assets/_cZwhS.d42c2e2e.js”,”/assets/iuYvTO.dcd71b6c.js”,”/assets/DjNvou.d30e9941.js”,”/assets/gt5mGS.9686d342.js”,”/assets/rSqx0N.2e3ce9a9.js”,”/assets/_Z-1K3.70f92b7c.js”,”/assets/vd4nty.c6e30510.js”,”/assets/z2XL6d.2379630c.js”,”/assets/xegF5W.76971e96.js”,”/assets/_g8cls.bc1639a8.js”,”/assets/8xs-IB.4ef49c77.js”,”/assets/W3_c4H.f30ba025.js”,”/assets/nZ7AfP.eef9e0a8.css”,”/assets/tc4D5F.a311c363.css”,”/assets/cBPvJq.9efe1cf8.css”,”/assets/U3jxzU.c61c28dd.css”,”/assets/_pymO0.a02e98e8.css”,”/assets/DtZPgN.bc1f2398.css”,”/assets/nZ7AfP.eef9e0a8.js”,”/assets/hxnqL3.4a0bbebf.js”,”/assets/xlsORH.eec4d080.js”,”/assets/sERCEg.636c4ca5.js”,”/assets/tc4D5F.a311c363.js”,”/assets/cBPvJq.9efe1cf8.js”,”/assets/iZ1Bsx.a0daaeaf.js”,”/assets/sb81vR.0303b99f.js”,”/assets/U3jxzU.c61c28dd.js”,”/assets/4kVXmt.1bd63077.js”,”/assets/_pymO0.a02e98e8.js”,”/assets/DtZPgN.bc1f2398.js”,”/assets/qxSl3I.20e49c94.css”,”/assets/Hgrhyo.7cf65caf.css”,”/assets/bsx_H5.adf00b00.css”,”/assets/KwOV1Z.11edf8da.css”,”/assets/AoLEtg.7fd65cbd.css”,”/assets/qxSl3I.20e49c94.js”,”/assets/pT-O8u.874121fa.js”,”/assets/iLImXn.762aecf5.js”,”/assets/Hgrhyo.7cf65caf.js”,”/assets/CSOnVf.8e4ba464.js”,”/assets/bsx_H5.adf00b00.js”,”/assets/KwOV1Z.11edf8da.js”,”/assets/AoLEtg.7fd65cbd.js”,”/assets/08L0XB/L9pCXd.70c67dcc.css”,”/assets/08L0XB/r2vH2r.70c67dcc.css”,”/assets/dX3eZQ.92ec1199.css”,”/assets/mlRREX.9a17a986.css”,”/assets/uWZ6Id.ce7a8aaf.css”,”/assets/10CW2t.cb63784e.css”,”/assets/QRwZD2.d4145d10.css”,”/assets/fAPg3f.a61ab937.css”,”/assets/Kv5xL1.87896c69.css”,”/assets/meOI_T.027e18be.css”,”/assets/Z7U8sN.701e2cdd.css”,”/assets/G9idyf.344dc8c7.css”,”/assets/XS7t-Q.57ac3f3d.css”,”/assets/S07X1M/XDxpBd.02d838a5.css”,”/assets/-02Lut.6edfcc39.css”,”/assets/MNKFIS.871410fe.css”,”/assets/zPgUM0.795106fa.css”,”/assets/V_I8wA.a7bc33a2.css”,”/assets/dAea-m.f53773d7.css”,”/assets/tTLfF8.9a06016d.css”,”/assets/oiya90.daae0ef1.css”,”/assets/Xi-2HZ.f36180ec.css”,”/assets/qfSfGN.ece2c2ba.css”,”/assets/r_rn4M.6bb4aa89.css”,”/assets/mqvxhC.d002cbdd.css”,”/assets/08L0XB/L9pCXd.70c67dcc.js”,”/assets/08L0XB/r2vH2r.70c67dcc.js”,”/assets/08L0XB/jdYFmQ.70c67dcc.js”,”/assets/dX3eZQ.92ec1199.js”,”/assets/mlRREX.9a17a986.js”,”/assets/uWZ6Id.ce7a8aaf.js”,”/assets/10CW2t.cb63784e.js”,”/assets/QRwZD2.d4145d10.js”,”/assets/2NwMnm.75b08092.js”,”/assets/fAPg3f.a61ab937.js”,”/assets/0uWw9s.877152de.js”,”/assets/v_y45t.2b60551e.js”,”/assets/xsqNye.55518f19.js”,”/assets/-2hM2s.5bdfa90c.js”,”/assets/S07X1M.02d838a5.js”,”/assets/thFMrK.9ed3ae65.js”,”/assets/Kv5xL1.87896c69.js”,”/assets/mHPUmd.3c06b9c0.js”,”/assets/meOI_T.027e18be.js”,”/assets/4Z07E2.dae0cf31.js”,”/assets/OkJwbt.60bfefc5.js”,”/assets/Z7U8sN.701e2cdd.js”,”/assets/G9idyf.344dc8c7.js”,”/assets/XS7t-Q.57ac3f3d.js”,”/assets/S07X1M/XDxpBd.02d838a5.js”,”/assets/-02Lut.6edfcc39.js”,”/assets/qKFflQ.70332976.js”,”/assets/1yEXVQ.5619b6ad.js”,”/assets/ABlMo4.9debea71.js”,”/assets/MNKFIS.871410fe.js”,”/assets/SjBt6i.713fb334.js”,”/assets/a4q8MG.8f1aa4dd.js”,”/assets/wLDeDm.8e4ba464.js”,”/assets/zPgUM0.795106fa.js”,”/assets/Erjc5t.8019a098.js”,”/assets/V_I8wA.a7bc33a2.js”,”/assets/dAea-m.f53773d7.js”,”/assets/tTLfF8.9a06016d.js”,”/assets/nPqO2d.48f9d05b.js”,”/assets/oiya90.daae0ef1.js”,”/assets/h7E4Ym.766dc0fb.js”,”/assets/O-HcBE.4d9b4412.js”,”/assets/Xi-2HZ.f36180ec.js”,”/assets/qfSfGN.ece2c2ba.js”,”/assets/r_rn4M.6bb4aa89.js”,”/assets/mqvxhC.d002cbdd.js”,”/assets/4CrHtN.b2b25c3a.css”,”/assets/6nM-E7.4a482b4f.css”,”/assets/4CrHtN.b2b25c3a.js”,”/assets/16tLUw.88f06e2a.js”,”/assets/6nM-E7.4a482b4f.js”,”/assets/08L0XB.70c67dcc.js”,”/assets/zlqOrw.3640853c.css”,”/assets/HZtvHO.ee05bf61.css”,”/assets/vF730k.d6a28b26.css”,”/assets/PiTJFd.33e9cedf.css”,”/assets/LFeTN6.2b8041e9.css”,”/assets/zlqOrw.3640853c.js”,”/assets/HZtvHO.ee05bf61.js”,”/assets/vF730k.d6a28b26.js”,”/assets/lmr1u9.d751dfda.js”,”/assets/U-DhDC.542e72bf.js”,”/assets/eFKnUp.5dd25e3f.js”,”/assets/PiTJFd.33e9cedf.js”,”/assets/fTyhRT.f7e1d22d.js”,”/assets/JFHNGL.ee9f0f15.js”,”/assets/9I0t-6.9feb4fc2.js”,”/assets/c_rvp5.12aabe55.js”,”/assets/LFeTN6.2b8041e9.js”,”/assets/RXx5aI.5bad2c50.js”,”/assets/6KWcSB.a1d62d1f.js”,”/assets/WkP2XE.fe7d1b7f.js”,”/assets/Md_K7J.050e0912.css”,”/assets/tV1cF7.4c2cc915.css”,”/assets/liWOeo.c81c89a6.css”,”/assets/87pH8E.cd6cb536.js”,”/assets/Md_K7J.050e0912.js”,”/assets/tV1cF7.4c2cc915.js”,”/assets/liWOeo.c81c89a6.js”,”/assets/3mlAaP.55efe972.js”,”/assets/t7RFOq.2be945ae.js”,”/assets/-xj2Ol.b3e1a1ab.css”,”/assets/n69w9j.e958e28a.js”,”/assets/-xj2Ol.b3e1a1ab.js”,”/assets/FgJHmE.b0c12179.js”,”/assets/mxARhC.8b64e015.js”,”/assets/BqoTCX.622f0d63.css”,”/assets/R7DQr_.ee836ec3.css”,”/assets/BqoTCX.622f0d63.js”,”/assets/wU942v.7259e7a7.js”,”/assets/w2XwHO.cad52837.js”,”/assets/IuX4Ar.62bdb40d.js”,”/assets/HDgDKt.0a8c47b7.js”,”/assets/MWFqPp.cd3c404e.js”,”/assets/R7DQr_.ee836ec3.js”,”/assets/Oc3sTL.039f3d68.js”,”/assets/osGflv.6e2ee642.js”,”/assets/fiorRT.4d726a53.js”,”/assets/mwa76u.e0b37a3c.css”,”/assets/6m_xYI.5eaf0dc6.css”,”/assets/mwa76u.e0b37a3c.js”,”/assets/NGIiZD.2631faed.js”,”/assets/6m_xYI.5eaf0dc6.js”,”/assets/GVTdZB.6dcfda87.js”],”bundles”:[“XjkW5l”,”peh_3a”,”MG7IEl”,”cDcdfi”,”faye7n”,”h74DsO”,”RiHMo-“,”lMO0v3″,”nIW_Rw”,”-i3PJS”,”6hYgtn”,”OnmvvE”,”535agn”,”4LU1Ax”,”B7vHz6″,”N4pTU2″,”aunxON”,”Jk5sjx”,”pLbCP4″,”UhC_bI”,”fsml46″,”2R4xv2″,”xZoNdB”,”rf6OMe”,”UWCmG6″,”rKB8Wf”,”XtxvfD”,”vmXh3M”,”E8NZou”,”MGkW-Q”,”17wlKY”,”YwNsO_”,”vq6MSq”,”u6QS-O”,”jb_4W2″,”0DsHEV”,”Q7TAd7″,”jaCyxS”,”5-GvUO”,”F8raOV”,”oo669z”,”Ov85iR”,”VANuRt”,”mv7yXI”,”5X2em-“,”DbN8HP”,”b3xEaf”,”gsKhh7″,”vWxBAe”,”asW43G”,”c9QfOM”,”l6BSGt”,”dROhDJ”,”BLrxBS”,”6NeHQy”,”b57PJQ”,”n3D4ip”,”PCLJ0D”,”30t50h”,”I81Q5L”,”jmIMrC”,”QZqymc”,”m5ZZFI”,”jSLlaY”,”6RAaot”,”OMqGt0″,”5-GvUO/_q6t87″,”gGW5sO”,”_qQcW3″,”eDFcUX”,”O8LbtK”,”V08PS7″,”Dg5_-9″,”f9x1OV”,”T7FcVR”,”38xMQJ”,”w4JHTr”,”NJheb1″,”PCLJ0D/-EYc4Q”,”yfS4GB”,”hA1RHn”,”wId9j-“,”eFikmI”,”MHKLZN”,”_cZwhS”,”iuYvTO”,”DjNvou”,”gt5mGS”,”rSqx0N”,”_Z-1K3″,”vd4nty”,”z2XL6d”,”xegF5W”,”_g8cls”,”8xs-IB”,”W3_c4H”,”nZ7AfP”,”hxnqL3″,”xlsORH”,”sERCEg”,”tc4D5F”,”cBPvJq”,”iZ1Bsx”,”sb81vR”,”U3jxzU”,”4kVXmt”,”_pymO0″,”DtZPgN”,”qxSl3I”,”pT-O8u”,”iLImXn”,”Hgrhyo”,”CSOnVf”,”bsx_H5″,”KwOV1Z”,”AoLEtg”,”08L0XB/L9pCXd”,”08L0XB/r2vH2r”,”08L0XB/jdYFmQ”,”dX3eZQ”,”mlRREX”,”uWZ6Id”,”10CW2t”,”QRwZD2″,”2NwMnm”,”fAPg3f”,”0uWw9s”,”v_y45t”,”xsqNye”,”-2hM2s”,”S07X1M”,”thFMrK”,”Kv5xL1″,”mHPUmd”,”meOI_T”,”4Z07E2″,”OkJwbt”,”Z7U8sN”,”G9idyf”,”XS7t-Q”,”S07X1M/XDxpBd”,”-02Lut”,”qKFflQ”,”1yEXVQ”,”ABlMo4″,”MNKFIS”,”SjBt6i”,”a4q8MG”,”wLDeDm”,”zPgUM0″,”Erjc5t”,”V_I8wA”,”dAea-m”,”tTLfF8″,”nPqO2d”,”oiya90″,”h7E4Ym”,”O-HcBE”,”Xi-2HZ”,”qfSfGN”,”r_rn4M”,”mqvxhC”,”4CrHtN”,”16tLUw”,”6nM-E7″,”08L0XB”,”zlqOrw”,”HZtvHO”,”vF730k”,”lmr1u9″,”U-DhDC”,”eFKnUp”,”PiTJFd”,”fTyhRT”,”JFHNGL”,”9I0t-6″,”c_rvp5″,”LFeTN6″,”RXx5aI”,”6KWcSB”,”WkP2XE”,”87pH8E”,”Md_K7J”,”tV1cF7″,”liWOeo”,”3mlAaP”,”t7RFOq”,”n69w9j”,”-xj2Ol”,”FgJHmE”,”mxARhC”,”BqoTCX”,”wU942v”,”w2XwHO”,”IuX4Ar”,”HDgDKt”,”MWFqPp”,”R7DQr_”,”Oc3sTL”,”osGflv”,”fiorRT”,”mwa76u”,”NGIiZD”,”6m_xYI”,”GVTdZB”],”lazyLoadedModules”:[“08L0XB/L9pCXd”,”nZ7AfP”,”qxSl3I”,”4CrHtN”],”renders”:[{“id”:”component_10″,”props”:{},”package”:”t7RFOq”},{“id”:”component_14″,”props”:{},”package”:”BqoTCX”}],”hydrations”:[{“id”:”component_9″,”props”:{},”package”:”08L0XB”},{“id”:”@ta/trips.save-to-trip:post:73296817_component_1″,”props”:{“object”:{“__typename”:”ForumPost”,”id”:73296817},”widgetStyle”:”forum_post”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:post:73362005_component_2″,”props”:{“object”:{“__typename”:”ForumPost”,”id”:73362005},”widgetStyle”:”forum_post”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:post:73363898_component_3″,”props”:{“object”:{“__typename”:”ForumPost”,”id”:73363898},”widgetStyle”:”forum_post”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”component_4″,”props”:{},”package”:”87pH8E”},{“id”:”@ta/trips.save-to-trip:attractionproduct:38006_component_5″,”props”:{“object”:{“__typename”:”AttractionProductInformation”,”attractionProductId”:38006},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:attractionproduct:150858_component_6″,”props”:{“object”:{“__typename”:”AttractionProductInformation”,”attractionProductId”:150858},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:attractionproduct:39126_component_7″,”props”:{“object”:{“__typename”:”AttractionProductInformation”,”attractionProductId”:39126},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:attractionproduct:83996_component_8″,”props”:{“object”:{“__typename”:”AttractionProductInformation”,”attractionProductId”:83996},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”component_11″,”props”:{},”package”:”n69w9j”},{“id”:”component_13″,”props”:{},”package”:”mxARhC”},{“id”:”component_15″,”props”:{“useResponsiveContainer”:”true”},”package”:”mwa76u”},{“id”:”component_12″,”props”:{},”package”:”GVTdZB”}],”ssrPreloadedModules”:[“6FdDYx”,”bsx_H5″,”nZ7AfP”,”qxSl3I”,”S07X1M/v-c-G4″,”4CrHtN/6GI-1U”,”xJD91H”,”-i3PJS”,”neHaXV”,”lMO0v3/GzJMLX”,”PCLJ0D/6Vq8GY”,”pBQaod”,”m7h4d5″,”08L0XB/L9pCXd”,”RWfDzK”,”4CrHtN/A1SA6X”,”a3FWKi”,”454gno”,”5-GvUO/gmVWZD”,”kNh38S”,”PCLJ0D/YtE_eG”,”thFMrK/RQFZYD”,”08L0XB/hCC7uv”,”4CrHtN”]}};(this.$WP=this.$WP||[]).push([‘@ta/features’,function(e){return [function(){e(‘default’,__WEB_CONTEXT__.pageManifest.features);},[]]},[]]);]]> maxHeight) { maxHeight = height; } }); if (maxHeight > 0) { placementEl.find(‘.shelf_container.forum_mention’).height(maxHeight + 24); placementEl.find(‘.forum_mention .shelf_item_container’).height(maxHeight); placementEl.find(‘.forum_mention .scrollable_container’).height(maxHeight); } } // if there are more than 3 items on the shelf, we need to set up handlers for the left/right scrolls. function setUpScroller() { var scroller = placementEl.find(‘.scrollable_container’); var leftArrow = placementEl.find(‘.arrow.left’); var rightArrow = placementEl.find(‘.arrow.right’); var itemOffset = scroller.find(‘.ui_column’).outerWidth(); // number of items on the shelf var itemCount = parseInt(scroller.data(‘numitems’)); // right most offset (left most is 0) var scrollLimit = 3 – itemCount; var offset = 0; function showArrows() { var leftCss = ”; var rightCss = ”; // check left arrow if (offset scrollLimit) { rightCss = ‘block’; } leftArrow.css(‘display’, leftCss); rightArrow.css(‘display’, rightCss); } function scroll(offset) { scroller.animate({ left: offset * itemOffset }, 500, function() {}); showArrows(); } function scrollLeft() { if (offset < 0) { // only scroll 3 items at a time if (offset scrollLimit) { offset -= 3; if (offset < scrollLimit) { offset = scrollLimit; } scroll(offset); } } showArrows(); leftArrow.on('click', scrollLeft); rightArrow.on('click', scrollRight); } prwidgets.initWidgets(placementEl.get(0)); shelfEventHandlers.initShelfListeners(); imageLoader.init(200); setUpContainer(); setUpScroller(); });}); define('cpm/ResponsiveBannerResizeHandler', ['babel/babel-helpers', 'utils/throttle', 'utils/responsive', 'common/trackingStreams'], function (babelHelpers, throttle, utilsResponsive, trackingStreams) { 'use strict'; var _initialized = false; function _init() { _handleResize(); if (!_initialized) { window.addEventListener('resize', throttle(_handleResize, 300)); _initialized = true; } } function _hideBanner(banner) { banner && banner.classList && banner.classList.add('hidden'); banner && banner.classList && banner.classList.add('inactive'); } function _showBanner(banner) { banner && banner.classList && banner.classList.remove('hidden'); banner && banner.classList && banner.classList.remove('inactive'); } function _handleResize() { var placements = document.querySelectorAll('.ppr_priv_footer_banner_ad_billboard'); if (placements.length) { try { for (var i = 0; i < placements.length; i++) { var placement = placements[i]; var banners = placement.querySelectorAll('.gptAd'); for (var j = 0; j < banners.length; j++) { var banner = banners[j]; var breakpoint = banner.getAttribute("data-breakpoint"); if (!breakpoint) { continue; } var matchFxn = utilsResponsive[breakpoint]; if (!matchFxn) { continue; } var matches = matchFxn(); if (matches) { _showBanner(banner); } else { _hideBanner(banner); } } } } catch (e) { trackingStreams.error(e, 'Error handling responsive header/footer banners'); } } } var exports = {}; exports.init = _init; return exports; }); define('utils/ResponsiveEvents', ['mixins/Events', 'utils/responsive', 'utils/throttle', 'vanillajs'], function (Events, Responsive, Throttle) { 'use strict'; var lastWidth = document.documentElement.clientWidth; var lastSizes = Responsive.currentBreakpoints(); var events = ['breakpoint']; Responsive.breakpoints.forEach(function(size) { events.push('over-' + size, 'under-' + size); }); var delegate = Events.create(events); delegate.onOver = function(size, fn) { delegate.on('over-' + size, fn); }; delegate.onUnder = function(size, fn) { delegate.on('under-' + size, fn); }; delegate.offOver = function(size, fn) { delegate.off('over-' + size, fn); }; delegate.offUnder = function(size, fn) { delegate.off('under-' + size, fn); }; function getChangedSizes(a, b, reverse) { var aDiff = a.filter(function(x) { return b.indexOf(x) < 0; }); var bDiff = b.filter(function(x) { return a.indexOf(x) lastWidth; var sizes = Responsive.currentBreakpoints(); var diff = getChangedSizes(lastSizes, sizes, expanded); diff.forEach(function(size) { var prefix = expanded ? 'over-' : 'under-'; delegate.emit(prefix + size); }); if (diff.length) { delegate.emit('breakpoint', sizes[0]); } lastSizes = sizes; lastWidth = width; } window.addEventListener('resize', Throttle(checkBreakpoints, 100)); return delegate; });require(['ta/p13n/placements'], function(placements) { var define = placements.define.bind(placements,'footer_banner_ad_billboard','handlers',['handlers']); define(['babel/babel-helpers', 'placement', 'cpm/ResponsiveBannerResizeHandler', 'utils/ResponsiveEvents', 'ta/Core/TA.Event'], function (babelHelpers, placement, bannerResizeHandler, responsiveEvents, taEvent) { var resizeTimeout = void 0; function _resizeHandler() { // cancel pending clearTimeout(resizeTimeout); resizeTimeout = setTimeout(function () { taEvent.fireEvent('responsiveAdSizeChanged'); }, 1000); } // Configure ads for pageload injection and monitor window resizes bannerResizeHandler.init(); responsiveEvents.offOver('mobile', function () { return _resizeHandler; }); responsiveEvents.onOver('mobile', function () { return _resizeHandler; }); responsiveEvents.offUnder('mobile', function () { return _resizeHandler; }); responsiveEvents.onUnder('mobile', function () { return _resizeHandler; }); responsiveEvents.offOver('desktop', function () { return _resizeHandler; }); responsiveEvents.onOver('desktop', function () { return _resizeHandler; }); responsiveEvents.offUnder('desktop', function () { return _resizeHandler; }); responsiveEvents.onUnder('desktop', function () { return _resizeHandler; }); });}); define('utils/resize-invalidated-cache', ['babel/babel-helpers'], function (babelHelpers) { 'use strict'; var CACHE_PROP = '__resize-cache'; var _lastResize = Date.now(); window.addEventListener('resize', function () { return _lastResize = Date.now(); }); return function (fn) { var cacheContext = fn[CACHE_PROP]; if (cacheContext == null || cacheContext.timestamp < _lastResize) { cacheContext = fn[CACHE_PROP] = { timestamp: _lastResize, value: fn() }; } return cacheContext.value; }; }); require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'common_ad_resp','handlers',['handlers']); define(["widget","ta/Core/TA.Event", "utils/responsive", "utils/ResponsiveEvents", "utils/resize-invalidated-cache"], function(widget, taEvent, responsiveUtil, responsiveEvents, getCachedValue) { var showingLargeAds; function _resizeHandler(widgetElem, showLargeAds) { if (showingLargeAds !== showLargeAds) { var largeAdsContainer = widgetElem.find('.largeScreen'); var largeAds = largeAdsContainer.find('.gptAd'); largeAds.toggleClass('inactive', !showLargeAds); largeAdsContainer.toggleClass('hidden', !showLargeAds); // don't need to manually refresh ads on initial call aka page-load if (showingLargeAds !== undefined) { taEvent.fireEvent('adSizeChanged'); } showingLargeAds = showLargeAds; } } function _init($) { var widgetElem = $(widget.element); var isMobile = getCachedValue(responsiveUtil.mobile); responsiveEvents.onOver('mobile', function(){_resizeHandler(widgetElem, true);}); responsiveEvents.onUnder('mobile', function(){_resizeHandler(widgetElem, false);}); _resizeHandler(widgetElem, !isMobile) } require(["lib/jquery-amd"],_init); }); });require(['ta/p13n/placements'], function(placements) { var define = placements.define.bind(placements,'attraction_coverpage','handlers',['handlers']); define(["placement", "lib/jquery-amd", "ta/prwidgets", "shelves/shelfEventHandlers", "mobile/lite/image-loader"], function(placement, $, prwidgets, shelfEventHandlers, imageLoader) { /** * Makes an ajax request with a payload and populates the placement view element with the response. * * @param event current event * @param args Shelf request data. Keys in the map should match the ones defined in com.TripResearch.shelves.ShelfAjaxRequestModel */ function _loadAttractionCoverpage(event, args) { if (!args) { return; } var required = { skipLocation: true }; var data = _buildFormattedDataForAjaxRequest($.extend(required, args)); var placementEl = $("#" + placement.id); function _onSuccess(responseText) { placementEl.html(responseText); prwidgets.initWidgets(placementEl.get(0)); imageLoader.init(200); $(document).trigger("datesShelvesSuccess"); } function _onFailure() { $(document).trigger("datesShelvesFailure"); } function _buildFormattedDataForAjaxRequest(args) { var requestData = {}; for (var key in args) { if (!args.hasOwnProperty(key)) { // not a direct property of p continue; } var param = args[key]; requestData[key] = (param && param.constructor === Array) ? param.join() : param; } return requestData; } placement.requestAJAXPlacement( _onSuccess, _onFailure, data); } function _trackScrollIntoView() { var pathname = window.location.pathname; // pathname returns "/" followed by servlet name and params var dashIndex = pathname.indexOf("-"); // delimiter between servlet and params var servletTracking = (pathname.length 0) ? pathname.substring(1, dashIndex) : pathname.substring(1); require(['trjs!ta/util/Element'], function() { ta.util.element.trackWhenScrolledIntoView('#' + placement.id, ['shelves_in_view', 'ExpABTestEligible:285', servletTracking]); }); } // this event can be triggered on the page to load this placement via ajax $(document).on('loadAttractionCoverpage', _loadAttractionCoverpage); shelfEventHandlers.initShelfListeners(); _trackScrollIntoView(); return { }; });});require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'shelves_attraction_product_shelf_item_widget','handlers',['handlers']); /*jshint unused:false */ define(["widget", "ta/Core/TA.Event", "ta", "ta/util/Element", "lib/jquery-amd"], function(widget, taEvent, ta, taElement, $) { ta.queueForLoad(trackTitleImpression); function shelfItemClick(event, element) { taEvent.fireEvent('shelf_item_click_event', event, element); event.stopPropagation(); } function trackShelfItemClick(event, element) { taEvent.fireEvent('track_shelf_item_click_event', event, element); event.stopPropagation(); } function trackTitleImpression() { var el = $(widget.element).find('.product_name'); taElement.trackWhenScrolledIntoView(el, ['attraction_product_title', 'impression', el.attr('data-tpatt'), el.attr('data-tpid')]); } function trackKidPricing(productCode, displayEnabled, hasKidPricing) { // TTD-11098: tracking for kids pricing var kidPricingClick = displayEnabled ? 'kidpricing_attraction_product_click' : 'kidpricing_attraction_product_click_control'; ta.trackEventOnPage('Attractions', kidPricingClick, productCode, hasKidPricing ? 1 : 0, false); } function trackCancelLabel(productCode, displayEnabled, has24HourCancellation) { // TTD-11243: tracking for free cancellation label var cancelLabelClick = displayEnabled ? 'freecancel_attraction_product_click' : 'freecancel_attraction_product_click_control'; ta.trackEventOnPage('AttractionProducts', cancelLabelClick, productCode, has24HourCancellation ? 1 : 0, false); } function hoverTooltip(event, elmt) { require(['trjs!overlays/uiOverlay'], function(uiOverlay) { uiOverlay(event, elmt); }); } function trackBookNowCtaClick() { ta.trackEventOnPage('CoverPage', 'Shelf_Product_CTA', '', false); } return { shelfItemClick: shelfItemClick, trackKidPricing: trackKidPricing, trackCancelLabel: trackCancelLabel, trackShelfItemClick: trackShelfItemClick, hoverTooltip: hoverTooltip, trackBookNowCtaClick: trackBookNowCtaClick }; });});require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'shelves_shelf_widget','handlers',['handlers']); /*jshint unused:false */ define(["widget", "ta/Core/TA.Event", "lib/jquery-amd"], function(widget, taEvent, $) { var pathname = window.location.pathname; //pathname returns "/" for home and "hotels" or "restaurants" etc. for other servlets var brandTrackArg = (pathname === '/') ? 'servletname_Home' : 'servletname_' + pathname.substring(1); function shelfSeeAllClick(event, element, sameTab, noTracking) { taEvent.fireEvent('shelf_see_all_click_event', event, element, sameTab, noTracking); event.stopPropagation(); } function trackShelfSeeAllClick(event, element) { taEvent.fireEvent('track_shelf_see_all_click_event', event, element); event.stopPropagation(); } function leftClick(){ var shelfWrapper = $('.unscoped_brand_scroll'); var leftArrow = $('.brand_scroll_arrow.left'); var rightArrow = $('.brand_scroll_arrow.right'); leftArrow.hide(); rightArrow.show(); shelfWrapper.removeClass('scrolled'); trackScrollClick(); } function rightClick(){ var shelfWrapper = $('.unscoped_brand_scroll'); var leftArrow = $('.brand_scroll_arrow.left'); var rightArrow = $('.brand_scroll_arrow.right'); leftArrow.show(); rightArrow.hide(); shelfWrapper.addClass('scrolled'); trackScrollClick(); } function trackFeaturedClick(){ require(["trjs!ta/Core/TA.Record"], function(taRecord) { taRecord.trackEventOnPage('pcb_campaign_trendinglander', 'click', brandTrackArg); }); } function trackScrollClick(){ require(["trjs!ta/Core/TA.Record"], function(taRecord) { taRecord.trackEventOnPage('pcb_campaign_trendingscroll', 'click', brandTrackArg); }); } return { shelfSeeAllClick: shelfSeeAllClick, trackShelfSeeAllClick: trackShelfSeeAllClick, leftClick: leftClick, rightClick: rightClick, trackFeaturedClick: trackFeaturedClick }; }); });define('utils/PersistentFooterHelper', ['babel/babel-helpers'], function (babelHelpers) { var VISIBILITY_CLASS = 'fixed'; var PersistentFooterHelper = function () { function PersistentFooterHelper(footer, pageContainer) { babelHelpers.classCallCheck(this, PersistentFooterHelper); this.placeholder = null; this.setFooter(footer); if (!pageContainer) { throw "pageContainer is not a DOM element"; } this.pageContainer = pageContainer; } babelHelpers.createClass(PersistentFooterHelper, [{ key: 'isVisible', value: function isVisible() { return this.footer && this.footer.className.indexOf(VISIBILITY_CLASS) > -1; } }, { key: ‘show’, value: function show() { this.footer.classList.add(VISIBILITY_CLASS); if (!this.placeholder) { this.createPlaceholder(); } this.placeholder.classList.remove(‘hidden’); this.placeholder.style.height = this.getHeight() + ‘px’; } }, { key: ‘hide’, value: function hide() { this.footer.classList.remove(VISIBILITY_CLASS); if (this.placeholder) { this.placeholder.classList.add(‘hidden’); } } }, { key: ‘getHeight’, value: function getHeight() { if (!this.isVisible()) { throw “Cannot get height in hidden state.”; } return this.footer.offsetHeight; } }, { key: ‘createPlaceholder’, value: function createPlaceholder() { if (!this.footer) { return; } this.placeholder = document.createElement(‘div’); this.placeholder.className += ” persistentFooterPlaceholder”; this.pageContainer.appendChild(this.placeholder); } }, { key: ‘setFooter’, value: function setFooter(footer) { if (!footer || footer.className.indexOf(‘ui_persistent_footer’) === -1) { throw “PersistentFooterHelper requires an element with class .ui_persistent_footer”; } this.footer = footer; } }]); return PersistentFooterHelper; }(); return PersistentFooterHelper; }); require([‘ta/p13n/placements’], function(placements) { var define = placements.define.bind(placements,’showtopic_persistent_footer’,’handlers’,[‘handlers’]); define([‘placement’, ‘ta’, ‘utils/PersistentFooterHelper’, ‘ta/Core/TA.LocalStorage’], function(placement, ta, PersistentFooterHelper, taLocalStore) { ta.queueForLoad(function () { var SESSION_KEY_NAME = ‘st_dismissed_footer’; var placementElm, wrapper, pfHelper, closeBtn; placementElm = document.getElementById(placement.id); wrapper = placementElm.querySelector(‘.ui_persistent_footer’); if (wrapper != null) { if (!pfHelper) { pfHelper = new PersistentFooterHelper(wrapper, document.body); } if (taLocalStore.enabled) { var hasDismissedFooter = taLocalStore.getSessionKey(SESSION_KEY_NAME); if (!hasDismissedFooter) { if (placement.params.show_placement) { pfHelper.show(); } } } ctaBtn = wrapper.querySelector(‘.ctaBtn’); ctaBtn.addEventListener(“click”, function () { ta.trackEventOnPage(“stlpdl_rebirth”, “st_persistent_footer”, ‘click’, placement.params.version, true); }); closeBtn = wrapper.querySelector(‘.closeBtn’); closeBtn.addEventListener(“click”, function (event) { taLocalStore.setSessionKey(SESSION_KEY_NAME, true); pfHelper.hide(); ta.trackEventOnPage(“stlpdl_rebirth”, “st_persistent_footer”, ‘close’, placement.params.version, true); }); ta.trackEventOnPage(“stlpdl_rebirth”, “st_persistent_footer”, ‘impression’, placement.params.version, true); } }); return {}; });});require([‘ta/p13n/placements’], function(placements) { var define = placements.define.bind(placements,’showtopic_attraction_interrupter’,’handlers’,[‘handlers’]); /* * Private JS for showtopic_attraction_interrupter */ define([“placement”], function (placement) { // Mimics ta.forums.hideHotelInterrupters, except for our attraction interrupter. function hideAttractionInterrupter(topicId) { var interrupter = document.getElementById(placement.id); if (topicId && interrupter) { interrupter.parentNode.removeChild(interrupter); // The cookie logic to hide the interrupters is still nominally centered on hotels, but it does function // correctly for our new ads; since this is just a test, we’re leaving it this way. new Request({url: “/HotelInterruptersAjax?hotelInterrupters_optout=” + topicId}).send(); } } return { “hideAttractionInterrupter”: hideAttractionInterrupter } });}); define(‘ta/util/CommonMessagingUtil’, [ “lib/jquery-amd”, ‘ta/Core/TA.LocalStorage’, “ta/support/Qualtrics”, “ta/util/SessionStorage”, “common/Radio” ], function( $, localStorage, qualtrics, taSessionStorage, Radio ) { ‘use strict’; var storageViewString = “_view_count”; var storageDisabledString = “_is_disabled”; var storageDismissedString = “_times_dismissed”; var storageDisabledForTodayString = “_disabled_for_day”; var adhesionRadio = Radio(‘cpm_mw_adhesion’); function getCurrentPageViews(thumbPrint) { if (localStorage.enabled) { var storedViews = localStorage.get(thumbPrint + storageViewString); return storedViews ? parseInt(storedViews) : 0; } return null; } function incrementPageViews(thumbPrint) { if (localStorage.enabled && thumbPrint) { var pageViewKey = thumbPrint + storageViewString; localStorage.set(pageViewKey, getCurrentPageViews(thumbPrint) + 1); } } function getNumberOfTimesDismissed(thumbPrint) { if (localStorage.enabled) { var timesDismissed = localStorage.get(thumbPrint + storageDismissedString); return timesDismissed ? parseInt(timesDismissed) : 0; } return 0; } function incrementNumberOfTimesDismissed(thumbPrint) { if (localStorage.enabled && thumbPrint) { var timesDismissedKey = thumbPrint + storageDismissedString; localStorage.set(timesDismissedKey, getNumberOfTimesDismissed(thumbPrint) + 1); } } function isPlacementDisabled(thumbPrint) { if (localStorage.enabled) { var keyExists = localStorage.get(thumbPrint + storageDisabledString); return !!keyExists; } return false; } function disablePlacement(thumbPrint) { if (localStorage.enabled && thumbPrint) { localStorage.set(thumbPrint + storageDisabledString, “true”); } } function setPlacementDisabledForToday(thumbPrint) { var today = new Date().getDate(); if(localStorage.enabled && thumbPrint) { var closedTodayKey = thumbPrint + storageDisabledForTodayString; localStorage.set(closedTodayKey, today.toString()); } } function isPlacementDisabledForToday(thumbPrint) { var today = new Date().getDate(); if(localStorage.enabled && thumbPrint) { var closedTodayKey = thumbPrint + storageDisabledForTodayString; var keyFound = localStorage.get(closedTodayKey); return keyFound ? keyFound === today.toString() : false; } return false; } function setPlacementGroupKey(groupKey) { var today = new Date().getDate(); if (localStorage.enabled) { localStorage.set(groupKey, today.toString()); } } function checkPlacementGroupKey(groupKey) { var today = new Date().getDate(); if (localStorage.enabled) { var keyFound = localStorage.get(groupKey); return keyFound ? keyFound === today.toString() : false; } } function _displayPlacementIfNoSurveyNorAdIsPresent(_shouldCheckSurvey, _suppressPlacement, _displayPlacement) { if (_shouldCheckSurvey && typeof(_shouldCheckSurvey) === “function” && _shouldCheckSurvey()) { if (qualtrics.seenThisPageView() || qualtrics.canDisplaySmart() || qualtrics.canDisplay()) { return; } } if (_suppressPlacement && typeof(_suppressPlacement) === “function” && _suppressPlacement()) { return; } if (_displayPlacement && typeof(_displayPlacement) === “function”) { if (document.getElementById(“FIXED_AD”)) { if (taSessionStorage.canUseSessionStore() && taSessionStorage.getObject(‘ads.fixed.close’)) { _displayPlacement(); } else { adhesionRadio.once(‘ad_closed’, function() { _displayPlacement(); }); } } else { _displayPlacement(); } } } function parseServletName(servletName) { return servletName.toLowerCase().replace(“mobile”, “”); } return { getCurrentPageViews: getCurrentPageViews, incrementPageViews: incrementPageViews, getNumberOfTimesDismissed: getNumberOfTimesDismissed, incrementNumberOfTimesDismissed: incrementNumberOfTimesDismissed, isPlacementDisabled: isPlacementDisabled, disablePlacement: disablePlacement, setPlacementDisabledForToday : setPlacementDisabledForToday, isPlacementDisabledForToday: isPlacementDisabledForToday, setPlacementGroupKey: setPlacementGroupKey, checkPlacementGroupKey: checkPlacementGroupKey, parseServletName: parseServletName, displayPlacementIfNoSurveyNorAdIsPresent:_displayPlacementIfNoSurveyNorAdIsPresent } });require([‘ta/p13n/placements’], function(placements) { var define = placements.define.bind(placements,’global_nav_action_inbox’,’handlers’,[‘handlers’]); /** * Private handlers of global_nav_action_inbox */ define([ ‘placement’, ‘vanillajs’, ‘lib/jquery-amd’, ‘common/Radio’, ‘ta/Core/TA.Record’, ‘ta/util/CommonMessagingUtil’ ], function( placement, vanilla, $, Radio, taRecord, commonMessagingUtil ) { var overlay; var INBOX_TRACKING_PID = 40186; // TRVX-5924 var INBOX_JEWEL_TEST_PID = 40405; var inboxJewelTestThumbprint = ‘Membership_Inbox_Jewel_Test’; var maxViewsForJewelTest = 3; var test_click = false; var login_click = false; Radio(‘global-nav-inbox’).on(‘open’, function(triggerEl, bottomLeftOffset) { _showDropdownForComponentTrigger(triggerEl, bottomLeftOffset); }); function _showDropdownForComponentTrigger(context) { context.receivedCallback && context.receivedCallback(); if ($(‘.inbox-flyout-container’).length && overlay) { overlay.destroy(); } else { var triggerEl = context.el; var bottomLeftOffset = context.bottomLeftOffset; _showDropdownAtTrigger(undefined, triggerEl, bottomLeftOffset); } } function _showDropdownForPlacementTrigger(inboxJewelTestEl) { _showDropdownAtTrigger(inboxJewelTestEl, $(‘.masthead-inbox-icon’)[0]); } function _showDropdownAtTrigger(inboxJewelTestEl, target, bottomLeftOffset) { var container = $(‘#’ + placement.id); var reqs = [‘trjs!overlays/Overlay’, ‘trjs!overlays/styles/flyout’, ‘trjs!overlays/options/closeOnDocClick’, ‘trjs!overlays/position’, ‘trjs!overlays/options/destroyOnHide’, ‘trjs!overlays/options/autoReposition’, ‘ta/registration/RegOverlay’, ‘trjs!unifiedinbox/inbox-lander’, ‘trcss!unified_inbox_lander’ ]; require(reqs, function(Overlay, Flyout, CloseOnDocClick, Position, DestroyOnHide, AutoReposition, RegOverlay, InboxLander, styleSheetOK) { // Create a new overlay var contents = $(‘.inbox-nav-contents’, container).clone()[0]; contents.classList.remove(“hidden”); // Login clicks should bring up the registration overlay. if ($(“.login-cta”, contents).length) { var loginButton = $(‘.login-cta span’, contents); loginButton.click(function () { // Tracking for if the login click occurred as a result of the Inbox Jewel Test if (inboxJewelTestEl && test_click){ login_click = true; taRecord.trackEventOnPage(‘reg_trigger’, ‘mgp_click_login’, ‘Inbox Jewel Notification Log In Click | Nav | mgp_drs_mem’, INBOX_JEWEL_TEST_PID); } overlay.destroy(); RegOverlay.show({type: ‘dummy’}, null, { flow: ‘CORE_COMBINED’, pid: 40472, userRequestedForce: true, onSuccess: function() { $(“.login-cta”, container).remove(); $(“.inbox-nav-dropdown”, container).removeClass(“with-login-cta”); }.bind(this), }); }); } else { // Add the loading skeleton var loadingItem = $(“.js-inbox-lander-thread-list-item.loading”, contents); var inboxMastheadWrapper = $(“.inbox-masthead-wrapper”, contents); var newLoadingItem; for (var loadingCount = 0; loadingCount = maxViewsForJewelTest) { commonMessagingUtil.disablePlacement(inboxJewelTestThumbprint); } // Show jewel as part of test if not disabled if (!commonMessagingUtil.isPlacementDisabledForToday(inboxJewelTestThumbprint) && !commonMessagingUtil.isPlacementDisabled(inboxJewelTestThumbprint) && inboxJewelTestEl.hasClass(‘valid-for-test’)) { $(‘.inbox-jewel-test’, container).removeClass(‘hidden’); // If jewel shows, track on page taRecord.trackEventOnPage(‘reg_trigger’, ‘mgp_view’, ‘Inbox Jewel Notification | Nav | mgp_drs_mem’, INBOX_JEWEL_TEST_PID); } } } } /* * Setup click and event handlers. */ function _setupHandlers() { var container = $(‘#’ + placement.id); var inboxJewelTestEl = $(“.inbox-jewel-test”, container); /** * Hide ui_jewel for inbox jewel test if view limit has been reached and track */ _setUpJewelTest(container, inboxJewelTestEl) // Clicks on the jewel should show or hide the overlay. $(‘.masthead-inbox-icon, .ui_jewel’, container).click(function (e) { e.stopPropagation(); // If jewel showing as part of TRVX-5924 if (inboxJewelTestEl && !inboxJewelTestEl.hasClass(‘hidden’)) { taRecord.trackEventOnPage(‘reg_trigger’, ‘mgp_click’, ‘Inbox Jewel Notification | Nav | mgp_drs_mem’, INBOX_JEWEL_TEST_PID); commonMessagingUtil.setPlacementDisabledForToday(inboxJewelTestThumbprint); commonMessagingUtil.incrementPageViews(inboxJewelTestThumbprint); test_click = true; // Adding ‘no_unread’ tracking here // If inbox jewel test is active, the jewel will not be hidden and there are no unread inbox messages taRecord.trackEventOnPage(‘Inbox|Dropdown’, ‘icon_jewel_click’, ‘no_unread’, INBOX_TRACKING_PID); } else if ($(‘.ui_jewel’, container).length && $(‘.ui_jewel’, container).hasClass(‘hidden’)) { taRecord.trackEventOnPage(‘Inbox|Dropdown’, ‘icon_jewel_click’, ‘no_unread’, INBOX_TRACKING_PID); } else if ($(‘.ui_jewel’, container).length) { taRecord.trackEventOnPage(‘Inbox|Dropdown’, ‘icon_jewel_click’, ‘has_unread’, INBOX_TRACKING_PID); } if ($(‘.masthead-inbox-icon’, container).attr(‘data-on-inbox’)) { window.location = ‘/Inbox’; } else { if ($(“.inbox-flyout-container”).length && overlay) { overlay.destroy(); } else { _showDropdownForPlacementTrigger(inboxJewelTestEl); } } }); // Clicks on a thread should hide the overlay. Radio(‘inbox’).on( ‘thread_clicked’, function(evnt) { if (overlay) { overlay.destroy(); } } ); // Hide or show the jewel as appropriate. Radio(‘inbox’).on( ‘has_unread_conversations’, function(evnt) { var jewelEls = $(‘.ui_jewel’, container); if(jewelEls !== ‘undefined’ && jewelEls.length > 0) { jewelEls.each(function (i, elem) { if (!$(elem).hasClass(‘inbox-jewel-test’)) { $(elem).removeClass(‘hidden’); } }) } } ); Radio(‘inbox’).on( ‘no_unread_conversations’, function(evnt) { var jewelEls = $(‘.ui_jewel’, container); if(jewelEls !== ‘undefined’ && jewelEls.length > 0) { jewelEls.each(function(i, elem) { if (!$(elem).hasClass(‘inbox-jewel-test’)) { $(elem).addClass(‘hidden’); } }) } } ); Radio(‘inbox’).on( ‘setup_handler’, function() { _setupHandlers(); } ); } /* * Setup the icon click handler. */ _setupHandlers(); return { }; }); });require([‘ta/p13n/placements’], function(placements) { var define = placements.define.bind(placements,’browser_mode_tracking’,’handlers’,[‘handlers’]); define([ ‘placement’, ‘ta/Core/TA.Event’, ‘ta/Browser’, ‘ta/Core/TA.Record’, ‘ta/util/SessionStorage’ ], function(placement, taEvent, taBrowser, taRecord, taSessionStorage){ var browserName; var sessionStoreKey = placement.id + ‘_browser_mode_tracked’; function _trackBrowserMode (resultStr) { taRecord.trackEventOnPage(‘BROWSER_TRACKING’, browserName, resultStr, null, true); } taEvent.queueForLoad(function(){ if (taSessionStorage.canUseSessionStore() && sessionStorage.getItem(sessionStoreKey)) { // already tracked return; } else { if (taBrowser.isChrome()) { browserName = “Chrome”; taBrowser.isChromeIncognito(_trackBrowserMode); taSessionStorage.canUseSessionStore() && sessionStorage.setItem(sessionStoreKey, ‘1’); } } }); });});require([‘ta/p13n/placements’], function(placements) { var define = placements.define.bind(placements,’masthead_search’,’handlers’,[‘deferred/lateHandlers’,’handlers’]); /* jshint newcap:false */ /** * Private javascript for masthead_search placement */ define([“placement”, “ta/Core/TA.Store”, “common/Radio”], function (placement, taStore, Radio) { function prepareTypeaheadParameters() { 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]); } } } } } prepareTypeaheadParameters(); var options = taStore.retrieve(“typeahead_dual_search_options”); placement.require([“trjs!deferred/lateHandlers”], function (lh) { Radio(“masthead_search”).on(‘open’, function () { lh.showSearchOverlay(); }); }); return { getOptions: function () { return options; } }; }); });if (require) {require([‘ta/rollupAmdShim’], function(rollupAmdShim) { rollupAmdShim.install([], [“page-model”]); }); } else {if (window.ta&&ta.rollupAmdShim) {ta.rollupAmdShim.install([],[“page-model”]);} }if (require) {require([‘ta/rollupAmdShim’], function(rollupAmdShim) { rollupAmdShim.install([], [“ta/util/RecordInterruption”]); }); } else {if (window.ta&&ta.rollupAmdShim) {ta.rollupAmdShim.install([],[“ta/util/RecordInterruption”]);} }require([‘ta/p13n/placements’], function(placements) { var define = placements.define.bind(placements,’qualtrics_survey’,’handlers’,[‘handlers’]); /** Private javascript for qualtrics survey placement * We want to show on the 2nd pageview, no more than once every 30 days * The div id is generated from the qualtrics site-intercept code. * The placement render will decide which survey to displace. */ define([ “placement”, “lib/jquery-amd”, “ta”, ‘ta/Core/TA.LocalStorage’, ‘page-model’, ‘ta/util/RecordInterruption’, ‘ta/support/Qualtrics’, ‘utils/throttle’, ‘common/Radio’ ], function (placement, $, ta, taLocalStore, model, recordInterruption, taQualtrics, throttle, Radio) { “use strict”; ta.queueForLoad(function () { // For surveys that should hide when the user begins to scroll, this is the how much give they have var SCROLL_BUFFER = 318; // Campaign ID for event tracking var CAMPAIGN_ID = ‘qualtrics_surveys’; taQualtrics.setSmartSurvey(!!placement.params.smartSurvey); taQualtrics.updatePageViews(); if (taLocalStore.enabled && ( taQualtrics.isDebug() || taQualtrics.canDisplaySmart() || ( !taQualtrics.getSmartSurvey() && taQualtrics.canDisplay() ) )) { var surveyKey = placement.params.surveyId; var surveyContainerClassName = ‘.’ + surveyKey + ‘_InfoBarContainer’; var surveyName = placement.params.surveyName; var surveyProperties = ‘Qualtrics_Survey’ + ‘|’ + window.pageServlet + ‘|’ + surveyName; if (placement.params.smartSurvey) { var getSurveyProperties = function (_ss, _qa) { return _ss + ‘|’ + [‘sc-‘ + _qa.getSessionCount(), ‘ir-‘ + _qa.getInterceptReqs(), ‘iv-‘ + _qa.getInterceptViews(), ‘pv-‘+_qa.getPageViews()].join(‘|’); }; $(‘body’).on(‘qxInterceptShown’, function () { ta.trackEventOnPage(CAMPAIGN_ID, ‘interceptShown’, getSurveyProperties(surveyProperties, taQualtrics), null, true); taQualtrics.updateInterceptViews(); taQualtrics.updateSessionCount(); }); $(‘body’).on(‘qxInterceptAccept’, function () { ta.trackEventOnPage(CAMPAIGN_ID, ‘interceptAccept’, getSurveyProperties(surveyProperties, taQualtrics), null, false); taQualtrics.setResponded(true); }); $(‘body’).on(‘qxInterceptDecline’, function () { ta.trackEventOnPage(CAMPAIGN_ID, ‘interceptDecline’, getSurveyProperties(surveyProperties, taQualtrics), null, false); taQualtrics.setResponded(true); }); } if (surveyKey) { taQualtrics.displaySurvey(surveyKey); recordInterruption.record(‘popup’, surveyProperties, taQualtrics.getPageViews()); if (placement.params.smartSurvey) { taQualtrics.updateInterceptReqs(); } // TV-1243 – Mobile Surveys cover a commerce component, so they should be hidden when the user begins to scroll if (placement.params.hideOnScroll) { var hide = function () { var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; if (scrollTop > 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(“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 < 768) { count += document.querySelectorAll(".inline_ad_wrapper").length; } return count; }; var _log = function(blocked, trackingLabel, trackUnblocked){ if ((!_logged && trackingLabel === DEFAULT_LABEL) || (trackingLabel && trackingLabel !== DEFAULT_LABEL)){ if (blocked || trackUnblocked) { taRecord.trackEventOnPage(trackingLabel, Browser.name, blocked, _getAdCount(), false); } _logged = true; } }; var _detect = function(onDetectedHandler, trackingLabel, trackUnblocked, isLoadError){ if (typeof isLoadError != undefined) { _isPixelLoadError = isLoadError; } if (_testImg){ var blocked = _isPixelLoadError ? true : !_testImg[0].offsetParent; _log(blocked, trackingLabel, trackUnblocked); if (blocked) { onDetectedHandler(); } } }; exports.runIfDetected = function(onDetectedHandler, trackingLabel, trackUnblocked) { if ( typeof onDetectedHandler != "function") { taError.record(null, "runIfDetected requires a function"); return; } taEvent.queueForLoad( function() { _logged = false; if (_testImg) { _detect(onDetectedHandler, trackingLabel, trackUnblocked); } else { _testImg = _generatePixel(); _testImg.on("load", function(){ _detect(onDetectedHandler, trackingLabel, trackUnblocked, false); }); _testImg.on("error", function(){ _detect(onDetectedHandler, trackingLabel, trackUnblocked, true); }); $("body").append(_testImg); } }, "AdBlockDetect"); }; return exports; }); require(['ta/p13n/placements'], function(placements) { var define = placements.define.bind(placements,'ab_chk','handlers',['handlers']); /* * ADS-3472: ad blocker detection running permanently on sales drs 99 * Works in Chrome, Firefox, Safari & IE. */ define(["placement","cpm/AdBlockDetect"], function(placement,abDetect) { // a fn is required, abDetect.runIfDetected(function(){}, "ab_chk", true); }); });require(['ta/p13n/placements','$prp/ab_chk/handlers'], function(placements, impl) { window.ta.plc_ab_chk_handlers = placements.load('ab_chk','handlers.js', { 'name': 'ab_chk', 'id': 'taplc_ab_chk', 'location_id': 28964, 'servletClass': 'com.TripResearch.servlet.forums2.ShowTopicServlet', 'servletName': 'ShowTopic', 'params': {}, 'data': {}});}); require(['ta/p13n/placements'], function(placements) { var define = placements.define.bind(placements,'global_nav_links','handlers',['handlers']); /** * Private handler of global_nav_links */ define(['utils/asdf-encoder'], function (asdf) { function clickAboutGeoLink(event, target) { window.open(asdf.asdf(target.getAttribute('data-ahref')).replace(/&/g, '&'), '_self'); } return { clickAboutGeoLink: clickAboutGeoLink } });});require(['ta/p13n/placements'], function(placements) { var define = placements.define.bind(placements,'global_nav','handlers',['deferred/lateHandlers','handlers']); /* jshint newcap:false */ define([ 'placement', 'lib/jquery-amd', 'common/Radio', 'ta/registration/RegEvents', 'utils/throttle', 'utils/asdf-encoder' ], function( placement, $, Radio, RegEvents, throttle, asdf ) { 'use strict'; var TRACKING_CATEGORY = "TopNav"; var placementEl = $('#' + placement.id); var radio = Radio('global-nav'); var oldOverlay = null; var mastheadSavesApp = null; var persistentIcons = $('.persistent-icons', placementEl); var navIcons = $('.global-nav-icons', persistentIcons); var logo = $('.global-nav-logo', persistentIcons); var logo2018 = $('.global-nav-logo-2018', placementEl); var pill = $('[data-placement-name="global_nav_geopill"]', placementEl); var radioCandyBarLinks = Radio('candy-bar-quick-links'); var $global_nav_bottom = $('.global-nav-bottom', placementEl); var radioScrollGeoPill = Radio('tripsearch-scroll-geo-pill'); // Trigger in 'placements/global_nav_action_trips/handlers' radio.on('run-my-trips-test-3', function() { openMyTrips(false, true); }); radioScrollGeoPill.on('hide-on-header', function(shouldHide) { if (logo2018) { logo2018.toggleClass('is-hidden-mobile', !shouldHide); } }); // Update Global Nav content var _onSuccessLoginRefresh = (function(response) { window.userLoggedIn = true; // We need this refresh logic only in the placements version of the header. // The web components header is used inside of this placement so we need to specifically // avoid replacing this content upon login. var isComponents = placementEl.find('[data-non-components]').length == 0; if (!isComponents) { var container = document.querySelector('#' + placement.id); var responseDOM = document.createElement('div'); responseDOM.innerHTML = response; // preserve web components by moving each from page DOM into response DOM // assumes only one instance of each web component [].forEach.call(responseDOM.querySelectorAll('.react-container'), function(newComponent) { var oldComponent = container.querySelector('[data-component="' + newComponent.getAttribute('data-component') + '"]'); if (oldComponent) { newComponent.parentNode.replaceChild(oldComponent, newComponent); } }); // refresh var oldGlobalNav = container.querySelector('.global-nav'); var newGlobalNav = responseDOM.querySelector('.global-nav'); oldGlobalNav.parentNode.replaceChild(newGlobalNav, oldGlobalNav); if (oldOverlay) { oldOverlay.hide('replace-el'); } } else { // If this is the components nav then we need to pull in the inbox placement contents from the // response and drop them into a special area meant for placements that we currently still depend // on. E.g., inbox dropdown can't be made into a component without API rework. var $legacyActions = placementEl.find('.components-nav-legacy-actions'); var actionsResponse = $("").html(response).find('.components-nav-legacy-actions').html(); $legacyActions.html(actionsResponse); } Radio('inbox').trigger('setup_handler'); }).bind(placementEl); var _getRequestOptionsForLoginRefresh = function() { return { // This should not be necessary, but for some reason placements // seems tightly coupled with the location store skipLocation: placement.location_id allEls.offset().top; }); var elsToShow = $().add(hiddenEls).add(collapsedEls).clone(); var menuEl = placementEl.find('.global-nav-links-menu-more').clone(); menuEl.prepend(elsToShow); var reqs = ['trjs!overlays/Overlay', 'trjs!overlays/styles/flyout', 'trjs!overlays/options/closeOnMouseAway', 'trjs!overlays/position', 'trjs!overlays/options/destroyOnHide' ]; require(reqs, function(Overlay, Flyout, CloseOnMouseAway, Position, DestroyOnHide) { // xli: hacky solution for sky rollout 4/1 (ADS-7383, ADS-7180) var aboveContentOffset = $('.ppr_priv_global_nav_component').offset(); var hasSky = !!$('.skyExpanded').length; var updatedYOffset = hasSky && aboveContentOffset ? 1 - aboveContentOffset.top : 1; var overlay = new Overlay(elmt[0], new Flyout(menuEl[0], 'global-nav-flyout global-nav-menu'), CloseOnMouseAway, Position.bottomRight([0, updatedYOffset]), DestroyOnHide); overlay.domParent = placementEl.find('.global-nav-overlays-container')[0]; overlay.show(); elmt.find('.ui_tab').addClass('hovering'); overlay.on('hide', function() { elmt.find('.ui_tab').removeClass('hovering'); }); oldOverlay = overlay; }); }); // Help Center MW Overlay placementEl.on('click', '#global-nav-HelpDesk', function (evt) { evt.preventDefault(); var sourceElem = this; var reqs = ['trjs!overlays/Overlay', 'trjs!overlays/styles/modal', 'trjs!overlays/options/closeOnEscape', 'trjs!overlays/position', 'trjs!overlays/options/closeOnDocClick', 'trjs!overlays/options/ajax', 'trcss!src/build/required/help_center_overlay' ]; require(reqs, function(Overlay, Modal, CloseOnEscape, Position, CloseOnDocClick, Ajax, styleSheetOK){ var overlay = new Overlay(sourceElem, [ Modal(null, '', 'help_center'), CloseOnEscape, Position.cssCentered(), CloseOnDocClick, Ajax("/uvpages/helpCenterOverlay.html") ]); overlay.show(); radio.emit('overlay-show'); }); }); // When clicking on my trips placementEl.on('click', '.masthead-saves', function(evt) { if (mastheadSavesApp) { if (oldOverlay) { oldOverlay.hide('new-overlay'); } mastheadSavesApp && mastheadSavesApp.destroy() && (mastheadSavesApp = null); require(['trjs!ta/Core/TA.Record'], function(taRecord) { taRecord.trackEventOnPage('TopNav', 'mytrips_dropdown_cancel'); }); } else { openMyTrips(false, false, evt.currentTarget); $(evt.currentTarget).find('.ui_icon').addClass('hovering'); } }); // My Trips - Remove through CX-2542 var openMyTrips = function(inCreateTripFlow, runTest3, elmt) { if (oldOverlay) { oldOverlay.hide('new-overlay'); } var reqs = ['trjs!overlays/Overlay', 'trjs!overlays/styles/flyout', 'trjs!overlays/options/closeOnDocClick', 'trjs!overlays/position', 'trjs!overlays/options/destroyOnHide', 'trjs!overlays/options/autoReposition', 'trjs!ta/Core/TA.Record' ]; require(reqs, function(Overlay, Flyout, CloseOnDocClick, Position, DestroyOnHide, AutoReposition, taRecord) { // Get reference element var $refElem = $('.masthead-saves'); // Create a new overlay var overlay = new Overlay( $refElem[0], new Flyout('', 'global-nav-flyout global-nav-utility trips-flyout-container'), CloseOnDocClick.withoutTouchEvents, $refElem.data('nav-2018-enabled') ? Position.bottomLeft([($refElem.width()/2)-34, 9]) : Position.bottomLeft([-20, -3]), DestroyOnHide, AutoReposition ); overlay.domParent = placementEl.find('.global-nav-overlays-container')[0]; overlay.show(); placementEl.find('.trips-flyout-container').addClass('hide-arrow'); // To make sure the overlay arrow is shown together with the masthead saves view oldOverlay = overlay; require(['trdust!masthead-saves-dust', 'trdust!styleguide-dust', 'trjs!masthead-saves', 'trcss!masthead-saves'], function(dustModule, module, styleSheetOK) { setTimeout(function () { mastheadSavesApp = new window.MastheadSavesApp(); mastheadSavesApp.start({ inCreateTripFlow: inCreateTripFlow, runTest3: runTest3 }); overlay.on('hide', function(evt) { mastheadSavesApp && mastheadSavesApp.destroy() && (mastheadSavesApp = null); taRecord.trackEventOnPage('TopNav', 'mytrips_dropdown_cancel'); if (elmt) { $(elmt).find('.ui_icon').removeClass('hovering'); } }); placementEl.find('.trips-flyout-container').removeClass('hide-arrow'); }, 0); }); }); }.bind(placementEl); // Profile Link: When clicking on a utility link, open the submenu, if one is available placementEl.on('click', '.global-nav-utility-activator', function(evt) { var elm = $(this); // Is there a submenu to show? var menuEl = placementEl.find(elm.data('element')).clone(); if (!menuEl.length) { return; } if (oldOverlay) { if (oldOverlay.sourceElement == this){ oldOverlay.isOpen() ? oldOverlay.hide('close') : oldOverlay.show(); return; // don't re-open the same overlay. } else { oldOverlay.hide('new-overlay'); } } // Create a new overlay menuEl = menuEl.clone(); var reqs = ['trjs!overlays/Overlay', 'trjs!overlays/styles/flyout', 'trjs!overlays/options/closeOnDocClick', 'trjs!overlays/position', 'trjs!overlays/options/autoReposition' ]; require(reqs, function(Overlay, Flyout, CloseOnDocClick, Position, AutoReposition) { var overlay = new Overlay(elm[0], new Flyout(menuEl[0], 'global-nav-flyout global-nav-utility'), CloseOnDocClick, elm.data('nav-2018-enabled') ? Position.bottomLeft([(elm.outerWidth()/2)-34, 12]) : Position.bottomLeft([-20, -3]), AutoReposition); overlay.domParent = placementEl.find('.global-nav-overlays-container')[0]; overlay.show(); elm.addClass('menu-open'); $(evt.currentTarget).find('.ui_icon').addClass('hovering'); overlay.on('hide', function() { elm.removeClass('menu-open'); $(evt.currentTarget).find('.ui_icon').removeClass('hovering'); }); oldOverlay = overlay; }); }); // Trackng: Logo clicks placementEl.on('click', '.global-nav-logo', function() { require(['trjs!ta/Core/TA.Record'], function(taRecord) { taRecord.setEvtCookie('TopNav_' + window.pageServlet, 'click', 'TAlogo', 0, '/Home'); }); }); // Hide or show the jewel as appropriate. Radio('inbox').on( 'has_unread_conversations', function(evnt) { placementEl.find('.global-nav-hamburger .ui_jewel.unread').removeClass('hidden'); placementEl.find('.nav-sub-link.inbox .icon-and-jewel').removeClass('hidden'); } ); Radio('inbox').on( 'no_unread_conversations', function(evnt) { placementEl.find('.global-nav-hamburger .ui_jewel.unread').addClass('hidden'); placementEl.find('.nav-sub-link.inbox .icon-and-jewel').addClass('hidden'); } ); // Mobile Web Global Nav Persistent Icons function checkForPersistentIcons() { var offsetPosition = $(window).scrollTop(); if (navIcons.length) { // A - Sideways default state: Logo and icons together, geo pill on second line // B - Sideways 1st scroll (down): Icons animate to geo pill, logo scrolls out of view // C - Sideways 2nd scroll (down): Icons locked to geo pill, all elements scroll out of view // // A - Internal default state: No logo, geo pill and icons on first line // B - Internal 1st scroll (down): Icons locked to geo pill, all elements scroll out of view // C - Internal 1st scroll (up): Icons animate to logo, logo scrolls into view // // Adjust icons to placements: Logo then Geopill when available if (pill.is(':visible')) { var calculatePlacementInView = placementEl.height() - offsetPosition; // Keep icons confined to scrollable area on DW & MW (avoids snap-into-view on MW) if (offsetPosition 0) { if (offsetPosition > 0 && offsetPosition <= 50) { navIcons.css({ 'position': 'absolute', 'top': offsetPosition, 'bottom': 'auto' }); } // When the icons reach the end of the scrollable area, lock them to the geo pill else if (calculatePlacementInView placementEl.offset().top); } } // Default scroll position for responsive views positionSecondView(); var positionGlobalNav = throttle(checkForPersistentGlobalNav, 100); $(window).scroll( function() { checkForPersistentIcons(); positionGlobalNav(); }); radioCandyBarLinks.on('border-top', function(shouldHide) { $global_nav_bottom.toggleClass('home_ui_tabs', shouldHide); }); // Tracking for links in submenus works by looking up the active-menu-trigger // (link that triggered the dropdown) and using it's tracking-label as a prefix placementEl.on('click', 'a.global-nav-link[data-tracking-label]', function(event) { var trackingLabel = $(event.target).data('trackingLabel'); // Handle links to /# (Help Center) or links opening new window require(['trjs!ta/Core/TA.Record'], function(taRecord) { if("HelpDesk" === trackingLabel || event.target.target == '_blank') { taRecord.trackEventOnPage(TRACKING_CATEGORY, 'click', trackingLabel); } else { taRecord.setEvtCookie(TRACKING_CATEGORY, 'click', trackingLabel, 0, event.target.href); } }); }); function clickLogoLink(event, target) { event.preventDefault(); var link = target.getAttribute('data-ahref') ? asdf.asdf(target.getAttribute('data-ahref')).replace(/&/g, '&') : '/'; window.open(link, '_self'); } return { checkForPersistentIcons: checkForPersistentIcons, checkForPersistentGlobalNav: checkForPersistentGlobalNav, clickLogoLink: clickLogoLink }; }); });require(['ta/p13n/placements'], function(placements) { var define = placements.define.bind(placements,'trip_planner_breadcrumbs','handlers',['handlers']); define(["placement", "ta/Core/TA.FireEvent", "utils/urlDecoder"], function(placement, taEvent, decoder) { "use strict"; function updateContents(contentDiv) { var placementDiv = document.getElementById(placement.id); if(placementDiv) { placementDiv.innerHTML = contentDiv.innerHTML; } } function _goToLink(event, element) { decoder.goToLink(event, element); } function onClick(key, value) { return require.defined('ta/util/Cookie') && require('ta/util/Cookie').setOneTimeCookie(key, value); } taEvent.on("update-" + placement.name, updateContents); return { goToLink: _goToLink, onClick : onClick }; });}); define('overlays/options/autosize', ['vanillajs', 'api-mod'], function(vanilla, api) { 'use strict'; return function(padding){ return function(){ var autosize = function (){ var el = api.find('.autosize', this.container); if (el){ var vH = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - padding; var oH = api.getSize(this.container).y; if (oH > 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 {}; }); });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”)
Source