(function () {
  var highcharts = document.createElement('script');

  var cdn = 'https://code.highcharts.com/';
  var loaded = 0;  
  var encodedUrl = encodeURI('https://https://cloud.highcharts.com//show/jTWJOe29e');

  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"
    /* "modules/series-label.js" */
  ];

  var externalCSS = [
      ];

  var options = {"chart":{"polar":false},"plotOptions":{"series":{"dataLabels":{"enabled":true},"animation":false}},"title":{"text":"Government Expenditure and Revenue as Percent of GDP (2017)"},"subtitle":{"text":""},"series":[{"data":[["Denmark",52.2],["Finland",54],["Norway",49.9],["Sweden",49.3],["USA",38]],"name":"Expenditure","turboThreshold":0,"_symbolIndex":0,"type":"column"},{"data":[["Denmark",52.3],["Finland",53.3],["Norway",55],["Sweden",50.8],["USA",33.8]],"name":"Revenue","turboThreshold":0,"_symbolIndex":0,"type":"column"}],"credits":{"text":"Source: OECD NAAG","href":"https://stats.oecd.org/Index.aspx?DataSetCode=NAAG#"},"yAxis":[{"title":{"text":""},"labels":{"format":"{value}%"}}],"exporting":{"enabled":false},"colors":["#d32f2f","#212121","#90ed7d","#f7a35c","#8085e9","#f15c80","#e4d354","#2b908f","#f45b5b","#91e8e1"],"legend":{"verticalAlign":"top"},"tooltip":{"enabled":false},"data":{"csv":"\"Country\";\"Expenditure\";\"Revenue\"\n\"Denmark\";52.2;52.3\n\"Finland\";54;53.3\n\"Norway\";49.9;55\n\"Sweden\";49.3;50.8\n\"USA\";38;33.8"}};

  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 createChart() {
    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 || {}
        });
      }
      new Highcharts.Chart('highcharts-jTWJOe29e', options);
    }
  }

  function check() {
    if (loaded === scripts.length) {
      for (var i = 0; i < window.HighchartsCloud.ondone.length; i++) {
        try {
          window.HighchartsCloud.ondone[i]();
        } catch(e) {
          console.error(e);
        }
      }
    }
    window.HighchartsCloud.hasLoaded = true;
  }

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

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

  if (typeof window['HighchartsCloud'] === 'undefined') {
    window.HighchartsCloud = {
      ondone: [createChart],
      hasWrapped: false,
      hasLoaded: false
    };

    loadScript(scripts[0]);
    loadCSS();

  } else {
    if (window.HighchartsCloud.hasLoaded) {
      createChart();
    } else {
      window.HighchartsCloud.ondone.push(createChart);
    }
  }

  try {
    var r = new XMLHttpRequest();
    r.open('POST', 'https://cloud-api.highcharts.com:443/chart/207171/4/view', true);
    r.setRequestHeader('Content-Type', 'application/json');
    r.send();
  } catch (e) {
  }

}());
