mmRequestCallbacks[1]({"Scripts":[{"Name":"mod_Tools","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/**\n * cdapi-tools - Helpers to cdAPI workflow\n * @version v1.3.6\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 parseCurrency(e,t,n){var r,o=e.replace(/^[^\\d]+|[^\\d]+$/g,\"\"),i=Math.max(o.lastIndexOf(\",\"),o.lastIndexOf(\".\")),c=o.charAt(i),a=\"\",u=\"\";return o.indexOf(c)!==i?a=o.replace(/[^\\d]/g,\"\"):(a=o.slice(0,i).replace(/[^\\d]/g,\"\"),u=o.slice(i+1-o.length).replace(/[^\\d]/g,\"\")),a?(\"number\"==typeof t&&u.length!==t&&(a+=u,u=\"0\"),r=Number(a+\".\"+u),n?r:Math.round(100*r)):null}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(){a?o.reject():e.call()?o.resolve():setTimeout(r,i)}var o=new Deferred,i=n||50,c=t||\"ready\",a=!1;return r(),\"ready\"!==c&&\"never\"!==c?function(){var e=setTimeout(function(){a=!0},c);o.always(function(){clearTimeout(e)})}():\"ready\"===c&&events.domReady(function(){r(),a=!0}),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.slice(),r=n.length;r--;)e=n[r],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),XMLHttpRequest.prototype.send=function(e){return function(t){return this.body=t,e.apply(this,arguments)}}(XMLHttpRequest.prototype.send)}(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,this.parseCurrency=parseCurrency});","Order":-10,"HighLevelApiVersion":"1.23"},{"Name":"SPA_Router","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)})}();\n","Order":-50,"HighLevelApiVersion":"1.23"}],"Campaigns":[{"Name":"T043_myT_Policy_Summary","Type":"ABnMVT","CSName":"","HighLevelApiVersion":"1.23","PagePrefix":"MDc2MDk1","Scripts":[{"Name":"C1988705667","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*configuration block begin*/\nvar config = {\n\t\"actionName\": \"T043_Update_Policy\",\n\t\"value\": 1,\n\t\"attr\": \"\",\n\t\"urls\": {\n\t\t\"includedUrls\": [],\n\t\t\"excludedUrls\": []\n\t}\n};\n/*configuration block end*/\n\n// actions.set(config.actionName, config.value, config.attr).send();","Order":4000,"HighLevelApiVersion":"1.23"},{"Name":"Routing","Type":"script","Attrs":{"type":"text/javascript"},"Data":"(function () {\n    if(!window.isCampaignDesignMode) {\n       window.deproxy = function(location) {\n           return location;\n       }\n    }\n    var lastUrl = window.deproxy(window.location.href);\n\n    function forceTriggerRouteChange(url) {\n        lastUrl = url;\n        campaign.events.trigger('urlChange', {\n            url: url\n        });\n    }\n\n    function triggerRouteChange(url) {\n        if (url && lastUrl !== url) {\n            forceTriggerRouteChange(url);\n        }\n    }\n\n    function createRouteChange(fn) {\n        return function () {\n            var result = fn.apply(this, arguments);\n            triggerRouteChange(window.deproxy(window.location.href));\n            return result;\n        };\n    }\n\n    history.pushState = createRouteChange(history.pushState);\n\n    history.replaceState = createRouteChange(history.replaceState);\n\n    window.addEventListener('popstate', function (event) {\n        triggerRouteChange(window.deproxy(window.location.href));\n    });\n\n    window.addEventListener('hashchange', function (event) {\n        triggerRouteChange(window.deproxy(window.location.href));\n    });\n})();","Order":5000,"HighLevelApiVersion":"1.23"},{"Name":"Rendering","Type":"script","Attrs":{"type":"text/javascript"},"Data":"var config = {\n    \"selectorsToHide\": null,\n    \"useSecondRequest\": true,\n    \"elements\": [\n        {\n            \"includedUrls\": [\n                \"https://selfservice.travelers.com/#/policies\",\n                \"https://selfservice.travelers.com/#/policies/#*\",\n                \"https://selfservice.travelers.com/#/policies#*\",\n                \"https://selfservice.travelers.com/#/policies/\",\n                \"https://selfservice.travelers.com/#/policies/?*\",\n                \"https://selfservice.travelers.com/#/policies?*\",\n                \"https://selfservice.travelers.com/#/policies/*\"\n            ],\n            \"excludedUrls\": [],\n            \"selectors\": \"\",\n            \"id\": 181038\n        }\n    ]\n};\n\nif (config.useSecondRequest) {\n    activateCampaign();\n} else {\n    render();\n}\n\ncampaign.events.on(\"urlChange\", activateCampaign);\n\nfunction activateCampaign() {\n    if (isRenderRequired()) {\n        var selectorsToHide = getSelectorsToHide();\n        hide(selectorsToHide);\n        when(isVisitorQualified())\n            .done(function () {\n                renderer.getContent().always(function () {\n                    render();\n                    show(selectorsToHide);\n                });\n            })\n            .fail(function () {\n                show(selectorsToHide);\n            });\n    }\n}\n\nfunction isRenderRequired() {\n    if (config.elements === null) { return true; }\n\n    var url = window.deproxy ? window.deproxy(window.location).href : window.location.href;\n    for (var i = 0; i < config.elements.length; i++) {\n        if (isUrlMatched(url, config.elements[i].includedUrls, config.elements[i].excludedUrls)) {\n            return true;\n        }\n    }\n    return false;\n}\n\nfunction hide(selectorsToHide) {\n    if (selectorsToHide) {\n        renderer.hide(selectorsToHide, \"ucb\");\n    }\n}\n\nfunction show(selectorsToHide) {\n    if (selectorsToHide) {\n        renderer.show(\"ucb\");\n    }\n}\n\nfunction getSelectorsToHide() {\n    if (config.elements === null) { return config.selectorsToHide; }\n\n    var url = window.deproxy ? window.deproxy(window.location).href : window.location.href;\n    var selectors = \"\";\n    for (var i = 0; i < config.elements.length; i++) {\n        if (isUrlMatched(url, config.elements[i].includedUrls, config.elements[i].excludedUrls)) {\n            selectors += \" \" + config.elements[i].selectors;\n        }\n    }\n    return selectors;\n}\n\nfunction render() {\n    renderCss();\n    renderJs();\n    campaign.events.trigger(\"lastRequest\");\n\n    var campaignName = campaign.getName();\n    window.MMExperience = window.MMExperience || {};\n    if(!window.MMExperience[campaignName]){\n        window.MMExperience[campaignName] = campaign.getExperience();\n    }\n}\n\nfunction renderJs() {\n    var elementsToRender = campaign.getElements();\n    for (var i in elementsToRender) {\n        if (elementsToRender.hasOwnProperty(i)) {\n            var element = elementsToRender[i];\n            renderer.runVariantJs(element);\n        }\n    }\n}\n\nfunction renderCss() {\n    var styles = campaign.getStyles();\n    if (styles.length) {\n        dom.addCss(styles);\n    }\n}\n\nfunction isVisitorQualified() {\n    if (window.isCampaignDesignMode) {\n        return true;\n    }\n    var rules = campaign.scope.qualificationRules || [];\n    var results = [];\n    for (var i = 0; i < rules.length; i++) {\n        var result = rules[i]();\n        if (typeof result.then !== \"function\") {\n            result = Deferred()[result ? \"resolve\" : \"reject\"]().promise();\n        }\n        results.push(result);\n    }\n    return when.apply(this, results);\n}\n\nfunction isUrlMatched(url, includedUrls, excludedUrls) {\n    var isIncluded = isMasksMatch(url, includedUrls);\n    var isExcluded = isMasksMatch(url, excludedUrls);\n    return isIncluded && !isExcluded;\n}\n\nfunction isMasksMatch(url, masks) {\n    if (!url) {\n        return false;\n    }\n    url = url.toLowerCase();\n    var matchedMasks = 0;\n\n    for (var i = 0; i < masks.length; i++) {\n        var mask = masks[i].toLowerCase();\n        if (isMaskMatch(url, window.deproxy({\n                href: mask\n            }).href)) {\n            matchedMasks = matchedMasks + 1;\n        }\n    };\n    return matchedMasks > 0;\n}\n\nfunction isMaskMatch(url, originalMask) {\n    var mask = \"^\";\n    var pos = 0;\n    while (originalMask.length > pos) {\n        var char = originalMask[pos];\n        if (char == \"*\") {\n            mask = mask + \".*\";\n            pos = pos + 1;\n        } else if (char == \"(\") {\n            var posClosing = originalMask.indexOf(\")\", pos + 1);\n            var posNextOpening = originalMask.indexOf(\"(\", pos + 1);\n            if (posClosing > pos && (posNextOpening < 0 || posClosing < posNextOpening)) {\n                mask = mask + \".*\";\n                pos = posClosing + 1;\n            } else {\n                return false;\n            }\n        } else {\n            mask = mask + char;\n            pos = pos + 1;\n        }\n    }\n    mask = mask + \"$\";\n    mask = mask.replace(\"?\", \"\\?\");\n    var r = new RegExp(mask);\n    return r.test(url);\n}","Order":5999,"HighLevelApiVersion":"1.23"},{"Name":"Actions","Type":"script","Attrs":{"type":"text/javascript"},"Data":"const defaultSelector = \"#main-content > div > div > div > div > div.detailView.ng-scope > div > div > div > div.policy-summary-table > div.section.policy-menu > a:nth-child(1)\"\nconst variantSelector = \"#modifyVehicle\"\n\ncampaign.events.on(\"urlChange\", attachListeners)\n\nfunction attachListeners() {\n      if (window.location.href.indexOf(\"selfservice.travelers.com/#/policies\") === -1) return\n\n      when(function() {\n          return document.querySelector(defaultSelector)\n      }).done(function() {\n        if (document.querySelector(defaultSelector)?.className.indexOf(\"mm_attached\") < 0){\n            document.querySelector(defaultSelector).addEventListener(\"click\", function () {\n                actions.send(\"T043_Update_Policy\", 1, \"default\")\n            }, true)\n            document.querySelector(defaultSelector).className += \" mm_attached\"\n          }\n          return;\n      })\n      when(function() {\n          return document.querySelector(variantSelector)\n      }).done(function() {\n        if (document.querySelector(variantSelector)?.className.indexOf(\"mm_attached\") < 0) {\n            document.querySelector(variantSelector).addEventListener(\"click\", function () {\n                actions.send(\"T043_Update_Policy\", 1, \"variant\")\n            }, true)\n            document.querySelector(variantSelector).className += \" mm_attached\"\n          }\n          return;\n      })\n      when(function() {\n          return document.querySelector(\"#modifyDriver\")\n      }).done(function() {\n          if (document.querySelector(\"#modifyDriver\")?.className.indexOf(\"mm_attached\") < 0) {\n              document.querySelector(\"#modifyDriver\").addEventListener(\"click\", function () {\n                  actions.send(\"T043_Update_Driver\", 1, \"\")\n              }, true)\n              document.querySelector(\"#modifyDriver\").className += \" mm_attached\"\n            }\n            return;\n      })\n}\nattachListeners()\n","Order":5000,"HighLevelApiVersion":"1.23"},{"Name":"C859546514","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*configuration block begin*/\nvar config = {\n\t\"actionName\": \"T043_Update_Driver\",\n\t\"value\": 1,\n\t\"attr\": \"\",\n\t\"urls\": {\n\t\t\"includedUrls\": [],\n\t\t\"excludedUrls\": []\n\t}\n};\n/*configuration block end*/\n\n// actions.set(config.actionName, config.value, config.attr).send();","Order":4000,"HighLevelApiVersion":"1.23"}],"Elements":[],"Recommendations":[]},{"Name":"T46_MO_myT_PTDL_AB","Type":"ABnMVT","CSName":"","HighLevelApiVersion":"1.23","PagePrefix":"MDc2NTYx","Scripts":[{"Name":"Rendering","Type":"script","Attrs":{"type":"text/javascript"},"Data":"var config = {\n    \"selectorsToHide\": null,\n    \"useSecondRequest\": true,\n    \"elements\": [\n        {\n            \"includedUrls\": [\n                \"https://selfservice.travelers.com/#/policytodolist\",\n                \"https://selfservice.travelers.com/#/policytodolist#*\",\n                \"https://selfservice.travelers.com/#/policytodolist?*\"\n            ],\n            \"excludedUrls\": [],\n            \"selectors\": \"#close-button, #btnAgreeToGoAllPaperless, btnAgreeToGoPaperlessAndConsent, body, #linkChangeEdeliveryLater, #ptdl-campaign-c, #btnAgreeToGoPaperlessAndConsent { visibility: hidden !important }\",\n            \"id\": 182214\n        }\n    ]\n};\n\nif (config.useSecondRequest) {\n    activateCampaign();\n} else {\n    render();\n}\n\ncampaign.events.on(\"urlChange\", activateCampaign);\n\nfunction activateCampaign() {\n    if (isRenderRequired()) {\n        var selectorsToHide = getSelectorsToHide();\n        hide(selectorsToHide);\n        when(isVisitorQualified())\n            .done(function () {\n                renderer.getContent().always(function () {\n                    render();\n                    show(selectorsToHide);\n                });\n            })\n            .fail(function () {\n                show(selectorsToHide);\n            });\n    }\n}\n\nfunction isRenderRequired() {\n    if (config.elements === null) { return true; }\n\n    var url = window.deproxy ? window.deproxy(window.location).href : window.location.href;\n    for (var i = 0; i < config.elements.length; i++) {\n        if (isUrlMatched(url, config.elements[i].includedUrls, config.elements[i].excludedUrls)) {\n            return true;\n        }\n    }\n    return false;\n}\n\nfunction hide(selectorsToHide) {\n    if (selectorsToHide) {\n        renderer.hide(selectorsToHide, \"ucb\");\n    }\n}\n\nfunction show(selectorsToHide) {\n    if (selectorsToHide) {\n        renderer.show(\"ucb\");\n    }\n}\n\nfunction getSelectorsToHide() {\n    if (config.elements === null) { return config.selectorsToHide; }\n\n    var url = window.deproxy ? window.deproxy(window.location).href : window.location.href;\n    var selectors = \"\";\n    for (var i = 0; i < config.elements.length; i++) {\n        if (isUrlMatched(url, config.elements[i].includedUrls, config.elements[i].excludedUrls)) {\n            selectors += \" \" + config.elements[i].selectors;\n        }\n    }\n    return selectors;\n}\n\nfunction render() {\n    renderCss();\n    renderJs();\n    campaign.events.trigger(\"lastRequest\");\n\n    var campaignName = campaign.getName();\n    window.MMExperience = window.MMExperience || {};\n    if(!window.MMExperience[campaignName]){\n        window.MMExperience[campaignName] = campaign.getExperience();\n    }\n}\n\nfunction renderJs() {\n    var elementsToRender = campaign.getElements();\n    for (var i in elementsToRender) {\n        if (elementsToRender.hasOwnProperty(i)) {\n            var element = elementsToRender[i];\n            renderer.runVariantJs(element);\n        }\n    }\n}\n\nfunction renderCss() {\n    var styles = campaign.getStyles();\n    if (styles.length) {\n        dom.addCss(styles);\n    }\n}\n\nfunction isVisitorQualified() {\n    if (window.isCampaignDesignMode) {\n        return true;\n    }\n    var rules = campaign.scope.qualificationRules || [];\n    var results = [];\n    for (var i = 0; i < rules.length; i++) {\n        var result = rules[i]();\n        if (typeof result.then !== \"function\") {\n            result = Deferred()[result ? \"resolve\" : \"reject\"]().promise();\n        }\n        results.push(result);\n    }\n    return when.apply(this, results);\n}\n\nfunction isUrlMatched(url, includedUrls, excludedUrls) {\n    var isIncluded = isMasksMatch(url, includedUrls);\n    var isExcluded = isMasksMatch(url, excludedUrls);\n    return isIncluded && !isExcluded;\n}\n\nfunction isMasksMatch(url, masks) {\n    if (!url) {\n        return false;\n    }\n    url = url.toLowerCase();\n    var matchedMasks = 0;\n\n    for (var i = 0; i < masks.length; i++) {\n        var mask = masks[i].toLowerCase();\n        if (isMaskMatch(url, window.deproxy({\n                href: mask\n            }).href)) {\n            matchedMasks = matchedMasks + 1;\n        }\n    };\n    return matchedMasks > 0;\n}\n\nfunction isMaskMatch(url, originalMask) {\n    var mask = \"^\";\n    var pos = 0;\n    while (originalMask.length > pos) {\n        var char = originalMask[pos];\n        if (char == \"*\") {\n            mask = mask + \".*\";\n            pos = pos + 1;\n        } else if (char == \"(\") {\n            var posClosing = originalMask.indexOf(\")\", pos + 1);\n            var posNextOpening = originalMask.indexOf(\"(\", pos + 1);\n            if (posClosing > pos && (posNextOpening < 0 || posClosing < posNextOpening)) {\n                mask = mask + \".*\";\n                pos = posClosing + 1;\n            } else {\n                return false;\n            }\n        } else {\n            mask = mask + char;\n            pos = pos + 1;\n        }\n    }\n    mask = mask + \"$\";\n    mask = mask.replace(\"?\", \"\\?\");\n    var r = new RegExp(mask);\n    return r.test(url);\n}","Order":5999,"HighLevelApiVersion":"1.23"},{"Name":"C1530340282","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*configuration block begin*/\nvar config = {\n\t\"actionName\": \"T46_Enrollment_Click\",\n\t\"value\": 1,\n\t\"attr\": \"\"\n};\n/*configuration block end*/\n\n//actions.set(config.actionName, config.value, config.attr).send();","Order":4000,"HighLevelApiVersion":"1.23"},{"Name":"Routing","Type":"script","Attrs":{"type":"text/javascript"},"Data":"(function () {\n    if(!window.isCampaignDesignMode) {\n       window.deproxy = function(location) {\n           return location;\n       }\n    }\n    var lastUrl = window.deproxy(window.location.href);\n\n    function forceTriggerRouteChange(url) {\n        lastUrl = url;\n        campaign.events.trigger('urlChange', {\n            url: url\n        });\n    }\n\n    function triggerRouteChange(url) {\n        if (url && lastUrl !== url) {\n            forceTriggerRouteChange(url);\n        }\n    }\n\n    function createRouteChange(fn) {\n        return function () {\n            var result = fn.apply(this, arguments);\n            triggerRouteChange(window.deproxy(window.location.href));\n            return result;\n        };\n    }\n\n    history.pushState = createRouteChange(history.pushState);\n\n    history.replaceState = createRouteChange(history.replaceState);\n\n    window.addEventListener('popstate', function (event) {\n        triggerRouteChange(window.deproxy(window.location.href));\n    });\n\n    window.addEventListener('hashchange', function (event) {\n        triggerRouteChange(window.deproxy(window.location.href));\n    });\n})();","Order":5000,"HighLevelApiVersion":"1.23"},{"Name":"C1510491910","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*configuration block begin*/\nvar config = {\n\t\"actionName\": \"T46_Snooze_Clicks\",\n\t\"value\": 1,\n\t\"attr\": \"\",\n\t\"urls\": {\n\t\t\"includedUrls\": [],\n\t\t\"excludedUrls\": []\n\t}\n};\n/*configuration block end*/\n\n// actions.set(config.actionName, config.value, config.attr).send();","Order":4000,"HighLevelApiVersion":"1.23"},{"Name":"C1204187312","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*configuration block begin*/\nvar config = {\n\t\"actionName\": \"T46_Close_Clicks\",\n\t\"value\": 1,\n\t\"attr\": \"\",\n\t\"urls\": {\n\t\t\"includedUrls\": [],\n\t\t\"excludedUrls\": []\n\t}\n};\n/*configuration block end*/\n\n// actions.set(config.actionName, config.value, config.attr).send();","Order":4000,"HighLevelApiVersion":"1.23"},{"Name":"Actions","Type":"script","Attrs":{"type":"text/javascript"},"Data":"campaign.events.on(\"urlChange\", attachListeners)\n\nfunction attachListeners() {\n    if (window.location.href.indexOf(\"selfservice.travelers.com/#/policyToDoList\") === -1) return\n\n    when(function() {\n        return document.querySelector(\"#close-button\")\n    }).done(function() {\n        if (document.querySelector(\"#close-button\").className.indexOf(\"mm_attached\") > -1) return\n        document.querySelector(\"#close-button\").addEventListener(\"click\", function() {\n            actions.send(\"T46_Close_Clicks\", 1, \"\")\n        })\n        document.querySelector(\"#close-button\").className += \" mm_attached\"\n    })\n\n    when(function() {\n        return document.querySelector(\"#btnAgreeToGoPaperlessAndConsent\")\n    }).done(function() {\n        if (document.querySelector(\"#btnAgreeToGoPaperlessAndConsent\").className.indexOf(\"mm_attached\") > -1) return\n        document.querySelector(\"#btnAgreeToGoPaperlessAndConsent\").addEventListener(\"click\", function() {\n            actions.send(\"T46_Enrollment_Click\", 1, \"\")\n        })\n        document.querySelector(\"#btnAgreeToGoPaperlessAndConsent\").className += \" mm_attached\"\n    })\n    when(function() {\n        return document.querySelector(\"#btnAgreeToGoAllPaperless\")\n    }).done(function() {\n        if (document.querySelector(\"#btnAgreeToGoAllPaperless\").className.indexOf(\"mm_attached\") > -1) return\n        document.querySelector(\"#btnAgreeToGoAllPaperless\").addEventListener(\"click\", function() {\n            actions.send(\"T46_Enrollment_Click\", 1, \"\")\n        })\n        document.querySelector(\"#btnAgreeToGoAllPaperless\").className += \" mm_attached\"\n    })\n    when(function() {\n        return document.querySelector(\"#linkChangeEdeliveryLater\")\n    }).done(function() {\n        if (document.querySelector(\"#linkChangeEdeliveryLater\").className.indexOf(\"mm_attached\") > -1) return\n        document.querySelector(\"#linkChangeEdeliveryLater\").addEventListener(\"click\", function() {\n            actions.send(\"T46_Snooze_Clicks\", 1, \"\")\n        })\n        document.querySelector(\"#linkChangeEdeliveryLater\").className += \" mm_attached\"\n    })\n}\nattachListeners()\n","Order":5000,"HighLevelApiVersion":"1.23"}],"Elements":[],"Recommendations":[]},{"Name":"T050_ENT_EasyFix_CTA","Type":"ABnMVT","CSName":"","HighLevelApiVersion":"1.23","PagePrefix":"MDgyMjIy","Scripts":[{"Name":"Rendering","Type":"script","Attrs":{"type":"text/javascript"},"Data":"var config = {\n    \"selectorsToHide\": null,\n    \"useSecondRequest\": true,\n    \"elements\": [\n        {\n            \"includedUrls\": [\n                \"https://www.easyfix.io/\",\n                \"https://www.easyfix.io/?*\",\n                \"https://www.easyfix.io/#*\"\n            ],\n            \"excludedUrls\": [],\n            \"selectors\": \"\",\n            \"id\": 197101\n        }\n    ]\n};\n\nif (config.useSecondRequest) {\n    activateCampaign();\n} else {\n    render();\n}\n\ncampaign.events.on(\"urlChange\", activateCampaign);\n\nfunction activateCampaign() {\n    if (isRenderRequired()) {\n        var selectorsToHide = getSelectorsToHide();\n        hide(selectorsToHide);\n        when(isVisitorQualified())\n            .done(function () {\n                renderer.getContent().always(function () {\n                    render();\n                    show(selectorsToHide);\n                });\n            })\n            .fail(function () {\n                show(selectorsToHide);\n            });\n    }\n}\n\nfunction isRenderRequired() {\n    if (config.elements === null) { return true; }\n\n    var url = window.deproxy ? window.deproxy(window.location).href : window.location.href;\n    for (var i = 0; i < config.elements.length; i++) {\n        if (isUrlMatched(url, config.elements[i].includedUrls, config.elements[i].excludedUrls)) {\n            return true;\n        }\n    }\n    return false;\n}\n\nfunction hide(selectorsToHide) {\n    if (selectorsToHide) {\n        renderer.hide(selectorsToHide, \"ucb\");\n    }\n}\n\nfunction show(selectorsToHide) {\n    if (selectorsToHide) {\n        renderer.show(\"ucb\");\n    }\n}\n\nfunction getSelectorsToHide() {\n    if (config.elements === null) { return config.selectorsToHide; }\n\n    var url = window.deproxy ? window.deproxy(window.location).href : window.location.href;\n    var selectors = \"\";\n    for (var i = 0; i < config.elements.length; i++) {\n        if (isUrlMatched(url, config.elements[i].includedUrls, config.elements[i].excludedUrls)) {\n            selectors += \" \" + config.elements[i].selectors;\n        }\n    }\n    return selectors;\n}\n\nfunction render() {\n    renderCss();\n    renderJs();\n    campaign.events.trigger(\"lastRequest\");\n\n    var campaignName = campaign.getName();\n    window.MMExperience = window.MMExperience || {};\n    if(!window.MMExperience[campaignName]){\n        window.MMExperience[campaignName] = campaign.getExperience();\n    }\n}\n\nfunction renderJs() {\n    var elementsToRender = campaign.getElements();\n    for (var i in elementsToRender) {\n        if (elementsToRender.hasOwnProperty(i)) {\n            var element = elementsToRender[i];\n            renderer.runVariantJs(element);\n        }\n    }\n}\n\nfunction renderCss() {\n    var styles = campaign.getStyles();\n    if (styles.length) {\n        dom.addCss(styles);\n    }\n}\n\nfunction isVisitorQualified() {\n    if (window.isCampaignDesignMode) {\n        return true;\n    }\n    var rules = campaign.scope.qualificationRules || [];\n    var results = [];\n    for (var i = 0; i < rules.length; i++) {\n        var result = rules[i]();\n        if (typeof result.then !== \"function\") {\n            result = Deferred()[result ? \"resolve\" : \"reject\"]().promise();\n        }\n        results.push(result);\n    }\n    return when.apply(this, results);\n}\n\nfunction isUrlMatched(url, includedUrls, excludedUrls) {\n    var isIncluded = isMasksMatch(url, includedUrls);\n    var isExcluded = isMasksMatch(url, excludedUrls);\n    return isIncluded && !isExcluded;\n}\n\nfunction isMasksMatch(url, masks) {\n    if (!url) {\n        return false;\n    }\n    url = url.toLowerCase();\n    var matchedMasks = 0;\n\n    for (var i = 0; i < masks.length; i++) {\n        var mask = masks[i].toLowerCase();\n        if (isMaskMatch(url, window.deproxy({\n                href: mask\n            }).href)) {\n            matchedMasks = matchedMasks + 1;\n        }\n    };\n    return matchedMasks > 0;\n}\n\nfunction isMaskMatch(url, originalMask) {\n    var mask = \"^\";\n    var pos = 0;\n    while (originalMask.length > pos) {\n        var char = originalMask[pos];\n        if (char == \"*\") {\n            mask = mask + \".*\";\n            pos = pos + 1;\n        } else if (char == \"(\") {\n            var posClosing = originalMask.indexOf(\")\", pos + 1);\n            var posNextOpening = originalMask.indexOf(\"(\", pos + 1);\n            if (posClosing > pos && (posNextOpening < 0 || posClosing < posNextOpening)) {\n                mask = mask + \".*\";\n                pos = posClosing + 1;\n            } else {\n                return false;\n            }\n        } else {\n            mask = mask + char;\n            pos = pos + 1;\n        }\n    }\n    mask = mask + \"$\";\n    mask = mask.replace(\"?\", \"\\?\");\n    var r = new RegExp(mask);\n    return r.test(url);\n}","Order":5999,"HighLevelApiVersion":"1.23"},{"Name":"Routing","Type":"script","Attrs":{"type":"text/javascript"},"Data":"(function () {\n    if(!window.isCampaignDesignMode) {\n       window.deproxy = function(location) {\n           return location;\n       }\n    }\n    var lastUrl = window.deproxy(window.location.href);\n\n    function forceTriggerRouteChange(url) {\n        lastUrl = url;\n        campaign.events.trigger('urlChange', {\n            url: url\n        });\n    }\n\n    function triggerRouteChange(url) {\n        if (url && lastUrl !== url) {\n            forceTriggerRouteChange(url);\n        }\n    }\n\n    function createRouteChange(fn) {\n        return function () {\n            var result = fn.apply(this, arguments);\n            triggerRouteChange(window.deproxy(window.location.href));\n            return result;\n        };\n    }\n\n    history.pushState = createRouteChange(history.pushState);\n\n    history.replaceState = createRouteChange(history.replaceState);\n\n    window.addEventListener('popstate', function (event) {\n        triggerRouteChange(window.deproxy(window.location.href));\n    });\n\n    window.addEventListener('hashchange', function (event) {\n        triggerRouteChange(window.deproxy(window.location.href));\n    });\n})();","Order":5000,"HighLevelApiVersion":"1.23"},{"Name":"C1952516514","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*configuration block begin*/\nvar config = {\n\t\"actionName\": \"T050_CTA_Clicks\",\n\t\"value\": 1,\n\t\"attr\": \"\",\n\t\"urls\": {\n\t\t\"includedUrls\": [],\n\t\t\"excludedUrls\": []\n\t}\n};\n/*configuration block end*/\n\n// actions.set(config.actionName, config.value, config.attr).send();","Order":4000,"HighLevelApiVersion":"1.23"},{"Name":"Actions","Type":"script","Attrs":{"type":"text/javascript"},"Data":"attachActions()\ncampaign.events.on(\"urlChange\", attachActions)\n\nfunction attachActions() {\n    if (window.location.pathname !== \"/\") return\n\n    // Mobile actions\n    onClick(\"#comp-kyotcoan > a\", \"Top Nav\")\n    onClick(\"#comp-l1z846pl > a\", \"Hero\")\n    onClick(\"#comp-kp7b7q5e > a\", \"How Can we Help\")\n    onClick(\"#comp-kp7dcct8 > a\", \"Our Pros\")\n    onClick(\"#comp-kp7eav8b > a\", \"Footer\")\n\n    // Desktop actions\n    onClick(\"#comp-kp7ejlcs > a\", \"Top Nav\")\n    onClick(\"#comp-kp7b7q5e > a\", \"How Can we Help\")\n    onClick(\"#comp-kp7dcct8 > a\", \"Our Pros\")\n    onClick(\"#comp-kp7eav8b > a\", \"Footer\")\n\n    // Handle the disappearing CTA in the rotating hero\n    var heroMutObs = new MutationObserver(function() {\n        var el = document.querySelector(\"#comp-kwmgyn41 a[aria-label='Chat with a pro']:not(.mm_edit)\")\n        if (!el) return\n        el.addEventListener(\"click\", function () {\n            actions.send(\"T050_CTA_Clicks\", 1, \"Hero\")\n        })\n        el.classList.add(\"mm_edit\")\n    })\n\n    var config = { attributes: true, childList: true, subtree: true }\n    when(function() {\n        return document.querySelector(\"#comp-kwmgyn41 > div:not(.mm_obs_action)\")\n    }, function () {\n        return document.querySelector(\"#comp-kwmgyn41 > div\")\n    }).done(function() {\n        heroMutObs.observe(document.querySelector(\"#comp-kwmgyn41 > div:not(.mm_obs_action)\"), config)\n        document.querySelector(\"#comp-kwmgyn41 > div\").classList.add(\"mm_obs_action\")\n    })\n}\n\n// Wait for element, quit if listener already attached\nfunction onClick(sel, attr) {\n    when(function() {\n        return document.querySelector(sel + \":not(.mm_obs_action)\")\n    }, function() {\n        return document.querySelector(sel)\n    }).done(function() {\n        document.querySelector(sel + \":not(.mm_obs_action)\").addEventListener(\"click\", function () {\n            actions.send(\"T050_CTA_Clicks\", 1, attr)\n        })\n        document.querySelector(sel).classList.add(\"mm_obs_action\")\n    })\n}\n","Order":5000,"HighLevelApiVersion":"1.23"}],"Elements":[],"Recommendations":[]}],"MRRules":[],"PersistData":[{"Name":"srv","IsGlobal":false,"Value":"prodiadcgus01","Expiration":365},{"Name":"bid","IsGlobal":false,"Value":"prodiadcgus01","Expiration":0.00694},{"Name":"pd","IsGlobal":false,"Value":"N9zfYUgJrjCk-qmJuuaDtQLUjCalVgDIZJLIDplLBb0=|AQAAAApDH4sIAAAAAAAEAGNh0D58Vp1T7BMjA3NmYgqjEAOjE4Ou0TkpRoaUki0SvD63PGA0AxD8hwIGNpfMotTkEkZOMUaQOBjAJEE0AwMzg70mI8MkQW1Ghj49R0aGZUA1jK4AUcPY9HAAAAA=","Expiration":365}],"SiteInfo":[{"Url":"travelers.com","ID":389}],"SystemData":[{"Version":"1.0","RequestId":1,"ResponseId":1}],"GenInfo":{},"ServerAttributes":{"d_account_type":"","d_personalize":""},"Iteration":"ar-KytUSHAE-D5voJGu5J58AuD4","Packages":["mmpackage-1.23.js"]});