(function(c){var b=c.each,a=function(d,e){this.init(d,e)};c.extend(a.prototype,{init:function(d,e){this.options=d;this.chartOptions=e;this.columns=d.columns||this.rowsToColumns(d.rows)||[];this.columns.length?this.dataFound():(this.parseCSV(),this.parseTable(),this.parseGoogleSpreadsheet())},getColumnDistribution:function(){var d=this.chartOptions,e=d&&d.chart&&d.chart.type,f=[];b(d&&d.series||[],function(g){f.push((c.seriesTypes[g.type||e||"line"].prototype.pointArrayMap||[0]).length)});this.valueCount={global:(c.seriesTypes[e||"line"].prototype.pointArrayMap||[0]).length,individual:f}},dataFound:function(){this.parseTypes();this.findHeaderRow();this.parsed();this.complete()},parseCSV:function(){var q=this,r=this.options,p=r.csv,o=this.columns,m=r.startRow||0,k=r.endRow||Number.MAX_VALUE,h=r.startColumn||0,n=r.endColumn||Number.MAX_VALUE,l=0;p&&(p=p.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split(r.lineDelimiter||"\n"),b(p,function(g,d){var f=q.trim(g),e=f.indexOf("#")===0;d>=m&&d<=k&&!e&&f!==""&&(f=g.split(r.itemDelimiter||","),b(f,function(i,j){j>=h&&j<=n&&(o[j-h]||(o[j-h]=[]),o[j-h][l]=i)}),l+=1)}),this.dataFound())},parseTable:function(){var g=this.options,h=g.table,p=this.columns,o=g.startRow||0,m=g.endRow||Number.MAX_VALUE,l=g.startColumn||0,k=g.endColumn||Number.MAX_VALUE,n;h&&(typeof h==="string"&&(h=document.getElementById(h)),b(h.getElementsByTagName("tr"),function(e,d){n=0;d>=o&&d<=m&&b(e.childNodes,function(f){if((f.tagName==="TD"||f.tagName==="TH")&&n>=l&&n<=k){p[n]||(p[n]=[]),p[n][d-o]=f.innerHTML,n+=1}})}),this.dataFound())},parseGoogleSpreadsheet:function(){var s=this,t=this.options,r=t.googleSpreadsheetKey,q=this.columns,o=t.startRow||0,l=t.endRow||Number.MAX_VALUE,k=t.startColumn||0,p=t.endColumn||Number.MAX_VALUE,n,m;r&&jQuery.getJSON("https://spreadsheets.google.com/feeds/cells/"+r+"/"+(t.googleSpreadsheetWorksheet||"od6")+"/public/values?alt=json-in-script&callback=?",function(f){var f=f.feed.entry,i,g=f.length,d=0,h=0,e;for(e=0;e=k&&e<=p){q[e-k]=[],q[e-k].length=Math.min(h,l-o)}}for(e=0;e=k&&m<=p&&n>=o&&n<=l){q[m-k][n-o]=i.content.$t}}s.dataFound()})},findHeaderRow:function(){b(this.columns,function(){});this.headerRow=0},trim:function(d){return typeof d==="string"?d.replace(/^\s+|\s+$/g,""):d},parseTypes:function(){for(var e=this.columns,g=e.length,l,k,j,h;g--;){for(l=e[g].length;l--;){k=e[g][l],j=parseFloat(k),h=this.trim(k),h==j?(e[g][l]=j,j>31536000000?e[g].isDatetime=!0:e[g].isNumeric=!0):(k=this.parseDate(k),g===0&&typeof k==="number"&&!isNaN(k)?(e[g][l]=k,e[g].isDatetime=!0):e[g][l]=h===""?null:h)}}},dateFormats:{"YYYY-mm-dd":{regex:"^([0-9]{4})-([0-9]{2})-([0-9]{2})$",parser:function(d){return Date.UTC(+d[1],d[2]-1,+d[3])}}},parseDate:function(e){var g=this.options.parseDate,j,i,h;g&&(j=g(e));if(typeof e==="string"){for(i in this.dateFormats){g=this.dateFormats[i],(h=e.match(g.regex))&&(j=g.parser(h))}}return j},rowsToColumns:function(e){var g,l,k,j,h;if(e){h=[];l=e.length;for(g=0;g1&&(t=s.shift(),this.headerRow===0&&t.shift(),t.isDatetime?r="datetime":t.isNumeric||(r="category"));for(p=0;p1&&l[n].push(s[p+1][n]!==void 0?s[p+1][n]:null),o>2&&l[n].push(s[p+2][n]!==void 0?s[p+2][n]:null),o>3&&l[n].push(s[p+3][n]!==void 0?s[p+3][n]:null),o>4&&l[n].push(s[p+4][n]!==void 0?s[p+4][n]:null)}m[h]={name:s[p].name,data:l};p+=o}q.complete({xAxis:{type:r},series:m})}}});c.Data=a;c.data=function(d,e){return new a(d,e)};c.wrap(c.Chart.prototype,"init",function(e,f,h){var g=this;f&&f.data?c.data(c.extend(f.data,{complete:function(d){f.series&&b(f.series,function(i,j){f.series[j]=c.merge(i,d.series[j])});f=c.merge(d,f);e.call(g,f,h)}}),f):e.call(g,f,h)})})(Highcharts);