(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/NMhhXCkbH');
  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-NMhhXCkbH';
  var elementClassName = 'everviz-NMhhXCkbH';
  var externalCSS = [
    "https://app.everviz.com/resources/css/highcharts-small-screen-annotations.css",
    "https://app.everviz.com/static/fonts/gordita/style.css",
    "https://app.everviz.com/resources/css/highcharts-data-table.css"
  ];

  var extraScripts = [
  "https://code.highcharts.com/modules/annotations.js",
  "https://code.highcharts.com/modules/annotations-advanced.js",
  "https://app.everviz.com/resources/js/highcharts-small-screen-annotations.js",
  "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 = {"title":{"text":"","align":"left","x":10},"subtitle":{"text":"","align":"left","x":10},"colors":["#0DD6CC","#E83237","#2A2383","#F2C60E","#24CBE5","#64E572","#FF9655","#FFF263","#6AF9C4"],"legend":{"align":"center","verticalAlign":"top","itemMarginBottom":10,"x":0,"symbolRadius":2,"itemStyle":{"color":"#333333","cursor":"pointer","fontSize":"15px","fontWeight":"normal","textOverflow":"ellipsis","fontFamily":"\"Lucida Grande\", \"Lucida Sans Unicode\", Verdana, Arial, Helvetica, sans-serif"},"useHTML":true},"plotOptions":{"series":{"marker":{"enabled":false},"lineWidth":3,"allowPointSelect":true,"states":{"select":{"color":"#EFFFEF","borderColor":"black","dashStyle":"dot"}}}},"chart":{"type":"line","borderWidth":0,"spacingBottom":30},"exporting":{"enabled":false},"credits":{"text":"MORNING CONSULT POLITICAL INTELLGENCE","href":"https://morningconsult.com/product/political-intelligence/","enabled":true,"position":{"align":"right"},"style":{"cursor":"pointer","color":"#424242","fontSize":"10px","fontFamily":"\"Lucida Grande\", \"Lucida Sans Unicode\", Verdana, Arial, Helvetica, sans-serif"}},"series":[{"data":[],"turboThreshold":0,"_colorIndex":0,"_symbolIndex":0,"type":"line"},{"data":[],"turboThreshold":0,"_colorIndex":1,"_symbolIndex":0,"type":"line"}],"stockTools":{"gui":{"enabled":false}},"navigation":{"bindingsClassName":"tools-container"},"labels":{"items":[]},"pane":{"background":[]},"responsive":{"rules":[]},"tooltip":{"valueSuffix":"%"},"annotations":[],"yAxis":{"title":{"text":""},"labels":{"format":"{value}%"}},"data":{"csv":"\"Date\";\"Approve\";\"Disapprove\"\n\"8/6/19\";25;67\n\"8/7/19\";26;66\n\"8/8/19\";26;66\n\"8/9/19\";26;66\n\"8/10/19\";26;65\n\"8/11/19\";26;66\n\"8/12/19\";26;66\n\"8/13/19\";27;66\n\"8/14/19\";26;66\n\"8/15/19\";26;66\n\"8/16/19\";26;66\n\"8/17/19\";26;66\n\"8/18/19\";27;65\n\"8/19/19\";26;66\n\"8/20/19\";26;66\n\"8/21/19\";26;66\n\"8/22/19\";27;66\n\"8/23/19\";28;65\n\"8/24/19\";28;65\n\"8/25/19\";28;65\n\"8/26/19\";29;64\n\"8/27/19\";29;63\n\"8/28/19\";30;62\n\"8/29/19\";30;61\n\"8/30/19\";30;62\n\"8/31/19\";30;61\n\"9/1/19\";30;61\n\"9/2/19\";30;62\n\"9/3/19\";30;62\n\"9/4/19\";30;63\n\"9/5/19\";29;64\n\"9/6/19\";28;65\n\"9/7/19\";28;65\n\"9/8/19\";28;65\n\"9/9/19\";27;66\n\"9/10/19\";27;66\n\"9/11/19\";27;66\n\"9/12/19\";27;66\n\"9/13/19\";27;65\n\"9/14/19\";28;65\n\"9/15/19\";29;64\n\"9/16/19\";29;64\n\"9/17/19\";29;64\n\"9/18/19\";29;64\n\"9/19/19\";29;64\n\"9/20/19\";28;64\n\"9/21/19\";27;64\n\"9/22/19\";27;64\n\"9/23/19\";27;64\n\"9/24/19\";27;64\n\"9/25/19\";28;64\n\"9/26/19\";28;64\n\"9/27/19\";29;63\n\"9/28/19\";29;64\n\"9/29/19\";29;63\n\"9/30/19\";29;64\n\"10/1/19\";28;64\n\"10/2/19\";28;64\n\"10/3/19\";28;64\n\"10/4/19\";28;64\n\"10/5/19\";28;64\n\"10/6/19\";27;65\n\"10/7/19\";27;65\n\"10/8/19\";27;64\n\"10/9/19\";28;64\n\"10/10/19\";27;64\n\"10/11/19\";27;64\n\"10/12/19\";28;64\n\"10/13/19\";28;64\n\"10/14/19\";29;64\n\"10/15/19\";28;64\n\"10/16/19\";28;64\n\"10/17/19\";29;64\n\"10/18/19\";28;64\n\"10/19/19\";28;65\n\"10/20/19\";28;65\n\"10/21/19\";28;65\n\"10/22/19\";28;64\n\"10/23/19\";27;64\n\"10/24/19\";27;64\n\"10/25/19\";28;63\n\"10/26/19\";29;62\n\"10/27/19\";29;62\n\"10/28/19\";29;62\n\"10/29/19\";28;63\n\"10/30/19\";29;63\n\"10/31/19\";29;63\n\"11/1/19\";28;64\n\"11/2/19\";28;64\n\"11/3/19\";28;65\n\"11/4/19\";28;65\n\"11/5/19\";28;65\n\"11/6/19\";28;65\n\"11/7/19\";28;65\n\"11/8/19\";29;64\n\"11/9/19\";29;64\n\"11/10/19\";28;65\n\"11/11/19\";29;64\n\"11/12/19\";28;64\n\"11/13/19\";28;64\n\"11/14/19\";27;66\n\"11/15/19\";26;67\n\"11/16/19\";26;67\n\"11/17/19\";27;66\n\"11/18/19\";26;66\n\"11/19/19\";27;66\n\"11/20/19\";27;65\n\"11/21/19\";27;65\n\"11/22/19\";27;65\n\"11/23/19\";28;64\n\"11/24/19\";28;64\n\"11/25/19\";28;64\n\"11/26/19\";28;64\n\"11/27/19\";28;65\n\"11/28/19\";28;64\n\"11/29/19\";28;64\n\"11/30/19\";27;66\n\"12/1/19\";27;65\n\"12/2/19\";27;65\n\"12/3/19\";26;66\n\"12/4/19\";27;65\n\"12/5/19\";27;66\n\"12/6/19\";27;66\n\"12/7/19\";28;65\n\"12/8/19\";28;66\n\"12/9/19\";27;66\n\"12/10/19\";27;66\n\"12/11/19\";27;66\n\"12/12/19\";26;66\n\"12/13/19\";26;67\n\"12/14/19\";26;67\n\"12/15/19\";26;67\n\"12/16/19\";26;67\n\"12/17/19\";26;67\n\"12/18/19\";25;68\n\"12/19/19\";25;68\n\"12/20/19\";25;68\n\"12/21/19\";26;67\n\"12/22/19\";26;67\n\"12/23/19\";26;67\n\"12/24/19\";26;67\n\"12/25/19\";27;65\n\"12/26/19\";28;65\n\"12/27/19\";28;64\n\"12/28/19\";28;64\n\"12/29/19\";28;64\n\"12/30/19\";28;64\n\"12/31/19\";28;65\n\"1/1/20\";28;65\n\"1/2/20\";28;64\n\"1/3/20\";29;64\n\"1/4/20\";28;65\n\"1/5/20\";28;65\n\"1/6/20\";28;65\n\"1/7/20\";28;64\n\"1/8/20\";29;64\n\"1/9/20\";28;65\n\"1/10/20\";28;65\n\"1/11/20\";28;65\n\"1/12/20\";28;65\n\"1/13/20\";28;65\n\"1/14/20\";28;65\n\"1/15/20\";27;66\n\"1/16/20\";27;66\n\"1/17/20\";27;65\n\"1/18/20\";27;66\n\"1/19/20\";26;67\n\"1/20/20\";25;68\n\"1/21/20\";25;68\n\"1/22/20\";25;68\n\"1/23/20\";26;67\n\"1/24/20\";26;67\n\"1/25/20\";26;67\n\"1/26/20\";25;67\n\"1/27/20\";25;67\n\"1/28/20\";25;67\n\"1/29/20\";25;67\n\"1/30/20\";24;67\n\"1/31/20\";23;68\n\"2/1/20\";24;69\n\"2/2/20\";24;69\n\"2/3/20\";24;69\n\"2/4/20\";24;69\n\"2/5/20\";25;68\n\"2/6/20\";26;68\n\"2/7/20\";26;67\n\"2/8/20\";27;67\n\"2/9/20\";26;67\n\"2/10/20\";27;66\n\"2/11/20\";27;66\n\"2/12/20\";27;66\n\"2/13/20\";27;66\n\"2/14/20\";26;66\n\"2/15/20\";26;66\n\"2/16/20\";26;66\n\"2/17/20\";25;66\n\"2/18/20\";25;67\n\"2/19/20\";25;67\n\"2/20/20\";24;68\n\"2/21/20\";25;67\n\"2/22/20\";25;67\n\"2/23/20\";25;67\n\"2/24/20\";25;67\n\"2/25/20\";26;66\n\"2/26/20\";26;67\n\"2/27/20\";26;66\n\"2/28/20\";26;66\n\"2/29/20\";26;67\n\"3/1/20\";26;66\n\"3/2/20\";25;67\n\"3/3/20\";24;67\n\"3/4/20\";24;67\n\"3/5/20\";24;68\n\"3/6/20\";24;68\n\"3/7/20\";24;68\n\"3/8/20\";25;68\n\"3/9/20\";25;67\n\"3/10/20\";25;67\n\"3/11/20\";26;66\n\"3/12/20\";26;66\n\"3/13/20\";26;67\n\"3/14/20\";28;65\n\"3/15/20\";28;65\n\"3/16/20\";28;64\n\"3/17/20\";29;63\n\"3/18/20\";31;62\n\"3/19/20\";32;60\n\"3/20/20\";33;59\n\"3/21/20\";34;58\n\"3/22/20\";35;58\n\"3/23/20\";35;57\n\"3/24/20\";35;58\n\"3/25/20\";35;58\n\"3/26/20\";35;58\n\"3/27/20\";34;60\n\"3/28/20\";33;60\n\"3/29/20\";32;60\n\"3/30/20\";33;59\n\"3/31/20\";33;58\n\"4/1/20\";34;57\n\"4/2/20\";34;56\n\"4/3/20\";34;55\n\"4/4/20\";35;54\n\"4/5/20\";36;54\n\"4/6/20\";36;54\n\"4/7/20\";36;55\n\"4/8/20\";36;56\n\"4/9/20\";36;56\n\"4/10/20\";36;56\n\"4/11/20\";35;57\n\"4/12/20\";34;58\n\"4/13/20\";35;58\n\"4/14/20\";36;57\n\"4/15/20\";36;57\n\"4/16/20\";36;57\n\"4/17/20\";36;57\n\"4/18/20\";36;57\n\"4/19/20\";37;56\n\"4/20/20\";37;56\n\"4/21/20\";35;58\n\"4/22/20\";35;58\n\"4/23/20\";34;58\n\"4/24/20\";34;58\n\"4/25/20\";34;57\n\"4/26/20\";34;58\n\"4/27/20\";33;59\n\"4/28/20\";34;59\n\"4/29/20\";33;59\n\"4/30/20\";34;59\n\"5/1/20\";34;60\n\"5/2/20\";34;60\n\"5/3/20\";34;60\n\"5/4/20\";34;60\n\"5/5/20\";34;60\n\"5/6/20\";35;59\n\"5/7/20\";35;58\n\"5/8/20\";35;58\n\"5/9/20\";35;58\n\"5/10/20\";35;57\n\"5/11/20\";35;57\n\"5/12/20\";35;57\n\"5/13/20\";34;58\n\"5/14/20\";33;58\n\"5/15/20\";34;58\n\"5/16/20\";32;60\n\"5/17/20\";32;59\n\"5/18/20\";33;59\n\"5/19/20\";33;58\n\"5/20/20\";33;58\n\"5/21/20\";33;59\n\"5/22/20\";33;59\n\"5/23/20\";34;58\n\"5/24/20\";34;58\n\"5/25/20\";34;58\n\"5/26/20\";33;59\n\"5/27/20\";33;59\n\"5/28/20\";33;58\n\"5/29/20\";34;58\n\"5/30/20\";34;57\n\"5/31/20\";34;58\n\"6/1/20\";34;59\n\"6/2/20\";34;59\n\"6/3/20\";34;59\n\"6/4/20\";33;59\n\"6/5/20\";33;59\n\"6/6/20\";33;60\n\"6/7/20\";33;60\n\"6/8/20\";32;60\n\"6/9/20\";32;60\n\"6/10/20\";32;60\n\"6/11/20\";32;60\n\"6/12/20\";31;60\n\"6/13/20\";31;60\n\"6/14/20\";31;60\n\"6/15/20\";32;60\n\"6/16/20\";31;61\n\"6/17/20\";31;61\n\"6/18/20\";31;61\n\"6/19/20\";31;61\n\"6/20/20\";32;60\n\"6/21/20\";32;61\n\"6/22/20\";31;61\n\"6/23/20\";32;60\n\"6/24/20\";32;60\n\"6/25/20\";32;60\n\"6/26/20\";32;60\n\"6/27/20\";31;61\n\"6/28/20\";31;61\n\"6/29/20\";31;61\n\"6/30/20\";30;61\n\"7/1/20\";30;62\n\"7/2/20\";30;62\n\"7/3/20\";30;62\n\"7/4/20\";31;61\n\"7/5/20\";31;61\n\"7/6/20\";31;61\n\"7/7/20\";31;61\n\"7/8/20\";31;61\n\"7/9/20\";31;61\n\"7/10/20\";30;63\n\"7/11/20\";30;63\n\"7/12/20\";30;63\n\"7/13/20\";30;63\n\"7/14/20\";30;63\n\"7/15/20\";31;62\n\"7/16/20\";32;61\n\"7/17/20\";33;60\n\"7/18/20\";33;60\n\"7/19/20\";33;60\n\"7/20/20\";32;60\n\"7/21/20\";33;60\n\"7/22/20\";32;60\n\"7/23/20\";32;60\n\"7/24/20\";32;60\n\"7/25/20\";31;60\n\"7/26/20\";32;60\n\"7/27/20\";33;59\n\"7/28/20\";32;59\n\"7/29/20\";32;59\n\"7/30/20\";33;59\n\"7/31/20\";32;60\n\"8/1/20\";33;59\n\"8/2/20\";32;60\n\"8/3/20\";32;60\n\"8/4/20\";33;59\n\"8/5/20\";33;59\n\"8/6/20\";32;59\n\"8/7/20\";33;59\n\"8/8/20\";33;59\n\"8/9/20\";33;59\n\"8/10/20\";33;58\n\"8/11/20\";33;59\n\"8/12/20\";33;59\n\"8/13/20\";33;59\n\"8/14/20\";33;59\n\"8/15/20\";33;59\n\"8/16/20\";33;59\n\"8/17/20\";32;60\n\"8/18/20\";33;59\n\"8/19/20\";33;59\n\"8/20/20\";34;58\n\"8/21/20\";34;58\n\"8/22/20\";34;59\n\"8/23/20\";34;58\n\"8/24/20\";34;58\n\"8/25/20\";34;58\n\"8/26/20\";33;59\n\"8/27/20\";33;59\n\"8/28/20\";32;59\n\"8/29/20\";32;59\n\"8/30/20\";32;59\n\"8/31/20\";32;59\n\"9/1/20\";32;59\n\"9/2/20\";32;60\n\"9/3/20\";31;61\n\"9/4/20\";31;61\n\"9/5/20\";31;61\n\"9/6/20\";31;61\n\"9/7/20\";31;61\n\"9/8/20\";31;60\n\"9/9/20\";31;59\n\"9/10/20\";32;59\n\"9/11/20\";32;59\n\"9/12/20\";32;59\n\"9/13/20\";32;59\n\"9/14/20\";31;59\n\"9/15/20\";31;59\n\"9/16/20\";31;59\n\"9/17/20\";31;59\n\"9/18/20\";30;59\n\"9/19/20\";30;59\n\"9/20/20\";31;58\n\"9/21/20\";31;58\n\"9/22/20\";31;59\n\"9/23/20\";32;59\n\"9/24/20\";31;60\n\"9/25/20\";31;60\n\"9/26/20\";31;60\n\"9/27/20\";31;60\n\"9/28/20\";30;61\n\"9/29/20\";30;61\n\"9/30/20\";30;61\n\"10/1/20\";30;61\n\"10/2/20\";30;61\n\"10/3/20\";30;62\n\"10/4/20\";29;62\n\"10/5/20\";29;62\n\"10/6/20\";29;62\n\"10/7/20\";29;62\n\"10/8/20\";29;62\n\"10/9/20\";29;62\n\"10/10/20\";29;61\n\"10/11/20\";30;61\n\"10/12/20\";30;61\n\"10/13/20\";30;61\n\"10/14/20\";30;61\n\"10/15/20\";30;61\n\"10/16/20\";31;60\n\"10/17/20\";31;60\n\"10/18/20\";32;60\n\"10/19/20\";32;60\n\"10/20/20\";32;60\n\"10/21/20\";32;59\n\"10/22/20\";32;59\n\"10/23/20\";31;60\n\"10/24/20\";31;60\n\"10/25/20\";31;60\n\"10/26/20\";31;60\n\"10/27/20\";32;60\n\"10/28/20\";32;60\n\"10/29/20\";33;59\n\"10/30/20\";33;59\n\"10/31/20\";33;59\n\"11/1/20\";33;58\n\"11/2/20\";33;58\n\"11/3/20\";33;58\n\"11/4/20\";33;58\n\"11/5/20\";32;59\n\"11/6/20\";32;59\n\"11/7/20\";32;59\n\"11/8/20\";32;59\n\"11/9/20\";32;59\n\"11/10/20\";32;59\n\"11/11/20\";33;58\n\"11/12/20\";34;57\n\"11/13/20\";34;57\n\"11/14/20\";34;58\n\"11/15/20\";34;57\n\"11/16/20\";35;57\n\"11/17/20\";35;57\n\"11/18/20\";34;58\n\"11/19/20\";33;59\n\"11/20/20\";34;58\n\"11/21/20\";34;58\n\"11/22/20\";33;59\n\"11/23/20\";32;60\n\"11/24/20\";31;60\n\"11/25/20\";32;60\n\"11/26/20\";31;60\n\"11/27/20\";31;60\n\"11/28/20\";31;60\n\"11/29/20\";31;60\n\"11/30/20\";31;59\n\"12/1/20\";32;58\n\"12/2/20\";32;59\n\"12/3/20\";32;59\n\"12/4/20\";33;59\n\"12/5/20\";33;58\n\"12/6/20\";33;58\n\"12/7/20\";33;58\n\"12/8/20\";33;59\n\"12/9/20\";33;59\n\"12/10/20\";33;59\n\"12/11/20\";32;60\n\"12/12/20\";31;61\n\"12/13/20\";32;61\n\"12/14/20\";32;61\n\"12/15/20\";31;61\n\"12/16/20\";31;62\n\"12/17/20\";31;61\n\"12/18/20\";32;60\n\"12/19/20\";32;60\n\"12/20/20\";32;59\n\"12/21/20\";33;59\n\"12/22/20\";33;58\n\"12/23/20\";33;58\n\"12/24/20\";33;58\n\"12/25/20\";33;58\n\"12/26/20\";33;57\n\"12/27/20\";33;58\n\"12/28/20\";33;57\n\"12/29/20\";33;56\n\"12/30/20\";34;56\n\"12/31/20\";34;56\n\"1/1/21\";35;56\n\"1/2/21\";35;55\n\"1/3/21\";36;55\n\"1/4/21\";35;56\n\"1/5/21\";34;57\n\"1/6/21\";34;57\n\"1/7/21\";34;57\n\"1/8/21\";33;58\n\"1/9/21\";33;58\n\"1/10/21\";32;58\n\"1/11/21\";32;58\n\"1/12/21\";33;58\n\"1/13/21\";32;58\n\"1/14/21\";32;58\n\"1/15/21\";33;58\n\"1/16/21\";32;59\n\"1/17/21\";32;60\n\"1/18/21\";33;59\n\"1/19/21\";33;59\n\"1/20/21\";33;59\n\"1/21/21\";33;59\n\"1/22/21\";34;58\n\"1/23/21\";34;57\n\"1/24/21\";33;57\n\"1/25/21\";33;57\n\"1/26/21\";34;56\n\"1/27/21\";33;57\n\"1/28/21\";33;57\n\"1/29/21\";33;57\n\"1/30/21\";33;58\n\"1/31/21\";34;57\n\"2/1/21\";34;57\n\"2/2/21\";34;58\n\"2/3/21\";34;58\n\"2/4/21\";33;58\n\"2/5/21\";33;58\n\"2/6/21\";33;58\n\"2/7/21\";32;59\n\"2/8/21\";32;59\n\"2/9/21\";33;58\n\"2/10/21\";33;58\n\"2/11/21\";34;56\n\"2/12/21\";34;56\n\"2/13/21\";34;56\n\"2/14/21\";35;55\n\"2/15/21\";35;55\n\"2/16/21\";35;56\n\"2/17/21\";35;56\n\"2/18/21\";34;57\n\"2/19/21\";34;56\n\"2/20/21\";34;56\n\"2/21/21\";34;57\n\"2/22/21\";34;57\n\"2/23/21\";34;56\n\"2/24/21\";34;56\n\"2/25/21\";35;55\n\"2/26/21\";34;56\n\"2/27/21\";34;57\n\"2/28/21\";34;56\n\"3/1/21\";34;56\n\"3/2/21\";34;56\n\"3/3/21\";34;56\n\"3/4/21\";33;57\n\"3/5/21\";34;57\n\"3/6/21\";34;56\n\"3/7/21\";35;56\n\"3/8/21\";34;56\n\"3/9/21\";34;57\n\"3/10/21\";33;57\n\"3/11/21\";34;57\n\"3/12/21\";34;57\n\"3/13/21\";33;57\n\"3/14/21\";33;58\n\"3/15/21\";33;57\n\"3/16/21\";33;58\n\"3/17/21\";34;57\n\"3/18/21\";34;57\n\"3/19/21\";34;58\n\"3/20/21\";34;58\n\"3/21/21\";33;58\n\"3/22/21\";32;60\n\"3/23/21\";33;59\n\"3/24/21\";32;60\n\"3/25/21\";31;60\n\"3/26/21\";31;61\n\"3/27/21\";32;60\n\"3/28/21\";32;60\n\"3/29/21\";32;59\n\"3/30/21\";32;59\n\"3/31/21\";32;59\n\"4/1/21\";31;60\n\"4/2/21\";31;59\n\"4/3/21\";32;59\n\"4/4/21\";32;58\n\"4/5/21\";32;59\n\"4/6/21\";32;59\n\"4/7/21\";33;59\n\"4/8/21\";33;59\n\"4/9/21\";33;59\n\"4/10/21\";33;60\n\"4/11/21\";32;60\n\"4/12/21\";33;59\n\"4/13/21\";33;59\n\"4/14/21\";34;58\n\"4/15/21\";34;58\n\"4/16/21\";34;58\n\"4/17/21\";34;57\n\"4/18/21\";34;57\n\"4/19/21\";33;58\n\"4/20/21\";34;58\n\"4/21/21\";33;58\n\"4/22/21\";34;58\n\"4/23/21\";33;58\n\"4/24/21\";33;59\n\"4/25/21\";33;59\n\"4/26/21\";34;58\n\"4/27/21\";33;58\n\"4/28/21\";34;58\n\"4/29/21\";33;59\n\"4/30/21\";33;58\n\"5/1/21\";34;58\n\"5/2/21\";34;58\n\"5/3/21\";34;58\n\"5/4/21\";34;58\n\"5/5/21\";34;58\n\"5/6/21\";35;57\n\"5/7/21\";35;57\n\"5/8/21\";35;57\n\"5/9/21\";34;58\n\"5/10/21\";34;57\n\"5/11/21\";34;58\n\"5/12/21\";34;57\n\"5/13/21\";34;57\n\"5/14/21\";34;58\n\"5/15/21\";33;59\n\"5/16/21\";34;59\n\"5/17/21\";34;59\n\"5/18/21\";34;59\n\"5/19/21\";33;59\n\"5/20/21\";34;59\n\"5/21/21\";34;59\n\"5/22/21\";34;59\n\"5/23/21\";35;58\n\"5/24/21\";35;57\n\"5/25/21\";35;57\n\"5/26/21\";36;56\n\"5/27/21\";36;56\n\"5/28/21\";36;55\n\"5/29/21\";36;55\n\"5/30/21\";36;55\n\"5/31/21\";36;56\n\"6/1/21\";35;57\n\"6/2/21\";35;57\n\"6/3/21\";34;57\n\"6/4/21\";35;57\n\"6/5/21\";35;56\n\"6/6/21\";35;56\n\"6/7/21\";35;56\n\"6/8/21\";35;56\n\"6/9/21\";35;55\n\"6/10/21\";35;55\n\"6/11/21\";35;55\n\"6/12/21\";35;55\n\"6/13/21\";35;56\n\"6/14/21\";35;55\n\"6/15/21\";35;55\n\"6/16/21\";35;55\n\"6/17/21\";35;55\n\"6/18/21\";34;56\n\"6/19/21\";34;56\n\"6/20/21\";34;56\n\"6/21/21\";35;56\n\"6/22/21\";35;55\n\"6/23/21\";35;55\n\"6/24/21\";35;56\n\"6/25/21\";35;56\n\"6/26/21\";35;56\n\"6/27/21\";35;56\n\"6/28/21\";35;56\n\"6/29/21\";35;56\n\"6/30/21\";34;57\n\"7/1/21\";34;56\n\"7/2/21\";35;56\n\"7/3/21\";35;56\n\"7/4/21\";35;56\n\"7/5/21\";34;56\n\"7/6/21\";35;56\n\"7/7/21\";36;55\n\"7/8/21\";36;56\n\"7/9/21\";35;55\n\"7/10/21\";35;56\n\"7/11/21\";35;56\n\"7/12/21\";36;55\n\"7/13/21\";36;55\n\"7/14/21\";36;55\n\"7/15/21\";36;56\n\"7/16/21\";35;57\n\"7/17/21\";35;57\n\"7/18/21\";34;57\n\"7/19/21\";34;59\n\"7/20/21\";33;59\n\"7/21/21\";33;60\n\"7/22/21\";33;59\n\"7/23/21\";34;59\n\"7/24/21\";33;59\n\"7/25/21\";33;60\n\"7/26/21\";33;59\n\"7/27/21\";33;59\n\"7/28/21\";33;60\n\"7/29/21\";32;60\n\"7/30/21\";32;60\n\"7/31/21\";33;59\n\"8/1/21\";33;58\n\"8/2/21\";33;59\n\"8/3/21\";33;58\n\"8/4/21\";33;58\n\"8/5/21\";34;58\n\"8/6/21\";34;58\n\"8/7/21\";33;58\n\"8/8/21\";33;58\n\"8/9/21\";34;57\n\"8/10/21\";34;58\n\"8/11/21\";35;57\n\"8/12/21\";35;58\n\"8/13/21\";35;58\n\"8/14/21\";34;58\n\"8/15/21\";34;58\n\"8/16/21\";34;58\n\"8/17/21\";35;57","seriesMapping":[{"x":0,"y":1},{"x":0,"y":2}]}};
  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 && (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: {'NMhhXCkbH': 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['NMhhXCkbH']) {

        window.HighchartsCloud.projectUUIDs['NMhhXCkbH'] = 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();
      }
    }
  }

}());
