Cerca e consulta articoli.

Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages
Filter by Categories
adessonews

Agevolazioni - finanziamenti - immobiliare

Visure on-line - Legislazione civile e fiscale

Siamo operativi in tutta Italia

Le migliori 10 offerte hotel a Iglesias, Italia

[]
Le migliori 10 offerte hotel a Iglesias, Italia – novembre 2020=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);]]>0;)define.apply(e,t.d.shift());for(;t.r.length>0;)require.apply(e,t.r.shift());e.getRequireJSQueue=null}l&&+new Date-i<5e3&&a.apply(e,l)}if(!e||!e.requireCallLast){var l,i,u=!1,a=e.requireCallLast=function(e,r){l=null;var a=[].slice.call(arguments,2);t(e)?n(require(e),r,a):t("trjs")?require(["trjs!"+e],function(e){n(e,r,a)}):u||(i=+new Date,l=[].slice.call(arguments))},c=e.requireCallIfReady=function(n){t(n)&&a.apply(e,arguments)},o=function(t,n,r,l){var i=c;return!r||"click"!==r.type&&"submit"!==r.type||(i=a,r.preventDefault&&r.preventDefault()),l.unshift(n),l.unshift(t),i.apply(e,l),!1};e.remoteModule=function(e,t){return o("remoteModule",null,e,[].slice.call(arguments))},e.requireEvCall=function(e,t,n,r){return e=e.match(/^((?:[^/]+/)*[^/.]+).([^/]*)?$/),o(e[1],e[2],t,[].slice.call(arguments,1))},e.widgetEvCall=function(e,t,n,r){return o("ta/prwidgets","call",t,[].slice.call(arguments))},e.placementEvCall=function(e,t,n,r,l){return o("ta/p13n/placements","evCall",n,[].slice.call(arguments))},document.addEventListener?document.addEventListener("DOMContentLoaded",r):e.addEventListener?e.addEventListener("load",r):e.attachEvent&&e.attachEvent("onload",r)}}(window); ]]>“}”,”pageServlet”:”SmartDeals”,”sessionId”:”4BEB6B7C89D8622A234A9BA09277549E”,”cdnHost”:”https://static.tacdn.com”,”quickSave”:true,”isExternalReferral”:true,”useERUserTracking”:true,”cookieDomain”:”.tripadvisor.it”,”uid”:”X7l7vwokLG0AA6XD4e8AAAFG”,”hasReferral”:true,”posLocale”:”it”,”MEDIA_HTTP_BASE”:”https://media-cdn.tripadvisor.com/media/”,”user_id”:””,”loggedIn”:false,”securelyLoggedIn”:false},”DUST_GLOBAL”:{“IS_IELE8″:false,”LOCALE”:”it”,”IS_IE10″:false,”CDN_HOST”:”https://static.tacdn.com”,”DEVICE”:”desktop”,”IS_RTL”:false,”LANG”:”it”,”DEBUG”:false,”READ_ONLY”:false,”POS_COUNTRY”:187768},”JS_SECURITY_TOKEN”:”TNI1625!ANkVREuTXnm+hnR2wCSQssiEduW0QIRjk0bwyymW6NOR3gHJsC+7LBynw1IZr9TOa8ZBxK3j4LXzoImMLLWQ9H/Oz6cukT7qDPdCGlzE6XPuNeJOJ71VWphID/qJYVGZ/AaHxsnRpjDUOkKIwoN7Bu5KCjjTJZXTsUh0F9iguhy+”,”GEO_ID”:”652013″,”hotelsInGeo”:”5″,”LOC_ID”:”652013″,”isMobile”:false,”isRtl”:false}; });]]>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()-t0&&o&&(o=o[t[0]]||o[t[0].toLowerCase()]),o?(D[i]=o,d.push(o)):n.push(i)}else n&&n.push(i);else d.push(null);if(d.length===e.length)return d}function t(e){var n,r,i,t,o=”Missing immediately required dependency: “+e;for(n=0;n<10;n++){var d=v[e];if(!d){o+=" (not specified)";break}if(d.error){o+=" ("+d.error+")";break}if(e=null,t=d.deps)for(r=0;r "+e}var f=new Error(o);return y&&!window.IS_DEBUG||!g||y&&null===window.require.caller&&/^R|react$/.test(e)||g.error(f),f}function o(e,n,t){var u,a,s,p,c,h,y,g=[],w=[],m=[];n.deps=n.deps||[],n.defname&&(p=v[n.defname],v[n.defname]=n,p&&p!==n&&p.needers&&p.needers.length&&(n.needers=(p.needers||[]).concat(n.needers||[])));for(var c=0;c=0?(g.push(u.substring(0,h)),w.push(u.substring(h+1))):(g.push(null),w.push(u));if(g=i(g,m),!g)return o(m,n);for(var c=0;c0){o(n,d);continue}r=null,d.cb&&(r=d.cb.apply(null,e)),d.deps=[],d.cb=null,d.defname&&u(d.defname,r)}catch(e){P(“Error propagating dependency resolutions: “,e)}}q=null}function f(e){return function(n){e.defname&&u(e.defname,n)}}function l(e){return function(n){e.defname&&(e.error=”Error loading ‘”+e.defname+”‘: “+n,P(e.error),e.need=0,e.deps=[],a(e.defname))}}function u(e,n){if(!D[e]){var r=v[e];if(D[e]=n,delete v[e],w[e]){var i,t=e.split(“/”),o=ta;for(“ta”===t[0]&&t.shift();t.length>1;)i=t.shift(),o[i]||(o[i]={}),o=o[i];t.length>0&&(i=t.shift(),i in o||i.toLowerCase()in o||(o[i]=n,o[i.toLowerCase()]=n))}if(E&&E(e,[],s(n)),r)for(;r.needers&&r.needers.length>0;){var f=r.needers.shift();f.need-=1,f.need||b.push(f)}b.length&&!q&&(q=setTimeout(d,0))}}function a(e){var n=v[e];if(n){var r=n.eb;for(n.deps=null,n.cb=null,n.eb=null,n.error||(n.error=”Error loading ‘”+n.defname+”‘”);n.needers&&n.needers.length>0;){var i=n.needers.shift();i.error=”Failed to load AMD module ‘”+e+”‘ which is depended upon by ‘”+i.defname+”‘”,i.need>0&&(i.need=0,b.push(i)),y&&!window.IS_DEBUG||!g||g.error(i.error)}if(null!=r)try{r(n.error)}catch(e){}}b.length&&!q&&(q=setTimeout(d,0))}function s(e){return function(){return e}}function p(e){return e&&(e.indexOf(“trjs!”)!==-1||e.indexOf(“trcss!”)!==-1||e.indexOf(“trhtml!”)!==-1||e.indexOf(“trdust!”)!==-1)}function c(){return!(“undefined”!=typeof ta&&ta.page&&ta.page.loadDeferred)}function h(){var e,n,r,t,o;if(q)return void setTimeout(h,0);if(M=!0,v&&c())for(e in v)if(v.hasOwnProperty(e)){if(n=v[e],t=[],o=[],p(n.defname))continue;if(v.hasOwnProperty(“trjs!”+n.defname))continue;if(n.deps&&n.deps.length){for(r=0;r0)return void(r=setTimeout(t.apply.bind(t,this,arguments),i));var u=t.apply(this,arguments);return e=Date.now(),u}}}); define(“vanillajs”,[],function(){return{}}); define(“mobile/lite/image-loader”,[“utils/throttle”,”vanillajs”],function(t){“use strict”;function e(e,n){n=n||document,c=e||0;var i=Array.prototype.filter.call(n.querySelectorAll(“[“+u+”]”),r());if(0!=i.length){var o=t(function(t){i=i.filter(r()),0==i.length&&(window.removeEventListener(“scroll”,o),window.removeEventListener(“resize”,o))},200);window.addEventListener(“scroll”,o),window.addEventListener(“resize”,o)}}function r(){return function(t){if(!document.body.contains(t))return!1;try{if(!i(t))return!0}catch(t){return!1}var e=t.getAttribute(u);if(e)return”IMG”===t.tagName?t.src=e:t.style.backgroundImage=”url(“+e+”)”,t.removeAttribute(u),!1;var r=t.getAttribute(l);return r&&”IMG”===t.tagName&&(t.srcset=r,t.removeAttribute(l)),!0}}function n(t){t=t||document;var e=t.querySelectorAll(“[“+u+”]”);Array.prototype.filter.call(e,r())}function i(t){var e=t.getBoundingClientRect();return e.width>0&&e.height>0&&e.top+c>=0&&e.top-c<=window.innerHeight}function o(){return function(t){var e=t.getAttribute(u);return!e||("IMG"===t.tagName?t.src=e:t.style.backgroundImage="url("+e+")",t.removeAttribute(u),!1)}}function a(t){t=t||document;var e=t.querySelectorAll("["+u+"]");Array.prototype.filter.call(e,o())}var u="data-lazyurl",l="data-lazyset",c=0;return{init:e,demandLoadImages:n,forceLoadImages:a}}); define("utils/to-array",["vanillajs"],function(){return function(n){return"number"!=typeof n.length?[n]:Array.prototype.slice.call(n)}}); define("amdloaders",["utils/to-array"],function(e){var t=[],n=[],r=[],o=[],a=[],d=null,i=null,u={},s={},c={},l={},f=null,p=!1,h=1e4,m=!1,w={},v=function(e,t,r){if("@ta/"!==e.substring(0,4)){if(u[e]){if(s[e]&&/^[-a-z]+.[-_a-zA-Z0-9]+$/.test(e))return}else u[e]=!0,n.push(e);a.push(function(n){n||!t.parsed||t.parsed(e)||(n=new Error("Dynamic load failed to define module '"+e+"'")),n&&r.error&&r.error(n)}),S()}},g=function(e,t,r){u[e]||(u[e]=!0,s[e]||t.specified(e)||n.push(e)),a.push(function(n){var o=t.parsed(e);n||s[e]||o||(n=new Error("Dynamic load failed to define '"+e+"'")),n?r.error&&r.error(n):o||define(e,[],H(!0))}),t([e],r,r.error),S()},y=function(e,n,r){t.push(e),a.push(function(e){e?r.error&&r.error(e):r(!0)}),S()},C=function(e,t,n){r.push(e),a.push(function(r){r||t.specified("trhtml!"+e)||(r=new Error("Dynamic load failed to define content '"+e+"'")),r&&n.error&&n.error(r)}),S()},L=function(e,t,n){c[e]||(c[e]=!0,l[e]||o.push(e)),a.push(function(e){e?n.error&&n.error(e):n(!0)}),S()},L=function(e,t,n){c[e]||(c[e]=!0,l[e]||o.push(e)),a.push(function(e){e?n.error&&n.error(e):n(!0)}),S()},S=function(){!f&&p&&!m&&(a.length||t.length||n.length||r.length||o.length)&&(f=setTimeout(b,0))},E=function(e,t){var n=e.getAttribute("data-rup");if(n){var r;n=n.split(",");for(var o=0;o0&&(h+="&needContent="+encodeURIComponent(String(i))),window.pageServlet&&(h+="&metaReferer="+encodeURIComponent(window.pageServlet));var w=null;try{w=new XMLHttpRequest}catch(e){try{w=new ActiveXObject("MSXML2.XMLHTTP")}catch(e){try{w=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){throw new Error("Can't create XMLHttpRequest or similar")}}}var v=!1;w.onreadystatechange=function(){v||4!==w.readyState||(v=!0,w.status>=200&&w.status<=299?x(d,w.responseText):I(d,new Error("XHR returned "+w.status)))},w.open("POST","/DemandLoadAjax",!0);try{w.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8")}catch(e){}try{w.setRequestHeader("X-Requested-With","XMLHttpRequest")}catch(e){}try{w.setRequestHeader("Accept","text/html, */*")}catch(e){}m=!0,w.send(h)}},I=function(e,t){if(m=!1,S(),e.length)for(var n=0;n=l.limit&&(l.list=l.list.slice(0,l.list.length-1),l.callbacks=l.callbacks.slice(0,l.callbacks.length-1)),l.list.unshift(e),l.callbacks.unshift(t);var r=l.handlerModule;r&&l.handlerMethod&&(l.handlerModule=null,require([r+””],function(e){n(l,e[l.handlerMethod],0)}))}}function e(l,e){if(e=Array.prototype.slice.call(e),l.handler)try{l.handler.apply(null,e)}catch(l){}else if(l.list&&l.list.length=t)return!1;l.handler=n,l.priority=t;var a=l.list;l.list=null;for(var i=0;i0&&”function”==typeof e[0]&&l(o,e.slice(1),e[0])}}}); define(“ns-exporter”,[“vanillajs”],function(r){function n(r){if(“undefined”==typeof window)return null;if(“undefined”==typeof r&&(r=window),!r)return require.defined(“ta/util/Error”)&&require(“ta/util/Error”).record(null,”Using ns-exporter:exportTo without a namespace”),null;if(“string”==typeof r){var n=window;n.ta||(ta={}),r.split(“.”).forEach(function(r){n[r]||(n[r]={}),n=n[r]}),r=n}return r}return{exportTo:function(r,e,t){if(e=n(e),!e)return!1;for(var i in r)!r.hasOwnProperty(i)||t&&i in e||(e[i]=r[i]);return!0},createNs:function(r,e,t){return!!(e=n(e))&&void(e[t]=r)}}}); define(“ta/Core/TA.FireEvent”,[“vanillajs”],function(){var n={},e={};return n.on=function(n,r){var i=e[n];i||(i=e[n]=[]),i.push(r)},n.fireEvent=function(n,r){var i=Array.prototype.slice.call(arguments),t=e[n];i.shift(),t&&t.slice(0).forEach(function(n){try{n.apply(null,i)}catch(n){window.IS_DEBUG&&(console.error||console.log)(“Exception in TA.FireEvent handler”,n)}})},n.off=function(n,r){if(r){var i,t=e[n];t instanceof Array&&(i=t.indexOf(r),i>=0&&t.splice(i,1))}else delete e[n]},n.hasEventListener=function(n){return!!e[n]},n}); define(“ta/Core/TA.Event”,[“vanillajs”,”common/trackingStreams”,”ns-exporter”,”ta/Core/TA.FireEvent”],function(vanilla,tracks,nsExporter,fireEvent){function _makeClosure(e,t){var n=this;return t=Array.prototype.slice.call(t),function(){e.apply(n,t)}}function QueueTimer(e,t){var n=0,r=0,o=[],a=0,u=!1;this.start=function(){n&&clearTimeout(n),a=Date.now()},this.end=function(i){var c=Date.now(),f=c-a;r+=f;var l=””+f+”ms [“+(i||””)+”]”,s=e+(t?”-after”:””);u?console.error(“Straggler for “+s+”: “+l):(o.push(l),n=setTimeout(function(){console.error(“Timing for “+s+”: “+r+”msn”+o.sort(function(e,t){return parseInt(e)-parseInt(t)}).join(“n”)),u=!0},2e3))}}var exports={on:fireEvent.on,off:fireEvent.off,fireEvent:fireEvent.fireEvent,hasEventListener:fireEvent.hasEventListener};exports.call=function(e,t,n,r){if(null==t)return IS_DEBUG&&alert(“You must pass the event.nnUsage:nta.call(‘ta.namespace.Class.function’, event);”),!1;if(null==e)return IS_DEBUG&&alert(“ta.call of undefined function”),!1;var o=e;if(“function”==typeof e)e=””;else if(!/^ta.[wd.]+$/.test(e))return IS_DEBUG&&alert(“Invalid function name. Must be of the form: ta.namespace.Class.function”),!1;var a=t||window.event;[“stopPropagation”,”preventDefault”].forEach(function(e){a[e]||(a[e]=function(){})}),a.stop||(a.stop=function(){a.preventDefault(),a.stopPropagation()}),n||(n=a.target||a.srcElement),n||tracks.error(null,”ta.call re-wrap fail (non-DOM element) – “+e,t,{“funcName”:e});var u=arguments,i=Array.prototype.slice.call(u,3);i.splice(0,0,a,n);try{return i.unshift({callback:_ta_call_defer,evt:a}),i.unshift(o),exports.run.apply(null,i)}catch(n){tracks.error(n,”ta.call – “+e,t)}return!1};var _ta_call_defer=function(e,t){t&&delete t.evt,exports.run.apply(null,arguments)};exports.run=function(e,t){var n=arguments,r=Array.prototype.slice.call(n,2);try{var o=exports.fn(e);if(“function”==typeof o){var a=o.apply(window,Array.prototype.slice.call(r));if(t&&t.onComplete){var u=exports.fn(t.onComplete);u&&u(a)}return a}t&&t.evt&&(t.evt.stopPropagation?t.evt.stopPropagation():t.evt.cancelBubble=!0,t.evt.preventDefault?t.evt.preventDefault():t.evt.returnValue=!1);var i=_makeClosure(t&&t.callback||exports.run,arguments);require([“trjs!ta/Core/TA.Load”],function(t){try{t.load(e,i)}catch(t){tracks.error(t,”ta.run – “+e)}})}catch(t){tracks.error(t,”ta.run – “+e)}return!1};var OneTimeFunctionQueue=function(e,t,n){function r(){u=!0,c()}var o,a=[],u=!!n,i=function(n,r){o&&o.start();try{n()}catch(n){try{tracks.error(n,”OneTimeFunctionQueue “+e+(t?”-after”:””)+(r?”-“+r:””))}catch(e){}}o&&o.end(r)},c=function(){if(a.sort(function(e,t){return e.priority-t.priority||e.subpriority-t.subpriority}),t){var e=1;a.forEach(function(t){setTimeout(i.bind(null,t.func,t.name),e++)})}else a.forEach(function(e){i(e.func,e.name)});a=[]};null!=e&&(window.addEventListener?window.addEventListener(e,r,!1):window.attachEvent&&(“DOMContentLoaded”==e?window.attachEvent(“onload”,r):”load”==e?window.attachEvent(“on”+e,function(){setTimeout(r,1)}):window.attachEvent(“on”+e,r))),this.addToQueue=function(t,n,r){return t?(“string”==typeof n&&(r=n,n=!1),void(u?i(t,r):(n=n||100+a.length,a.push({func:t,priority:n,name:r,subpriority:a.length})))):void tracks.error(null,”addToQueue for “+e+” queue – no function”)},this.executeQueue=function(){c()}},loaded=”undefined”!=typeof document&&”complete”===document.readyState,ready=”undefined”!=typeof document&&”interactive”===document.readyState||loaded,_readyQ=new OneTimeFunctionQueue(“DOMContentLoaded”,!1,ready),_loadQ=new OneTimeFunctionQueue(“load”,!1,loaded),_afterLoadQ=new OneTimeFunctionQueue(“load”,!0);ready||_loadQ.addToQueue(function(){_readyQ.executeQueue()},-999999999,”checkReadyQueue”),_loadQ.addToQueue(function(){_afterLoadQ.executeQueue()},999999999,”afterLoadQueue”),exports.queueForReady=function(e,t,n){_readyQ.addToQueue(e,t,n)},exports.queueForLoad=function(e,t,n){_loadQ.addToQueue(e,t,n)},exports.queueForAfterLoad=function(e,t){_afterLoadQ.addToQueue(e,0,t)},exports.fn=function(fn){switch(typeof fn){case”function”:return fn;case”string”:var f=!1;try{f=eval(fn)}catch(e){}if(!f){var ns=fn.split(“.”),n=ns.pop();try{ns=eval(ns.join(“.”)),f=ns&&ns._magic&&ns._magic.partial(n)}catch(e){}}if(f&&”function”==typeof f)return f}return null},exports.fireClick=function(e){if(document.createEvent){var t=document.createEvent(“MouseEvents”);t.initEvent(“click”,!0,!1),e.dispatchEvent(t)}else document.createEventObject?e.fireEvent(“onclick”):”function”==typeof e.onclick&&e.onclick()},exports.throttle=function(e,t,n,r){function o(){delete m_throttles[t],a.cb()}var a,u=(new Date).getTime();if(t in m_throttles){if(a=m_throttles[t],u-a.lastResetr?o():(a.lastReset=u,a.timeout=setTimeout(o,n))};var m_throttles={};return nsExporter.exportTo(exports,ta),exports}); define(“ta/Core/TA.LocalStorage”,[“vanillajs”,”common/trackingStreams”,”ns-exporter”],function(e,t,n){“use strict”;var r=!1,o=”taLsTest”,i=”1″,a=”TALocalStorageCurrentSessionId”,u=!1,s=”session-“,l=!1,c=[],f=[],v=[],g=function(){return!(!u&&!l)},m=function(e){return!!g()||(t.error(null,”Accessing localStorage session cookie before session logic intialized: “+e),!1)},S=function(e){return d(e,”value”)},y=function(e){return d(e,”now”)},d=function(e,t){if(!t)return null;try{var n,o=JSON.parse(r.getItem(e)||”0″);return o?o.ttl&&o.ttl+o.now<(new Date).getTime()?(r.removeItem(e),null):o.hasOwnProperty(t)?(r.setItem("512",o[t]),n=r.getItem("512"),r.removeItem("512"),n):null:null}catch(e){}return null},h=function(e,t){try{var n=JSON.parse(e||"0");return n&&n.hasOwnProperty(t)?n[t]:null}catch(e){return null}},w=function(e){try{var t=JSON.parse(r.getItem(e)||"0");return t?t.ttl&&t.ttl+t.now<(new Date).getTime()?(r.removeItem(e),null):t.value:null}catch(e){}return null},I=function(e){try{r.removeItem(e)}catch(e){}},p=function(e,t){var n=y(e);if(t&&n&&n<(new Date).getTime()-t)try{r.removeItem(e)}catch(e){}},O=function(e){try{var t=r.getItem(e);if(null!==t&&void 0!==t)return!0}catch(e){}return!1},T=function(e,t,n){try{r.setItem(e,JSON.stringify({ttl:n||0,now:(new Date).getTime(),value:t}))}catch(e){}},k=function(e){if(l=!0,!e)return t.error(null,"Attempting to initialize localStorage with invalid sesion key: "+e),!1;if(!V())return!1;if(u=S(a),!u||u!=e){u=e,T(a,u);var n=S("latestPageServlet");n&&T("sessionEntryServlet",n),E(),O(a)&&require.defined("ta/Core/TA.Store")&&require("ta/Core/TA.Store").store("isFirstSessionPageView",!0)}for(var r=0;r0;if(this.delegate&&this.delegate.hasListeners)return this.delegate.hasListeners(e)}return!1},t.prototype.emit=function(e,t){if(this.events[e]){var r=Array.prototype.slice.call(arguments,1);this.events[e].slice(0).forEach(function(t){if(t)try{t.apply(this,r)}catch(t){“string”==typeof t&&(t=new Error(t));var i=”Error in event handler for “+e;if(require.defined(“ta/util/Error”))require(“ta/util/Error”).record(t,i);else{var s=require.defined(“ta”)&&require(“ta”);s&&s.log&&s.log.error?s.log.error(t,i):s&&s.m&&s.m.recordJSError?s.m.recordJSError([t,i]):”undefined”!=typeof console&&(console.error||console.log)(i,t)}}},this)}else this.delegate&&this.delegate.emit&&this.delegate.emit.apply(delegate,arguments);return this},t}); define(“ta/registration/RegEvents”,[“mixins/Events”],function(e){return new e(“success”)}); define(“post_rollup_globals_shim”,[“page-model”,”ns-exporter”,”common/trackingStreams”,”ta/registration/RegEvents”],function(e,r,t,i){var n=e.session;i.on(“success”,function(){e.session.loggedIn=!0});var o={uid:n.uid,userLoggedIn:n.loggedIn,userSecurelyLoggedIn:n.securelyLoggedIn};r.exportTo(o,”ta”);try{var s=XMLHttpRequest.prototype,u=s.send;s.send=function(e){try{var r=new RegExp(“^(/[^/]|(http(s)?:)?//”+window.location.hostname+”)”);if(this._url&&r.test(this._url)){var t=n.uid;if(require.defined(“redux-init”)){var i=require(“redux-init”);i&&i.tracking&&i.tracking.uid&&(t=i.tracking.uid)}this.setRequestHeader(“X-Puid”,t)}}catch(e){}u.call(this,e)};var a=s.open;s.open=function(e,r){return this._url=r,a.apply(this,arguments)}}catch(e){t.error(e,”Error intercepting AJAX for tracking”)}}); define(“ta/Core/TA.PageVisibility”,[“vanillajs”],function(e){“use strict”;function n(){a=!1;for(var e in s)s.hasOwnProperty(e)&&s[e]()}function t(){a=!0;for(var e in f)f.hasOwnProperty(e)&&f[e]()}function d(){var e=document[c]?f:s;for(var n in e)e.hasOwnProperty(n)&&e[n]()}function i(){“undefined”==typeof document[c]?document.addEventListener?(document.addEventListener(“focus”,n,!1),document.addEventListener(“blur”,t,!1)):(document.attachEvent(“onfocus”,n),document.attachEvent(“onblur”,t)):document.addEventListener(r,d),m=!0}function o(){“undefined”==typeof document[c]?document.removeEventListener?(document.removeEventListener(“focus”,n,!1),document.removeEventListener(“blur”,t,!1)):(document.detachEvent(“onfocus”,n),document.detachEvent(“onblur”,t)):document.removeEventListener(r,d),a=!1,m=!1}function u(e,n){var t=e.indexOf(n);return t>=0?e.splice(t,1):null}var c,r,f=[],s=[],m=!1,a=!1;return”undefined”!=typeof document.hidden?(c=”hidden”,r=”visibilitychange”):”undefined”!=typeof document.mozHidden?(c=”mozHidden”,r=”mozvisibilitychange”):”undefined”!=typeof document.msHidden?(c=”msHidden”,r=”msvisibilitychange”):”undefined”!=typeof document.webkitHidden&&(c=”webkitHidden”,r=”webkitvisibilitychange”),{addFocusListener:function(e){s.push(e),m||i()},addBlurListener:function(e){f.push(e),m||i()},removeFocusListener:function(e){e?u(s,e):s.length=0,0===s.length&&0===f.length&&o()},removeBlurListener:function(e){e?u(f,e):f.length=0,0===s.length&&0===f.length&&o()},hidden:function(){return”undefined”!=typeof document.hidden?document.hidden:a}}}); define(“utils/bounceRateUtils”,[“ta/Core/TA.PageVisibility”,”common/trackingStreams”,”ta/Core/TA.LocalStorage”,”ta/util/SessionStorage”,”page-model”],function(e,t,n,r,a){“use strict”;function i(t){if(t&&t.length&&n.canUseSession()&&r.canUseSessionStore()){S=t;var i=c(t),f=a.session.hasReferral,g=f&&a.session.isExternalReferral,j=!window.performance||!performance.navigation||0===performance.navigation.type,v=!f&&j;if(v||g||!i)o(t),s(t,0);else if(!O(S)){var d=r.getObject(h);null!==d&&0!==d||(d=Date.now()-r.getObject(m)),r.setObject(m,Date.now()),s(t,d)}O(S)||(e.addFocusListener(l),e.addBlurListener(b),n.onValueChange(w,u))}}function o(e){r.setObject(d,v()),r.setObject(m,Date.now()),r.setObject(h,0);for(var t=0;t0&&(n=n.substring(0,n.indexOf(“:”))),n}function l(){var e=Array.prototype.slice.call(arguments);require([“trjs!ta/p13n/placements-ajax”],function(n){n.loadDynamicPlacement.apply(n,e)})}function c(){var e=Array.prototype.slice.call(arguments);require([“trjs!ta/p13n/placements-ajax”],function(n){n.loadDynamicPlacement.apply(n,e)})}var i=new t(function(e){var n={};if(e)for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a]);return n.requestAJAXPlacement||(n.requestAJAXPlacement=function(e,a,t,r){require([“trjs!ta/p13n/placements-ajax”],function(l){l.requestAJAXPlacement(n,e,a,t,r)})}),{placement:n}}),o={“define”:i.define,”redefine”:i.redefine,”load”:i.load,”evCall”:i.evCall,”loadDynamicPlacement”:l,”enableAutoRefresh”:c,”getTemplateBaseFromPlacementName”:r};return n.exportTo(o,”ta.p13n.placements”),o}); define(“utils/object/set-props”,[“vanillajs”],function(){“use strict”;return function(n,r){for(var t in r)r.hasOwnProperty(t)&&(n[t]=r[t]);return n}}); define(“utils/object/shallow-copy”,[“utils/object/set-props”,”vanillajs”],function(t){“use strict”;return function(r){var e;if(“object”!=typeof r||null===r)return r;if(r.constructor===Array){e=[];for(var n=0;n1?n-1:0),i=1;i1?t-1:0),r=1;r2?r-2:0),u=2;u2?r-2:0),u=2;u1?t-1:0),r=1;r=0&&e.push(n);return e}function a(t){var e=ta.page.getDates(t);return e&&e[0]?new n(e[0]):null}var u=”zu”,T={CHECKIN:{queryString:null,pathString:null},CHECKOUT:{queryString:null,pathString:null},STAYDATES:{children:[“CHECKIN”,”CHECKOUT”],queryString:”staydates”,pathString:u+”s”},EATERY:{queryString:”eaterydate”,pathString:u+”r”},DEPARTURE:{queryString:null,pathString:null},RETURN:{queryString:null,pathString:null},ROUNDTRIP:{children:[“DEPARTURE”,”RETURN”],queryString:”rtdates”,pathString:u+”t”},ONEWAYFLIGHT:{queryString:”oneway”,pathString:u+”o”},LEG_1:{queryString:”leg1date”,pathString:u+”1″},LEG_2:{queryString:”leg2date”,pathString:u+”2″},LEG_3:{queryString:”leg3date”,pathString:u+”3″},ATTRACTION:{queryString:”attrdate”,pathString:u+”a”},ATTRACTION_FROM:{queryString:null,pathString:null},ATTRACTION_TO:{queryString:null,pathString:null},ATTRACTIONRANGE:{children:[“ATTRACTION_FROM”,”ATTRACTION_TO”],queryString:”attrrange”,pathString:u+”e”},VPDATES:{children:[“VPDEPARTURE”,”VPRETURN”],queryString:”vpdates”,pathString:null},VPDEPARTURE:{queryString:null,pathString:null},VPRETURN:{queryString:null,pathString:null}};return T.getStartDateType=function(t){var e=i(t);if(0==e.length){var n=T[t].children;return n&&n.length>0?n[0]:t}return T[e[0]].children[0]},T.getEndDateType=function(t){var e=i(t);if(0==e.length){var n=T[t].children;return n&&n.length>0?n[n.length-1]:t}var r=T[e[0]];return r.children[r.children.length-1]},T.isChildDateType=function(t){return i(t).length>0},T.isSingleDateType=function(t){var e=T[t];return!(T.isChildDateType(t)||e&&e.children&&e.children.length>0)},T.getParents=i,T.isHotelDateType=function(t){return i(t).indexOf(“STAYDATES”)>=0},T.isRoundTripDateType=function(t){return i(t).indexOf(“ROUNDTRIP”)>=0},T.isAttractionRangeDateType=function(t){return i(t).indexOf(“ATTRACTIONRANGE”)>=0},T.isVacationPackagesDateType=function(t){return i(t).indexOf(“VPDATES”)>=0},T.allowsSameDayRange=function(t){return T.isAttractionRangeDateType(t)||T.isRoundTripDateType(t)},T.isMultiCityDateType=function(t){return”LEG_1″==t||”LEG_2″==t||”LEG_3″==t},T.isStartDateType=function(t){var e=i(t);return 0!=e.length&&0==T[e[0]].children.indexOf(t)},T.isEndDateType=function(t){var e=i(t);if(0==e.length)return!1;var n=T[e[0]];return n.children.indexOf(t)==n.children.length-1},T.getStartDate=function(t){var e=T.getStartDateType(t);return null==e?ta.page.getDates(t)[0]:ta.page.getDates(e)[0]},T.getEndDate=function(t){var e=T.getEndDateType(t);return null==e?ta.page.getDates(t)[0]:ta.page.getDates(e)[0]},T.getMinEnabledDate=function(t){if(T.isHotelDateType(t)||T.isRoundTripDateType(t)){var i=e.retrieve(“multiDP.minCheckInDate”);if(i)return new n(r.fromString(i))}else{if(“LEG_1″==t)return a(“ONEWAYFLIGHT”);if(“LEG_2″==t)return a(“LEG_1”)||a(“ONEWAYFLIGHT”);if(“LEG_3″==t)return a(“LEG_2”)||a(“LEG_1”)||a(“ONEWAYFLIGHT”);if(“ATTRACTION_TO”==t)return a(“ATTRACTION_FROM”)}return null},T.flattenType=function(t){var e=T[t];return e?e.children?e.children.slice(0):[t]:[]},T.getCorrespondingDateType=function(t){switch(t){case”CHECKIN”:return”CHECKOUT”;case”CHECKOUT”:return”CHECKIN”;case”DEPARTURE”:return”RETURN”;case”RETURN”:return”DEPARTURE”;case”ATTRACTION_FROM”:return”ATTRACTION_TO”;case”ATTRACTION_TO”:return”ATTRACTION_FROM”;case”VPDEPARTURE”:return”VPRETURN”;case”VPRETURN”:return”VPDEPARTURE”;default:return null}},T}); define(“mixins/page-dates/Base”,[“vanillajs”,”ta”,”mixins/page-dates/Utils”,”mixins/page-dates/DateTypeStore”],function(e,r,t,n){“use strict”;function a(e){return e instanceof Date&&!isNaN(e.getTime())}function i(e){if(!n[e])throw”Invalid date type: “+e}function s(e){var r=[];for(var t in n)n.hasOwnProperty(t)&&n[t].children&&n[t].children.indexOf(e)>=0&&r.push(t);return r}function o(e,r){var a=n[e],i=””;if(a.children)for(var s=0,o=a.children.length;s0?”_”:””)+t.dateToIso(r[a.children[s]])}else{if(“_”===r[e])return”_”;i+=t.dateToIso(r[e])}return i}function h(e,r){var t=n[e];if(t.children){for(var a=0,i=t.children.length;a=n}}function r(n){return function(){return t()n()},portrait:function(){return n()>t()},currentBreakpoints:function(){return u.filter(function(t){return”function”==typeof c[t]&&c[t]()})},is:function(t,n,e){var r=”function”!=typeof t&&c[t]?c[t]:t;return function(t,i){return r()?”undefined”!=typeof t?t:n:”undefined”!=typeof i?i:e}}};return c}); define(“mixins/page-dates/pop-calendar”,[“ta”,”common/trackingStreams”,”common/Radio”,”ta/support/Qualtrics”,”ta/Core/TA.Store”,”ta/Core/TA.LocalStorage”,”ta/util/SessionStorage”,”utils/responsive”],function(e,t,n,r,i,a,o,s){function d(){j=!1}function u(t){b=!!t.popFromDefault,D=!!t.popFromVisibleOnly,P=t.popFromVisibleOnlyBreakpoint,k=!!t.datesWereDefaulted,y=t.popCalendarType,T=!!t.hasMetaMarketingDefaultDates,E=!!t.qualtricsSurveyEnabled,O=!!t.isDetailPage,A=”Vacation_Packages”===window.pageServlet,e.page.on(“datepickerRejected”,d),e.page.on(“dateSelected”,d)}function c(e){if(a.enabled&&a.get(“popCalendarAfterRedirectedFromIB”))return a.remove(“popCalendarAfterRedirectedFromIB”),!0;if(!k||R)return!1;if(i.retrieve(“suppressCalendarPop”))return!1;if(!y)return!1;if(E&&r&&(r.canDisplay()||r.seenThisPageView())){if(!require.defined(“page-model”))return!1;if(require(“page-model”).isMobile)return!1}if(e&&D&&(!P||s.is(P,!0,!1)())&&!g(e))return!1;switch(y){case”doNot”:return!1;case”untilClosedPerServletType”:return!l();case”untilClosed”:return!p();case”always”:return!0}return b&&k}function p(){return o.canUseSessionStore()&&!!o.getObject(C)}function l(){var e=o.canUseSessionStore()&&o.getObject(C);return e&&!!e[A?”vp”:O?”detail”:”list”]}function f(){if(o.canUseSessionStore()){var e=o.getObject(C)||{};e[A?”vp”:O?”detail”:”list”]=!0,o.setObject(“pop-calendar-dismissed”,e),n(“pop-calendar”).emit(“dismissed”)}}function g(e){var t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function m(){return T}function S(n){j=!0,e.page.gatherDates(n),R=!0,t.trackEvent("DATEPICKER","auto-popped-calendar-shown",window.pageServlet),t.trackEvent("calendar","in_view","autopop")}function v(){return R}function h(){return j}function w(){k=!1}var C="pop-calendar-dismissed",b=!1,D=!1,P="",k=!1,E=!1,T=!1,y="",O=!1,R=!1,j=!1,A=!1;return{init:u,shouldPop:c,shouldPopMetaMarketing:m,popCalendar:S,wasPoppedThisPageLoad:v,isShowing:h,setUserEnteredDates:w,setDismissedThisSession:f}}); define("mixins/page-dates/default-dates",["ta","mixins/mixin","mixins/Events","mixins/page-dates/pop-calendar","mixins/page-dates/DateTypeStore","common/trackingStreams","vanillajs","ta/Core/TA.Event"],function(e,t,a,n,i,o,d,r){"use strict";function s(e){n.init(e),g=!!e.datesWereDefaulted,f=!!e.refreshLocalStorage,D=e.localStorageTTL,m=!0,S.emit("init")}function p(e){"function"==typeof e&&(m?e():S.on("init",e))}function u(t,a,d){function s(t){n.wasPoppedThisPageLoad()&&(S.emit("poppedCalendarDismissed",t),n.setDismissedThisSession(),e.page.off("datepickerRejected",s))}function p(){if(f&&(g&&o.trackEvent("DATEPICKER","undated_to_default_dated"),!a)){var t=n.shouldPop(f);(t||n.shouldPopMetaMarketing())&&(t&&S.emit("popFromDefault"),e.page.on("datepickerRejected",s),n.popCalendar(f))}}var u=d?d:"STAYDATES";if(e.page.usingUnifiedDates){e.page.hasDates(u)||e.page.clearDates(u),c=e.page.getDates(i.getStartDateType(u))[0],l=e.page.getDates(i.getEndDateType(u))[0];var f=t.querySelector('[data-datetype="'+i.getStartDateType(u)+'"]');e.page.on("dateSelected",function(a,i,d){var r,p=c&&l,f=e.page.getDates(u)[0],D=e.page.getDates(u)[1];if(t.contains(a)&&(!p&&e.page.hasDates(u)?r="undated_to_manually_dated":f==c&&D==l||(n.setUserEnteredDates(),e.page.off("datepickerRejected",s),g?(r="default_dated_to_manually_dated",g=!1):r="manually_dated_to_manually_dated"),c=f,l=D,r)){var m="";a&&a.getAttribute("data-picker-location")&&(m=a.getAttribute("data-picker-location"),document.querySelector("#PERSISTENT_TRIP_SEARCH_BAR.fixed")&&(m+="_persistent")),o.trackEvent("DATEPICKER",r,m)}}),"loading"===document.readyState?window.addEventListener("DOMContentLoaded",p):p(),r.on("specialOfferClosed",function(){a||f&&n.shouldPop(f)&&n.popCalendar(f)})}}var c,l,g=!1,f=!1,D=0,m=!1,S={init:s,onInit:p,apply:u,usingDefaults:function(){return g},shouldRefreshLocalStorage:function(){return f},getLocalStorageTTL:function(){return D}};return t(S,new a("popFromDefault"))}); define("ta/util/Deferred",["vanillajs","ns-exporter"],function(e,r){"use strict";function t(e){l.prototype[e]=function(r,t){return i(this,e,t?r.bind(t):r)}}for(var n=["success","failure","always","progress"],u={"resolved":["success","always"],"rejected":["failure","always"]},l=function(){},a=0;ae}function u(){return a.adults=97&&e=65&&e=48&&e”,0,0,0,0,0,0,”`”,”__2D__”,”X”,”<","slot",0,"ShowUrl","Owners",0,"[","q",0,"MemberProfile",0,"ShowUserReviews",'"',"Hotel",0,0,"Expedia","Vacation","Discount",0,"UserReview","Thumbnail",0,"__2F__","Inspiration","V","Map",":","@",0,"F","help",0,0,"Rental",0,"Picture",0,0,0,"hotels",0,"ftp://"],"x":[0,0,"J",0,0,"Z",0,0,0,";",0,"Text",0,"(","x","GenericAds","U",0,"careers",0,0,0,"D",0,"members","Search",0,0,0,"Post",0,0,0,"Q",0,"$",0,"K",0,"W",0,"Reviews",0,",","__2E__",0,0,0,0,0,0,0,"{","}",0,"Cheap",")",0,0,0,"#",".org"],"z":[0,"Hotels",0,0,"Icon",0,0,0,0,".net",0,0,"z",0,0,"pages",0,"geo",0,0,0,"cnt","~",0,0,"]","|",0,"tripadvisor","Images","BookingBuddy",0,"Commerce",0,0,"partnerKey",0,"area",0,"Deals","from","\",0,"urlKey",0,"'",0,"WeatherUnderground",0,"MemberSign","Maps",0,"matchID","Packages","E","Amenities","Travel",".htm",0,"!","^","G"]},r="",a=0;a=200&&this.status=0&&w&&w>0)return H*w>=6e4?-1:(H*(w+1)>=6e4&&(T=!0),H);var e=w||0;return 0<=e&&e0?w:w+1):(o.fireEvent(e,{},-1),l.reply("initialPollComplete",function(){return!0}),l.emit("polling_complete"),o.fireEvent(R+"-polling-complete"))}function d(){N=N>0?N+1:1}function f(){if(N>1)return void(N-=1);N=0;var e=g||[];g=null;for(var t;t=e.shift();)try{t()}catch(e){}}function v(){return y}e=e||{};var h,m,g,w=1,y=0,E=!1,T=!1,x=0,P=null,S={},j=!1,A={},b={},q={},M=!!e.evaluateScripts,R=e.placement||”page”,N=0,H=e.pollTimeoutOverride||-1,L=Date.now(),C=e.tracker,O=(e.inspector,s[e.pollIntervalName||”normal”]||s.normal),X=function(e){return e?decodeURIComponent(e.replace(/+/g,” “)):e},U=function(e){var t,n;h=e.split(“#”)[0],m=h.split(“?”)[0],t=h.split(“?”)[1]||””,n=t.split(“&”);for(var r=0;r=0;t–){var n=e[t];delete A[n],E=!0}},Q=function(e,t){if(!t)return!1;for(var n=!1,r=Object.keys(t||{}),o=r.length-1;o>=0;o–){var a=r[o];e[a]!==t[a]&&(n=!0),e[a]=t[a]}return n&&(E=!0),n},z=function(e,t){if(!t)return!1;for(var n=Object.keys(t||{}),r=n.length-1;r>=0;r–){var o=n[r];e[o]=t[o]}},B=function(){$(!1)},G=function(e){var t,n,r,o=(e&&e.getAttribute(“data-paramNames”)||””).split(“,”);for(t=0;t=0?(j=!0,E&&y++,E=!1,r=++x,window.setTimeout(function(){ee(r)},i),a&&p()):(o.fireEvent(“hac-could-not-complete”),ne())}},ee=function(e){if(!P&&j&&e===x){if(N>0)return g=g||[],g.push(ee.bind(this,e)),void(window.console&&console.log&&console.log(“request held while updates are paused”));var r=++w,o=t.extend({},A,b),a=null;o.reqNum=r,o.isLastPoll=T,o.paramSeqId=y,o.waitTime=Date.now()-L,C&&C.start(r),q.UNKNOWN||(a=[],t.each(q,function(e,t){t&&a.push(e)}),o.changeSet=a.toString()),i.session.uid&&(o.puid=i.session.uid),j=!1,b={},S=q,q={};var l;try{l=new XMLHttpRequest}catch(e){try{l=new ActiveXObject(“MSXML2.XMLHTTP”)}catch(e){try{l=new ActiveXObject(“Microsoft.XMLHTTP”)}catch(e){throw new Error(“Can’t create XMLHttpRequest or similar”)}}}l.onreadystatechange=c.bind(l,r),l.open(“POST”,m,!0),”responseType”in l&&(l.responseType=”document”);try{l.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded; charset=utf-8″)}catch(e){}try{l.setRequestHeader(“X-Requested-With”,”XMLHttpRequest”)}catch(e){}try{l.setRequestHeader(“Accept”,”text/html, */*”)}catch(e){}l.send(n.toQueryString(o)),P=l}},te=function(e){if(N>0)return g=g||[],g.push(te.bind(this,e)),void(window.console&&console.log&&console.log(“update held while updates are paused”));var t;”string”==typeof e?(t=document.createElement(“div”),t.innerHTML=e):t=e;var n=j;if(P=null,S={},M){var r=t.querySelectorAll(“script”);r=r?Array.prototype.slice.call(r):[];for(var i=0;i0)return g=g||[],g.push(ne.bind(this)),void(window.console&&console.log&&console.log(“error held while updates are paused”));var e=j;P=null,S={},e?ee(++x):o.fireEvent(R+”-repoll-failed”),p()};return o.on(R+”-repoll-not-done”,B),o.on(R+”-repoll-ajax-params”,G),U(e.pageUrl||window.location.href),e.ajaxParams&&(A=t.extend(A,e.ajaxParams)),setTimeout(function(){J()||o.fireEvent(R+”-polling-complete”)},0),{setPageUrl:U,repoll:D,pause:d,resume:f,getAjaxParams:W,setAjaxParams:I,setAjaxParamsNoPoll:k,setAjaxParamsNoPollForSP:F,setOneTimeParams:K,removeAjaxParams:_,setNotDone:B,isUpdatePending:J,getLastRequestNum:V,setScriptsEval:Y,isScriptsEvalEnabled:Z,fireTargetEvents:a,getParamSeqId:v}};return c}); define(“commerce/offerclickEvents”,[“mixins/Events”,”vanillajs”],function(e){“use strict”;return new e(“beforeClick”,”afterClick”)}); define(“utils/stopevent”,[“vanillajs”],function(){return function(e){return e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,e.preventDefault?e.preventDefault():e.returnValue=!1),!1}}); define(“utils/waiton”,[“vanillajs”],function(){return function(n,i,t){function o(){–u0&&(e=setTimeout(function(){u=0,o()},t)))):void i()}}); define(“ta/popups/PollForPartnerLoad”,[“common/trackingStreams”],function(t){var e=function(n,E,r,a,o){n&&setTimeout(function(){var C=null,c=(new Date).getTime()-E.getTime();try{C=n.document}catch(t){}C?c>2e4?t.trackEvent(“COMMERCE_CLICK”,”PROVIDER_TIMEOUT”,r||””,c):n.closed?t.trackEvent(“COMMERCE_CLICK”,”PROVIDER_CLOSED”,r||””,c):e(n,E,r,a,o):t.trackEvent(“COMMERCE_CLICK”,”PROVIDER_LOADED”,(o||window.pageServlet||””)+”|”+(a||””)+”|”+(r||””),c)},100)};return e}); define(“ta/Browser”,[“vanillajs”,”ns-exporter”],function(e,n){var t,r={},i=function(){return navigator.userAgent.indexOf(“MSIE 10.0”)>=0},o=r.isIE11orHigher=function(){return navigator.userAgent.toLowerCase().indexOf(“trident/7.”)>-1||navigator.userAgent.toLowerCase().indexOf(“msie 11.”)>-1};return r.isIE9orHigher=function(){return navigator.appVersion.indexOf(“MSIE 9”)>=0||i()||o()},r.isIE10Metro=function(){return i()&&r.isIEMetro()},r.isIEMetro=function(){var e=null,n=o(),t=n?127:0,r=window.innerWidth==screen.width&&screen.height-window.innerHeight===t;try{e=!!new ActiveXObject(“htmlfile”)}catch(n){e=!1}return!e&&r&&(n||i())},r.isIE=function(){return navigator.userAgent.indexOf(“MSIE”)>=0},r.isChrome=function(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)},r.getFlashVersion=function(){if(“number”!=typeof t){var e;try{e=navigator.plugins[“Shockwave Flash”].description}catch(n){try{e=new ActiveXObject(“ShockwaveFlash.ShockwaveFlash”).GetVariable(“$version”)}catch(e){}}var n=(e||”0 r0″).match(/d+/g);t=Number(n[0]||”0.”+n[1])||0}return t},r.isChromeIncognito=function(e){var n=window.RequestFileSystem||window.webkitRequestFileSystem;return n&&”function”==typeof n?void n(window.TEMPORARY,100,function(){e(“normal”)},function(){e(“incognito”)}):void e(“undetermined”)},n.exportTo(r,”ta.browser”),r}); define(“utils/json-to-url”,[“vanillajs”],function(){“use strict”;return function(n){return n?Object.keys(n).map(function(e){return encodeURIComponent(e)+”=”+encodeURIComponent(n[e])}).join(“&”):””}}); define(“mobile/lite/ajax-request”,[“utils/json-to-url”,”vanillajs”],function(t){function e(t){var e=document.createElement(“a”);return e.href=t,e.protocol!==window.location.protocol||e.host!==window.location.hostname}return function(s,o){“object”==typeof s&&(o=s,s=o.url),o=o||{};var n=o.method||o.type||”GET”,r=”string”==typeof o.data?o.data:t(o.data);return new Promise(function(t,a){var i=new XMLHttpRequest;i.onreadystatechange=function(){this.readyState===XMLHttpRequest.DONE&&(200===this.status?(o.success&&o.success(this.responseText,this.status,i),t(this.responseText)):(o.error&&o.error(i,this.status,this.statusText),a(this.responseText)),o.complete&&o.complete(i,this.statusText))},”get”==n.toLowerCase()&&”string”==typeof r&&r.length>0&&(s+=(“?”==r[0]?””:”?”)+r,r=null),i.open(n,s,!o.synchronous),i.setRequestHeader(“Content-type”,”application/x-www-form-urlencoded”),e(s)||i.setRequestHeader(“X-Requested-With”,”XMLHttpRequest”),i.send(r)})}}); define(“utils/cookieutils”,[“vanillajs”,”mobile/lite/ajax-request”],function(t,e){“use strict”;var o=function(t){return”undefined”!=typeof t&&null!==t},n=function(t){return t.replace(/([-.*+?^${}()|[]/\])/g,”\$1″)},i=function(){var t=window.location.host.match(/.tripadvisor..*/);return null!=t?t=t[0]:null},a=function(t,e,n){if(o(n.doNotEscape)&&n.doNotEscape||(e=encodeURIComponent(e)),e+=n.domain?”; domain=”+n.domain:”; domain=”+i(),n.path&&(e+=”; path=”+n.path),n.duration){var a=new Date;a.setTime(a.getTime()+1e3*n.duration),e+=”; expires=”+a.toGMTString()}n.secure&&(e+=”; secure”);var r=”%1%”;o(n.ignoreVersion)&&n.ignoreVersion&&(r=””),document.cookie=t+”=”+r+e};return{addPidToCookie:function(t){o(t)&&0!==t.length&&a(“NPID”,t,{path:”/”,duration:5,ignoreVersion:!0})},roybatty:function(){var t,o=i(),n=window.taSecureToken;if(window.taEarlyRoyBattyStatus)window.taEarlyRoyBattyStatus>1&&ta&&ta.trackEventOnPage&&ta.trackEventOnPage(“early_roy_batty”,”confirm”,””,0,!0);else if(t=this.getCookie(“roybatty”)){var a=t.split(“,”);if(a&&2==a.length){var r=parseInt(a[1],10);document.setCookie(“roybatty”,n+”,”+r,{domain:o,ignoreVersion:!0,path:”/”})}}else document.setCookie(“roybatty”,n+”,1″,{domain:o,ignoreVersion:!0,path:”/”}),e({method:”POST”,url:”/CookiePingback”})},getCookie:function(t){var e=document.cookie.match(“(?:^|;)\s*”+n(t)+”=([^;]*)”);return e?(e=e[1],0===e.indexOf(“%1%”)&&(e=e.substring(3)),decodeURIComponent(e)):null},setCookieInSeconds:a}}); define(“commerce/cookieSetter”,[“vanillajs”,”utils/cookieutils”],function(e,i){function o(){var e=require.defined(“page-model”)&&require(“page-model”);e&&e.session.uid&&i.setCookieInSeconds(n,e.session.uid,{duration:10,ignoreVersion:!0})}var n=”comm_puid”;return o}); define(“commerce/offerclick”,[“ta”,”mixins/mixin”,”commerce/offerclickEvents”,”utils/urlutils”,”utils/stopevent”,”utils/waiton”,”ta/popups/PollForPartnerLoad”,”ta/Browser”,”ta/util/Cookie”,”commerce/cookieSetter”],function(e,t,r,o,n,i,c,a,l,u){“use strict”;function f(e){if(“string”!=typeof e)return e;var t=o.asdf(e.trim()).replace(/&/g,”&”);if(“undefined”!=typeof window&&window.crPageServlet&&(t=t.replace(E,”$1from=HotelDateSearch_”+crPageServlet),E.test(t)||(t+=”&from=”+crPageServlet)),”undefined”!=typeof document&&document.location&&document.location.href){var r=o.getUrlPageLoc(document.location.href);r&&(t+=”&pageLocId=”+r)}var n=o.getUrlQueryArgs(t);return t=t.replace(P,””),{url:t,isBooking:t.indexOf(“/StartBooking”)>=0||t.indexOf(“/MobileHotelBookingRoomSelection”)>=0,ttP:n.tp,ttIK:n.ik,ttAOK:n.aok,slot:n.slot,providerName:n.p,ik:n.ik,locId:n.d||n.geo,area:n.area,contentId:n.src_0||n.src,trackingContext:n.btc,selectedPrice:n.priceShown,offerStr:n.gosox||””,openBehavior:n.ob}}function d(e){“function”==typeof e&&I.push(e)}function s(){_=!0}function m(t){return”same_tab”!==t.openBehavior&&((!t.isBooking||!a.isIE10Metro())&&”undefined”!=typeof e)}function p(){try{document.domain=document.domain}catch(e){return!0}return!1}function v(e,t){t=f(t);var r=p(),o=window.open(r?t.url:””,”_blank”);return!o&&”undefined”!=typeof Browser&&Browser.ie&&t.isBooking?(l.setPIDCookie(38822),void k(e,t)):(r||(o?o.location=t.url:window.location=t.url),I.forEach(function(r){r(e,t,function(){})}),void c(o,new Date,t.providerName,t.slot))}function k(t,r){r=f(r);var o=250;i(I.map(function(e){return e.bind(null,t,r)}),function(){“undefined”!=typeof e&&e.retrieve&&e.retrieve(“ta.isIE11orHigher”)?window.open(r.url,”_self”,null,!1):window.location.href=r.url},o)}function g(t,o,i,c,a){if(t&&!c&&n(t),i=f(i),_){if(i&&B===i.offerStr)return!1;setTimeout(function(){B=null},1e3),B=i&&i.offerStr}if(r.emit(“beforeClick”,i),e.store&&e.retrieve&&o&&i&&i.ttIK&&i.selectedPrice){var l=e.retrieve(“CLICK_PRICE_DOUBLE_CHECK”);l||(l={}),l[i.ttIK]=String(i.selectedPrice),e.store(“CLICK_PRICE_DOUBLE_CHECK”,l)}return require.defined(“ta/Core/TA.Event”)&&setTimeout(function(){try{require(“ta/Core/TA.Event”).fireEvent(“metaLinkClick”,o,i.isBooking?”TripAdvisor”:i.providerName,i.area,i.locId,i.contentId,”new_tab”,i.slot),i.isBooking&&require(“ta/Core/TA.Event”).fireEvent(“ibOfferClick”,o)}catch(e){require.defined(“ta/util/Error”)&&require(“ta/util/Error”).record(e,”Commerce click tracking failed”,null,{servlet:window.pageServlet,url:i.url,area:i.area})}},300),(!b||!b(i))&&(u(),”same_tab”===a?k(o,i):m(i)||”new_tab”===a?v(o,i):k(o,i),r.emit(“afterClick”,i),!1)}function w(e){b=e}function C(e,t){var r=t.getAttribute(“data-clicktoken”);r&&require([“ta/page”],function(){g(e,t,r)})}var E=new RegExp(“(&|\?)from=[^&]*”),P=new RegExp(“(&|\?)ob=[^&]*”),I=[],b=null,B=null,_=!1,S={expandToken:f,clickEvent:g,compElementClick:C,registerAsyncPreclick:d,setPreClickHandler:w,enableMultiTapPrevention:s};return t(S,r)}); define(“common/page-filters”,[“babel/babel-helpers”,”mixins/mixin”,”mixins/Events”],function(t,e,n){“use strict”;function r(t,e){var n=v[t];return n&&e(n)}function i(t,e,n,r){return v[t]=new e(t,n,r),this}function u(t){return r(t,function(t){return t.isModified()})}function o(e,n){var i=this;r(e,function(r){var u=r.get();r.set(n);var o=r.get();u!==o&&i.emit(“change”,t.defineProperty({},e,{from:u,to:o}))})}function c(e,n){var i=this;r(e,function(r){var u=r.get();r.clearAll(),n.forEach(function(t){return r.set(t)});var o=r.get();u!==o&&i.emit(“change”,t.defineProperty({},e,{from:u,to:o}))})}function s(t){return t?r(t,function(t){return t.get()}):Object.keys(v).reduce(function(t,e){return t[e]=v[e].get(),t},{})}function a(t,e){return!!(t&&e&&Array.isArray(e))&&r(t,function(t){return t.isSelected(e)})}function f(e,n){var i=this;r(e,function(r){var u=r.get();r.clear(n);var o=r.get();u!==o&&i.emit(“change”,t.defineProperty({},e,{from:u,to:o}))})}function l(e){var n=this;if(!e){var i=this.get(),u=Object.keys(v).reduce(function(t,e){var n=v[e];if(!n.excludeClearAll){var r=n.get();n.clearAll(),r!=n.get()&&(t[e]={from:r,to:n.get()})}return t},{});return void(JSON.stringify(i)!==JSON.stringify(u)&&this.emit(“change”,u))}r(e,function(r){var i=r.get();r.clearAll();var u=r.get();i!==u&&n.emit(“change”,t.defineProperty({},e,{from:i,to:u}))})}function h(t,e){return r(t,function(t){return t.parse(e)})}function p(t,e){return r(t,function(t){return t.format(e)})}var v={},d=”,”,y=”#”,g=function(t,e,n){var r=this,i=!1,u=e;this.param=t,this.excludeClearAll=n,this.set=function(t){i=i||u!==t,u=t},this.get=function(){return u},this.clear=function(t){return r.set(“”)},this.clearAll=function(){return r.set(“”)},this.parse=function(t){return t?[t]:[]},this.format=function(t){return t},this.isModified=function(t){return i},this.isSelected=function(t){return t.every(function(t){return u===t})}},m=function(t,e,n){var r=this,i=!1;this.parse=function(t){return”string”!=typeof t?[]:t.split(d).filter(function(t){return””!==t}).map(function(t){return t.split(y)}).filter(function(t){return t.length>0&&””!==t[0]}).map(function(t){return{key:t[0],value:t[1]||””}})},this.format=function(t){return Object.entries(t).map(function(t){return t.join(y)}).join(d)};var u=e?this.parse(e).reduce(function(t,e){return t[e.key]=e.value,t},{}):{};this.param=t,this.excludeClearAll=n,this.set=function(t){return r.parse(t).map(function(t){i=i||!u.hasOwnProperty(t.key)||u.hasOwnProperty(t.key)&&u[t.key]!==t.value,u[t.key]=t.value})},this.get=function(){return r.format(u)},this.clear=function(t){“string”==typeof t&&t.split(d).filter(function(t){return””!==t}).map(function(t){u.hasOwnProperty(t)&&(i=i||u.hasOwnProperty(t),delete u[t])})},this.clearAll=function(){return u={}},this.isModified=function(t){return i},this.isSelected=function(t){return t.every(function(t){return u.hasOwnProperty(t.key)&&u[t.key]===t.value})}},O=function(t,e,n){var r=!1;this.parse=function(t){return t.split(d).filter(function(t){return!!t})},this.format=function(t){return t.join(d)};var i=e?this.parse(e).reduce(function(t,e){return t[e]=!0,t},{}):{};this.param=t,this.excludeClearAll=n,this.set=function(t){var e=t.split(“,”);for(var n in e)if(e.hasOwnProperty(n)){var u=e[n];r=r||!i.hasOwnProperty(u),i[u]=!0}},this.get=function(){return Object.keys(i).join(d)},this.clear=function(t){var e=t.split(“,”);for(var n in e)if(e.hasOwnProperty(n)){var u=e[n];r=r||i.hasOwnProperty(u),delete i[u]}},this.clearAll=function(){r=r||Object.keys(i).length>0,i={}},this.isModified=function(t){return r},this.isSelected=function(t){return t.every(function(t){return i.hasOwnProperty(t)&&i[t]})}},A=function(t,e,n){var r=this;this.parse=function(t){},this.format=function(t){return””};var i=!1;this.param=t,this.excludeClearAll=n,this.set=function(t){return i=!0},this.get=function(){return null},this.clear=function(t){i&&(P.emit(“cleared-“+r.param),i=!1)},this.clearAll=function(){return r.clear(null)},this.isModified=function(t){return!1},this.isSelected=function(t){return!1}},P=e({SingleValueFilter:g,MultiValueFilter:O,FauxFilter:A,KeyValueFilter:m,register:i,set:o,isModified:u,setAll:c,get:s,isSelected:a,clear:f,clearAll:l,parse:h,format:p},new n(“change”));return P}); define(“sponsoredlisting/HotelsSponsoredListingPolling”,[“vanillajs”,”ta/Core/TA.FireEvent”],function(e,r){function s(e){e.removeAjaxParams([n]),r.fireEvent(“hotels.sponsored_listings_refreshed”)}var n=”sl_candidate_map”,o=function(e,r,s){var o,a,i=e.getAjaxParams()[n];o=i?JSON.parse(i):{};for(a in r)r.hasOwnProperty(a)&&(o[a]=r[a]);var t={};t[n]=JSON.stringify(o),e.setAjaxParamsNoPollForSP(t),s&&e.setNotDone()};return{updateSponsoredListingAjaxParam:o,refreshSponsoredListings:s}}); define(“hotels/ListFilters”,[“babel/babel-helpers”,”common/page-filters”,”sponsoredlisting/HotelsSponsoredListingPolling”],function(e,r,t){function o(e){if(!e)return!0;var t=Object.keys(e);return 0===t.length||t.some(function(t){return!r.isSelected(t,e[t])})}function n(){var e=r.get(),t=Object.keys(e).filter(function(r){return e[r]}).map(function(r){return r+”=”+e[r]});return t.join(“&”)}function i(e,i){function l(){var e=i.reloadUrl&&window.location.pathname!==i.reloadUrl&&o(i.urlFilters);if(e){if(“REDIRECT”===i.reloadUrlBehavior){var r=i.reloadUrl.indexOf(“?”)>=0?”&”:”?”,t=n(),l=””+i.reloadUrl+r+t;window.location=l}else”REPLACE”===i.reloadUrlBehavior?window.history&&window.history.replaceState&&window.history.replaceState(i.reloadUrl,””,i.reloadUrl):window.history&&window.history.pushState&&window.history.pushState(i.reloadUrl,””,i.reloadUrl);return i.reloadUrlBehavior}return null}function a(){for(var o=r.get(),n={offset:0},a=[“cat”,”zff”],s=0;s0?”-“+w.join(“-“)+”-“:””;window.__REDUX_STORE__.dispatch({type:”SET_FILTERS”,filters:p})}}i.filtersInit.forEach(function(e){var t=”multi”===e.type?r.MultiValueFilter:r.SingleValueFilter;r.register(e.name,t,e.value,”true”===e.excludeFromClearAll)}),r.on(“change”,a)}return{init:i}}); define(“hotels/DatePickerUrlParamsBuilder”,[],function(){“use strict”;function t(t){return t<10?"0"+t:t}function e(e){return(e.getFullYear()+t(e.getMonth()+1)+t(e.getDate())).toString()}function n(t){var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(encodeURIComponent(n)+"="+encodeURIComponent(t[n]));return e.join("&")}function o(){var t=ta.page.guests.getAdults(),n=ta.page.guests.getRooms(),o=ta.page.guests.getChildRoomAges(),a=o&&o.length?o.split(/[,:]/).length:0,i=ta.page.hasDates("CHECKIN")?e(ta.page.getDates("CHECKIN")[0]):"default",c=ta.page.hasDates("CHECKOUT")?e(ta.page.getDates("CHECKOUT")[0]):"default",r={checkin:i,checkout:c,rooms:n,adults:t,children:a};return r}function a(t){var e=document.getElementsByClassName("btn_confirm");e.length>0&&e[0].addEventListener(“click”,function(){window.location&&(window.location=window.location.pathname+”?”+n(t))});var o=document.getElementById(“SEARCH_HOTELS”);o&&o.addEventListener(“click”,function(){window.location&&(window.location=window.location.pathname+”?”+n(t))})}function i(){var t=o();”function”==typeof window.history.replaceState&&window.location&&window.history.replaceState(o(),”date change”,window.location),a(t)}function c(){var t=o();”function”==typeof window.history.replaceState&&window.location&&window.history.replaceState(t,”date change”,window.location.pathname+”?”+n(t))}function r(t,e,n){return t.addEventListener?(t.addEventListener(e,n,!1),!0):t.attachEvent?t.attachEvent(“on”+e,n):void n()}function d(){window.location&&(window.location=window.location.pathname+”?”+n(o()))}function l(){var t=document.querySelector(“#TRIP_PLANNER”);t&&t.classList.add(“collapsed”);var e=768,n=window.innerWidtho,i=e.currentBreakpoints(),f=r(u,i,t);f.forEach(function(n){var e=t?”over-“:”under-“;c.emit(e+n)}),f.length&&c.emit(“breakpoint”,i[0]),u=i,o=n}}var o=document.documentElement.clientWidth,u=e.currentBreakpoints(),f=[“breakpoint”];e.breakpoints.forEach(function(n){f.push(“over-“+n,”under-“+n)});var c=n.create(f);return c.onOver=function(n,e){c.on(“over-“+n,e)},c.onUnder=function(n,e){c.on(“under-“+n,e)},c.offOver=function(n,e){c.off(“over-“+n,e)},c.offUnder=function(n,e){c.off(“under-“+n,e)},window.addEventListener(“resize”,t(i,100)),c}); define(“responsive/breakpoint-tracker”,[“babel/babel-helpers”,”common/trackingStreams”,”utils/ResponsiveEvents”,”utils/responsive”,”vanillajs”],function(e,n,t,i){“use strict”;function r(e){var t=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,r=”mobile”===e?320:i.widths[e];n.trackEvent(“Breakpoint”,r,t)}function o(){s||(r(i.currentBreakpoints()[0]),t.on(“breakpoint”,r),s=!0)}var s=!1;return{init:o}}); define(“tracking/preload-handler”,[“vanillajs”],function(e){“use strict”;function n(){r.mcid&&require([“trjs!utils/cookieutils”],function(e){e.setCookieInSeconds(“MC”,r.mcid,{}),r.landingPage&&e.setCookieInSeconds(“LP”,r.landingPage,{}),r.lastReferrer&&e.setCookieInSeconds(“LP”,r.lastReferrer,{})}),require([“trjs!ta/util/ActionRecord”],function(e){e.recordPlus(“PAC”,{data:{pac:r.mcid,pac_lp:r.landingPage,pac_ref:r.lastReferrer}},{action:r.landingPage,context:r.lastReferrer})}),window.removeEventListener(“click”,n),window.removeEventListener(“scroll”,n)}function i(e){e&&(r=e,window.addEventListener(“click”,n),window.addEventListener(“scroll”,n))}var r;return{init:i}}); define(“ta/util/trackHistoryInject”,[“common/trackingStreams”],function(t){return function(){window.history&&window.history.state&&(window.history.state.fromBackClick&&(delete window.history.state.fromBackClick,t.trackEventOnPageOnce(“commerce_history_injection”,”back_button_clicked”)),window.history.state.fromBABackClick&&(delete window.history.state.fromBABackClick,t.trackEventOnPageOnce(“ba_history_injection”,”back_button_clicked”)))}}); define(“maps/v3/baselineShims/mapStateControllerShim”,[“babel/babel-helpers”,”common/trackingStreams”],function(e,r){“use strict”;var n=null,t=new Promise(function(e){return n=e}),o=!1,l={waitForModule:function(){return t},resolve:function(e){return o?void r.error(“Resolved multiple mapStateController modules”):(n(e),void(o=!0))}};return l}); define(“maps/v3/MapsPollingOpenState”,[“babel/babel-helpers”,”maps/v3/baselineShims/mapStateControllerShim”],function(e,n){“use strict”;function t(){return a()?{mapOpened:!0}:{}}function a(){return r&&r.mapHasOpened||”#MAPVIEW”===window.location.hash}var r=null;return n.waitForModule().then(function(e){return r=e.forMap(document.querySelector(“.listMapContainer”))}),{getMapOpenedData:t}}); define(“common/poll-tracker”,[“babel/babel-helpers”,”mixins/mixin”,”mixins/Events”],function(n,t,e){“use strict”;function r(n){return n.reduce(function(n,t){return n.concat(t)})}function l(n){return n.pollGroups[n.pollGroups.length-1]}function u(n,t){for(var e=n.pollGroups.length-1;e>=0;e–){var r=n.pollGroups[e][t-1];if(r)return r}return null}function o(n){for(var t=0;t=200&&u.status0&&(r.error&&r.error(u,this.status,this.statusText),c(this.responseText)),r.complete&&r.complete(u,this.statusText))},”get”===o.toLowerCase()&&”string”==typeof a&&a.length>0&&(e+=(“?”===a[0]?””:”?”)+a,a=null),u.open(o,e,!r.synchronous),s(e,u,r),u.send(a)})}}); define(“common/metric-recorder”,[“babel/babel-helpers”,”ajax-request”],function(e,r){return function(e){return r({“method”:”POST”,”url”:”/MetricsAjax”,”x-requested-by”:require(“page-model”).JS_SECURITY_TOKEN,”data”:”metricsData=”+encodeURIComponent(JSON.stringify(e))})}}); define(“servlets/smartdeals”,[“utils/objutils”,”mixins/page-dates/DateEvents”,”mixins/page-dates/Responsive”,”mixins/page-guests/Guests”,”ta/Core/TA.FireEvent”,”ta/common/Repoll”,”ta/Core/TA.Store”,”common/trackingStreams”,”mixins/mixin”,”commerce/offerclick”,”commerce/offerclickEvents”,”mobile/lite/image-loader”,”hotels/ListFilters”,”hotels/DatePickerUrlParamsBuilder”,”amdloaders”,”responsive/breakpoint-tracker”,”tracking/preload-handler”,”sponsoredlisting/HotelsSponsoredListingPolling”,”ta/util/trackHistoryInject”,”maps/v3/MapsPollingOpenState”,”common/poll-tracker”,”common/metric-recorder”],function(e,t,n,a,i,s,r,o,l,c,d,u,p,m,g,T,f,h,S,E,v,A){“use strict”;function _(e){if(!C){l(this,t),l(this,new n(e.pageDates,e.calendar)),l(this,new a(e.pageGuests)),C=this,U=new Promise(require.bind(null,[“trjs!servlets/responsivesem-pl”])).then(function(t){return t.init(e),t}),U.then(g.activate.bind(g)),r.store(“batch_garecord”,!0),r.store(“allowSamePageClickWithoutTrackingTree”,!0),S();var o=this.gatherDates;this.gatherDates=function(){var e=Array.prototype.slice.call(arguments),t=this;U.then(function(){return o.apply(t,e)})};var h=e.repollOptions||{evaluateScripts:!0};if(e.trackPollingMetrics){var E=h.tracker=new v(“smartdeals”);E.on(“pollRecorded”,function(e){var t=e.end-e.start;A([{name:”sd_poll”,value:t,labels:[require(“page-model”).GEO_ID]}])})}w=new s(h),i.on(“page-repoll-failed”,R);var _=C.onDatesSelected;C.onDatesSelected=function(e,t,n){_(e,t,n),C.hasDates(“STAYDATES”)&&O()},d.on(“afterClick”,function(e){require([“trjs!ta/common/behavior/Ads-pagemoniker”],function(t){t.loadClickoutMonikers({locId:e.locId,isMetaCheckRates:!0,contentId:e.contentId,selectedPrice:e.selectedPrice,offerStr:e.offerStr})})}),e.preventOfferclickMultiTaps&&c.enableMultiTapPrevention(),f.init(e.preloadData),e.needPoll&&w.setNotDone(),i.on(“page-polling-complete”,function(){U.then(function(e){w.isUpdatePending()||e.onPollingComplete()})}),e.gatingATFEnabled&&e.softGateV4Enabled?(F=!0,m.initSearchAndUpdateButtonBehavior(m.updateUrl)):e.gatingATFEnabled&&!e.softGateV4Enabled?m.initSearchAndUpdateButtonBehavior(m.handleOnClick):!e.gatingATFEnabled&&e.softGateV4Enabled&&m.pushToUrlOnDateChange(),P(),p.init(w,e),u.init(200),T.init()}return C}function P(){i.on(“hotels.sponsored_listing_updated”,function(e,t){h.updateSponsoredListingAjaxParam(w,e,t)})}function D(e){window&&window.__REDUX_STORE__&&window.__REDUX_STORE__.dispatch(e)}function O(){var t=e.extend({},C.guests.toQueryJson(),C.datesToQueryJson(“STAYDATES”));h.refreshSponsoredListings(w),w.setOneTimeParams(M(t),[“TRAVEL_INFO”]),F?t&&D({type:”SET_HOTELS_DATES_GUESTS”,stayDates:t.staydates,guests:t.uguests}):(C.emit(“newPageTravelInfo”),t&&D({type:”SET_HOTELS_DATES_GUESTS”,stayDates:t.staydates,guests:t.uguests}))}function R(){}function k(){return w.isUpdatePending()}function y(){w.setOneTimeParams(M({}),[“MAIN_META”])}function L(e){e&&(h.refreshSponsoredListings(w),w.setOneTimeParams(M({sortOrder:e}),[“MAIN_META”,”SORT_ORDER”]))}function I(){w.setOneTimeParams(M({}),[“FILTERS”,”CATEGORY”])}function b(e){e.searchRequestType=”proximity”,w.setAjaxParams(M(e),[“FILTERS”,”MAIN_META”])}function x(){var e={searchRequestType:”geo”},t=[“centerLat”,”centerLng”,”searchRadius”,”minLat”,”maxLat”,”minLng”,”maxLng”];w.removeAjaxParams(t),w.setAjaxParams(M(e),[“FILTERS”,”MAIN_META”])}function M(t){return e.extend({},t,E.getMapOpenedData())}var w,U,C=void 0,F=!1;return{init:_,isUpdatePending:k,refreshPrices:y,processNewTravelInfo:O,setSortOrder:L,loadFilters:I,changeRequestTypeToProximity:b,changeRequestTypeToGeo:x}}); define(“utils/classnameUtils”,[“vanillajs”],function(){function s(s){return e[s]?e[s].lastIndex=0:e[s]=new RegExp(“(\s|^)”+s+”(\s|$)”,”g”),e[s]}var a={},e={};return a.hasClass=function(a,e){return!!a&&(a.classList?a.classList.contains(e):s(e).test(a.className))},a.addClass=function(s,e){s&&e&&(s.classList?s.classList.add(e):a.hasClass(s,e)||(s.className+=” “+e))},a.removeClass=function(a,e){a&&e&&(a.classList?a.classList.remove(e):a.className=a.className.replace(s(e),” “))},a.toggleClass=function(s,e,n){s&&(n||void 0===n&&!a.hasClass(s,e)?a.addClass(s,e):a.removeClass(s,e))},a.getParentByClassname=function(s,e){for(var n=s&&s.parentNode;n;n=n.parentNode)if(a.hasClass(n,e))return n;return null},a}); define(“dynamic-placement/loader”,[“babel/babel-helpers”,”ajax-request”,”page-model”,”utils/to-array”,”amdloaders”],function(e,t,a,r,n){“use strict”;function l(e){var t=document.createElement(“div”);t.innerHTML=e;var a=r(t.querySelectorAll(“style, link, script”)).reduce(function(e,t){return e[“STYLE”===t.tagName||”LINK”===t.tagName?”styles”:”scripts”].push(t),t.parentNode.removeChild(t),e},{styles:[],scripts:[]});return Object.assign(a,{html:t.innerHTML})}var s=1e4;return function(e,r){return t({url:”/DynamicPlacementAjax”,data:Object.assign({placementRollUps:e,geo:a.GEO_ID,detail:a.LOC_ID,occOffset:s++,updateType:”full”,metaReferer:a.session.pageServlet},n.getLoadedFilesParams(),r)}).then(l)}}); define(“dynamic-placement/dom-renderer”,[“babel/babel-helpers”,”amdloaders”],function(e,n){“use strict”;return function(e){return function(r){var t=r.scripts,l=r.styles,s=r.html;return n.installStyles(l),e.innerHTML+=s,n.installScripts(t)}}}); define(“maps/v3/map-loader”,[“babel/babel-helpers”,”dynamic-placement/loader”,”dynamic-placement/dom-renderer”],function(e,n,r){“use strict”;function a(){return o||(o={},o.promise=new Promise(function(e){o.resolve=e})),o}function t(e){s&&l&&a().resolve(e.querySelector(“.mapContainer”))}var o=null,l=!1,s=!1;return{waitForMap:function(){return a().promise},resolveBaseMapPlacement:function(e){l=!0,t(e)},resolveMapPageContainer:function(e){s=!0,t(e)},createMap:function(e,a,t){n(e,{servletName:a.servletName,servletClass:a.servletClass}).then(r(t))}}}); define(“maps/v3/models/eventTypes”,[“babel/babel-helpers”,”utils/objutils”],function(e,E){“use strict”;var n={PIN_CLICK:”pinClick”,PIN_HOVER_START:”pinHoverStart”,PIN_HOVER_END:”pinHoverEnd”,PIN_INTENT_HOVER:”pinHoverLong”,PIN_UPDATED:”pinUpdated”},t={CLICK:”mapClick”,CENTER_CHANGE:”centerChange”,PAN_START:”panStart”,ZOOM_CHANGE:”zoomChange”,RENDER_COMPLETE:”renderComplete”},R={PRERENDER:”preRender”,RENDER:”render”,POSTRENDER:”postRender”,BEFORE_CLOSE:”beforeClose”,CLOSE:”close”,AFTER_CLOSE:”afterClose”,LOAD_CONTENT_START:”loadContentStart”,CONTENT_RECEIVED:”contentReceived”,CONTENT_FAILED:”contentFailed”,LOAD_CONTENT_END:”loadContentEnd”,LOADING_START:”loadingStart”,LOADING_END:”loadingEnd”,REFRESH_CONTENT:”refreshContent”,DIMENSIONS_RESIZE:”dimensionsResize”,SIZE_CHANGE_REQUESTED:”sizeChangeRequested”,REDO_SEARCH_REQUESTED:”redoSearchRequested”,PIN_DATA_REQUESTED:”pinDataRequested”,DEMAND_LOAD_REQUESTED:”demandLoadRequested”,PIN_SELECTION_CHANGED:”pinTypeChanged”},C={CAROUSEL_CARD_SELECTED:”carouselCardSelected”},N=[];E.each(n,function(){N.push(this)}),E.each(t,function(){N.push(this)});var _={pin:n,map:t,state:R,providerEvents:N,external:C};return E.deepFreezeCopy(_)}); define(“maps/v3/mapStateController”,[“babel/babel-helpers”,”mixins/Events”,”utils/objutils”,”maps/v3/models/eventTypes”,”maps/v3/baselineShims/mapStateControllerShim”],function(n,t,e,i,a){“use strict”;function s(n){for(var t in n)if(n.hasOwnProperty(t)&&n[t])return!1;return!0}function o(n,t){return n+”:”+t}function p(){var n=this,i=new t(m),a={};this.on=i.on.bind(i),this.off=i.off.bind(i),this.emit=i.emit.bind(i),this.initialOpenMapOptions=null,this.loadingContent=!1,this.autoscaleEnabled=!0,this.autoscalingNow=!1,this.mapOpen=!1,this.cacheBustValue=null,this.mapHasOpened=!1,this.pinsShown=!1,this.openMap=function(t){t?n.initialOpenMapOptions=Object.assign({},n.initialOpenMapOptions,t):t=e.extend({},n.initialOpenMapOptions),n.mapHasOpened||(n.mapHasOpened=!0,t.refreshPrices=!0,n.emit(O.LOADING_START,t)),n.emit(O.PRERENDER,t),n.emit(O.RENDER,t),n.mapOpen=!0,n.emit(O.POSTRENDER,t)},this.closeMap=function(t){n.emit(O.BEFORE_CLOSE,t),n.emit(O.CLOSE,t),n.emit(O.AFTER_CLOSE,t),n.mapOpen=!1},this.toggleMap=function(t,e){“undefined”==typeof e&&(e=!n.mapOpen),e?n.openMap(t):n.closeMap(t)},this.on(O.LOAD_CONTENT_START,function(t,e){a[o(t,e)]=!0,n.loadingContent||(n.loadingContent=!0,n.emit(O.LOADING_START))}),this.on(O.LOAD_CONTENT_END,function(t,e){delete a[o(t,e)],n.loadingContent&&s(a)&&(n.loadingContent=!1,n.emit(O.LOADING_END,t,e))})}var O=i.state,l=e.deepFreeze({MAP_INIT:”mapInit”,DEMAND_LOAD_ON_INIT:”demandLoadOnInit”,PINS:”pins”,ROUTE:”route”}),r={},m=[];e.each(O,function(){m.push(this)});var u={forMap:function(n){if(r[n])return r[n];var t=new p;return r[n]=t}};return u.EVENT=O,u.CONTENT_TYPE=l,a.resolve(u),u}); define(“utils/HistoryManager”,[],function(){“use strict”;function t(){function t(){return(new Date).getTime()+””+Math.random()}function i(t){var i=t.state;if(!a&&i&&i.id){var e=i.id,s=n[e];s&&s(i.data)}}var n={},e={},a=!1;this.pushState=function(i,e,a,s){var r=t();n[r]=s,i.id=r,history.pushState(i,e,a)},this.replaceState=function(i,e,a,s){var r=t();n[r]=s,i.id=r,history.replaceState(i,e,a)},this.addCallback=function(t,i){e[t]||(e[t]=[]),e[t].push(i)},this.removeCallback=function(t,i){if(e[t]){var n=e[t].indexOf(i);n>=0&&e[t].splice(n,1)}},this.doCallbacks=function(t){e[t]&&e[t].each(function(t){t()})},this.isSupported=function(){return”undefined”!=typeof history&&”pushState”in history},this.disableCallbacks=function(t){a=t},window.addEventListener(“popstate”,i)}return t}); require([“ta/p13n/placements”],function(e){var t=e.define.bind(e,”dh_sort_filter_entry”,”handlers”,[“handlers”,”tablet/tablet”,”trcss!tablet/tablet”]);t([“babel/babel-helpers”,”placement”,”ta/page”,”ta/Core/TA.FireEvent”,”common/trackingStreams”,”common/page-filters”,”common/Radio”,”ta/prwidgets”,”utils/classnameUtils”,”maps/v3/map-loader”,”maps/v3/mapStateController”,”utils/HistoryManager”],function(e,t,r,o,l,a,n,i,s,c,d,u){function p(e){e&&(A.innerHTML=e.innerHTML,i.initWidgets(A),R=null)}function v(e,t){e&&t&&(t.innerHTML=e.innerHTML)}function m(e,t){var r=t&&t.querySelectorAll(“.toggle:checked”);v(e,t),r&&r.forEach(function(e){var t=document.getElementById(e.id);t&&(t.checked=!0)})}function b(e,t){if(!t||t.className.match(D))return!1;var r=t.getAttribute(“data-sortOrder”);if(r){f(r);var o=A.querySelector(“.sort-summary”),l=t.getAttribute(“data-label”);o&&l&&(o.innerHTML=l),x&&x.hide()}}function f(e){if(e){var t=window.location.pathname;t&&t.indexOf(L)>0&&(T.replaceState({},document.title,t.replace(L,””)),r.setRepollPageUrl(window.location.href)),r.setSortOrder(e);var o=A.querySelector(“.sort_dropdown”);if(o){var a=o.getAttribute(“data-url”);a&&window.location.href.indexOf(a)<0&&T.pushState({data:0},"",a)}l.trackEvent("sort_h","click",e);var n=Array.prototype.slice.call(A.querySelectorAll(".sort_option")),i=Array.prototype.slice.call(N.querySelectorAll(".sort_option"));n.concat(i).forEach(function(t){var r=t.className,o=r.replace(D,"");t.getAttribute("data-sortOrder")===e&&(o+=" active"),r!==o&&(t.className=o)})}}function h(e,t){var r=t.className;if(!r.match(I))return l.trackEvent("List_sort","click_open"),t.className=r+" loading",j.emit("openSort"),H?void require(["babel/babel-helpers","lib/jquery-amd","overlays/Overlay","overlays/position/fullscreen","overlays/styles/windowshade","overlays/styles/tray","overlays/options/closeOnWindowshadeClick","overlays/options/slideInOut"],function(e,o,l,a,n,i,s,c){t.className=r,x||(x=new l(E,a(),new i(null,null,"",null,null,N),n("dark",null,"fade_short"),c("from_bottom",500,100),s)),x.show(),o(N).find(".sort_option .toggle:checked").prop("checked",!1)}):void require(["babel/babel-helpers","lib/jquery-amd","utils/responsive","utils/ResponsiveEvents","overlays/Overlay","overlays/position/fullside","overlays/styles/windowshade","overlays/options/keepInDom","overlays/styles/modal","overlays/options/closeOnWindowshadeClick","overlays/options/slideInOut"],function(e,o,l,a,n,i,s,c,d,u,p){t.className=r,x||(x=new n(E,i.right(),new d(null,null,"collapsed_content",null,null,N),s("dark"),p("from_right"),u)),x.show()})}function y(e,t,r){var o=t.className;o.match(I)||(j.emit("openFilters"),t.className=o+" loading",require(["babel/babel-helpers","trjs!responsive/collapsibleLayout"],function(e,l){t.className=o,l.toggle(r).then(function(e){return e&&O.trigger("resize")})}),l.trackEvent("Filter_overall","in_view"))}function w(e,t){var r=t.getAttribute("data-param"),o=t.getAttribute("data-value"),l=t.getAttribute("data-tracker"),n=t.getAttribute("data-index");return r&&o&&(a.clear(r,o),C.trigger("externalClear",{paramName:r,value:o}),l&&require(["babel/babel-helpers","trjs!common/track-filter","trjs!common/filters-helper"],function(e,t,o){t(o.getFilterNameFromParam(r),"unselect_cloud",l,n)}),t.parentNode.removeChild(t)),!1}function g(e,t,r,o){if(l.trackEvent("sort_h",o?"hover_dropdown":"hover",r),H&&o){if(F[r])return void F[r].show();require(["babel/babel-helpers","trjs!overlays/Overlay","trjs!overlays/position","trjs!overlays/styles/tooltip","trjs!overlays/options/closeOnMouseAway","trjs!overlays/options/maxWidth"],function(e,o,l,a,n,i){var s=t&&t.querySelector(".content");s&&(F[r]=new o(t,[a(t,"left","light",s.innerHTML),l.left([t.parentElement]),i(200),n]),F[r].show())})}else require(["babel/babel-helpers","trjs!overlays/uiOverlay"],function(r,o){o(e,t)})}function _(e){require(["babel/babel-helpers","overlays/uiOverlay"],function(t,r){r(null,e)})}function k(e,t){R||require(["babel/babel-helpers","forms/select"],function(e,r){R=new r.Select,R.on("change",function(e){f(e)}),R.on("open",function(){F={},l.trackEvent("sort_h","dropdown_click","")}),R.init(t,!1,"div",!0)})}function q(e){"clear"===e.target.className&&(require(["babel/babel-helpers","trjs!common/track-filter"],function(e,t){t("overall_clear","unselect_link","clear_all",0)}),a.clearAll(),C.trigger("externalClearAll"))}function S(e,t,r,o){l.trackEvent("sort_h",o?"hover_dropdown":"hover",r)}var E=document.querySelector("#"+t.id),A=document.querySelector("#"+t.id+" .sort_filter_bar"),N=document.querySelector("#"+t.id+" .sort-flyout"),O=new n("web-component-price-slider"),C=new n("web-component-data-bridge"),j=new n("hotels-sort-filter-entry"),M="withDescHeaders",T=new u,H=!!document.querySelector("[data-sort-redesign]"),L="-jdistLow",F={},x=void 0,R=void 0,D=/ *bactiveb/,I=/ *bloadingb/;return o.on("update-"+t.name,p),o.on("update-"+t.name+"-mw-header",function(e){return v(e,document.querySelector("#"+t.id+" .mobile-header"))}),o.on("update-"+t.name+"-flyout",function(e){return m(e,N)}),s.hasClass(A,M)&&c.waitForMap().then(function(e){var r=d.forMap(e),o=".sort_filter_bar.withDescHeaders",l=".mobile-header .descriptive_header_text";r.on(d.EVENT.RENDER,function(){var e=document.querySelector("#"+t.id+" "+o),r=document.querySelector("#"+t.id+" "+l);s.addClass(e,"is-hidden-desktop"),s.addClass(r,"is-hidden")}),r.on(d.EVENT.CLOSE,function(){var e=document.querySelector("#"+t.id+" "+o),r=document.querySelector("#"+t.id+" "+l);s.removeClass(e,"is-hidden-desktop"),s.removeClass(r,"is-hidden")})}),{clickSort:b,openSort:h,removeFilter:w,openFilters:y,hoverTooltip:g,trackClickMobileTooltip:S,showMobileOptionModal:_,initSelect:k,descriptiveHeaderClick:q}})}); require(["ta/p13n/placements"],function(e){var t=e.define.bind(e,"dh_sort_filter_entry_wc_bridge","handlers",["handlers"]);t(["babel/babel-helpers","placement","ta/page","common/Radio","ta/Core/TA.Event"],function(e,t,r,n,a){var i=document.getElementById(t.id),o=n("web-component-data-bridge"),u="data-descriptive-header",d="data-empty-list-alert",l="data-highlight-all",c="data-sort-options",s="data-current-sort",p=function(){var e=i.querySelector("["+u+"]").innerHTML,t="true"===i.querySelector("["+d+"]").getAttribute(d),r="true"===i.querySelector("["+l+"]").getAttribute(l),n=i.querySelector("["+c+"]").getAttribute(c),a=i.querySelector("["+s+"]").getAttribute(s),p=n&&JSON.parse(n),g=a&&JSON.parse(a);o.reply("desc_header_text",function(){return{descHeaderText:e,emptyListAlert:t,highlightAll:r}}),o.reply("sort_options_ext",function(){return p}),o.reply("cur_sort_ext",function(){return g.sortOrder})},g=function(e){e&&e.innerHTML&&(i.querySelector(".update").innerHTML=e.innerHTML,p(),e.classList.contains("filters-update-speedup")||o.trigger("update"))};return p(),a.on("update-"+t.name,g),{}})}); require(["ta/prwidgets"],function(e){var t=e.define.bind(e,"common_standard_pagination_resp","handlers",["handlers"]);t(["widget","ta/page","common/trackingStreams","utils/HistoryManager"],function(e,t,r,a){function n(t){return t=t||e.element.querySelector(".standard_pagination"),t&&t.getAttribute("data-trackingString")||"UNKNOWN_PAGINATION"}function i(e,t,r){s&&s.isSupported()&&e&&t&&s.pushState({data:r},"",t,l)}function o(a,o,d,u,c,l,s){r.trackEvent(n(),u,c,0);var f=0,g=e.element.querySelector("[data-scrollToTop]");if(!g&&require.defined("lib/jquery-amd")){var m=require("lib/jquery-amd")("#MAIN");f=m&&m.offset()?m.offset().top:f}return t.setPageOffset(d,f),i(l,s,d),!1}function d(t,a,i){if(a&&a.href){var o=e.element.querySelectorAll("[data-trackingString]")[0];o&&r.setEvtCookie(n(o),"click_pagination",i,0,a.href)}}function u(){var t=e.element.querySelector(".standard_pagination");if(t){var r=Number(t.getAttribute("data-numPages")),a=n(t),i=a+"_loaded",o=!f.tracked[i];o&&r&&(f.tracked[i]=!0,require(["trjs!ta/util/Element"],function(e){e.trackWhenScrolledIntoView(t,[a+"_VISIBLE","numPages",r,0])})),document.addEventListener("modalClosingEvent",function(){g=!0}),c()}}function c(){var t=e.element.querySelector(".standard_pagination");if(t&&t.getAttribute("data-updateHistory")&&"true"===t.getAttribute("data-updateHistory")&&(s=new a,s.isSupported())){var r=t.querySelector(".current")&&t.querySelector(".current").getAttribute("data-offset");r&&s.replaceState({data:r},document.title,window.location.href,l)}}function l(e){return g?void(g=!1):e?void t.setPageOffset(e):void t.setPageOffset(0)}var s,f=this,g=!1;return f.tracked=f.tracked||{},u(),{"changeMainPage":o,"trackPageClick":d}}.bind({}))}); require(["ta/p13n/placements"],function(e){var t=e.define.bind(e,"hotels_leaf_geo_list","handlers",["handlers"]);t(["placement","common/trackingStreams","common/Radio"],function(e,t,a){function n(e,a){if(a&&a.href){var n=a.getAttribute("data-geoId");t.setEvtCookie("hotels_leaf_geo_list_broad","click",n,0,a.href),l&&t.trackEvent("vp_broad_geo","click",n)}}function o(e){r.classList.toggle("is-hidden-mobile",e)}var i=document.getElementById(e.id),r=i.querySelector(".leaf_geo_list_wrapper"),c=r.hasAttribute("data-hide-on-map-open"),l=r.hasAttribute("data-is-vacation-package-servlet");if(c){var s=new a("h-map");s.on("hide-bg-leaf-placement",function(){o(!0)}),s.on("show-bg-leaf-placement",function(){o(!1)})}return l&&t.trackEvent("vp_broad_geo","seen"),{trackGeoLinkClick:n}})}); define("hotels/monitoring/listHealth",["babel/babel-helpers"],function(e){"use strict";function t(e){var t=document.querySelector(e);return t&&t.dataset||require(["babel/babel-helpers","trjs!ta/util/Error"],function(t,r){r.record(null,"list health monitoring failed due to no placement data for selector: "+e)}),t}function r(e,t,r){var o="true"===r.dataset.is_ajax?"ajax":"pageload",l=r.dataset.hotel_page_type;require(["babel/babel-helpers","trjs!common/metric-recorder"],function(r,n){n([{name:e,value:1,labels:[t,o,l].concat(a)}])})}var a=["","",""];return{getMonitorModelFromSelector:t,recordMetric:r}}); require(["ta/p13n/placements"],function(e){var t=e.define.bind(e,"hotels_list_monitoring","handlers",["handlers"]);t(["babel/babel-helpers","placement","ta/Core/TA.FireEvent","hotels/monitoring/listHealth"],function(e,t,n,r){"use strict";function o(){var e=r.getMonitorModelFromSelector("#hotel_list_monitoring_data");e&&e.dataset&&r.recordMetric(l,i(e.dataset.empty_expected),e)}function i(e){var t=document.querySelectorAll("[data-mlv]");return(!t||t.length<=0)&&"empty_expected"!==e?"empty_error":"list_healthy"}function a(e){var n=document.getElementById(t.id);n.innerHTML=e.outerHTML,setTimeout(o,200)}var l="hotel_listing_state";o(),n.on("update-"+t.name,a)})}); define("utils/resize-invalidated-cache",["babel/babel-helpers"],function(e){"use strict";var t="__resize-cache",n=Date.now();return window.addEventListener("resize",function(){return n=Date.now()}),function(e){var a=e[t];return(null==a||a.timestamp0){var t={},l=n.querySelectorAll(".ajax_preserve, .ajax_preserve_noreplace");Array.prototype.forEach.call(l,function(e){var n=e.getAttribute("data-ajax-preserve");n&&(t[n]=e)}),Array.prototype.forEach.call(a,function(n){var r=t[n.getAttribute("data-ajax-preserve")];r&&e(r,n)})}}}var n={};return n.copy=e.bind(null,function(e,n){n.parentNode&&n.parentNode.replaceChild(e,n)}),n.innerCopy=e.bind(null,function(e,n){n.innerHTML=e.innerHTML}),n.replaceContent=function(e,r){for(n.copy(r,e),r.innerHTML="";e.childNodes.length>0;)r.appendChild(e.childNodes[0])},n.setContentElement=function(e,r,a){n.copy(e,r),a?e.parentNode&&e.parentNode.replaceChild(r,e):(e.innerHTML=””,e.appendChild(r))},n}); define(“utils/nodePreserve”,[“ta/util/ajaxPreserves”,”utils/to-array”],function(e,r){“use strict”;function t(e,r){if(e)for(e.innerHTML=””;r.firstChild;)e.appendChild(r.firstChild)}function a(e,r){r&&Array.prototype.forEach.call(r.querySelectorAll(“.node-preserve, .ajax_preserve”),function(r){var t=r.getAttribute(“data-ajax-preserve”);t&&(e[t]=r,r.parentNode&&r.parentNode.removeChild(r))})}function n(e,r){var a=r.getAttribute(“data-ajax-preserve”),n=e[a];n&&(r.parentNode&&r.parentNode.replaceChild(n,r),t(n,r),delete e[a])}function i(i,o,l){if(i&&o){var d={};l&&e.innerCopy(i,o),a(d,i),t(i,o),r(i.querySelectorAll(“[data-ajax-preserve]”)).forEach(n.bind(null,d))}}var o={};return o.nodePreserve=function(e,r){i(e,r,!1)},o.treePreserve=function(e,r){i(e,r,!0)},o}); define(“hotels/SpecialMessageUtil”,[“babel/babel-helpers”,”ta/util/SessionStorage”,”utils/responsive”,”utils/classnameUtils”],function(e,s,t,a){function r(e,s){var t=o();return!!t[e]&&(!s||!!t[e][s])}function i(e,s){a.removeClass(e,d),”BRAND_MESSAGING_DEFAULT”!==s&&”BRAND_MESSAGING_MULTIPLE_SITES”!==s||!t.mobile()||l(s)}function n(e,s,t,r){a.addClass(e,d),t&&!r||l(s,r)}function c(e){var s=e.querySelector(“[“+S+”]”);return s?s.getAttribute(S):””}function u(e){var s=e.querySelector(“[“+b+”]”);return!(!s||!s.getAttribute(b))}function l(e,t){var a=o();a[e]=a[e]||{},t&&(a[e][t]=!0);try{s.setObject(g,a)}catch(e){}}function o(){try{return s.getObject(g)||{}}catch(e){}return{}}var g=”dismissedMessages”,d=”collapsed”,S=”data-messageType”,b=”data-persist-once-per-geo”;return{displayMessage:i,dismissMessage:n,wasMessageDismissed:r,getMessageType:c,isMessagePersistableOncePerGeo:u}}); require([“ta/p13n/placements”],function(e){var s=e.define.bind(e,”hsx_special_messaging”,”handlers”,[“handlers”]);s([“placement”,”page-model”,”ta/Core/TA.FireEvent”,”ta/prwidgets”,”utils/nodePreserve”,”hotels/SpecialMessageUtil”,”common/Radio”],function(e,s,a,t,i,n,r){function l(e){if(e&&!n.wasMessageDismissed(e,p&&g)){var s=m.querySelector(“.hsx_special_messaging > .collapsed”);n.displayMessage(s,e)}}function c(e){var s=n.getMessageType(e);s&&s!==o&&!n.wasMessageDismissed(s,p&&g)&&(o=s,e&&e.getAttribute(“data-targetEvent”)!=d&&(e=e.querySelector(‘[data-targetEvent=”‘+d+'”]’)),e&&m&&(i.treePreserve(m,e),t.initWidgets(m),l(o)))}var d=”update-“+e.name,g=s.GEO_ID,m=document.getElementById(e.id),o=n.getMessageType(m),p=n.isMessagePersistableOncePerGeo(m);a.on(d,c),l(o);var u=/ *bhiddenb/;return r(“hsx_special_message”).on(“temporaryHide”,function(e){e?m.className.match(u)||(m.className=m.className+” hidden”):m.className=m.className.replace(u,””)}),{}})}); require([“ta/p13n/placements”],function(e){var n=e.define.bind(e,”masthead_h1″,”handlers”,[“handlers”]);n([“placement”,”ta/Core/TA.FireEvent”],function(e,n){“use strict”;function t(n){var t=document.getElementById(e.id);t&&(t.innerHTML=n.innerHTML)}var r=”true”===e.params.trackInView;return r&&require([“trjs!ta/util/Element”],function(n){n.trackWhenScrolledIntoView(“#”+e.id,[“masthead”,”in_view”])}),n.on(“update-“+e.name,t),{}})}); ]]>

    • “).helper(“range”,c,{“block”:b2},{“begin”:c.get([“min”],!1),”end”:c.get([“max”],!1)}).write(“”);}function b1(h,c){return h.write(“”);}function b2(h,c){return h.write(“
    • “);}b0.__dustBody=b1.__dustBody=b2.__dustBody=!0;return b0;}(); !function(){dust.register(“itrooms-guests_desktop_checkmark_dropdown”,b0);function b0(h,c){return h.write(“”).exists(c.get([“titleClass”],!1),c,{“block”:b1},{}).write(“
        • “).helper(“range”,c,{“block”:b2},{“begin”:c.get([“min”],!1),”end”:c.get([“max”],!1)}).write(“”);}function b1(h,c){return h.write(“”);}function b2(h,c){return h.write(“
        • “);}b0.__dustBody=b1.__dustBody=b2.__dustBody=!0;return b0;}(); !function(){dust.register(“itrooms-guests_desktop_ticker”,b0);function b0(h,c){return h.write(“”);}b0.__dustBody=!0;return b0;}(); !function(){dust.register(“itrooms-guests_desktop_count_ticker”,b0);function b0(h,c){return h.write(“”).reference(c.get([“label”],!1),c,”h”).write(“”);}b0.__dustBody=!0;return b0;}(); ;});]]>
  • TheForku003c/a>”,”localizedLink”:null,”trackAction”:”sites_thefork”}]}}},”1308253970″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d2282498-Reviews-Casa_Is_Grifoneddus-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”1348606766″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d2293555-Reviews-Agriturismo_Saludi_e_Trigu-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”1575281098″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d19934773-Reviews-Domos_La_Corte_Ghibellina-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”1752763810″:{“data”:{“mediaAlbum”:{“status”:200,”statusMessage”:”OK”,”album”:{“albumId”:-125,”subAlbumId”:null,”translationKey”:”photos_module_carousel_view_all_photos_plain”,”dataStrategy”:”a”,”offset”:0,”totalMediaCount”:173,”mediaList”:[{“type”:”p”,”mediaId”:288317806,”photoSizes”:[{“url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/11/2f/61/6e/coast-views.jpg?w=100&h=100&s=1″,”width”:0,”height”:0},{“url”:”https://media-cdn.tripadvisor.com/media/photo-t/11/2f/61/6e/coast-views.jpg”,”width”:50,”height”:50},{“url”:”https://media-cdn.tripadvisor.com/media/photo-l/11/2f/61/6e/coast-views.jpg”,”width”:150,”height”:150},{“url”:”https://media-cdn.tripadvisor.com/media/photo-i/11/2f/61/6e/coast-views.jpg”,”width”:180,”height”:200},{“url”:”https://media-cdn.tripadvisor.com/media/photo-f/11/2f/61/6e/coast-views.jpg”,”width”:250,”height”:167},{“url”:”https://media-cdn.tripadvisor.com/media/photo-s/11/2f/61/6e/coast-views.jpg”,”width”:550,”height”:367},{“url”:”https://media-cdn.tripadvisor.com/media/photo-w/11/2f/61/6e/coast-views.jpg”,”width”:1024,”height”:684},{“url”:”https://media-cdn.tripadvisor.com/media/photo-o/11/2f/61/6e/coast-views.jpg”,”width”:2000,”height”:1335}]}]}}}},”1923569669″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d19619921-Reviews-B_B_Del_Corso-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”1971375571″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d1951884-Reviews-B_B_Su_Maimoni-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”1995578689″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d3313026-Reviews-B_B_Mare_Monti_e_Miniere-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”2165564701″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d10781823-Reviews-B_b_passaggio_a_sud_ovest-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”2205285590″:{“data”:{“mediaAlbum”:{“status”:200,”statusMessage”:”OK”,”album”:{“albumId”:-125,”subAlbumId”:null,”translationKey”:”photos_module_carousel_view_all_photos_plain”,”dataStrategy”:”a”,”offset”:0,”totalMediaCount”:98,”mediaList”:[{“type”:”p”,”mediaId”:400705815,”photoSizes”:[{“url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/17/e2/49/17/photo1jpg.jpg?w=100&h=100&s=1″,”width”:0,”height”:0},{“url”:”https://media-cdn.tripadvisor.com/media/photo-t/17/e2/49/17/photo1jpg.jpg”,”width”:50,”height”:50},{“url”:”https://media-cdn.tripadvisor.com/media/photo-l/17/e2/49/17/photo1jpg.jpg”,”width”:150,”height”:150},{“url”:”https://media-cdn.tripadvisor.com/media/photo-f/17/e2/49/17/photo1jpg.jpg”,”width”:154,”height”:205},{“url”:”https://media-cdn.tripadvisor.com/media/photo-i/17/e2/49/17/photo1jpg.jpg”,”width”:180,”height”:200},{“url”:”https://media-cdn.tripadvisor.com/media/photo-s/17/e2/49/17/photo1jpg.jpg”,”width”:338,”height”:450},{“url”:”https://media-cdn.tripadvisor.com/media/photo-p/17/e2/49/17/photo1jpg.jpg”,”width”:550,”height”:733},{“url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/17/e2/49/17/photo1jpg.jpg”,”width”:960,”height”:1280},{“url”:”https://media-cdn.tripadvisor.com/media/photo-w/17/e2/49/17/photo1jpg.jpg”,”width”:1024,”height”:1365}]}]}}}},”2366591566″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d15210051-Reviews-B_B_Metalla-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”2448100469″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d2346968-Reviews-Euro_Hotel_Iglesias-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”2612548945″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d6498520-Reviews-Bed_and_Breakfast_La_Babbajola-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”2634074783″:{“data”:{“currency”:{“code”:”EUR”,”name”:”Euro”,”symbol”:”u20AC”}}},”2642484758″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d2395677-Reviews-Su_Bistentu-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”2860399939″:{“data”:{“explicitPreferences”:{“where”:{“value”:2043769},”segment”:{“value”:null},”dates”:{“value”:null},”interests”:{“value”:[{“type”:”TAG”,”value”:”20072″,”selected”:false,”display”:{“displayText”:”Cucina sarda”}},{“type”:”TAG”,”value”:”10643″,”selected”:false,”display”:{“displayText”:”Frutti di mare”}},{“type”:”TAG”,”value”:”4617″,”selected”:false,”display”:{“displayText”:”Cucina italiana”}},{“type”:”TAG”,”value”:”10641″,”selected”:false,”display”:{“displayText”:”Pizzerie”}},{“type”:”TAG”,”value”:”10992″,”selected”:false,”display”:{“displayText”:”Cibi senza glutine”}},{“type”:”TAG”,”value”:”9201″,”selected”:false,”display”:{“displayText”:”Altri alloggi”}},{“type”:”TAG”,”value”:”10649″,”selected”:false,”display”:{“displayText”:”Cucina mediterranea”}},{“type”:”TAG”,”value”:”10613″,”selected”:false,”display”:{“displayText”:”Cucina locale”}},{“type”:”TAG”,”value”:”9909″,”selected”:false,”display”:{“displayText”:”Dessert”}},{“type”:”TAG”,”value”:”9901″,”selected”:false,”display”:{“displayText”:”Forni”}},{“type”:”TAG”,”value”:”11776″,”selected”:false,”display”:{“displayText”:”Bar e pub”}},{“type”:”TAG”,”value”:”10665″,”selected”:false,”display”:{“displayText”:”Cucina vegetariana”}},{“type”:”TAG”,”value”:”6217″,”selected”:false,”display”:{“displayText”:”Hotel con piscina”}}]}}}},”3197971389″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d14929050-Reviews-B_B_Piazza_Sella_40-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”3203394210″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d15604874-Reviews-Olimpia_B_B-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”3405896834″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d19765700-Reviews-Le_Calle-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”3516262821″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d15684284-Reviews-Alba_Sarda_Residence-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”3567868215″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d7594069-Reviews-B_B_Pedra_Rubia-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”3628735999″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d15308960-Reviews-Sa_domu_rubia-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”3949504347″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d1413003-Reviews-Hotel_Artu-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”4124967176″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d12991289-Reviews-Sui_Tetti_di_Iglesias-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”4143104688″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d1461876-Reviews-Hotel_Sport_Village-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”4239769725″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d12617805-Reviews-B_B_Santa_Barbara-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”4259012981″:{“data”:{“safetyInfo”:[{“safetyTags”:[]}],”locations”:[{“placeType”:”ACCOMMODATION”,”route”:{“url”:”/Hotel_Review-g652013-d8628392-Reviews-B_B_Domus_Vista-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}}]}},”4264807349″:{“data”:{“locations”:[{“name”:”Iglesias”}],”insightProfile”:{“locations”:[{“location”:{“locationId”:652013,”parentId”:2451493,”name”:”Iglesias”,”url”:”/Tourism-g652013-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Vacations.html”,”HOTELS_URL”:”/Hotels-g652013-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g652013-Activities-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”RESTAURANTS_URL”:”/Restaurants-g652013-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Italia, Europa”,”longOnlyHierarchyTypeaheadV2″:”Provincia di Carbonia-Iglesias, Italia”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g652013-Reviews-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/10/5f/82/26/masua.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/10/5f/82/26/masua.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/10/5f/82/26/masua.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/10/5f/82/26/masua.jpg”},{“width”:250,”height”:141,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/10/5f/82/26/masua.jpg”},{“width”:320,”height”:180,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/320×120/10/5f/82/26/masua.jpg”},{“width”:550,”height”:309,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/10/5f/82/26/masua.jpg”},{“width”:768,”height”:432,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/768×250/10/5f/82/26/masua.jpg”},{“width”:1024,”height”:576,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/10/5f/82/26/masua.jpg”},{“width”:1024,”height”:576,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1024×250/10/5f/82/26/masua.jpg”},{“width”:1280,”height”:720,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1280×250/10/5f/82/26/masua.jpg”},{“width”:1600,”height”:900,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/10/5f/82/26/masua.jpg”},{“width”:2560,”height”:1440,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/2560×500/10/5f/82/26/masua.jpg”}]},”placeType”:”MUNICIPALITY”}}]},”popularDestinations”:[{“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, Stati Uniti”,”longOnlyHierarchyTypeaheadV2″:”New York, Stati Uniti”},”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”:186338,”parentId”:186217,”name”:”Londra”,”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”:”Inghilterra, Regno Unito”,”longOnlyHierarchyTypeaheadV2″:”Inghilterra, Regno Unito”},”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”:187147,”parentId”:187144,”name”:”Parigi”,”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”:”u00CEle-de-France, Francia”,”longOnlyHierarchyTypeaheadV2″:”u00CEle-de-France, Francia”},”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”:187807,”parentId”:2481599,”name”:”Rimini”,”url”:”/Tourism-g187807-Rimini_Province_of_Rimini_Emilia_Romagna-Vacations.html”,”HOTELS_URL”:”/Hotels-g187807-Rimini_Province_of_Rimini_Emilia_Romagna-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g187807-Activities-Rimini_Province_of_Rimini_Emilia_Romagna.html”,”RESTAURANTS_URL”:”/Restaurants-g187807-Rimini_Province_of_Rimini_Emilia_Romagna.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Emilia-Romagna, Italia”,”longOnlyHierarchyTypeaheadV2″:”Provincia di Rimini, Italia”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g187807-Reviews-Rimini_Province_of_Rimini_Emilia_Romagna-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/11/d8/ac/e4/tiberius-bridge.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:250,”height”:156,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:320,”height”:199,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/320×120/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:550,”height”:342,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:768,”height”:478,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/768×250/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:1024,”height”:636,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:1024,”height”:637,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1024×250/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:1280,”height”:796,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1280×250/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:2000,”height”:1244,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/11/d8/ac/e4/tiberius-bridge.jpg”},{“width”:2560,”height”:1592,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/2560×500/11/d8/ac/e4/tiberius-bridge.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:187895,”parentId”:2043770,”name”:”Firenze”,”url”:”/Tourism-g187895-Florence_Tuscany-Vacations.html”,”HOTELS_URL”:”/Hotels-g187895-Florence_Tuscany-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g187895-Activities-Florence_Tuscany.html”,”RESTAURANTS_URL”:”/Restaurants-g187895-Florence_Tuscany.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Toscana, Italia”,”longOnlyHierarchyTypeaheadV2″:”Provincia di Firenze, Italia”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g187895-Reviews-Florence_Tuscany-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1b/33/dc/8a/caption.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/1b/33/dc/8a/caption.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/1b/33/dc/8a/caption.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/1b/33/dc/8a/caption.jpg”},{“width”:250,”height”:167,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/1b/33/dc/8a/caption.jpg”},{“width”:550,”height”:367,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/1b/33/dc/8a/caption.jpg”},{“width”:1024,”height”:683,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/1b/33/dc/8a/caption.jpg”},{“width”:1280,”height”:853,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/1b/33/dc/8a/caption.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:187902,”parentId”:2043779,”name”:”Siena”,”url”:”/Tourism-g187902-Siena_Tuscany-Vacations.html”,”HOTELS_URL”:”/Hotels-g187902-Siena_Tuscany-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g187902-Activities-Siena_Tuscany.html”,”RESTAURANTS_URL”:”/Restaurants-g187902-Siena_Tuscany.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Toscana, Italia”,”longOnlyHierarchyTypeaheadV2″:”Provincia di Siena, Italia”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g187902-Reviews-Siena_Tuscany-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/14/10/2f/a7/siena.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/14/10/2f/a7/siena.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/14/10/2f/a7/siena.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/14/10/2f/a7/siena.jpg”},{“width”:250,”height”:74,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/14/10/2f/a7/siena.jpg”},{“width”:550,”height”:163,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/14/10/2f/a7/siena.jpg”},{“width”:1024,”height”:304,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/14/10/2f/a7/siena.jpg”},{“width”:1280,”height”:380,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/14/10/2f/a7/siena.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:187907,”parentId”:2614991,”name”:”Perugia”,”url”:”/Tourism-g187907-Perugia_Province_of_Perugia_Umbria-Vacations.html”,”HOTELS_URL”:”/Hotels-g187907-Perugia_Province_of_Perugia_Umbria-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g187907-Activities-Perugia_Province_of_Perugia_Umbria.html”,”RESTAURANTS_URL”:”/Restaurants-g187907-Perugia_Province_of_Perugia_Umbria.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Umbria, Italia”,”longOnlyHierarchyTypeaheadV2″:”Provincia di Perugia, Italia”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g187907-Reviews-Perugia_Province_of_Perugia_Umbria-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/15/33/f9/12/perugia.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/15/33/f9/12/perugia.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/15/33/f9/12/perugia.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/15/33/f9/12/perugia.jpg”},{“width”:250,”height”:78,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/15/33/f9/12/perugia.jpg”},{“width”:550,”height”:173,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/15/33/f9/12/perugia.jpg”},{“width”:1024,”height”:321,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/15/33/f9/12/perugia.jpg”},{“width”:1280,”height”:402,”url”:”https://media-cdn.tripadvisor.com/media/photo-m/1280/15/33/f9/12/perugia.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:194830,”parentId”:2043777,”name”:”Montecatini Terme”,”url”:”/Tourism-g194830-Montecatini_Terme_Province_of_Pistoia_Tuscany-Vacations.html”,”HOTELS_URL”:”/Hotels-g194830-Montecatini_Terme_Province_of_Pistoia_Tuscany-Hotels.html”,”ATTRACTIONS_URL”:”/Attractions-g194830-Activities-Montecatini_Terme_Province_of_Pistoia_Tuscany.html”,”RESTAURANTS_URL”:”/Restaurants-g194830-Montecatini_Terme_Province_of_Pistoia_Tuscany.html”,”isGeo”:true,”locationV2″:{“placeType”:”MUNICIPALITY”,”names”:{“longOnlyHierarchyTypeahead”:”Toscana, Italia”,”longOnlyHierarchyTypeaheadV2″:”Province of Pistoia, Italia”},”vacationRentalsRoute”:{“url”:”/VacationRentals-g194830-Reviews-Montecatini_Terme_Province_of_Pistoia_Tuscany-Vacation_Rentals.html”}},”thumbnail”:{“photoSizes”:[{“width”:0,”height”:0,”url”:”https://dynamic-media-cdn.tripadvisor.com/media/photo-o/0d/58/a3/c0/sunset.jpg?w=100&h=100&s=1″},{“width”:50,”height”:50,”url”:”https://media-cdn.tripadvisor.com/media/photo-t/0d/58/a3/c0/sunset.jpg”},{“width”:150,”height”:150,”url”:”https://media-cdn.tripadvisor.com/media/photo-l/0d/58/a3/c0/sunset.jpg”},{“width”:180,”height”:200,”url”:”https://media-cdn.tripadvisor.com/media/photo-i/0d/58/a3/c0/sunset.jpg”},{“width”:250,”height”:166,”url”:”https://media-cdn.tripadvisor.com/media/photo-f/0d/58/a3/c0/sunset.jpg”},{“width”:320,”height”:213,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/320×120/0d/58/a3/c0/sunset.jpg”},{“width”:550,”height”:365,”url”:”https://media-cdn.tripadvisor.com/media/photo-s/0d/58/a3/c0/sunset.jpg”},{“width”:768,”height”:510,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/768×250/0d/58/a3/c0/sunset.jpg”},{“width”:1024,”height”:680,”url”:”https://media-cdn.tripadvisor.com/media/photo-w/0d/58/a3/c0/sunset.jpg”},{“width”:1024,”height”:680,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1024×250/0d/58/a3/c0/sunset.jpg”},{“width”:1280,”height”:850,”url”:”https://media-cdn.tripadvisor.com/media/photo-o/0d/58/a3/c0/sunset.jpg”},{“width”:1280,”height”:850,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/1280×250/0d/58/a3/c0/sunset.jpg”},{“width”:2560,”height”:1700,”url”:”https://media-cdn.tripadvisor.com/media/photo-c/2560×500/0d/58/a3/c0/sunset.jpg”}]},”placeType”:”MUNICIPALITY”},{“locationId”:297555,”parentId”:297556,”name”:”Sharm el Sheik”,”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”:”Egitto, Africa”,”longOnlyHierarchyTypeaheadV2″:”Mar Rosso e Sinai, Egitto”},”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”},{“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”:”Repubblica Dominicana, Caraibi”,”longOnlyHierarchyTypeaheadV2″:”La Altagracia Province, Repubblica Dominicana”},”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”: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”:”Turchia, Europa”,”longOnlyHierarchyTypeaheadV2″:”Turchia, Europa”},”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”: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, Messico”,”longOnlyHierarchyTypeaheadV2″:”Penisola dello Yucatan, Messico”},”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”: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”:”Emirati Arabi Uniti, Medio Oriente”,”longOnlyHierarchyTypeaheadV2″:”Emirato di Dubai, Emirati Arabi Uniti”},”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”}]}},”156401003945857″:{“data”:{“currentLocale”:{“pointOfSaleName”:”Italia”,”ietfLocale”:”it”,”languageName”:”Italiano”,”country”:{“locationId”:187768,”name”:”Italia”}}}}},”messages”:{“filter_ffffe84e”:”Filtra”,”footer_explore_v2″:”Esplora”,”photo_uploader_add_a_location_tag”:”Aggiungi un tag per la localitu00E0″,”ugc_uploader_photo_v3″:”Pubblica foto”,”trips_error_default_update_comment”:”Si u00E8 verificato un problema con l’aggiornamento di questo commento. Riprova.”,”ugc_uploader_photo_v2″:”Pubblica foto”,”embedded_content_remember_choice_label”:”Ricorda la mia scelta”,”cx_explicit_preferences_end_body_geo”:”Ora inizia a scoprire le fantastiche idee di altri viaggiatori come te per {destinationGeoName}.”,”best_places_around”:”Trova i posti migliori nelle vicinanze”,”map_no_results_remove_filters”:”rimuovere i filtri”,”filters_show_all”:”Mostra tutto”,”command_where_to_screen_v2″:”Indica dove vuoi andare.”,”trips_lander_title”:”Viaggi su Tripadvisor”,”cx_explicit_preferences_cta_traveling_partner”:”In viaggio con compagno/a”,”trips_error_save_trip_full”:”Errore! Troppi elementi nel tuo Viaggio. Rimuovi qualche elemento e riprova a salvare.”,”help_center_topics_ffffe427″:”Argomenti principali del Centro assistenza”,”post_photo_upload_another_video”:”Trascina oppure u003c/> u003cspan class=”{sColorClass1}”>carica un’altra foto u003c/span>”,”cx_explicit_preferences_cta_traveling_family”:”In viaggio con la famiglia”,”stat_modal_trip_name”:”Nome del viaggio”,”stat_modal_saved_to_tripname_with_bold”:”Salvato in u003cb>{TripName}u003c/b>”,”select_all_filters”:”Seleziona tutto”,”onboarding_social_brand_splash_get_started_cta”:”Inizia”,”inspiration_region_6_ffffee49″:”Africa e Medio Oriente”,”reg_and_join”:”ISCRIVITI”,”cx_explicit_preferences_destination_subheader2″:”Ti mostreremo i consigli di altri viaggiatori che ci sono stati.”,”mem_settings”:”Impostazioni”,”board_basis_all_inclusive”:”Tutto compreso”,”remove_location_cf6″:”Elimina localitu00E0″,”mobile_kilometers_short_form”:”km”,”cx_explicit_preferences_segment_friends”:”Amici”,”plus_hotels_plus_tooltip”:”Deals on hotels worldwide. Savings on tours and activities. Member perks and benefits. $99/year. u003ca href=”{0}”>Learn moreu003c/a>”,”onetap_subhead_signin_alerts_deals”:”Accedi per ricevere offerte e avvisi sui prezzi”,”common_Hotels”:”Hotel”,”common_Signin”:”Entra”,”embedded_content_show_content_label”:”Visualizza contenuto esterno”,”home_location_things_near_you”:”Dicci dove vivi per ricevere grandi idee su attivitu00E0 vicine a te.”,”mobile_profile_update_error_username_invalid_characters”:”Usa solo lettere dell’alfabeto (A-Z), numeri, caratteri di sottolineatura “_” e trattini “-“.”,”trips_error_default_add_item_to_trip”:”Si u00E8 verificato un problema con l’aggiunta dell’elemento al Viaggio. Riprova.”,”hrm_flyoutupsell_reviewcollection”:”Raccogliamo piu00F9 recensioni per voi ancora piu00F9 facilmente. Con piu00F9 recensioni avete maggiori opportunitu00E0 di migliorare la posizione in classifica e aumentare la visibilitu00E0 su Tripadvisor.”,”social_confirm_close_photo_post”:”Sicuro di voler chiudere il post?”,”map_no_results_title”:”Nessun risultato trovato”,”mem_account_info”:”Informazioni sull’account”,”respond_to_a_review_ffffe427″:”u003ca href=”{0}”>Rispondiu003c/a> a una recensione”,”I_live_in”:”Vivo a…”,”seo_empty_photo_prompt”:”Sei stato presso {0}?”,”trips_collaborator_privacy_modal”:”Questo viaggio u00E8 {privacySetting}. Solo il proprietario del viaggio puu00F2 modificare questa impostazione.”,”mv_photos_from_professionals”:”professionisti”,”btn_cancel”:”Annulla”,”attractions.cart_button_acc”:”Carrello”,”onboarding_social_name_screen_username_helper_text_period_814″:”Questo nome utente univoco aiuta i viaggiatori a cercarti.”,”cx_explicit_preferences_cta_month2″:”In viaggio a {month}”,”cx_explicit_preferences_cta_solo2″:”Da solo”,”map_auto_search_label”:”Cerca mentre sposto la mappa”,”onetap_message_unlock”:”Scopri il meglio di Tripadvisor”,”common_more_ffffe87d”:”Altro”,”aw_done_ffffe1e5″:”Fatto”,”trip_note_update_error”:”Si u00E8 verificato un problema con l’aggiornamento della nota del Viaggio. Riprova.”,”create_trip_screen_privacy_private”:”Privato”,”brand_save_money_we_search_200″:”u003cb>Risparmia.u003c/b> Cerchiamo gli hotel ai prezzi piu00F9 bassi su piu00F9 di 200 siti.”,”mobile_no_results_found_8e0″:”Nessun risultato trovato”,”trips_stat_modal_profanity_check_native”:”Non u00E8 stato possibile creare il tuo viaggio. I viaggi pubblici non possono contenere linguaggio volgare. Riprova.”,”cma_disclaimer_teaser_msg”:”Impatto dei compensi pagati a Tripadvisor sull’ordine dei prezzi mostrati. I tipi di camera possono variare.”,”file_size_too_big_photo_oops_message”:”Le dimensioni di questo file non sono supportate. Assicurati che siano inferiori a {0}”,”utility_nav_cart”:”Carrello”,”num_night_stay_plus_flight_v2″:”Soggiorno di {nNights, plural, one{# notte} other{# notti}} + volo”,”trips_reported_explanation”:”il tuo viaggio non soddisfa il u003ca href=”https://www.tripadvisorsupport.com/hc/it/articles/360008133913-Tripadvisor-s-Content-Policy”>Regolamento per i contenutiu003c/a> di Tripadvisor per i viaggi pubblici ed u00E8 stato impostato come privato. Non puu00F2 essere pubblicato di nuovo.”,”list”:”Elenco”,”attractions.cart_recapture.alert.headline”:”Ora puoi riprendere la prenotazione da dove l’avevi interrotta.”,”rd_hd_viewMap”:”Guarda la mappa”,”owners_managelisting_open”:”Aprite”,”show_n_results”:”Mostra {0, plural, one{# risultato} other{# risultati}}”,”insurance_title”:”Assicurazione”,”cx_explicit_preferences_interests_header2″:”Cosa vuoi fare in viaggio?”,”stat_modal_save_to_trip_v2″:”Salva in un viaggio”,”member_support_reviews”:”Recensioni”,”hotels_only”:”Solo hotel”,”cx_explicit_preferences_welcome_subheader2″:”Rispondi ad alcune domande sul viaggio cosu00EC potremo mostrarti idee piu00F9 personalizzate.”,”ds_textarea_minimum_characters”:”{numCount}/{numLimit} caratteri min”,”post_photo_upload_photos_button”:”Carica foto”,”trips_error_default_edit_trip”:”Si u00E8 verificato un problema con la modifica di questo Viaggio. Riprova.”,”stat_modal_change”:”Modifica”,”profile_update_error_username_too_short”:”{0} deve contenere almeno 3 caratteri”,”a11y_skip_link”:”Vai al contenuto principale”,”mobile_offline_megabyte_ffffec6c”:”{0} MB”,”global_nav_content_cta_post”:”Pubblica”,”cx_explicit_preferences_profile_hometown_help2″:”Ricevi idee di viaggio e offerte sui voli in base alla tua cittu00E0″,”cx_explicit_preferences_profile_end_screen_no_name”:”Grazie.”,”common_Signout”:”Esci”,”nearby_use_my_location”:”Usa la mia posizione”,”map_no_results_change_dates”:”cambiare le date”,”cx_explicit_preferences_segment_header”:”Con chi viaggi?”,”cx_explicit_preferences_cta_dates2″:”In viaggio dal {date1} al {date2}”,”hrm_flyoutupsell_hr”:”Salve {sUserDisplayName}, accedete alle nostre soluzioni di gestione della reputazione che vi aiutano a migliorare il punteggio e la posizione in classifica su Tripadvisor.”,”filters_show_more”:”Mostra di piu00F9″,”cx_explicit_preferences_cta_months2″:”In viaggio da {month1} a {month2}”,”ta_filters”:”Filtri”,”getlistednew_list_on_tripadvisor_ffffe427″:”Elenca la tua struttura”,”ib_more_info”:”Ulteriori informazioni”,”post_photo_accepted_formats”:”Formati foto supportati: .jpg .jpeg .gif e .png”,”common_price_range_currency_plus_v3″:”{0}u2013{1}+”,”my_name_is”:”Il mio nome u00E8…”,”global_travel_notice_covid19″:”scopri di piu00F9 sul COVID-19″,”linkify_url_error”:”L’URL inserito non u00E8 corretto”,”post_photo_video_count_text”:”Foto {nCurrentphotoCount} di {nTotalphotoCount}”,”profile_update_error_username_contains_ta_words”:”Parole come “Staff”, “Admin” o “Tripadvisor” non sono consentite.”,”photos_provided_by_2_1bed”:”Alcune foto fornite da {0}.”,”new_photo_terms_of_use”:”Caricando questa foto,u00A0dichiaro di essere il proprietario dei contenuti e accetto i u003ca href={link} target=’_blank’>Termini di utilizzou003c/a> di Tripadvisor”,”are_you_an_owner_ffffe427″:”Sei un u003ca href=”{0}”>proprietario o un rappresentanteu003c/a>?”,”dual_search_popular_destinations”:”DESTINAZIONI PIu00D9 RICHIESTE”,”stat_modal_general_error”:”Si u00E8 verificato un problema nel salvare questo elemento. Riprova.”,”cx_explicit_preferences_dates_flexible”:”Le mie date sono flessibili”,”global_travel_notice_head”:”AVVISO PER CHI VIAGGIA:”,”nav_rs_premium_contact_support”:”Chiamate il numero {sSupportPhoneNumber} e indicate il vostro ID: {nLocationId}”,”board_basis_half_board”:”Mezza pensione”,”cx_explicit_preferences_cta_interested_in”:”Ti interessa”,”taking_safety_measures”:”Misure di sicurezza adottate”,”bhotw_region_europe_title”:”Europa”,”see_all_results_for”:”Vedi tutti i risultati per “{query}””,”dual_search_recently_viewed_all_caps”:”CERCATI DI RECENTE”,”common_dist_km”:”{0} km”,”trip_contains_profanity”:”Il tuo viaggio contiene linguaggio volgare e non puu00F2 essere pubblicato. Modifica il viaggio e riprova. Domande? Consulta il u003ca href=”https://www.tripadvisorsupport.com/hc/it/articles/360008133913-Tripadvisor-s-Content-Policy”>Regolamento per i contenutiu003c/a> di Tripadvisor.”,”mob_ads_sponsored”:”Sponsorizzato”,”check_email_subheader”:”Controlla la posta e usa il codice di sconto per vivere un viaggio fantastico spendendo meno.”,”profile_update_error_username_too_long”:”{0} non puu00F2 contenere piu00F9 di 20 caratteri”,”onboarding_social_name_screen_returning_header”:”Conferma o aggiorna il tuo profilo”,”map”:”Mappa”,”social_mobile_reason_for_sponsored”:”Sponsorizzato”,”airm_mobile_show_more”:”Mostra di piu00F9″,”select_trip_header”:”Seleziona un viaggio”,”ds_award_michelin_one_star_label”:”Una stella MICHELIN”,”trips_lander_md”:”Con Viaggi u00E8 facile salvare piani di viaggio, creare liste dei desideri, segnare su una mappa tutte le tue idee per ristoranti, attivitu00E0 e alloggi e portarle con te ovunque.”,”no_availailability_from_partners”:”Nessuna disponibilitu00E0 dai nostri partner nelle date indicate”,”mw_sort_Filter”:”Filtra”,”visit_your_center_ffffe427″:”Visita il u003ca href=”{0}”>Centro Gestioneu003c/a>”,”dual_search_ghost_im_going_to”:”Vado au2026″,”m1_trips_unsave_error”:”Si u00E8 verificato un problema con la rimozione di questo elemento. Riprova.”,”have_other_questions_ffffe427″:”Domande?”,”ds_textarea_maximum_characters”:”{numCount}/{numLimit} caratteri max”,”hrm_flyoutupsell_ownerresponse”:”Risparmiate tempo rispondendo alle recensioni su Tripadvisor, Google e Facebook da un’unica pagina.”,”hotel_class_filter_updated_label_plural”:”{nStar, plural, one{# stella} other{# stelle}}”,”meta_ui_contact_hotel_c2b”:”Contatta l’hotel per verificare la disponibilitu00E0″,”common_Read_more”:”Scopri di piu00F9″,”social_edit_profile_username”:”Nome utente”,”10_off_tour_activity_v2″:”u003cspan class=”{1}”>10% di scontou003c/span>u003cbr/> su tour o attivitu00E0″,”trips_error_default_add_item_comment_v2″:”Si u00E8 verificato un problema con l’aggiunta della nota a questo elemento del Viaggio. Riprova.”,”common_dist_mi”:”{0} mi”,”inbox_title”:”Posta in arrivo”,”stat_modal_create_a_trip_v2″:”Crea un viaggio”,”popular_brands”:”Brand piu00F9 richiesti”,”onboarding_social_name_screen_display_name_helper_text_period_814″:”Viene mostrato nel tuo profilo e nei contenuti che pubblichi.”,”visit_the_help_center_ffffe427″:”Visita il u003ca href=”{0}”>Centro assistenzau003c/a>”,”safety.more_info”:”Altre info”,”trips_lander_copy_3b”:”Accedi facilmente ai luoghi salvati quando sei in viaggio, ovunque tu vada”,”post_video_typeahead_placeholder_text_search”:”Cerca”,”trips_error_general_default”:”Si u00E8 verificato un problema con questo Viaggio. Riprova.”,”social_nowFollowing”:”Stai seguendo”,”cx_explicit_preferences_cta_header”:”Descrivi il tuo viaggio”,”common_Thingstodo”:”Cose da fare”,”TAFlights_filter_title_reset”:”Reimposta”,”plus_filter_show_all”:”Show all stays with member savings & perks”,”my_bookings_headtext_fffff9b3″:”Prenotazioni”,”tavrs_view_profile”:”Vedi profilo”,”post_video_location_typeahead_add_location”:”Aggiungi un’altro luogo”,”sng_a11y_max_walkability”:”Punteggio massimo accessibilitu00E0 pedonale”,”common_Next”:”Avanti”,”trips_log_in_now”:”Accedi ora”,”close_map”:”Chiudi la mappa”,”more_hotels_on_tripadvisor”:”Altri hotel su Tripadvisor”,”add_more_photos_mw_uploader”:”Aggiungi altre foto”,”res_view_details_done”:”Fine”,”global_nav_profile_my_business”:”La mia attivitu00E0″,”plus_x_more_symbol_only”:”+ {0}”,”ampersand_up”:”e oltre”,”continue_sub_cta”:”Continua da qui”,”cx_explicit_preferences_segment_solo”:”Da solo”,”compliment_9bd”:”Siamo spiacenti, si u00E8 verificato un errore tecnico. Ti preghiamo di riprovare piu00F9 tardi. “,”where_to_hint_text”:”Parigi, Costa Rica, Brasile…”,”stat_modal_removed_from_tripname”:”Rimosso da {sTripName}”,”common_Populardestinations”:”Destinazioni piu00F9 richieste”,”post_photos_form_header”:”Pubblica foto”,”create_trip_screen_privacy_public”:”Pubblico”,”2019_by_skipping_username_step”:”Se salti questo passaggio, ti verranno assegnati uno pseudonimo e un @nomeutente generati automaticamente”,”cx_explicit_preferences_segment_partner”:”Compagno/a”,”create_trip_general_error_v2″:”Si u00E8 verificato un problema con la creazione di questo viaggio. Riprova.”,”cx_explicit_preferences_welcome_yes”:”Su00EC, procedi”,”trips_save_CTA”:”Salva”,”profile_update_error_username_already_exists”:”{0} u00E8 giu00E0 in uso”,”cx_explicit_preferences_profile_hometown”:”Vivo a…”,”mx_nearby”:”Qui vicino”,”expiry_date_cta”:”u003cspan class=”{0}”>Affrettati:u003c/span> scade il {sDate} alle {sTime}”,”common_Search”:”Cerca”,”save_all_items_modal_header”:”Salva tutti gli elementi in un Viaggio”,”sng_michelin_year”:”MICHELIN {0}”,”attractions.cart_recapture.abandoned_cart_overlay_cta”:”Vai al carrello per visualizzare gli articoli salvati l’ultima volta e completa l’acquisto quando vuoi.”,”h_filters_apply”:”Applica”,”explicit_preferences_account_screen_name”:”Nome”,”showing_nearby”:”Nelle vicinanze ({0})”,”stat_modal_view_trip_v2″:”Vedi viaggio”,”board_basis_full_board”:”Pensione completa”,”cx_explicit_preferences_edit_cta_header”:”Dettagli del viaggio”,”mw_common_menu_fffffd37″:”Menu00F9″,”common_price_range_v3″:”{0}u2013{1}”,”vp_per_person_short”:”p.p.”,”ONB_saves_educator_tap_the_heart_subhead”:”Ti aiutiamo a pianificare un viaggio fantastico. Quando vedi qualcosa che ti piace, tocca il cuore per salvarlo.”,”sng_a11y_max_distance”:”Distanza massima”,”cx_explicit_preferences_profile_name_help”:”Questo u00E8 il nome che verru00E0 mostrato su Tripadvisor”,”footer_ta_sites_v2″:”Siti di Tripadvisor”,”hrm_flyoutupsell_cta_tryitforfree”:”Provatele gratis”,”ts_hotel_filter_tooltip”:”Mostra gli hotel e gli alloggi che adottano misure di sicurezza come procedure di sanificazione aggiuntive, regolamenti per l’uso delle mascherine e altro ancora. Scopri di piu00F9 visitando la nostra pagina u003ca target=”_blank” href=”https://www.tripadvisor.com/travel-safe”>Viaggiare Sicuriu003c/a>.”,”sng_a11y_min_price”:”Prezzo minimo”,”link_uploader_refresh”:”Aggiorna”,”m1_trips_save_success_stat_d2″:”Salvato! Ora organizzalo in un Viaggio.”,”footer_do_business_v2″:”Collabora con noi”,”ib_tooltip”:”i [information tooltip]”,”common_Cookie_consent_14f6″:”Consenti i cookie”,”hrm_flyoutupsell_cta_starttrial”:”Iniziate una prova gratuita”,”trip_privacy_setting_header”:”Scegli chi puu00F2 vedere il tuo Viaggio”,”price_slider_plus_short”:”+ {0}”,”uploader_error_required_field”:”Questo campo u00E8 obbligatorio”,”mobile_help_center_url”:”https://www.tripadvisorsupport.com/hc/it”,”sng_award_michelin_plate”:”Piatto Michelin”,”common_Restaurants”:”Ristoranti”,”p13n_radius_show_nearby_filter_header”:”Mostra nelle vicinanze”,”hotels_map_also_show_transit”:”Trasporti”,”new_photos_terms_of_use”:”Caricando queste foto,u00A0dichiaro di essere il proprietario dei contenuti e accetto i u003ca href={link} target=’_blank’>Termini di utilizzou003c/a> di Tripadvisor”,”trips_move_error”:”Si u00E8 verificato un problema durante lo spostamento dell’elemento. Riprova.”,”sng_award_michelin_bib”:”Bib Gourmand Michelin”,”post_photo_tips_guidelines”:”Puoi caricare fino a 10 foto alla volta”,”cx_explicit_preferences_destination_header2″:”Benissimo. Dove vuoi andare?”,”trips_education_amazing_ideas_one_place”:”Viaggi: le tue fantastiche idee di viaggio nello stesso posto”,”cx_explicit_preferences_cta_family2″:”Con la famiglia”,”sng_a11y_max_price”:”Prezzo massimo”,”common_Close”:”Chiudi”,”hsx_any_distance”:”Qualsiasi distanza”,”board_basis_breakfast_included”:”Colazione inclusa”,”soical_loading_error_2″:”Riprova.”,”full_view”:”Vista completa”,”ds_award_michelin_two_star_label”:”Due stelle MICHELIN”,”post_photo_or_just_text”:”oppure”,”abandon_cart_home_banner_2350″:”Sei ancora interessato?”,”common_btn_cancel_ffffe209″:”Annulla”,”cx_explicit_preferences_end_body_nearby”:”Ora inizia a scoprire le fantastiche idee nelle vicinanze di altri viaggiatori come te.”,”post_photo_drag_and_drop_from_desktop”:”Trascina un file dal desktop “,”map_search_redo_search_button_text”:”Cerca nei dintorni”,”h_walkability_filter_pill_v2″:”accessibilitu00E0 pedonale: da {nMinWalkability} a {nMaxWalkability}”,”mobile_try_again”:”Riprova”,”attractions.cart_recapture.alert_body”:”Fai clic qui in qualsiasi momento per completare la prenotazione. Accedi o registrati per andare al carrello da qualsiasi dispositivo.”,”utility_nav_profile”:”Profilo”,”poi_sort_by”:”Ordina per”,”region_apac_25ed”:”Asia Pacifico”,”post_photo_unsupported_file”:”Questo tipo di file non u00E8 supportato. Consulta il regolamento per le foto di Tripadvisor. “,”trips_inline_profanity_check”:”I viaggi pubblici non possono contenere linguaggio volgare”,”create_trip_screen_privacy_public_explanation_v2″:”Visibile a tutti i viaggiatori su Tripadvisor, inclusi gli amici con cui condividi il tuo Viaggio”,”command_companion_v2″:”Indica con chi viaggi.”,”cx_explicit_preferences_edit_trip_details”:”Modifica i dettagli del viaggio”,”tags_category_tag_airport_transportation”:”Trasporti per l’aeroporto”,”command_interests_screen”:”Scegli cosa vuoi fare durante il viaggio”,”profile_update_error_display_name_too_long”:”{0} non puu00F2 contenere piu00F9 di 40 caratteri”,”deselect_all_filters”:”Deseleziona tutto”,”common_26ec”:”u00A9 {0} TripAdvisor LLC”,”map_no_results_suggestions_mobile”:”Puoi provare a rimuovere i filtri, cambiare le date o ampliare l’area di ricerca.”,”common_ffffe429″:”Scrivi una u003ca href=”{0}”>recensioneu003c/a>”,”board_basis_self_catering”:”Con uso cucina”,”social_no_permission”:”Non disponi delle autorizzazioni per eseguire questa operazione.”,”common_Forums”:”Forum”,”common_Allrightsreserved”:”Tutti i diritti riservati.”,”social_nCount_followers2″:”{0, plural, one{# follower} other{# follower}}”,”cma_disclaimer_message”:”Gli elenchi delle offerte di prenotazione per ciascuna struttura tengono conto del compenso pagato a Tripadvisor dai nostri partner. I prezzi mostrati possono riferirsi a diversi tipi di camera. I prezzi mostrati sono quelli piu00F9 bassi trovati per il tipo di camera piu00F9 economica disponibile, in base ai dati forniti dai nostri partner al momento della ricerca.”,”post_photo_more_info_2″:”Per saperne di piu00F9, consulta la u003cspan>guida dello strumento di caricamento delle fotou003c/span>”,”mobile_back_8e0″:”Indietro”,”mobile_reviews_plural”:”{0, plural, one{# recensione} other{# recensioni}}”,”Disclaimer_Hotel_Sort_Hamon_FR”:”L’inserzione di alloggi su Tripadvisor u00E8 gratuita e l’elenco potrebbe non essere esaustivo. Gli alloggi non possono ottenere una classificazione organica piu00F9 vantaggiosa a pagamento. I profili sponsorizzati vengono pubblicati a pagamento e sono contrassegnati dalla dicitura “Sponsorizzato”. u003cbr>n- L’opzione “Classifica dei viaggiatori” mostra i risultati in base all’Indice di popolaritu00E0, che tiene conto della qualitu00E0, della data di pubblicazione e della quantitu00E0 delle recensioni da parte degli utenti per ogni struttura. u003cbr>n- L’opzione “Miglior rapporto qualitu00E0-prezzo” classifica i risultati in base ai dati di Tripadvisor, tra cui valutazioni dei viaggiatori, tariffe, disponibilitu00E0, frequenza delle prenotazioni, posizione e preferenze degli utenti. u003cbr>n- L’opzione “Prezzi piu00F9 bassi” classifica i risultati in base ai prezzi offerti dai nostri partner. u003cbr>n- L’opzione “Distanza” classifica i risultati in base alla distanza dal centro della cittu00E0 e alla disponibilitu00E0. u003cbr>n- L’opzione “Solo per te” classifica i risultati in base alle preferenze e alla cronologia di navigazione dell’utente su Tripadvisor. u003cbr>nLe offerte sui prezzi mostrate si basano sui dati forniti dai partner aderenti e potrebbero non essere esaustive. L’ordine in cui vengono presentati i prezzi puu00F2 dipendere in parte dalle offerte dei partner nelle aste CPC.”,”typeAheadSearchFor_fffff81b”:”Cerca “{0}””,”filters_show_less”:”Mostra meno”,”trips_error_duplicate”:”Hai giu00E0 un viaggio con questo nome.”,”hotel_info_about_service”:”Informazioni sul servizio”,”stat_modal_saved_to_tripname_with_bold_v3″:”Salvato in u003ca href=”{TripLink}” class=”{TripClass}”>u003cb>{TripName}u003c/b>u003c/a>”,”command_dates_screen_geo”:”Indica quando andrai a {destinationGeoName}.”,”create_trip_success_toast_with_bold”:”u003cb>{TripName}u003c/b> creato!”,”more_link”:”Piu00F9″,”post_photo_upload_failed”:”Non u00E8 stato possibile caricare la foto. Riprova. “,”discover_ttd”:”Scopri le attivitu00E0″,”jfy”:”Solo per te”,”cx_explicit_preferences_welcome_no”:”No, grazie”,”expand_search_area”:”Amplia area di ricerca”,”og_masthead_social_sharing_ffffe427″:”Condivisione su social network”,”onboarding_social_name_screen_username_ghost_text”:”ad es.: ViaggiatoreEsperto123″,”exp_see_n_experiences_from_cost_cap”:”{0, plural, one {Vedi # esperienza} other {Vedi # esperienze}} a partire da {1}”,”cx_explicit_preferences_welcome_header_no_name2″:”Grazie. Ora inizia a pianificare un viaggio indimenticabile.”,”embedded_content_third_party_notice”:”Questo contenuto u00E8 offerto da terzi ({hostName}). Visualizzando i contenuti esterni accetti i {termsUrl} di {hostName}.”,”common_Xof5bubbles”:”Punteggio {0} su 5″,”cx_explicit_preferences_cta_traveling_friends”:”In viaggio con gli amici”,”distance_from_poi”:”{0} da {1}”,”cx_explicit_preferences_cta_partner2″:”Con compagno/a”,”trip_planner_clear”:”Cancella”,”trips_error_default_edit_privacy”:”Si u00E8 verificato un problema con l’aggiornamento della privacy di questo Viaggio. Riprova.”,”qa_mobile_header_list”:”Lista”,”embedded_content_terms_and_conditions_label”:”termini e condizioni”,”sanitation_checklist_covid19_travel_safe_v2″:”Viaggia sicuro durante l’emergenza u003cspan style=”white-space: nowrap;”>COVID-19u003c/span>”,”footer_disclaimer_line1_no_country”:”Questa versione del nostro sito u00E8 destinata in generale a chi parla {language}, fatta eccezione per i casi in cui esista una versione del sito specifica per il paese o l’area geografica. u00C8 possibile utilizzare il menu a discesa per accedere alle altre versioni di Tripadvisor per specifici paesi e aree geografiche.”,”hamon_law_more_info”:”Altre informazioni”,”stat_modal_undo”:”Annulla”,”mobile_sort_8e0″:”Ordina”,”free_cancel_ahead”:”u003cspan class=”{0}”>Senza impegno:u003c/span> cancella gratis fino a 24 ore prima.”,”mv_photos_from_management”:”direzione”,”footer_disclaimer_line2_estimates”:”I prezzi indicativi degli hotel mostrati nelle pagine “Esplora” rappresentano stime estrapolate dai dati storici sui prezzi.”,”success_repost_photo”:”La tua foto u00E8 stata pubblicata!”,”view_all_n_deals_plural”:”Vedi {0, plural, one{# offerta} other{tutte le # offerte}}”,”onboarding_social_skip_link”:”Salta per ora”,”footer_about_ta_v2″:”Tripadvisor”,”mv_photos_from_everyone”:”tutti”,”mobile_search_filter_clear_26e8″:”Cancella”,”stat_modal_create”:”Crea”,”mw_js_positionPermissionDenied”:”Tripadvisor non u00E8 autorizzato a conoscere la tua posizione geografica. Modifica le impostazioni del browser per permettere a Tripadvisor di accedere a questa informazione e riprova.”,”stat_modal_removed_from_tripname_with_bold_v3″:”Rimosso da u003ca href=”{TripLink}” class=”{TripClass}”>u003cb>{TripName}u003c/b>u003c/a>”,”walkability_explanation2″:”Gli alloggi vengono valutati con un punteggio da 0 a 100. Piu00F9 alto u00E8 il punteggio, piu00F9 facile u00E8 per i viaggiatori trovare ristoranti e attivitu00E0 raggiungibili a piedi.”,”ip_view_profile_1cf1″:”Vedi profilo”,”h_show_results”:”Mostra i risultati”,”hrm_flyoutupsell_managementcenter”:”Accedete alle nostre soluzioni di gestione della reputazione per raccogliere piu00F9 recensioni e fare in modo che i viaggiatori prenotino con fiducia.”,”profile_update_error_contains_profanity”:”Le volgaritu00E0 non sono consentite”,”hotels_popular_locations”:”Localitu00E0 gettonate”,”view_hotel”:”Vedi hotel”,”cx_explicit_preferences_profile_header3″:”Benvenuto! Raccontaci di te.”,”m1_trips_my_saves_header”:”Preferiti”,”cx_explicit_preferences_dates_header”:”Quando vai a {destinationGeoName}?”,”region_americas_25ed”:”Americhe”,”file_size_limit_photo”:”Le dimensioni del file devono essere inferiori a {0} MB.”,”cx_explicit_preferences_cta_subheader3″:”Vedrai idee personalizzate di viaggiatori come te.”,”new_trip_name_error_msg”:”Scegli un nuovo nome per il Viaggio.”,”onboarding_social_name_screen_display_name_field_v2″:”Nome visualizzato”,”onboarding_social_name_screen_display_name_ghost_text”:”ad es.: Mario Rossi”,”mobile_miles_short_form”:”mi”,”footer_disclaimer_line2″:”TripAdvisor LLC non fornisce alcuna garanzia della disponibilitu00E0 dei prezzi pubblicizzati sui relativi siti e applicazioni. Per usufruire dei prezzi indicati potrebbe essere richiesto un soggiorno di una determinata durata o potrebbero esserci date di non validitu00E0, condizioni o altre limitazioni. TripAdvisor LLC non u00E8 responsabile dei contenuti presenti su siti esterni che non sono gestiti da o proprietu00E0 di Tripadvisor.”,”footer_disclaimer_line3″:”TripAdvisor LLC non u00E8 un agente di prenotazione o tour operator. Quando prenoti con uno dei nostri partner, assicurati di consultare il relativo sito per informazioni complete su tutti i costi applicabili.”,”footer_disclaimer_line1″:”Questa u00E8 una versione del sito destinata in generale a chi parla {language} in {country}. Se risiedi in un altro paese o in un’altra area geografica, seleziona la versione appropriata di Tripadvisor dal menu a discesa.”,”trips_education_easy_save_orgaize_map_bring_with_you”:”Con Viaggi u00E8 facile salvare, organizzare e segnare su una mappa tutte le tue idee per ristoranti, attivitu00E0 e alloggi e portarle con te ovunque.”,”mobile_discovery_where_to”:”Dove vuoi andare?”,”ds_award_michelin_three_star_label”:”Tre stelle MICHELIN”,”trips_error_default_move_item”:”Si u00E8 verificato un errore durante lo spostamento di questo elemento del Viaggio. Riprova.”,”view_all_deals_from_commerce_on_list_screen”:”Vedi tutte le {0} offerte da {1}”,”mv_photos_from_travelers”:”viaggiatori”,”common_9bc”:”Valuta”,”h_distance_filter_search_placeholder”:”Cerca altri luoghi”,”common_TripAdvisor”:”Tripadvisor”,”terms_and_policy_links”:”Continuando, accetti i nostri u003ca rel=”nofollow” class=”{2}” target=”_blank” href=”{0}”>Termini di utilizzou003c/a> e confermi di aver letto la nostra u003ca rel=”nofollow” class=”{2}” target=”_blank” href=”{1}”>Normativa sulla privacyu003c/a>.”,”m2_trips_detail_date_display”:”{0} u2022 {1}”,”common_more_capital_ffffe27f”:”Altro”,”trips_lander_copy_1″:”Salva i luoghi consigliati dai viaggiatori per il tuo viaggio”,”flash_uploader_tips_and_guidelines_10d8″:”Consigli e linee guida”,”trips_trip_name_character_count”:”{nCharacterCount}/50 caratteri”,”trips_lander_copy_2″:”Vedi su una mappa le attivitu00E0, i ristoranti e gli hotel che hai salvato”,”onboarding_social_name_screen_cta”:”Conferma”,”common_NEW_1bd8″:”NOVITu00C0″,”trips_privacy_explanation_new”:”Visibile a te e agli amici con cui condividi il Viaggio, ma non ad altri utenti di Tripadvisor.”,”dmo_hdr_alerts”:”Avvisi”,”cx_explicit_preferences_interests_subheader3″:”Vedi di cosa parlano gli altri viaggiatori che sono stati a {destinationGeoName} e scegli quello che potrebbe piacerti.”,”mg2019_fbot_see_where_friends_traveled”:”Scopri dove sono stati i tuoi amici”,”common_Readless”:”Mostra meno”,”trips_error_unsave”:”Si u00E8 verificato un problema durante la rimozione di questo elemento dal tuo Viaggio. Riprova.”,”footer_get_app_v2″:”Scarica l’app”,”mobile_profile_update_error_display_name_too_short”:”Il nome visualizzato deve contenere almeno 3 caratteri”,”stat_modal_name_exceeds_50″:”Il nome del viaggio non deve superare 50 caratteri”,”social_Saved”:”Salvato”,”cx_explicit_preferences_cta_date2″:”In viaggio il {date}”,”board_basis_room_only”:”Solo camera”,”footer_region”:”Regione”,”map_no_results_suggestions_without_expanding_area_mobile”:”Puoi provare a rimuovere i filtri o a modificare le date”,”mobile_ib_nights_plural”:”{0, plural, one{# notte} other{# notti}}”,”payments_partners_impact_order_accoms_room_types_vary”:”I pagamenti effettuati dai partner influiscono sull’ordine degli alloggi elencati e dei prezzi mostrati. I tipi di camera possono variare.”,”ur_rd_WriteReview”:”Scrivi una recensione”,”trips_lander_header”:”Sei in partenza? Salva le tue fantastiche idee nello stesso posto con Viaggi.”,”trips_product_name”:”Viaggi”,”explicit_preferences_who_are_you_traveling_with_skip_button”:”SALTA”,”cx_explicit_preferences_welcome_header3″:”Ciao, {displayName}. Inizia a pianificare un viaggio indimenticabile.”,”mx_geo_picker_popular_destinations”:”DESTINAZIONI PIu00D9 RICHIESTE”,”cx_explicit_preferences_segment_family”:”Famiglia”,”hotel_plus_flight”:”Hotel + Volo”,”empty_trip_home_get_started”:”Inizia”,”dual_search_worldwide”:”In tutto il mondo”,”cx_explicit_preferences_cta_friends3″:”Con amici”,”mobile_delete”:”Elimina”,”common_Postphotos”:”Invia foto”,”social_loading_error_1″:”Si u00E8 verificato un errore.”,”popular_hotels”:”Hotel piu00F9 richiesti”,”attractions.cta_more_info”:”Altre info”,”cx_explicit_preferences_profile_end_screen2″:”Grazie, {displayName}”,”trips_error_default_add_note”:”Si u00E8 verificato un problema con l’aggiunta della nota al Viaggio. Riprova.”,”sng_a11y_min_walkability”:”Punteggio minimo accessibilitu00E0 pedonale”,”homepage_war_button”:”Scrivi una recensione”,”airm_sortBy”:”Ordina per:”,”view_deal”:”Vedi l’offerta”,”cx_explicit_preferences_cta_traveling_solo”:”In viaggio da solo”,”post_photo_add_description_v2_part_2″:”Informa altri viaggiatori della tua foto “,”post_photo_add_description_v2_part_1”:”Aggiungi una descrizione “,”reg_back”:”Indietro”,”guidelines_and_policies_ffffe427″:”Linee guida e normative”,”collapse_deals”:”Comprimi le offerte”,”map_no_results_also_try”:”Puoi anche provare a:”},”features”:{“ungate_sponsored_listing_clicks”:true,”prod_runtime_tracking”:false,”curated_shelves_preview”:true,”boost_selected_filter_options_to_top”:false,”optimus_new_members”:false,”trips_heart_icon”:true,”travel_advice”:true,”mw_hard_gate_ghost”:false,”fbot_single_screen_onb”:false,”home_lithium”:true,”pixel_loading_tracing”:false,”hamon_fr”:false,”tc_2020_botb”:true,”cma_disclaimer”:true,”t11208_variant_a_curated_broad_interest_categories”:false,”react_tracking_impressions”:true,”info_icons_over_question_icons”:true,”post_signup_attr_promo_explicit_preferences_control”:false,”t11213_mip_2_account_screen”:false,”ep_has_command_screen”:false,”rich_content_editor”:true,”fusion_lithium_hotels_list_page”:false,”hydrate_while_loading”:false,”ml_hard_gate_dt_v3_master”:false,”tourism_management_center”:false,”restaurant_list_consolidation”:false,”hr_mediaviewer_display_360_photos”:true,”consent_mgmt_enabled”:true,”hotels_filters_reskin”:true,”h_defer_facebook_sdk”:true,”travel_advice_preview”:true,”ml_hard_gate_dt_v1_master”:false,”ml_hard_gate_dt_v2_master”:false,”facebook_onetap_mobile”:false,”hr_disable_cpm_ads”:false,”timed_refresh_after_15s”:false,”vr_broad_geo_list_redesign”:false,”pricing_mode_filter”:true,”cx_explicit_preferences_geopill”:false,”hrm_beta_full_story”:true,”cx_explicit_preferences_onboarding”:false,”saves_educator_explicit_preferences”:false,”t11216_mip_2_traditional_sign_up_ll”:false,”ep_has_command_screen_control”:false,”post_signup_attr_promo_explicit_preferences”:false,”fusion_detail_page_lithium”:false,”post_signup_attr_promo_masthead_join”:false,”fusion_lithium_attraction_products_list_page”:false,”hotels_walkability_filters”:false,”apr_lithium_control”:false,”forum_home_lithium”:true,”hr_dark_green_icons”:true,”optimus”:false,”housekeeping_mw_ux_updates”:false,”cx_explicit_preferences_scoped_home_cta”:true,”ml_hard_gate_targeting_logic”:false,”hard_gate_excl_disable_domain_direct”:false,”t11210_mip_variant_c”:false,”hotel_filters_fullscreen”:false,”seo_image_carousel_v3″:false,”ml_hard_gate_no_reqlo”:false,”cruise_better_by_sea”:false,”hotels_photo_no_indicator_dots”:false,”desktop_web”:true,”image_carousel_ssr_7_images”:false,”trips_pop_stat_modal”:true,”hr_defer_facebook_sdk”:false,”review_detail_hard_gate_master_dt”:false,”trips_skip_check_whitelist_public_trips”:true,”rubicon_header_bidding”:true,”distance_filter_without_search”:true,”sentryio_js”:false,”cx_brand_refresh_degreen”:true,”cx_explicit_preferences_scoped_home_cta_always_edit”:true,”entry_point_update”:true,”mobile_web”:false,”saves_hotspot_button”:false,”tourism_lithium”:true,”ml_hard_gate_master”:false,”fusion_lithium_attractions_client_side_navigation”:false,”t10950_dynamic_tab_variant_1″:false,”account_screen_onb_control”:false,”facebook_onetap_desktop”:false,”attractions_lithium_filtered”:false,”bcom_partner_photos”:true,”cx_brand_refresh_header”:true,”exposed_text_legal_disclaimers”:false,”media_preview_focal_point”:false,”nearby_lithium”:true,”t10951_dynamic_tab_variant_2″:false,”om_btb_gating_atf”:false,”mw_lists_delineation_and_medium_pic_photo”:false,”qualtrics_surveys_any”:false,”pixel_loading_timings”:false,”housekeeping_ux_updates”:true,”t4b_management_center_full_story_sampled”:false,”trips_bookmark”:true,”quicklinks_sorting_model”:false,”account_screen_onb”:false,”cx_explicit_preferences_onetap”:true,”tc_is_registered”:false,”saves_educator_control”:false,”health_notice_banner”:true,”t4b_management_center_full_story”:true,”t10349_facebook_onetap_w_value_copy”:false,”navigation_to_scoped_home”:false,”articles_lithium”:true,”trips_2018_collab”:true,”hotels_media_mas_carousels_render_when_almost_visible”:false,”home_location_prompt_master”:true,”hotels_medium_photo_peek”:false,”dummy_cache_on_client”:false,”disable_reg_dialog_for_hardgate”:false,”review_detail_hard_gate_dt_other_servlets”:false,”mobile_fixed_ad”:false,”ml_hard_gate_model_v1_reevaluate_on_page_view”:false,”account_merge”:true,”datepicker_field_prominence_tests”:true,”hotels_merch_flag_tweaks”:true,”articles_home_lithium”:true,”cx_brand_refresh_saves”:true,”ml_hard_gate_dt”:false,”image_carousel_ssr_all_images”:false,”t11209_mip_variant_b”:false},”renders”:[{“id”:”component_6″,”props”:{},”package”:”BqoTCX”},{“id”:”component_8″,”props”:{},”package”:”cmhYcA”},{“id”:”component_13″,”props”:{},”package”:”t7RFOq”},{“id”:”@ta/trips.save-to-trip:location:3313026_component_16″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:3313026},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:2293555_component_19″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:2293555},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:2346968_component_22″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:2346968},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:7594069_component_25″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:7594069},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:8628392_component_28″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:8628392},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:1461876_component_31″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:1461876},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:11984873_component_34″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:11984873},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:3584972_component_37″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:3584972},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:6498520_component_40″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:6498520},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:1413003_component_43″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:1413003},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:1899143_component_46″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:1899143},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:10781823_component_49″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:10781823},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:2395677_component_52″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:2395677},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:4916378_component_55″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:4916378},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:6950683_component_58″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:6950683},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:10684669_component_61″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:10684669},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:2513350_component_64″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:2513350},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:12617805_component_67″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:12617805},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:15210051_component_70″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:15210051},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:14929050_component_73″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:14929050},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:2282498_component_76″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:2282498},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:19934773_component_79″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:19934773},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:13005667_component_82″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:13005667},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:15684284_component_85″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:15684284},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:15308960_component_88″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:15308960},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:12991289_component_91″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:12991289},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:19765700_component_94″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:19765700},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:19619921_component_97″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:19619921},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:15604874_component_100″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:15604874},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”},{“id”:”@ta/trips.save-to-trip:location:1951884_component_103″,”props”:{“object”:{“__typename”:”LocationInformation”,”locationId”:1951884},”widgetStyle”:”listing”,”tooltipCopy”:null,”toastCopy”:null,”toastCopySubhead”:null,”allowPopStatModal”:false},”package”:”zlqOrw”}],”profilables”:[],”strictModeRoots”:[],”hydrations”:[{“id”:”component_7″,”props”:{},”package”:”08L0XB”},{“id”:”component_1″,”props”:{“initialSelectedFilters”:[{“param”:”hsf”,”trackingName”:”safety_measures”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”df”,”trackingName”:”deals”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”oof”,”trackingName”:”optimus_offers”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”zfb”,”trackingName”:”brand”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”pRange”,”trackingName”:”Filters_price”,”excludeFromClearAll”:false,”filterType”:”single”,”value”:””,”displayValues”:{}},{“param”:”bs”,”trackingName”:”brand”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”distFrom”,”trackingName”:”Filters_location”,”excludeFromClearAll”:false,”filterType”:”single”,”value”:””,”displayValues”:{}},{“param”:”cat”,”trackingName”:”accommodation”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:”1,2,3″,”displayValues”:{}},{“param”:”zfn”,”trackingName”:”neighborhood”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”ns”,”trackingName”:”brand”,”excludeFromClearAll”:false,”filterType”:”single”,”value”:””,”displayValues”:{}},{“param”:”pop”,”trackingName”:”popular”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”catTag”,”trackingName”:”accommodation”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”trating”,”trackingName”:”ta_rating”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”blender_tag”,”trackingName”:null,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”zfd”,”trackingName”:null,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”distFromPnt”,”trackingName”:null,”excludeFromClearAll”:false,”filterType”:”single”,”value”:””,”displayValues”:{}},{“param”:”amen”,”trackingName”:”amenities”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”zff”,”trackingName”:”style”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”wlk”,”trackingName”:null,”excludeFromClearAll”:false,”filterType”:”single”,”value”:””,”displayValues”:{}},{“param”:”zfc”,”trackingName”:”hotel_class”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”zft”,”trackingName”:null,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}}],”initialSortName”:”In primo piano”,”initialDescHeader”:”u003cspan class=’highlight’>62 struttureu003c/span> a Iglesias”,”initialAvailableFilters”:[{“choices”:[{“value”:”1″,”label”:”Strutture che adottano misure di sicurezza”,”tracker”:”Covid19_hotel”,”count”:6,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:0,”paramName”:”hsf”,”showCounts”:false,”title”:”COVID-19″,”trackingName”:”safety_measures”,”visible”:true},{“choices”:[{“value”:”2″,”label”:”Cancellazione gratuita”,”tracker”:”FreeCancellation”,”count”:1,”disabled”:false,”infoTipText”:”Cancellazione gratuita u00E8 un filtro a livello di offerta che si applica a un’offerta specifica dei partner, come mostrato sotto l’offerta dei partner per una singola struttura.Le altre offerte per la stessa struttura potrebbero avere vantaggi differenti.”,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:true},{“value”:”3″,”label”:”Prenota ora, paga quando soggiorni”,”tracker”:”PayAtStay”,”count”:1,”disabled”:false,”infoTipText”:”Prenota ora, paga quando soggiorni u00E8 un filtro a livello di offerta che si applica a un’offerta specifica dei partner, come mostrato sotto l’offerta dei partner per una singola struttura.Le altre offerte per la stessa struttura potrebbero avere vantaggi differenti.”,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”1″,”label”:”Strutture con Offerte Speciali”,”tracker”:”SpecialOffers”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:1,”paramName”:”df”,”showCounts”:false,”title”:”Offerte”,”trackingName”:”deals”,”visible”:true},{“choices”:[{“value”:”21372″,”label”:”Bed & Breakfast”,”tracker”:”B&Bs & Inns – Lodging Type”,”displayLink”:”/Hotels-g652013-c2-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:11,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”21371″,”label”:”Hotel”,”tracker”:”Hotels & Motels – Lodging Type”,”displayLink”:”/Hotels-g652013-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”21373″,”label”:”Altri alloggi”,”tracker”:”Specialty Lodging – Lodging Type”,”displayLink”:”/Hotels-g652013-c3-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9250″,”label”:”Appartamenti”,”tracker”:”Condo”,”displayLink”:”/Hotels-g652013-c3-zff28-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9400″,”label”:”Pensioni”,”tracker”:”Pension”,”displayLink”:”/Hotels-g652013-zft9400-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9230″,”label”:”Ranch”,”tracker”:”Ranch”,”displayLink”:”/Hotels-g652013-c3-zff27-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:2,”linkOption”:{“value”:”6″,”label”:”Vedi case vacanza”,”tracker”:”VR”,”displayLink”:”/VacationRentals-g652013-Reviews-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Vacation_Rentals.html”,”count”:0,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},”paramName”:”catTag”,”showCounts”:true,”title”:”Tipi di strutture”,”trackingName”:”accommodation”,”visible”:true},{“choices”:[],”filterType”:”price”,”index”:3,”numNights”:1,”numRooms”:1,”paramName”:”pRange”,”previewText”:null,”pricingModes”:[{“value”:”ALL_IN_RATE”,”displayValue”:”Prezzo + tasse e spese”,”disclaimerText”:”Il prezzo a notte calcolato in base alla tariffa della camera addebitata al cliente, incluse le tasse e le altre spese note e verificate secondo i dati forniti dall’utente.”,”isDefault”:true},{“value”:”ALL_IN_FULL_STAY”,”displayValue”:”Totale soggiorno + tasse e spese”,”disclaimerText”:”Il prezzo totale del soggiorno calcolato in base alla tariffa della camera addebitata al cliente, incluse le tasse e le altre spese note e verificate secondo i dati forniti dall’utente.”,”isDefault”:false}],”rangeMax”:88,”selectedPricingMode”:”ALL_IN_RATE”,”title”:”Prezzo”,”trackingName”:”Filters_price”,”visible”:true},{“choices”:[{“value”:”trating_4″,”label”:”4 punti e piu00F9″,”tracker”:”4 Bubbles and Up”,”count”:16,”disabled”:false,”bubbleRating”:4,”displayRatingAsBubbles”:true,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”amen_9179″,”label”:”Colazione inclusa”,”tracker”:”Free Breakfast”,”count”:7,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”zfc_9566″,”label”:”4 stelle”,”tracker”:”4 Star”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”catTag_21371″,”label”:”Hotel”,”tracker”:”Hotels & Motels – Lodging Type”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:4,”paramName”:”pop”,”previewText”:””,”showCounts”:false,”title”:”Molto richiesti”,”trackingName”:”popular”,”visible”:true},{“choices”:[{“value”:”9176″,”label”:”Connessione Wi-Fi gratuita”,”tracker”:”Free Wifi”,”count”:13,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9179″,”label”:”Colazione inclusa”,”tracker”:”Free Breakfast”,”count”:7,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”6217″,”label”:”Piscina”,”tracker”:”Pool”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9163″,”label”:”Parcheggio gratuito”,”tracker”:”Free Parking”,”count”:6,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9164″,”label”:”Accessibile in sedia a rotelle”,”tracker”:”Wheelchair access”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9167″,”label”:”Animali ammessi”,”tracker”:”Pets Allowed”,”count”:8,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9658″,”label”:”Aria condizionata”,”tracker”:”Air Conditioning”,”count”:12,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”11282″,”label”:”Bar a bordo piscina”,”tracker”:”Poolside Bar”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9166″,”label”:”Bar/Lounge”,”tracker”:”Bar/Lounge”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18903″,”label”:”Biciclette disponibili”,”tracker”:”Bicycles Available”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18932″,”label”:”Bollitore per tu00E8/caffu00E8″,”tracker”:”Coffee / Tea Maker”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”19131″,”label”:”Corsi di yoga”,”tracker”:”Yoga Classes – Amenities”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9168″,”label”:”Cucinino”,”tracker”:”Kitchenette”,”count”:5,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18991″,”label”:”Escursioni”,”tracker”:”Hiking – Amenities”,”count”:5,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18944″,”label”:”Immersioni”,”tracker”:”Diving”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9162″,”label”:”Internet gratis”,”tracker”:”Free Internet”,”count”:9,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18900″,”label”:”Noleggio biciclette”,”tracker”:”Bicycle Rental”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9165″,”label”:”Ristorante”,”tracker”:”Restaurant”,”count”:4,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9157″,”label”:”Servizio navetta”,”tracker”:”Shuttle Bus Service”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9667″,”label”:”Strutture per conferenze”,”tracker”:”Conference Facilities”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9160″,”label”:”Suite”,”tracker”:”Suites”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18915″,”label”:”Suite nuziale”,”tracker”:”Bridal Suite”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9170″,”label”:”Trasporti per l’aeroporto”,”tracker”:”Airport Transportation”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”11259″,”label”:”Vista mare”,”tracker”:”Ocean View”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:5,”paramName”:”amen”,”placeholderText”:”ad es.: Wi-Fi gratuito, colazione inclusa”,”previewText”:””,”showCounts”:false,”title”:”Servizi”,”trackingName”:”amenities”,”visible”:true},{“choices”:[],”filterType”:”distanceFrom”,”index”:6,”maxDistanceOption”:25,”paramName”:”distFrom”,”placeholderText”:”ad es.: Porto Flavia”,”poiTypes”:[“attr”,”air”,”uni”,”train”,”hotel”,”eat”,”theme_park”,”shop”,”general_hospital”,”port”,”ferry”,”corp”],”presetPOI”:[{“war_url”:”/UserReview-g652013-d2212797-Porto_Flavia-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”porto flavia”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d2212797-Reviews-Porto_Flavia-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Porto Flavia, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d2212797-Reviews-Porto_Flavia-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Porto Flavia, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Porto Flavia”,”name”:”Porto Flavia”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:2212797,”coords”:”39.33709,8.413085″},{“war_url”:”/UserReview-g652013-d3202774-Il_Belvedere_di_Nebida-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”il belvedere di nebida”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3202774-Reviews-Il_Belvedere_di_Nebida-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Il Belvedere di Nebida, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3202774-Reviews-Il_Belvedere_di_Nebida-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Il Belvedere di Nebida, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Il Belvedere di Nebida”,”name”:”Il Belvedere di Nebida”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3202774,”coords”:”39.310993,8.434253″},{“war_url”:”/UserReview-g652013-d3202766-Centro_Storico_Iglesias-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”centro storico iglesias”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3202766-Reviews-Centro_Storico_Iglesias-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Centro Storico Iglesias, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3202766-Reviews-Centro_Storico_Iglesias-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Centro Storico Iglesias, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Centro Storico Iglesias”,”name”:”Centro Storico Iglesias”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3202766,”coords”:”39.31291,8.54277″},{“war_url”:”/UserReview-g652013-d3202753-Isolotto_Faraglione_del_Pan_di_Zucchero-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”isolotto faraglione del pan di zucchero”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3202753-Reviews-Isolotto_Faraglione_del_Pan_di_Zucchero-Iglesias_Province_of_Carbonia_Iglesias_Sa.html”,”urls”:[{“url_type”:”attr”,”name”:”Isolotto Faraglione del Pan di Zucchero, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3202753-Reviews-Isolotto_Faraglione_del_Pan_di_Zucchero-Iglesias_Province_of_Carbonia_Iglesias_Sa.html”}],”is_broad”:false,”scope”:”global”,”name”:”Isolotto Faraglione del Pan di Zucchero, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Isolotto Faraglione del Pan di Zucchero”,”name”:”Isolotto Faraglione del Pan di Zucchero”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3202753,”coords”:”39.33204,8.43215″},{“war_url”:”/UserReview-g652013-d2044581-Consorzio_Del_Parco_Geominerario_Storico-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”consorzio del parco geominerario storico”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d2044581-Reviews-Consorzio_Del_Parco_Geominerario_Storico-Iglesias_Province_of_Carbonia_Iglesias_S.html”,”urls”:[{“url_type”:”attr”,”name”:”Consorzio Del Parco Geominerario Storico, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d2044581-Reviews-Consorzio_Del_Parco_Geominerario_Storico-Iglesias_Province_of_Carbonia_Iglesias_S.html”}],”is_broad”:false,”scope”:”global”,”name”:”Consorzio Del Parco Geominerario Storico, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Consorzio Del Parco Geominerario Storico”,”name”:”Consorzio Del Parco Geominerario Storico”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:2044581,”coords”:”39.312084,8.52691″},{“war_url”:”/UserReview-g652013-d3202748-Museo_dell_Arte_Mineraria-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”museo dell’arte mineraria”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3202748-Reviews-Museo_dell_Arte_Mineraria-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Museo dell’Arte Mineraria, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3202748-Reviews-Museo_dell_Arte_Mineraria-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Museo dell’Arte Mineraria, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Museo dell'Arte Mineraria”,”name”:”Museo dell’Arte Mineraria”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3202748,”coords”:”39.31146,8.532051″},{“war_url”:”/UserReview-g652013-d3202760-Cascate_Piscina_Irgas_e_Oridda-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”cascate piscina irgas e oridda”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3202760-Reviews-Cascate_Piscina_Irgas_e_Oridda-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Cascate Piscina Irgas e Oridda, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3202760-Reviews-Cascate_Piscina_Irgas_e_Oridda-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Cascate Piscina Irgas e Oridda, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Cascate Piscina Irgas e Oridda”,”name”:”Cascate Piscina Irgas e Oridda”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3202760,”coords”:”39.36108,8.54543″},{“war_url”:”/UserReview-g652013-d3785699-Miniera_di_Monteponi-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”miniera di monteponi”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3785699-Reviews-Miniera_di_Monteponi-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Miniera di Monteponi, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3785699-Reviews-Miniera_di_Monteponi-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Miniera di Monteponi, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Miniera di Monteponi”,”name”:”Miniera di Monteponi”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3785699,”coords”:”39.30133,8.51475″}],”previewText”:”ad es.: Porto Flavia”,”title”:”Distanza da”,”trackingName”:”Filters_location”,”units”:”km”,”useDistSlider”:true,”visible”:true},{“filterType”:”walkability”,”index”:7,”paramName”:”wlk”,”previewText”:null,”title”:”Accessibilitu00E0 pedonale”,”trackingName”:null,”visible”:true},{“choices”:[{“value”:”5″,”label”:”5 punti “,”tracker”:”5 Bubbles”,”count”:7},{“value”:”4″,”label”:”4 punti e piu00F9″,”tracker”:”4 Bubbles and Up”,”count”:16},{“value”:”3″,”label”:”3 punti e piu00F9″,”tracker”:”3 Bubbles and Up”,”count”:18},{“value”:”2″,”label”:”2 punti e piu00F9″,”tracker”:”2 Bubbles and Up”,”count”:19}],”filterType”:”trating”,”index”:9,”paramName”:”trating”,”previewText”:null,”title”:”Valutazione”,”trackingName”:”ta_rating”,”visible”:true},{“choices”:[{“value”:”9566″,”label”:”4 stelle”,”tracker”:”4″,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9568″,”label”:”3 stelle”,”tracker”:”3″,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:10,”paramName”:”zfc”,”showCounts”:false,”title”:”Categoria hotel”,”trackingName”:”hotel_class”,”visible”:true},{“choices”:[{“value”:”5184″,”label”:”A basso costo”,”tracker”:”Budget”,”count”:6,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9654″,”label”:”Fascia media”,”tracker”:”Mid-range”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”6216″,”label”:”Adatto alle famiglie”,”tracker”:”Family”,”count”:13,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”6296″,”label”:”Business”,”tracker”:”Business”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9624″,”label”:”Romantico”,”tracker”:”Romantic”,”count”:4,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:11,”paramName”:”zff”,”showCounts”:false,”title”:”Stile”,”trackingName”:”style”,”visible”:true},{“filterType”:”hotelBrandSearch”,”index”:12,”modalText”:”Brand e strutture”,”paramName”:”bs”,”placeholderText”:”Cerca per brand o nome della struttura”,”poiTypes”:[“hotel”],”presetBrands”:null,”presetPOI”:null,”previewText”:null,”title”:”Brand”,”trackingName”:”brand”,”visible”:true}]},”package”:”QZysVi”},{“id”:”component_2″,”props”:{“geoName”:”Iglesias”},”package”:”NOW72i”},{“id”:”component_4″,”props”:{“useResponsiveContainer”:”true”},”package”:”mwa76u”},{“id”:”component_5″,”props”:{},”package”:”mxARhC”},{“id”:”component_9″,”props”:{},”package”:”V7qLvM”},{“id”:”component_10″,”props”:{“hotels”:[{“longitude”:8.534569,”latitude”:39.306984},{“longitude”:8.531605,”latitude”:39.31427},{“longitude”:8.53477,”latitude”:39.31326},{“longitude”:8.547831,”latitude”:39.30533},{“longitude”:8.536548,”latitude”:39.313034},{“longitude”:8.535399,”latitude”:39.31048},{“longitude”:8.564172,”latitude”:39.293877},{“longitude”:8.554408,”latitude”:39.297436},{“longitude”:8.53282,”latitude”:39.31476},{“longitude”:8.533108,”latitude”:39.311172},{“longitude”:8.546349,”latitude”:39.3054},{“longitude”:8.52989,”latitude”:39.31351},{“longitude”:8.5372,”latitude”:39.31249},{“longitude”:8.534317,”latitude”:39.31364},{“longitude”:8.533154,”latitude”:39.30944},{“longitude”:8.533115,”latitude”:39.309513},{“longitude”:8.613904,”latitude”:39.31448},{“longitude”:8.533713,”latitude”:39.313423},{“longitude”:8.533207,”latitude”:39.312305},{“longitude”:8.59169,”latitude”:39.31108}],”zoom”:11,”geoPoint”:{“longitude”:8.53578,”latitude”:39.31256},”disableWhileLoading”:false,”toggleType”:”STATIC_MAP”},”package”:”mjTUZq”},{“id”:”component_11″,”props”:{“initialSelectedFilters”:[{“param”:”hsf”,”trackingName”:”safety_measures”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”df”,”trackingName”:”deals”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”oof”,”trackingName”:”optimus_offers”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”zfb”,”trackingName”:”brand”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”pRange”,”trackingName”:”Filters_price”,”excludeFromClearAll”:false,”filterType”:”single”,”value”:””,”displayValues”:{}},{“param”:”bs”,”trackingName”:”brand”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”distFrom”,”trackingName”:”Filters_location”,”excludeFromClearAll”:false,”filterType”:”single”,”value”:””,”displayValues”:{}},{“param”:”cat”,”trackingName”:”accommodation”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:”1,2,3″,”displayValues”:{}},{“param”:”zfn”,”trackingName”:”neighborhood”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”ns”,”trackingName”:”brand”,”excludeFromClearAll”:false,”filterType”:”single”,”value”:””,”displayValues”:{}},{“param”:”pop”,”trackingName”:”popular”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”catTag”,”trackingName”:”accommodation”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”trating”,”trackingName”:”ta_rating”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”blender_tag”,”trackingName”:null,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”zfd”,”trackingName”:null,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”distFromPnt”,”trackingName”:null,”excludeFromClearAll”:false,”filterType”:”single”,”value”:””,”displayValues”:{}},{“param”:”amen”,”trackingName”:”amenities”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”zff”,”trackingName”:”style”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”wlk”,”trackingName”:null,”excludeFromClearAll”:false,”filterType”:”single”,”value”:””,”displayValues”:{}},{“param”:”zfc”,”trackingName”:”hotel_class”,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}},{“param”:”zft”,”trackingName”:null,”excludeFromClearAll”:false,”filterType”:”multi”,”value”:””,”displayValues”:{}}],”filterCountsEnabled”:true,”geoId”:652013,”initialAvailableFilters”:[{“choices”:[{“value”:”1″,”label”:”Strutture che adottano misure di sicurezza”,”tracker”:”Covid19_hotel”,”count”:6,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:0,”paramName”:”hsf”,”showCounts”:false,”title”:”COVID-19″,”trackingName”:”safety_measures”,”visible”:true},{“choices”:[{“value”:”2″,”label”:”Cancellazione gratuita”,”tracker”:”FreeCancellation”,”count”:1,”disabled”:false,”infoTipText”:”Cancellazione gratuita u00E8 un filtro a livello di offerta che si applica a un’offerta specifica dei partner, come mostrato sotto l’offerta dei partner per una singola struttura.Le altre offerte per la stessa struttura potrebbero avere vantaggi differenti.”,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:true},{“value”:”3″,”label”:”Prenota ora, paga quando soggiorni”,”tracker”:”PayAtStay”,”count”:1,”disabled”:false,”infoTipText”:”Prenota ora, paga quando soggiorni u00E8 un filtro a livello di offerta che si applica a un’offerta specifica dei partner, come mostrato sotto l’offerta dei partner per una singola struttura.Le altre offerte per la stessa struttura potrebbero avere vantaggi differenti.”,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”1″,”label”:”Strutture con Offerte Speciali”,”tracker”:”SpecialOffers”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:1,”paramName”:”df”,”showCounts”:false,”title”:”Offerte”,”trackingName”:”deals”,”visible”:true},{“choices”:[],”filterType”:”price”,”index”:2,”numNights”:1,”numRooms”:1,”paramName”:”pRange”,”previewText”:null,”pricingModes”:[{“value”:”ALL_IN_RATE”,”displayValue”:”Prezzo + tasse e spese”,”disclaimerText”:”Il prezzo a notte calcolato in base alla tariffa della camera addebitata al cliente, incluse le tasse e le altre spese note e verificate secondo i dati forniti dall’utente.”,”isDefault”:true},{“value”:”ALL_IN_FULL_STAY”,”displayValue”:”Totale soggiorno + tasse e spese”,”disclaimerText”:”Il prezzo totale del soggiorno calcolato in base alla tariffa della camera addebitata al cliente, incluse le tasse e le altre spese note e verificate secondo i dati forniti dall’utente.”,”isDefault”:false}],”rangeMax”:88,”selectedPricingMode”:”ALL_IN_RATE”,”title”:”Prezzo”,”trackingName”:”Filters_price”,”visible”:true},{“choices”:[{“value”:”trating_4″,”label”:”4 punti e piu00F9″,”tracker”:”4 Bubbles and Up”,”count”:16,”disabled”:false,”bubbleRating”:4,”displayRatingAsBubbles”:true,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”amen_9179″,”label”:”Colazione inclusa”,”tracker”:”Free Breakfast”,”count”:7,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”zfc_9566″,”label”:”4 stelle”,”tracker”:”4 Star”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”catTag_21371″,”label”:”Hotel”,”tracker”:”Hotels & Motels – Lodging Type”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:3,”paramName”:”pop”,”previewText”:””,”showCounts”:false,”title”:”Molto richiesti”,”trackingName”:”popular”,”visible”:true},{“choices”:[{“value”:”9176″,”label”:”Connessione Wi-Fi gratuita”,”tracker”:”Free Wifi”,”count”:13,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9179″,”label”:”Colazione inclusa”,”tracker”:”Free Breakfast”,”count”:7,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”6217″,”label”:”Piscina”,”tracker”:”Pool”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9163″,”label”:”Parcheggio gratuito”,”tracker”:”Free Parking”,”count”:6,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9164″,”label”:”Accessibile in sedia a rotelle”,”tracker”:”Wheelchair access”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9167″,”label”:”Animali ammessi”,”tracker”:”Pets Allowed”,”count”:8,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9658″,”label”:”Aria condizionata”,”tracker”:”Air Conditioning”,”count”:12,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”11282″,”label”:”Bar a bordo piscina”,”tracker”:”Poolside Bar”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9166″,”label”:”Bar/Lounge”,”tracker”:”Bar/Lounge”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18903″,”label”:”Biciclette disponibili”,”tracker”:”Bicycles Available”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18932″,”label”:”Bollitore per tu00E8/caffu00E8″,”tracker”:”Coffee / Tea Maker”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”19131″,”label”:”Corsi di yoga”,”tracker”:”Yoga Classes – Amenities”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9168″,”label”:”Cucinino”,”tracker”:”Kitchenette”,”count”:5,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18991″,”label”:”Escursioni”,”tracker”:”Hiking – Amenities”,”count”:5,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18944″,”label”:”Immersioni”,”tracker”:”Diving”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9162″,”label”:”Internet gratis”,”tracker”:”Free Internet”,”count”:9,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18900″,”label”:”Noleggio biciclette”,”tracker”:”Bicycle Rental”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9165″,”label”:”Ristorante”,”tracker”:”Restaurant”,”count”:4,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9157″,”label”:”Servizio navetta”,”tracker”:”Shuttle Bus Service”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9667″,”label”:”Strutture per conferenze”,”tracker”:”Conference Facilities”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9160″,”label”:”Suite”,”tracker”:”Suites”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”18915″,”label”:”Suite nuziale”,”tracker”:”Bridal Suite”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9170″,”label”:”Trasporti per l’aeroporto”,”tracker”:”Airport Transportation”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”11259″,”label”:”Vista mare”,”tracker”:”Ocean View”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:4,”paramName”:”amen”,”placeholderText”:”ad es.: Wi-Fi gratuito, colazione inclusa”,”previewText”:””,”showCounts”:false,”title”:”Servizi”,”trackingName”:”amenities”,”visible”:true},{“choices”:[],”filterType”:”distanceFrom”,”index”:5,”maxDistanceOption”:25,”paramName”:”distFrom”,”placeholderText”:”ad es.: Porto Flavia”,”poiTypes”:[“attr”,”air”,”uni”,”train”,”hotel”,”eat”,”theme_park”,”shop”,”general_hospital”,”port”,”ferry”,”corp”],”presetPOI”:[{“war_url”:”/UserReview-g652013-d2212797-Porto_Flavia-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”porto flavia”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d2212797-Reviews-Porto_Flavia-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Porto Flavia, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d2212797-Reviews-Porto_Flavia-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Porto Flavia, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Porto Flavia”,”name”:”Porto Flavia”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:2212797,”coords”:”39.33709,8.413085″},{“war_url”:”/UserReview-g652013-d3202774-Il_Belvedere_di_Nebida-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”il belvedere di nebida”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3202774-Reviews-Il_Belvedere_di_Nebida-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Il Belvedere di Nebida, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3202774-Reviews-Il_Belvedere_di_Nebida-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Il Belvedere di Nebida, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Il Belvedere di Nebida”,”name”:”Il Belvedere di Nebida”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3202774,”coords”:”39.310993,8.434253″},{“war_url”:”/UserReview-g652013-d3202766-Centro_Storico_Iglesias-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”centro storico iglesias”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3202766-Reviews-Centro_Storico_Iglesias-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Centro Storico Iglesias, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3202766-Reviews-Centro_Storico_Iglesias-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Centro Storico Iglesias, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Centro Storico Iglesias”,”name”:”Centro Storico Iglesias”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3202766,”coords”:”39.31291,8.54277″},{“war_url”:”/UserReview-g652013-d3202753-Isolotto_Faraglione_del_Pan_di_Zucchero-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”isolotto faraglione del pan di zucchero”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3202753-Reviews-Isolotto_Faraglione_del_Pan_di_Zucchero-Iglesias_Province_of_Carbonia_Iglesias_Sa.html”,”urls”:[{“url_type”:”attr”,”name”:”Isolotto Faraglione del Pan di Zucchero, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3202753-Reviews-Isolotto_Faraglione_del_Pan_di_Zucchero-Iglesias_Province_of_Carbonia_Iglesias_Sa.html”}],”is_broad”:false,”scope”:”global”,”name”:”Isolotto Faraglione del Pan di Zucchero, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Isolotto Faraglione del Pan di Zucchero”,”name”:”Isolotto Faraglione del Pan di Zucchero”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3202753,”coords”:”39.33204,8.43215″},{“war_url”:”/UserReview-g652013-d2044581-Consorzio_Del_Parco_Geominerario_Storico-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”consorzio del parco geominerario storico”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d2044581-Reviews-Consorzio_Del_Parco_Geominerario_Storico-Iglesias_Province_of_Carbonia_Iglesias_S.html”,”urls”:[{“url_type”:”attr”,”name”:”Consorzio Del Parco Geominerario Storico, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d2044581-Reviews-Consorzio_Del_Parco_Geominerario_Storico-Iglesias_Province_of_Carbonia_Iglesias_S.html”}],”is_broad”:false,”scope”:”global”,”name”:”Consorzio Del Parco Geominerario Storico, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Consorzio Del Parco Geominerario Storico”,”name”:”Consorzio Del Parco Geominerario Storico”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:2044581,”coords”:”39.312084,8.52691″},{“war_url”:”/UserReview-g652013-d3202748-Museo_dell_Arte_Mineraria-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”museo dell’arte mineraria”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3202748-Reviews-Museo_dell_Arte_Mineraria-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Museo dell’Arte Mineraria, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3202748-Reviews-Museo_dell_Arte_Mineraria-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Museo dell’Arte Mineraria, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Museo dell'Arte Mineraria”,”name”:”Museo dell’Arte Mineraria”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3202748,”coords”:”39.31146,8.532051″},{“war_url”:”/UserReview-g652013-d3202760-Cascate_Piscina_Irgas_e_Oridda-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”cascate piscina irgas e oridda”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3202760-Reviews-Cascate_Piscina_Irgas_e_Oridda-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Cascate Piscina Irgas e Oridda, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3202760-Reviews-Cascate_Piscina_Irgas_e_Oridda-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Cascate Piscina Irgas e Oridda, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Cascate Piscina Irgas e Oridda”,”name”:”Cascate Piscina Irgas e Oridda”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3202760,”coords”:”39.36108,8.54543″},{“war_url”:”/UserReview-g652013-d3785699-Miniera_di_Monteponi-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”autobroadened”:”false”,”normalized_name”:”miniera di monteponi”,”type”:”ATTRACTION”,”title”:”Attrazioni “,”document_id”:null,”is_vr”:false,”url”:”/Attraction_Review-g652013-d3785699-Reviews-Miniera_di_Monteponi-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”,”urls”:[{“url_type”:”attr”,”name”:”Miniera di Monteponi, Iglesias, Italia”,”type”:”ATTRACTION”,”url”:”/Attraction_Review-g652013-d3785699-Reviews-Miniera_di_Monteponi-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html”}],”is_broad”:false,”scope”:”global”,”name”:”Miniera di Monteponi, Iglesias, Italia”,”data_type”:”LOCATION”,”details”:{“placetype”:10021,”parent_name”:”Iglesias”,”grandparent_name”:”Italia”,”grandparent_id”:187768,”parent_id”:652013,”grandparent_place_type”:10001,”highlighted_name”:”Miniera di Monteponi”,”name”:”Miniera di Monteponi”,”parent_place_type”:10015,”parent_ids”:[652013,2451493,187879,187768,4,1],”geo_name”:”Iglesias, Italia”},”value”:3785699,”coords”:”39.30133,8.51475″}],”previewText”:”ad es.: Porto Flavia”,”title”:”Distanza da”,”trackingName”:”Filters_location”,”units”:”km”,”useDistSlider”:true,”visible”:true},{“filterType”:”walkability”,”index”:6,”paramName”:”wlk”,”previewText”:null,”title”:”Accessibilitu00E0 pedonale”,”trackingName”:null,”visible”:true},{“choices”:[{“value”:”21372″,”label”:”Bed & Breakfast”,”tracker”:”B&Bs & Inns – Lodging Type”,”displayLink”:”/Hotels-g652013-c2-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:11,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”21371″,”label”:”Hotel”,”tracker”:”Hotels & Motels – Lodging Type”,”displayLink”:”/Hotels-g652013-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:3,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”21373″,”label”:”Altri alloggi”,”tracker”:”Specialty Lodging – Lodging Type”,”displayLink”:”/Hotels-g652013-c3-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9250″,”label”:”Appartamenti”,”tracker”:”Condo”,”displayLink”:”/Hotels-g652013-c3-zff28-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9400″,”label”:”Pensioni”,”tracker”:”Pension”,”displayLink”:”/Hotels-g652013-zft9400-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9230″,”label”:”Ranch”,”tracker”:”Ranch”,”displayLink”:”/Hotels-g652013-c3-zff27-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html”,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:7,”linkOption”:{“value”:”6″,”label”:”Vedi case vacanza”,”tracker”:”VR”,”displayLink”:”/VacationRentals-g652013-Reviews-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Vacation_Rentals.html”,”count”:0,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},”paramName”:”catTag”,”showCounts”:true,”title”:”Tipi di strutture”,”trackingName”:”accommodation”,”visible”:true},{“choices”:[{“value”:”5″,”label”:”5 punti “,”tracker”:”5 Bubbles”,”count”:7},{“value”:”4″,”label”:”4 punti e piu00F9″,”tracker”:”4 Bubbles and Up”,”count”:16},{“value”:”3″,”label”:”3 punti e piu00F9″,”tracker”:”3 Bubbles and Up”,”count”:18},{“value”:”2″,”label”:”2 punti e piu00F9″,”tracker”:”2 Bubbles and Up”,”count”:19}],”filterType”:”trating”,”index”:9,”paramName”:”trating”,”previewText”:null,”title”:”Valutazione”,”trackingName”:”ta_rating”,”visible”:true},{“choices”:[{“value”:”9566″,”label”:”4 stelle”,”tracker”:”4″,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9568″,”label”:”3 stelle”,”tracker”:”3″,”count”:1,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:10,”paramName”:”zfc”,”showCounts”:false,”title”:”Categoria hotel”,”trackingName”:”hotel_class”,”visible”:true},{“choices”:[{“value”:”5184″,”label”:”A basso costo”,”tracker”:”Budget”,”count”:6,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9654″,”label”:”Fascia media”,”tracker”:”Mid-range”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”6216″,”label”:”Adatto alle famiglie”,”tracker”:”Family”,”count”:13,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”6296″,”label”:”Business”,”tracker”:”Business”,”count”:2,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false},{“value”:”9624″,”label”:”Romantico”,”tracker”:”Romantic”,”count”:4,”disabled”:false,”bubbleRating”:0,”displayRatingAsBubbles”:false,”starRating”:0,”displayRatingAsStars”:false,”highlighted”:false}],”filterType”:”checkbox”,”index”:11,”paramName”:”zff”,”showCounts”:false,”title”:”Stile”,”trackingName”:”style”,”visible”:true},{“filterType”:”hotelBrandSearch”,”index”:12,”modalText”:”Brand e strutture”,”paramName”:”bs”,”placeholderText”:”Cerca per brand o nome della struttura”,”poiTypes”:[“hotel”],”presetBrands”:null,”presetPOI”:null,”previewText”:null,”title”:”Brand”,”trackingName”:”brand”,”visible”:true}],”initialMainListMatchCount”:62},”package”:”e374ol”},{“id”:”component_12″,”props”:{“offsetTop”:”106″,”size”:”300×250-300×600″,”minWidth”:”295″,”narrowSize”:”160×600″},”package”:”SSbwxm”},{“id”:”photo-carousel-with-ribbon_component_14″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:1,”locationId”:3313026,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”8c509368-b268-42bf-8d83-d9121d28ccf1″,”ribbons”:[{“text”:”Il piu00F9 votato”,”tooltip”:”Questa u00E8 una delle strutture piu00F9 votate a Iglesias”,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”tr”},{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:3313026_component_15″,”props”:{“locationId”:3313026},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_17″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:2,”locationId”:2293555,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”f55da9ba-e593-4fcc-8475-e9b3add9851c”,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:2293555_component_18″,”props”:{“locationId”:2293555},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_20″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:3,”locationId”:2346968,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”edc3d6d4-5149-4bf0-8bda-9c6aefbdea41″,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:2346968_component_21″,”props”:{“locationId”:2346968},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_23″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:4,”locationId”:7594069,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”6f70305d-0924-47fb-9258-fd47477548e4″,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:7594069_component_24″,”props”:{“locationId”:7594069},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_26″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:5,”locationId”:8628392,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”6282b5ef-4a64-4ecf-9fc4-edce237c4e11″,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:8628392_component_27″,”props”:{“locationId”:8628392},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_29″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:6,”locationId”:1461876,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”bb7b300e-065b-4d3b-8806-b61415d70cc7″,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:1461876_component_30″,”props”:{“locationId”:1461876},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_32″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:7,”locationId”:11984873,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”3bd3710c-bdfa-4c4b-9382-9067a8b6d764″,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:11984873_component_33″,”props”:{“locationId”:11984873},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_35″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:8,”locationId”:3584972,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”5feefe48-65a2-4cef-b983-291a0a58644b”,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:3584972_component_36″,”props”:{“locationId”:3584972},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_38″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:9,”locationId”:6498520,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”afabfa79-812a-43cb-a6db-7ba6f1a1c85d”,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:6498520_component_39″,”props”:{“locationId”:6498520},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_41″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:10,”locationId”:1413003,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”2d9c01ac-5a72-4b97-9be5-1e93fa7861ab”,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:1413003_component_42″,”props”:{“locationId”:1413003},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_44″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:11,”locationId”:1899143,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”aa652280-8d41-49a3-bea8-d5fd9ad6466f”,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:1899143_component_45″,”props”:{“locationId”:1899143},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_47″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:12,”locationId”:10781823,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”1c7b99f5-c0e0-49c1-903f-eb0687fdb911″,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:10781823_component_48″,”props”:{“locationId”:10781823},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_50″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:13,”locationId”:2395677,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”f0dc1b94-96c8-40c4-98c1-a5082782ec30″,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:2395677_component_51″,”props”:{“locationId”:2395677},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_53″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:14,”locationId”:4916378,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”a5c81e23-413a-43d1-8e7e-f03ce643e671″,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:4916378_component_54″,”props”:{“locationId”:4916378},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_56″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:15,”locationId”:6950683,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”74efe67c-1e07-44a5-aa1b-a3e8a2bc2ccc”,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:6950683_component_57″,”props”:{“locationId”:6950683},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_59″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:16,”locationId”:10684669,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”29b2733b-f54c-49e6-8a94-55a57a048634″,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:10684669_component_60″,”props”:{“locationId”:10684669},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_62″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:17,”locationId”:2513350,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”df971eb0-ab87-459a-990d-f7b9d6e2cc3b”,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:2513350_component_63″,”props”:{“locationId”:2513350},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_65″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:18,”locationId”:12617805,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”75f4c77b-5c82-4ebc-87e3-9dda251e8b90″,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:12617805_component_66″,”props”:{“locationId”:12617805},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_68″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:19,”locationId”:15210051,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”0096cbfe-fcbc-4553-9d30-13e0d3910d62″,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:15210051_component_69″,”props”:{“locationId”:15210051},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_71″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:20,”locationId”:14929050,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”eaaa0b40-ddf9-4c8f-86f3-7c646ae93016″,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:14929050_component_72″,”props”:{“locationId”:14929050},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_74″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:21,”locationId”:2282498,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”25bd125d-74da-46ea-bc02-6c1f2e033ec2″,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:2282498_component_75″,”props”:{“locationId”:2282498},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_77″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:22,”locationId”:19934773,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”aa645ca0-445c-4cdd-881e-9fcc80ec5928″,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:19934773_component_78″,”props”:{“locationId”:19934773},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_80″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:23,”locationId”:13005667,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”b68fd868-a766-4b50-bfac-985d0f472b7d”,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:13005667_component_81″,”props”:{“locationId”:13005667},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_83″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:24,”locationId”:15684284,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”259cda6a-27d2-4ed3-8bf2-99505a021bfe”,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:15684284_component_84″,”props”:{“locationId”:15684284},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_86″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:25,”locationId”:15308960,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”4f8df6af-7853-4a25-956e-dfe94839897a”,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:15308960_component_87″,”props”:{“locationId”:15308960},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_89″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:26,”locationId”:12991289,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”8c71778d-0318-47fa-a6b9-9b0d0b53631d”,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:12991289_component_90″,”props”:{“locationId”:12991289},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_92″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:27,”locationId”:19765700,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”c3683854-c2d0-4827-ab20-61ffc1b6e110″,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:19765700_component_93″,”props”:{“locationId”:19765700},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_95″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:28,”locationId”:19619921,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”21f3e849-34a0-4fde-aad7-cd408b206435″,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:19619921_component_96″,”props”:{“locationId”:19619921},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_98″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:29,”locationId”:15604874,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”af1825f6-7a8b-4b55-a28b-083b50452bd9″,”ribbons”:[],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:15604874_component_99″,”props”:{“locationId”:15604874},”package”:”Jbh1_o”},{“id”:”photo-carousel-with-ribbon_component_101″,”props”:{“isPageLoad”:true,”thumbnailOnly”:true,”shadowTrackRibbons”:[],”impressionKey”:”51c56fb99b0c4230b9d3f7804fb27896″,”listIndex”:30,”locationId”:1951884,”dataStrategy”:”ta”,”maxRibbonCount”:2,”listingKey”:”61a59338-235f-4f1e-9110-e77560f433c2″,”ribbons”:[{“text”:”Colazione inclusa”,”tooltip”:null,”showIcon”:false,”showOnMobile”:true,”color”:null,”icon”:null,”snippet”:null,”idmSURUrl”:null,”idmAspectTrackingText”:null,”type”:”bi”}],”isSponsored”:false},”package”:”H5mpt_”},{“id”:”@ta/hotels.list-sanitization-icon:1951884_component_102″,”props”:{“locationId”:1951884},”package”:”Jbh1_o”},{“id”:”component_3″,”props”:{},”package”:”GVTdZB”}],”lazyLoadedModules”:[“08L0XB/L9pCXd”,”nZ7AfP”,”qxSl3I”,”4CrHtN”],”ssrPreloadedModules”:[“6FdDYx”,”RSaHg-“,”nZ7AfP”,”qxSl3I”,”4CrHtN/6GI-1U”,”xJD91H”,”-i3PJS”,”1lTcUI”,”PCLJ0D/6Vq8GY”,”08L0XB/L9pCXd”,”4CrHtN/A1SA6X”,”RWfDzK”,”5-GvUO/gmVWZD”,”nPD67q/3S0Uyu”,”6gU0uK”,”PCLJ0D/YtE_eG”,”thFMrK/RQFZYD”,”4CrHtN”,”08L0XB/hCC7uv”,”q9bHm9″,”bsx_H5″,”wPStQ3″,”XpoM88/nBtf9e”,”neHaXV”,”m7h4d5″,”pBQaod”,”a3FWKi”,”kNh38S”,”j5kmnF”],”bundles”:[“XjkW5l”,”peh_3a”,”b3xEaf”,”u6QS-O”,”QZqymc”,”eDFcUX”,”535agn”,”V08PS7″,”wId9j-“,”nIW_Rw”,”l6BSGt”,”h74DsO”,”5-GvUO”,”UWCmG6″,”5-GvUO/vwu6ty”,”gt5mGS”,”MHKLZN”,”6hYgtn”,”w31zLi”,”jb_4W2″,”_qQcW3″,”vd4nty”,”B7vHz6″,”oo669z”,”asW43G”,”hA1RHn”,”mv7yXI”,”Ov85iR”,”xegF5W”,”8xs-IB”,”N4pTU2″,”c9QfOM”,”UhC_bI”,”fflEqf”,”F8raOV”,”5X2em-“,”fsml46″,”I81Q5L”,”_g8cls”,”rf6OMe”,”OyezR0″,”E8NZou”,”O8LbtK”,”n3D4ip”,”YwNsO_”,”DbN8HP”,”z2XL6d”,”faye7n”,”vuC2Rl”,”gsKhh7″,”T7FcVR”,”vmXh3M”,”W3_c4H”,”38xMQJ”,”-i3PJS”,”Jk5sjx”,”6RAaot”,”VANuRt”,”2R4xv2″,”OMqGt0″,”xZoNdB”,”PCLJ0D”,”b57PJQ”,”MGkW-Q”,”NJheb1″,”_cZwhS”,”Dg5_-9″,”yfS4GB”,”pLbCP4″,”CWppnH”,”Q7TAd7″,”dROhDJ”,”_Z-1K3″,”iuYvTO”,”BLrxBS”,”0DsHEV”,”OnmvvE”,”w4JHTr”,”RiHMo-“,”gGW5sO”,”jaCyxS”,”DjNvou”,”lMO0v3″,”vWxBAe”,”PCLJ0D/-EYc4Q”,”17wlKY”,”rKB8Wf”,”jSLlaY”,”aunxON”,”30t50h”,”cDcdfi”,”4LU1Ax”,”eFikmI”,”6NeHQy”,”jmIMrC”,”XtxvfD”,”vq6MSq”,”m5ZZFI”,”MG7IEl”,”uWZ6Id”,”08L0XB/r2vH2r”,”4Z07E2″,”08L0XB”,”HbmgZZ”,”TkeYrn”,”PCbs_l”,”Erjc5t”,”Bf1Sux”,”pT-O8u”,”Knxjr7″,”WkP2XE”,”mjTUZq”,”fSRrv3″,”h7E4Ym”,”GSiufF”,”XpoM88″,”9eU7bn”,”_KhVZh”,”d9h_j1″,”BsnOle”,”ngjICG”,”CSOnVf”,”x9N_Dh”,”HKQFPT”,”QZysVi”,”S2VEpX”,”kfxuer”,”qK4vTI”,”NOW72i”,”NGIiZD”,”mlRREX”,”6m_xYI”,”mwa76u”,”qKFflQ”,”mxARhC”,”2NwMnm”,”R7DQr_”,”Xi-2HZ”,”zPgUM0″,”fiorRT”,”MWFqPp”,”RA5fcz”,”O-HcBE”,”qfSfGN”,”hxnqL3″,”wU942v”,”G9idyf”,”HDgDKt”,”XS7t-Q”,”osGflv”,”AoLEtg”,”KwOV1Z”,”IuX4Ar”,”Hgrhyo”,”Oc3sTL”,”ABlMo4″,”Z7U8sN”,”lmr1u9″,”wLDeDm”,”4kVXmt”,”w2XwHO”,”BqoTCX”,”cmhYcA”,”cFqhC1″,”AjUfyu”,”V7qLvM”,”QnohJ2″,”bsx_H5″,”JjsMlI”,”RYK9JE”,”oGM-aa”,”_pymO0″,”pZzSdK”,”jbxuyk”,”iLImXn”,”x4gvL_”,”DtZPgN”,”wPStQ3″,”6KWcSB”,”e374ol”,”uW7u9D”,”UNzP-1″,”FnrCe6″,”SMVlF-“,”325u3W”,”byvhe4″,”FVQ3zY”,”WjZ7ZM”,”SSbwxm”,”t7RFOq”,”PbGVd2″,”dhsgkP”,”lYfRy0″,”-IO4YY”,”lfA4fx”,”nrVmZz”,”s1eoNx”,”CwU70X”,”u0KQ1z”,”FjZUT3″,”Jb1HNR”,”_wYjwe”,”zdk9wF”,”wc54S1″,”H5mpt_”,”eOSA73″,”Jbh1_o”,”c_rvp5″,”HZtvHO”,”PiTJFd”,”eFKnUp”,”RXx5aI”,”U-DhDC”,”LFeTN6″,”fTyhRT”,”6nM-E7″,”JFHNGL”,”vF730k”,”9I0t-6″,”zlqOrw”,”GVTdZB”,”Kv5xL1″,”xsqNye”,”08L0XB/jdYFmQ”,”-02Lut”,”dX3eZQ”,”MNKFIS”,”mHPUmd”,”griB9b”,”thFMrK”,”1yEXVQ”,”meOI_T”,”nPD67q”,”oiya90″,”0uWw9s”,”a4q8MG”,”OkJwbt”,”nPqO2d”,”fAPg3f”,”QRwZD2″,”-2hM2s”,”10CW2t”,”08L0XB/L9pCXd”,”xlsORH”,”sb81vR”,”sERCEg”,”tc4D5F”,”iZ1Bsx”,”cBPvJq”,”nZ7AfP”,”qxSl3I”,”16tLUw”,”4CrHtN”]}};(this.$WP=this.$WP||[]).push([‘@ta/features’,function(e){return [function(){e(‘default’,__WEB_CONTEXT__.pageManifest.features);},[]]},[]]);]]> 2 && arguments[2] !== undefined ? arguments[2] : new Date().getTime() + DEFAULT_TTL_HOUR; var store = _getStore() || {}; _setDataByCallbackWithStore(key, processCallback, ttl, store); _saveStore(store); } function _setDataByCallbackWithStore(uefKey, processCallback, ttl, store) { if (!_isFunction(processCallback)) { return; } var data = processCallback.call(null, store.hasOwnProperty(uefKey) && store[uefKey] || {}); if (!data) { return; } data.ttl = ttl; store[uefKey] = data; } function findDataWithCallback(key, dataConsumer) { var deleteKeyAfterReading = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var store = _getStore(); if (!store) { return; } _consumeDataWithStore(key, dataConsumer, deleteKeyAfterReading, store); _saveStore(store); } function _consumeDataWithStore(uefKey, dataConsumer, deleteEventTracking, store) { if (!_isFunction(dataConsumer)) { return; } var data = store.hasOwnProperty(uefKey) && store[uefKey]; if (!data) { return; } dataConsumer.call(null, data); if (deleteEventTracking) { delete store[uefKey]; } } function _getStore() { if (!taLocalStorage || !taLocalStorage.enabled) { return null; } var store = taLocalStorage.getObject(STORE_KEY); _cleanDeadKeysFromStore(store); return store; } function _cleanDeadKeysFromStore(storeRef) { if (storeRef) { var dateTimeNow = new Date().getTime(); for (var key in storeRef) { if (storeRef.hasOwnProperty(key)) { var data = storeRef[key]; if (data && data.ttl && data.ttl 3 && arguments[3] !== undefined ? arguments[3] : null; if (!locationId || !eventDestinationImpressionKey) { return; } if (_trackOnServlet) { var currentServlet = window.pageServlet; if (currentServlet && currentServlet.indexOf(_trackOnServlet) = 0; } function _sendGARecord( overrideTrkFn, locationId, url, eventDestinationImpressionKey, usrEventObjContainingListImpression) { if (!eventDestinationImpressionKey || !usrEventObjContainingListImpression || !usrEventObjContainingListImpression.ik) { return; } if (_isFunction(overrideTrkFn)) { overrideTrkFn.call(null, eventDestinationImpressionKey, _pageAction, usrEventObjContainingListImpression.ik, locationId); } else if (_trackingFn) { _trackingFn.call(null, eventDestinationImpressionKey, _pageAction, usrEventObjContainingListImpression.ik, locationId, url); } else { require([‘babel/babel-helpers’, ‘trjs!ta/Core/TA.Record’], function (babelHelpers, taRecord) { taRecord.addGARecordMevt(eventDestinationImpressionKey, _pageAction, usrEventObjContainingListImpression.ik, locationId, url); }); } } function _buildUEFKey(locationId) { if (!locationId) { return; } var dateArray = ta && ta.page && ta.page.getDates && ta.page.getDates(‘STAYDATES’); if (dateArray && !Array.isArray(dateArray)) { return; } var dates = dateArray.filter(function (e) { return e instanceof Date; }); if (!dates || dates.length !== 2) { return null; } var localCheckIn = dates[0]; var localCheckOut = dates[1]; var ciString = ” + localCheckIn.getYear() + localCheckIn.getMonth() + localCheckIn.getDate(); var coString = ” + localCheckOut.getYear() + localCheckOut.getMonth() + localCheckOut.getDate(); return ” + _pageAction + ciString + coString + locationId; } return { shouldTrackForIBClickThru: shouldTrackForIBClickThru, processEvent: processEvent, processAndTrackClickThrough: processAndTrackClickThrough, trackEvent: trackEvent }; } function _isFunction(func) { return func instanceof Function; } function _buildClickThruUEFData(impressionKey, dataInStoreRef) { if (!dataInStoreRef) { dataInStoreRef = {}; } dataInStoreRef[EVT_DATA_KEY] = impressionKey; return dataInStoreRef; } return LocationDateSpecificClickThru; }); define(‘hotels/listingKeyPlugin’, [‘babel/babel-helpers’, ‘utils/cookieutils’], function (babelHelpers, cookieUtils) { var LISTING_KEY_COOKIE_NAME = ‘hotelListingKey’; var _setListingKeyCookie = function _setListingKeyCookie(listingKey) { return cookieUtils.setCookieInSeconds(LISTING_KEY_COOKIE_NAME, listingKey, { duration: 10, ignoreVersion: true }); }; return { setListingKeyCookie: _setListingKeyCookie }; }); define(‘hotels/listingClick’, [‘vanillajs’, ‘utils/waiton’, ‘ta/Core/TA.FireEvent’, ‘hotels/listingKeyPlugin’], function(vanillajs, waitOn, taFireEvent, listingKeyPlugin) { var ASYNC_ACTIONS_TIMEOUT = 250; var LISTING_CLICK_EVENT = ‘hotels.listing_click’; var _preclickActions = []; var registerAsyncPreclick = function(action) { if (typeof action === ‘function’) { _preclickActions.push(action); } }; var clickEvent = function(elem, listingKey, redirectAction, isNewTab) { taFireEvent.fireEvent(LISTING_CLICK_EVENT, elem, listingKey); listingKeyPlugin.setListingKeyCookie(listingKey); if (isNewTab) { redirectAction(); _preclickActions.forEach(function (action) { action(elem, listingKey, function() {}); }); } else { var boundActions = _preclickActions.map(function(action) { return action.bind(null, elem, listingKey); }); waitOn(boundActions, redirectAction, ASYNC_ACTIONS_TIMEOUT); } }; return { LISTING_CLICK_EVENT: LISTING_CLICK_EVENT, registerAsyncPreclick: registerAsyncPreclick, clickEvent: clickEvent }; }); define(‘hotels/hotelinfocard/Events’, [‘mixins/Events’], function(Events) { ‘use strict’; return new Events( ‘toggleButtonClicked’, ‘infoCardToggled’, ‘infoCardExpanded’, ‘tabActivated’, ‘twoColumnTabDataLoaded’, ‘dealsTabDataLoaded’, ‘deferredContentLoaded’ ); }); define(‘hotels/tracking/clickthrough’, [‘babel/babel-helpers’, ‘common/trackingStreams’], function (babelHelpers, tracking) { var TRACK_SERVLETS = { “Hotels”: “H”, “SmartDeals”: “SD”, “MobileSmartDeals”: “MSD”, “HotelHighlight”: “HH”, “MobileHotelHighlight”: “MHH”, “HotelsNear”: “HN”, “HotelsList”: “HL” }; function track(elmtType, listingKey, impressionKey, locationId, trackingTreePlacementName, isNewTab) { var pageServlet = window.pageServlet; var source = TRACK_SERVLETS[pageServlet]; if (!listingKey) { tracking.error(‘Missing listing key on click through to Hotel Review. This is a major data concern and should not be ignored.’); return; } if (!source || !impressionKey || !locationId) { return; } var elmtKeys = { “lk”: listingKey, “ik”: impressionKey, “lid”: locationId, “et”: elmtType, “ttpn”: trackingTreePlacementName }; require([‘babel/babel-helpers’, ‘trjs!ta/Core/TA.Record’], function (babelHelpers, taRecord) { if (isNewTab) { taRecord.trackInteractions(pageServlet, elmtKeys, “LISTING_TO_HR_CLICK”); } else { taRecord.addInteractionsMEVT(source, elmtKeys, “LHR”); } }); } return { track: track }; }); define(‘ta/util/openNewTab’, [‘utils/browserutils’, ‘ta/Browser’, ‘ta/util/Cookie’], function(Browser, taBrowser, taCookie) { return function(url) { var win; if (!taBrowser.isIE10Metro()) { if (Browser.ie && !taBrowser.isIE9orHigher()) { win = window.open(url, ‘_blank’, ‘location=yes,resizable=yes,menubar=yes,scrollbars=yes,toolbar=yes,width=’ + document.documentElement.clientWidth + ‘,height=’ + document.documentElement.clientHeight); } else { win = window.open(url, ‘_blank’); } } if (!win || win.closed || typeof win.closed===’undefined’) { taCookie.setPIDCookie(38821); window.location = url; return false; } return win; } }); require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’meta_hsx_responsive_listing’,’handlers’,[‘handlers’]); /*jshint nonew: false, unused: vars */ define([“widget”, “common/trackingStreams”, “utils/throttle”, “utils/debounce”, “utils/VisibilityChecker”, “hotels/tracking/UEF-LocationDateSpecificClickThru”, “hotels/listingClick”, ‘utils/responsive’, ‘hotels/hotelinfocard/Events’, ‘hotels/tracking/clickthrough’, ‘hotels/recentlyViewedHotels’, ‘hotels/ClickSourceTracking’, ‘widget/components’, ‘ta/Core/TA.FireEvent’, ‘ta/util/openNewTab’, ‘common/trackingStreams’, ‘ta/Core/TA.LocalStorage’], function (globalContext, widget, tracking, throttle, debounce, VisibilityChecker, UEFClickThruTracker, hotelListingClick, Responsive, infoCardEvents, clickthrough, recentlyViewedHotels, clickSourceTracking, Components, taFireEvent, openNewTab, trackingStreams, localStorage) { var RESPONSIVE_LISTING_RENDERED_EVENT = ‘hotels.responsive_listing_rendered’; var RESPONSIVE_LISTING_SP_CLICK = ‘hotels.responsive_sp_click’; var isLBInterstitialCurrentlyDisplayedKey = ‘isLBInterstitialCurrentlyDisplayed’; var clickThruTracker = new UEFClickThruTracker({ pageAction: “ct_l2hr” // click thru list to hr }); var EVENT_NAME_BEST_SELLER_SEEN = ‘bestSellerSeen’; var EVENT_NAME_BEST_SELLER_EXISTS = ‘bestSellerExists’; var PAGE_PROPERTY_BEST_SELLER_SEEN = ‘in_view’; var PAGE_PROPERTY_BEST_SELLER_EXISTS = ‘loaded’; var CLASSNAME_RECENTLY_VIEWED = “recently_viewed”; var _listing = widget.element.querySelector(“.listing”); var _listingIdElmt = widget.element.querySelector(“[data-locationId]”); var _locId = _listingIdElmt && _listingIdElmt.getAttribute(‘data-locationId’) || 0; var _trackRecentlyViewed = _listing.hasAttribute(“data-show-recently-viewed”); var _showRecentlyViewed = _listing.getAttribute(“data-show-recently-viewed”) === “true”; var _isRecentlyViewedOnPageload = !!_listing.getAttribute(“data-is-recently-viewed”); _fireListingRenderEvent(); // names of click sources that direct to #REVIEWS var REVIEW_LINK_SOURCES = [‘ReviewCount’, ‘BubbleRating’]; // This fireEvent is used to notify hotels_sponsored_listing_data/handlers.js function _fireListingRenderEvent() { var _metaListing = widget.element.querySelector(“.meta_listing”); var listingKey = _metaListing && _metaListing.getAttribute(‘data-listingKey’); taFireEvent.fireEvent(RESPONSIVE_LISTING_RENDERED_EVENT, _metaListing, listingKey); } function _generateTrackingList() { return Object.keys(globalContext.trackIndices).map(function (i) { return “.prw_” + widget.name + ” [data-index=”” + i + “”]”; }); } function listingClick(event, elem) { var isReviewClick = false; var info = {}; // This is a fairly meh hack as we shouldn’t be relying on data-attributes for tracking webcomponents. if (Components.contains(event.target, elem, ‘@ta/trips.save-to-trip’)) { info = { source: ‘SaveToTripBookmark’ }; } else { info = clickSourceTracking.findClickInfo(event.target); } var listing = widget.element.querySelector(“.meta_listing”); var detailUrl = listing && listing.getAttribute(‘data-url’); // HOT-33322 for feature clickable_hotel_cells_white_space – we want clickable whitespace for the whole cell if ((!info.source || info.source === ‘PopIndex’) && listing.hasAttribute(‘data-clickableWhitespaceDT’) && detailUrl) { var _listingKey = listing.getAttribute(‘data-listingKey’); hotelListingClick.clickEvent(event.target, _listingKey, function () { tracking.trackEvent(‘hotel_cell_white_space’, ‘click’, ”); openNewTab(detailUrl); }, true); return; } if (!info.source) { clickSourceTracking.trackSource(“HotelListing”); //do not use the data-clicksource=”HotelListing” on DW since it will make the whole cell clickable. if (event.target.href) { window.open(event.target.href, event.target.target || “_blank”); } return; } else if (info.source === ‘HotelInfoCardToggle’) { // HotelInfoCardToggle has its own handler return; } var url = detailUrl; if (!url) { return false; } var locid = listing.getAttribute(‘data-locationId’); var index = listing.getAttribute(‘data-index’); var impressionKey = listing.getAttribute(‘data-impKey’); var listingKey = listing.getAttribute(‘data-listingKey’); var trackingTreePlacementName = listing.getAttribute(‘data-ttpn’); var amenityRibbonTrackingProperties = listing.getAttribute(‘data-amenityRibbonTrackingProperties’); clickSourceTracking.trackSource(info.source, locid, info.label); var shouldTrack = !listing.hasAttribute(‘data-noClickTrack’); if (shouldTrack && clickSourceTracking.clickThrough(info.source)) { clickthrough.track(info.source, listingKey, impressionKey, locid, trackingTreePlacementName, true); } if (REVIEW_LINK_SOURCES.indexOf(info.source) >= 0) { url += “#REVIEWS”; isReviewClick = true; } else if (Responsive.mobile() && (info.source === “ViewAllDealsClickThrough” || info.source === “PriceMessageOpenTextLinks”)) { // Adding this hash to the url shows all deals on HR clickthrough. // Not sure why poiHeading was the naming choice here. url += “#poiHeading”; } else if (Responsive.mobile() && info.source === “PriceMessageCheckRatesExpand” && url.indexOf(‘?’) === -1 && url.indexOf(‘#’) === -1) { url += “?expandDeals#CHECK_RATES_CONT”; } else if (info.source === “ViewAllDeals” || info.source === “ViewAllDealsClose”) { return; } if (!clickSourceTracking.clickThrough(info.source) && !Responsive.mobile()) { return; } // Bookmark clicks should not be tracked as a listing click or navigate away from the page if (Components.contains(event.target, elem, ‘@ta/trips.save-to-trip’)) { return; } // record user interaction with the listing cell for recently viewed tracking (HOT-23280) _trackRecentlyViewedClick(info); // HOT-31902 test an above widget indicating a top property based on tag if (listing.hasAttribute(‘data-highScoredTagComparisons’)) { var above = widget.element.querySelector(‘.highest-scored-hotel-with-tag’); var comparisonType = above && above.getAttribute(‘data-type’); tracking.trackEvent(comparisonType, ‘click’, ‘HR’); } // HOT-35460 – track HR clicks on properties with amenity flags if (amenityRibbonTrackingProperties) { amenityRibbonTrackingProperties.split(‘,’).forEach(function (trackingProperty) { tracking.trackEvent(trackingProperty, ‘click’); }); } hotelListingClick.clickEvent(event.target, listingKey, function () { // If SPTestAction is not decided in backend, // there should not be any additional/alternative behavior when the function listingClick is triggered. // So, follow the original behavior. if (!elem.hasAttribute(‘data-SPTestAction’)) { clickThruTracker.processAndTrackClickThrough(locid, impressionKey, url); tracking.setEvtCookie(‘Reviews’, info.source, locid, index, url); window.open(url, “_blank”); } // If SPTestAction is explicitly defined, use the private method to define that additional behavior. else { var testAction = elem.getAttribute(‘data-SPTestAction’); var testRecord = elem.getAttribute(‘data-SPTestRecord’); var currentElemListingKey = elem.getAttribute(‘data-listingKey’); var BAWebElem = elem.querySelector(‘[data-link]’); var BAWebLink = BAWebElem == null ? null : BAWebElem.getAttribute(‘data-link’); // Track the respective testing GARecords only when it is necessary. if (testAction != null || testAction !== “error”) { if (testRecord.includes(“E1”) && !isReviewClick) { _addGARecord(“responsive_listing”, “Generate_More_SP_External_Clicks_Test_V1”, _locId, false); } if (testRecord.includes(“E2”) && _isGARecordNeeded(testAction, BAWebLink) && !isReviewClick) { _addGARecord(“responsive_listing”, “Generate_More_SP_External_Clicks_Test_V2”, _locId, true); } if (testRecord.includes(“E3”) && _isGARecordNeeded(testAction, BAWebLink)) { _addGARecord(“responsive_listing”, “Generate_More_SP_External_Clicks_Test_V3”, _locId, true); } } taFireEvent.fireEvent(RESPONSIVE_LISTING_SP_CLICK, _locId, testAction, currentElemListingKey, event, url, BAWebLink, index, info, impressionKey, isReviewClick); } }, true); return false; } /** * This tracks an event either synchronously or not, depending on the sync argument * Synchronous tracking must be used for commerce clicks, since these may change the current page location, halting async JS * We may still lose those clicks if they happen before the session storage initializes and the TA.Record module defer-loads * @param moduleName the module that the event happened * @param action event action that should be recorded in GARecord * @param attr attribute that allows to distinguish one record from another. For ex) locationId * @param sync boolean -> true if the record should be synchronized with other actions; else false */ function _addGARecord(moduleName, action, attr, sync) { if (sync && require.defined(‘ta/Core/TA.Record’)) { require(‘ta/Core/TA.Record’).trackEventOnPage(moduleName, action, attr); } else { trackingStreams.trackEvent(moduleName, action, attr); } } /** * This tracks whether we need to fire GARecord in SP Value Prop Test. * @param testAction necessary action for what tabs should be open with listingClick function * @param BAWebLink BA website url * @returns {boolean} true if the record should be inserted; else false * @private */ function _isGARecordNeeded(testAction, BAWebLink) { if (testAction.includes(‘Meta’)) { return true; } return BAWebLink != null; } ta.queueForReady(initializeIdmTracking); ta.queueForReady(prepareLeaveBehindXSell); if (localStorage.enabled) { localStorage.remove(isLBInterstitialCurrentlyDisplayedKey); } // (SEO-9567) – Fire tracking events when IDM-eligible hotels are loaded, in-view, and clicked (even in control, when the IDM isn’t visible) function initializeIdmTracking() { if (widget.element.classList.contains(‘idm_eligible’)) { var pageProperty = widget.element.getAttribute(‘data-idm-pageProperty’); var rankText = widget.element.getAttribute(‘data-idm-rankText’); var mainText = widget.element.getAttribute(‘data-idm-text’); trackIdm(pageProperty, rankText, mainText); } if (widget.element.getAttribute(‘data-idm2-pageProperty’)) { var _pageProperty = widget.element.getAttribute(‘data-idm2-pageProperty’); var _rankText = widget.element.getAttribute(‘data-idm2-rankText’); var _mainText = widget.element.getAttribute(‘data-idm2-text’); trackIdm(_pageProperty, _rankText, _mainText); } var aspectTrackingText = widget.element.getAttribute(‘data-idm-badge-aspect-tracking-text’); if (aspectTrackingText) { trackIdmBadge(aspectTrackingText); } } function trackIdm(pageProperty, rankText, mainText) { // Track that the IDM has loaded ta.trackEventOnPage(pageProperty, ‘load_’ + rankText, mainText); // Fire a tracking event when the IDM is in view require([“babel/babel-helpers”, ‘trjs!ta/util/Element’], function (babelHelpers, taElement) { taElement.trackWhenScrolledIntoView(widget.element, [pageProperty, ‘in_view_’ + rankText, mainText]); }); // Fire a tracking event if any of the links within the IDM-eligible hotel is clicked var clicksToTrack = widget.element.querySelectorAll(‘a, .metaOffer’); if (clicksToTrack) { Array.prototype.forEach.call(clicksToTrack, function (clickable) { var clickType = clickable.classList.contains(“idm_link”) ? ‘link_click_’ : ‘click_’; clickable.addEventListener(“click”, function (e) { ta.trackEventOnPage(pageProperty, clickType + rankText, mainText); }); }); } } function trackIdmBadge(aspectTrackingText) { // Fire a tracking event when the IDM is in view require([“babel/babel-helpers”, ‘trjs!ta/util/Element’], function (babelHelpers, taElement) { taElement.trackWhenScrolledIntoView(widget.element, [‘idm-absa’, ‘in_view’, aspectTrackingText]); }); // Fire a tracking event if any of the links within the IDM-eligible hotel is clicked var clicksToTrack = widget.element.querySelectorAll(‘a, .metaOffer’); if (clicksToTrack) { Array.prototype.forEach.call(clicksToTrack, function (clickable) { clickable.addEventListener(“click”, function (e) { ta.trackEventOnPage(‘idm-absa’, ‘click’, aspectTrackingText); }); }); } } function localStorageIncludesLocId(localStorageKey) { var obj = localStorage.getObject(localStorageKey); return !!(obj && obj.includes && obj.includes(_locId)); } function prepareLeaveBehindXSell() { var xsellId = “xsell-lb-” + _locId; var bridgeElm = document.getElementById(“lb-xsell-wc-bridge”); var localStorageClickedId = ‘lb-clicked-id’; var activeXsellsHRKey = ‘activeXsellsHR’; var activeXsellsMetaKey = ‘activeXsellsMeta’; if (localStorage.enabled && !widget.element.querySelector(“#” + xsellId)) { // If the user is returning to the page, check local storage for the most recently clicked hotel to potentially display a cross-sell if (Responsive.mobile() && localStorage.get(localStorageClickedId) === _locId) { createLeaveBehindXSell(xsellId, bridgeElm, true); localStorage.remove(localStorageClickedId); } if (localStorage.has(activeXsellsHRKey) && localStorageIncludesLocId(activeXsellsHRKey)) { createLeaveBehindXSell(xsellId, bridgeElm, false); } if (localStorage.has(activeXsellsMetaKey) && localStorageIncludesLocId(activeXsellsMetaKey)) { createLeaveBehindXSell(xsellId, bridgeElm, true); } } // If the user is returning to the page, check local storage for the most recently clicked hotel to potentially display a cross-sell if (Responsive.mobile() && localStorage.enabled && localStorage.get(localStorageClickedId) === _locId) { createLeaveBehindXSell(xsellId, bridgeElm, true); localStorage.remove(localStorageClickedId); } var clicksToTrack = widget.element.querySelectorAll(‘a, .metaOffer, .external_website_link_v1 .isLink’); if (clicksToTrack && bridgeElm) { Array.prototype.forEach.call(clicksToTrack, function (clickable) { clickable.addEventListener(“click”, function (e) { var clickElement = e.toElement || e.srcElement; if (clickElement && clickElement.dataset && clickElement.dataset.clicksource === “CarouselArrow”) { return; } var isMetaClick = clickable.classList.contains(“metaOffer”) || clickable.classList.contains(“isLink”); var xsellElm = widget.element.querySelector(“#” + xsellId); if (!xsellElm) { if (localStorage.enabled) { // Store the list of active Xsells in local storage so that they persist if the page continues to update with new results var activeXsellsKey = isMetaClick ? activeXsellsMetaKey : activeXsellsHRKey; var activeXsells = localStorage.has(activeXsellsKey) ? localStorage.getObject(activeXsellsKey) : []; activeXsells.push(_locId); localStorage.set(activeXsellsKey, activeXsells); if (Responsive.mobile()) { // If the user navigates away via a meta link, store the ID of the clicked hotel in local storage // in order to display the cross-sell once they return (within 1 hour) localStorage.set(localStorageClickedId, _locId, 3600000); } } createLeaveBehindXSell(xsellId, bridgeElm, isMetaClick); } }); }); } } function createLeaveBehindXSell(xsellId, bridgeElm, isMetaClick) { require([“babel/babel-helpers”, ‘@ta/platform.runtime’], function (babelHelpers, runtime) { runtime.importBundle(‘@ta/cross-sells.leave-behind-component’).then(function () { var titleWrapElm = widget.element.getElementsByClassName(“title_wrap”)[0]; var listingTitleElm = widget.element.getElementsByClassName(“listing_title”)[0]; var hotelName = titleWrapElm ? titleWrapElm.innerText : listingTitleElm ? listingTitleElm.innerText : null; if (!hotelName) { return; } var _widget$element$getEl = widget.element.getElementsByClassName(“meta_listing”), _widget$element$getEl2 = babelHelpers.slicedToArray(_widget$element$getEl, 1), belowListingEm = _widget$element$getEl2[0]; var elm = document.createElement(‘div’); elm.id = xsellId; belowListingEm.parentNode.insertBefore(elm, belowListingEm.nextSibling); var trackingPrefix = isMetaClick ? “meta” : “hr”; var xsellIndex = document.querySelectorAll(‘[id^=”xsell-lb-“]’).length; var position = _listingIdElmt.getAttribute(“data-index”); var display = bridgeElm.getAttribute(“data-showxsell”); var leaveBehindXsellUIType = bridgeElm.getAttribute(“data-leaveBehindXsellUIType”); var shouldShowUI = true; if (leaveBehindXsellUIType !== ‘SHELF’ && window && window.event) { shouldShowUI = !(window.event.ctrlKey || window.event.metaKey) && !localStorage.has(isLBInterstitialCurrentlyDisplayedKey); } if (leaveBehindXsellUIType && shouldShowUI) { var pageAttr = getPageAttribute(leaveBehindXsellUIType, trackingPrefix, xsellIndex, position); localStorage.set(isLBInterstitialCurrentlyDisplayedKey, true); runtime.createRoot(xsellId, ‘@ta/cross-sells.leave-behind-component’, { locationId: _locId, hotelName: hotelName, blenderTag: bridgeElm.getAttribute(“data-pagetagname”), blenderTagIds: bridgeElm.getAttribute(“data-blenderTagIds”), pageAttr: pageAttr, display: display, displayMessages: bridgeElm.getAttribute(“data-showxsellmsgs”), poiId: bridgeElm.getAttribute(“data-poiid”), poiName: bridgeElm.getAttribute(“data-poiname”), milesFromPoi: bridgeElm.getAttribute(“data-maxxselldist”), leaveBehindXsellUIType: leaveBehindXsellUIType, onClose: function onClose(event) { closeLeaveBehindXsell(runtime, xsellId, elm, pageAttr, leaveBehindXsellUIType); } }); if (display) { _listingIdElmt.parentNode.parentNode.classList.add(“boxShadow”); } } }); }); } function getPageAttribute(leaveBehindXsellUIType, trackingPrefix, xsellIndex, position) { if (leaveBehindXsellUIType && leaveBehindXsellUIType !== ‘SHELF’) { if (leaveBehindXsellUIType === ‘INTERSTITIAL’) { return trackingPrefix + “-lb-interstitial-” + xsellIndex + “-position-” + position; } else if (leaveBehindXsellUIType === ‘INTERSTITIAL_WITH_COMPARISON_GRID’) { return trackingPrefix + “-lb-interstitial-comparison-grid-” + xsellIndex + “-position-” + position; } else if (leaveBehindXsellUIType === ‘INTERSTITIAL_WITH_BRAND_MESSAGING_LIGHTBOX’) { return trackingPrefix + “-lb-interstitial-brand-messaging-” + xsellIndex + “-position-” + position; } } else if (leaveBehindXsellUIType === ‘SHELF’) { return trackingPrefix + “-shelf-” + xsellIndex + “-position-” + position; } } function closeLeaveBehindXsell(runtime, xsellId, elm, pageAttr, leaveBehindXsellUIType) { runtime.destroyRoot(xsellId); elm.remove(); tracking.trackEvent(leaveBehindXsellUIType === ‘SHELF’ ? ‘osm-pc-leave-behind’ : ‘osm-pc-interstitial’, ‘closed’, pageAttr); if (leaveBehindXsellUIType !== ‘SHELF’) { localStorage.remove(isLBInterstitialCurrentlyDisplayedKey); } var viewTrackedXsellsKey = ‘viewTrackedXsells’; var viewTrackedXsells = localStorage.getObject(viewTrackedXsellsKey) || []; viewTrackedXsells = viewTrackedXsells.filter(function (value, index, arr) { value != _locId; }); localStorage.set(viewTrackedXsellsKey, viewTrackedXsells); } function recordBestSellerEvent( /*String*/eventName, /*String*/pageAction) { var metaListingElement = widget.element.querySelector(‘.meta_listing’); if (metaListingElement && metaListingElement.hasAttribute(‘data-index’)) { tracking.trackEvent(eventName, pageAction, metaListingElement.getAttribute(‘data-index’)); } } function setBestSellerEventListener( /*String*/eventName, /*String*/pageAction) { widget.element.addEventListener(eventName, function () { recordBestSellerEvent(eventName, pageAction); }, false); } /** * HOT-23280: Fire a tracking event iff click to HR on a recently-viewed listing * **/ function _trackRecentlyViewedClick(clickInfo) { if (!clickInfo || !_trackRecentlyViewed) { return; } recentlyViewedHotels.interactedWithLocation(_locId); recentlyViewedHotels.trackEventIfRecentlyViewed(_locId, ‘CLICK_’ + clickInfo.source, _locId); } var _scrollOffset = 0; var _scrollRequestThrottled = debounce(function (target, offset) { if (!document.body.contains(widget.element)) { infoCardEvents.off(‘infoCardExpanded’, _scrollRequestThrottled); return; } if (widget.element.contains(target) && window.innerHeight > widget.element.clientHeight) { _scrollOffset = offset; require([“babel/babel-helpers”, ‘trjs!ta/util/Element’], function (babelHelpers, taElement) { taElement.scrollIntoView(widget.element, -1 * _scrollOffset, true); }); } }, 500, true); infoCardEvents.on(‘infoCardExpanded’, _scrollRequestThrottled); // Initialize scroll tracking if (!globalContext.trackingInitialized) { var checker = throttle(VisibilityChecker({ elements: _generateTrackingList(), callback: function callback(nodes) { nodes.forEach(function (n) { var index = parseInt(n.getAttribute(‘data-index’)); if (globalContext.trackIndices[index]) { tracking.trackEvent(‘hotelcell’, ‘in_view’, index); delete globalContext.trackIndices[index]; } }); var newList = _generateTrackingList(); if (newList.length === 0) { window.removeEventListener(‘scroll’, checker); } return _generateTrackingList(); } }), 200); window.addEventListener(‘scroll’, checker); globalContext.trackingInitialized = true; } //I initially had this with one shared listener for all instances, but this meant only the first instantiation // of the widget would add the litener, which calls widget.element. The result was that every widget //used the widget.element from that first one, preventing us from accessing the data-index attribute we actually wanted setBestSellerEventListener(EVENT_NAME_BEST_SELLER_SEEN, PAGE_PROPERTY_BEST_SELLER_SEEN); setBestSellerEventListener(EVENT_NAME_BEST_SELLER_EXISTS, PAGE_PROPERTY_BEST_SELLER_EXISTS); if (_trackRecentlyViewed) { if (_isRecentlyViewedOnPageload) { recentlyViewedHotels.registerVisitedLocation(_locId, _listing); } else { recentlyViewedHotels.registerUnvisitedLocation(_locId, _listing, _showRecentlyViewed ? CLASSNAME_RECENTLY_VIEWED : “”); } } return { listingClick: listingClick }; }.bind(null, { trackingInitialized: false, trackIndices: { 5: true, 10: true, 15: true, 20: true, 30: true, 35: true, 40: true, 45: true, 50: true, 55: true, 60: true } }));}); define(‘hotels/baLinkClick’, [‘vanillajs’, ‘utils/waiton’, ‘ta/Core/TA.FireEvent’, ‘commerce/cookieSetter’, ‘utils/urlutils’], function(vanillajs, waitOn, taFireEvent, cookieSetter, UrlUtils) { var ASYNC_ACTIONS_TIMEOUT = 250; var WEB_LINK_CLICK_EVENT = ‘hotels.ba_web_click’; var _preclickActions = []; var registerAsyncPreclick = function(action) { if (typeof action === ‘function’) { _preclickActions.push(action); } }; var clickEvent = function(elem, commURL, redirectAction, isNewTab) { taFireEvent.fireEvent(WEB_LINK_CLICK_EVENT, elem); cookieSetter(); if (isNewTab) { redirectAction(); _preclickActions.forEach(function (action) { action(elem, UrlUtils.getUrlQueryArgs(commURL), function() {}); }); } else { var boundActions = _preclickActions.map(function(action) { return action.bind(null, elem, UrlUtils.getUrlQueryArgs(commURL)); }); waitOn(boundActions, redirectAction, ASYNC_ACTIONS_TIMEOUT); } }; return { WEB_LINK_CLICK_EVENT: WEB_LINK_CLICK_EVENT, registerAsyncPreclick: registerAsyncPreclick, clickEvent: clickEvent }; });require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’common_hotel_icons_list’,’handlers’,[‘handlers’]); define([‘babel/babel-helpers’, ‘widget’, ‘hotels/baLinkClick’, ‘ta/util/openNewTab’, ‘t4b/tracking/b2bClickTracking’, ‘common/trackingStreams’, ‘utils/urlDecoder’, ‘hotels/listingClick’], function (babelHelpers, widget, baLinkClick, openNewTab, b2bClickTracking, tracking, urlDecoder, hotelListingClick) { function webLinkClick(e, element) { e.stopPropagation(); var locationId = element.getAttribute(‘data-locid’); var isCommerce = element.hasAttribute(‘data-curl’) && element.getAttribute(‘data-curl’) === ‘true’; var urlRedir = element.getAttribute(‘data-link’); var contactColumn = element.getAttribute(‘data-number’); var redirectCallback = function redirectCallback() { openNewTab(urlRedir); }; var commerceURL = isCommerce && urlRedir || ”; baLinkClick.clickEvent(element, commerceURL, redirectCallback, true); b2bClickTracking.trackContactClick({ locationId: locationId, contactType: ‘URL_HOTEL’, contactColumn: contactColumn, isCommerce: isCommerce }); } // handle clicks on email/phone number icons function handleContactClick(event, contactDetails, element) { // email var locationId = element.getAttribute(‘data-locid’); var contactColumn = element.getAttribute(‘data-number’); var contactType = void 0; if (contactDetails.includes(‘@’)) { window.location = ‘mailto: ‘ + contactDetails; contactType = ‘EMAIL’; } else { // phone window.location = ‘tel: ‘ + contactDetails; contactType = ‘PHONE’; } b2bClickTracking.trackContactClick({ locationId: locationId, contactType: contactType, contactColumn: contactColumn }); } /* * This will track clicks on the amenities in the Hotel Cell and bring the user into the /HR page */ function clickToHR(e, element, url, amenityName) { if (url) { var listing = widget.element; while (listing && !listing.classList.contains(‘meta_listing’)) { listing = listing.parentElement; } var listingKey = listing && listing.getAttribute(‘data-listingKey’); hotelListingClick.clickEvent(e.target, listingKey, function () { tracking.trackEvent(‘hotel_cell_amenity’, ‘click’, amenityName); openNewTab(url); }, true); } } return { webLinkClick: webLinkClick, clickToHR: clickToHR, handleContactClick: handleContactClick }; });}); define(‘tracking/BestSellerTracking’, [‘utils/VisibilityChecker’, ‘utils/throttle’, ‘ta/Core/TA.Event’, ‘common/trackingStreams’], function(VisibilityChecker, throttle, taEvent, trackingStreams) { ‘use strict’; var ALREADY_SEEN_ATTRIBUTE = ‘data-alreadySeen’; var EXISTENCE_LOGGED_ATTRIBUTE = ‘data-logged’; var EVENT_NAME_RIBBON_IN_VIEW = ‘bestSellerSeen’; var EVENT_NAME_RIBBON_EXISTS = ‘bestSellerExists’; var PAGE_POLLING_COMPLETE = ‘page-polling-complete’; function _generateEventFiringFunction( selectorArray, sharedContext) { var eventFiringFunction = VisibilityChecker({ elements: selectorArray, callback: function(elements) { if (sharedContext.isPollingComplete) { if (elements && Array.isArray(elements)) { for (var i = 0; i 0) { _dispatchExistenceGARecords(elements); } else { setTimeout(function() { var elementsSecondAttempt = document.querySelectorAll(selector); if (elementsSecondAttempt && elementsSecondAttempt.length > 0) { _dispatchExistenceGARecords(elementsSecondAttempt) } }, 350); } } function _dispatchExistenceGARecords( elements) { for (var i = 0; i 0 && !!selectors[0]) { _initVisibilityCheckFunction(selectors, sharedContext); _initPollingCompleteListener(selectors[0], sharedContext); } else { trackingStreams.error(“Non-array or empty array passed to BestSellerTracking. Cannot track: ” + JSON.stringify(selectors)); } } return {initBestSellerTracking : initBestSellerTracking}; }); define(‘overlays/BestSellerTooltipOverlay’, [‘overlays/Overlay’, ‘overlays/position’, ‘overlays/styles/tooltip’, ‘overlays/options/closeOnMouseAway’, ‘overlays/styles/popover’, ‘overlays/options/repositionOnEvent’, ‘common/trackingStreams’], function(Overlay, Position, Tooltip, CloseOnMouseAway, Popover, RepositionOnEvent, trackingStreams) { ‘use strict’; function createOverlay( evnt, source, widget, contentSelector, isMobile) { var overlay = null; var contents = widget.element.querySelector(contentSelector); if (contents) { if (window.isTabletOnFullSite) { overlay = new Overlay(source, [ Popover && Popover(source, ‘below’, widget.element.className, null, widget.element.outerHTML), Position.below(), RepositionOnEvent(window, [‘resize’, ‘date_bar_docked’, ‘date_bar_undocked’]) ]); } else { if (!isMobile) { overlay = new Overlay(source, [ Tooltip && Tooltip(source, ‘below’, widget.element.className, widget.element.outerHTML), Position.below(), CloseOnMouseAway ]); } } return overlay; } else { trackingStreams.error(“No contents found for selector ” + contentSelector + “. Cannot create tooltip overlay.”); } } return {createOverlay : createOverlay}; }); require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’common_ribbon_badge_resp’,’handlers’,[‘handlers’]); /** * Created by amiller-smith on 06.27.18 */ define([‘widget’, ‘utils/VisibilityChecker’, ‘utils/throttle’, ‘ta/Core/TA.Event’, ‘tracking/BestSellerTracking’, ‘utils/responsive’, ‘trjs!overlays/BestSellerTooltipOverlay’], (function(widget, VisibilityChecker, throttle, taEvent, BestSellerTracking, Responsive, BestSellerOverlay) { ‘use strict’; widget._shared = this; var _shared = this; var WIDGET_DIV_IDENTIFIER = “div[class='” + widget.element.className + “‘] div.”; var MOBILE_CLASS_SELECTOR = WIDGET_DIV_IDENTIFIER + ‘ribbonBadgeMobile’; var TABLET_PLUS_CLASS_SELECTOR = WIDGET_DIV_IDENTIFIER + ‘ribbonBadgeTablet’; var TOOLTIP_TEXT_SELECTOR = ‘.overlay_contents.hidden’; BestSellerTracking.initBestSellerTracking(_shared, [MOBILE_CLASS_SELECTOR, TABLET_PLUS_CLASS_SELECTOR]); var _overlay = null; function _showOverlay(evnt, source) { //otherwise the parent hotel card will catch this and open an /HR tab evnt.stopPropagation(); if (_overlay) { _overlay.show(); } else { _createAndShowOverlay(BestSellerOverlay, evnt, source); } } function _createAndShowOverlay(/*Object*/ BestSellerOverlay, /*Event*/ evnt, /*Element*/ source) { _overlay = BestSellerOverlay.createOverlay(evnt, source, widget, TOOLTIP_TEXT_SELECTOR, Responsive.mobile()); if (_overlay) { _overlay.show(); } } return { overlay: _showOverlay }; }).bind({})); }); define(‘remoteModule’, [‘vanillajs’], function() { ‘use strict’; var pending = {}; function _data(el, key) { return el == null ? null : el.getAttribute(‘data-‘ + key); } function _parentWithAttr(el, attribute) { while (el && el !== document.body) { if (el.getAttribute(attribute)) { return el; } el = el.parentNode; } return null; } function _buildDeps(elt, param, plcn, prwn, prefixes) { var val = _data(elt, param); if (!val) { return []; } return val .replace(/$plc:/g, ‘$prp/’+plcn+’/’) .replace(/$prw:/g, ‘$prw/’+prwn+’/’) .split(‘,’) .filter(function(s) { return !!s.length }) .reduce(function(ret, key) { return ret.concat(prefixes.map(function(prefix) { var appendDust = prefix === ‘trdust!’ && key.indexOf(‘/’) = 0){ return; } if (require.defined(modl)){ var obj = require(modl); (fn ? obj[fn] : obj).apply(obj, args); return; } (pending[modl] || (pending[modl] = [])).push(elt); var plc = _parentWithAttr(elt, ‘data-placement-name’) , prw = _parentWithAttr(elt, ‘data-prwidget-name’) , plcn = _data(plc, ‘placement-name’) , prwn = _data(prw, ‘prwidget-name’) , deps = [].concat( _buildDeps(elt, ‘load-all’, plcn, prwn, [‘trjs!’, ‘trcss!’, ‘trdust!’]), _buildDeps(elt, ‘load-js’, plcn, prwn, [‘trjs!’]), _buildDeps(elt, ‘load-css’, plcn, prwn, [‘trcss!’]), _buildDeps(elt, ‘load-dust’, plcn, prwn, [‘trdust!’]) ); if (/^$plc:/.test(modl)){ args.unshift(deps); args.unshift(modl.substr(5) + ‘.’ + fn); args.unshift(plc.getAttribute(‘id’)); args.unshift(‘evCall’); args.unshift(‘ta/p13n/placements’); requireCallLast.apply(window, args); } else if (/^$prw:/.test(modl)){ args.unshift(modl.substr(5) + ‘.’ + fn); args.unshift(‘call’); args.unshift(‘ta/prwidgets’); requireCallLast.apply(window, args); } else { require(deps, function(){ pending[modl] = pending[modl].filter(function(e){ return e != elt; }); var obj = require(modl); (fn ? obj[fn] : obj).apply(obj, args); }); } }; }); define(“hotels/TrackingServletHelper”, [‘vanillajs’], function () { function getTrackingServlet() { var servlet = window && window.pageServlet; switch (servlet) { case “Hotels”: return “h”; case “SmartDeals”: return “sd”; case “HotelHighlight”: return “hh”; case “Hotel_Review”: return “hr”; case “HotelsList”: return “hl”; default: return “_unknown”; } } return { getTrackingServlet: getTrackingServlet }; });require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’meta_hsx_saves_badge’,’handlers’,[‘handlers’]); /*jshint nonew: false, unused: vars */ define([“widget”, “remoteModule”, “common/trackingStreams”, “hotels/TrackingServletHelper”], function(widget, remoteModule, tracking, TrackingServletHelper) { return { track: function(event) { event && event.stopPropagation(); var trackingServlet = TrackingServletHelper.getTrackingServlet(); tracking.trackEvent(‘saves_’ + trackingServlet, ‘click’); } }; }); });require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’common_location_pop_index’,’handlers’,[‘handlers’]); define([‘widget’, ‘ta/util/openNewTab’], function(widget, openNewTab) { ‘use strict’; function _clickPopIndex(event, element) { var target = event.target || event.srcElement; if (target.tagName === ‘A’ && target.href) { openNewTab(target.href); event.stopPropagation(); } } return { clickPopIndex: _clickPopIndex }; });});require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’hotels_h_savings_alert’,’tablet/tablet’,[‘tablet/tablet’]); define([ ‘widget’, ‘overlays/Overlay’, ‘overlays/position’, ‘overlays/styles/tooltip’, ‘overlays/options/closeOnMouseAway’, ‘overlays/styles/popover’, ‘overlays/options/repositionOnEvent’ ], function( widget, Overlay, Position, /* desktop */ Tooltip, CloseOnMouseAway, /* tablet */ Popover, RepositionOnEvent ) { var _overlay = null; function _showOverlay(evnt, source) { if (!_overlay) { var contents = widget.element.querySelector(‘.overlay_contents’); if (contents) { if (window.isTabletOnFullSite) { _overlay = new Overlay(source, [ Popover && Popover(source, ‘left’, widget.element.className, null, widget.element.outerHTML), Position.left(), RepositionOnEvent(window, [‘resize’, ‘date_bar_docked’, ‘date_bar_undocked’]) ]); } else { _overlay = new Overlay(source, [ Tooltip && Tooltip(source, ‘left’, widget.element.className, widget.element.outerHTML), Position.left(), CloseOnMouseAway ]); } } } if (_overlay) { _overlay.show(); } } return { overlay: _showOverlay }; });});require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’common_hsx_hd_review_snippets_center_commerce’,’handlers’,[‘handlers’]); /*jshint nonew: false, unused: vars */ define([“widget”, “ta/util/openNewTab”, “common/trackingStreams”], function(widget, openNewTab, trackingStreams) { /* * Warning: do NOT demand load js in here. Chrome will think you are loading a pop-up * and block us from opening a new tab. */ function _snippetClick(event, elem) { trackingStreams.setEvtCookie(‘Reviews’, ‘Snippet’, elem.getAttribute(‘data-reviewId’), elem.getAttribute(‘data-pos’), elem.href); elem.href && openNewTab(elem.href); event.stopPropagation(); return false; } return { snippetClick: _snippetClick }; }); });require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’meta_h_responsive_commerce_tvg_multi_larger_thumbnail’,’handlers’,[‘handlers’,’tablet/tablet’]); /*jshint nonew: false */ /*jshint unused:false */ define([“widget”, “commerce/offerclick”, “responsive/text-resizer”, “common/trackingStreams”, ‘ta/Core/TA.Event’, “hotels/recentlyViewedHotels”, “ta/Core/TA.LocalStorage”, ‘ta/Core/TA.FireEvent’, ‘hotels/ClickSourceTracking’], (function(widget, offerclick, resizer, trackingStreams, taEvent, recentlyViewedHotels, localStorage, taFireEvent, clickSourceTracking) { //shared state between all instances of this widget. //defining it this way lets us pick it up in tablet/tablet.js widget._shared = this; var _shared = this; var commerceElem = widget.element.querySelector(“.comblock”); var locId = Number((commerceElem && commerceElem.getAttribute(“data-locationId”)) || “0”); var listPos = Number((commerceElem && commerceElem.getAttribute(“data-listPos”)) || “0”); _shared.clickableWhiteSpace = Boolean((commerceElem && commerceElem.getAttribute(“data-clickablewhitespacedt”))); var RESPONSIVE_LISTING_OPEN_META_LINK = ‘hotels.responsive_open_meta_link’; taFireEvent.off(RESPONSIVE_LISTING_OPEN_META_LINK, clickOfferWrapper); taFireEvent.on(RESPONSIVE_LISTING_OPEN_META_LINK, clickOfferWrapper); function _findClickElement(el) { while (el && el.getAttribute) { if (el.getAttribute(‘data-clickPart’)) { return el; } el = el.parentNode; if (el === widget.element) { break; } } return null; } function _track(event, elem) { var clickElem = _findClickElement(event && event.srcElement); var part = clickElem ? clickElem.getAttribute(‘data-clickPart’) : ‘other’; var index = clickElem ? clickElem.getAttribute(‘data-index’) : ”; trackingStreams.trackEvent(‘hotelcell_h_meta’, part + “_” + index); } /** * HOT-24629: track commerce click on best seller hotel * */ function _trackCommerceClickOnBestSeller() { var isBestSeller = commerceElem.getAttribute(‘data-bestseller’); if (isBestSeller) { trackingStreams.trackEvent(‘best_seller_click’, locId, listPos); } } /** * HOT-35460: track commerce clicks on properties with preferred amenities * */ function _trackCommerceClickOnAmenityRibbon() { var amenityRibbonTrackingProperties = commerceElem.getAttribute(‘data-amenityRibbonTrackingProperties’); if (amenityRibbonTrackingProperties) { amenityRibbonTrackingProperties.split(‘,’).forEach( function (trackingProperty) { trackingStreams.trackEvent(trackingProperty, ‘click’); }); } } /** * HOT-31902: track commerce click on a high scoring tag compared hotel * */ function _trackCommerceClickOnHighScoringHotel() { var compare = commerceElem.getAttribute(‘data-comparisonType’); if (compare) { trackingStreams.trackEvent(compare, ‘click’, ‘commerce’); } } function _trackCugClick(elem) { var specialRateTracking = elem.querySelector(‘.special_rate_tracking’); if (specialRateTracking) { var provider = elem ? elem.getAttribute(‘data-provider’) : ‘Unknown’; var type = elem ? elem.getAttribute(‘data-specialratetype’) : ‘None’; trackingStreams.trackEvent(‘Hotels_Loyalty_HR_click’, provider + “|” + type, specialRateTracking.getAttribute(‘productattribute’)); } } function clickOffer(event, elem, forcedBehavior) { if (_shared.clickableWhiteSpace) { event.stopPropagation(); } _track(event, elem); var token = elem.getAttribute(“data-clickToken”); if (token) { // HOT-23280: Recently viewed tracking for commerce clicks recentlyViewedHotels.trackCommerceClick(locId); offerclick.clickEvent(event, elem, token, false, forcedBehavior); _trackCommerceClickOnBestSeller(); _trackCommerceClickOnHighScoringHotel(); _trackCommerceClickOnAmenityRibbon(); } _trackCugClick(elem); } function clickOfferWrapper(event, listingKey, forcedBehavior) { // If the received widget is not in the current DOM, we turn the eventListener off and do not perform any action. // eslint-disable-next-line no-restricted-globals if (!document.body.contains(widget.element)) { taFireEvent.off(RESPONSIVE_LISTING_OPEN_META_LINK, clickOfferWrapper); return; } var child = commerceElem.querySelector(‘.premium_offer_container’); var buttonElem = child == null ? null : child.querySelector(‘[data-clicktoken]’); var currentElemListingKey = clickSourceTracking.findAttribute(‘data-listingKey’, commerceElem); if(listingKey === currentElemListingKey) { clickOffer(event, buttonElem, forcedBehavior); } } function _processOverlayOnUpdateWidget() { // if there is an overlay already open, and we get new widget as of ajax update, we need to re-process the overlay if(_shared.dropDown && _shared.dropDownListPos == listPos ) { var newSrc = widget.element.querySelector(“.moreLink”); if (_shared.dropDownLocId != locId || !newSrc) { // if the widget at the same position is of different property, close the dropdown _shared.dropDown.destroy(); _shared.dropDown=null; }else { _shared.dropDown.sourceElement = newSrc; // if the new widget is of the same property and same location, update the src element for the dropdwon } } } function _trackCug() { var trackingEl = widget.element.querySelector(‘.special_rate_tracking’); if (trackingEl) { var guests = ta.page.guests.toQueryJson().uguests; var checkin = ta.page.hasDates(‘CHECKIN’) ? ta.page.getDates(‘CHECKIN’)[0].toLocaleDateString() : ‘default’; var checkout = ta.page.hasDates(‘CHECKOUT’) ? ta.page.getDates(‘CHECKOUT’)[0].toLocaleDateString() : ‘default’; var dates = checkin + ‘_’ + checkout; var label = [trackingEl.getAttribute(‘pageaction’), locId, checkin, checkout, guests].join(‘_’); trackingStreams.trackEventOnPageOnce(trackingEl.getAttribute(‘pageproperty’), label, trackingEl.getAttribute(‘productattribute’) ); } } taEvent.on(“page-polling-complete”, _trackCug); _processOverlayOnUpdateWidget(); resizer.init(widget.element); return { clickOffer: clickOffer, clickOfferWrapper: clickOfferWrapper, }; }).bind({})); }); define(‘overlays/options/fade’, [‘lib/jquery-amd’], function($){ ‘use strict’; var NOOP = function(){}; var fadeInClass = ‘fade_in’; var fadeOutClass = ‘fade_out’; function addClass(cl){ $(this.container).addClass(cl); $(this.shade).addClass(cl); } function removeClass(cl){ $(this.container).removeClass(cl); $(this.shade).removeClass(cl); } var BOTH = [ function(fadeType){ addClass.call(this, fadeType.cl); }, function(fadeType){ addClass.call(this, fadeInClass); }, NOOP, function(fadeType){ removeClass.call(this, fadeInClass); }, NOOP ]; var ONLY_IN = [ NOOP, function(fadeType){ addClass.call(this, fadeType.cl); addClass.call(this, fadeInClass); }, function(fadeType){ removeClass.call(this, fadeType.cl); removeClass.call(this, fadeInClass); }, NOOP, NOOP ]; var ONLY_OUT = [ NOOP, NOOP, NOOP, function(fadeType){ addClass.call(this, fadeType.out); addClass.call(this, fadeOutClass); }, function(fadeType){ removeClass.call(this, fadeType.out); removeClass.call(this, fadeOutClass); } ]; var Fade = function(fadeType, onShow, onHide){ return function() { if (!fadeType) { return; } onShow = onShow !== false; onHide = onHide !== false; var oldShow = this.show; var oldHide = this.hide; var fns = onShow && onHide ? BOTH : onShow ? ONLY_IN : ONLY_OUT; fns[0].call(this, fadeType); onShow && (this.show = function() { var args = arguments; oldShow && oldShow.apply(this, args); fns[1].call(this, fadeType); setTimeout(function(){ fns[2].call(this, fadeType); }.bind(this), fadeType.len); }.bind(this)); onHide && (this.hide = function() { var args = arguments; fns[3].call(this, fadeType); setTimeout(function() { fns[4].call(this, fadeType); oldHide && oldHide.apply(this, args); }.bind(this), fadeType.len); }.bind(this)); }; }; Fade.NONE = {cl: ‘fade_none’, out: ‘fade_out_none’, len: 0}; Fade.SHORT = {cl: ‘fade_short’, out: ‘fade_out_short’, len: 250}; Fade.NORMAL = {cl: ‘fade_normal’, out: ‘fade_out_normal’, len: 500}; Fade.LONG = {cl: ‘fade_long’, out: ‘fade_out_long’, len: 1000}; return Fade; }); require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’meta_h_responsive_commerce_tvg_multi_larger_thumbnail’,’tablet/tablet’,[‘handlers’,’tablet/tablet’]); define([ ‘widget’, ‘page-model’, ‘api-mod’, ‘overlays/Overlay’, ‘overlays/position’, ‘overlays/styles/tooltip’, ‘overlays/styles/popover’, ‘overlays/styles/windowshade’, ‘overlays/options/closeOnScrollOutOfView’, ‘overlays/options/closeOnMouseAway’, ‘overlays/options/closeOnSourceClick’, ‘overlays/options/closeOnDocClick’, ‘overlays/options/autoReposition’, ‘overlays/options/maxWidth’, ‘overlays/options/fade’, ‘overlays/options/ajax’, ‘common/trackingStreams’, ‘utils/responsive’ ], function( widget, pageModel, api, Overlay, Position, Tooltip, Popover, Windowshade, CloseOnScrollOutOfView, CloseOnMouseAway, CloseOnSourceClick, CloseOnDocClick, AutoReposition, maxWidth, Fade, Ajax, tracking, Responsive ) { var _shared=widget._shared; //handlers.js sets this up var _overlayComponent; function strikeThroughOverlay(event, source){ if ( !_overlayComponent) { var overlayContent = source && source.querySelector(“.overlay_contents”); if(overlayContent) { _overlayComponent = new Overlay(source, [ Tooltip(source, ‘above’, “dark”, overlayContent.innerHTML), Position.above(), maxWidth(200), CloseOnMouseAway, Fade(Fade.SHORT, true, true) ]); } } if(_overlayComponent){ _overlayComponent.show(); } } function _track(source) { return tracking.trackEvent.bind(null, source); } function dropDown(event, elmt, locId, listPos, pageOffset, ttPlc) { if (_shared.clickableWhiteSpace) { event.stopPropagation(); } var isCloseClick = false; var isMobile = Responsive.mobile(); locId = Number(locId); listPos = Number(listPos); pageOffset = Number(pageOffset); if (_shared.dropDown) { //one already exists isCloseClick = _shared.dropDown.isOpen() && _shared.dropDownLocId == locId && _shared.dropDownListPos == listPos; _shared.dropDown.destroy(); _shared.dropDown=null; } if (isCloseClick) { elmt.setAttribute(‘data-clicksource’, “ViewAllDealsClose”); return false; } else { elmt.setAttribute(‘data-clicksource’, “ViewAllDeals”); } var url = “/OverlayWidgetAjax?Mode=HOTELS_VIEW_ALL_OFFERS&metaReferer=” + encodeURIComponent(pageModel.session.pageServlet); var ajaxOptions={ sendTravelInfo: true, reqParams: { locationId: String(locId), listPos: String(listPos+pageOffset), ttPlc: ttPlc }, inlineResourceId: ‘HOTELS_VIEW_ALL_OFFERS’, isWidget: true }; var sponsoredListingJson = elmt.getAttribute(‘data-sponsoredListing’); if (sponsoredListingJson) { ajaxOptions.reqParams.sponsoredListingJson = sponsoredListingJson; } // this pins the click catching backdrop to right below the view all text // so that users can tap out of the dropdown on mobile var windowshadeTop = function() { var scrollTop = window.pageYOffset || document.documentElement.scrollTop; return elmt && elmt.getBoundingClientRect().bottom + scrollTop; }; var mixins=[ Popover(elmt, “below”, “light mobile_x small”), Position.below([0, -8]), CloseOnSourceClick, AutoReposition, CloseOnDocClick.withoutTouchEvents, isMobile && CloseOnScrollOutOfView, Ajax(url, ajaxOptions), isMobile && Windowshade(“popover-backdrop”, windowshadeTop), ]; var overlay = new Overlay(elmt, mixins); _shared.dropDown = overlay; _shared.dropDownLocId = locId; _shared.dropDownListPos = listPos; overlay.show(); overlay.on(‘hide’, function(e) { if (e && e.trigger) { _track(“hotelcell_h_otherclose”)(); } }); return false; } function closeDropdown() { if (_shared.dropDown) { _shared.dropDown.destroy(); _shared.dropDown=null; } } if (!_shared.tabletInitDone) { _shared.tabletInitDone = true; api.addEvent(document.body, “closeDropdown”, closeDropdown); } return { strikeThroughOverlay : strikeThroughOverlay, dropDown: dropDown }; }); });require([‘ta/prwidgets’], function(widgets) { var define = widgets.define.bind(widgets,’hotels_merchandise_messages’,’handlers’,[‘handlers’]); /** * @created 01/31/2018 * @author qle */ define([‘babel/babel-helpers’, ‘widget’, ‘vanillajs’, ‘common/trackingStreams’, “ta/Core/TA.Event”, ‘utils/throttle’, ‘utils/VisibilityChecker’], function (babelHelpers, widget, vanilajs, trackingStream, taEvent, throttle, visibilityChecker) { var merchandiseMessages = widget.element && widget.element.querySelectorAll(‘.merchandise_message’); /** callback function get invoked after we see the message */ function _callBackAfterSeenMessage(merchandiseMessage) { if (merchandiseMessage) { var pageAction = merchandiseMessage.getAttribute(“data-pageAction”); if (pageAction) { trackingStream.trackEvent(“MERCHANDISE_MESSAGE”, pageAction); taEvent.fireEvent(pageAction); // fire event for other listing widget to stop listening for scroll } var servletName = merchandiseMessage.getAttribute(“data-servletName”); var type = merchandiseMessage.getAttribute(“data-type”); if (servletName && type === “FREE_CANCELLATION”) { trackingStream.trackEvent(“osm-free-cancellation”, “shown”, servletName); } } } if (merchandiseMessages) { var _loop = function _loop(i) { if (merchandiseMessages[i]) { var pageAction = merchandiseMessages[i].getAttribute(“data-pageAction”); if (pageAction) { var merchandiseMessageChecker = visibilityChecker({ elements: [merchandiseMessages[i]], callback: function callback() { return _callBackAfterSeenMessage(merchandiseMessages[i]); } }); if (merchandiseMessageChecker) { var _throttleTrackMessage = throttle(merchandiseMessageChecker, 300); window.addEventListener(‘scroll’, _throttleTrackMessage); // throttle because this message widget is small, so scrolling and check if the widget is in view will fire a lot of events taEvent.on(pageAction, function () { window.removeEventListener(‘scroll’, _throttleTrackMessage); // because there are several instances of this widget, if one instance trackEvent, we want other widget to not track it }); } } } }; // There can be multiple merchandise messages tied to a single offer. Need to independently track each type of merchandise message. for (var i = 0; i < merchandiseMessages.length; i++) { _loop(i); } } return {}; });}); define('sponsoredlisting/HotelSponsoredListingStates', ['vanillajs'], function(vanillajs) { return { LISTING_CREATED: 'listing_created', LOCATION_REQUESTED: 'location_requested', LOCATION_CHOSEN: 'location_chosen', LOCATION_SHOWN: 'location_shown', RESET: 'reset', TIMED_OUT: 'timed_out', LOCATION_FORECASTING: 'location_forecasting' }; }); define('sponsoredlisting/HotelStaticListing', ['vanillajs', 'sponsoredlisting/HotelSponsoredListingStates'], function(vanillajs, SponsoredListingStates) { var LISTING_KEY_DATA_ATTR = 'data-listingKey'; var StaticListing = function (sponsoredSlot, slotIndex, sponsoredType, locationId, slLineItemId, tripAdsId, tripAdsSelectRequestGuid, adOpportunityId, impressionKey, trackingTreePlacementName, listingWrapper, uniqueRequestId, sponsoredLocationSource, partnerNotificationURL, partnerImpressionNotificationURL, gosox) { var _currentState = SponsoredListingStates.LISTING_CREATED; var _sponsoredSlot = sponsoredSlot; var _slotIndex = slotIndex; var _sponsoredType = sponsoredType; var _locationId = locationId; var _adOpportunityId = adOpportunityId; var _slLineItemId = slLineItemId; var _tripAdsId = tripAdsId; var _tripAdsSelectRequestGuid = tripAdsSelectRequestGuid; var _listingWrapper = listingWrapper; var _impressionKey = impressionKey; var _trackingTreePlacementName = trackingTreePlacementName; var _uniqueRequestId = uniqueRequestId; var _sponsoredLocationSource = sponsoredLocationSource; var _partnerNotificationURL = partnerNotificationURL; var _partnerImpressionNotificationURL = partnerImpressionNotificationURL; var _gosox = gosox; var _hasImpressionFired = false; var updateState = function (newState) { _currentState = newState; }; var getState = function () { return _currentState; }; var getSlotIndex = function () { return _slotIndex; }; var getSponsoredType = function () { return _sponsoredType; }; var getSponsoredLocationSource = function () { return _sponsoredLocationSource; }; var getSponsoredSlot = function () { return _sponsoredSlot; }; var isSlotAny = function() { return _sponsoredSlot.isSlotAny; }; var getAdOpportunityId = function () { return _adOpportunityId; }; var getSlLineItemId = function () { return _slLineItemId; }; var getTripAdsId = function () { return _tripAdsId; }; var getTripAdsSelectRequestGuid = function () { return _tripAdsSelectRequestGuid; }; var hasImpressionFired = function () { return _hasImpressionFired; }; var getDisplayedLocationId = function () { return _locationId; }; var getListingWrapper = function () { return _listingWrapper; }; var listingMaintainedByPoll = function (listingWrapper, impressionKey, trackingTreePlacementName, uniqueRequestId, gosox) { _listingWrapper = listingWrapper; _impressionKey = impressionKey; _trackingTreePlacementName = trackingTreePlacementName; _uniqueRequestId = uniqueRequestId; _gosox = gosox; }; var impressionFired = function() { _hasImpressionFired = true; }; var getPollingParam = function () { return { slotIndex: _slotIndex, displayedLocationId: _locationId, sponsoredType: _sponsoredType, adOpportunityId: _adOpportunityId, slLineItemId: _slLineItemId } }; var getTrackingContext = function () { var listingKey = _listingWrapper.getAttribute(LISTING_KEY_DATA_ATTR); var trackingContext = { has_valid_candidate: true, placement_slot_name: _sponsoredSlot.name, slot_index: _slotIndex, location_id: _locationId, sponsored_type: _sponsoredType, opportunity_uid: _adOpportunityId, sl_line_item_id: getSlLineItemId(), page_geo_id: (require.defined('page-model') ? require('page-model').GEO_ID : -1), is_dynamic_listing: false, candidate_location_ids: [_locationId], chosen_location_id: _locationId, current_state: _currentState, listing_key: listingKey, trip_ads_select_guid: _tripAdsSelectRequestGuid, unique_request_id: _uniqueRequestId }; var tripAdsId = getTripAdsId(); if (!!tripAdsId) { trackingContext.trip_ads_id = tripAdsId; } return trackingContext; }; var refresh = function () { _currentState = SponsoredListingStates.RESET; }; var isLocationPaidBackfill = function () { return true; }; var isShowingLocation = function () { return true; }; var getImpressionKey = function () { return _impressionKey; }; var getTrackingTreePlacementName = function () { return _trackingTreePlacementName; }; var getUniqueRequestId = function() { return _uniqueRequestId; }; var getPartnerNotificationURL = function () { return _partnerNotificationURL; }; var getPartnerImpressionNotificationURL = function () { return _partnerImpressionNotificationURL; }; var getGosox = function () { return _gosox; }; return { updateState: updateState, getState: getState, getSlotIndex: getSlotIndex, getSponsoredType: getSponsoredType, getSponsoredLocationSource: getSponsoredLocationSource, getSponsoredSlot: getSponsoredSlot, isSlotAny: isSlotAny, getAdOpportunityId: getAdOpportunityId, getSlLineItemId: getSlLineItemId, getTripAdsId: getTripAdsId, getTripAdsSelectRequestGuid: getTripAdsSelectRequestGuid, getPollingParam: getPollingParam, getTrackingContext: getTrackingContext, getListingWrapper: getListingWrapper, isLocationPaidBackfill: isLocationPaidBackfill, isShowingLocation: isShowingLocation, getDisplayedLocationId: getDisplayedLocationId, getImpressionKey: getImpressionKey, getTrackingTreePlacementName: getTrackingTreePlacementName, getUniqueRequestId: getUniqueRequestId, getPartnerNotificationURL: getPartnerNotificationURL, getPartnerImpressionNotificationURL: getPartnerImpressionNotificationURL, getGosox: getGosox, hasImpressionFired: hasImpressionFired, impressionFired: impressionFired, listingMaintainedByPoll: listingMaintainedByPoll, refresh: refresh }; }; return StaticListing; }); define('retargeting/providers/hotels-sp-provider', ['retargeting/util' ], function(rtUtil) { return function(eventType, trackingContext, listingWrapper) { if(!trackingContext) { return; } var isMember = false; var deviceType = ""; if (require.defined('page-model')) { isMember = require('page-model').session.loggedIn; deviceType = require('page-model').DUST_GLOBAL.DEVICE; } var dataToSend = {}; dataToSend.is_member = isMember; dataToSend.device_type = deviceType; dataToSend.locationId = trackingContext["location_id"]; dataToSend.slot = trackingContext["placement_slot_name"]; if(listingWrapper) { var topOffer = listingWrapper.querySelector("div[data-clicktoken]"); if(topOffer) { dataToSend.top_meta_offer = topOffer.getAttribute("data-provider"); dataToSend.pernight = topOffer.getAttribute("data-pernight"); } } rtUtil.getDates(dataToSend); rtUtil.send(eventType, dataToSend); } }); define('retargeting/listeners/hotels-sp-impression', ['retargeting/providers/hotels-sp-provider' ], function(spDataProvider) { return function(options, listingWrapper) { require(['trjs!taevents'], function() { if(typeof spDataProvider === 'function') { spDataProvider("HOTELS_SP_IMPRESSION", options, listingWrapper); } }); }; }); define('sponsoredlisting/HotelSponsoredListingTracker', ['vanillajs', 'common/trackingStreams', 'utils/cookieutils', 'ajax-request', 'page-model'], function(vanilla, tracking, cookieUtils, ajaxRequest, pageModel) { 'use strict'; var SPONSORED_AD_OPPORTUNITY_ID_COOKIE_NAME = 'sponsOppId'; var SPONSORED_AD_LINE_ITEM_ID_COOKIE_NAME = 'sponsLineItem'; var TRIP_ADS_EVENT_TYPE_CLICKED = 'CLICKED'; var TRIP_ADS_EVENT_TYPE_CLICKED_UNPAID = 'CLICKED_UNPAID'; var TRIP_ADS_EVENT_TYPE_IMPRESSED = 'IMPRESSED'; var SP_PARTNER_NOTIFICATION_IFRAME_ID = 'SP_PARTNER_NOTIFICATION_IFRAME'; function setSponsoredAdCookie(slLineItemId, adOpportunityId) { cookieUtils.setCookieInSeconds(SPONSORED_AD_OPPORTUNITY_ID_COOKIE_NAME, adOpportunityId, { duration: 10, ignoreVersion: true }); cookieUtils.setCookieInSeconds(SPONSORED_AD_LINE_ITEM_ID_COOKIE_NAME, slLineItemId, { duration: 10, ignoreVersion: true }); } function recordSponsoredPlacementCommerceClick(sponsoredListing, destination, isBooking, auctionOfferKey, isMetaPrefClick, callback) { var slotName = sponsoredListing.getSponsoredSlot().name; var servletName = sponsoredListing.getSponsoredSlot().servletName; var trackingContext = sponsoredListing.getTrackingContext(); var slLineItemId = sponsoredListing.getSlLineItemId(); var tripAdsId = sponsoredListing.getTripAdsId(); var slotIndex = sponsoredListing.getSlotIndex(); var impressionKey = sponsoredListing.getImpressionKey(); var trackingTreePlacementName = sponsoredListing.getTrackingTreePlacementName(); var gosox = sponsoredListing.getGosox(); if (sponsoredListing.isLocationPaidBackfill()) { ajaxRequest({ method: 'POST', url: isMetaPrefClick ? '/SponsoredListingCommerce/1.0/increment_click_metric' : '/SponsoredListingCommerce/1.0/click', 'content-type': 'application/json', 'x-requested-by': pageModel.JS_SECURITY_TOKEN, data: JSON.stringify( _assign({}, { 'slot': slotIndex, 'location_id': trackingContext.location_id, 'listing_key': trackingContext.listing_key, 'area': slotName, 'from': servletName, 'dest': destination, 'is_backfill': sponsoredListing.isLocationPaidBackfill(), 'click_type' : destination === 'Hotel_Review' ? 'HR' : (isBooking ? 'IB' : 'META') }, slLineItemId ? {'sl_line_item_id': slLineItemId} : {}, tripAdsId ? {'trip_ads_id': tripAdsId} : {}, impressionKey ? {'impression_key': impressionKey} : {}, auctionOfferKey ? {'auction_offer_key': auctionOfferKey} : {}, trackingTreePlacementName ? {'tt_placement': trackingTreePlacementName} : {}, gosox ? {'gosox' : gosox} : {}) ) }).then(callback, callback); } else { callback(); } } function postTripAdsEvent(selectRequestGuid, externalId, eventType) { return ajaxRequest({ method: 'POST', url: '/data/1.0/tap/recordEvent', 'content-type': 'application/json', 'x-requested-by': pageModel.JS_SECURITY_TOKEN, data: JSON.stringify({ 'eventType': eventType, 'requestGuid': selectRequestGuid, 'externalId': externalId }) }); } function recordTripAdsClick(sponsoredListing, isPaidSponsoredClick, callback) { var selectRequestGuid = sponsoredListing.getTripAdsSelectRequestGuid(); var externalId = sponsoredListing.getAdOpportunityId(); var eventType = isPaidSponsoredClick ? TRIP_ADS_EVENT_TYPE_CLICKED : TRIP_ADS_EVENT_TYPE_CLICKED_UNPAID; if (!!selectRequestGuid) { postTripAdsEvent(selectRequestGuid, externalId, eventType) .then(callback, callback); } else { callback(); } } function recordTripAdsImpression(selectRequestGuid, externalId) { if (!!selectRequestGuid) { postTripAdsEvent(selectRequestGuid, externalId, TRIP_ADS_EVENT_TYPE_IMPRESSED); } } function _assign(target, args) { for (var i = 1; i 0 && rect.height > 0 && ((rect.top >= 0 && rect.top = 0 && rect.bottom <= window.innerHeight)); } catch (e) { return false; } } function fireImpression(listing) { if (!listing || listing.hasImpressionFired()) { return; } var sponsoredLocationSource = listing.getSponsoredLocationSource(); var trackingContext = listing.getTrackingContext(); var tripAdsSelectRequestGuid = listing.getTripAdsSelectRequestGuid(); var opportunityId = listing.getAdOpportunityId(); if (sponsoredLocationSource === OWNER_AD_CTA_SPONSORED_LOCATION_SOURCE) { tracking.trackUnifiedEvent('sl_owner_cta_displayed', 'impression', trackingContext); } else { htImpTracker(trackingContext, listing.getListingWrapper()); tracking.trackUnifiedEvent('paid_backup_sponsored_listing_displayed', 'impression', trackingContext); if (!!tripAdsSelectRequestGuid) { HotelSponsoredListingTracker.recordTripAdsImpression(tripAdsSelectRequestGuid, opportunityId); } } if (listing.getPartnerImpressionNotificationURL()) { HotelSponsoredListingTracker.notifyPartner(listing.getPartnerImpressionNotificationURL()); } listing.impressionFired(); } var _updatePollingParameter = function(needsPoll) { var slotKey; var listing; var pollingParam = {}; for (slotKey in _sponsoredListings) { if (_sponsoredListings.hasOwnProperty(slotKey)) { listing = _sponsoredListings[slotKey]; if (listing.getState() !== SponsoredListingStates.RESET && !listing.isSlotAny()) { pollingParam[listing.getSponsoredSlot().name] = listing.getPollingParam(); } } } taFireEvent.fireEvent('hotels.sponsored_listing_updated', pollingParam, needsPoll); }; var getListingByElement = function(elem) { var slotKey; var listing; var foundListing; for (slotKey in _sponsoredListings) { if (_sponsoredListings.hasOwnProperty(slotKey)) { listing = _sponsoredListings[slotKey]; if (listing.getListingWrapper().contains(elem)) { foundListing = listing; break; } } } return foundListing; }; var getSponsoredListing = function(slotKey) { return _sponsoredListings[slotKey]; }; var getListingWrapper = function(slotKey) { var listing = _sponsoredListings[slotKey]; if (listing) { return listing.getListingWrapper(); } return null; }; var getTrackingContextForSlot = function(slotKey) { var listing = _sponsoredListings[slotKey]; if (listing && listing.getTrackingContext) { return listing.getTrackingContext(); } return undefined; }; var isShowingLocation = function(slotKey) { var listing = _sponsoredListings[slotKey]; return !!listing; }; _init(); return { staticListingRendered: staticListingRendered, listingMaintainedByPoll: listingMaintainedByPoll, fireImpression: fireImpression, getSponsoredListing: getSponsoredListing, getListingWrapper: getListingWrapper, getTrackingContextForSlot: getTrackingContextForSlot, isShowingLocation: isShowingLocation, getListingByElement: getListingByElement, updateOrCreateListingOnPoll: updateOrCreateListingOnPoll } }; return HotelsSponsoredListings; }); require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'sponsoredListings_hotels_sponsored_listing_cta_v2','handlers',['handlers']); /** * Handler methods for the second version of the CTA ad * * @author aozturk * @since Nov 2018 */ define(['widget', 'sponsoredlisting/HotelsSponsoredListings', 'common/trackingStreams'], function(widget, HotelsSponsoredListings, trackingStreams) { var LOCATION_ID_DATA_ATTR = 'data-locationId'; var SLOT_INDEX_DATA_ATTR = 'data-slotIndex'; var SPONSORED_TYPE_DATA_ATTR = 'data-sponsoredType'; var SPONSORED_SLOT_DATA_ATTR = 'data-sponsoredSlot'; var AD_OPPORTUNITY_ID_DATA_ATTR = 'data-adOpportunityId'; var UNIQUE_REQUEST_ID = 'data-uniqueRequestId'; // Unique per page load and poll. var SPONSORED_LOCATION_SOURCE_DATA_ATTR = 'data-sponsoredLocationSource'; var _shared = this; // track state of sponsored listings (shared across all sponsored listing cta widgets) if (!_shared.sponsoredListingStateManager) { _shared.sponsoredListingStateManager = new HotelsSponsoredListings(); } var _sponsoredListing = widget.element.querySelector('.sponsoredListingAdCTA'), _sponsoredPlacementSlot = JSON.parse(_sponsoredListing.getAttribute(SPONSORED_SLOT_DATA_ATTR)), // See HotelSponsoredPlacementSlotModel.java _slotIndex = parseInt(_sponsoredListing.getAttribute(SLOT_INDEX_DATA_ATTR), 10), _adOpportunityId = _sponsoredListing.getAttribute(AD_OPPORTUNITY_ID_DATA_ATTR), _sponsoredType = _sponsoredListing.getAttribute(SPONSORED_TYPE_DATA_ATTR), _uniqueRequestId = _sponsoredListing.getAttribute(UNIQUE_REQUEST_ID), _sponsoredLocationSource = _sponsoredListing.getAttribute(SPONSORED_LOCATION_SOURCE_DATA_ATTR); function _init() { var locationId = parseInt(_sponsoredListing.getAttribute(LOCATION_ID_DATA_ATTR), 10); _shared.sponsoredListingStateManager.staticListingRendered(_sponsoredPlacementSlot, _slotIndex, _sponsoredType, locationId, null, null, null, null, _adOpportunityId, null, _sponsoredListing, _uniqueRequestId, _sponsoredLocationSource); trackingStreams.trackUnifiedEvent('user_saw_v2_cta_ad', 'impression', { locationId: locationId }); } if (_sponsoredListing.getAttribute('data-isNewListing')) { _init(); } else { _shared.sponsoredListingStateManager.listingMaintainedByPoll(_sponsoredPlacementSlot.slotKey, _sponsoredListing, null, _uniqueRequestId, null); } }.bind({}));}); define('hotels/specialOfferClick', ['babel/babel-helpers', 'utils/waiton', 'ta/Core/TA.FireEvent', 'hotels/listingKeyPlugin'], function (babelHelpers, waitOn, taFireEvent, listingKeyPlugin) { var ASYNC_ACTIONS_TIMEOUT = 250; var SPECIAL_OFFER_CLICK_EVENT = 'hotels.special_offer_click'; var _preclickActions = []; var _registerAsyncPreclick = function _registerAsyncPreclick(action) { if (typeof action === 'function') { _preclickActions.push(action); } }; var _clickEvent = function _clickEvent(elem, listingKey, redirectAction, isNewTab) { taFireEvent.fireEvent(SPECIAL_OFFER_CLICK_EVENT, elem); listingKeyPlugin.setListingKeyCookie(listingKey); if (isNewTab) { redirectAction && redirectAction(); _preclickActions.forEach(function (action) { return action(elem, function () {}); }); } else { var boundActions = _preclickActions.map(function (action) { return action.bind(null, elem); }); waitOn(boundActions, redirectAction, ASYNC_ACTIONS_TIMEOUT); } }; return { SPECIAL_OFFER_CLICK_EVENT: SPECIAL_OFFER_CLICK_EVENT, registerAsyncPreclick: _registerAsyncPreclick, clickEvent: _clickEvent }; }); define('retargeting/listeners/hotels-sp-click', ['retargeting/providers/hotels-sp-provider' ], function(spDataProvider) { return function(options, listingWrapper) { require(['trjs!taevents'], function() { if(typeof spDataProvider === 'function') { spDataProvider("HOTELS_SP_CLICK", options, listingWrapper); } }); }; }); require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'sponsoredListings_hotels_sponsored_listing_data','handlers',['handlers']); /** * Basic handlers for a HotelsSponsoredListingDataWidget * * @author yujzhang * @since August 2019 */ define(['widget', 'vanillajs', 'utils/objutils', 'sponsoredlisting/HotelsSponsoredListings', 'sponsoredlisting/HotelSponsoredListingTracker', 'hotels/listingClick', 'hotels/baLinkClick', 'hotels/specialOfferClick', 'commerce/offerclick', 'ta/Core/TA.FireEvent', 'common/trackingStreams', 'retargeting/listeners/hotels-sp-click', 'ta/Core/TA.LocalStorage', 'hotels/ClickSourceTracking', 'hotels/tracking/UEF-LocationDateSpecificClickThru'], function(widget, vanillajs, objutils, HotelsSponsoredListings, HotelSponsoredListingTracker, listingClick, baWebLinkClick, specialOfferClick, offerClick, taFireEvent, trackingStreams, htClickTracker, localStorage, clickSourceTracking, UEFClickThruTracker ) { var META_PREFERENCE_SPONSORED_TYPE = 'DISCOVERY_META_PREFERENCE'; var SP_PARTNER_NOTIFICATION_IFRAME_ID = 'SP_PARTNER_NOTIFICATION_IFRAME'; // Event name for organic listing rendered. Fired in hsx_responsive_listing/handlers.es6 and hsx_responsive_tabbed_listing/handlers.es6 var RESPONSIVE_LISTING_RENDERED_EVENT = 'hotels.responsive_listing_rendered'; var SPONSORED_LISTINGS_DATA_ATTR = 'data-sponsoredListingsData'; // Identify sponsored clicks so we do not subsequently show the user a login gate on an otherwise eligible detail page var SPONSORED_LISTING_ID_CLICKED_KEY = 'sponsoredListingIdClicked'; var SPONSORED_LISTING_ID_CLICKED_EXPIRATION = 1000 * 60 * 5; // 5 minutes in milliseconds // list of sponsored data which from HotelSponsoredListingDataModel.m_sponsoredListingsData var _sponsoredListingsData = JSON.parse(widget.element.querySelector('.sponsoredListingsData').getAttribute(SPONSORED_LISTINGS_DATA_ATTR).trim()); var shouldUngateSponsoredClicks = widget.element.querySelector('.sponsoredListingsData').hasAttribute('data-ungateSponsoredClicks'); // register event listener here so that _storeSponsoredData can get the updated _sponsoredListingsData for each polling // listener deregistered in _storeSponsoredData when widget.element get unmounted taFireEvent.on(RESPONSIVE_LISTING_RENDERED_EVENT, _storeSponsoredData); // necessary const and event listener for common behavior for listing click when the slot is for SP var clickThruTracker = new UEFClickThruTracker({ pageAction: 'ct_l2hr', // click thru list to hr }); var RESPONSIVE_LISTING_SP_CLICK = 'hotels.responsive_sp_click'; var RESPONSIVE_LISTING_OPEN_META_LINK = 'hotels.responsive_open_meta_link'; taFireEvent.off(RESPONSIVE_LISTING_SP_CLICK, _spListingClickAction); taFireEvent.on(RESPONSIVE_LISTING_SP_CLICK, _spListingClickAction); var _shared = this; // track state of sponsored listings (shared across all simple sponsored listing widgets) if (!_shared.sponsoredListingStateManager) { _shared.sponsoredListingStateManager = new HotelsSponsoredListings(); // attach a click handler to log impressions for SLOT_ANY SPs, these are special because // they change per poll. We don't want to overshoot each impression on polls, and this is a temporary solution listingClick.registerAsyncPreclick(_logImpressionForClickTemp); // attach click event handlers here since we only want to attach them once across polls, etc // register a callback on click through to /H_R that takes care of passing a click through to UUT listingClick.registerAsyncPreclick(_logClickToHotelReview); // register a callback on click through to /H_R that takes care of passing in our own sponsored placement commerce click listingClick.registerAsyncPreclick(_logSPCommerceClickForHR); // register a callback on click through to /H_R that takes care of logging the click event with TripAds listingClick.registerAsyncPreclick(_logClickToHRWithTripAds); // register a callback on click through to /H_R that notice partner sp click to /HR listingClick.registerAsyncPreclick(_notifyPartnerAboutHRClick); // register a callback on a meta/ib offer click that takes care of passing a click through to UUT offerClick.registerAsyncPreclick(_logIBMetaClick); // register a callback on a meta/ib offer click that takes care of passing in our own sponsored placement commerce click offerClick.registerAsyncPreclick(_logSPCommerceClick); // register a callback on a meta/ib offer click that takes care of logging the click event with TripAds offerClick.registerAsyncPreclick(_logClickWithTripAds); // attach a click handler to log impressions for SLOT_ANY SPs, these are special because // they change per poll. We don't want to overshoot each impression on polls, and this is a temporary solution offerClick.registerAsyncPreclick(_logImpressionForClickTemp); // register a callback on a click on a website click baWebLinkClick.registerAsyncPreclick(_logBAWebsiteClick); // attach a click handler to log impressions for SLOT_ANY SPs, these are special because // they change per poll. We don't want to overshoot each impression on polls, and this is a temporary solution baWebLinkClick.registerAsyncPreclick(_logImpressionForClickTemp); specialOfferClick.registerAsyncPreclick(_logSpecialOfferClick); // attach a click handler to log impressions for SLOT_ANY SPs, these are special because // they change per poll. We don't want to overshoot each impression on polls, and this is a temporary solution specialOfferClick.registerAsyncPreclick(_logImpressionForClickTemp); taFireEvent.off(listingClick.LISTING_CLICK_EVENT, _setAttributionCookieToHotelReview); taFireEvent.on(listingClick.LISTING_CLICK_EVENT, _setAttributionCookieToHotelReview); taFireEvent.off(specialOfferClick.SPECIAL_OFFER_CLICK_EVENT, _setAttributionCookieToHotelReview); taFireEvent.on(specialOfferClick.SPECIAL_OFFER_CLICK_EVENT, _setAttributionCookieToHotelReview); } function _storeSponsoredData(elem, listingKey) { if (!document.body.contains(widget.element)) { taFireEvent.off(RESPONSIVE_LISTING_RENDERED_EVENT, _storeSponsoredData); return; } var sponsoredListingData = _sponsoredListingsData.find(function(data) { return data.listingKey === listingKey; }); if (!sponsoredListingData) { return; } _init(elem, sponsoredListingData, sponsoredListingData.isNewListing); } // initialize sponsored data // sponsoredListingData corresponds to HotelsSponsoredListingDataWidget.HotelsSponsoredData function _init(elem, sponsoredListingData, isNewListing) { var sponsoredPlacementSlot = sponsoredListingData.sponsoredPlacementSlot; var slotIndex = parseInt(sponsoredListingData.slotIndex, 10); var sponsoredType = sponsoredListingData.sponsoredType; var slLineItemId = parseInt(sponsoredListingData.slLineItemId, 10); var tripAdsId = sponsoredListingData.tripAdsId; var tripAdsSelectRequestGuid = sponsoredListingData.tripAdsSelectRequestGuid; var adOpportunityId = sponsoredListingData.adOpportunityId; var locationId = parseInt(sponsoredListingData.locationId, 10); var impressionKey = sponsoredListingData.impressionKey; var trackingTreePlacementName = sponsoredListingData.trackingTreePlacementName || ""; //UrlArg.AJAX_TT_PLACEMENT var uniqueRequestId = sponsoredListingData.uniqueRequestId || ""; var sponsoredLocationSource = sponsoredListingData.sponsoredLocationSource; var partnerNotificationURL = sponsoredListingData.partnerNotificationURL; var partnerImpressionNotificationURL = sponsoredListingData.partnerImpressionNotificationURL; var gosox = sponsoredListingData.gosox || ""; // SLOT_ANY types are always new on each poll if (isNewListing) { _shared.sponsoredListingStateManager.staticListingRendered( sponsoredPlacementSlot, slotIndex, sponsoredType, locationId, slLineItemId, tripAdsId, tripAdsSelectRequestGuid, adOpportunityId, impressionKey, trackingTreePlacementName, elem, uniqueRequestId, sponsoredLocationSource, partnerNotificationURL, partnerImpressionNotificationURL, gosox); } else { _shared.sponsoredListingStateManager.updateOrCreateListingOnPoll( sponsoredPlacementSlot, slotIndex, sponsoredType, locationId, slLineItemId, tripAdsId, tripAdsSelectRequestGuid, adOpportunityId, impressionKey, trackingTreePlacementName, elem, uniqueRequestId, sponsoredLocationSource, partnerNotificationURL, partnerImpressionNotificationURL, gosox); } } /** * Ensure relevant clicks are recorded in the Unified User Tracking mechanism based on a corresponding Meta/IB click on one of the offers * * @param {Element|null} elem - the listing node (ancestor of the commerce node) * @param {Object} token - a mysterious commerce token * @param {Function} callback - the callback which we must call */ function _logIBMetaClick(elem, token, callback) { var slotKey = _getSlotKey(elem); // copy the context to avoid mutating the real token object var commerceContext = objutils.extend({}, offerClick.expandToken(token)); delete commerceContext.url; // remove the super long commerce url to avoid clutter in tracking context if (_isListingClickRelevant(slotKey)) { var baseEventName = commerceContext.isBooking ? 'sponsored_ib_click' : 'sponsored_meta_click'; var trackingContext = _shared.sponsoredListingStateManager.getTrackingContextForSlot(slotKey); trackingContext = objutils.extend(trackingContext, commerceContext); // Unified User Tracking trackingStreams.trackUnifiedEvent('paid_backup_' + baseEventName, 'action', trackingContext); } callback(); } /** * Post a sponsored placement commerce click on a click to H_R * * @param {Element} elem - the element that was clicked on * @param {String} listingKey - UUID that uniquely identifies a hotel listing * @param {Function} callback - the function to call after the tracking is complete (no params) * @private */ function _logSPCommerceClickForHR(elem, listingKey, callback) { // We could use the given listingKey, but to keep things consistent with meta/ib clicks we get it // from the SP widget's DOM node instead within this function if (!_isSuppressHRClickNecessary(elem)) { _logSPCommerceClick(elem, null, callback); } } /** * If the click is a paid sponsored click, post a sponsored placement commerce click * * null is passed in as the token to log if the destination is /Hotel_Review * * @param {Element|null} elem DOM element that got clicked * @param {Object|null} token A mysterious commerce token, if this was a click on a commerce offer (null otherwise) * @param {String} token.providerName The name of the provider associated with the clicked offer * @param {Function} callback Function to call on completion. No params. * @private */ function _logSPCommerceClick(elem, token, callback) { var listing = _getListing(elem); var slotKey; if (listing) { var slot = listing.getSponsoredSlot(); slotKey = slot.slotKey; } // if token isn't provided, the user is clicking through to Hotel_Review var isClickToHotelReview = !token; var isMetaPrefClick = _isMetaPrefClick(slotKey, isClickToHotelReview, token); if (_isListingClickRelevant(slotKey) && _isPaidSponsoredClick(slotKey, isClickToHotelReview, isMetaPrefClick)) { HotelSponsoredListingTracker.recordSponsoredPlacementCommerceClick(listing, isClickToHotelReview ? 'Hotel_Review' : token.providerName, isClickToHotelReview ? false : token.isBooking, isClickToHotelReview ? null : token.ttAOK, isMetaPrefClick, callback); } else { callback(); } } /** * ensure that we fire a Unified User Tracking click event based on a click through to H_R * * @param {Element} elem - the element that was clicked on * @param {String} listingKey - UUID that uniquely identifies a hotel listing * @param {Function} callback - the function to call after the tracking is complete * @private */ function _logClickToHotelReview(elem, listingKey, callback) { var slotKey = _getSlotKey(elem); if (_isListingClickRelevant(slotKey) && !_isSuppressHRClickNecessary(elem)) { var trackingContext = _buildTrackingContextForSlot(slotKey); var listingWrapper = _shared.sponsoredListingStateManager.getListingWrapper(slotKey); trackingStreams.trackUnifiedEvent('paid_backup_sponsored_listing_click', 'action', trackingContext); // Holistic tracking for click event htClickTracker(trackingContext, listingWrapper); } callback(); } /** * Create iframe with partner's URL to notice about click through /HR */ function _notifyPartnerAboutHRClick(elem, listingKey, callback) { var slotKey = _getSlotKey(elem); if (_isListingClickRelevant(slotKey) && !_isSuppressHRClickNecessary(elem)) { var sl = _shared.sponsoredListingStateManager.getSponsoredListing(slotKey); if (!sl || !sl.getPartnerNotificationURL()) { return; } HotelSponsoredListingTracker.notifyPartner(sl.getPartnerNotificationURL()) } callback(); } /** * Log a click on a special offer within a sponsored listing * @param {Element} elem - the element that was clicked on * @param {Function} callback - the function to call after the tracking is complete * @private */ function _logSpecialOfferClick(elem, callback) { var slotKey = _getSlotKey(elem); if (_isListingClickRelevant(slotKey)) { var trackingContext = _buildTrackingContextForSlot(slotKey); trackingStreams.trackUnifiedEvent('paid_backup_sp_special_offer_click', 'action', trackingContext); // Update holistic tracking here: https://jira.tripadvisor.com/browse/BIZ-13260 } callback(); } function _buildTrackingContextForSlot(slotKey) { var listing = _shared.sponsoredListingStateManager.getSponsoredListing(slotKey); var impressionKey = listing && listing.getImpressionKey; var trackingTreePlacementName = listing && listing.getTrackingTreePlacementName(); return objutils.extend(_shared.sponsoredListingStateManager.getTrackingContextForSlot(slotKey), impressionKey ? {'ik': impressionKey} : {}, trackingTreePlacementName ? {'tt_placement': trackingTreePlacementName} : {} ); } /** * Log a impression for the V0 of sponsored hotels integration to the organic list. * Because the list polls and slots can change for each SP, we dont want to over generate * in-view impressions for these hotels. Quick solution: send impressions on clicks * * @param elem * @private */ function _logImpressionForClickTemp(elem) { var slotKey = _getSlotKey(elem); if (_isListingClickRelevant(slotKey) && !_isSuppressHRClickNecessary(elem)) { var listing = _shared.sponsoredListingStateManager.getSponsoredListing(slotKey); if (listing.isSlotAny() && !listing.hasImpressionFired()) { _shared.sponsoredListingStateManager.fireImpression(listing); } } } /** * Set a cookie for sponsored listing click-through to /Hotel_Review * so that events on /Hotel_Review can be attributed to this interaction * * @param {Element} elem - the element that was clicked on * @private */ function _setAttributionCookieToHotelReview(elem) { var slotKey = _getSlotKey(elem); if (!_isListingClickRelevant(slotKey)){ return; } var sl =_shared.sponsoredListingStateManager.getSponsoredListing(slotKey); if (!sl || !sl.isShowingLocation()) { return; } HotelSponsoredListingTracker.setSponsoredAdCookie(sl.getSlLineItemId(), sl.getAdOpportunityId()); if (shouldUngateSponsoredClicks && localStorage.enabled) { localStorage.set(SPONSORED_LISTING_ID_CLICKED_KEY, sl.getDisplayedLocationId(), SPONSORED_LISTING_ID_CLICKED_EXPIRATION); } } /** * ensure that * - we fire our own Unified User Tracking events based on a click through to H_R * * @param {Element} elem - the element that was clicked on * @param {Object|null} token A mysterious commerce token, if this was a click on a commerce offer (null otherwise) * @param {Function} callback - the function to call after the tracking is complete * @private */ function _logBAWebsiteClick(elem, token, callback) { var slotKey = _getSlotKey(elem); var isCommerce = elem.hasAttribute('data-curl') && elem.getAttribute('data-curl') === 'true'; if (_isListingClickRelevant(slotKey)) { var trackingContext = objutils.extend(_shared.sponsoredListingStateManager.getTrackingContextForSlot(slotKey), { is_commerce : isCommerce, ik : (token && token.ik) } ); trackingStreams.trackUnifiedEvent('paid_backup_sp_ba_website_click', 'action', trackingContext); } callback(); } /** * ensure that * - we fire the TripAds click event for clicks to H_R on ads that were selected by TripAds * * @param {Element} elem - the element that was clicked on * @param {String} listingKey - UUID that uniquely identifies a hotel listing * @param {Function} callback - the function to call after the tracking is complete (no params) * @private */ function _logClickToHRWithTripAds(elem, listingKey, callback) { if(!_isSuppressHRClickNecessary(elem)) { _logClickWithTripAds(elem, null, callback); } } /** * ensure that * - we fire the TripAds click event for paid clicks on ads that were selected by TripAds * * @param {Element} elem - the element that was clicked on * @param {Object|null} token A mysterious commerce token, if this was a click on a commerce offer (null otherwise) * @param {Function} callback - the function to call after the tracking is complete * @private */ function _logClickWithTripAds(elem, token, callback) { var listing = _getListing(elem); var slotKey; if (listing) { var slot = listing.getSponsoredSlot(); slotKey = slot.slotKey; } if (_isListingClickRelevant(slotKey)) { // if token isn't provided, the user is clicking through to Hotel_Review var isClickToHotelReview = !token; var isMetaPrefClick = _isMetaPrefClick(slotKey, isClickToHotelReview, token); var isPaidSponsoredClick = _isPaidSponsoredClick(slotKey, isClickToHotelReview, isMetaPrefClick); HotelSponsoredListingTracker.recordTripAdsClick(listing, isPaidSponsoredClick, callback); } else { callback(); } } /** * Determine whether or not we should charge the hotel for a click on the given slot. * * A standard sponsored listing click is always paid. * * A meta preference sponsored listing click is paid if the click goes to /Hotel_Review or if it is a meta pref click. * * @param {String} slotKey The slotKey of the sponsored placement slot in which the listing is rendered _ * @param {boolean} isClickToHotelReview True if this was a click to Hotel_Review, false otherwise * @param isMetaPrefClick True if this was a meta pref click for meta preference lineItem, false otherwise * @returns {boolean} True if we should charge the hotel for this click, false otherwise */ function _isPaidSponsoredClick(slotKey, isClickToHotelReview, isMetaPrefClick) { var sl = _shared.sponsoredListingStateManager.getSponsoredListing(slotKey); // Note that we don't charge for clicks on ib/meta for meta preference listings return !!sl && (sl.getSponsoredType() !== META_PREFERENCE_SPONSORED_TYPE || isClickToHotelReview || isMetaPrefClick); } function _isMetaPrefClick(slotKey, isClickToHotelReview, token) { var sl = _shared.sponsoredListingStateManager.getSponsoredListing(slotKey); return !!sl && sl.getSponsoredType() === META_PREFERENCE_SPONSORED_TYPE && !isClickToHotelReview && !!token && token.slot === '1'; } /** * Determine if the slot clicked (given by the slot key) is relevant to be tracked * * @param {String} slotKey The slotKey of the sponsored placement slot in which the listing is rendered _ * @returns {boolean} - true if we should track the click for this sponsored listing, false otherwise * @private */ function _isListingClickRelevant(slotKey) { if (slotKey) { return _shared.sponsoredListingStateManager.isShowingLocation(slotKey); } return false; } /** * Determine if the SLD or SLM clicks need to be suppressed. * * @param elem HTMLElement where click event happened. * @returns {boolean} - true if we should not allow the SLD or SLM clicks through, false otherwise * @private */ function _isSuppressHRClickNecessary(elem) { var spTestAction = clickSourceTracking.findAttribute('data-SPTestAction', elem); if (spTestAction === 'openMetaOnly' || spTestAction === 'openMetaHR' || spTestAction === 'openHRMeta') { return true; } return false; } /** * Given an element, determines the slot name by element (including the case of an offers dropdown overlay element) * @param {Element|null} elem - the clicked element * @returns {String|undefined} slotKey The key of the sponsored placement slot in which the listing is rendered * @private */ function _getSlotKey(elem) { var listing = _getListing(elem); var slotKey; if (listing) { var slot = listing.getSponsoredSlot(); slotKey = slot.slotKey; } return slotKey; } /** * Given an element, determines the listing by element (including the case of an offers dropdown overlay element) * @param {Element|null} elem - the clicked element * @returns {DynamicListing|null} listing The listing where the element is rendered or null if it doesn't correspond to any listing * @private */ function _getListing(elem) { var listing = null; if (elem) { listing = _shared.sponsoredListingStateManager.getListingByElement(elem); // In the context of the 'View All Deals' dropdown, we display offers in an overlay that isn't within the listing // element in the DOM, so we need to check that case. if ((!listing) && (_isSponsoredListingOverlayListElement(elem))) { var slotKey = _getSlotKeyFromSponsoredListingOverlayListElement(elem); if (slotKey) { listing = _shared.sponsoredListingStateManager.getSponsoredListing(slotKey); } } } return listing; } /** * In the context of the 'View All Deals' dropdown, we display offers in an overlay that isn't within the listing * element in the DOM. In that case, look for the data attributes on the offer elements themselves. * TODO: We should find a better way to do this. If the unified price drawer rolls out to 100% of traffic, we can remove this special case. * @param {Element|null} elem - the clicked element * @returns {boolean} * @private */ function _isSponsoredListingOverlayListElement(elem) { if (elem && elem.getAttribute('data-sponsoredListing')) { return true; } return false; } /** * Given a sponsored listing overlay list element, returns the slot name * @param {Element|null} elem - the clicked element * @returns {String} slotKey * @private */ function _getSlotKeyFromSponsoredListingOverlayListElement(elem) { var slotKey = ''; var sponsoredListingJson = elem.getAttribute('data-sponsoredListing'); if (!sponsoredListingJson) { return slotKey; } try { var sponsoredListing = JSON.parse(sponsoredListingJson); slotKey = sponsoredListing.slotKey; } catch (error) { trackingStreams.error(error, 'error occurred when parsing sponsored listing json to retrieve a slot name'); } return slotKey; } /** * BIZ-18483: private method to define the common behavior if additional/alternative option is required for the value prop test in SP. * For variant 1: open meta link as a new tab for all SP Meta_Preference campaigns. * For variant 2: open meta link or BA weblink in a new tab and open /HR in current /H page. * For variant 3: open meta link or BA weblink in current /H page and open /HR in a new tab. * */ function _spListingClickAction(locId, testAction, currentElemListingKey, event, hrUrl, BAWebLink, index, info, impressionKey, isReviewClick){ // If the received widget is not in the current DOM, we turn the eventListener off and do not perform any action. // eslint-disable-next-line no-restricted-globals if (!document.body.contains(widget.element)) { taFireEvent.off(RESPONSIVE_LISTING_SP_CLICK, _spListingClickAction); return; } // We want to open meta link when the user clicked a whitespace, title or photo, but not the reviews. if (testAction === 'openMetaOnly' && !isReviewClick) { taFireEvent.fireEvent(RESPONSIVE_LISTING_OPEN_META_LINK, event, currentElemListingKey, false); } else { // In all other cases, we will open HR page as well as additional one if necessary, so track for the HR page open clickThruTracker.processAndTrackClickThrough(locId, impressionKey, hrUrl); trackingStreams.setEvtCookie('Reviews', info.source, locId, index, hrUrl); // Rule out edge cases before jumping into opening tabs. // For all SP campaigns in variant 2, apply test only when the click is not review click. // For all SP standard campaigns in variant 2 or 3, apply test only when BA website link is not null. // For all these edge cases, apply normal current behavior. switch (testAction) { case 'openHRMeta': if (isReviewClick) { // eslint-disable-next-line no-param-reassign testAction = ''; } break; case 'openHRWebLink': if (isReviewClick || BAWebLink == null) { // eslint-disable-next-line no-param-reassign testAction = ''; } break; case 'openWebLinkHR': if (BAWebLink == null) { // eslint-disable-next-line no-param-reassign testAction = ''; } break; default: break; } // Then, open necessary tabs switch (testAction) { case 'openHRMeta': // This will open a meta link in a new tab & track SLDM or SLMM clicks. taFireEvent.fireEvent(RESPONSIVE_LISTING_OPEN_META_LINK, event, currentElemListingKey, 'new_tab'); // Then, redirect current /H page to /HR // eslint-disable-next-line no-restricted-globals window.open(hrUrl, '_self'); break; case 'openMetaHR': // Open HR in a new tab. // eslint-disable-next-line no-restricted-globals window.open(hrUrl, '_blank'); // Then, redirect current /H page to a meta link & track SLDM or SLMM clicks. taFireEvent.fireEvent(RESPONSIVE_LISTING_OPEN_META_LINK, event, currentElemListingKey, 'same_tab'); break; case 'openHRWebLink': // This will open a BA weblink in a new tab & NOT track CLD or CLM clicks. // eslint-disable-next-line no-restricted-globals window.open(BAWebLink, '_blank'); // Then, redirect current /H page to /HR // eslint-disable-next-line no-restricted-globals window.open(hrUrl, '_self'); break; case 'openWebLinkHR': // Open HR in a new tab. // eslint-disable-next-line no-restricted-globals window.open(hrUrl, '_blank'); // Then, redirect current /H page to a BA weblink & NOT track CLD or CLM clicks. // eslint-disable-next-line no-restricted-globals window.open(BAWebLink, '_self'); break; default: // In all the other cases, open /HR in another tab. // eslint-disable-next-line no-restricted-globals window.open(hrUrl, '_blank'); } } } }.bind({})); });require(['ta/p13n/placements','ta/page','$prp/background_update_dates/handlers'], function(placements, impl) { window.ta.plc_background_update_dates_handlers = placements.load('background_update_dates','handlers.js', { 'name': 'background_update_dates', 'id': 'taplc_background_update_dates', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'params': {}, 'data': {}});}); require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'hotels_partial_match_header','handlers',['handlers']); /** * Private javascript for partial_match_header widget */ define(["babel/babel-helpers", "widget", "common/page-filters", "common/Radio"], function (babelHelpers, widget, Filters, Radio) { var wcBridgeRadio = Radio("web-component-data-bridge"); function clearFilters() { require(["babel/babel-helpers", 'trjs!common/track-filter'], function (babelHelpers, trackFilters) { trackFilters('overall_clear', 'unselect_link', 'clear_all', 0); }); Filters.clearAll(); wcBridgeRadio.trigger("externalClearAll"); window.scrollTo(0, 0); } var clearAllElement = widget.element.querySelector(".clearAllFilters"); if (clearAllElement) { clearAllElement.addEventListener("click", clearFilters); } });});if (require) {require(['ta/rollupAmdShim'], function(rollupAmdShim) { rollupAmdShim.install([], ["ta/page"]); }); } else {if (window.ta&&ta.rollupAmdShim) {ta.rollupAmdShim.install([],["ta/page"]);} }if (require) {require(['ta/rollupAmdShim'], function(rollupAmdShim) { rollupAmdShim.install([], ["ta-i18n"]); }); } else {if (window.ta&&ta.rollupAmdShim) {ta.rollupAmdShim.install([],["ta-i18n"]);} } define('utils/onClickOrFocus', ['utils/domEventUtils'], function(domEventUtils) { return function(element, handler, onlyFocus) { var allowFocus = true; if (element && typeof handler === "function") { domEventUtils.addEvent(element, "mousedown", function() { allowFocus = false; }); domEventUtils.addEvent(element, "focus", function(event) { if (allowFocus) { handler.call(this, event); } allowFocus = true; }); if (!onlyFocus) { domEventUtils.addEvent(element, "click", handler); } } } });if (require) {require(['ta/rollupAmdShim'], function(rollupAmdShim) { rollupAmdShim.install([], ["ta"]); }); } else {if (window.ta&&ta.rollupAmdShim) {ta.rollupAmdShim.install([],["ta"]);} } define('mixins/page-dates/DateValidator', ['vanillajs', 'ta', 'mixins/page-dates/DateTypeStore', 'calendars/CalendarDate', 'ta/util/Date'], function(__v, ta, DateType, CalendarDate, DateUtils) { 'use strict'; var HOTELS_MAX_STAY_LENGTH = 30; var HOTELS_MAX_DATE_OFFSET = 396; function notBeforeToday(type, date1, date2) { var today = new Date(); return ( (!date1 || new CalendarDate(date1).compare(new CalendarDate(today)) >= 0) && (!date2 || new CalendarDate(date2).compare(new CalendarDate(today)) > 0) ); } function isSequential(type, date1, date2) { if (!DateType[type].children || !date1 || !date2) { return true; } return new CalendarDate(date1).compare(new CalendarDate(date2)) < 0; } function notEqual(type, date1, date2) { if (!DateType[type].children || !date1 || !date2) { return true; } return new CalendarDate(date1).compare(new CalendarDate(date2)) !== 0; } function range(maxRange) { return function(type, date1, date2) { if (!DateType[type].children || !date1 || !date2) { return true; } return getDiffInDays(date1, date2) <= maxRange; }; } function getDiffInDays(date1, date2) { return Math.abs(new CalendarDate(date1).daysTo(new CalendarDate(date2))); } function distance(type, date1, date2) { var today = new Date(); return ( (!date1 || getDiffInDays(today, date1) <= HOTELS_MAX_DATE_OFFSET) && (!date2 || getDiffInDays(today, date2) <= HOTELS_MAX_DATE_OFFSET) ); } var Validator = function() { this.VALIDATORS = { STAYDATES: [notBeforeToday, isSequential, notEqual, range(HOTELS_MAX_STAY_LENGTH), distance], ROUNDTRIP: [isSequential], ATTRACTIONRANGE: [isSequential], VPDATES: [isSequential, notEqual, range(HOTELS_MAX_STAY_LENGTH)] }; }; Validator.prototype.validate = function(dateType, date1, date2) { var validators = this.VALIDATORS[dateType]; if (!validators || validators.length == 0) { return true; } return !validators.some(function(v) { return !v(dateType, date1, date2); }); }; return Validator; }); define('common/DatePicker', [ 'ta/page', 'ta-i18n', 'common/trackingStreams', 'mixins/Events', 'common/Radio', 'mixins/page-dates/DateTypeStore', 'utils/domUtils', 'utils/classnameUtils', 'utils/onClickOrFocus', 'utils/stopevent', 'calendars/CalendarDate', 'mixins/page-dates/DateValidator' ], function( taPage, taI18n, trackingStreams, events, radio, dateType, domUtils, classnameUtils, onClickOrFocus, stopEvent, calendarDate, dateValidator ){ var DatePicker = function(container, defer_search) { var _exports = new events("DatePicker-clicked") , _pickers = domUtils.querySelectorArray(container, '[data-datetype]') , _pickersByType = _pickers.reduce(function(ret, picker) { ret[picker.getAttribute("data-datetype")] = picker; return ret; }, {}) ; var _chrevonDateTimeout = null; var _dateValidator = new dateValidator(); var CHEVRON_DATE_MAX_TIME = 1000; var CHEVRON_NEXT_DAY_THROTTLE = 2000; taPage.on('dateSelected', _onDateSelected); _pickers.forEach(function(picker) { onClickOrFocus( picker, function(event) { _onDatePickerClick(event, this, defer_search); }, true ); }); container.addEventListener('click', _onDatePickerClick); function _getContainingPicker(elmt) { for (var i = 0; i < _pickers.length; i++) { if (domUtils.isOrContainsElement(_pickers[i], elmt)) { return _pickers[i]; } } return null; } function _onDateSelected(target, type, date) { if (!domUtils.isOrContainsElement(document.body, container)) { taPage.off('dateSelected', _onDateSelected); return; } dateType.flattenType(type).forEach(function(type, dateIndex) { _setDateLabel(_pickersByType[type], date[dateIndex]); }); } function _setDateLabel(picker, date) { var labelElmt = picker && picker.querySelector('.picker-label'); if (labelElmt) { var dateFormat = picker.getAttribute("data-dateFormat"); var label = date && dateFormat && taI18n.formatDate(dateFormat, date); labelElmt.innerHTML = label || picker.getAttribute('data-emptyText'); classnameUtils.toggleClass(labelElmt, 'ghost_text', !label); } } function _onDatePickerClick(event) { var picker = _getContainingPicker(event && event.target) || _pickers[0]; stopEvent(event); _exports.emit("DatePicker-clicked", picker); radio('DatePicker').emit('clicked'); _trackDatePickerClick(event); taPage.gatherDates(picker, null, defer_search); } function _trackDatePickerClick(event) { if (event && event.target) { var category = 'datepicker'; if (classnameUtils.getParentByClassname(container, "persistent_trip_search_fixed")) { category += '_persistent'; } var label = 'module'; var picker = _getContainingPicker(event.target); if (picker) { var dateType = picker.getAttribute('data-datetype'); label = dateType ? dateType.toLowerCase() : "none"; } else if (classnameUtils.hasClass(event.target, 'caret-down')) { label = 'caret'; } trackingStreams.trackEvent(category, 'click', label); } } _exports.popPrimaryPicker = function() { var picker = document.querySelector('[data-primary-datepicker]'); if (picker) { taPage.gatherDates(picker, null, defer_search); } }; _exports.openCalendar = _onDatePickerClick; return _exports; }; return DatePicker; });require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'datepickers_trip_search_dates_corgi_sft','handlers',['handlers']); /* globals ta */ /* jshint newcap:false */ define([ 'widget', 'common/Radio', 'mixins/page-dates/default-dates', 'common/DatePicker', 'ta/page' ], function( widget, Radio, DefaultDates, datePicker, taPage ) { 'use strict'; var _datePicker = datePicker(widget.element, false /* defer_search */); // Return true if the featured accommodation on hr does not have commerce, false otherwise function hrPageHasNoCommerce() { var onHRPage = taPage && typeof taPage.getHacStatus === "function"; return onHRPage && !taPage.getHacStatus().hasCommerce; } // Prevent default dates from popping the calendar when the datepicker hides (HOT-26022) function shouldSuppressAutoPop() { var hiddenWhenNoCommerce = widget.element.classList.contains('unavailableV2'); return hiddenWhenNoCommerce && hrPageHasNoCommerce(); } if (!shouldSuppressAutoPop()) { Radio('search') .on('popDatePicker', function() { _datePicker.popPrimaryPicker(); }); } DefaultDates.apply(widget.element, shouldSuppressAutoPop()); return { // This function can be queued up via widgetEvCall() prior to // handlers.js and DatePicker.js files loading on page openCalendar: _datePicker.openCalendar, }; }); });require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'sponsoredListings_hotels_sponsored_listing_cta_v1','handlers',['handlers']); /** * Handler methods for the first version of the CTA ad * * @author aozturk * @since Nov 2018 */ define(['widget', 'sponsoredlisting/HotelsSponsoredListings', 'common/trackingStreams'], function(widget, HotelsSponsoredListings, trackingStreams) { var LOCATION_ID_DATA_ATTR = 'data-locationId'; var SLOT_INDEX_DATA_ATTR = 'data-slotIndex'; var SPONSORED_TYPE_DATA_ATTR = 'data-sponsoredType'; var SPONSORED_SLOT_DATA_ATTR = 'data-sponsoredSlot'; var AD_OPPORTUNITY_ID_DATA_ATTR = 'data-adOpportunityId'; var UNIQUE_REQUEST_ID = 'data-uniqueRequestId'; // Unique per page load and poll. var SPONSORED_LOCATION_SOURCE_DATA_ATTR = 'data-sponsoredLocationSource'; var _shared = this; // track state of sponsored listings (shared across all sponsored listing cta widgets) if (!_shared.sponsoredListingStateManager) { _shared.sponsoredListingStateManager = new HotelsSponsoredListings(); } var _sponsoredListing = widget.element.querySelector('.sponsoredListingAdCTA'), _sponsoredPlacementSlot = JSON.parse(_sponsoredListing.getAttribute(SPONSORED_SLOT_DATA_ATTR)), // See HotelSponsoredPlacementSlotModel.java _slotIndex = parseInt(_sponsoredListing.getAttribute(SLOT_INDEX_DATA_ATTR), 10), _adOpportunityId = _sponsoredListing.getAttribute(AD_OPPORTUNITY_ID_DATA_ATTR), _sponsoredType = _sponsoredListing.getAttribute(SPONSORED_TYPE_DATA_ATTR), _uniqueRequestId = _sponsoredListing.getAttribute(UNIQUE_REQUEST_ID), _sponsoredLocationSource = _sponsoredListing.getAttribute(SPONSORED_LOCATION_SOURCE_DATA_ATTR); function _init() { var locationId = parseInt(_sponsoredListing.getAttribute(LOCATION_ID_DATA_ATTR), 10); _shared.sponsoredListingStateManager.staticListingRendered(_sponsoredPlacementSlot, _slotIndex, _sponsoredType, locationId, null, null, null, null, _adOpportunityId, null, _sponsoredListing, _uniqueRequestId, _sponsoredLocationSource); trackingStreams.trackUnifiedEvent('user_saw_v1_cta_ad', 'impression', { locationId: locationId }); } if (_sponsoredListing.getAttribute('data-isNewListing')) { _init(); } else { _shared.sponsoredListingStateManager.listingMaintainedByPoll(_sponsoredPlacementSlot.slotKey, _sponsoredListing, null, _uniqueRequestId, null); } }.bind({}));});require(['ta/p13n/placements','ta/page','$prp/recently_viewed_helper_list/handlers'], function(placements, impl) { window.ta.plc_recently_viewed_helper_list_sem_handlers = placements.load('recently_viewed_helper_list','handlers.js', { 'name': 'recently_viewed_helper_list:sem', 'id': 'taplc_recently_viewed_helper_list_sem', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'params': {}, 'data': {}});}); 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','ta/page','$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': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'params': {}, 'data': {}});}); if (require) {require(['ta/rollupAmdShim'], function(rollupAmdShim) { rollupAmdShim.install([], ["ta/util/RecordInterruption"]); }); } else {if (window.ta&&ta.rollupAmdShim) {ta.rollupAmdShim.install([],["ta/util/RecordInterruption"]);} } window.ta || (window.ta = {}); define('ta/util/RecordInterruption', ['vanillajs', 'ta/Core/TA.Record', 'ta/util/Error'], function(vanilla, track, error) { 'use strict'; var GA_REC_MODULE = 'interruption_record'; var VALID_TYPES = [ 'popup', 'popunder', 'gate', 'other' ]; var _err = function(msg, eobj) { error.record(eobj, msg, null, null); }; var _isValidType = function(type) { for (var i = 0; i 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 { }; }); });require(['ta/p13n/placements'], function(placements) { var define = placements.define.bind(placements,'dual_search_dust','handlers',['deferred/lateHandlers','handlers']); /** * Private javascript for dual_search placement */ define(["placement", "lib/jquery-amd", "ta/Core/TA.Store", 'ta/Core/TA.Event', "typeahead/TypeAhead.views" /*this needs to be here when the placement is, even though we don't use it here */ ], function (placement, $, taStore, taEvent, typeAheadViews) { if (placement.params && 'typeahead_to_store' in placement.params) { var propertiesToStore = placement.params['typeahead_to_store']; if (propertiesToStore) { for (var property in propertiesToStore) { if (propertiesToStore.hasOwnProperty(property)) { taStore.store(property, propertiesToStore[property]); } } } } focusOnWrapperClick('GEO_SCOPE_CONTAINER', 'GEO_SCOPED_SEARCH_INPUT'); focusOnWrapperClick('MAIN_SEARCH_CONTAINER', 'mainSearch'); /** * allows to focus the corresponding input when its wrapper is clicked (wrapper is wider and taller than the input) */ function focusOnWrapperClick(wrapperId, inputId) { $('#' + wrapperId).on('click', function(e) { // If the click target is the input element, let the browser handle it, so we don't trigger focus twice. if ($(e.target).closest('#' + inputId).length == 0) { $('#' + inputId).focus(); } }); } var options = taStore.retrieve("typeahead_dual_search_options"); function _popAutoTooltip() { if (!options.autoTooltip || !taStore.retrieve("isFirstSessionPageView") || !window.require) { return; } var reqs = ['trjs!overlays/Overlay', 'trjs!overlays/position', 'trjs!overlays/styles/popover', 'trjs!overlays/options/maxWidth', 'trjs!overlays/options/repositionOnEvent' ]; require(reqs, function (Overlay, Position, Style, MaxWidth, Reposition) { var searchButton = document.getElementById("SEARCH_BUTTON"); var mixins = [ Position && Position['below'] && Position['below']([], false), Style && Style(searchButton, 'below', "dark small", " ", options.autoTooltip), MaxWidth && MaxWidth(220), Reposition && Reposition(window, "showingCookieConsentBanner") ]; var overlay = new Overlay(searchButton, mixins); if (overlay) { // pop tooltip immediately overlay.show() } }); } if (document.activeElement === $("#GEO_SCOPED_SEARCH_INPUT")[0]) { placement.require(["trjs!deferred/lateHandlers"], function (lh) { lh.whereFocused({type: "dummy"}, document.activeElement); }); } else if (document.activeElement === $("#mainSearch")[0]) { placement.require(["trjs!deferred/lateHandlers"], function (lh) { lh.whatFocused({type: "dummy"}, document.activeElement); }); } else if (options && options.autoTooltip) { taEvent.queueForLoad(_popAutoTooltip, "dual_search auto tooltip"); } return { getOptions: function () { return options; } }; }); }); define('mixins/page-dates/picker-autoadvance', [ 'mixins/page-dates/DateTypeStore', 'mixins/page-dates/picker-autoadvance-utils', 'utils/domUtils' ], function( DateType, autoadvanceUtils, domUtils ) { 'use strict'; var _advancedToType = null; function apply(parentElement, autofillMissingDates, alwaysAdvanceFromStartDate) { var taPage = ta.page; taPage && taPage.on('dateSelected', function selected(target, dateType, date) { if (!domUtils.isOrContainsElement(document.body, parentElement)) { taPage.off('dateSelected', selected); return; } if (!target) { return; } if (!domUtils.isOrContainsElement(parentElement, target)) { return; } var otherType = DateType.getCorrespondingDateType(dateType); if (!otherType) { return; } var isStartDate = DateType.isStartDateType(dateType); var shouldAutoAdvance = !taPage.hasDates(otherType) || (alwaysAdvanceFromStartDate && isStartDate && dateType !== _advancedToType); if (shouldAutoAdvance) { if (autofillMissingDates && !taPage.hasDates(otherType) && Array.isArray(date)) { var autoDate = new Date(date[0].getFullYear(), date[0].getMonth(), date[0].getDate() + (isStartDate ? 1 : -1)); taPage.pushDates(null, otherType, [autoDate]); } var otherPicker = parentElement.querySelector('[data-datetype="' + otherType + '"]'); if (otherPicker) { _advancedToType = otherType; autoadvanceUtils.keepOverlayOpenOnSelection(target); setTimeout(taPage.gatherDates.bind(taPage, otherPicker)); } } }); } return { apply: apply }; }); require(['ta/prwidgets'], function(widgets) { var define = widgets.define.bind(widgets,'datepickers_desktop_horizontal_styleguide_icon','handlers',['handlers']); define(['widget', 'vanillajs', 'api-mod', 'ta/Core/TA.Event', 'mixins/page-dates/picker-autoadvance', 'mixins/page-dates/default-dates'], function(widget, vanilla, api, taEvent, pickerAutoadvance, DefaultDates) { 'use strict'; var _checkinElement = api.find('[data-datetype=CHECKIN]', widget.element) , _checkoutElement = api.find('[data-datetype=CHECKOUT]', widget.element) ; function _setDateLabel(target, date) { var label; var dateFormat = target.getAttribute('data-dateFormat'); if (!date) { label = target.getAttribute('data-emptyText'); } else { label = ta.i18n.formatDate(dateFormat, date); } api.find('.picker-inner .picker-label', target).firstChild.nodeValue = label; /* HOT-4599 */ } function _onDateSelected(target, dateType, date) { // Clean up if the widget is no longer in the document. if (!api.inDocument(widget.element)) { ta.page.removeListener('dateSelected', _onDateSelected); _checkinElement = null; _checkoutElement = null; return; } if (dateType === 'CHECKIN') { _setDateLabel(_checkinElement, date[0]); } else if (dateType === 'CHECKOUT') { _setDateLabel(_checkoutElement, date[0]); } else if (dateType === 'STAYDATES') { _setDateLabel(_checkinElement, date[0]); _setDateLabel(_checkoutElement, date[1]); } } /* HOT-8985 */ function _onDatePickerClick(elmt, defer_search) { if (!elmt) { return; } var calendarFlyout = elmt.getParent(".calendarFlyout"); if (calendarFlyout) { var deferred = calendarFlyout.deferred, // arbitrary property, set in DesktopStayDate. calendarWrapper = calendarFlyout.getElement('.calendarWrapper'); if (deferred && calendarWrapper) { deferred.reject(); ta.page.gatherDates(elmt, calendarWrapper, defer_search); return; } } ta.page.gatherDates(elmt, null, defer_search); } taEvent.queueForLoad(function() { ta.page.on('dateSelected', _onDateSelected); pickerAutoadvance.apply(widget.element); DefaultDates.apply(widget.element); }, 'datepicker widget handlers'); return { onDatePickerClick: _onDatePickerClick }; }); });require(['ta/p13n/placements','ta/page','$prp/map_wc_dusty_bridge/handlers'], function(placements, impl) { window.ta.plc_map_wc_dusty_bridge_sd_0_handlers = placements.load('map_wc_dusty_bridge','handlers.es6', { 'name': 'map_wc_dusty_bridge:sd', 'occurrence': 0, 'id': 'taplc_map_wc_dusty_bridge_sd_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/filters_wc_dusty_bridge/handlers'], function(placements, impl) { window.ta.plc_filters_wc_dusty_bridge_sd_0_handlers = placements.load('filters_wc_dusty_bridge','handlers.es6', { 'name': 'filters_wc_dusty_bridge:sd', 'occurrence': 0, 'id': 'taplc_filters_wc_dusty_bridge_sd_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/dh_sort_filter_entry_wc_bridge/handlers'], function(placements, impl) { window.ta.plc_dh_sort_filter_entry_wc_bridge_smart_deals_responsive_0_handlers = placements.load('dh_sort_filter_entry_wc_bridge','handlers.es6', { 'name': 'dh_sort_filter_entry_wc_bridge:smart_deals_responsive', 'occurrence': 0, 'id': 'taplc_dh_sort_filter_entry_wc_bridge_smart_deals_responsive_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/hsx_special_messaging/handlers'], function(placements, impl) { window.ta.plc_hsx_special_messaging_SmartDeals_0_handlers = placements.load('hsx_special_messaging','handlers.js', { 'name': 'hsx_special_messaging:SmartDeals', 'occurrence': 0, 'id': 'taplc_hsx_special_messaging_SmartDeals_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/hotels_error_message/handlers'], function(placements, impl) { window.ta.plc_hotels_error_message_smart_deals_responsive_0_handlers = placements.load('hotels_error_message','handlers.js', { 'name': 'hotels_error_message:smart_deals_responsive', 'occurrence': 0, 'id': 'taplc_hotels_error_message_smart_deals_responsive_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {"containerClass":"boldError"}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/hotels_loading_box/handlers'], function(placements, impl) { window.ta.plc_hotels_loading_box_dusty_smart_deals_responsive_0_handlers = placements.load('hotels_loading_box','handlers.js', { 'name': 'hotels_loading_box:dusty_smart_deals_responsive', 'occurrence': 0, 'id': 'taplc_hotels_loading_box_dusty_smart_deals_responsive_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/hsx_hotel_list_lite/handlers'], function(placements, impl) { window.ta.plc_hsx_hotel_list_lite_smart_deals_responsive_sponsored_0_handlers = placements.load('hsx_hotel_list_lite','handlers.js', { 'name': 'hsx_hotel_list_lite:smart_deals_responsive_sponsored', 'occurrence': 0, 'id': 'taplc_hsx_hotel_list_lite_smart_deals_responsive_sponsored_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/hsx_hotel_list_lite/handlers'], function(placements, impl) { window.ta.plc_hsx_hotel_list_lite_smart_deals_ab_responsive_0_handlers = placements.load('hsx_hotel_list_lite','handlers.js', { 'name': 'hsx_hotel_list_lite:smart_deals_ab_responsive', 'occurrence': 0, 'id': 'taplc_hsx_hotel_list_lite_smart_deals_ab_responsive_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/hsx_hotel_list_lite/handlers'], function(placements, impl) { window.ta.plc_hsx_hotel_list_lite_smart_deals_responsive_filtered_out_hotels_sponsored_0_handlers = placements.load('hsx_hotel_list_lite','handlers.js', { 'name': 'hsx_hotel_list_lite:smart_deals_responsive_filtered_out_hotels_sponsored', 'occurrence': 0, 'id': 'taplc_hsx_hotel_list_lite_smart_deals_responsive_filtered_out_hotels_sponsored_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/hotels_list_monitoring/handlers'], function(placements, impl) { window.ta.plc_hotels_list_monitoring_sem_0_handlers = placements.load('hotels_list_monitoring','handlers.es6', { 'name': 'hotels_list_monitoring:sem', 'occurrence': 0, 'id': 'taplc_hotels_list_monitoring_sem_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/resp_h_view_more_hotels/handlers'], function(placements, impl) { window.ta.plc_resp_h_view_more_hotels_sem_responsive_0_handlers = placements.load('resp_h_view_more_hotels','handlers.js', { 'name': 'resp_h_view_more_hotels:sem_responsive', 'occurrence': 0, 'id': 'taplc_resp_h_view_more_hotels_sem_responsive_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/hotels_native_video_ads_tracking/handlers'], function(placements, impl) { window.ta.plc_hotels_native_video_ads_tracking_dusty_sem_responsive_0_handlers = placements.load('hotels_native_video_ads_tracking','handlers.es6', { 'name': 'hotels_native_video_ads_tracking:dusty_sem_responsive', 'occurrence': 0, 'id': 'taplc_hotels_native_video_ads_tracking_dusty_sem_responsive_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/xsell_wc_dusty_bridge/handlers'], function(placements, impl) { window.ta.plc_xsell_wc_dusty_bridge_0_handlers = placements.load('xsell_wc_dusty_bridge','handlers.es6', { 'name': 'xsell_wc_dusty_bridge', 'occurrence': 0, 'id': 'taplc_xsell_wc_dusty_bridge_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/footer_banner_ad_billboard/handlers'], function(placements, impl) { window.ta.plc_footer_banner_ad_billboard_dusty_hotels_resp_0_handlers = placements.load('footer_banner_ad_billboard','handlers.es6', { 'name': 'footer_banner_ad_billboard:dusty_hotels_resp', 'occurrence': 0, 'id': 'taplc_footer_banner_ad_billboard_dusty_hotels_resp_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {"footer_banner_ad_style":"billboardAd withBorder"}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/facebook_autologin/handlers'], function(placements, impl) { window.ta.plc_facebook_autologin_0_handlers = placements.load('facebook_autologin','handlers.js', { 'name': 'facebook_autologin', 'occurrence': 0, 'id': 'taplc_facebook_autologin_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/h_hr_refresh_rates_prompt/handlers'], function(placements, impl) { window.ta.plc_h_hr_refresh_rates_prompt_smart_deals_responsive_0_handlers = placements.load('h_hr_refresh_rates_prompt','handlers.js', { 'name': 'h_hr_refresh_rates_prompt:smart_deals_responsive', 'occurrence': 0, 'id': 'taplc_h_hr_refresh_rates_prompt_smart_deals_responsive_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["deferred/popper","trcss!deferred/prompt","handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/global_nav/handlers'], function(placements, impl) { window.ta.plc_global_nav_0_handlers = placements.load('global_nav','handlers.js', { 'name': 'global_nav', 'occurrence': 0, 'id': 'taplc_global_nav_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["deferred/lateHandlers","handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/global_nav_links/handlers'], function(placements, impl) { window.ta.plc_global_nav_links_0_handlers = placements.load('global_nav_links','handlers.js', { 'name': 'global_nav_links', 'occurrence': 0, 'id': 'taplc_global_nav_links_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {"geopillOnHome":false}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/global_nav_dropdowns/handlers'], function(placements, impl) { window.ta.plc_global_nav_dropdowns_0_handlers = placements.load('global_nav_dropdowns','handlers.js', { 'name': 'global_nav_dropdowns', 'occurrence': 0, 'id': 'taplc_global_nav_dropdowns_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/global_nav_action_inbox/handlers'], function(placements, impl) { window.ta.plc_global_nav_action_inbox_empty_0_handlers = placements.load('global_nav_action_inbox','handlers.js', { 'name': 'global_nav_action_inbox:empty', 'occurrence': 0, 'id': 'taplc_global_nav_action_inbox_empty_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/hsx_h1/handlers'], function(placements, impl) { window.ta.plc_hsx_h1_smart_deals_0_handlers = placements.load('hsx_h1','handlers.js', { 'name': 'hsx_h1:smart_deals', 'occurrence': 0, 'id': 'taplc_hsx_h1_smart_deals_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {"additionalClass":"responsive corgi"}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/trip_search_list_page/handlers'], function(placements, impl) { window.ta.plc_trip_search_list_page_smart_deals_corgi_0_handlers = placements.load('trip_search_list_page','handlers.js', { 'name': 'trip_search_list_page:smart_deals_corgi', 'occurrence': 0, 'id': 'taplc_trip_search_list_page_smart_deals_corgi_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {"componentClass":"with-outline with-shadow"}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/masthead_search/handlers'], function(placements, impl) { window.ta.plc_masthead_search_empty_0_handlers = placements.load('masthead_search','handlers.js', { 'name': 'masthead_search:empty', 'occurrence': 0, 'id': 'taplc_masthead_search_empty_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["deferred/lateHandlers","handlers"], 'params': {"typeahead_to_store":{"typeahead_new_location_label":"NUOVA LOCALITÀ","typeahead.aliases.travel_insurance":["assicurazione","assicurazione per viaggi","assicurazione di viaggio","assicurazione di viaggio annuale"],"typeahead.aliases.flight_reviews":["recensioni sui voli","recensioni di compagnie aeree"],"typeahead_throttle_requests":"true","typeahead.aliases.rental_cars":["Autonoleggi","Autonoleggi"],"typeahead_cruise_ships_enabled":"true","typeahead.aliases.activities":["Tour e biglietti","Tour e biglietti"],"typeahead.aliases.things_to_do":["Cose da fare","Attività","attrazioni","attività","cosa fare","visite turistiche","Attrattive","Attrazioni turistiche","Attività","Attrazione","Cosa vedere","Dove andare","Cosa visitare","Le migliori attrazioni","Le migliori attività","Le migliori attrazioni turistiche","Le migliori gite turistiche","Le attrazioni più amate","Le attività più amate","Le attrazioni turistiche più amate","Le gite turistiche più amate","Le 10 attrazioni più amate","Le 10 attività più amate","Le 10 attrazioni turistiche più amate","Le 10 gite turistiche più amate"],"typeahead.enable_nearby":true,"typeahead_cruise_cruiselines_enabled":"false","typeahead_divClasses":null,"typeahead.scoped.cur_loc_denied":"Tripadvisor non è autorizzato a conoscere la tua posizione geografica. Modifica le impostazioni del browser per permettere a Tripadvisor di accedere a questa informazione e riprova.","typeahead.scoped.cur_loc":"Qui vicino","typeahead.aliases.travel_forums":["forum","forum","Forum Viaggi","Forum Viaggi"],"typeahead.aliases.travel_guides":["guide","Guide della città"],"typeahead.aliases.vacation_rentals":["case vacanza","casa vacanza","Airbnb","Casa vacanza","Case vacanza"],"typeahead.aliases.flights":["Voli","Volo","Volo per","voli per","voli diretti","voli Business Class","voli di ritorno","voli","voli","voli low cost","volo da","voli più economici","solo volo","voli solo andata","voli diretti","voli nazionali","tariffa aerea","voli low cost per","voli per","voli per","voli Business Class per","voli più economici per","voli diretti per","voli nazionali per","voli diretti per","voli solo andata per","tariffe aeree","tariffa aerea","tariffe aeree","tariffa aerea per","tariffe aeree per","tariffa aerea per","tariffe aeree per"],"typeahead_moved_label":"SPOSTATO","typeahead_dual_search_options":{"geoID":652013,"bypassSearch":true,"staticTypeAheadOptions":{"minChars":3,"defaultValue":"Cerca","injectNewLocation":true,"typeahead1_5":true,"geoBoostFix":true},"debug":false,"navSearchTypeAheadEnabled":true,"isMobileWeb":false,"geoInfo":{"geoId":652013,"geoName":"Iglesias","parentName":"Italia","shortParentName":"Italia","categories":{"GEO":{"url":"/Tourism-g652013-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Vacations.html"},"HOTEL":{"url":"/Hotels-g652013-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Hotels.html"},"VACATION_RENTAL":{"url":"/VacationRentals-g652013-Reviews-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Vacation_Rentals.html"},"ATTRACTION":{"url":"/Attractions-g652013-Activities-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html"},"EATERY":{"url":"/Restaurants-g652013-Iglesias_Province_of_Carbonia_Iglesias_Sardinia.html"},"FLIGHTS_TO":{"url":"/Flights-g652013-Iglesias_Province_of_Carbonia_Iglesias_Sardinia-Cheap_Discount_Airfares.html"},"CAR_RENTAL_OFFICE":{"url":"/RentalCars_Review?detail=652013"}}}},"typeahead_closed_label":"CHIUSO","typeahead.scoped.all_of_trip":"In tutto il mondo","typeahead_attraction_activity_search":"true","typeahead.aliases.hotels":["hotel","hotel","alloggi","sistemazioni","dove soggiornare","alloggio","alloggi","recensioni di hotel","Hotel e motel","I migliori hotel","I migliori posti dove soggiornare","I migliori alloggi","I migliori hotel e motel","Alloggi","Posto dove soggiornare","Gli hotel più belli","I posti più belli dove soggiornare","Gli alloggi più belli","Gli hotel e i motel più belli ","I 10 hotel più belli","I 10 posti più belli dove soggiornare","Gli 10 alloggi più belli","I 10 hotel e motel più belli "],"typeahead.aliases.restaurants":["cibo","ristoranti","ristoranti","ristorazione","ristoranti","ristorante","Posto dove mangiare","Ristorante","Dove mangiare","Cosa mangiare","I migliori ristoranti","I migliori posti dove mangiare","Le migliori specialità gastronomiche","Le migliori cucine","I ristoranti più amati","I posti dove mangiare più amati","Le specialità gastronomiche più buone","Le cucine più amate","I 10 ristoranti più amati","I 10 posti dove mangiare più amati","Le 10 specialità gastronomiche più buone","Le 10 cucine più buone"],"typeahead.searchMore.v2":"Cerca "%"","typeahead.searchSessionId":"4BEB6B7C89D8622A234A9BA09277549E1605991359875ssid"}}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/browser_mode_tracking/handlers'], function(placements, impl) { window.ta.plc_browser_mode_tracking_0_handlers = placements.load('browser_mode_tracking','handlers.js', { 'name': 'browser_mode_tracking', 'occurrence': 0, 'id': 'taplc_browser_mode_tracking_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/qualtrics_survey/handlers'], function(placements, impl) { window.ta.plc_qualtrics_survey_0_handlers = placements.load('qualtrics_survey','handlers.js', { 'name': 'qualtrics_survey', 'occurrence': 0, 'id': 'taplc_qualtrics_survey_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/masthead_h1/handlers'], function(placements, impl) { window.ta.plc_masthead_h1_dusty_sem_0_handlers = placements.load('masthead_h1','handlers.js', { 'name': 'masthead_h1:dusty_sem', 'occurrence': 0, 'id': 'taplc_masthead_h1_dusty_sem_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/p13n/placements','ta/page','$prp/trip_planner_breadcrumbs/handlers'], function(placements, impl) { window.ta.plc_trip_planner_breadcrumbs_0_handlers = placements.load('trip_planner_breadcrumbs','handlers.js', { 'name': 'trip_planner_breadcrumbs', 'occurrence': 0, 'id': 'taplc_trip_planner_breadcrumbs_0', 'location_id': 652013, 'servletClass': 'com.TripResearch.servlet.hotels.SmartDealsServlet', 'servletName': 'SmartDeals', 'modules': ["handlers"], 'params': {}, 'data': {}});}); require(['ta/prwidgets', 'ta/page'], function(prwidgets) { prwidgets.initWidgets(document); }); ]]>

    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);});]]>



    Source

    Agevolazioni - finanziamenti - immobiliare

    Visure on-line - Legislazione civile e fiscale

    Siamo operativi in tutta Italia

    La rete Adessonews è un aggregatore di news e replica gli articoli senza fini di lucro ma con finalità di critica, discussione od insegnamento,

    come previsto dall’art. 70 legge sul diritto d’autore e art. 41 della costituzione Italiana. Al termine di ciascun articolo è indicata la provenienza dell'articolo.

    Per richiedere la rimozione dell'articolo clicca qui

    Open chat
    1
    Ciao posso aiutarti?
    Finanziamenti e agevolazioni personali e aziendali.
    Utilizza questa chat per richiedere informazioni o l'attivazione di un finanziamento e/o agevolazione.
    %d blogger hanno fatto clic su Mi Piace per questo: