mmRequestCallbacks[1]({"Scripts":[{"Name":"Integration module","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*!\n *\tintegrations-module 0.10.1\n *\t-- Maxymiser Integrations Module provides a standardized approach to develop and deploy 3rd party integrations.\n *\t-- Built on 2017-11-16\n */\n\n!function(){function e(){var e={},u={errors:{missingRegisterName:\"Invalid integration reigstration. Name argument is required.\",missingRegisterExec:\"Missing `exec` for integration registration\",alreadyRegistered:\"Integration has already been registered\",missingRunName:\"Missing `name` for `integration.run`\",unregisteredIntegration:\"Unknown integration name\",noCampaignExperience:\"Integration was run before the campaign has generated\",noRedirectCampaign:\"Redirect Integration is not in a valid campaign scope\",noRedirectCampaignData:\"Redirect Integration is not on a generation page\",campaignRequired:\"Integration must be deployed within a campaign script\",failedToSaveRedirectData:\"Failed to save redirect data\"},HALFHOUR:1/48,isProduction:function(){function e(e){for(var n,r={},i=\"\",a=0;n=t(e+a++);)i+=n;if(i){i=decodeURIComponent(i);try{r=JSON.parse(i)}catch(e){console.log(e)}return r}return\"\"}function t(e){var t=new RegExp(\"(?:^|; )\"+encodeURIComponent(e).replace(/([.$?*|{}()[\\]\\\\/+^])/g,\"\\\\$1\")+\"=([^;]+)\");return(document.cookie.match(t)||[\"\",\"\"])[1]}var n=mmsystem.getConfig().storageType;if(\"cookie-key-value\"===n||\"cookie-key-value-secure\"===n)return!/mmapi.p.cfgid/i.test(document.cookie)&&!/mmapi.p.un/i.test(document.cookie);for(var r=[e(\"mmcore.store.p.\")||{},e(\"mmcore.store.s.\")||{},e(\"mmapi.store.p.\")||{},e(\"mmapi.store.s.\")||{}],i={\"mmparams.p\":1,\"mmparams.d\":1},a={un:1,cfgID:1,pruh:1},o=r.length;o--;){var s=r[o];for(var u in i||{})for(var c in a||{})if((s[u]||{})[c])return!1}return!0},isValidIntegrationName:function(e){return\"string\"==typeof e&&/^\\w+/.test(e)},isCampaignScope:function(e){return!!(i(e)&&e.getName&&e.getExperience)},getCampaignExperience:function(e){var t={};return u.isCampaignScope(e)&&(t=e.getExperience&&e.getExperience()||{}),!!Object.keys(t)&&u.formatCampaignExperience(t)},formatCampaignExperience:function(e){e=i(e)?e:{};var t=[];for(var n in e)t.push(n+\":\"+e[n]);return t.join(\"|\")},getData:function(e){e=(e||\"\").toLowerCase();var t=visitor.getData(\"Integrations\");return t=i(t)?t:{},e&&(t[e]=t[e]||{}),t},setRedirectData:function(e,t){if(e=(e||\"\").toLowerCase(),!u.isCampaignScope(t))return!1;var n=u.getData(e),r=t.getName();return n[e][r]=n[e][r]||{},n[e][r].redirectData=t.getExperience(),visitor.setData(\"Integrations\",n,u.HALFHOUR),!0},removeRedirectData:function(e,t){if(e=(e||\"\").toLowerCase(),!u.isCampaignScope(t))return!1;var n=u.getData(e),r=t.getName();return n[e][r]=n[e][r]||{},n[e][r].redirectData=null,visitor.setData(\"Integrations\",n,u.HALFHOUR),!0},getRedirectData:function(e,t){if(e=(e||\"\").toLowerCase(),!u.isCampaignScope(t))return!1;var n=u.getData(e),r=t.getName();if(n[e][r]=n[e][r]||{},!n[e]||!n[e][r])return n[e]=n[e]||{},n[e][r]=n[e][r]||{},n[e][r].redirectData=null,visitor.setData(\"Integrations\",n,u.HALFHOUR),!1;for(var i in n[e])if(i===r)return n[e][i].redirectData;return!1},getSessionDate:function(e,t){return(u.getData(e)[e][t.getName()]||{}).sessionDate},setSessionDate:function(e,t){var n=u.getData(e),r=t.getName();n[e][r]=n[e][r]||{},n[e][r].sessionDate=(new Date).getTime(),visitor.setData(\"Integrations\",n,u.HALFHOUR)},resolve:function(e,t){return e.resolve(t),e.promise()},reject:function(e,t){var n=e.integrationName||\"unknown name\";return t=t||\"unknown reason\",o(\"Integration [\"+n+\"]: \"+t.toString()),e.reject(t),e.promise()},validateCampaignRequired:function(e,t){if(!e.campaignRequired)return e.oncePerSession?\"campaign option is required when using the oncePerSession option\":!e.redirect||\"campaign option is required when using the redirect option\";var n=e.campaign,r=\"\";return!0!==u.isCampaignScope(n)?u.errors.campaignRequired:(e.campaignExperience=u.getCampaignExperience(n),!1!==e.campaignExperience||e.redirect?e.oncePerSession&&!e.redirect&&e.oncePerSession&&(r=u.getSessionDate(e.name,n),u.setSessionDate(e.name,n),(new Date).getTime()-u.HALFHOUR>r)?(o(\"Integration [\"+e.name+\"]: data has already been sent this session\"),u.resolve(t,e),!0):!e.redirect||(function(){var e=n.getElements();for(var t in e)return!0;return!1}()?n.isDefault()?!(e.oncePerSession&&(r=u.getSessionDate(e.name,n),u.setSessionDate(e.name,n),(new Date).getTime()-u.HALFHOUR>r))||(o(\"Integration [\"+e.name+\"]: data has already been sent this session\"),u.resolve(t,e),!0):u.setRedirectData(e.name,n)?(u.resolve(t,e),!0):u.errors.failedToSaveRedirectData:e.oncePerSession&&(r=u.getSessionDate(e.name,n),u.setSessionDate(e.name,n),(new Date).getTime()-u.HALFHOUR>r)?(o(\"Integration [\"+e.name+\"]: data has already been sent this session\"),u.resolve(t,e),!0):(e.campaignExperience=u.getRedirectData(e.name,n),e.campaignExperience=u.formatCampaignExperience(e.campaignExperience),u.removeRedirectData(e.name,n),!!e.campaignExperience||u.errors.noRedirectCampaignData)):u.errors.noCampaignExperience(e.name))},setFailTimeout:function(e,t){!function(t){setTimeout(function(){setTimeout(function(){if(\"pending\"===t.state())return u.reject(t,\"Integration timed out after \"+e.timeout+\"ms\")},0)},e.timeout+1)}(t)},isValidAttributeMap:function(e){if(!e)return\"Missing required attributeMap parameter\";if(!i(e)||!Object.keys(e).length)return\"The attributeMap parameter is empty or not an object\";for(var t in e){var n=e[t];if(\"string\"!=typeof t||!/^[a-zA-Z]+/.test(t))return\"Invalid attribute name in the attributeMap\";if(!i(n))return\"attributeMap values must be stored in an object\";if(!Object.keys(n).length)return\"attributeMap attribute object is empty\";for(var r in n)if(!/^\\w+$/.test(r)&&\"default\"!==r)return\"Invalid attribute ID in attributeMap\"}return!0},check:function(e){var n=new Deferred,r=!1;return function i(){var a=e.check.call(this,e);t(a)?setTimeout(function(){a.done(function(){return n.resolve()}).fail(function(e){return n.reject(e)})},0):a?setTimeout(function(){n.resolve()},0):r||setTimeout(i,e.interval)}(),setTimeout(function(){r=!0},e.timeout),n.promise()},exec:function(e){var n=new Deferred,r=e.exec.call(this,e);return t(r)?(setTimeout(function(){r.done(function(e){return n.resolve(e)}).fail(function(e){return n.reject(e)})},0),n.promise()):(!0===r?u.resolve(n,e.result):u.reject(n,r),n.promise())}};return{register:function(t,c){function m(e){return t=t||\"\",o(\"Integrations.register(\"+t+\"): \"+(e||\"\").toString())}var g,f;return c=i(c)?c:{},(t=(\"string\"==typeof t?t:\"\").toLowerCase().replace(/^\\s+|\\s+$/g,\"\"))?e[t]?(m(u.errors.alreadyRegistered),null):(c.name=t,g=s(c,{}),f={validate:n(g.validate)?g.validate:a,check:n(g.check)?g.check:a,interval:r(g.interval)?g.interval:50,timeout:r(g.timeout)?g.timeout:2e3,exec:n(g.exec)?g.exec:a,options:g},g=s(f,g),e[t]=g):(m(u.errors.missingRegisterName),null)},run:function(t,n){n=i(n)?n:{};var r,a,o,c=new Deferred;if(t=(t||\"\").toLowerCase(),c.integrationName=t,!e[t])return u.reject(c,u.errors.unregisteredIntegration);if(r=s(e[t],{}),r=s(n,r),!0!==(a=r.validate(r)))return u.reject(c,a);if(!0!==(o=u.validateCampaignRequired(r,c)))return u.reject(c,o);if(r.isProduction=u.isProduction(),r.attributeMapRequired){var m=u.isValidAttributeMap(r.attributeMap);if(!0!==m)return u.reject(c,m)}return\"pending\"!==c.state()?c.promise():(\"never\"!==r.timeout&&u.setFailTimeout(r,c),u.check(r).then(function(){return u.exec(r)}).then(function(e){return r.result=e,u.resolve(c,r)}).fail(function(e){return u.reject(c,e)}),c.promise())},setDefaults:function(t,n){t=(t||\"\").toLowerCase();var r=e[t];return!!r&&(n=i(n)?n:{},e[t]=s(n,r),this)},get:function(t){if(!t)return e;var n=(t||\"\").toLowerCase();return e[n]}}}function t(e){return i(e)&&n(e.then)}function n(e){return\"function\"==typeof e}function r(e){return\"number\"==typeof e&&e>0}function i(e){return\"object\"==typeof e&&!!e}function a(){return!0}function o(e){window.mm_error=window.mm_error||\"\",window.mm_error+=e+\"\\n\"}function s(e,t){e=i(e)?e:{},t=i(t)?t:{};var n={};for(var r in t)n[r]=t[r];for(var a in e)n[a]=e[a];return n}if(\"object\"==typeof modules&&\"function\"==typeof modules.define){var u={autoDefine:!0,singleton:!0};modules.define(\"Integrations\",u,e)}else modules={require:function(){return new e}}}();","Order":-100,"HighLevelApiVersion":"1.12"},{"Name":"mod_cdApiTools_min","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * cdapi-tools - Helpers to cdAPI workflow\n * @version v1.3.3\n * @repository /maxymiser-shared2/cdapi-modules/cdAPI-tools.git\n * @author Rafal Maksymiuk, Maksym Mokrozub\n */\n\nfunction debounce(e,t,n){var r;return void 0===n&&(n=t,t=!1),function(){function o(){try{n.apply(i,c)}catch(e){window.console.error(e)}}var i=this,c=arguments;!r&&t&&o(),clearTimeout(r),r=setTimeout(t?function(){r=void 0}:o,e)}}function decorate(e,t,n){if(\"function\"!=typeof e)throw new TypeError(\"first argument should be a function\");return function(){var r,o,i,c=arguments;if(\"function\"==typeof t)try{(o=t.apply(this,c))&&o.length===Object.keys(o).length&&(c=o)}catch(e){window.console.error(e)}if(r=e.apply(this,c),\"function\"==typeof n)try{c=Array.prototype.slice.call(arguments).concat([r]),void 0!==(i=n.apply(this,c))&&(r=i)}catch(e){window.console.error(e)}return r}}function delegate(e,t,n,r){function o(t){for(var r=function(){var e=Element.prototype;return e.matches||e.matchesSelector||e.msMatchesSelector||e.webkitMatchesSelector}(),o=t;o&&o!==e;){if(r.call(o,n))return o;o=o.parentElement||o.parentNode}return null}function i(e){var t=o(e.target);t&&r.call(t,e)}t.split(\" \").forEach(function(t){e.addEventListener(t,i)})}function hide(e,t){var n,r=\"toolsId\"+Math.floor(1e5*Math.random())+1,o=t||7e3,i=function(){n&&(n=!1,dom.removeCss(r))};return e&&(n=!0,dom.addCss(e+\" {opacity:0 !important; pointer-events:none !important;}\",r),\"never\"!==o&&setTimeout(i,o)),i}function runOnce(e){var t,n;return function(){return n||(t=e.apply(this,arguments),n=!0),t}}function throttle(e,t,n){var r,o=0;return void 0===n&&(n=t,t=!1),function(){function i(){o=Number(new Date);try{n.apply(c,a)}catch(e){window.console.error(e)}}var c=this,a=arguments,u=Number(new Date)-o;r&&clearTimeout(r),u>e?i():t||(r=setTimeout(i,e-u))}}function waitFor(e,t,n){function r(){e.call()?o.resolve():\"ready\"===c&&\"loading\"!==document.readyState?o.reject():setTimeout(r,i)}var o=new Deferred,i=n||50,c=t||\"ready\";return r(),\"ready\"!==c&&\"never\"!==c?function(){var e=setTimeout(o.reject,c);o.always(function(){clearTimeout(e)})}():\"ready\"===c&&events.domReady(r),o.promise()}var Mutator=function(){function e(e){function t(e){var t=o.indexOf(e);t>-1&&(o.splice(t,1),o.length<1&&(r.disconnect(),i=!1))}function n(){for(var e,n=o.length;n--;)e=o[n],window.document.querySelector(e.selector)&&(e.def.resolve(),t(e))}var r,o=[],i=!1,c=e;this.add=function(e,a){var u=new Deferred,s={selector:e,def:u},d=!1;return\"ready\"===a?\"loading\"!==document.readyState?d=!0:events.domReady(function(){s.def.reject(),t(s)}):a&&\"never\"!==a&&setTimeout(function(){s.def.reject(),t(s)},a),o.push(s),i||(r.observe(window.document.documentElement,{childList:!0,subtree:!0,attributes:c}),i=!0),n(),d&&(s.def.reject(),t(s)),u.promise()},r=new MutationObserver(n)}var t,n,r=\"ready\";return n=new e(!0),t=new e(!1),{waitForElement:function(e,o,i){var c=o||r;return(i?n:t).add(e,c)}}}(),xhrComplete=function(){function e(){var e=arguments;n.forEach(function(t){try{t.apply(null,e)}catch(e){window.console.error(e)}})}var t,n=[];return function(r){return t||(t=!0,function(e){XMLHttpRequest.prototype.open=function(t){return function(n,r){return void 0===this.responseURL&&(this.responseURL=r),this.addEventListener(\"readystatechange\",function(t){4===this.readyState&&e(t,this)}),t.apply(this,arguments)}}(XMLHttpRequest.prototype.open)}(e)),n.push(r),t}}();modules.define(\"tools\",{autoDefine:!0,singleton:!0},function(){this.waitForElement=Mutator.waitForElement,this.waitFor=waitFor,this.decorate=decorate,this.delegate=delegate,this.xhrComplete=xhrComplete,this.throttle=throttle,this.debounce=debounce,this.runOnce=runOnce,this.hide=hide});\n","Order":-100,"HighLevelApiVersion":"1.12"},{"Name":"AdobeAnalytics","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*!\n *\tAdobeAnalytics 1.3.1.hilton\n *\t-- Maxymiser Adobe Analytics integration\n *\t-- Built on 2017-01-20\n */\n!function(){var a={version:\"1.3.1.hilton\",oncePerSession:!0,campaignRequired:!0,render:!1,append:!1,timeout:7e3,validate:function(a){return a.eVar&&!b.isNumber(a.eVar)?b.errors.invalidEvar(a.eVar):a.prop&&!b.isNumber(a.prop)?b.errors.invalidProp(a.prop):a.sVariable&&!b.isSVariable(a.sVariable)?b.errors.invalidSVariable(a.sVariable):b.getParams(a).length?a.trackingServer||a.ignoreTrackingServer?a.render&&!b.checkValidRenderFormat(a.campaign.getName())?b.errors.invalidRenderFormat(a.campaign.getName()):!(a.additionalParams&&!b.checkAdditionalParams(a.additionalParams))||b.errors.invalidAdditionalParams(a.additionalParams):b.errors.missingTrackingServer:b.errors.missingParameters},check:function(a){var c=b.getSVariable(a.sVariable);return a.ignoreTrackingServer?c:c&&c.trackingServer===a.trackingServer},exec:function(a){return a.sync?(b.populateSyncData(a),!0):b.send(a)}},b={errors:{missingParameters:\"The `eVar` and/or `prop` option are required and missing\",invalidEvar:function(a){return\"Invalid eVar provided [\"+(a||\"\").toString()+\"]\"},invalidProp:function(a){return\"Invalid prop provided [\"+(a||\"\").toString()+\"]\"},invalidSVariable:function(a){return\"Invalid sVariable provided [\"+(a||\"\").toString()+\"] (must be `string` or `s object`)\"},missingTrackingServer:function(){return\"Missing trackingServer option\"},invalidRenderFormat:function(a){return\"Campaign name is in an invalid format to utilize the Render flag: \"+a},invalidAdditionalParams:function(a){return\"additionalParams are not formatted correctly: \"+a}},checkAdditionalParams:function(a){return!!Array.isArray(a)},filterAdditionalParams:function(a,b){return a.filter(function(a){if(b[a])return a}).join()},checkValidRenderFormat:function(a){return a.indexOf(\"_\")!==-1},renderFormat:function(a){return a.split(\"_\")[0]},isSVariable:function(a){return\"string\"==typeof a?/^[A-Za-z0-9_\\-\\$]+$/.test(a):\"object\"==typeof a&&b.isSObject(a)},isSObject:function(a){return\"object\"==typeof a&&\"function\"==typeof a.t},getSVariable:function(a){return a&&\"string\"!=typeof a?!!b.isSObject(a)&&a:!!b.isSObject(window[a||\"s\"])&&window[a||\"s\"]},isNumber:function(a){return a&&(+a).toFixed(0)>0},send:function(a){var c,d,e=b.getParams(a),f=b.getSVariable(a.sVariable),g=a.campaign.getName(),h=\"\";f.linkTrackVars=e.join(),g=a.render?b.renderFormat(g):b.renderFormat(g)+\"=\"+a.campaignExperience,a.append?\"page\"===a.append?(h=window.mmsystem.AdobeAppendData||\"\",d=h?h+\"~\"+g:g,window.mmsystem.AdobeAppendData=d):\"session\"===a.append&&(h=visitor.getData(\"AdobeAppendData\")||\"\",d=h?h+\"~\"+g:g,visitor.setData(\"AdobeAppendData\",d)):d=g;for(var i=0;i<e.length;i++)f[e[i]]=d;return a.additionalParams&&(c=b.filterAdditionalParams(a.additionalParams,f),f.linkTrackVars=f.linkTrackVars+\",\"+c),f.tl(!0,\"o\",\"Maxymiser \"+(a.isProduction?\"Live\":\"QA\")),!0},getParams:function(a){var b=[];return a.eVar&&b.push(\"eVar\"+a.eVar),a.prop&&b.push(\"prop\"+a.prop),b},populateSyncData:function(a){var c=b.getParams(a);window.mm_adobe_data=window.mm_adobe_data||{};for(var d=c.length;d--;)window.mm_adobe_data[c[d]]=a.campaignExperience}};\"object\"==typeof modules&&\"function\"==typeof modules.define&&modules.require(\"Integrations\").register(\"Adobe Analytics\",a)}();","Order":-90,"HighLevelApiVersion":"1.12"},{"Name":"Bluekai_Integration","Type":"script","Attrs":{"type":"text/javascript"},"Data":"\n    var script = document.createElement('script');\n    script.src = '//tags.bluekai.com/site/34612?ret=js&limit=1';\n    script.async = true;\n    document.head.appendChild(script);\n","Order":-1,"HighLevelApiVersion":"1.12"},{"Name":"React_Funnel","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/* eslint-disable no-trailing-spaces */\n/**\n * React_Funnel.js\n * This script's purpose is to identify steps on react funnel.\n *\n * @author Irina Kashyntseva (email: irina.kashyntseva@maxymiser.com)\n * @date 16.07.2018\n */\nvar currentStep;\nvar step;\nvar flag;\n\nfunction getStep(url) {\n    var stepPattern = new RegExp(/(rooms|rates|payment|confirmation)/g);\n    var step = url.match(stepPattern) && url.match(stepPattern)[0];\n\n    return step || '';\n}\n\nfunction stopWhenAfter(timeout) {\n    var stop = false;\n    window.setTimeout(function () {\n        stop = true;\n    }, timeout);\n\n    return function () {\n        return stop;\n    };\n}\n\nfunction whenTransactionData() {\n    return when(function () {\n        return window.digitalData && (window.digitalData.transaction\n            || (window.digitalData.cart && window.digitalData.cart.attributes));\n    }, stopWhenAfter(5000));\n}\n\nfunction getRewardsTier() {\n    var rewardsTier = '';\n    try {\n        rewardsTier = window.digitalData.user[0].profile[0].profileInfo.rewardsTier;\n    } catch (err) {\n        //\n    }\n\n    return rewardsTier;\n}\n\nfunction getCurrency(transaction) {\n    return window.csCurrencyCd\n        || (transaction\n            && (transaction.currency\n                || (transaction.payment\n                && transaction.payment.currency)))\n        || '';\n}\n\nfunction getBookedRooms(transaction) {\n    return transaction\n        && transaction.attributes\n        && parseInt((transaction.attributes.rooms || 0), 10);\n}\n\nfunction getBookedNights(transaction) {\n    return transaction\n        && transaction.item[0]\n        && transaction.item[0].productInfo\n        && parseInt((transaction.item[0].productInfo.roomNights || 0), 10);\n}\n\nfunction getPoints(transaction) {\n    return transaction\n        && transaction.item[0]\n        && transaction.item[0].price\n        && parseInt((transaction.item[0].price.pointsUsed || 0), 10);\n}\n\nfunction getMoney(transaction) {\n    transaction\n    && parseInt((transaction.roomRevUSD || 0).toString().replace(',', ''), 10);\n}\n\nfunction setConfirmationTrigger() {\n    var triggerData;\n    var totalPrice = visitor.getData('mm_totalForStay');\n    var transactionData = window.digitalData && (window.digitalData.transaction\n        || (window.digitalData.cart && window.digitalData.cart.attributes));\n    var amount;\n    var currency;\n    var brand;\n    var rate;\n    var bookedRooms;\n    var bookedNights;\n    var points;\n    var money;\n\n    amount = parseInt((window.csOrderSubTotal || window.csOrderTotal || totalPrice || 0).toString()\n        .replace(',', '')/* * 100*/, 10);\n    currency = getCurrency(transactionData);\n    brand = (window.BRAND && window.BRAND.lowerCaseId) || (window.location.href.match(/\\/(hp|hi|hw|gi|es|dt|cr|ch|wa|ht|hh)\\//) || [,])[1];\n    rate = visitor.getData('mm_booked_rate') || '';\n    bookedRooms = getBookedRooms(transactionData);\n    bookedNights = getBookedNights(transactionData);\n    points = getPoints(transactionData);\n    money = getMoney(transactionData);\n\n    triggerData = {\n        previousStep: currentStep,\n        loggedIn:     cookies.get('loggedIn') ? 'Yes' : 'No',\n        amount:       amount,\n        currency:     currency,\n        brand:        brand,\n        rate:         rate,\n        bookedRooms:  bookedRooms,\n        bookedNights: bookedNights,\n        rewardsTier:  getRewardsTier(),\n        points:       points,\n        money:        money,\n    };\n\n    events.trigger('confirmation', triggerData);\n    cookies.set('mm_order_confirmation_cd_api', '1');\n}\n\nfunction setBookedRateName(element) {\n    var rateBlock = element.querySelector('span[class*=\"HiddenText\"]');\n    var rateName;\n\n    if (element.getAttribute('data-e2e') === 'bookButton') {\n        rateBlock = document.querySelector('[data-e2e=\"rateQuickLookTitle\"]');\n    }\n\n    rateName = rateBlock && rateBlock.textContent.toLowerCase().replace(/((book )|)(.+)( for .+)/, '$3');\n\n    visitor.setData('mm_booked_rate', rateName);\n}\n\nfunction setTotalForStay() {\n    var totalForStay;\n    var priceDetails = document.querySelectorAll('[class^=\"PriceSummary\"][class*=\"PriceLine\"]:not([class*=\"TotalLine\"])');\n\n    totalForStay = +priceDetails[0].textContent.trim().replace(/\\D+/g, '');\n\n    visitor.setData('mm_totalForStay', totalForStay);\n}\n\n\nfunction stepChangeHandler() {\n    var stepsArr = ['rooms', 'rates', 'payment', 'confirmation'];\n    if (stepsArr.indexOf(step) !== -1) {\n        if (step === 'rates' && !flag) {\n            tools.delegate(document.body, 'click', '[data-e2e$=\"BookCTA\"], [data-e2e$=\"BookButton\"], [data-e2e=\"bookButton\"]', function () {\n                setBookedRateName(this);\n            });\n            flag = true;\n        } else if (step === 'payment') {\n            if (currentStep === 'rooms') {\n                visitor.setData('mm_booked_rate', 'honors discount');\n            }\n            when(function () {\n                return document.querySelectorAll('[class^=\"PriceSummary\"][class*=\"PriceLine\"]:not([class*=\"TotalLine\"])').length;\n            })\n                .then(setTotalForStay);\n            cookies.remove('mm_order_confirmation_cd_api');\n        } else if (step === 'confirmation' && !cookies.get('mm_order_confirmation_cd_api')) {\n            /*whenTransactionData()\n                .then(setConfirmationTrigger);*/\n            setConfirmationTrigger();\n        }\n\n        if (step !== 'confirmation' && step !== currentStep) {\n            events.trigger(step, { previousStep: currentStep });\n        }\n    }\n}\n\n\nevents.on('routeChange', function (data) {\n    currentStep = getStep(window.location.href);\n    step = data && getStep(data.newUrl);\n\n    setTimeout(stepChangeHandler, 0);\n});\n\n/*window.addEventListener('popstate', function () {\n    currentStep = step;\n    step = getStep(window.location.href);\n});*/","Order":100,"HighLevelApiVersion":"1.12"},{"Name":"PC_saveOhwData","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * PC_saveOhwData.js\n * This script's purpose to save data that needed for Layer PC on OHW Funnel.\n *\n * @author Irina Kashyntseva (email: irina.kashyntseva@maxymiser.com)\n * @date 3.12.2018\n */\nvar currentPage = window.location.href;\nvar isSearchPage = currentPage.indexOf('/search/findhotels/results.htm') !== -1;\nvar isFindHotelPage = currentPage.indexOf('/search/findhotels/index.htm') !== -1;\nvar isProperty = /hilton.com\\/en\\/hotels\\//.test(currentPage);\nvar isBrandHomePage = /.hilton.com\\/en\\/index\\.html$/.test(currentPage);\n\nfunction isMobile() {\n    return navigator.userAgent && navigator.userAgent.indexOf('Mobile') !== -1;\n}\n\nfunction isTravelAgent() {\n    var inputTravelAgent = document.querySelector('#specialCodeTravelAgent, #travelAgentRate');\n    var isChecked = false;\n\n    if (inputTravelAgent) {\n        isChecked = inputTravelAgent.checked;\n    }\n\n    return isChecked;\n}\n\nfunction isSpecialRate() {\n    var specialRatesCodesCheckboxIds = [\n        'specialCodeAAA',\n        'specialCodeAARP',\n        'specialCodeSenior',\n        'specialCodeGovt',\n        'specialCodePromotion',\n        'specialCodeGroup',\n        'specialCodeCorporate',\n        'aaaRate',\n        'aarpRate',\n        'seniorRate',\n        'governmentOrMilitaryRate',\n        'promoCode',\n        'groupCode',\n        'corporateId',\n    ];\n\n    return specialRatesCodesCheckboxIds.some(function (id) {\n        var currentCheckboxElement = document.getElementById(id);\n        var isTextCode = id === 'specialCodePromotion'\n            || id === 'specialCodeGroup'\n            || id === 'specialCodeCorporate';\n        var isChecked = false;\n\n        if (currentCheckboxElement) {\n            if (isTextCode) {\n                isChecked = !!currentCheckboxElement.value;\n            } else {\n                isChecked = currentCheckboxElement.checked;\n            }\n        }\n\n        return isChecked;\n    });\n}\n\nfunction isHonorsPoints() {\n    var honorsPointsInput = document.querySelector('#rewardBooking, #checkRewardSearch, #hhonorsRate');\n    var isChecked = false;\n\n    if (honorsPointsInput) {\n        isChecked = honorsPointsInput.checked;\n    }\n    return isChecked;\n}\n\nfunction isHonorsUser() {\n    var isLoggedIn = visitor.getAttr('loggedin') === 'yes';\n    var isCookied = visitor.getAttr('Cookied')\n        && visitor.getAttr('Cookied') !== 'Non-Cookied'\n        && visitor.getAttr('Cookied').indexOf('Cookied') !== -1;\n\n    return !!(isLoggedIn || isCookied);\n}\n\nfunction saveData() {\n    var dataForOhw = {};\n\n    dataForOhw.isTravelAgent = isTravelAgent();\n    dataForOhw.isSpecialRate = isSpecialRate();\n    dataForOhw.isHonorsPoints = isHonorsPoints();\n    dataForOhw.isHonorsUser = isHonorsUser();\n\n    visitor.setData('dataForOhw', dataForOhw);\n}\n\nfunction initSaveData() {\n    if ((!isMobile() && (isBrandHomePage || isSearchPage || isProperty)) || (isMobile() && isFindHotelPage)) {\n        saveData();\n        tools.delegate(document.body, 'click', '#formSearchAgain button, .find_button, .linkBtn, #search_form .submit', saveData);\n    }\n\n    visitor.clearData('Layer_Referrer');\n}\n\nevents.domReady(initSaveData);","Order":-5,"HighLevelApiVersion":"1.12"},{"Name":"PC_getLayer","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * getLayer.js\n * This script's purpose is to define getLayer function for Layer PC.\n *\n * @author Irina Kashyntseva (email: irina.kashyntseva@maxymiser.com)\n * @date 3.12.2018\n */\n\nsite.scope.getLayer = function () {\n    var functions;\n    var comparisonChartObj = {\n        'Phase_1': {\n            'isHonorsUser': true,\n            'isGWreferrer': true,\n            'isExcludedHotel': false,\n            'isOneClickReferrer': false,\n            'isOnlyRoom': true,\n            'isEnglish': true,\n            'isNotTravelAgent': true,\n            'isNotSpecialRate': true,\n            'isNotHonorsPoints': true,\n        },\n        'Phase_2': {\n            'isHonorsUser': 'any',\n            'isGWreferrer': true,\n            'isExcludedHotel': false,\n            'isOneClickReferrer': 'any',\n            'isOnlyRoom': true,\n            'isEnglish': true,\n            'isNotTravelAgent': true,\n            'isNotSpecialRate': true,\n            'isNotHonorsPoints': true,\n        },\n        'Phase_3': {\n            'isHonorsUser': true,\n            'isGWreferrer': true,\n            'isExcludedHotel': false,\n            'isOneClickReferrer': 'any',\n            'isOnlyRoom': true,\n            'isEnglish': true,\n            'isNotTravelAgent': true,\n            'isNotSpecialRate': 'any',\n            'isNotHonorsPoints': true,\n        },\n        'Phase_3.5': {\n            'isHonorsUser': 'any',\n            'isGWreferrer': true,\n            'isExcludedHotel': false,\n            'isOneClickReferrer': 'any',\n            'isOnlyRoom': true,\n            'isEnglish': true,\n            'isNotTravelAgent': true,\n            'isNotSpecialRate': 'any',\n            'isNotHonorsPoints': true,\n        },\n        'Phase_4': {\n            'isHonorsUser': 'any',\n            'isGWreferrer': true,\n            'isExcludedHotel': false,\n            'isOneClickReferrer': 'any',\n            'isOnlyRoom': true,\n            'isEnglish': true,\n            'isNotTravelAgent': true,\n            'isNotSpecialRate': 'any',\n            'isNotHonorsPoints': 'any',\n        },\n        'Phase_5': {\n            'isHonorsUser': 'any',\n            'isGWreferrer': true,\n            'isExcludedHotel': false,\n            'isOneClickReferrer': 'any',\n            'isOnlyRoom': 'any',\n            'isEnglish': true,\n            'isNotTravelAgent': true,\n            'isNotSpecialRate': 'any',\n            'isNotHonorsPoints': 'any',\n        },\n        'Phase_6': {\n            'isHonorsUser': 'any',\n            'isGWreferrer': 'any',\n            'isExcludedHotel': false,\n            'isOneClickReferrer': 'any',\n            'isOnlyRoom': 'any',\n            'isEnglish': true,\n            'isNotTravelAgent': true,\n            'isNotSpecialRate': 'any',\n            'isNotHonorsPoints': 'any',\n        },\n        'Phase_7': {\n            'isHonorsUser': 'any',\n            'isGWreferrer': 'any',\n            'isExcludedHotel': false,\n            'isOneClickReferrer': 'any',\n            'isOnlyRoom': 'any',\n            'isEnglish': true,\n            'isNotTravelAgent': 'any',\n            'isNotSpecialRate': 'any',\n            'isNotHonorsPoints': 'any',\n        },\n    };\n    var dataForOhw = visitor.getData('dataForOhw');\n    var resVal;\n    var properties = {};\n\n    /* Honors user */\n\n    function isHonorsUser() {\n        var isReactFunnel = window.location.href.indexOf('book/reservation/') !== -1;\n        var userBlock = document.querySelector('[class*=\"UserWrapper\"]');\n        var isLoggedInOHW = userBlock\n            && userBlock.querySelector('[class*=\"LoggedIn\"]');\n        var isLoggedOutOHW = userBlock\n            && userBlock.querySelector('[class*=\"LoggedOut\"]');\n        var isLoggedIn = visitor.getAttr('loggedin') === 'yes';\n        var isCookied = visitor.getAttr('Cookied')\n            && visitor.getAttr('Cookied') !== 'Non-Cookied'\n            && visitor.getAttr('Cookied').indexOf('Cookied') !== -1;\n\n        if (isReactFunnel) {\n            if (!userBlock) {\n                return dataForOhw && dataForOhw.isHonorsUser;\n            } else if (isLoggedOutOHW) {\n                return false;\n            } else if (isLoggedInOHW) {\n                return true;\n            }\n        }\n\n        return !!(isLoggedIn || isCookied);\n    }\n\n    /* GW referrer */\n\n    function isGWreferrer() {\n        var referrer = document.referrer || visitor.getData('Layer_Referrer') || '';\n        var isFromBrandHomePage = /.hilton.com\\/en\\/index\\.html$/.test(referrer);\n        var isFromSR = referrer.indexOf('search/findhotels/results') !== -1 ||\n            referrer.indexOf('search/findhotels/narrowDown.htm') !== -1;\n        var isFromFindHotelPage = referrer.indexOf('/search/findhotels/index.htm') !== -1;\n        var isFromPropertyPage = /hilton.com\\/en\\/hotels\\//.test(referrer);\n        var isFromFunnel = referrer.indexOf('reservation/book.htm') !== -1 ||\n            referrer.indexOf('book/reservation/') !== -1;\n\n        return isFromBrandHomePage\n            || isFromSR\n            || isFromFindHotelPage\n            || isFromPropertyPage\n            || isFromFunnel;\n    }\n\n    function isExcludedHotel() {\n        var excludedHotels = [\n            'BODYSPY',\n            'KULLAPY',\n            'HGHPYPY',\n            'CTULCPY',\n            'BJSCICI',\n            'TSNBICI',\n            'CSXFDCI',\n            'CTUJDCI',\n            'CTUCDCI',\n            'DLCZDCI',\n            'CANXWCI',\n            'HGHFRCI',\n            'HKGHCCI',\n            'KULSKCI',\n            'MFMCSCI',\n            'NGBCICI',\n            'TAOQDCI',\n            'SYXCICI',\n            'SHACICI',\n            'SHEYACI',\n            'SZXCICI',\n            'SZVCICI',\n            'XMNCICI',\n            'TLNSPQQ',\n            'XMNXCQQ',\n            'PARAHQQ',\n            'ETZMHQQ',\n            'PARFRQQ',\n            'SYXCUQQ',\n            'SZVASDI',\n            'AQGACDI',\n            'AOGCNDI',\n            'AVAHSDI',\n            'JJNXIDI',\n            'NBSBCDI',\n            'BVNDIDI',\n            'BHYBEDI',\n            'BJSDTDI',\n            'BJSPDDI',\n            'CEQCJDI',\n            'CCFELDI',\n            'CSXJSDI',\n            'CTUGUDI',\n            'CTULODI',\n            'CTUAPDI',\n            'CTUCGDI',\n            'CKGNADI',\n            'CKGJBDI',\n            'CKGCWDI',\n            'DATYWDI',\n            'XHOGRDI',\n            'XHODGDI',\n            'CTUDJDI',\n            'FUOFNDI',\n            'FUGFNDI',\n            'CANSCDI',\n            'CANSRDI',\n            'CANGODI',\n            'KWEYGDI',\n            'HAKSTDI',\n            'HGHHEDI',\n            'HGHGZDI',\n            'HUZHADI',\n            'SHASPDI',\n            'ZATHGDI',\n            'ZBDWYDI',\n            'HGHJIDI',\n            'JLIDIDI',\n            'JNZJIDI',\n            'JNZJDDI',\n            'JIUBBDI',\n            'JHBDTDI',\n            'BKIKMDI',\n            'KULDTDI',\n            'KMGAPDI',\n            'HAKLGDI',\n            'LYALCDI',\n            'JIUYPDI',\n            'MKZMMDI',\n            'MYYNEDI',\n            'NGBNCDI',\n            'NGBNBDI',\n            'FOCLDDI',\n            'KULPTDI',\n            'PVDQIDI',\n            'TAOMMDI',\n            'TAOLXDI',\n            'GOQQGDI',\n            'JUZQZDI',\n            'RKZRCDI',\n            'LUMRUDI',\n            'SZBSADI',\n            'SHANXDI',\n            'SHAZHDI',\n            'SHAJADI',\n            'JUZSHDI',\n            'SWADIDI',\n            'HGHSCDI',\n            'SHEDTDI',\n            'SZXAPDI',\n            'SZXDJDI',\n            'SZXSRDT',\n            'SZXSDDI',\n            'XFNSHDI',\n            'SZVDIDI',\n            'SZVCHDI',\n            'TNATADI',\n            'TSATPDI',\n            'HYNBTDI',\n            'TVSTADI',\n            'TSNDTDT',\n            'TSNTBDI',\n            'YNTWHDI',\n            'WEHWCDI',\n            'NKGWUDI',\n            'WUXXDDI',\n            'XMNXHDI',\n            'XMNWBDI',\n            'XICBMDI',\n            'CTUYCDI',\n            'YTYDTDI',\n            'YNTCNDI',\n            'YNTXIDI',\n            'YIHCHDI',\n            'YDDDDDI',\n            'YIWWTDI',\n            'YCUDIDI',\n            'CGOZEDI',\n            'NGBYUDI',\n            'ZGNNNDI',\n            'ZGNDADI',\n            'ZUHAIDI',\n            'YBPZIDI',\n            'ZYIDTDT',\n            'SHEBCDI',\n            'SYXHQDI',\n            'WXJXADI',\n            'HAKHCDI',\n            'PENMBDI',\n            'SYXDTDI',\n            'JHGXIDI',\n            'BPOESES',\n            'HAKCHES',\n            'FUOTCHX',\n            'KWEGCHX',\n            'HFESXHX',\n            'CTUHXHX',\n            'CANNTHX',\n            'ZBDHJHX',\n            'JILJLHX',\n            'LHWANHX',\n            'SYXYLHX',\n            'NAOBJHX',\n            'WUHHXHX',\n            'CANGCHX',\n            'CANTNHX',\n            'AVAGNHX',\n            'HLHBAHX',\n            'SJWBCHX',\n            'CGQBBHX',\n            'ZHABRHX',\n            'PEKBSHX',\n            'BJSFHHX',\n            'DOYBZHX',\n            'TLSBCHX',\n            'BODFRHX',\n            'FUGBOHX',\n            'TSNCAHX',\n            'CGQSDHX',\n            'CGQCHHX',\n            'CGQCNHX',\n            'CSXCNHX',\n            'CSXYDHX',\n            'CSXTMHX',\n            'CSXCGHX',\n            'CSXCAHX',\n            'CSXCSHX',\n            'CSXCBHX',\n            'CSXKDHX',\n            'SWAGGHX',\n            'PEKCMHX',\n            'CTUWDHX',\n            'CTUGDHX',\n            'CTUJNHX',\n            'CTUCNHX',\n            'SZXSEHX',\n            'CKGHXHX',\n            'NGBCXHX',\n            'ORYCLHX',\n            'DLCDAHX',\n            'YIWDYHX',\n            'KWEDLHX',\n            'CANFSHX',\n            'FUOHXHX',\n            'FUOMGHX',\n            'HFEFGHX',\n            'FOCFUHX',\n            'FOCHXHX',\n            'KOWOWHX',\n            'CANBYHX',\n            'GYSGCHX',\n            'CANGLHX',\n            'CANWHHX',\n            'FUOGGHX',\n            'CANWCHX',\n            'CANKCHX',\n            'CANWEHX',\n            'CANDNHX',\n            'CANGGHX',\n            'CANZAHX',\n            'SZXGBHX',\n            'KWLGXHX',\n            'KWLHXHX',\n            'KWLOCHX',\n            'KWECHHX',\n            'KWEHXHX',\n            'KWEGGHX',\n            'KWEYDHX',\n            'KWEWEHX',\n            'HAKHKHX',\n            'HAKMLHX',\n            'HGHBJHX',\n            'HGHXSHX',\n            'HGHHZHX',\n            'HGHHTHX',\n            'HGHHXHX',\n            'HGHCCHX',\n            'HGHOUHX',\n            'HRBHWHX',\n            'HFEXIHX',\n            'HFEGXHX',\n            'HFEHXHX',\n            'HNYXOHX',\n            'HNYBEHX',\n            'HLHHXHX',\n            'HETHCHX',\n            'HUZHOHX',\n            'HLDHUHX',\n            'AVACHHX',\n            'JGSAVHX',\n            'HKGJJHX',\n            'JXSHXHX',\n            'TNAJIHX',\n            'TNAOCHX',\n            'YIHJSHX',\n            'TYNJIHX',\n            'CGOKFHX',\n            'LLBKKHX',\n            'KMGGAHX',\n            'KVNCHHX',\n            'TNALAHX',\n            'NAOLZHX',\n            'LHWLMHX',\n            'CTULSHX',\n            'LYGHOHX',\n            'TNALCHX',\n            'LJGLCHX',\n            'LILFRHX',\n            'LYILIHX',\n            'CSXHXHX',\n            'LZHLZHX',\n            'LYALYHX',\n            'ZHAMMHX',\n            'MXZCNHX',\n            'WNHMZHX',\n            'KHNGNHX',\n            'KHNDDHX',\n            'KHNANHX',\n            'NKGCNHX',\n            'NKGSKHX',\n            'NKGHXHX',\n            'NKGNLHX',\n            'NNGNNHX',\n            'NNGCCHX',\n            'NNGJIHX',\n            'NNGAGHX',\n            'NTGNGHX',\n            'NTGGAHX',\n            'NGBHXHX',\n            'DSNORHX',\n            'PZIPZHX',\n            'SHPQGHX',\n            'SHPQIHX',\n            'IQNGDHX',\n            'IQNQNHX',\n            'CANQYHX',\n            'KMGQUHX',\n            'TXNQUHX',\n            'TXNQWHX',\n            'WMTREHX',\n            'TAORZHX',\n            'SQJFUHX',\n            'SYXYAHX',\n            'SYXHXHX',\n            'SHAHSHX',\n            'SHAXHHX',\n            'SHACCHX',\n            'CANSHHX',\n            'SZXXXHX',\n            'SZXHXHX',\n            'SZXBNHX',\n            'SZXBBHX',\n            'SJWSPHX',\n            'SJWSHHX',\n            'XFNNNHX',\n            'DATSZHX',\n            'OSQHXHX',\n            'NCENCHX',\n            'CKGSUHX',\n            'SZVXCHX',\n            'WUXSUHX',\n            'SZVALHX',\n            'SZVWUHX',\n            'YTYTXHX',\n            'TYNXDHX',\n            'WUXHAHX',\n            'TSNTIHX',\n            'TSNDGHX',\n            'TSNJXHX',\n            'TSNJNHX',\n            'THQCNHX',\n            'HJJTOHX',\n            'HGHTNHX',\n            'WEHCHHX',\n            'WEHWEHX',\n            'WUHWCHX',\n            'WUHUHHX',\n            'WUHTTHX',\n            'WUXWIHX',\n            'XMNXNHX',\n            'XMNXPHX',\n            'XIYHXHX',\n            'XIYHZHX',\n            'SIAHXHX',\n            'XIYEDHX',\n            'XICXGHX',\n            'XNTCNHX',\n            'XNNCNHX',\n            'XNNXIHX',\n            'LHWXIHX',\n            'XUZXCHX',\n            'XUZXZHX',\n            'XUZHXHX',\n            'CTUYAHX',\n            'YNZYGHX',\n            'YNZHXHX',\n            'YTYYAHX',\n            'YTDYZHX',\n            'YTYHXHX',\n            'YNJCNHX',\n            'YNTTIHX',\n            'YNTAIHX',\n            'INCYCHX',\n            'FUOYUHX',\n            'LYIZAHX',\n            'DYGCNHX',\n            'ZHADAHX',\n            'CGOZZHX',\n            'CGOHDHX',\n            'CGONYHX',\n            'CGONWHX',\n            'ZUJPGHX',\n            'ZGNHXHX',\n            'HSNOTHX',\n            'ZUHMGHX',\n            'MFMZUHX',\n            'LYAZNHX',\n            'DHUHUHX',\n            'ZYIQCHX',\n            'WUHBBHX',\n            'CSXSCHX',\n            'CTULQHX',\n            'HFELZHX',\n            'LHWLHHX',\n            'NNGHXHX',\n            'WUHANHX',\n            'PARCHHI',\n            'BJSHITW',\n            'BJSCAHI',\n            'BJSTOHI',\n            'BJSWFHI',\n            'BJSBCHI',\n            'CGDHIHI',\n            'CSXCHHI',\n            'CSXCCHI',\n            'CSXCEHI',\n            'CZXWDHI',\n            'CTUCCHI',\n            'CTUCUHI',\n            'CKGHIHI',\n            'CKGCNHI',\n            'CKGCRHI',\n            'CKGCCHI',\n            'CTUHVHI',\n            'DLUGTHI',\n            'DLCZSHI',\n            'DLCDCHI',\n            'XHODOHI',\n            'CTUDQHI',\n            'CTUECHI',\n            'XEBHIHI',\n            'FUOCDHI',\n            'FUOHHHI',\n            'FUOHIHI',\n            'FOCHIHI',\n            'CANGUHI',\n            'CANGPHI',\n            'CANGTHI',\n            'KWLGUHI',\n            'KWEGYHI',\n            'KWEJRHI',\n            'HAKHAHI',\n            'HAKMEHI',\n            'KWEGYHI',\n            'SYXCBHI',\n            'HAKHIHI',\n            'HGHJWHI',\n            'HGHHIHI',\n            'HGHLRHI',\n            'HGHQNHI',\n            'HGHHCHI',\n            'HRBHAHI',\n            'HFEHIHI',\n            'HNYHCHI',\n            'HETHOHI',\n            'HETHIHI',\n            'TXNHUHI',\n            'TXNHHHI',\n            'HUZLHHI',\n            'WUXJCHI',\n            'HGHJCHI',\n            'TNAHIHI',\n            'TNAJCHI',\n            'TNAJHHI',\n            'JZHJIHI',\n            'KHGKAHI',\n            'BKIKKHI',\n            'KULHIHI',\n            'KUCHITW',\n            'KMGKCHI',\n            'KMGAIHI',\n            'LHWQDHI',\n            'LJGCNHI',\n            'HGHLIHI',\n            'LZOLCHI',\n            'MLAHITW',\n            'NKGJFHI',\n            'NKGHIHI',\n            'NKGNRHI',\n            'NKGNSHI',\n            'NNGNHHI',\n            'NTGGNHI',\n            'NGBQAHI',\n            'DSNOCHI',\n            'CDGHITW',\n            'PARETHI',\n            'PARLDHI',\n            'PAROPHI',\n            'PETHITW',\n            'TAOGBHI',\n            'JJNHIHI',\n            'JJNQCHI',\n            'WNZRUHI',\n            'SQDHIHI',\n            'SYXHIHI',\n            'SHASCHI',\n            'SHASHHI',\n            'SHASGHI',\n            'SHAXRHI',\n            'SHEQNHI',\n            'SZXSFHI',\n            'SZXSNHI',\n            'SZXSSHI',\n            'SJWZSHI',\n            'SXBHITW',\n            'SZVSOHI',\n            'TYNHIHI',\n            'HYNTCHI',\n            'TCZTEHI',\n            'TSNNAHI',\n            'TSNECHI',\n            'TSNTNHI',\n            'URCHHHI',\n            'NAYLFHI',\n            'HAKWEHI',\n            'WNZWHHI',\n            'WUHOVHI',\n            'WUHRSHI',\n            'WUXWUHI',\n            'WUXLHHI',\n            'WUSWMHI',\n            'XMNHIHI',\n            'XIYHIHI',\n            'XIYCHHI',\n            'NGBXIHI',\n            'ZUHJGHI',\n            'YNTJRHI',\n            'YNTDIHI',\n            'NKGYFHI',\n            'CGOZHHI',\n            'ZGNZCHI',\n            'ZGNZDHI',\n            'ZGNNTHI',\n            'HSNZHHI',\n            'ZUHHIHI',\n            'HGHZHHI',\n            'CSXZHHI',\n            'KMGPOGI',\n            'AOGGIGI',\n            'NBSNGGI',\n            'BHYBCGI',\n            'BODGIGI',\n            'CTUSIGI',\n            'CTUHTGI',\n            'CTUCHGI',\n            'CTUJIGI',\n            'CTUCJGI',\n            'CTUCQGI',\n            'CTUSHGI',\n            'CTUDUGI',\n            'DLCPBGI',\n            'DDGZDGI',\n            'FUOGIGI',\n            'FOCFCGI',\n            'FOCCAGI',\n            'GYSBRGI',\n            'CANGZGI',\n            'KWLGCGI',\n            'KWEGUGI',\n            'HGHLUGI',\n            'HRBSTGI',\n            'HDGHBGI',\n            'HFEGIGI',\n            'TNAHEGI',\n            'HETGIGI',\n            'HKGMSGI',\n            'TXNHCGI',\n            'HZCZHGI',\n            'JXSFHGI',\n            'JILGIGI',\n            'JZHGIGI',\n            'JHBGIGI',\n            'KULUMGI',\n            'KULMYGI',\n            'KMGKGGI',\n            'LEHLHGI',\n            'LJGGIGI',\n            'BPXLCGI',\n            'ORYMAGI',\n            'NKGNCGI',\n            'NNGGIGI',\n            'NNGNGGI',\n            'NCEFRGI',\n            'NGBYAGI',\n            'ORYORGI',\n            'BJSBJGI',\n            'KULPUGI',\n            'LLFGIGI',\n            'CDGRFGI',\n            'SYXJRGI',\n            'SHAHCGI',\n            'DIGSLGI',\n            'SWAGIGI',\n            'NKGSXGI',\n            'SZXSBGI',\n            'SZXSHGI',\n            'XFNKAGI',\n            'SZVSWGI',\n            'TSNTGGI',\n            'SIATZGI',\n            'XFNXCGI',\n            'YNTHSGI',\n            'FUOYFGI',\n            'YYPYCGI',\n            'ZGNGIGI',\n            'MFMZHGI',\n            'YBPZGGI',\n            'ZYIZEGI',\n            'ZYINGGI',\n            'BJSWAWA',\n            'CTUWAWA',\n            'HAKWAWA',\n            'SYXHBWA',\n            'SYXHAWA',\n            'SHAWAWA',\n            'CDGTPWA',\n            'XMNWAWA',\n        ];\n        var hotelID = window.digitalData &&\n            window.digitalData.product &&\n            ((window.digitalData.product[0] &&\n            window.digitalData.product[0].productInfo &&\n            window.digitalData.product[0].productInfo.productID) ||\n            (window.digitalData.product.productInfo &&\n            window.digitalData.product.productInfo.productID));\n        return excludedHotels.indexOf(hotelID) !== -1;\n    }\n\n    function isOneClickReferrer() {\n        return !!visitor.getData('isOneClickReferrer');\n    }\n\n    /* Books 1 Room Only */\n\n    function isOnlyRoom() {\n        var roomDetailsBlock = document.querySelectorAll('p[class*=\"ResSummary\"]')[0];\n        var roomDetails = roomDetailsBlock && roomDetailsBlock.textContent.split(' for ');\n        var roomsNumber = (roomDetails && +roomDetails[0].replace(/\\D+/, '')) || +visitor.getAttr('RoomNmbr');\n\n        return +visitor.getAttr('RoomNmbr') === 1 || roomsNumber === 1;\n    }\n\n    function isEnglish() {\n        return window.location.href.indexOf('/en_US/') !== -1 ||\n            window.location.href.indexOf('/en/') !== -1;\n    }\n\n    function isNotTravelAgent() {\n        var inputTravelAgent = document.querySelector('#rateFilterTravelAgent') ||\n            document.querySelector('#specialCodeTravelAgent');\n        var isChecked = false;\n        if (inputTravelAgent) {\n            isChecked = inputTravelAgent.checked;\n        }\n        return !isChecked || (dataForOhw && !dataForOhw.isTravelAgent);\n    }\n\n    function isNotSpecialRate() {\n        var isReactFunnel = window.location.href.indexOf('book/reservation/') !== -1;\n        var specialRatesCodesCheckboxIds = [\n            'rateFilterAAA',\n            'rateFilterAARP',\n            'rateFilterCARP',\n            'rateFilterSenior',\n            'rateFilterGovt',\n            'rateFilterGroup',\n            'rateFilterPromotion',\n            'rateFilterCorporate',\n            'contentOfferId',\n            'specialCodeAAA',\n            'specialCodeAARP',\n            'specialCodeSenior',\n            'specialCodeGovt',\n            'specialCodePromotion',\n            'specialCodeGroup',\n            'specialCodeCorporate',\n        ];\n\n        if (isReactFunnel) {\n            return dataForOhw && !dataForOhw.isSpecialRate;\n        }\n\n        return specialRatesCodesCheckboxIds.every(function (id) {\n            var currentCheckboxElement = document.getElementById(id);\n            var isChecked = false;\n            if (currentCheckboxElement) {\n                isChecked = currentCheckboxElement.checked;\n            }\n            return !isChecked;\n        });\n    }\n\n    function isNotHonorsPoints() {\n        var honorsPointsInput = document.querySelector('#rateFilterHHonors') ||\n            document.querySelector('#rewardBooking');\n        var isChecked = false;\n\n        if (honorsPointsInput) {\n            isChecked = honorsPointsInput.checked;\n        }\n        return !isChecked || (dataForOhw && !dataForOhw.isHonorsPoints);\n    }\n\n    function createLayerPropertiesObj() {\n        return functions.forEach(function (funct) {\n            var ieFunctNameMatch = funct.toString().match(/^function\\s*([^\\s(]+)/);\n            var ieFunctName = ieFunctNameMatch && ieFunctNameMatch[1];\n            var functName = funct.name || ieFunctName;\n            properties[functName] = funct();\n\n            return properties;\n        });\n    }\n\n    function checkLayerProperties(layerProperties, phase) {\n        if (Object.keys(layerProperties).length === 9 && Object.keys(phase).length === 9) {\n            return Object.keys(layerProperties)\n                .every(function (property) {\n                    return layerProperties[property] === phase[property] ||\n                        phase[property] === 'any';\n                });\n        }\n        return false;\n    }\n\n    functions = [\n        isHonorsUser,\n        isGWreferrer,\n        isExcludedHotel,\n        isOneClickReferrer,\n        isOnlyRoom,\n        isEnglish,\n        isNotTravelAgent,\n        isNotSpecialRate,\n        isNotHonorsPoints,\n    ];\n\n    createLayerPropertiesObj();\n\n    resVal = Object.keys(comparisonChartObj)\n        .filter(function (phase) {\n            return checkLayerProperties(properties, comparisonChartObj[phase]);\n        }).shift() || 'NotQualified';\n\n    // debug statements, commented out @Ally Han\n    /*console.log(properties);\n    console.log('phase: ' + resVal);*/\n\n    if (resVal !== 'NotQualified') {\n        visitor.storeAttr('Layer', resVal);\n    }\n};","Order":-3,"HighLevelApiVersion":"1.12"},{"Name":"commonCriteria","Type":"script","Attrs":{"type":"text/javascript"},"Data":"(function () {\n    modules.define('DatePCsProvider', { autoDefine: false, singleton: false }, function () {\n        /**\n         * Helper function that gets the arrival and departure dates\n         * @returns {{arrivalDate: Date, departureDate: Date}}\n         */\n\n        function convertDateStrFromDigDat(digitalDataStr) {\n            var month = digitalDataStr.substr(0, 2);\n            var day = digitalDataStr.substr(2, 2);\n            var year = digitalDataStr.substr(4, 4);\n\n            var monthsShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\n            return day + '.' + monthsShort[(Number(month) - 1)] + '.' + year;\n        }\n\n        function getArrDepDates() {\n            function getSearchObj(search, decode) {\n                var tokens = search.slice(1).split(/&|=/),\n                    obj = Object.create(null),\n                    i = 0;\n\n                for (; i < tokens.length; i += 2) {\n                    obj[decode(tokens[i])] = decode(tokens[i + 1]);\n                }\n\n                return obj;\n            }\n\n            var queryStringObj = getSearchObj(window.location.search, decodeURIComponent);\n            var arrivalDateStr = (document.querySelector('[name=arrivalDate]') && document.querySelector('[name=arrivalDate]').value) || queryStringObj.arrivalDate;\n            var departureDateStr = (document.querySelector('[name=departureDate]') && document.querySelector('[name=departureDate]').value) || queryStringObj.departureDate;\n\n            if ((!arrivalDateStr || !departureDateStr) && site.scope.step) {\n                // guest info, rooms and rates, payment\n                // window.digitalData.cart.item[0].productInfo.endDate/startDate\n                if (site.scope.step !== 'Confirmation' &&\n                    window.digitalData &&\n                    window.digitalData.cart &&\n                    window.digitalData.cart.item &&\n                    window.digitalData.cart.item[0] &&\n                    window.digitalData.cart.item[0].productInfo) {\n                    arrivalDateStr = convertDateStrFromDigDat(window.digitalData.cart.item[0].productInfo.startDate);\n                    departureDateStr = convertDateStrFromDigDat(window.digitalData.cart.item[0].productInfo.endDate);\n                }\n\n                // confirmation page\n                // digitalData.transaction.item[0].productInfo.startDate/endDate\n                if (site.scope.step === 'Confirmation' &&\n                    window.digitalData &&\n                    window.digitalData.transaction &&\n                    window.digitalData.transaction.item &&\n                    window.digitalData.transaction.item[0] &&\n                    window.digitalData.transaction.item[0].productInfo) {\n                    arrivalDateStr = convertDateStrFromDigDat(window.digitalData.transaction.item[0].productInfo.startDate);\n                    departureDateStr = convertDateStrFromDigDat(window.digitalData.transaction.item[0].productInfo.endDate);\n                }\n            }\n\n            return {\n                arrivalDate:   arrivalDateStr ? new Date(arrivalDateStr) : null,\n                departureDate: departureDateStr ? new Date(departureDateStr) : null,\n            };\n        }\n\n        /**\n         * Helper function that returns today's date (at time 00:00:00)\n         * @returns {Date}\n         */\n        function getNow() {\n            var nowDate = new Date();\n            nowDate.setHours(0);\n            nowDate.setMinutes(0);\n            nowDate.setSeconds(0, 0);\n\n            nowDate = nowDate.getTime();\n            return nowDate;\n        }\n\n        /**\n         * Get day in miliseconds\n         * @returns {number}\n         */\n        function getOneDay() {\n            return 1000 * 60 * 60 * 24;\n        }\n\n        // helper variables\n        var oneDay = getOneDay();\n        var nowDate = getNow();\n\n        /**\n         * Helper function that gets stayduration PC value based on arrival and departure dates\n         * @param arrivalDate {Date}\n         * @param departureDate {Date}\n         * @returns {string}\n         */\n        this.getStayDuration = function (arrivalDate, departureDate) {\n            var ret = '';\n\n            var StayDuration = Math.round((departureDate.getTime() - arrivalDate.getTime()) / oneDay);\n            if (StayDuration === 0) {\n                ret = '0 (day use)';\n            } else if (StayDuration === 1) {\n                ret = '1 night';\n            } else if (StayDuration <= 3 && StayDuration >= 2) {\n                ret = '2-3 night';\n            } else if (StayDuration <= 5 && StayDuration >= 4) {\n                ret = '4-5';\n            } else if (StayDuration <= 7 && StayDuration >= 6) {\n                ret = '6-7';\n            } else if (StayDuration <= 30 && StayDuration >= 8) {\n                ret = '8-30';\n            } else if (StayDuration >= 31) {\n                ret = '31+';\n            }\n\n            return ret;\n        };\n\n        /**\n         * Helper function that gets daystobooking PC value based on arrival date\n         * @param arrivalDate {Date}\n         * @returns {string}\n         */\n        this.getDaysToBooking = function (arrivalDate) {\n            var ret = '';\n\n            var DaysToBooking = Math.round((arrivalDate.getTime() - nowDate) / oneDay);\n            if (DaysToBooking <= 3 && DaysToBooking >= 0) {\n                ret = '0-3';\n            } else if (DaysToBooking <= 7 && DaysToBooking >= 4) {\n                ret = '4-7';\n            } else if (DaysToBooking <= 14 && DaysToBooking >= 8) {\n                ret = '8-14';\n            } else if (DaysToBooking <= 30 && DaysToBooking >= 15) {\n                ret = '15-30';\n            } else if (DaysToBooking <= 60 && DaysToBooking >= 31) {\n                ret = '31-60';\n            } else if (DaysToBooking <= 90 && DaysToBooking >= 61) {\n                ret = '61-90';\n            } else if (DaysToBooking <= 120 && DaysToBooking >= 91) {\n                ret = '91-120';\n            } else if (DaysToBooking <= 121 && DaysToBooking >= 150) {\n                ret = '121-150';\n            } else if (DaysToBooking <= 151 && DaysToBooking >= 180) {\n                ret = '151-180';\n            } else if (DaysToBooking >= 181) {\n                ret = '181+';\n            }\n\n            return ret;\n        };\n\n        /**\n         * Helper function that gets satstay PC value\n         * @param arrivalDate {Date}\n         * @param departureDate {Date}\n         * @returns {string}\n         */\n        this.getSatStay = function (arrivalDate, departureDate) {\n            var arrivalDateTime = arrivalDate.getTime();\n            var departureDateTime = departureDate.getTime();\n            var ret = 'no';\n\n            // arrivalDateTime += oneDay;\n            while (arrivalDateTime <= departureDateTime) {\n                if ((new Date(arrivalDateTime)).getDay() === 6) {\n                    ret = 'yes';\n                    break;\n                }\n                arrivalDateTime += oneDay;\n            }\n\n            return ret;\n        };\n\n        this.getDatesFromPage = function () {\n            return getArrDepDates();\n        };\n\n        /**\n         * Sets all the date PCs based on Dates parsed from HTML - use this in CommonCriteria\n         */\n        this.getAllDatePCs = function () {\n            // setup helper variables\n            var arrivalDepartureDates = getArrDepDates();\n            var retObj = {\n                StayDuration:  '',\n                SatStay:       '',\n                DaysToBooking: '',\n            };\n\n            if (arrivalDepartureDates.arrivalDate && arrivalDepartureDates.departureDate) {\n                retObj.StayDuration = this.getStayDuration(arrivalDepartureDates.arrivalDate, arrivalDepartureDates.departureDate);\n                retObj.SatStay = this.getSatStay(arrivalDepartureDates.arrivalDate, arrivalDepartureDates.departureDate);\n            }\n\n            if (arrivalDepartureDates.arrivalDate) {\n                retObj.DaysToBooking = this.getDaysToBooking(arrivalDepartureDates.arrivalDate);\n            }\n\n            return retObj;\n        };\n    });\n\n    modules.define('CommonCriteria', { autoDefine: true, singleton: true }, function () {\n        site.scope.commonCriteria = site.scope.commonCriteria || {};\n\n        var datePCsProvObj = modules.require('DatePCsProvider');\n\n        // set up data to be used by SignInSource PC\n        var signInReferrerFunnelPages = ['Rooms', 'Guest', 'Payment'];\n        if (signInReferrerFunnelPages.indexOf(site.scope.step) !== -1) {\n            cookies.set('mm-PC-signIn-referrer', site.scope.step);\n        } else if (!(site.scope.step === 'ConfirmLogin' || document.title.match(/Sign\\sIn/i) !== null)) {\n            cookies.remove('mm-PC-signIn-referrer');\n        }\n\n        function getPCFromCache(pcName) {\n            return visitor.getAttr(pcName) || '';\n        }\n\n        function updatePCStateObj(name, value) {\n            if (!value) {\n                value = getPCFromCache(name);\n            }\n            site.scope.commonCriteria[name] = value;\n            return value;\n        }\n\n        var self = this;\n        var defHelper = function (getterMethod, async) {\n            var def = Deferred();\n            var helper = function () {\n                var valueFromGetter = getterMethod && getterMethod.call(self);\n                if (valueFromGetter) {\n                    def.resolve(valueFromGetter, true);\n                } else {\n                    def.resolve(valueFromGetter, false);\n                }\n            };\n\n            if ((typeof async === 'boolean') && async) {\n                events.domReady(helper);\n            } else if (typeof async === 'function') {\n                async(helper);\n            } else {\n                helper();\n            }\n            return def.promise();\n        };\n\n        function getAccountTier() {\n            var tier;\n            var tierCookie1 = cookies.get('hhTier');\n            var tierCookie2 = cookies.get('accountTier');\n            var tierCookieMap = {\n                'B': 'Member',\n                'S': 'Silver',\n                'G': 'Gold',\n                'P': 'PreferentGold',\n                'D': 'Diamond',\n            };\n            var tierCookie = tierCookie1 || (tierCookie2 && tierCookie2[0]);\n            tier = tierCookieMap[tierCookie] || '';\n\n            return tier;\n        }\n\n        this.getLoggedIn = function () {\n            var ret = cookies.get('loggedIn') ? 'yes' : 'no';\n\n            if (!ret) {\n                ret = getPCFromCache('loggedin');\n            }\n\n            site.scope.commonCriteria.loggedin = ret;\n            return ret;\n        };\n\n        this.defLoggedIn = function () {\n            return defHelper(this.getLoggedIn);\n        };\n\n        // domr\n        this.getAllDatePCs = function () {\n            var datePCsData = datePCsProvObj.getAllDatePCs();\n\n            for (var key in datePCsData) {\n                if (!datePCsData[key]) {\n                    datePCsData[key] = getPCFromCache(key);\n                }\n                site.scope.commonCriteria[key] = datePCsData[key];\n            }\n\n            return datePCsData;\n        };\n\n        this.defAllDatePCs = function () {\n            return defHelper(this.getAllDatePCs, true);\n        };\n\n        /*\n         StayDuration,\n         SatStay,\n         DaysToBooking\n         */\n        var datesHelper = function (handler, onlyArrival) {\n            // arrivalDepartureDates.arrivalDate && arrivalDepartureDates.departureDate\n            var arrDepDates = datePCsProvObj.getDatesFromPage();\n            var ret = '';\n            if ((arrDepDates.arrivalDate && arrDepDates.departureDate) || (onlyArrival && arrDepDates.arrivalDate)) {\n                ret = handler(arrDepDates.arrivalDate, arrDepDates.departureDate);\n            }\n            return ret;\n        };\n        this.getStayDuration = function () {\n            var ret = datesHelper(datePCsProvObj.getStayDuration);\n            return updatePCStateObj('StayDuration', ret);\n        };\n\n        this.defStayDuration = function () {\n            return defHelper(this.getStayDuration, true);\n        };\n\n        this.getSatStay = function () {\n            var ret = datesHelper(datePCsProvObj.getSatStay);\n            return updatePCStateObj('SatStay', ret);\n        };\n\n        this.defSatStay = function () {\n            return defHelper(this.getSatStay, true);\n        };\n\n        this.getDaysToBooking = function () {\n            var ret = datesHelper(datePCsProvObj.getDaysToBooking, true);\n            return updatePCStateObj('DaysToBooking', ret);\n        };\n\n        this.defDaysToBooking = function () {\n            return defHelper(this.getDaysToBooking, true);\n        };\n\n        // children - domr\n        this.getChildren = function () {\n            var ret = '';\n\n            var childrenElem = [].slice.call(document.querySelectorAll('[name*=numberOfChildren]')),\n                childrenCount = 0;\n            if (childrenElem.length) {\n                childrenElem.forEach(function (elementNode) {\n                    childrenCount += parseInt(elementNode.value, 10);\n                });\n\n                if (childrenCount) {\n                    ret = 'yes';\n                } else {\n                    ret = 'no';\n                }\n            }\n\n            return updatePCStateObj('Children', ret);\n        };\n\n        this.defChildren = function () {\n            return defHelper(this.getChildren, true);\n        };\n\n        // rooms domr\n        this.getRoomNmbr = function () {\n            var ret = '';\n\n            var roomsElem = [].slice.call(document.querySelectorAll('[name*=numberOfRoom]')),\n                roomsCount;\n            if (roomsElem.length) {\n                roomsElem.forEach(function (elementNode) {\n                    roomsCount = parseInt(elementNode.value, 10);\n                });\n\n                if (roomsCount) {\n                    if (roomsCount >= 10) {\n                        ret = '10+';\n                    } else {\n                        ret = roomsCount;\n                    }\n                }\n            }\n\n            return updatePCStateObj('RoomNmbr', ret);\n        };\n        this.defRoomNmbr = function () {\n            return defHelper(this.getRoomNmbr, true);\n        };\n\n        // brand domr\n        this.getBrand = function () {\n            var ret = '';\n            if (window.BRAND && window.BRAND.lowerCaseId) {\n                ret = BRAND.lowerCaseId;\n            }\n\n            return updatePCStateObj('Brand', ret);\n        };\n\n        this.defBrand = function () {\n            return defHelper(this.getBrand, true);\n        };\n\n        // flexdates domr\n        this.getFlexDates = function () {\n            var ret = '';\n\n            var flexField = document.querySelector('#flexibleDates.checkbox');\n            if (flexField) {\n                ret = '' + flexField.checked;\n            }\n\n            return updatePCStateObj('FlexDates', ret);\n        };\n\n        this.defFlexDates = function () {\n            return defHelper(this.getFlexDates, true);\n        };\n\n        // banner_present\n        this.getBanner_Present = function () {\n            var ret = 'no';\n            /* if (window.jQuery && jQuery('.nor1box').length) {\n                ret = 'Nor1';\n            } */\n\n            if (document.querySelector('.nor1box')) {\n                ret = 'Nor1';\n            }\n\n            return updatePCStateObj('Banner_Present', ret);\n        };\n\n        this.defBanner_Present = function () {\n            return defHelper(this.getBanner_Present, true);\n        };\n\n        // hotelcode\n        this.getHotelcode = function () {\n            var ret = 'no';\n\n            if (window.digitalData &&\n                window.digitalData.page &&\n                window.digitalData.page.pageInfo &&\n                window.digitalData.page.pageInfo.pageName) {\n                var hpRegex = /-([A-Z]+):index$/;\n                var funnelRegex = /book\\|([A-Z]+):[^:]*$/;\n                var aftPurchRegex = /(?:manage|confirmation)\\|([A-Z]+)$/;\n                var result = window.digitalData.page.pageInfo.pageName.match(hpRegex) ||\n                    window.digitalData.page.pageInfo.pageName.match(funnelRegex) ||\n                    window.digitalData.page.pageInfo.pageName.match(aftPurchRegex);\n                if (result && result.length === 2) {\n                    ret = result[1];\n                }\n            }\n\n            return updatePCStateObj('hotelcode', ret);\n        };\n\n        this.defHotelcode = function () {\n            return defHelper(this.getHotelcode, true);\n        };\n\n        this.getPropCountry = function () {\n            var propCountry = window.digitalData && window.digitalData.page && window.digitalData.page.attributes && window.digitalData.page.attributes.propertySearchCountry || '';\n\n            return updatePCStateObj('PropCountry', propCountry);\n        };\n\n        this.defPropCountry = function () {\n            return defHelper(this.getPropCountry, function (helper) {\n                var stopWaiting;\n                window.setTimeout(function () {\n                    stopWaiting = true;\n                }, 5000);\n                when(function () {\n                    return window.digitalData && window.digitalData.page && window.digitalData.page.attributes && window.digitalData.page.attributes.propertySearchCountry;\n                }, function () {\n                    return stopWaiting;\n                }).always(helper);\n            });\n        };\n\n        // Referrer 2014.08.15 Andrey Zyabrev\n        this.getReferrer = function () {\n            var userAgentOldIE = /msie/i;\n            var referrer = document.referrer,\n                cookie = cookies.get('pseudoIATANumber'),\n                pcValue = 'Other';\n\n            if (navigator.userAgent.match(userAgentOldIE)) { // Update 2015.01.19 Roman Mikitenko\n                referrer = document.referrer || window.location.href;\n            }\n\n            // Match domain in the referrer\n            if (referrer) {\n                var matchedDomain = (function () {\n                    var refDomains = [\n                        { 'TripAdvisor': ['TripAdvisor\\\\.com'] },\n                        {\n                            'Meta': [\n                                'hipmunk',\n                                'trivago',\n                                'hotelscombined',\n                                'kayak',\n                                'skyscanner',\n                                'thesuitest',\n                                'clicktripz',\n                                'dealchecker',\n                                'ciao\\\\.de',\n                                'kelkoo',\n                                'lookingforbooking',\n                                'travelsupermarket',\n                                'hotellook',\n                                'holidaycheck',\n                                'wego\\\\.com',\n                            ],\n                        },\n                        {\n                            'Social': [\n                                'instagram',\n                                'plus\\\\.google',\n                                'vk\\\\.com',\n                                'ning',\n                                't\\\\.co',\n                                'meetme',\n                                'twitter',\n                                'facebook',\n                                'linkedin',\n                                'stumbleupon',\n                                'tumblr',\n                                'digg',\n                                'reddit',\n                                'myspace',\n                                'flickr',\n                                'youtube',\n                                'flixster',\n                                'friendster',\n                                'delicious',\n                                'mixx',\n                                'badoo',\n                                'bebo',\n                                'classmates',\n                                'douban',\n                                'fotolog',\n                                'friendsreunited',\n                                'hi5',\n                                'kaixin001',\n                                'mylife',\n                                'orkut',\n                                'skyrock',\n                                'sonico',\n                                'studivz',\n                                'trombi',\n                                'tuenti',\n                                'viadeo',\n                                'xing',\n                                'tagged',\n                                'yelp',\n                                'blogster',\n                                'foursquare',\n                                'mixi',\n                                'gree',\n                                'yahoo-mbga',\n                                'urbanspoon',\n                                'blogger',\n                                'friendfeed',\n                                'iwiw',\n                                'mxit',\n                                'netlog',\n                                'renren',\n                                'seesmic',\n                                't\\\\.qq',\n                                'weibo',\n                                'pulse\\\\.yahoo',\n                                'pinterest',\n                                'odnoklassniki',\n                                'cyworld\\\\.com',\n                                'nate\\\\.com',\n                                'geni\\\\.com',\n                                'buzznet\\\\.com',\n                                'perfspot',\n                                'zorpia',\n                                'deviantart',\n                                'livejournal',\n                                'cafemom',\n                                'meetup',\n                                'xanga',\n                                'migente',\n                                'ryze',\n                            ],\n                        },\n                        { 'OTA': ['expedia', 'orbitz', 'priceline', 'hotels\\\\.com', 'hotwire', 'travelocity'] },\n                        {\n                            'Natural/Organic Search': [\n                                'www\\\\.google\\\\.', '\\\\yahoo\\\\.com', 'www\\\\.bing\\\\.com', 'ask\\\\.com', 'earthlink\\\\.com',\n                                'excite\\\\.com', 'mywebsearch\\\\.com', 'live\\\\.com', 'yahoo\\\\.net', 'comcast\\\\.net',\n                                'search-results\\\\.com', 'aol\\\\.com', 'search\\\\.yahoo\\\\.com', 'travel\\\\.yahoo\\\\.com',\n                            ],\n                        },\n                        {\n                            'Brand.com': [\n                                'doubletree3\\\\.hilton\\\\.com',\n                                'hamptoninn3\\\\.hilton\\\\.com',\n                                'embassysuites3\\\\.hilton\\\\.com',\n                                'conradhotels3\\\\.hilton\\\\.com',\n                                'waldorfastoria3\\\\.hilton\\\\.com',\n                                'home2suites3\\\\.hilton\\\\.com',\n                                'homewoodsuites3\\\\.hilton\\\\.com',\n                                'hiltongardeninn3\\\\.com',\n                                'hilton\\\\.com',\n                            ],\n                        },\n                    ];\n\n                    for (var key = 0; key < refDomains.length; key++) {\n                        for (var p in refDomains[key]) {\n                            if (refDomains[key].hasOwnProperty(p)) {\n                                for (var i = 0; i < refDomains[key][p].length; i++) {\n                                    if (new RegExp('[^\\\\w]' + refDomains[key][p][i], 'i').test(referrer.split('?')[0])) {\n                                        return p;\n                                    }\n                                }\n                            }\n                        }\n                    }\n\n                    return '';\n                }());\n\n                if (matchedDomain) pcValue = matchedDomain;\n            } else {\n                pcValue = 'Direct';\n            }\n\n            var ValByKey = function (str, key, f, r) {\n                var trim = function (str) {\n                    return str.replace(/^\\s+/g, '').replace(/\\s+$/g, '');\n                };\n                var k = key.replace(/\\./g, '\\\\.'),\n                    sre1 = '\\\\s*(' + k + ')\\\\s*' + f + '([^' + r + ']*)',\n                    r2 = '',\n                    m,\n                    re = new RegExp(r + sre1, 'gm'),\n                    re1 = new RegExp('^' + sre1, 'gm');\n                while ((m = re.exec(str)) != null) r2 = trim(m[2]);\n                if (r2 === '' && (m = re1.exec(str)) != null) r2 = trim(m[2]);\n                return r2;\n            };\n\n            // Match param in the url\n            if (ValByKey(location.search.slice(1), 'WT.srch', '=', '&') == 1) {\n                pcValue = 'Paid Search';\n            } else if ((function () {\n                var param = ValByKey(location.search.slice(1), 'WT.mc_id', '=', '&'),\n                    opts = ['2OLE', '2OLF', 'CMEM', 'EPEM', 'OMHN', 'CNAF'];\n                if (param) {\n                    for (var i = 0; i < opts.length; i++) {\n                        if (new RegExp(opts[i], 'i').test(param)) return true;\n                    }\n                }\n                return false;\n            })()) {\n                pcValue = 'Email';\n            }\n\n            // Check cookie existence\n            if (cookie) pcValue = 'Display';\n\n            return updatePCStateObj('Referrer', pcValue);\n        };\n\n        this.defReferrer = function () {\n            return defHelper(this.getReferrer);\n        };\n\n        // Franchise\n        this.getFranchise = function () {\n            // var linkNodeHref = window.jQuery ? jQuery('.resHeaderHotelInfo p .links a:contains(\"Hotel Details\"), .property-home-link a').attr('href') : '',\n            var linkNode = window.jQuery && jQuery('.resHeaderHotelInfo p .links a:contains(\"Hotel Details\"), .property-home-link a'),\n                linkNodeHref = linkNode ? linkNode.attr('href') : '',\n                hotelCode = (location.href.match(/-([A-Z]{7})\\//) || [, ''])[1] ||\n                    (linkNodeHref && (linkNodeHref.match(/-([A-Z]{7})\\//) || [, ''])[1]) || '';\n\n            var franchise = window.mmfCodes && window.mmfCodes[hotelCode] ? window.mmfCodes[hotelCode] : '';\n            switch (franchise) {\n                case 1:\n                    franchise = 'Franchised';\n                    break;\n                case 2:\n                    franchise = 'Owned Managed';\n                    break;\n            }\n\n            return updatePCStateObj('OMvFranchise', franchise);\n        };\n\n        this.defFranchise = function () {\n            var def = Deferred();\n\n            franchiseDef\n                .then(function () {\n                    var pcvalue = self.getFranchise();\n                    if (pcvalue) {\n                        def.resolve(pcvalue, true);\n                    } else {\n                        def.resolve('', false);\n                    }\n                }, function () {\n                    def.resolve('', false);\n                });\n\n            return def.promise();\n        };\n\n        // Cookied (first in T244)\n        this.getCookied = function () {\n            var ret = '';\n            var tier = getAccountTier();\n\n            var accountId = cookies.get('accountId') !== undefined,\n                loggedIn = cookies.get('loggedIn') !== undefined;\n\n            if (!accountId) {\n                ret = 'Non-Cookied';\n            } else if (!loggedIn) {\n                ret = (tier === 'PreferentGold') ? 'PGold_Cookied' : tier + '_Cookied';\n            }\n\n            return updatePCStateObj('Cookied', ret);\n        };\n\n        this.defCookied = function () {\n            return defHelper(this.getCookied);\n        };\n\n        this.getSearchType = function () {\n            var outSearchType = '';\n\n            if (site.scope.step === 'Rooms') {\n                outSearchType = 'Other';\n                var arrivalDate = document.querySelectorAll('.sumDates')[0] && new Date(Date.parse(document.querySelectorAll('.sumDates')[0].textContent.trim()\n                        .split(' - ')[0])),\n                    occupancyText = document.querySelectorAll('.sumOccupancy')[0] && document.querySelectorAll('.sumOccupancy')[0].textContent.trim(),\n                    adultsNum = (occupancyText.match(/[0-9]+ adult/) || [''])[0].replace(' adult', '') * 1 || 0,\n                    childrenNum = (occupancyText.match(/[0-9]+ child/) || [''])[0].replace(' child', '') * 1 || 0;\n\n                // childrenNum = childrenNum !== null ? childrenNum[0].replace(' child', '') * 1 : 0;\n                if (adultsNum > 1 && childrenNum > 0) {\n                    outSearchType = 'Family';\n                } else if (adultsNum === 1 && childrenNum === 0 && arrivalDate.getDay() >= 0 && arrivalDate.getDay() <= 3) {\n                    outSearchType = 'Business';\n                } else if (adultsNum > 1 && childrenNum === 0 && arrivalDate.getDay() >= 4 && arrivalDate.getDay() <= 6) {\n                    outSearchType = 'Weekend Couple';\n                }\n            }\n\n            return updatePCStateObj('SearchType', outSearchType);\n        };\n\n        this.defSearchType = function () {\n            return defHelper(this.getSearchType, true);\n        };\n\n        this.getUrgencyMsg = function () {\n            var ret = 'blank';\n\n            if (site.scope.step === 'Rooms') {\n                if (document.querySelector('#urgRatesAlert') !== null) {\n                    ret = 'yes';\n                } else {\n                    ret = 'no';\n                }\n            }\n\n            return updatePCStateObj('UrgencyMsg', ret);\n        };\n\n        this.defUrgencyMsg = function () {\n            return defHelper(this.getUrgencyMsg, true);\n        };\n\n        this.getHhdap = function () {\n            var ret = 'Blank';\n            hasHHDAP();\n\n            function hasHHDAP() {\n                var hhdapRateNames = ['hhonors discount advance purchase', 'hhonors adv purchase'],\n                    // ratesOnRoomRates = jQuery('.fsRoom .planDesc .popup');\n                    // ratesOnRoomRates = jQuery('.fsRoom .roomRateTable').not('.roomRateTableOtherRates').find('.planDesc .popup');\n                    ratesOnRoomRates = document.querySelectorAll('.fsRoom .rate-wrapper .rate-desc-wrapper .popup');\n\n                for (var i = ratesOnRoomRates.length; i--;) {\n                    var currentRate = ratesOnRoomRates[i].textContent.trim().toLowerCase();\n\n                    if (hhdapRateNames.indexOf(currentRate) !== -1) {\n                        ret = 'Yes';\n                        break;\n                    } else {\n                        ret = 'No';\n                    }\n                }\n                return ret;\n            }\n\n            return updatePCStateObj('HHDAP', ret);\n        };\n\n        this.defHhdap = function () {\n            return defHelper(this.getHhdap, true);\n        };\n\n        this.getSwapRates = function () {\n            var ret = 'Blank';\n            checkSwapRates();\n\n            function checkSwapRates() {\n                var bbExist = false,\n                    twoXExist = false;\n                // var rates = jQuery('.fsRoom:first .planDesc .popup');\n                // var rates = jQuery('.fsRoom:first .roomRateTableOtherRates .planDesc .popup');\n                var rates = document.querySelector('.fsRoom') && [].slice.call(document.querySelector('.fsRoom')\n                    .querySelectorAll('.roomRateTableOtherRates .rate-desc-wrapper .popup'));\n                var regExpBb = /(^bed\\s+(?:&|and|n\\'?)\\s+breakfast|^breakfast included)/g;\n\n                if (site.scope.step !== 'Rooms') {\n                    return ret;\n                }\n\n                rates.forEach(function (rateNode) {\n                    var currentRate = rateNode.textContent.toLowerCase();\n                    var bbRate = regExpBb.test(currentRate);\n                    var twoXRate = currentRate.indexOf('2x points') !== -1;\n\n                    if (bbRate) {\n                        bbExist = true;\n                    }\n\n                    if (twoXRate) {\n                        twoXExist = true;\n                    }\n                });\n\n                if (bbExist && twoXExist) {\n                    ret = 'Both';\n                } else if (bbExist) {\n                    ret = 'bb';\n                } else if (twoXExist) {\n                    ret = '2x';\n                } else {\n                    ret = 'No';\n                }\n\n                return ret;\n            }\n\n            return updatePCStateObj('SwapRates', ret);\n        };\n\n        this.defSwapRates = function () {\n            return defHelper(this.getSwapRates, true);\n        };\n\n        this.getSignInSource = function () {\n            var ret = 'Other';\n            if (site.scope.step === 'ConfirmLogin' || document.title.match(/Sign\\sIn/i) !== null) {\n                ret = isFrom();\n            }\n\n            function isFrom() {\n                var result = 'Other';\n                var ref = document.referrer;\n                var HomePage = /hilton\\.com\\/en\\/index\\.html/i.test(ref);\n                var PropertyPage = /hilton\\.com\\/en\\/hotels\\//i.test(ref);\n                var SearchResults = /\\/search\\/findhotels\\/results.htm/i.test(ref);\n                var FunnelStep = cookies.get('mm-PC-signIn-referrer');\n                var funnelCookieValMap = {\n                    'Rooms':   'RoomRate',\n                    'Guest':   'GuestInfo',\n                    'Payment': 'Payment',\n                };\n\n                if (SearchResults) {\n                    result = 'SR';\n                } else if (PropertyPage) {\n                    result = 'Property_Hmp';\n                } else if (HomePage) {\n                    result = 'Brand_Hmp';\n                } else if (/book\\.htm/i.test(ref) && FunnelStep) {\n                    result = funnelCookieValMap[FunnelStep] || 'Other';\n                }\n\n                return result;\n            }\n\n            return updatePCStateObj('SignInSource', ret);\n        };\n\n        this.defSignInSource = function () {\n            return defHelper(this.getSignInSource);\n        };\n\n        // HH Tier\n        this.getHHTier = function () {\n            var ret = getAccountTier();\n            return updatePCStateObj('HHTier', ret);\n        };\n\n        this.defHHTier = function () {\n            return defHelper(this.getHHTier);\n        };\n\n        // RR Count\n        this.getRRCount = function () {\n            var ret = '';\n\n            if (site.scope.step === 'Rooms') {\n                var $visibleRooms = document.querySelectorAll('.fsRoomroomTypeNotAccessible');\n\n                if ($visibleRooms.length) {\n                    if ($visibleRooms.length >= 15) {\n                        ret = '15_Plus';\n                    } else {\n                        ret = $visibleRooms.length;\n                    }\n                }\n            }\n\n            return updatePCStateObj('RRCount', ret);\n        };\n\n        this.defRRCount = function () {\n            return defHelper(this.getRRCount, true);\n        };\n\n        // SRCount\n        this.getSRCount = function () {\n            var ret = '';\n            var currentURL = window.location.href;\n            var SearchResults = /\\/search\\/findhotels\\/results.htm/i.test(currentURL);\n\n            if (SearchResults) {\n                var hotelsCount = window && window.searchResultsTotalNumberOfHotels;\n\n                if (hotelsCount) {\n                    if (hotelsCount >= 1 && hotelsCount <= 5) {\n                        ret = '1-5';\n                    } else if (hotelsCount >= 6 && hotelsCount <= 10) {\n                        ret = '6-10';\n                    } else if (hotelsCount >= 11 && hotelsCount <= 15) {\n                        ret = '11-15';\n                    } else if (hotelsCount >= 16 && hotelsCount <= 20) {\n                        ret = '16-20';\n                    } else if (hotelsCount >= 21 && hotelsCount <= 25) {\n                        ret = '21-25';\n                    } else if (hotelsCount >= 26 && hotelsCount <= 30) {\n                        ret = '26-30';\n                    } else if (hotelsCount >= 31 && hotelsCount <= 35) {\n                        ret = '31-35';\n                    } else if (hotelsCount >= 36 && hotelsCount <= 40) {\n                        ret = '36-40';\n                    } else if (hotelsCount >= 41 && hotelsCount <= 45) {\n                        ret = '41-45';\n                    } else if (hotelsCount >= 46 && hotelsCount <= 50) {\n                        ret = '46-50';\n                    } else if (hotelsCount >= 51 && hotelsCount <= 55) {\n                        ret = '51-55';\n                    } else if (hotelsCount > 55) {\n                        ret = '55_Plus';\n                    }\n                }\n            }\n\n            return updatePCStateObj('SRCount', ret);\n        };\n\n        this.defSRCount = function () {\n            return defHelper(this.getSRCount, true);\n        };\n\n        // Location\n        this.getLocation = function () {\n            var ret = '';\n            var currentURL = window.location.href;\n            var SearchResults = /\\/search\\/findhotels\\/results.htm/i.test(currentURL);\n\n            if (SearchResults) {\n                var SRLocation = document.querySelector('.searchSummary .sumLocation');\n                var SRMobileLocation = document.querySelector('.search_results .search_summary .location');\n\n                if (SRLocation) {\n                    ret = SRLocation.textContent.trim();\n                } else if (SRMobileLocation) {\n                    ret = SRMobileLocation.textContent.trim();\n                }\n            }\n\n            return updatePCStateObj('Location', ret);\n        };\n        this.defLocation = function () {\n            return defHelper(this.getLocation, true);\n        };\n\n        // Layer\n        this.getLayer = site.scope.getLayer;\n        this.defLayer = function () {\n            return defHelper(this.getLayer, function (helper) {\n                var stopWaiting;\n                window.setTimeout(function () {\n                    stopWaiting = true;\n                }, 10000);\n                events.domReady(function () {\n                    stopWaiting = true;\n                });\n                when(function () {\n                    return window.digitalData\n                        && (document.querySelector('#fsToGetAccurateRates .additionalCodes') || document.getElementById('specialCodeTravelAgent') );\n                }, function () {\n                    return stopWaiting;\n                }).always(helper);\n            });\n        };\n\n\n        /**\n         * Stores all PCs into cookie from site.scope.commonCriteria object\n         * this function should be invoked after setting up the PCs\n         */\n        this.storePCs = function () {\n            for (var key in site.scope.commonCriteria) {\n                if (site.scope.commonCriteria[key] !== '') {\n                    visitor.storeAttr(key, site.scope.commonCriteria[key]);\n                }\n            }\n        };\n\n        /**\n         * Updates all personalization criteria\n         */\n        this.updatePCs = function () {\n            // all PC setters\n            this.getCookied();\n            this.getStayDuration();\n            this.getSatStay();\n            this.getDaysToBooking();\n            this.getBanner_Present();\n            this.getBrand();\n            this.getChildren();\n            this.getRoomNmbr();\n            this.getFlexDates();\n            //this.getFranchise();\n            this.getHotelcode();\n            this.getLoggedIn();\n            this.getReferrer();\n            this.getSearchType();\n            this.getUrgencyMsg();\n            this.getHhdap();\n            this.getSwapRates();\n            this.getSignInSource();\n            this.getHHTier();\n            this.getRRCount();\n            this.getSRCount();\n            this.getLocation();\n            this.getLayer();\n            this.getPropCountry();\n\n            this.storePCs();\n        };\n\n        this.updatePCsDef = function () {\n            return when(\n                this.defCookied(),\n                this.defStayDuration(),\n                this.defSatStay(),\n                this.defDaysToBooking(),\n                this.defBanner_Present(),\n                this.defBrand(),\n                this.defChildren(),\n                this.defRoomNmbr(),\n                this.defFlexDates(),\n                //this.defFranchise(),\n                this.defHotelcode(),\n                this.defLoggedIn(),\n                this.defReferrer(),\n                this.defSearchType(),\n                this.defUrgencyMsg(),\n                this.defHhdap(),\n                this.defSwapRates(),\n                this.defSignInSource(),\n                this.defHHTier(),\n                this.defRRCount(),\n                this.defSRCount(),\n                this.defLocation(),\n                this.defPropCountry(),\n                this.defLayer()\n            ).then(function () {\n                self.storePCs();\n                return Deferred().resolve().promise();\n            });\n        };\n    });\n\n    var CommonCriteria = modules.require('CommonCriteria');\n\n    // Franchise codes\n    var franchiseDef = (function () {\n        var def = Deferred();\n        var brand = (window.BRAND && BRAND.lowerCaseId) ||\n            (location.pathname.match(/\\/(ch|dt|es|gi|hi|hp|ht|hw|wa|qq)\\//) || [, ''])[1];\n\n        function resolveDef() {\n            def.resolve();\n        }\n\n        if (brand && brand !== 'hh' && brand !== 'qq') {\n            var url = '//service.maxymiser.net/cdn/hilton/hilton.com/pc_criteria/franchise_codes/fcodes_' + brand + '_v2.js';\n            // document.write('<scr' + 'ipt src=\"//service.maxymiser.net/cdn/hilton/hilton.com/pc_criteria/franchise_codes/fcodes_' + brand + '.js\"></scr' + 'ipt>');\n            var script = document.createElement('script');\n            script.type = 'text/javascript';\n            script.src = url;\n            script.onload = resolveDef;\n            script.onerror = resolveDef;\n            document.head.appendChild(script);\n        } else {\n            resolveDef();\n        }\n        return def.promise();\n    }());\n\n\n    CommonCriteria.updatePCsDef();\n\n    var updatePCsEventHandler = function () {\n        CommonCriteria.updatePCs();\n    };\n\n    /* events.domReady(function () {\n        jQuery(window).bind('beforeunload', updatePCsEventHandler);\n        jQuery(window).bind('unload', updatePCsEventHandler);\n    }); */\n\n    events.domReady(function () {\n        window.addEventListener('beforeunload', updatePCsEventHandler);\n\n        window.addEventListener('unload', updatePCsEventHandler);\n\n        window.addEventListener('pagehide', updatePCsEventHandler);\n    });\n}());","Order":-2,"HighLevelApiVersion":"1.12"},{"Name":"Angular_Module","Type":"script","Attrs":{"type":"text/javascript"},"Data":"// Single-page routing module v1.0.3.0\n\"undefined\"===typeof router&&function(){function b(a){a&&c!==a&&(c=a,events.trigger(\"routeChange\",{newUrl:a}))}function e(a){return function(){b(window.location.protocol+\"//\"+window.location.host+arguments[2]);return a.apply(this,arguments)}}var c;modules.define(\"router\",{autoDefine:!0,singleton:!0},function(){this.onRouteChange=function(a){var b=function(b){for(var c=0;c<a.urls.length;c++){var d=b.newUrl;if(d&&d.match&&d.match(a.urls[c])){a.handler&&a.handler();break}}};b({newUrl:window.location.href});\nevents.on(\"routeChange\",b);return this};this.triggerRouteChange=function(a){c=a;events.trigger(\"routeChange\",{newUrl:a});return this};this.data={}});history.pushState=e(history.pushState);history.replaceState=e(history.replaceState);window.addEventListener(\"popstate\",function(a){b(window.location.href)});window.addEventListener(\"hashchange\",function(a){b(a.newURL)})}();","Order":1,"HighLevelApiVersion":"1.12"},{"Name":"trigger_SignOut","Type":"script","Attrs":{"type":"text/javascript"},"Data":"events.domReady(function () {\n    var signOutButton = document.getElementById('sign_out');\n    signOutButton && signOutButton.addEventListener('click', function () {\n        events.trigger('signOut');\n    });\n});","Order":50,"HighLevelApiVersion":"1.12"}],"Campaigns":[{"Name":"T377_380_383_Master","Type":"Master","CSName":"","HighLevelApiVersion":"1.12","PagePrefix":"","Scripts":[],"Elements":[],"Recommendations":[]},{"Name":"T427_GPTW_Badge","Type":"ABnMVT","CSName":"","HighLevelApiVersion":"1.12","PagePrefix":"","Scripts":[{"Name":"T427_Campaign","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n* Compiled with gulp-campaign-compiler:\n* version: 2.2.9\n* release url: /maxymiser-emea-travel-utils/gulp-campaign-compiler/tree/ver_2.2.6\n* git: /maxymiser-emea-travel-utils/gulp-campaign-compiler\n*/\n\n/**\n * @file Generate T427 campaign for a visitor who lands on the US site Honors or Hilton.com brand homepage\n * @author Grzegorz Sowiński grzegorz.sowinski@oracle.com\n * 2019-03-11\n */\n\ncampaign.scope.isHiltonHomePage = window.location.href.indexOf('www3.hilton.com') > 0;\ncampaign.scope.isHonorsHomePage = window.location.href.indexOf('hiltonhonors3.hilton.com') > 0;\n\nvar unhide = void 0;\nif (campaign.scope.isHiltonHomePage) {\n    unhide = tools.hide('#inner_container', 7000);\n} else if (campaign.scope.isHonorsHomePage) {\n    unhide = tools.hide('#logo_box', 7000);\n}\n\ntools.waitForElement('#logo_box', 7000).then(function () {\n    return renderer.runVariantJs();\n}).always(unhide);","Order":1,"HighLevelApiVersion":"1.12"}],"Elements":[{"Name":"badge","VariantName":"a2_gptw","HTMLId":"Badge","Data":[{"Type":"Css","Data":"\n#logo_box.t427 {\n    position: relative;\n}\n\n#logo_box.t427 .t427-gptw-badge {\n    height: 100%;\n    left: 160px;\n    padding: 0 12px 10px 0;\n    width: 70px;\n}\n\n.t427-gptw-badge {\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n    height: 65px;\n    left: 112px;\n    padding: 8px 12px 8px 0;\n    position: absolute;\n    width: 58px;\n}\n\n.t427-gptw-badge div {\n    border-left: 2px solid #c9c9c9;\n    height: 100%;\n    padding-left: 12px;\n    width: auto;\n}\n\n.st0 {\n    fill: #EF4623;\n}\n\n.st1 {\n    fill: none;\n    stroke: #000000;\n    stroke-width: 0.179;\n}\n\n.st2 {\n    fill: #77787B;\n}\n\n.st3 {\n    fill: #757679;\n}\n\n.st4 {\n    fill: #737577;\n}\n\n","Attrs":{}},{"Type":"Html","Data":"\n\n\n<div class=\"t427-gptw-badge\">\n    <a href=\"https://newsroom.hilton.com/corporate/news/employees-rank-hilton-the-best-place-to-work-in-the-us\" target=\"_blank\">\n        <div>\n            <svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"40 45 130 200\" style=\"enable-background:new 40 45 130 200;\" xml:space=\"preserve\"><g><path class=\"st0\" d=\"M65.02,138.8V82.98H56.7v-9.85h19.26v65.66H65.02z\"/><path class=\"st0\" d=\"M98.39,138.8c-2.95,0-5.58-1.2-7.55-3.06c-2.08-1.97-3.39-4.82-3.39-7.88V84.08c0-3.06,1.31-5.8,3.28-7.77c1.97-1.97,4.71-3.17,7.66-3.17h10.94c3.06,0,5.8,1.2,7.77,3.28c1.97,1.97,3.17,4.71,3.17,7.66v43.78c0,3.06-1.31,5.91-3.39,7.88c-1.97,1.86-4.6,3.06-7.55,3.06H98.39z M109.34,85.72c0-1.42-1.31-2.74-2.74-2.74h-5.47c-1.42,0-2.74,1.31-2.74,2.74v40.49c0,1.42,1.31,2.74,2.74,2.74h5.47c1.42,0,2.74-1.31,2.74-2.74V85.72z\"/><path class=\"st0\" d=\"M139.43,138.8c-2.95,0-5.58-1.2-7.55-3.06c-2.08-1.97-3.39-4.82-3.39-7.88V84.08c0-3.06,1.31-5.8,3.28-7.77c1.97-1.97,4.71-3.17,7.66-3.17h10.94c3.06,0,5.8,1.2,7.77,3.28c1.97,1.97,3.17,4.71,3.17,7.66v43.78c0,3.06-1.31,5.91-3.39,7.88c-1.97,1.86-4.6,3.06-7.55,3.06H139.43z M150.38,85.72c0-1.42-1.31-2.74-2.74-2.74h-5.47c-1.42,0-2.74,1.31-2.74,2.74v40.49c0,1.42,1.31,2.74,2.74,2.74h5.47c1.42,0,2.74-1.31,2.74-2.74V85.72z\"/><path class=\"st0\" d=\"M56.5,186.3v-45.46h13.64c1.82,0,3.51,0.78,4.68,2.01c1.1,1.17,1.82,2.73,1.82,4.48v9.03c0,3.18-2.14,5.72-4.94,6.17v0.32c2.79,0.19,5.59,2.79,5.59,6.37v10.59c0,1.82-0.78,3.51-2.01,4.68c-1.17,1.1-2.73,1.82-4.48,1.82H56.5z M70.14,148.3c0-0.84-0.78-1.62-1.62-1.62h-5.52v13.31h5.52c0.84,0,1.62-0.78,1.62-1.62V148.3z M70.79,169.09c0-1.69-1.56-3.25-3.25-3.25h-4.55v14.61h6.17c0.84,0,1.62-0.78,1.62-1.62V169.09z\"/><path class=\"st0\" d=\"M89.1,186.3v-45.46h16.24v5.84H95.6v13.31h7.92v5.85H95.6v14.61h9.74v5.85H89.1z\"/><path class=\"st0\" d=\"M120.93,186.3c-1.88,0-3.38-0.71-4.55-1.88c-1.23-1.17-1.95-2.73-1.95-4.61v-6.49h6.49v5.52c0,0.84,0.71,1.62,1.62,1.62h3.9c0.84,0,1.62-0.78,1.62-1.62v-7.53c0-1.56-0.91-2.73-1.62-3.18l-5.59-3.7c-3.31-2.21-6.43-4.42-6.43-8.9v-8.18c0-1.88,0.71-3.44,1.95-4.61c1.17-1.17,2.66-1.88,4.55-1.88h7.14c1.82,0,3.38,0.71,4.61,1.95c1.17,1.17,1.88,2.73,1.88,4.55v6.49h-6.49v-5.52c0-0.84-0.78-1.62-1.62-1.62h-3.9c-0.84,0-1.62,0.78-1.62,1.62v6.17c0,1.62,0.84,2.73,1.62,3.25l5.46,3.44c3.38,2.21,6.56,4.68,6.56,9.22v9.42c0,1.82-0.71,3.38-1.88,4.55c-1.23,1.23-2.79,1.95-4.61,1.95H120.93z\"/><path class=\"st0\" d=\"M148.73,186.3v-39.62h-6.49v-5.84h19.48v5.84h-6.49v39.62H148.73z\"/></g><line class=\"st1\" x1=\"56.23\" y1=\"237.03\" x2=\"94.54\" y2=\"237.03\"/><line class=\"st1\" x1=\"56.23\" y1=\"238.98\" x2=\"94.54\" y2=\"238.98\"/><line class=\"st1\" x1=\"56.23\" y1=\"240.98\" x2=\"94.54\" y2=\"240.98\"/><line class=\"st1\" x1=\"124.43\" y1=\"236.7\" x2=\"162.09\" y2=\"236.7\"/><line class=\"st1\" x1=\"124.43\" y1=\"238.65\" x2=\"162.09\" y2=\"238.65\"/><line class=\"st1\" x1=\"124.43\" y1=\"240.65\" x2=\"162.09\" y2=\"240.65\"/><g><path d=\"M58.88,208.84c-0.69,0-1.33-0.27-1.8-0.72c-0.5-0.48-0.85-1.17-0.85-1.94v-13.26c0-0.72,0.29-1.35,0.74-1.83c0.48-0.5,1.17-0.82,1.91-0.82h2.92c0.74,0,1.43,0.32,1.91,0.82c0.45,0.48,0.74,1.11,0.74,1.83v2.65H61.8v-2.25c0-0.35-0.32-0.66-0.66-0.66h-1.59c-0.34,0-0.66,0.32-0.66,0.66v12.46c0,0.35,0.32,0.66,0.66,0.66h1.59c0.34,0,0.66-0.32,0.66-0.66v-2.25h2.65v2.65c0,0.74-0.32,1.43-0.82,1.91c-0.48,0.45-1.11,0.74-1.83,0.74H58.88z\"/><path d=\"M70.94,208.84c-0.74,0-1.38-0.29-1.88-0.8c-0.48-0.48-0.77-1.11-0.77-1.86v-13.26c0-0.74,0.29-1.38,0.77-1.86c0.5-0.5,1.14-0.8,1.88-0.8h2.92c0.77,0,1.38,0.29,1.86,0.77c0.5,0.48,0.8,1.11,0.8,1.88v13.26c0,0.77-0.29,1.38-0.77,1.86c-0.48,0.5-1.11,0.8-1.88,0.8H70.94z M73.86,193.33c0-0.35-0.32-0.66-0.66-0.66h-1.59c-0.34,0-0.66,0.32-0.66,0.66v12.46c0,0.35,0.32,0.66,0.66,0.66h1.59c0.37,0,0.66-0.32,0.66-0.66V193.33z\"/><path d=\"M90.96,208.84v-9.68l0.21-4.16h-0.16l-0.95,4.51l-1.64,6.68h-2.17l-1.64-6.68L83.64,195h-0.16l0.21,4.16v9.68h-2.41v-18.56h3.37l2.15,8.78l0.4,2.73h0.27l0.4-2.73l2.15-8.78h3.37v18.56H90.96z\"/><path d=\"M98.44,208.84v-18.56h5.6c0.69,0,1.35,0.29,1.86,0.77c0.48,0.48,0.77,1.14,0.77,1.88v4.91c0,0.74-0.29,1.38-0.77,1.88c-0.5,0.48-1.14,0.77-1.88,0.77h-2.92v8.35H98.44z M104,193.33c0-0.35-0.32-0.66-0.66-0.66h-2.25v5.44h2.23c0.34,0,0.66-0.32,0.69-0.69V193.33z\"/><path d=\"M115.35,208.84l-0.42-2.92h-3.16l-0.4,2.92h-2.76l3.29-18.56h2.92l3.29,18.56H115.35z M113.66,196.91l-0.21-2.6h-0.16l-0.21,2.6l-0.95,6.63h2.47L113.66,196.91z\"/><path d=\"M128.08,208.84l-3.39-10.61l-0.64-2.65h-0.16l0.45,7.53v5.73h-2.65v-18.56h2.65l3.42,10.61l0.61,2.65h0.19l-0.48-7.58v-5.67h2.65v18.56H128.08z\"/><path d=\"M135.79,208.84v-18.56h2.65v18.56H135.79z\"/><path d=\"M143.51,208.84v-18.56h6.63v2.39h-3.98v5.44h3.24v2.39h-3.24v5.97h3.98v2.39H143.51z\"/><path d=\"M156.31,208.84c-0.77,0-1.38-0.29-1.86-0.77c-0.5-0.48-0.8-1.11-0.8-1.88v-2.65h2.65v2.25c0,0.35,0.29,0.66,0.66,0.66h1.59c0.34,0,0.66-0.32,0.66-0.66v-3.08c0-0.64-0.37-1.11-0.66-1.3l-2.28-1.51c-1.35-0.9-2.62-1.8-2.62-3.63v-3.34c0-0.77,0.29-1.4,0.8-1.88c0.48-0.48,1.09-0.77,1.86-0.77h2.92c0.74,0,1.38,0.29,1.88,0.8c0.48,0.48,0.77,1.11,0.77,1.86v2.65h-2.65v-2.25c0-0.35-0.32-0.66-0.66-0.66h-1.59c-0.35,0-0.66,0.32-0.66,0.66v2.52c0,0.66,0.35,1.11,0.66,1.33l2.23,1.4c1.38,0.9,2.68,1.91,2.68,3.77v3.84c0,0.74-0.29,1.38-0.77,1.86c-0.5,0.5-1.14,0.8-1.88,0.8H156.31z\"/><path d=\"M58.72,228.72v-13.75h-2.25v-2.03h6.76v2.03h-2.25v13.75H58.72z\"/><path d=\"M68.21,228.72c-0.63,0-1.17-0.25-1.6-0.68c-0.41-0.41-0.65-0.95-0.65-1.58v-11.27c0-0.63,0.25-1.17,0.65-1.58c0.43-0.43,0.97-0.68,1.6-0.68h2.48c0.65,0,1.17,0.25,1.58,0.65c0.43,0.41,0.68,0.95,0.68,1.6v11.27c0,0.65-0.25,1.17-0.65,1.58c-0.41,0.43-0.95,0.68-1.6,0.68H68.21z M70.69,215.54c0-0.29-0.27-0.56-0.56-0.56h-1.35c-0.29,0-0.56,0.27-0.56,0.56v10.59c0,0.29,0.27,0.56,0.56,0.56h1.35c0.32,0,0.56-0.27,0.56-0.56V215.54z\"/><path d=\"M88.22,228.72l-1.24-9.26l-0.18-2.21h-0.14l-0.18,2.21l-1.28,9.26h-2.25l-2.48-15.77h2.37l1.08,9.46l0.11,2.21h0.14l0.25-2.21l1.17-9.46h2.23l1.19,9.46l0.25,2.21h0.14l0.11-2.21l1.08-9.46h2.37l-2.48,15.77H88.22z\"/><path d=\"M98.14,228.72c-0.63,0-1.17-0.25-1.6-0.68c-0.41-0.41-0.65-0.95-0.65-1.58v-11.27c0-0.63,0.25-1.17,0.65-1.58c0.43-0.43,0.97-0.68,1.6-0.68h2.48c0.65,0,1.17,0.25,1.58,0.65c0.43,0.41,0.68,0.95,0.68,1.6v11.27c0,0.65-0.25,1.17-0.65,1.58c-0.41,0.43-0.95,0.68-1.6,0.68H98.14z M100.61,215.54c0-0.29-0.27-0.56-0.56-0.56H98.7c-0.29,0-0.56,0.27-0.56,0.56v10.59c0,0.29,0.27,0.56,0.56,0.56h1.35c0.32,0,0.56-0.27,0.56-0.56V215.54z\"/><path d=\"M112.15,228.72l-1.87-7.1h-1.13v7.1h-2.25v-15.77h4.75c0.59,0,1.15,0.25,1.58,0.65c0.41,0.41,0.65,0.97,0.65,1.6v3.81c0,0.68-0.27,1.19-0.63,1.58c-0.25,0.23-0.54,0.41-0.83,0.5l2.1,7.64H112.15z M111.63,215.54c0-0.29-0.27-0.56-0.56-0.56h-1.92v4.62h1.89c0.29,0,0.56-0.27,0.59-0.59V215.54z\"/><path d=\"M123.69,228.72l-2.59-6.87l-0.81,1.51v5.36h-2.25v-15.77h2.25v7.21h0.09l3.33-7.21h2.57l-3.67,6.83l3.67,8.95H123.69z\"/><path d=\"M133.63,228.72v-15.77h5.63v2.03h-3.38v4.62h2.75v2.03h-2.75v7.1H133.63z\"/><path d=\"M144.42,228.72c-0.63,0-1.17-0.25-1.6-0.68c-0.41-0.41-0.65-0.95-0.65-1.58v-11.27c0-0.63,0.25-1.17,0.65-1.58c0.43-0.43,0.97-0.68,1.6-0.68h2.48c0.65,0,1.17,0.25,1.58,0.65c0.43,0.41,0.68,0.95,0.68,1.6v11.27c0,0.65-0.25,1.17-0.65,1.58c-0.41,0.43-0.95,0.68-1.6,0.68H144.42z M146.9,215.54c0-0.29-0.27-0.56-0.56-0.56h-1.35c-0.29,0-0.56,0.27-0.56,0.56v10.59c0,0.29,0.27,0.56,0.56,0.56h1.35c0.32,0,0.56-0.27,0.56-0.56V215.54z\"/><path d=\"M158.44,228.72l-1.87-7.1h-1.13v7.1h-2.25v-15.77h4.75c0.59,0,1.15,0.25,1.58,0.65c0.41,0.41,0.65,0.97,0.65,1.6v3.81c0,0.68-0.27,1.19-0.63,1.58c-0.25,0.23-0.54,0.41-0.83,0.5l2.1,7.64H158.44z M157.92,215.54c0-0.29-0.27-0.56-0.56-0.56h-1.92v4.62h1.89c0.29,0,0.56-0.27,0.59-0.59V215.54z\"/></g><g><path d=\"M163.92,214.19c0,0.48-0.37,1.16-1.3,1.16c-0.92,0-1.29-0.68-1.29-1.16v-0.44c0-0.47,0.37-1.16,1.29-1.16c0.93,0,1.3,0.69,1.3,1.16V214.19z M163.62,213.75c0-0.41-0.3-0.89-0.99-0.89c-0.69,0-0.99,0.48-0.99,0.89v0.44c0,0.41,0.29,0.9,0.99,0.9c0.7,0,0.99-0.49,0.99-0.9V213.75z M163.02,214.7l-0.31-0.59h-0.28l-0.06-0.01l0.01,0.05v0.55h-0.29v-1.46h0.73c0.17,0,0.37,0.16,0.37,0.37v0.04c0,0.17-0.07,0.31-0.23,0.36l0.37,0.69H163.02z M162.88,213.6c0-0.05-0.05-0.09-0.09-0.09h-0.42l0.01,0.04v0.25l-0.01,0.05h0.4c0.04,0,0.11-0.06,0.11-0.12V213.6z\"/></g><g><path class=\"st2\" d=\"M160.92,47.24V46.8\"/></g><polygon class=\"st2\" points=\"141.76,46.28 141.76,59.09 137.73,46.28 133.75,46.28 133.75,69.77 137.73,69.77 137.73,58.26 141.33,69.77 145.74,69.77 145.74,46.28 \"/><polygon class=\"st3\" points=\"56.77,69.77 60.75,69.77 60.75,59.7 64.44,59.7 64.44,55.72 60.75,55.72 60.75,50.26 66.47,50.26 66.47,46.28 60.75,46.28 56.77,46.28 \"/><path class=\"st2\" d=\"M74.33,64.58V51.47c0-0.85,0.69-1.54,1.54-1.54h0c0.85,0,1.54,0.69,1.54,1.54v13.12c0,0.85-0.69,1.54-1.54,1.54C75.02,66.13,74.33,65.43,74.33,64.58 M70.35,51.47v13.11c0,3.05,2.47,5.52,5.52,5.52c3.05,0,5.52-2.47,5.52-5.52V51.47c0-3.05-2.47-5.52-5.52-5.52h0C72.83,45.94,70.35,48.42,70.35,51.47\"/><polygon class=\"st2\" points=\"113.04,46.28 102.01,46.28 102.01,50.26 105.53,50.26 105.53,69.77 109.51,69.77 109.51,50.26 113.04,50.26 \"/><path class=\"st2\" d=\"M124.69,46.28v18.3c0,0.85-0.69,1.54-1.54,1.54c-0.85,0-1.54-0.69-1.54-1.54v-18.3h-3.98v18.3c0,3.05,2.47,5.52,5.52,5.52c3.05,0,5.52-2.47,5.52-5.52v-18.3H124.69z\"/><polygon class=\"st2\" points=\"160.65,50.26 160.65,46.28 150.95,46.28 150.95,69.77 160.65,69.77 160.65,65.79 154.93,65.79 154.93,59.7 158.62,59.7 158.62,55.72 154.93,55.72 154.93,50.26 \"/><path class=\"st2\" d=\"M98.22,69.77h-4.11l-2.94-11.16c0,0,2.53-0.46,2.53-3.15V51.8c0-0.85-0.69-1.54-1.54-1.54h-1.53v19.52h-3.98v-23.5h5.51c2.97,0,5.38,2.34,5.51,5.28h0.01v3.84h-0.01c0,2.32-0.76,3.99-2.15,5.06L98.22,69.77z\"/><g><path class=\"st4\" d=\"M97.66,244.11v-2.46c0-1.19,0.88-1.82,1.72-2.41l1.26-0.9c0.17-0.12,0.42-0.42,0.42-0.85v-1.62c0-0.22-0.2-0.42-0.42-0.42h-0.85c-0.22,0-0.42,0.2-0.42,0.42v1.44h-1.7v-1.7c0-0.46,0.19-0.88,0.49-1.19c0.31-0.31,0.73-0.51,1.21-0.51h1.7c0.48,0,0.92,0.2,1.22,0.53c0.29,0.31,0.48,0.71,0.48,1.17v2.12c0,1.19-0.85,1.72-1.68,2.35l-1.29,0.97c-0.17,0.14-0.42,0.42-0.42,0.85v0.68h3.4v1.53H97.66z\"/><path class=\"st4\" d=\"M106.16,244.11c-0.46,0-0.87-0.19-1.17-0.48c-0.32-0.31-0.53-0.75-0.53-1.22v-6.8c0-0.48,0.2-0.9,0.51-1.21c0.31-0.31,0.73-0.49,1.19-0.49h1.7c0.48,0,0.9,0.19,1.21,0.51c0.31,0.31,0.49,0.73,0.49,1.19v6.8c0,0.48-0.2,0.92-0.53,1.22c-0.31,0.29-0.71,0.48-1.17,0.48H106.16z M107.86,235.87c0-0.22-0.2-0.42-0.43-0.42h-0.85c-0.22,0-0.42,0.2-0.42,0.42v6.29c0,0.22,0.2,0.42,0.42,0.42h0.85c0.22,0,0.43-0.2,0.43-0.42V235.87z\"/><path class=\"st4\" d=\"M112.28,244.11v-8.67h-1.29v-1.53h2.99v10.2H112.28z\"/><path class=\"st4\" d=\"M117.89,244.11c-0.48,0-0.9-0.2-1.21-0.51c-0.31-0.31-0.49-0.73-0.49-1.19v-0.68h1.7v0.42c0,0.22,0.2,0.42,0.42,0.42h0.85c0.22,0,0.43-0.2,0.43-0.42v-2.45c-0.03,0.1-0.08,0.19-0.15,0.25c-0.19,0.2-0.49,0.32-0.7,0.32h-0.85c-0.48,0-0.92-0.2-1.22-0.53c-0.29-0.31-0.48-0.71-0.48-1.17v-2.97c0-0.48,0.2-0.92,0.53-1.22c0.31-0.29,0.71-0.48,1.17-0.48h1.7c0.46,0,0.87,0.19,1.17,0.48c0.32,0.31,0.53,0.75,0.53,1.22v6.8c0,0.46-0.19,0.88-0.49,1.19c-0.31,0.31-0.73,0.51-1.21,0.51H117.89z M119.59,235.87c0-0.22-0.2-0.42-0.43-0.42h-0.85c-0.22,0-0.42,0.2-0.42,0.42v2.46c0,0.22,0.2,0.42,0.42,0.42h0.85c0.22,0,0.43-0.2,0.43-0.42V235.87z\"/></g></svg>\n        </div>\n    </a>\n</div>\n\n\n\n","Attrs":{}},{"Type":"Script","Data":"\n/**\n* Compiled with gulp-campaign-compiler:\n* version: 2.2.9\n* release url: /maxymiser-emea-travel-utils/gulp-campaign-compiler/tree/ver_2.2.6\n* git: /maxymiser-emea-travel-utils/gulp-campaign-compiler\n*/\n\nfunction addBadge() {\n    var logoBox = document.getElementById('logo_box');\n    if (campaign.scope.isHiltonHomePage) {\n        logoBox.insertAdjacentHTML('afterend', html);\n    } else if (campaign.scope.isHonorsHomePage) {\n        logoBox.insertAdjacentHTML('beforeend', html);\n        logoBox.classList.add('t427');\n    }\n}\n\ndom.addCss(css);\naddBadge();\n","Attrs":{}},{"Type":"Html","Data":"","Attrs":{}}],"Order":1}],"Recommendations":[]},{"Name":"T304_HHonors_Enroll_SignIn2","Type":"ABnMVT","CSName":"","HighLevelApiVersion":"1.12","PagePrefix":"","Scripts":[{"Name":"T304_signJoinSource","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * [Sign In Source]\n * This script's purpose is to [check generation rules, track actions, e.t.c].\n *\n * @author [name] irina.kashyntseva@maxymiser.com\n * @date 8.08.2016\n */\n\n/*events.domReady(function(){\n\n\tvar step = site.scope.step;\n\tvar cookieSignInSource = 'mm_t304_signInSource';\n\tvar cookiesJoinSource = 'mm_t304_joinSource';\n\tvar signInSource, joinSource = 'Other', $header_join, $joinBtn, $joinLink;\n\n\tif(step ==='ConfirmLogin' || document.title.match(/Sign\\sIn/i) !== null) {\n\t    signInSource = CommonCriteria.getSignInSource();\n\t    if(signInSource === 'SR' || signInSource === 'RoomRate' || signInSource === 'GuestInfo' || signInSource === 'Payment') {\n\t        signInSource = 'Funnel log in'\n\t    }\n\t    else if (signInSource === 'Brand_Hmp') {\n\t        signInSource = 'Hmpg log in'\n\t    }\n\t    else {\n\t        signInSource = 'Other';\n\t    }\n\t    cookies.set(cookieSignInSource, signInSource, 0, true);\n\t}\n\n\t// when(function() {\n\t//     return (typeof jQuery === 'function');\n\t// })\n\t//     .done(function(){\n\t        $header_join = jQuery('#explore_benefits');\n\t        $joinBtn = jQuery('#mm_t304_btn.join');\n\t        $joinLink = jQuery('#mm_t304_join_link');\n\n\t        //$joinBtn.add($joinLink).add($header_join).click(function(){debugger;\n                jQuery(document).delegate(\"#explore_benefits, #mm_t304_btn.join, #mm_t304_join_link\", 'click', function(){\n  \t\t\t\tvar url = window.location.pathname;\n\t            var HomePage = url.indexOf('en/index.html') !== -1;\n\t            var Funnel = url.indexOf('results.htm') !== -1 || url.indexOf('reservation/book.htm') !== -1;\n\n\t            if(HomePage) {\n\t                joinSource = 'Hmpg Join';\n\t            }\n\t            else if(Funnel) {\n\t                joinSource = 'Funnel Join';\n\t            }\n\t            cookies.set(cookiesJoinSource, joinSource, true);\n  })\n\t            \n\t        //});\n\t    //});\n    var travelAgent;\n    if(jQuery('#specialCodeTravelAgent').length){\n        travelAgent = jQuery('#specialCodeTravelAgent');\n    }\n    else if(jQuery('#rateFilterTravelAgent').length) {\n        travelAgent = jQuery('#rateFilterTravelAgent');\n    }\n    travelAgent.bind('click', handleTAgentCheckboxClick);\n\n\n\n\n\n\tfunction handleTAgentCheckboxClick(event) {\n\t    if (event.target.checked) {\n\t        cookies.set('mm_t304_TAgentChecked', 'true');\n\t    }\n\t}\n\n});*/","Order":1,"HighLevelApiVersion":"1.12"},{"Name":"T304_act_SignIn","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * [script name]\n * This script's purpose is to [check generation rules, track actions, e.t.c].\n *\n * @author [name] irina.kashyntseva@maxymiser.com\n * @date 8.08.2016\n */\nvar loggedIn = site.scope.commonCriteria.loggedin === 'yes';\nvar cookieSignInSource = 'mm_t304_signInSource';\nvar signInSource = cookies.get(cookieSignInSource);\nvar cookieActionFired = 'mm_t304_action';\nvar taNotChecked = cookies.get('mm_t304_TAgentChecked') !== 'true';\nvar notHhoronsPage = window.location.pathname.indexOf('joinHHonorsConfirmation') === -1;\n\n\nif(loggedIn && (typeof signInSource !== 'undefined') && notHhoronsPage && taNotChecked && cookies.get(cookieActionFired) !== 'SignIn') {\n    actions.postpone('T304_Success_SignIn', 1, signInSource);\n    cookies.set(cookieActionFired, 'SignIn', 0, true);\n}\n\nelse if(cookies.get(cookieActionFired) === 'SignIn' && !loggedIn){\n    cookies.remove(cookieActionFired);\n}\n\n\n\n\n","Order":1,"HighLevelApiVersion":"1.12"}],"Elements":[],"Recommendations":[]},{"Name":"T386_OHW_Quick_Book","Type":"ABnMVT","CSName":"","HighLevelApiVersion":"1.12","PagePrefix":"","Scripts":[{"Name":"T386_QB_BookConf_Act","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * T386_QB_BookConf_Act.js\n * This script's purpose is to track T386_QB_BookConfRate\n * @author Irina Kashyntseva (email: irina.kashyntseva@maxymiser.com)\n * @date 03.08.2018\n */\n\nevents.on('confirmation', function (data) {\n    var rate = data && data.rate;\n    var currencyActAttr = data.currency;\n    var conversionTable = {\n        'JPY': 0.00900,\n        'KRW': 0.00089,\n        'AUD': 0.73000,\n        'INR': 0.01400,\n        'SGD': 0.73000,\n        'HKD': 0.13000,\n        'COP': 0.00034,\n    };\n    var coefficient = conversionTable[currencyActAttr] || 1;\n    var amount = data && (data.amount * coefficient).toFixed(0);\n\n    actions.send('T386_QB_BookConfRate', amount, rate);\n});","Order":1,"HighLevelApiVersion":"1.12"},{"Name":"T386_QB_Campaign","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * T386_QB_Campaign.js\n * This script's purpose is to generate campaign.\n *\n * @author Irina Kashyntseva (email: irina.kashyntseva@maxymiser.com)\n * @date 3.08.2018\n */\n\nvar isGenerated;\n\nfunction generate() {\n    renderer.getContent()\n        .then(renderer.runVariantJs);\n}\n\nfunction runCampaign() {\n    isGenerated = Object.keys(campaign.getElements()).length;\n\n    if (!isGenerated) {\n        CommonCriteria.updatePCsDef()\n            .then(generate);\n    } else {\n        renderer.runVariantJs();\n    }\n}\n\nfunction generationLogic(data) {\n    var dfd = Deferred();\n    var isQuickBook = data && data.previousStep === 'rooms';\n\n    if (isQuickBook) {\n        dfd.resolve();\n    } else {\n        dfd.reject();\n    }\n\n    return dfd.promise();\n}\n\nevents.on('payment', function (data) {\n    generationLogic(data)\n        .then(runCampaign);\n});","Order":10,"HighLevelApiVersion":"1.12"}],"Elements":[],"Recommendations":[]},{"Name":"T386_OHW_Rates","Type":"ABnMVT","CSName":"","HighLevelApiVersion":"1.12","PagePrefix":"","Scripts":[{"Name":"T386_R_BookConf_Act","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * T386_R_BookConf_Act.js\n * This script's purpose is to track T386_R_BookConfRate\n * @author Irina Kashyntseva (email: irina.kashyntseva@maxymiser.com)\n * @date 03.08.2018\n */\n\nevents.on('confirmation', function (data) {\n    var rate = data && data.rate;\n    var currencyActAttr = data.currency;\n    var conversionTable = {\n        'JPY': 0.00900,\n        'KRW': 0.00089,\n        'AUD': 0.73000,\n        'INR': 0.01400,\n        'SGD': 0.73000,\n        'HKD': 0.13000,\n        'COP': 0.00034,\n    };\n    var coefficient = conversionTable[currencyActAttr] || 1;\n    var amount = data && (data.amount * coefficient).toFixed(0);\n\n    actions.send('T386_R_BookConfRate', amount, rate);\n});","Order":1,"HighLevelApiVersion":"1.12"},{"Name":"T386_R_Campaign","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * T386_R_Campaign.js\n * This script's purpose is to generate campaign.\n *\n * @author Irina Kashyntseva (email: irina.kashyntseva@maxymiser.com)\n * @date 3.08.2018\n */\nvar isGenerated;\n\nfunction generate() {\n    renderer.getContent()\n        .then(renderer.runVariantJs);\n}\n\nfunction runCampaign() {\n    isGenerated = Object.keys(campaign.getElements()).length;\n\n    if (!isGenerated) {\n        CommonCriteria.updatePCsDef()\n            .then(generate);\n    } else {\n        renderer.runVariantJs();\n    }\n}\n\nevents.on('rates', runCampaign);","Order":10,"HighLevelApiVersion":"1.12"}],"Elements":[],"Recommendations":[]},{"Name":"T395_OHW_Brand_Pg_Desktop","Type":"ABnMVT","CSName":"","HighLevelApiVersion":"1.12","PagePrefix":"","Scripts":[{"Name":"T395_Campaign","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * T395_Campaign\n * the script is responsible for generating campaigns\n *\n * @author Piotr Skiba (email: piotr.skiba@oracle.com)\n * @date 24.08.2018\n */\nvar setPC = getBrand() ? setPCFn : CommonCriteria.updatePCsDef;\n\nfunction getBrand() {\n    var PCAttributes = {\n        'www.hilton.com/en/hilton-garden-inn/': 'gi',\n        'www.hilton.com': 'hi'\n    };\n    for(var key in PCAttributes) {\n        if (window.location.href.indexOf(key) > -1) {\n            return PCAttributes[key];\n        }\n    }\n    return '';\n}\n\nfunction getAccountTier() {\n    var tier = '';\n    var tierCookie1 = cookies.get('hhTier');\n    var tierCookie2 = cookies.get('accountTier');\n\n    if ((tierCookie1 && tierCookie1 === 'B') || (tierCookie2 && tierCookie2 === 'Blue')) {\n        tier = 'Member';\n    } else if ((tierCookie1 && tierCookie1 === 'S') || (tierCookie2 && tierCookie2 === 'Silver')) {\n        tier = 'Silver';\n    } else if ((tierCookie1 && tierCookie1 === 'G') || (tierCookie2 && tierCookie2 === 'Gold')) {\n        tier = 'Gold';\n    } else if ((tierCookie1 && tierCookie1 === 'P') || (tierCookie2 && tierCookie2 === 'PreferentialGold')) {\n        tier = 'PreferentGold';\n    } else if ((tierCookie1 && tierCookie1 === 'D') || (tierCookie2 && tierCookie2 === 'Diamond')) {\n        tier = 'Diamond';\n    }\n\n    return tier;\n}\n\nfunction setPCFn() {\n    var def = Deferred();\n    visitor.storeAttr('Brand', getBrand());\n    visitor.storeAttr('HHTier', getAccountTier());\n    return def.resolve().promise();\n}\n\nfunction isNotTMTP() {\n    var def = Deferred();\n    var isTMTP = /\\/tm\\//i.test(document.URL + document.referrer);\n\n    return isTMTP ? def.reject().promise() : def.resolve().promise();\n}\n\nfunction clearData() {\n    var def = Deferred();\n    visitor.clearData('T395_atr');\n    return def.resolve().promise();\n}\nisNotTMTP()\n    .then(clearData)\n    .then(setPC)\n    .then(renderer.getContent)\n    .then(renderer.runVariantJs);","Order":1,"HighLevelApiVersion":"1.12"},{"Name":"T395_ActMainCTA","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * T395_ActBookConf\n * the script is responsible for sending actions T395_MainCTA\n *\n * @author Piotr Skiba (email: piotr.skiba@oracle.com)\n * @date 24.08.2018\n */\n\nvar hrefList = [\n    'hiltonworldwide.com',\n    '/homewoodsuites3.hilton.com/en/offers/100027638.htm?cid=OM%2CHW%2CHWAAA%2CMULTIPR%2CDropdown%2CHome%2CBook%2Ci1',\n    '/homewoodsuites3.hilton.com/en/offers/100031487.htm?cid=OM%2CHW%2CHWAP%2CMULTIPR%2CDropdown%2CHome%2CBook%2Ci1',\n    '/homewoodsuites3.hilton.com/en/offers/100114994.htm?cid=OM%2CHW%2CUltimateEscapes%2CMULTIPR%2CDropdown%2COffers%2CBook%2Ci1',\n    '/en/events/weddings/index.html?cid=OM%2CHW%2CHWWeddings%2CMULTIPR%2CDropdown%2CHome%2CSingleLink%2Ci1',\n    '/en/events/meetings/index.html?cid=OM%2CHW%2CHWMeetingsSimplified%2CMULTIPR%2CDropdown%2CHome%2CSingleLink%2Ci1',\n    '/en/events/special/index.html?cid=OM%2CHW%2CHWSpecialEvents%2CMULTIPR%2CDropdown%2CHome%2CSingleLink%2Ci1',\n    '/en/about/locations/index.html?cid=OM%2CHW%2CHWLocations%2CMULTIPR%2CDropdown%2CHome%2CSingleLink%2Ci1',\n    '/en/about/heart-of-homewood/index.html?cid=OM%2CHW%2CHWHeartofHomewood%2CMULTIPR%2CDropdown%2CHome%2CSingleLink%2Ci1',\n    '/en/offers/100064281.htm?cid=OM%2CHW%2CHWLeadRate%2CMULTIPR%2CDropdown%2CHome%2CSingleLink%2Ci1',\n    '/en/offers/index.htm',\n    '/en/about/index.html',\n    'en/hotels/index.html',\n    'en/accommodations/index.html',\n    'en/exclusively/true-waldorf-service/index.html',\n    'https://travel.hilton.com/en_us/hubs/escape-to-extraordinary/',\n    'en/spas/index.html', 'en/ski/index.html', 'http://waldorfastoriamagazine.com/',\n    'en/unforgettable-stories/index.html',\n    'en/golf-courses/index.html',\n    'https://www.shopwaldorfastoria.com/',\n    'en/weddings/index.html',\n    'en/events/index.html',\n    'en/events/meetings/index.html',\n    'en/events/social/index.html',\n    'en/events/group-experiences.html',\n    'en/resorts/index.html',\n    'en/offers/index.htm',\n    '/en_US/gi/search/findhotels/index.htm',\n    '/en/events/index.html',\n    '/hiltongardeninn3.hilton.com/en/offers/100049410.htm',\n    '/hiltongardeninn3.hilton.com/en/offers/100027656.htm',\n    '/hiltongardeninn3.hilton.com/en/offers/100059706.htm',\n    '/hiltongardeninn3.hilton.com/en/events/meetings/index.html',\n    '/hiltongardeninn3.hilton.com/en/events/weddings/index.html',\n    '/hiltongardeninn3.hilton.com/en/events/tools.html',\n    '/hiltongardeninn3.hilton.com/en/events/meetings/packages.html',\n    '/en/about/locations/index.html',\n    '/en/about/new-hotels/index.html',\n    '/best-price-guarantee/overview.html',\n    'en/events/meetings/index.html',\n    'en/resorts/index.html',\n    'en/about/index.html?cid=OM,HH,defaultA4,BrandNav',\n    'en/offers/100027670.htm',\n    'en/events/special/index.html',\n    'en/events/weddings/index.html',\n    'en/resorts/index.html',\n    'en/about/index.html?cid=OM,HH,defaultA4,BrandNav',\n    'en/about/locations/index.html',\n    'en/about/new-hotels/index.html',\n    'hiltonhonors3.hilton.com/en/offers/index.htm',\n    'meetings.hilton.com',\n    'hilton.com/en/locations',\n    'hilton.com/en/corporate'\n];\n\n\nvar idList = ['menu_item_offers', 'menu_item_events', 'menu_item_about', 'find_a_hotel',\n    'menu_item_home', 'menu_item_destination', 'menu_item_experience',\n    'menu_item_weddings', 'menu_item_resorts', 'menu_item_destinations'];\n\nvar textContentList = ['Offers', 'Meetings and Events', 'Locations', 'Meetings & Events'];\n\nfunction sendMainCTA() {\n    visitor.setData('T395_atr', '_MainCTA');\n    actions.postpone('T395_MainCTA', 1);\n}\n\nfunction sendLocationsCTA() {\n    visitor.setData('T395_atr', '_Location');\n    actions.postpone('T395_LocationsCTA', 1);\n}\n\nfunction sendNavAction(target, event) {\n    event.preventDefault();\n    visitor.setData('T395_atr', '_TopNav');\n    actions.send('T395_NavEngage', 1).then(function() {\n        window.location.href = target.getAttribute('href');\n    });\n}\n\nfunction oldTopNavCheck(target) {\n    var href = '';\n    var isTopNavElem = false;\n    if (target.tagName === 'A') {\n        href = target.getAttribute('href');\n        hrefList.forEach(function (elem) {\n            if (href && href.indexOf(elem) > -1) {\n                isTopNavElem = true;\n            }\n        });\n    }\n    // return idList.indexOf(target.id.trim()) > -1;\n    return isTopNavElem;\n}\n\nfunction newTopNavCheck(target) {\n    return (target.tagName === 'A' && target.parentNode && target.parentNode.classList && target.parentNode.classList.contains('rc-menu-item') && textContentList.indexOf(target.textContent.trim()) > -1)\n}\n\nfunction isTopNav(target) {\n    return oldTopNavCheck(target) || newTopNavCheck(target);\n}\n\nfunction isLocationCTA(elem) {\n    return elem.getAttribute && elem.getAttribute('data-e2e') === 'carouselCtaButton';\n}\n\nfunction isNewMainCTA(elem) {\n    if (elem.tagName && elem.tagName === 'BUTTON' && elem.textContent) {\n        var text = elem.textContent.toLowerCase();\n        return text.indexOf('find a hotel') > -1;\n    }\n    return false;\n}\n\nfunction isMainCTA(elem) {\n    return isNewMainCTA(elem) || (elem.classList && elem.classList.contains('cta_button')) || (elem.getAttribute && elem.getAttribute('data-e2e') === 'findAHotelButton');\n}\n\nfunction delegateEvent(event) {\n    var target = event.target;\n    while (target) {\n        if (isMainCTA(target)) {\n            sendMainCTA(target);\n            break;\n        } else if (isTopNav(target)) {\n            sendNavAction(target, event);\n            break;\n        }\n        target = target.parentNode;\n    }\n}\n\ndocument.addEventListener('click', delegateEvent, true);","Order":1,"HighLevelApiVersion":"1.12"}],"Elements":[],"Recommendations":[]}],"MRRules":[],"PersistData":[{"Name":"srv","IsGlobal":false,"Value":"nycvwcgus05","Expiration":365},{"Name":"pd","IsGlobal":false,"Value":"-1301406660|AQAAAApVAwCQH3bDhRHmhgAD","Expiration":365}],"SiteInfo":[{"Url":"hilton.com","ID":6}],"SystemData":[{"Version":"1.0","RequestId":1,"ResponseId":1}],"GenInfo":{"T377_380_383_Master":{"element1":"t383_sr_ql_image"},"T427_GPTW_Badge":{"badge":"a2_gptw"}},"ServerAttributes":{"BK_StayType":""},"Iteration":"jlQImcvlcAdzxryifB1igES3bmc","Packages":["mmpackage-1.12.js"]});