(function () {
  //Inject code v5.2

  var highcharts = document.createElement('script');
  var injectVersion = 5;
  var cdn = 'https://code.highcharts.com/';
  var loaded = 0;  
  var encodedUrl = encodeURI('https://https://app.everviz.com//show/153sd2bu4');
  var chartCreated = false;
  var delayGen = 0;
  var scripts = [
    "highcharts.js",
    "modules/stock.js",
    "highcharts-more.js",
    "highcharts-3d.js",
    "modules/data.js",
    "modules/exporting.js",
    "modules/funnel.js",
    "modules/solid-gauge.js",
    "modules/export-data.js",
    "modules/accessibility.js"
  ];

  var legacyElementClassName = 'highcharts-153sd2bu4';
  var elementClassName = 'everviz-153sd2bu4';
  var externalCSS = [
    "https://app.everviz.com/fonts/-kdRxC3Ef/font.css",
    "https://app.everviz.com/fonts/mIQoHgFro/font.css",
    "https://app.everviz.com/fonts/b7ssKVeRa/font.css",
    "https://app.everviz.com/static/fonts/gordita/style.css",
    "https://app.everviz.com/resources/css/highcharts-data-table.css"
  ];

  var extraScripts = [
  "https://app.everviz.com/resources/js/highcharts-scroll-animation.js",
  "https://app.everviz.com/resources/js/everviz-utils.js",
  "https://app.everviz.com/resources/js/highcharts-overrides.js"
  ];

  var options = {"chart":{"type":"line","polar":false,"style":{"fontFamily":"Telesans Agate-Regular","fontSize":"14px"},"parallelAxes":{"stackLabels":{"style":{"fontSize":"14px"}}}},"title":{"align":"left","x":10,"style":{"fontFamily":"Austin News Deck-Semibold","color":"#333333","fontSize":"22px","fontWeight":"normal","fontStyle":"normal","fill":"#333333","width":"566px"},"margin":15,"text":"<div>Buyer demand is still relatively high even as the stamp duty holiday tapers</div>","useHTML":true},"subtitle":{"align":"left","x":10,"style":{"fontFamily":"Austin News Deck-Italic","color":"#666666","fontSize":"22px","fontWeight":"normal","fontStyle":"normal","fill":"#666666","width":"566px"},"text":""},"plotOptions":{"series":{"allowPointSelect":true,"states":{"select":{"color":"#EFFFEF","borderColor":"black","dashStyle":"dot"}},"marker":{"enabled":false},"lineWidth":3,"label":{"style":{"font-weight":"bold","fontFamily":"Telesans Agate-Regular","fontSize":"14px"},"enabled":false},"events":{}},"area":{"fillOpacity":0.2,"marker":{"enabled":false,"symbol":"diamond"},"dataLabels":{"style":{"fontSize":"14px"}},"label":{"style":{"font-weight":"bold","fontFamily":"Telesans Agate-Regular","fontSize":"14px"}}},"line":{"marker":{"symbol":"diamond"}}},"exporting":{"enabled":false,"url":"https://api.everviz.com/export"},"credits":{"href":"","position":{"x":-7,"y":-3},"style":{"cursor":"pointer","color":"#999999","fontSize":"10px","fontFamily":"Telesans Agate-Regular"},"text":"<div>Zoopla</div>","useHTML":true},"colors":["#0021af","#17e698","#2f114f","#fff7b3","#ff77b7","#96efff","#f43939"],"legend":{"align":"left","verticalAlign":"top","itemMarginBottom":10,"x":-10,"symbolRadius":0,"floating":false,"itemStyle":{"fontFamily":"Telesans Agate-Regular","color":"#333333","fontSize":"14px","fontWeight":"normal","fontStyle":"normal","cursor":"pointer","textOverflow":"ellipsis"},"borderRadius":0,"squareSymbol":true,"shadow":false,"rtl":false,"reversed":false,"symbolPadding":4,"symbolHeight":12,"padding":8},"series":[{"turboThreshold":0,"type":"line","name":"Up to £250k","data":[]},{"turboThreshold":0,"type":"line","name":"£250k+","data":[]},{"turboThreshold":0,"type":"line","name":"£500k+","colorIndex":4,"data":[]}],"tooltip":{"pointFormat":"<span style=\"color:{point.color}\"></span> {series.name}: <b>{point.y}</b><br/>","borderRadius":0,"borderWidth":1,"enabled":true,"headerFormat":"","shadow":false,"style":{"color":"#333333","cursor":"default","fontSize":"12px","pointerEvents":"none","whiteSpace":"nowrap","fontFamily":"Telesans Agate-Regular"},"padding":6},"caption":{"style":{"fontFamily":"Telesans Agate-Regular","color":"#666666","fontSize":"18px","fontWeight":"normal","fontStyle":"normal","fill":"#666666","width":"610px"}},"stockTools":{"gui":{"enabled":false}},"navigation":{"bindingsClassName":"tools-container","events":{}},"labels":{"items":[],"style":{"color":"#333333","position":"absolute","fontFamily":"Telesans Agate-Regular","fontSize":"14px"}},"pane":{"background":[]},"responsive":{"rules":[]},"yAxis":{"title":{"useHTML":true,"text":"Index, 100 = 2019 average"}},"xAxis":{"lineColor":"black","tickColor":"black"},"annotations":[],"lang":{"shortMonths":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"weekdays":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"months":["January","February","March","April","May","June","July","August","September","October","November","December"],"numericSymbols":["k","M","G","T","P","E"]},"data":{"csv":"null;Up to £250k ;£250k+;£500k+\n21/1/2019;103.7;99.8;104.1\n28/1/2019;98.8;94.5;99.5\n4/2/2019;96.8;96.2;106.6\n11/2/2019;100.2;95.4;100.1\n18/2/2019;93.5;93.5;90.1\n25/2/2019;97.1;97.4;97.8\n4/3/2019;95.9;98.2;100.4\n11/3/2019;96.7;98.2;102.8\n18/3/2019;97.2;95.4;104.4\n25/3/2019;98.6;100.7;112.1\n1/4/2019;95.4;94.3;99.3\n8/4/2019;103.5;104.9;110.4\n15/4/2019;100.8;106.7;101.4\n22/4/2019;89;93.1;89.6\n29/4/2019;102.7;110;108.6\n6/5/2019;100.5;109.2;104.3\n13/5/2019;104.8;109.3;109.7\n20/5/2019;98.6;104;110.1\n27/5/2019;100.9;104.3;100.5\n3/6/2019;103;108.9;106.5\n10/6/2019;107.6;111;104.6\n17/6/2019;106.4;111.3;100.7\n24/6/2019;107.6;110.1;103.2\n1/7/2019;97.9;96.3;89.1\n8/7/2019;105.5;101.4;88.2\n15/7/2019;106.6;102.1;102.9\n22/7/2019;107;106;98.3\n29/7/2019;106.3;98.9;97.1\n5/8/2019;111.5;103.4;99.8\n12/8/2019;112.9;103.8;98\n19/8/2019;110.4;100.8;94.3\n26/8/2019;101.4;92.2;89.1\n2/9/2019;105.4;99.6;96.9\n9/9/2019;105;99.9;97.5\n16/9/2019;105.5;102.5;101.3\n23/9/2019;102.3;98.6;99.2\n30/9/2019;101.9;99.3;104.5\n7/10/2019;101.1;104.4;102.9\n14/10/2019;102.6;100.2;107.4\n21/10/2019;102.7;101.1;100.4\n28/10/2019;101.7;106.7;111.5\n4/11/2019;101.6;100.2;107.8\n11/11/2019;100.5;106.7;112.1\n18/11/2019;97.2;103.3;105.4\n25/11/2019;97.6;102.4;106.4\n2/12/2019;88.7;92.9;91.5\n9/12/2019;86.1;86.6;89.4\n16/12/2019;79;82.9;79.7\n23/12/2019;72.8;76.7;74.9\n30/12/2019;82.3;86.6;83.3\n6/1/2020;122;143.5;148.4\n13/1/2020;146.5;163;180.1\n20/1/2020;147.5;162.3;181.7\n27/1/2020;148.3;163.3;178.5\n3/2/2020;148.2;158.9;175.5\n10/2/2020;149.1;164.7;177.4\n17/2/2020;143.4;154;167.4\n24/2/2020;143.5;160;171.4\n2/3/2020;141;152.6;161.3\n9/3/2020;136.9;146.3;146.7\n16/3/2020;126.3;132.5;120.1\n23/3/2020;78;68.9;57.5\n30/3/2020;46.3;37.9;37.5\n6/4/2020;43.5;35.1;39.8\n13/4/2020;49.1;40.5;46.4\n20/4/2020;62.9;51.7;61.6\n27/4/2020;68.3;55.6;67.3\n4/5/2020;82;72.8;86.1\n11/5/2020;95.2;82;105.7\n18/5/2020;175.1;161;168.8\n25/5/2020;202.9;194.9;202.3\n1/6/2020;203.6;214;217\n8/6/2020;232.5;242;237\n15/6/2020;228.5;233;242\n22/6/2020;211;219.1;221.9\n29/6/2020;197.2;199.3;208.7\n6/7/2020;198.3;200.3;206.4\n13/7/2020;196.5;244.1;249.9\n20/7/2020;195.5;246.7;252.2\n27/7/2020;194;247.6;249.3\n3/8/2020;168.2;218.8;229.8\n10/8/2020;163.6;211.8;211\n17/8/2020;167;217.7;224.8\n24/8/2020;170.5;213.4;228.3\n31/8/2020;166.1;207.8;211.6\n7/9/2020;159.7;208.3;217.5\n14/9/2020;155.3;203.4;213\n21/9/2020;150.3;200.3;205.1\n28/9/2020;144.2;189.3;197.5\n5/10/2020;144.2;186.7;187.2\n12/10/2020;145.8;181.2;187.7\n19/10/2020;137.7;171;172\n26/10/2020;134.6;169.5;179.8\n2/11/2020;125.3;162.1;156\n9/11/2020;113.8;137.9;136.9\n16/11/2020;133.4;160.9;161.7\n23/11/2020;137.8;165.1;160.8\n30/11/2020;126;156.6;151.6\n7/12/2020;110.3;131.6;128.1\n14/12/2020;102;120.6;117.3\n21/12/2020;91.5;105.3;101.8\n28/12/2020;84.2;97.4;91.6\n4/1/2021;129.2;146.8;148.2\n11/1/2021;157.3;170.8;163.8\n18/1/2021;169.2;176.9;166\n25/1/2021;170.8;185;172\n1/2/2021;172;180.9;172.8\n8/2/2021;174.1;182.5;178.6\n15/2/2021;170.3;171;164.7\n22/2/2021;185.2;189.1;181.4\n1/3/2021;175.7;198.1;183.1\n8/3/2021;211.9;263.4;256\n15/3/2021;213.3;270.7;246.6\n22/3/2021;216.4;274.3;257.3\n29/3/2021;224;269.8;260.5\n5/4/2021;206.4;252;243.5\n12/4/2021;232;277.2;269.9\n19/4/2021;199.8;233.9;212.2\n26/4/2021;200.2;232.2;210.3\n3/5/2021;202.6;226.9;209.5\n10/5/2021;210.4;235;201.6\n17/5/2021;201.5;228.6;199.2\n24/5/2021;199.7;210.7;177.4\n31/5/2021;180.8;191.3;155.8\n7/6/2021;169.1;182.7;155.9\n14/6/2021;175.4;185.7;156.5","seriesMapping":[{"x":0,"y":1},{"x":0,"y":2},{"x":0,"y":3}]}};
  var optionsStub;
  
  var templateDataSettings = {};

  var pluginCode = {};;

  function isScriptAlreadyIncluded(src){
    var scripts = document.getElementsByTagName("script");
    for (var i = 0; i < scripts.length; i++) {
      if (scripts[i].hasAttribute('src')) {
        const scriptTag = scripts[i].getAttribute('src') || '';
        if ((scriptTag.indexOf(src) >= 0) || 
            (scriptTag.indexOf('highcharts.src.js') > -1 && src === 'highcharts.js') ||
            ((scriptTag.indexOf('stock/highstock.js') > -1) && src === 'modules/highstock.js')) {
          return true;
        }
      }
    }
    return false;
  }

  function loadCSS() {
    var cssLength = externalCSS.length;
    for(var i=0; i < cssLength; i++) {
      var css = document.createElement('link');
      css.rel  = 'stylesheet';
      css.type = "text/css";
      css.href = externalCSS[i];
      document.body.appendChild(css);
    }
  }

  function allScriptsIncluded(){
    var allScripts = scripts.concat(extraScripts);
    var haveAllScriptsBeenIncluded = true;
    var scriptsToUse = document.getElementsByTagName("script");
    for(var n=0;n<allScripts.length;n++) {
      if (!isScriptAlreadyIncluded(allScripts[n], scriptsToUse)) {
        haveAllScriptsBeenIncluded = false;
        break;
      }
    }
    return haveAllScriptsBeenIncluded;
  }

  function modifyOptions(){
    if (options.data) {
      options.data.complete = function(options) {
        const keys = Object.keys(templateDataSettings || {});
        keys.forEach(function(key) {
          const serie = options.series[key];
          (serie.data || []).forEach(function(d, i) {
            if (templateDataSettings[key].data && templateDataSettings[key].data[i]) {
              window["everviz"].merge(d, templateDataSettings[key].data[i]);
            }
          })
        })  
        return options;
      }
    }
    
    optionsStub = window["everviz"].createStub(options);
    window["everviz"].merge(options, pluginCode);
    if ('Chart' === 'Map') window["everviz"].modifyMapType(options);
  }

  function createChart() {
    if(chartCreated) return;

    var hasProj4 = extraScripts.indexOf('https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.6/proj4.js') > -1;

    if (!allScriptsIncluded() || 
      (hasProj4 && !window.proj4) || 
      !window["everviz"].merge ||
      !window["everviz"].createStub) {
      setTimeout(createChart, 200);
      return;
    }  

    modifyOptions();

    if (hasProj4) delayGen = 100;

    if (typeof window['Highcharts'] !== 'undefined') {
      

    if (options.yAxis && options.yAxis.length === 1) options.yAxis = options.yAxis[0];
    if (options.xAxis && options.xAxis.length === 1) options.xAxis = options.xAxis[0];
    if (options.zAxis && options.zAxis.length === 1) options.zAxis = options.zAxis[0];

    /*
// Sample of extending options:
Highcharts.merge(true, options, {
    chart: {
        backgroundColor: "#bada55"
    },
    plotOptions: {
        series: {
            cursor: "pointer",
            events: {
                click: function(event) {
                    alert(this.name + " clicked\n" +
                          "Alt: " + event.altKey + "\n" +
                          "Control: " + event.ctrlKey + "\n" +
                          "Shift: " + event.shiftKey + "\n");
                }
            }
        }
    }
});
*/


      if (options && (options.lang || options.global)) {
        Highcharts.setOptions({
          global: options.global || {},
          lang: options.lang || {}
        });
      }

      if (Highcharts.Annotation) {
        Highcharts.Annotation.ControlPoint.prototype.redraw = function (animation) {
          this.graphic[animation ? 'animate' : 'attr'](
              this.options.positioner ? this.options.positioner.call(this, this.target) : null
          );
        };
      }

      if (window['everviz'] && window['everviz'].tooltipFormatter && 
          options.everviz && options.everviz.tooltip){
        if (!options.tooltip) options.tooltip = {};
        options.tooltip.formatter = window['everviz'].tooltipFormatter;
      }

      chartCreated = true;
      window.HighchartsCloud.hasLoaded = true; 
      setTimeout(function(){
          if (window["everviz"] && window["everviz"].pendingAnim) {
            //TODO: change to using classes instead.
            //Bit of work to do there due to backward compatibility
            const elements = document.querySelectorAll(
              '#' + elementClassName + 
              ', #' + legacyElementClassName
            );
            const elementsArray = Array.prototype.slice.call(elements);
            elementsArray.forEach(function(element, elementIndex) {

              window["everviz"].updateRenderTo(optionsStub, element);
              var chart = new Highcharts.Chart(optionsStub);

              window["everviz"].pendingAnim({
                id: element.id + '-' + elementIndex, 
                loaded: false,
                options: options,
                appear:function(){
                  chart.destroy();

                  window["everviz"].updateRenderTo(options, element);
                  chart = new Highcharts.Chart(options); 

                },
                element: element
              });
            });

          } else {
            const element = document.querySelector('#' + legacyElementClassName);
            if (element) new Highcharts.Chart(legacyElementClassName, options);  
            else new Highcharts.Chart(elementClassName, options);  
            
          }
      }, delayGen);
    }
  }

  function check(scripts, cb) {
    if (loaded === scripts.length) {
      if (cb) {
        cb();
      } else {


        //Create first project
        if (!window.HighchartsCloud.versions ||
           (window.HighchartsCloud.versions && window.HighchartsCloud.versions.length !== window.HighchartsCloud.ondone.length)) {
             
          for (var i = 0; i < window.HighchartsCloud.ondone.length; i++) {
            try {
              window.HighchartsCloud.ondone[i]();
            } catch(e) {
              console.error(e);
            }
          }
        } else {
          if (window.HighchartsCloud.stack.length) {
            window.HighchartsCloud.stack[0]();
            window.HighchartsCloud.stack.shift();
            const shouldRenderNextChart = window.HighchartsCloud.stack.length > 0;
            if (shouldRenderNextChart) {
              window.HighchartsCloud.stack[0](true);
            }
          }
        }
        
      }
    }
  }

  function loadScript(s, scripts, cb) {
    if (!s) next();
    
    function next() {
      ++loaded;
      if (loaded < scripts.length) {
        loadScript(scripts[loaded], scripts, cb);
      }
      check(scripts, cb);
    }

    if (isScriptAlreadyIncluded(s)) {
      return next();
    }

    var n = document.createElement('script');

    n.onload = function () {
      next();
    };

    if (s.indexOf('https') >= 0) {
      n.src = s;
    } else {
      n.src = cdn + s;
    }
    document.body.appendChild(n);
  }

  function loadExtraScripts(){
    if (extraScripts.length > 0) {
      loaded = 0;
      loadScript(extraScripts[0], extraScripts);
    } else {
      check(scripts);
    }
  }

  function loadExtraScriptsAndMakeChart(isUsingStack){
    loaded = 0;
    loadCSS();
    if (extraScripts.length > 0) {
      if (isUsingStack) {
        window.HighchartsCloud.stack[0] = createChart;
        loadScript(extraScripts[0], extraScripts);
      }
      else loadScript(extraScripts[0], extraScripts, createChart);
    } else {
      check(extraScripts);
    }
  }

  function getAllScripts(){
    var evervizScripts = [];
    var allScripts = scripts.map(function(script) {
      return 'highcharts/'+ script.replace('highcharts/highcharts.js', 'highcharts.js').replace('.js', '');
    }).concat(
      extraScripts.map(function(script) {
        if (script.indexOf('https://code.highcharts.com/') > -1) {
          return 'highcharts/'+ script.replace('https://code.highcharts.com/', '').replace('.js', '');
        } else if (script.indexOf('https://app.everviz.com/') > -1) {
          evervizScripts.push(script);
          return null;
        } else return script;
      }).filter(function(s) {
        return s !== null;
      })
    );

    allScripts.forEach(function(script) {
      if (window.HighchartsCloud.allScripts)
        window.HighchartsCloud.allScripts[script] = 1
    });

    return {
      allHighchartsScripts: allScripts,
      evervizScripts: evervizScripts
    }
  }

  function loadRequireJSScript(){
    require.config({
      packages: [{
        name: 'highcharts',
        main: 'highcharts'
      }],
      paths: {
        'highcharts': 'https://code.highcharts.com'
      }
    });

    const allScripts = getAllScripts();

    require(
      allScripts.allHighchartsScripts,
      function (Highcharts) {
        //Attach highcharts to the window for use in the everviz scripts
        window.Highcharts = Highcharts;
        if (allScripts && allScripts.evervizScripts.length) {
          require(allScripts.evervizScripts, function(){
            createChart();
            loadCSS();
          })
        } else {
          createChart();
          loadCSS();
        }
      }
    );
  }

  function loadInitialScript(){
    if (window['require'] && typeof require === "function" && typeof require.specified === "function") {
      loadRequireJSScript();
    } else {
      getAllScripts()
      loadScript(scripts[0], scripts, loadExtraScripts);
      loadCSS();
    }
  }

  if (typeof window['HighchartsCloud'] === 'undefined') {
    window.HighchartsCloud = {
      ondone: [createChart],
      stack: [createChart],
      hasWrapped: false,
      hasLoaded: false,
      externalCSS: externalCSS,
      versions: [injectVersion],
      types: ['chart'],
      allScripts: {},
      projectUUIDs: {'153sd2bu4': 1},
    };

    loadInitialScript();

  } else {
    if (window.HighchartsCloud.externalCSS) window.HighchartsCloud.externalCSS.push(externalCSS);
    if (!window.HighchartsCloud.hasLoaded) {
      if (!window.HighchartsCloud.projectUUIDs) window.HighchartsCloud.projectUUIDs = {};

      if (!window.HighchartsCloud.projectUUIDs['153sd2bu4']) {

        window.HighchartsCloud.projectUUIDs['153sd2bu4'] = 1;
        window.HighchartsCloud.ondone.push(loadExtraScriptsAndMakeChart);
        if (window.HighchartsCloud.stack) {
          window.HighchartsCloud.stack.push(loadExtraScriptsAndMakeChart);
          window.HighchartsCloud.versions.push(injectVersion);
          window.HighchartsCloud.types.push('chart');
        }

      }
      if (window['require'] && typeof require === "function" && typeof require.specified === "function") {
        getAllScripts()
        loadRequireJSScript();
      }
    }
    else {
      if (window['require'] && typeof require === "function" && typeof require.specified === "function") {
        loadRequireJSScript();
      } else {
        getAllScripts()
        loadExtraScriptsAndMakeChart();
      }
    }
  }

}());
