mmRequestCallbacks[1]({"Scripts":[{"Name":"Plugin_IntModule","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*!\n *\tintegrations-module 0.9.7\n *\t-- Maxymiser Integrations Module provides a standardized approach to develop and deploy 3rd party integrations.\n *\t-- Built on 2017-02-02\n */\n!function(){function a(){function a(a,b){function i(b){return a=a||\"\",g(\"Integrations.register(\"+a+\"): \"+(b||\"\").toString())}var j,k;return b=e(b)?b:{},(a=(\"string\"==typeof a?a:\"\").toLowerCase().replace(/^\\s+|\\s+$/g,\"\"))?l[a]?(i(m.errors.alreadyRegistered),null):(b.name=a,j=h(b,{}),k={validate:c(j.validate)?j.validate:f,check:c(j.check)?j.check:f,interval:d(j.interval)?j.interval:50,timeout:d(j.timeout)?j.timeout:2e3,exec:c(j.exec)?j.exec:f,options:j},j=h(k,j),l[a]=j):(i(m.errors.missingRegisterName),null)}function i(a,b){b=e(b)?b:{};var c,d,f,g,i=new Deferred;if(a=(a||\"\").toLowerCase(),i.integrationName=a,!l[a])return m.reject(i,m.errors.unregisteredIntegration);if(c=h(l[a],{}),c=h(b,c),(f=c.validate(c))!==!0)return m.reject(i,f);if(d=c.campaign,(g=m.validateCampaignRequired(c,i))!==!0)return m.reject(i,g);if(c.isProduction=m.isProduction(),c.attributeMapRequired){var j=m.isValidAttributeMap(c.attributeMap);if(j!==!0)return m.reject(i,j)}return\"pending\"!==i.state()?i.promise():(\"never\"!==c.timeout&&m.setFailTimeout(c,i),m.check(c).then(function(a){return m.exec(c)}).then(function(a){return c.result=a,m.resolve(i,c)}).fail(function(a){return m.reject(i,a)}),i.promise())}function j(a,b){a=(a||\"\").toLowerCase();var c=l[a];return!!c&&(b=e(b)?b:{},l[a]=h(b,c),this)}function k(a){if(!a)return l;var b=(a||\"\").toLowerCase();return l[b]}var l={},m={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 a(a){for(var c,d={},e=\"\",f=0;c=b(a+f++);)e+=c;e=decodeURIComponent(e);try{d=JSON.parse(e)}catch(g){}return d}function b(a){var b=new RegExp(\"(?:^|; )\"+encodeURIComponent(a).replace(/([.$?*|{}()\\[\\]\\\\\\/+^])/g,\"\\\\$1\")+\"=([^;]+)\"),c=(document.cookie.match(b)||[\"\",\"\"])[1];return c}var c=mmsystem.getConfig().storageType;if(\"cookie-key-value\"===c||\"cookie-key-value-secure\"===c)return!/mmapi.p.cfgid/i.test(document.cookie)&&!/mmapi.p.un/i.test(document.cookie);for(var d=a(\"mmcore.store.p.\")||{},e=a(\"mmcore.store.s.\")||{},f=a(\"mmapi.store.p.\")||{},g=a(\"mmapi.store.s.\")||{},h=[d,e,f,g],i={\"mmparams.p\":1,\"mmparams.d\":1},j={un:1,cfgID:1,pruh:1},k=h.length;k--;){var l=h[k];for(var m in i||{})for(var n in j||{})if((l[m]||{})[n])return!1}return!0},isValidIntegrationName:function(a){return\"string\"==typeof a&&/^\\w+/.test(a)},isCampaignScope:function(a){return!!(e(a)&&a.getName&&a.getExperience)},getCampaignExperience:function(a){var b={};return m.isCampaignScope(a)&&(b=a.getExperience&&a.getExperience()||{}),!!Object.keys(b)&&m.formatCampaignExperience(b)},formatCampaignExperience:function(a){a=e(a)?a:{};var b=[];for(var c in a)b.push(c+\":\"+a[c]);return b.join(\"|\")},getData:function(a){a=(a||\"\").toLowerCase();var b=visitor.getData(\"Integrations\");return b=e(b)?b:{},a&&(b[a]=b[a]||{}),b},setRedirectData:function(a,b){if(a=(a||\"\").toLowerCase(),!m.isCampaignScope(b))return!1;var c=m.getData(a),d=b.getName();return c[a][d]=c[a][d]||{},c[a][d].redirectData=b.getExperience(),visitor.setData(\"Integrations\",c,m.HALFHOUR),!0},removeRedirectData:function(a,b){if(a=(a||\"\").toLowerCase(),!m.isCampaignScope(b))return!1;var c=m.getData(a),d=b.getName();return c[a][d]=c[a][d]||{},c[a][d].redirectData=null,visitor.setData(\"Integrations\",c,m.HALFHOUR),!0},getRedirectData:function(a,b){if(a=(a||\"\").toLowerCase(),!m.isCampaignScope(b))return!1;var c=m.getData(a),d=b.getName();if(c[a][d]=c[a][d]||{},!c[a]||!c[a][d])return c[a]=c[a]||{},c[a][d]=c[a][d]||{},c[a][d].redirectData=null,visitor.setData(\"Integrations\",c,m.HALFHOUR),!1;for(var e in c[a])if(e===d)return c[a][e].redirectData;return!1},getSessionDate:function(a,b){var c=m.getData(a),d=c[a][b.getName()]||{},e=d.sessionDate;return e},setSessionDate:function(a,b){var c=m.getData(a),d=b.getName();c[a][d]=c[a][d]||{},c[a][d].sessionDate=(new Date).getTime(),visitor.setData(\"Integrations\",c,m.HALFHOUR)},resolve:function(a,b){return a.resolve(b),a.promise()},reject:function(a,b){var c=a.integrationName||\"unknown name\";return b=b||\"unknown reason\",g(\"Integration [\"+c+\"]: \"+b.toString()),a.reject(b),a.promise()},validateCampaignRequired:function(a,b){if(!a.campaignRequired)return a.oncePerSession?\"campaign option is required when using the oncePerSession option\":!a.redirect||\"campaign option is required when using the redirect option\";var c=a.campaign,d=\"\",e=m.isCampaignScope(c);if(e!==!0)return m.errors.campaignRequired;if(a.campaignExperience=m.getCampaignExperience(c),a.campaignExperience===!1&&!a.redirect)return m.errors.noCampaignExperience(a.name);if(a.oncePerSession&&!a.redirect&&a.oncePerSession&&(d=m.getSessionDate(a.name,c),m.setSessionDate(a.name,c),(new Date).getTime()-m.HALFHOUR>d))return g(\"Integration [\"+a.name+\"]: data has already been sent this session\"),m.resolve(b,a),!0;if(a.redirect){var f=function(){var a=c.getElements();for(var b in a)return!0;return!1}();return f?c.isDefault()?!(a.oncePerSession&&(d=m.getSessionDate(a.name,c),m.setSessionDate(a.name,c),(new Date).getTime()-m.HALFHOUR>d))||(g(\"Integration [\"+a.name+\"]: data has already been sent this session\"),m.resolve(b,a),!0):m.setRedirectData(a.name,c)?(m.resolve(b,a),!0):m.errors.failedToSaveRedirectData:a.oncePerSession&&(d=m.getSessionDate(a.name,c),m.setSessionDate(a.name,c),(new Date).getTime()-m.HALFHOUR>d)?(g(\"Integration [\"+a.name+\"]: data has already been sent this session\"),m.resolve(b,a),!0):(a.campaignExperience=m.getRedirectData(a.name,c),a.campaignExperience=m.formatCampaignExperience(a.campaignExperience),m.removeRedirectData(a.name,c),!!a.campaignExperience||m.errors.noRedirectCampaignData)}return!0},setFailTimeout:function(a,b){!function(b){setTimeout(function(){setTimeout(function(){if(\"pending\"===b.state())return m.reject(b,\"Integration timed out after \"+a.timeout+\"ms\")},0)},a.timeout+1)}(b)},isValidAttributeMap:function(a){if(!a)return\"Missing required attributeMap parameter\";if(!e(a)||!Object.keys(a).length)return\"The attributeMap parameter is empty or not an object\";for(var b in a){var c=a[b];if(\"string\"!=typeof b||!/^[a-zA-Z]+/.test(b))return\"Invalid attribute name in the attributeMap\";if(!e(c))return\"attributeMap values must be stored in an object\";if(!Object.keys(c).length)return\"attributeMap attribute object is empty\";for(var d in c)if(!/^\\w+$/.test(d)&&\"default\"!==d)return\"Invalid attribute ID in attributeMap\"}return!0},check:function(a){var c=new Deferred,d=!1;return function e(){var f=a.check.call(this,a);return b(f)?void setTimeout(function(){f.done(function(){return c.resolve()}).fail(function(a){return c.reject(a)})},0):f?void setTimeout(function(){c.resolve()},0):void(d||setTimeout(e,a.interval))}(),setTimeout(function(){d=!0},a.timeout),c.promise()},exec:function(a){var c=new Deferred,d=a.exec.call(this,a);return b(d)?(setTimeout(function(){d.done(function(a){return c.resolve(a)}).fail(function(a){return c.reject(a)})},0),c.promise()):(d===!0?m.resolve(c,a.result):m.reject(c,d),c.promise())}};return{register:a,run:i,setDefaults:j,get:k}}function b(a){return e(a)&&c(a.then)}function c(a){return\"function\"==typeof a}function d(a){return\"number\"==typeof a&&a>0}function e(a){return\"object\"==typeof a&&!!a}function f(){return!0}function g(a){window.mm_error=window.mm_error||\"\",window.mm_error+=a+\"\\n\"}function h(a,b){a=e(a)?a:{},b=e(b)?b:{};var c={};for(var d in b)c[d]=b[d];for(var f in a)c[f]=a[f];return c}if(\"object\"==typeof modules&&\"function\"==typeof modules.define){var i={autoDefine:!0,singleton:!0};modules.define(\"Integrations\",i,a)}else modules={require:function(){return new a}}}();","Order":-100,"HighLevelApiVersion":"1.19"},{"Name":"Module_Toolbox","Type":"script","Attrs":{"type":"text/javascript"},"Data":"modules.define('Toolbox', { autoDefine: false }, function () {\n    var emptyFn = function () {};\n\n    var decorate = function (config) {\n        config.originalFunction = typeof config.originalFunction === 'function' ? config.originalFunction : emptyFn;\n        return (function (fn) {\n            return function () {\n                var result;\n                var afterCallArgs = [].slice.call(arguments);\n\n                if (typeof config.beforeOriginalCall === 'function') {\n                    config.beforeOriginalCall.apply(config.context || this, arguments);\n                }\n\n                result = fn.apply(this, arguments);\n\n                if (typeof config.afterOriginalCall === 'function') {\n                    afterCallArgs.unshift(result);\n                    config.afterOriginalCall.apply(config.context || this, afterCallArgs);\n                }\n\n                return result;\n            };\n        }(config.originalFunction));\n    };\n\n    var getQueryStringParams = function () {\n        var empty = Object.create(null);\n\n        if (!window.location.search) {\n            return empty;\n        }\n\n        return window.location.search\n            .substring(1)\n            .split('&')\n            .map(function (pair) {\n                if (pair !== '') {\n                    return pair.split('=');\n                }\n            })\n            .reduce(function (obj, pair, i, arr) {\n                obj[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n                obj.arr = arr;\n                return obj;\n            }, empty);\n    };\n\n    return {\n        decorate: decorate,\n        getQueryStringParams: getQueryStringParams,\n    };\n});","Order":-100,"HighLevelApiVersion":"1.19"},{"Name":"Plugin_ExtractPrices","Type":"script","Attrs":{"type":"text/javascript"},"Data":"site.scope.extractPrices = function (priceString) {\n    var clearPrices = [];\n\n    (priceString || '').toString().replace(/(\\d{1,3}(?:\\D?\\d{3})*(?:\\D(\\d{0,2})|))(?:\\D|$)/gm, function () {\n        var d = arguments[2];\n        var zeros = !d ? \"00\" : (d.length == 1 ? \"0\" : \"\");\n\n        clearPrices.push((arguments[1].replace(/\\D/g, \"\") + zeros) * 1);\n    });\n\n    return clearPrices;\n};","Order":-100,"HighLevelApiVersion":"1.19"},{"Name":"IM_HotJar","Type":"script","Attrs":{"type":"text/javascript"},"Data":"(function() {\n    var HotJar = {\n        version: '0.0.1',\n\n        campaignRequired: true,\n      \n        validate: function(integration){\n            return true;\n        },\n\n        check: function(integration){\n            return window.hj && typeof window.hj === 'function';\n        },\n    \n        timeout: 7000,\n      \n        exec: function(integration){\n            var mode = integration.isProduction ? 'MM_Prod_' : 'MM_QA_',\n                name = mode + integration.campaign.getName(),\n                experience = integration.campaignExperience;\n\n            var tagNames = window.tagNames || [];\n            tagNames.push('MMCampaign: ' + name);\n            tagNames.push('MMExperience: ' + experience);\n\n            hj('ready', function () {\n                hj('tagRecording', tagNames);\n            });\n\n            return true;\n        }\n    };    \n    if (typeof modules === 'object' && typeof modules.define === 'function') {\n        modules.require('Integrations').register('HotJar', HotJar);\n    }\n})();","Order":-90,"HighLevelApiVersion":"1.19"},{"Name":"IM_GA","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*!\n *\tGoogleAnalytics 1.0.9\n *\t-- Maxymiser Google Analytics (classic) integration\n *\t-- Built on 2016-05-17\n */\n!function(){var a={version:\"1.0.9\",campaignRequired:!0,timeout:7e3,validate:function(a){return a.slot?a.account&&!b.isAccount(a.account)?\"Invalid Google Analytics account ID\":!0:\"Missing Google Analytics Slot\"},check:function(a){var b=window[a.gaVariable||\"_gaq\"];return!(!b||!b.push)},exec:function(a){return b.send(a)}},b={isAccount:function(a){return a&&/^UA\\-\\d{4,}\\-\\d{1,3}$/.test(a.toString())},send:function(a){var c=a.isProduction?\"MM_Prod\":\"MM_Sand\",d=window[a.gaVariable||\"_gaq\"],e=a.variableScope||1,f=\"\",g=\"\",h=\"\";return a.campaignExperience=a.campaign.getName()+\"=\"+a.campaignExperience,a.persist&&(a.campaignExperience=b.getPersist(a).campaignInfo),a.account&&(f=\"mm_\"+a.account+\".\",d.push([f+\"_setAccount\",a.account])),g=[f+\"_setCustomVar\",+a.slot,c,a.campaignExperience,e],h=[f+\"_trackEvent\",c,a.campaignExperience,a.campaignExperience,void 0,!0],d.push(g,h),!0},getPersist:function(a){var b={maxDataSize:120,cookieName:\"mm-if-site-persist-ga-\"+a.slot},c={campaign:a.campaign.getName(),campaignInfo:a.campaignExperience},d=function(a){var b;for(b=a.length;b--;)if(new RegExp(\"(\"+c.campaign+\")=\").test(a[b]))return b;return-1},e=function(){var a=f(b.cookieName),e=a?JSON.parse(a):[],g=d(e);return-1!==g?e[g]=c.campaignInfo:e.push(c.campaignInfo),e.join(\"&\")},f=function(){return cookies.get(b.cookieName)},g=function(a){var c=a.split(\"&\");cookies.set(b.cookieName,JSON.stringify(c),{expires:365})},h=function(a){for(var c=a.split(\"&\");;){if(!(c.join(\"&\").length>=b.maxDataSize))return c.join(\"&\");c.shift()}},i=function(a){c.campaignInfo=a};return function(){var a=e();return a=h(a),i(a),g(a),c}()}};\"object\"==typeof modules&&\"function\"==typeof modules.define&&modules.require(\"Integrations\").register(\"Google Analytics\",a)}();","Order":-90,"HighLevelApiVersion":"1.19"},{"Name":"IM_GU","Type":"script","Attrs":{"type":"text/javascript"},"Data":"/*!\n *\tGoogleUniversal 1.0.5\n *\t-- Maxymiser Google Universal Analytics integration\n *\t-- Built on 2016-05-09\n */\n!function(){var a={version:\"1.0.5\",campaignRequired:!0,validate:function(a){return a.dimension?b.isDimension(a.dimension)?!0:b.errors.invalidDimension(a.dimension):b.errors.missingDimension},check:function(a){var b=window[a.gaVariable]||window[window.GoogleAnalyticsObject]||window.ga;return b&&\"function\"==typeof b.getAll},timeout:7e3,exec:function(a){return b.send(a)}},b={errors:{missingAccount:\"Missing Google Universal Account Number\",invalidAccount:function(a){return\"Invalid Google Universal Account Number provided [\"+a.toString()+\"]\"},missingDimension:\"Missing Google Universal Dimension\",invalidDimension:function(a){return\"Invalid Google Universal Dimension provided [\"+a.toString()+\"]\"}},send:function(a){var c=a.isProduction?\"MM_Prod\":\"MM_Sand\",d=window[a.gaVariable]||window[window.GoogleAnalyticsObject]||window.ga,e=\"\";if(a.campaignExperience=a.campaign.getName()+\"=\"+a.campaignExperience,a.persist&&(a.campaignExperience=b.getPersist(a).campaignInfo),a.account)e=\"mm_\"+a.account.replace(/\\W/g,\"\"),d(\"create\",a.account,\"auto\",{name:e}),d(e+\".set\",\"dimension\"+a.dimension,a.campaignExperience),d(e+\".send\",\"event\",c,a.campaignExperience,a.campaignExperience,{nonInteraction:1});else{for(var f,g=d.getAll(),h=g.length;h--;)f=g[h].get(\"name\"),/^gtm/.test(f)&&(e=g[h].get(\"name\")+\".\");d(e+\"set\",\"dimension\"+a.dimension,a.campaignExperience),d(e+\"send\",\"event\",c,a.campaignExperience,a.campaignExperience,{nonInteraction:1})}return!0},getPersist:function(a){var b={maxDataSize:150,cookieName:\"mm-if-site-persist-ua-\"+a.dimension},c={campaign:a.campaign.getName(),campaignInfo:a.campaignExperience},d=function(a){var b;for(b=a.length;b--;)if(new RegExp(\"(\"+c.campaign+\")=\").test(a[b]))return b;return-1},e=function(){var a=f(b.cookieName),e=a?JSON.parse(a):[],g=d(e);return-1!==g?e[g]=c.campaignInfo:e.push(c.campaignInfo),e.join(\"&\")},f=function(){return cookies.get(b.cookieName)},g=function(a){var c=a.split(\"&\");cookies.set(b.cookieName,JSON.stringify(c),{expires:365})},h=function(a){for(var c=a.split(\"&\");;){if(!(c.join(\"&\").length>=b.maxDataSize))return c.join(\"&\");c.shift()}},i=function(a){c.campaignInfo=a};return function(){var a=e();return a=h(a),i(a),g(a),c}()},isAccountNumber:function(a){return a&&/^UA\\-\\d{5,}\\-\\d{1,3}$/.test(a.toString())},isDimension:function(a){return a&&a>0&&200>=a}};\"object\"==typeof modules&&\"function\"==typeof modules.define&&modules.require(\"Integrations\").register(\"Google Universal\",a)}();","Order":-90,"HighLevelApiVersion":"1.19"}],"Campaigns":[{"Name":"T16_SignpostingWidget","Type":"ABnMVT","CSName":"","HighLevelApiVersion":"1.19","PagePrefix":"","Scripts":[{"Name":"T16_deleteCookie","Type":"script","Attrs":{"type":"text/javascript"},"Data":"if (location.pathname === '/sponsor-a-child' && campaign.getData('doNotShowWidget')) {\n    return;\n}\ncampaign.clearData('passedDonationValue');","Order":-50,"HighLevelApiVersion":"1.19"},{"Name":"T16_Checker","Type":"script","Attrs":{"type":"text/javascript"},"Data":"var pageDataObj = {\n    '/sponsor-a-child':                {\n        btnBehavior:     'scroll',\n        scrolledElement: '#form',\n        waitElementsArr: ['section[id*=\"banner\"] .o-splash__wrapper.wrapper', '#form .webform-progressbar-outer'],\n    },\n    '/sponsor-a-child/sponsor-a-girl': {\n        btnBehavior:     'scroll',\n        scrolledElement: '#sponsor',\n        waitElementsArr: ['section[id*=\"banner\"] .o-splash__wrapper.wrapper', '#sponsor .webform-progressbar-outer'],\n    },\n};\n\nvar currentPage = pageDataObj[location.pathname];\n\nvar elementsArePresent = function (elem) {\n    return jQuery(elem).length;\n};\nvar elementToHide;\n\nif (currentPage) {\n    elementToHide = campaign.getData('doNotShowWidget') ? '[id=\"1.-graphic-banner\"]' : currentPage.waitElementsArr[0];\n    campaign.scope.appendElement = currentPage.waitElementsArr[0];\n    campaign.scope.btnBehavior = currentPage.btnBehavior;\n    campaign.scope.scrolledElement = currentPage.scrolledElement;\n    renderer\n        .hide(elementToHide)\n        .when(function () {\n            return window.jQuery && currentPage.waitElementsArr.every(elementsArePresent);\n        }, function () {\n            return events.domReady();\n        })\n        .then(function () {\n            return renderer.getContent('T16_SignpostingWidget');\n        })\n        .done(function () {\n            renderer.runVariantJs();\n        })\n        .always(renderer.showAll);\n}","Order":0,"HighLevelApiVersion":"1.19"}],"Elements":[],"Recommendations":[]}],"MRRules":[],"PersistData":[{"Name":"srv","IsGlobal":false,"Value":"nycvwcgeu03","Expiration":365},{"Name":"bid","IsGlobal":false,"Value":"nycvwcgeu03","Expiration":0.00694},{"Name":"pd","IsGlobal":false,"Value":"-1056768851|AQAAAApVAwC/DO8BXhMRwgABEgABQgDU8DFtAQCObGVgGjTYSI5sZWAaNNhIAAAAAP//////////AAZEaXJlY3QBXhMBAAAAAAAAAAAA////////////////AAABAPTyAAAEAAAAAUU=","Expiration":365}],"SiteInfo":[{"Url":"plan-uk.org","ID":786}],"SystemData":[{"Version":"1.0","RequestId":1,"ResponseId":1}],"GenInfo":{},"ServerAttributes":{},"Iteration":"lhG7Gbikvy6wt-3S-60CLVYY4ew","Packages":["mmpackage-1.19.js"]});