(function () {
var script = document.getElementById('highcharts-script');
function addChart() {
function parseData(completeHandler, chartOptions) {
try {
var dataOptions = {
"seriesMapping": [
{
"x": 0
}
],
"columnTypes": [
"string",
"float"
],
"csv": "Date,Current account balance \n1987 Q1,-0.1\n1987 Q2,-1.6\n1987 Q3,-1.8\n1987 Q4,-3\n1988 Q1,-3.3\n1988 Q2,-3.3\n1988 Q3,-3.3\n1988 Q4,-5.1\n1989 Q1,-4.2\n1989 Q2,-4.6\n1989 Q3,-4.9\n1989 Q4,-3.8\n1990 Q1,-4.3\n1990 Q2,-4.1\n1990 Q3,-2.4\n1990 Q4,-2.5\n1991 Q1,-1.8\n1991 Q2,-1\n1991 Q3,-1.5\n1991 Q4,-1.1\n1992 Q1,-1.3\n1992 Q2,-1.7\n1992 Q3,-1.9\n1992 Q4,-1.6\n1993 Q1,-1.3\n1993 Q2,-1.8\n1993 Q3,-1.3\n1993 Q4,-1.2\n1994 Q1,-0.5\n1994 Q2,-0.9\n1994 Q3,-0.2\n1994 Q4,-0.3\n1995 Q1,0.4\n1995 Q2,-1.5\n1995 Q3,-1.2\n1995 Q4,-0.5\n1996 Q1,-0.7\n1996 Q2,-0.5\n1996 Q3,-0.6\n1996 Q4,-0.5\n1997 Q1,-0.3\n1997 Q2,-0.2\n1997 Q3,0.7\n1997 Q4,-1\n1998 Q1,-1\n1998 Q2,-1.3\n1998 Q3,0.8\n1998 Q4,-0.2\n1999 Q1,-2.7\n1999 Q2,-2.2\n1999 Q3,-2.6\n1999 Q4,-2.1\n2000 Q1,-2.1\n2000 Q2,-2.5\n2000 Q3,-2.2\n2000 Q4,-1.9\n2001 Q1,-1.6\n2001 Q2,-2.3\n2001 Q3,-2.1\n2001 Q4,-1.8\n2002 Q1,-2\n2002 Q2,-2.6\n2002 Q3,-1.6\n2002 Q4,-1.7\n2003 Q1,-0.9\n2003 Q2,-2\n2003 Q3,-2.3\n2003 Q4,-1.3\n2004 Q1,-1.8\n2004 Q2,-1.7\n2004 Q3,-2.8\n2004 Q4,-0.8\n2005 Q1,-1.3\n2005 Q2,-0.1\n2005 Q3,-1.7\n2005 Q4,-1.6\n2006 Q1,-2.1\n2006 Q2,-1.4\n2006 Q3,-2.8\n2007 Q1,-2.6\n2007 Q2,-1.5\n2007 Q3,-3.1\n2007 Q4,-2.5\n2008 Q1,-3.2\n2008 Q2,-3.9\n2008 Q3,-3.1\n2008 Q4,-3.9\n2009 Q1,-4.6\n2009 Q2,-3.9\n2009 Q3,-1.5\n2009 Q4,-1.9\n2010 Q1,-2.5\n2010 Q2,-2.1\n2010 Q3,-3.5\n2010 Q4,-2.8\n2011 Q1,-1\n2011 Q2,-0.2\n2011 Q3,-3\n2011 Q4,-2.9\n2012 Q1,-2.8\n2012 Q2,-4.1\n2012 Q3,-3.5\n2012 Q4,-4.3\n2013 Q1,-3.7\n2013 Q2,-3.2\n2013 Q3,-4.7\n2013 Q4,-6\n2014 Q1,-4.7\n2014 Q2,-3.9\n2014 Q3,-4.6\n2014 Q4,-5.4\n2015 Q1,-5.4\n2015 Q2,-4.7\n2015 Q3,-4.4\n2015 Q4,-7\n2016 Q1,-5.7\n2016 Q2,-5.9"
};
dataOptions.sort = true
dataOptions.complete = completeHandler;
Highcharts.data(dataOptions, chartOptions);
} catch (error) {
console.log(error);
completeHandler(undefined);
}
}
var shareUrl = 'https://app.everviz.com/show/ukehudo';
var encodedUrl = encodeURIComponent(shareUrl);
var template = {
chart: {
renderTo: 'highcharts-ukehudo'
},
navigation: {
menuItemStyle: {
fontFamily: Highcharts.SVGRenderer.prototype.getStyle().fontFamily,
padding: '2px 10px'
}
},
exporting: {
buttons: {
contextButton: {
menuItems: [{
text: '' +
'Share on Facebook'
}, {
text: '' +
'Share on Google+'
}, {
text: '' +
'Share on Twitter'
}, {
text: '' +
'Share on LinkedIn'
}, {
separator: true
}]
.concat(Highcharts.getOptions().exporting.buttons.contextButton.menuItems)
.concat([{
separator: true
}, {
text: '' + 'Edit chart'
}, {
text: '' + 'Create chart'
}])
}
}
}
};
var chartOptions = {
"yAxis": {
"title": {
"text": "Current account balance as % of GDP"
}
},
"xAxis": {
"tickInterval": 8
},
"exporting": {
"enabled": false
},
"legend": {
"enabled": false
},
"series": [
{
"tooltip": {
"valueSuffix": "pc of GDP"
},
"index": 0,
"negativeColor": "#b03060"
}
],
"subtitle": {
"text": "Source: ONS"
},
"title": {
"text": "Britain\u0027s current account deficit is bigger than at the height of the Lawson boom"
},
"chart": {
"type": "column"
}
};
parseData(function (dataOptions) {
// Merge series configs
if (chartOptions.series && dataOptions) {
Highcharts.each(chartOptions.series, function (series, i) {
chartOptions.series[i] = Highcharts.merge(series, dataOptions.series[i]);
});
}
var options = Highcharts.merge(dataOptions, chartOptions, template);
var chart = new Highcharts['Chart'](options);
}, chartOptions);
}
// Load the Highcharts script if undefined, and add the chart
if (typeof Highcharts !== 'undefined') {
addChart();
} else if (script) {
script.deferredCharts.push(addChart);
} else {
script = document.createElement('script');
script.id = 'highcharts-script';
script.src = '//app.everviz.com/resources/js/highstock-cloud-5.0.7.js';
script.type = 'text/javascript';
script.deferredCharts = [addChart];
script.onload = function () {
// Prevent double firing of event in IE9/IE10
if (!script.chartsAdded) {
script.chartsAdded = true;
while(script.deferredCharts.length) {
script.deferredCharts.shift()();
}
}
};
script.onreadystatechange = function() {
if (this.readyState == 'complete' || this.readyState == 'loaded') {
script.onload();
}
};
document.getElementsByTagName('head')[0].appendChild(script);
}
}());