From 01a4327c2b70ffbd3fd2dc1ff9e65c3033fe7ab2 Mon Sep 17 00:00:00 2001 From: zhitomirskiyi <ilya@joindiaspora.com> Date: Fri, 21 Jan 2011 13:00:08 -0800 Subject: [PATCH] use google API instead of highcharts due to licensing --- Gemfile | 2 +- Gemfile.lock | 2 + app/controllers/statistics_controller.rb | 18 +-- app/views/statistics/show.html.haml | 10 +- public/javascripts/vendor/highcharts.js | 157 ----------------------- 5 files changed, 16 insertions(+), 173 deletions(-) delete mode 100644 public/javascripts/vendor/highcharts.js diff --git a/Gemfile b/Gemfile index 28bc7b5b4a..1c8bc47842 100644 --- a/Gemfile +++ b/Gemfile @@ -23,7 +23,7 @@ gem 'haml', '3.0.25' gem 'will_paginate', '3.0.pre2' #Statistics -gem 'lazy_high_charts', :git => 'git://github.com/xiaods/lazy_high_charts.git', :ref => 'c63f49ce10e1dad8a0b7' +gem 'googlecharts' #Uncatagorized gem 'roxml', :git => 'git://github.com/Empact/roxml.git', :ref => '7ea9a9ffd2338aaef5b0' diff --git a/Gemfile.lock b/Gemfile.lock index 7e92714a3c..732238cd79 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -184,6 +184,7 @@ GEM gem_plugin (0.2.3) gherkin (2.3.3) json (~> 1.4.6) + googlecharts (1.6.0) haml (3.0.25) hashie (0.4.0) highline (1.6.1) @@ -382,6 +383,7 @@ DEPENDENCIES fastercsv (= 1.5.4) fixture_builder (~> 0.2.0) fog + googlecharts haml (= 3.0.25) http_accept_language! jammit (= 0.5.4) diff --git a/app/controllers/statistics_controller.rb b/app/controllers/statistics_controller.rb index 2ef0440163..ac03c5e0b1 100644 --- a/app/controllers/statistics_controller.rb +++ b/app/controllers/statistics_controller.rb @@ -9,15 +9,17 @@ class StatisticsController < ApplicationController def show @statistic = Statistic.where(:id => params[:id]).first @distribution = @statistic.distribution_as_array - @h = LazyHighCharts::HighChart.new('graph') do |f| - f.series(:name=>'Posts on day', :data=> @distribution) - f.options[:x_axis][:categories] = (0..@distribution.length-1).to_a.map{|ind| ind%10==0 ? ind : ' '} + @google_chart_url = Gchart.line( :size => '700x400', + :title => "Posts on day", + :bg => 'efefef', + :legend => ['Posts'], + :data => @distribution, + :max_value => 1, + :axis_with_labels => ['x','y'], + :axis_labels => [(0..@distribution.length-1).to_a.map{|d| d%10==0 ? d : ''}, + (0..10).to_a.map!{|int| int.to_f/10}] + ) - f.options[:title] = "Posts on day" - f.options[:y_axis] = {:max => 1} - f.options[:y_axis][:title] = {:text => "% Users"} - f.options[:x_axis][:title] = {:text => "Posts"} - end end def generate_single diff --git a/app/views/statistics/show.html.haml b/app/views/statistics/show.html.haml index 9a50772e05..bbd8a4924f 100644 --- a/app/views/statistics/show.html.haml +++ b/app/views/statistics/show.html.haml @@ -2,15 +2,11 @@ -# licensed under the Affero General Public License version 3 or later. See -# the COPYRIGHT file. -- content_for :head do - = javascript_include_tag 'vendor/highcharts.js' +%h3 Viewing statistic -%h1 Viewing statistic - -%h3 +%h2 = "Users in sample: #{@statistic.users_in_sample}" - - = high_chart("posts_per_day", @h) += image_tag(@google_chart_url) %br = link_to 'all statistics', statistics_path diff --git a/public/javascripts/vendor/highcharts.js b/public/javascripts/vendor/highcharts.js deleted file mode 100644 index 270d97947e..0000000000 --- a/public/javascripts/vendor/highcharts.js +++ /dev/null @@ -1,157 +0,0 @@ -/* - Highcharts JS v2.1.0 (2010-11-23) - - (c) 2009-2010 Torstein H?nsi - - License: www.highcharts.com/license -*/ -(function(){function na(a,c){a||(a={});for(var b in c)a[b]=c[b];return a}function oa(a,c){return parseInt(a,c||10)}function Gb(a){return typeof a=="string"}function Hb(a){return typeof a=="object"}function bc(a){return typeof a=="number"}function wc(a,c){for(var b=a.length;b--;)if(a[b]==c){a.splice(b,1);break}}function M(a){return a!==Ma&&a!==null}function xa(a,c,b){var d,e;if(Gb(c))if(M(b))a.setAttribute(c,b);else{if(a&&a.getAttribute)e=a.getAttribute(c)}else if(M(c)&&Hb(c))for(d in c)a.setAttribute(d, -c[d]);return e}function mc(a){if(!a||a.constructor!=Array)a=[a];return a}function y(){var a=arguments,c,b;for(c=0;c<a.length;c++){b=a[c];if(M(b))return b}}function Vd(a){var c="",b;for(b in a)c+=Ad(b)+":"+a[b]+";";return c}function Xa(a,c){if(Zc)if(c&&c.opacity!==Ma)c.filter="alpha(opacity="+c.opacity*100+")";na(a.style,c)}function fb(a,c,b,d,e){a=Ca.createElement(a);c&&na(a,c);e&&Xa(a,{padding:0,border:mb,margin:0});b&&Xa(a,b);d&&d.appendChild(a);return a}function Ib(a,c){xc=y(a,c.animation)}function Bd(){var a= -Na.global.useUTC;yc=a?Date.UTC:function(c,b,d,e,f,g){return(new Date(c,b,y(d,1),y(e,0),y(f,0),y(g,0))).getTime()};$c=a?"getUTCMinutes":"getMinutes";ad=a?"getUTCHours":"getHours";bd=a?"getUTCDay":"getDay";nc=a?"getUTCDate":"getDate";zc=a?"getUTCMonth":"getMonth";Ac=a?"getUTCFullYear":"getFullYear";Cd=a?"setUTCMinutes":"setMinutes";Dd=a?"setUTCHours":"setHours";cd=a?"setUTCDate":"setDate";Ed=a?"setUTCMonth":"setMonth";Fd=a?"setUTCFullYear":"setFullYear"}function Bc(a){Cc||(Cc=fb(Jb));a&&Cc.appendChild(a); -Cc.innerHTML=""}function vb(a,c){var b=function(){};b.prototype=new a;na(b.prototype,c);return b}function Gd(a,c,b,d){var e=Na.lang;a=a;var f=isNaN(c=$a(c))?2:c;c=b===undefined?e.decimalPoint:b;d=d===undefined?e.thousandsSep:d;e=a<0?"-":"";b=oa(a=$a(+a||0).toFixed(f))+"";var g=(g=b.length)>3?g%3:0;return e+(g?b.substr(0,g)+d:"")+b.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+d)+(f?c+$a(a-b).toFixed(f).slice(2):"")}function Dc(){}function Hd(a,c){function b(l,h){function x(m,q){this.pos=m;this.minor=q; -this.isNew=true;q||this.addLabel()}function w(m){if(m){this.options=m;this.id=m.id}return this}function N(){var m=[],q=[],r;Oa=v=null;S=[];t(ya,function(o){r=false;t(["xAxis","yAxis"],function(da){if(o.isCartesian&&(da=="xAxis"&&ha||da=="yAxis"&&!ha)&&(o.options[da]==h.index||o.options[da]===Ma&&h.index===0)){o[da]=s;S.push(o);r=true}});if(!o.visible&&u.ignoreHiddenSeries)r=false;if(r){var V,W,G,B,ea;if(!ha){V=o.options.stacking;Ec=V=="percent";if(V){B=o.type+y(o.options.stack,"");ea="-"+B;o.stackKey= -B;W=m[B]||[];m[B]=W;G=q[ea]||[];q[ea]=G}if(Ec){Oa=0;v=99}}if(o.isCartesian){t(o.data,function(da){var C=da.x,ra=da.y,R=ra<0,X=R?G:W;R=R?ea:B;if(Oa===null)Oa=v=da[H];if(ha)if(C>v)v=C;else{if(C<Oa)Oa=C}else if(M(ra)){if(V)X[C]=M(X[C])?X[C]+ra:ra;da=X?X[C]:ra;if(!Ec)if(da>v)v=da;else if(da<Oa)Oa=da;if(V){aa[R]||(aa[R]={});aa[R][C]={total:da,cum:da}}}});if(/(area|column|bar)/.test(o.type)&&!ha)if(Oa>=0){Oa=0;Id=true}else if(v<0){v=0;Jd=true}}}})}function fa(m,q){var r;Kb=q?1:Pa.pow(10,Lb(Pa.log(m)/Pa.LN10)); -r=m/Kb;if(!q){q=[1,2,2.5,5,10];if(h.allowDecimals===false)if(Kb==1)q=[1,2,5,10];else if(Kb<=0.1)q=[1/Kb]}for(var o=0;o<q.length;o++){m=q[o];if(r<=(q[o]+(q[o+1]||q[o]))/2)break}m*=Kb;return m}function A(m){var q=(Kb<1?T(1/Kb):1)*10;return T(m*q)/q}function Ta(){var m,q,r,o,V=h.tickInterval,W=h.tickPixelInterval;m=h.maxZoom||(ha?ab(l.smallestInterval*5,v-Oa):null);D=L?za:pa;if(Mb){r=l[ha?"xAxis":"yAxis"][h.linkedTo];o=r.getExtremes();I=y(o.min,o.dataMin);P=y(o.max,o.dataMax)}else{I=y(va,h.min,Oa);P= -y(Qa,h.max,v)}if(P-I<m){o=(m-P+I)/2;I=Aa(I-o,y(h.min,I-o),Oa);P=ab(I+m,y(h.max,I+m),v)}if(!gb&&!Ec&&!Mb&&M(I)&&M(P)){m=P-I||1;if(!M(h.min)&&!M(va)&&Vb&&(Oa<0||!Id))I-=m*Vb;if(!M(h.max)&&!M(Qa)&&Kd&&(v>0||!Jd))P+=m*Kd}Ua=I==P?1:Mb&&!V&&W==r.options.tickPixelInterval?r.tickInterval:y(V,gb?1:(P-I)*W/D);if(!J&&!M(h.tickInterval))s.tickInterval=Ua=fa(Ua);Fc=h.minorTickInterval==="auto"&&Ua?Ua/5:h.minorTickInterval;if(J){ka=[];V=Na.global.useUTC;var G=1E3/nb,B=6E4/nb,ea=36E5/nb;W=864E5/nb;m=6048E5/nb;o= -2592E6/nb;var da=31556952E3/nb,C=[["second",G,[1,2,5,10,15,30]],["minute",B,[1,2,5,10,15,30]],["hour",ea,[1,2,3,4,6,8,12]],["day",W,[1,2]],["week",m,[1,2]],["month",o,[1,2,3,4,6]],["year",da,null]],ra=C[6],R=ra[1],X=ra[2];for(r=0;r<C.length;r++){ra=C[r];R=ra[1];X=ra[2];if(C[r+1])if(Ua<=(R*X[X.length-1]+C[r+1][1])/2)break}if(R==da&&Ua<5*R)X=[1,2,5];C=fa(Ua/R,X);X=new Date(I*nb);X.setMilliseconds(0);if(R>=G)X.setSeconds(R>=B?0:C*Lb(X.getSeconds()/C));if(R>=B)X[Cd](R>=ea?0:C*Lb(X[$c]()/C));if(R>=ea)X[Dd](R>= -W?0:C*Lb(X[ad]()/C));if(R>=W)X[cd](R>=o?1:C*Lb(X[nc]()/C));if(R>=o){X[Ed](R>=da?0:C*Lb(X[zc]()/C));q=X[Ac]()}if(R>=da){q-=q%C;X[Fd](q)}R==m&&X[cd](X[nc]()-X[bd]()+h.startOfWeek);r=1;q=X[Ac]();G=X.getTime()/nb;B=X[zc]();for(ea=X[nc]();G<P&&r<za;){ka.push(G);if(R==da)G=yc(q+r*C,0)/nb;else if(R==o)G=yc(q,B+r*C)/nb;else if(!V&&(R==W||R==m))G=yc(q,B,ea+r*C*(R==W?1:7));else G+=R*C;r++}ka.push(G);Gc=h.dateTimeLabelFormats[ra[0]]}else{r=Lb(I/Ua)*Ua;q=dd(P/Ua)*Ua;ka=[];for(r=A(r);r<=q;){ka.push(r);r=A(r+Ua)}}if(!Mb){if(gb|| -ha&&l.hasColumn){q=(gb?1:Ua)*0.5;I-=q;P+=q}q=ka[0];r=ka[ka.length-1];if(h.startOnTick)I=q;else I>q&&ka.shift();if(h.endOnTick)P=r;else P<r&&ka.pop();Nb||(Nb={x:0,y:0});if(!J&&ka.length>Nb[H])Nb[H]=ka.length}}function Da(){var m,q;hb=I;cc=P;N();Ta();ba=E;E=D/(P-I||1);if(!ha)for(m in aa)for(q in aa[m])aa[m][q].cum=aa[m][q].total;if(!s.isDirty)s.isDirty=I!=hb||P!=cc}function sa(m){m=(new w(m)).render();Ob.push(m);return m}function Ya(){var m=h.title,q=h.alternateGridColor,r=h.lineWidth,o,V,W=l.hasRendered, -G=W&&M(hb)&&!isNaN(hb);o=S.length&&M(I)&&M(P);D=L?za:pa;E=D/(P-I||1);ta=L?U:ob;if(o||Mb){if(Fc&&!gb)for(o=I+(ka[0]-I)%Fc;o<=P;o+=Fc){Wb[o]||(Wb[o]=new x(o,true));G&&Wb[o].isNew&&Wb[o].render(null,true);Wb[o].isActive=true;Wb[o].render()}t(ka,function(B,ea){if(!Mb||B>=I&&B<=P){G&&pb[B].isNew&&pb[B].render(ea,true);pb[B].isActive=true;pb[B].render(ea)}});q&&t(ka,function(B,ea){if(ea%2===0&&B<P){dc[B]||(dc[B]=new w);dc[B].options={from:B,to:ka[ea+1]!==Ma?ka[ea+1]:P,color:q};dc[B].render();dc[B].isActive= -true}});W||t((h.plotLines||[]).concat(h.plotBands||[]),function(B){Ob.push((new w(B)).render())})}t([pb,Wb,dc],function(B){for(var ea in B)if(B[ea].isActive)B[ea].isActive=false;else{B[ea].destroy();delete B[ea]}});if(r){o=U+(Ja?za:0)+Q;V=Ka-ob-(Ja?pa:0)+Q;o=Y.crispLine([Va,L?U:o,L?V:Z,Ba,L?Ra-yb:o,L?V:Ka-ob],r);if(Ea)Ea.animate({d:o});else Ea=Y.path(o).attr({stroke:h.lineColor,"stroke-width":r,zIndex:7}).add()}if(s.axisTitle){o=L?U:Z;r=oa(m.style.fontSize||12);o={low:o+(L?0:D),middle:o+D/2,high:o+ -(L?D:0)}[m.align];r=(L?Z+pa:U)+(L?1:-1)*(Ja?-1:1)*ed+(F==2?r:0);s.axisTitle[W?"animate":"attr"]({x:L?o:r+(Ja?za:0)+Q+(m.x||0),y:L?r-(Ja?pa:0)+Q:o+(m.y||0)})}s.isDirty=false}function Ga(m){for(var q=0;q<Ob.length;q++)Ob[q].id==m&&Ob[q].destroy()}var ha=h.isX,Ja=h.opposite,L=Fa?!ha:ha,F=L?Ja?0:2:Ja?1:3,aa={};h=ua(ha?Hc:fd,[Wd,Xd,Ld,Yd][F],h);var s=this,J=h.type=="datetime",Q=h.offset||0,H=ha?"x":"y",D,E,ba,ta=L?U:ob,la,qa,cb,zb,Ea,Oa,v,S,va,Qa,P=null,I=null,hb,cc,Vb=h.minPadding,Kd=h.maxPadding,Mb= -M(h.linkedTo),Id,Jd,Ec,Md=h.events,gd,Ob=[],Ua,Fc,Kb,ka,pb={},Wb={},dc={},ec,fc,ed,Gc,gb=h.categories,Zd=h.labels.formatter||function(){var m=this.value;return Gc?Ic(Gc,m):Ua%1E6===0?m/1E6+"M":Ua%1E3===0?m/1E3+"k":!gb&&m>=1E3?Gd(m,0):m},Jc=L&&h.labels.staggerLines,Xb=h.reversed,Yb=gb&&h.tickmarkPlacement=="between"?0.5:0;x.prototype={addLabel:function(){var m=this.pos,q=h.labels,r=!(m==I&&!y(h.showFirstLabel,1)||m==P&&!y(h.showLastLabel,0)),o=this.label;m=Zd.call({isFirst:m==ka[0],isLast:m==ka[ka.length- -1],dateTimeLabelFormat:Gc,value:gb&&gb[m]?gb[m]:m});if(o===Ma)this.label=M(m)&&r&&q.enabled?Y.text(m,0,0).attr({align:q.align,rotation:q.rotation}).css(q.style).add(cb):null;else o&&o.attr({text:m})},getLabelSize:function(){var m=this.label;return m?(this.labelBBox=m.getBBox())[L?"height":"width"]:0},render:function(m,q){var r=!this.minor,o=this.label,V=this.pos,W=h.labels,G=this.gridLine,B=r?h.gridLineWidth:h.minorGridLineWidth,ea=r?h.gridLineColor:h.minorGridLineColor,da=r?h.gridLineDashStyle:h.minorGridLineDashStyle, -C=this.mark,ra=r?h.tickLength:h.minorTickLength,R=r?h.tickWidth:h.minorTickWidth||0,X=r?h.tickColor:h.minorTickColor,oc=r?h.tickPosition:h.minorTickPosition;r=W.step;var qb=q&&Kc||Ka,Pb;Pb=L?la(V+Yb,null,null,q)+ta:U+Q+(Ja?(q&&hd||Ra)-yb-U:0);qb=L?qb-ob+Q-(Ja?pa:0):qb-la(V+Yb,null,null,q)-ta;if(B){V=qa(V+Yb,B,q);if(G===Ma){G={stroke:ea,"stroke-width":B};if(da)G.dashstyle=da;this.gridLine=G=B?Y.path(V).attr(G).add(zb):null}G&&V&&G.animate({d:V})}if(R){if(oc=="inside")ra=-ra;if(Ja)ra=-ra;B=Y.crispLine([Va, -Pb,qb,Ba,Pb+(L?0:-ra),qb+(L?ra:0)],R);if(C)C.animate({d:B});else this.mark=Y.path(B).attr({stroke:X,"stroke-width":R}).add(cb)}if(o){Pb=Pb+W.x-(Yb&&L?Yb*E*(Xb?-1:1):0);qb=qb+W.y-(Yb&&!L?Yb*E*(Xb?1:-1):0);if(Jc)qb+=m%Jc*16;if(r)o[m%r?"hide":"show"]();o[this.isNew?"attr":"animate"]({x:Pb,y:qb})}this.isNew=false},destroy:function(){for(var m in this)this[m]&&this[m].destroy&&this[m].destroy()}};w.prototype={render:function(){var m=this,q=m.options,r=q.label,o=m.label,V=q.width,W=q.to,G,B=q.from,ea=q.dashStyle, -da=m.svgElem,C=[],ra,R,X=q.color;R=q.zIndex;var oc=q.events;if(V){C=qa(q.value,V);q={stroke:X,"stroke-width":V};if(ea)q.dashstyle=ea}else if(M(B)&&M(W)){B=Aa(B,I);W=ab(W,P);G=qa(W);if((C=qa(B))&&G)C.push(G[4],G[5],G[1],G[2]);else C=null;q={fill:X}}else return;if(M(R))q.zIndex=R;if(da)if(C)da.animate({d:C},null,da.onGetPath);else{da.hide();da.onGetPath=function(){da.show()}}else if(C&&C.length){m.svgElem=da=Y.path(C).attr(q).add();if(oc){ea=function(qb){da.on(qb,function(Pb){oc[qb].apply(m,[Pb])})}; -for(ra in oc)ea(ra)}}if(r&&M(r.text)&&C&&C.length&&za>0&&pa>0){r=ua({align:L&&G&&"center",x:L?!G&&4:10,verticalAlign:!L&&G&&"middle",y:L?G?16:10:G?6:-4,rotation:L&&!G&&90},r);if(!o)m.label=o=Y.text(r.text,0,0).attr({align:r.textAlign||r.align,rotation:r.rotation,zIndex:R}).css(r.style).add();G=[C[1],C[4],C[6]||C[1]];C=[C[2],C[5],C[7]||C[2]];ra=ab.apply(Pa,G);R=ab.apply(Pa,C);o.align(r,false,{x:ra,y:R,width:Aa.apply(Pa,G)-ra,height:Aa.apply(Pa,C)-R});o.show()}else o&&o.hide();return m},destroy:function(){for(var m in this){this[m]&& -this[m].destroy&&this[m].destroy();delete this[m]}wc(Ob,this)}};la=function(m,q,r,o){var V=1,W=0,G=o?ba:E;o=o?hb:I;G||(G=E);if(r){V*=-1;W=D}if(Xb){V*=-1;W-=V*D}if(q){if(Xb)m=D-m;m=m/G+o}else m=V*(m-o)*G+W;return m};qa=function(m,q,r){var o,V,W;m=la(m,null,null,r);var G=r&&Kc||Ka,B=r&&hd||Ra,ea;r=V=T(m+ta);o=W=T(G-m-ta);if(isNaN(m))ea=true;else if(L){o=Z;W=G-ob;if(r<U||r>U+za)ea=true}else{r=U;V=B-yb;if(o<Z||o>Z+pa)ea=true}return ea?null:Y.crispLine([Va,r,o,Ba,V,W],q||0)};if(Fa&&ha&&Xb===Ma)Xb=true; -na(s,{addPlotBand:sa,addPlotLine:sa,adjustTickAmount:function(){if(!J&&!gb&&!Mb){var m=ec,q=ka.length;ec=Nb[H];if(q<ec){for(;ka.length<ec;)ka.push(A(ka[ka.length-1]+Ua));E*=(q-1)/(ec-1);P=ka[ka.length-1]}if(M(m)&&ec!=m)s.isDirty=true}},categories:gb,getExtremes:function(){return{min:I,max:P,dataMin:Oa,dataMax:v}},getPlotLinePath:qa,getThreshold:function(m){if(I>m)m=I;else if(P<m)m=P;return la(m,0,1)},isXAxis:ha,options:h,plotLinesAndBands:Ob,getOffset:function(){var m=S.length&&M(I)&&M(P),q=0,r=0, -o=h.title,V=h.labels,W=[-1,1,1,-1][F];if(!cb){cb=Y.g("axis").attr({zIndex:7}).add();zb=Y.g("grid").attr({zIndex:1}).add()}fc=0;if(m||Mb){t(ka,function(B){if(pb[B])pb[B].addLabel();else pb[B]=new x(B);if(F===0||F==2||{1:"left",3:"right"}[F]==V.align)fc=Aa(pb[B].getLabelSize(),fc)});if(Jc)fc+=(Jc-1)*16}else for(var G in pb){pb[G].destroy();delete pb[G]}if(o&&o.text){if(!s.axisTitle)s.axisTitle=Y.text(o.text,0,0).attr({zIndex:7,rotation:o.rotation||0,align:o.textAlign||{low:"left",middle:"center",high:"right"}[o.align]}).css(o.style).add(); -q=s.axisTitle.getBBox()[L?"height":"width"];r=y(o.margin,L?5:10)}Q=W*(h.offset||Qb[F]);ed=fc+(F!=2&&fc&&W*h.labels[L?"y":"x"])+r;Qb[F]=Aa(Qb[F],ed+q+W*Q)},render:Ya,setCategories:function(m,q){s.categories=gb=m;t(S,function(r){r.translate();r.setTooltipPoints(true)});s.isDirty=true;y(q,true)&&l.redraw()},setExtremes:function(m,q,r,o){Ib(o,l);r=y(r,true);Ha(s,"setExtremes",{min:m,max:q},function(){va=m;Qa=q;r&&l.redraw()})},setScale:Da,setTickPositions:Ta,translate:la,redraw:function(){gc.resetTracker&& -gc.resetTracker();Ya();t(Ob,function(m){m.render()});t(S,function(m){m.isDirty=true})},removePlotBand:Ga,removePlotLine:Ga,reversed:Xb,stacks:aa});for(gd in Md)La(s,gd,Md[gd]);Da()}function d(){var l={};return{add:function(h,x,w,N){if(!l[h]){x=Y.text(x,0,0).css(a.toolbar.itemStyle).align({align:"right",x:-yb-20,y:Z+30}).on("click",N).attr({align:"right",zIndex:20}).add();l[h]=x}},remove:function(h){Bc(l[h].element);l[h]=null}}}function e(l){function h(){var H=this.points||mc(this.point),D=H[0].series.xAxis, -E=this.x;D=D&&D.options.type=="datetime";var ba=Gb(E)||D,ta,la;la=ba?['<span style="font-size: 10px">',D?Ic("%A, %b %e, %Y",E):E,"</span><br/>"]:[];t(H,function(qa){ta=qa.series;la.push('<span style="color:'+ta.color+'">',qa.name||ta.name,"</span>: ",!ba?"<b>x = "+(qa.name||qa.x)+",</b> ":"","<b>",!ba?"y = ":"",qa.y,"</b><br/>")});return la.join("")}function x(H,D){F=ha?H:(2*F+H)/3;aa=ha?D:(aa+D)/2;s.translate(F,aa);id=$a(H-F)>1||$a(D-aa)>1?function(){x(H,D)}:null}function w(){if(!ha){var H=p.hoverPoints; -s.hide();t(Ta,function(D){D.hide()});H&&t(H,function(D){D.setState()});p.hoverPoints=null;ha=true}}var N,fa=l.borderWidth,A=l.crosshairs,Ta=[],Da=l.style,sa=l.shared,Ya=oa(Da.padding),Ga=fa+Ya,ha=true,Ja,L,F=0,aa=0;Da.padding=0;var s=Y.g("tooltip").attr({zIndex:8}).add(),J=Y.rect(Ga,Ga,0,0,l.borderRadius,fa).attr({fill:l.backgroundColor,"stroke-width":fa}).add(s).shadow(l.shadow),Q=Y.text("",Ya+Ga,oa(Da.fontSize)+Ya+Ga).attr({zIndex:1}).css(Da).add(s);s.hide();return{shared:sa,refresh:function(H){var D, -E,ba,ta=0,la={},qa=[];ba=H.tooltipPos;D=l.formatter||h;la=p.hoverPoints;var cb=function(Ea){return{series:Ea.series,point:Ea,x:Ea.category,y:Ea.y,percentage:Ea.percentage,total:Ea.total||Ea.stackTotal}};if(sa){la&&t(la,function(Ea){Ea.setState()});p.hoverPoints=H;t(H,function(Ea){Ea.setState(wb);ta+=Ea.plotY;qa.push(cb(Ea))});E=H[0].plotX;ta=T(ta)/H.length;la={x:H[0].category};la.points=qa;H=H[0]}else la=cb(H);la=D.call(la);N=H.series;E=sa?E:H.plotX;ta=sa?ta:H.plotY;D=T(ba?ba[0]:Fa?za-ta:E);E=T(ba? -ba[1]:Fa?pa-E:ta);ba=!H.series.isCartesian||hc(D,E);if(la===false||!ba)w();else{if(ha){s.show();ha=false}Q.attr({text:la});ba=Q.getBBox();Ja=ba.width;L=ba.height;J.attr({width:Ja+2*Ya,height:L+2*Ya,stroke:l.borderColor||H.color||N.color||"#606060"});D=D-Ja+U-25;E=E-L+Z+10;if(D<7){D=7;E-=30}if(E<5)E=5;else if(E+L>Ka)E=Ka-L-5;x(T(D-Ga),T(E-Ga))}if(A){A=mc(A);E=A.length;for(var zb;E--;)if(A[E]&&(zb=H.series[E?"yAxis":"xAxis"])){D=zb.getPlotLinePath(H[E?"y":"x"],1);if(Ta[E])Ta[E].attr({d:D,visibility:Ab}); -else{ba={"stroke-width":A[E].width||1,stroke:A[E].color||"#C0C0C0",zIndex:2};if(A[E].dashStyle)ba.dashstyle=A[E].dashStyle;Ta[E]=Y.path(D).attr(ba).add()}}}},hide:w}}function f(l,h){function x(F){var aa;F=F||rb.event;if(!F.target)F.target=F.srcElement;aa=F.touches?F.touches.item(0):F;if(F.type!="mousemove"||rb.opera){for(var s=wa,J={left:s.offsetLeft,top:s.offsetTop};s=s.offsetParent;){J.left+=s.offsetLeft;J.top+=s.offsetTop;if(s!=Ca.body&&s!=Ca.documentElement){J.left-=s.scrollLeft;J.top-=s.scrollTop}}pc= -J}if(Zc){F.chartX=F.x;F.chartY=F.y}else if(aa.layerX===Ma){F.chartX=aa.pageX-pc.left;F.chartY=aa.pageY-pc.top}else{F.chartX=F.layerX;F.chartY=F.layerY}return F}function w(F){var aa={xAxis:[],yAxis:[]};t(Wa,function(s){var J=s.translate,Q=s.isXAxis;aa[Q?"xAxis":"yAxis"].push({axis:s,value:J((Fa?!Q:Q)?F.chartX-U:pa-F.chartY+Z,true)})});return aa}function N(){var F=l.hoverSeries,aa=l.hoverPoint;aa&&aa.onMouseOut();F&&F.onMouseOut();qc&&qc.hide();jd=null}function fa(){if(sa){var F={xAxis:[],yAxis:[]}, -aa=sa.getBBox(),s=aa.x-U,J=aa.y-Z;if(Da){t(Wa,function(Q){var H=Q.translate,D=Q.isXAxis,E=Fa?!D:D,ba=H(E?s:pa-J-aa.height,true);H=H(E?s+aa.width:pa-J,true);F[D?"xAxis":"yAxis"].push({axis:Q,min:ab(ba,H),max:Aa(ba,H)})});Ha(l,"selection",F,kd)}sa=sa.destroy()}l.mouseIsDown=ld=Da=false;Bb(Ca,Eb?"touchend":"mouseup",fa)}var A,Ta,Da,sa,Ya=u.zoomType,Ga=/x/.test(Ya),ha=/y/.test(Ya),Ja=Ga&&!Fa||ha&&Fa,L=ha&&!Fa||Ga&&Fa;Lc=function(){if(Mc){Mc.translate(U,Z);Fa&&Mc.attr({width:l.plotWidth,height:l.plotHeight}).invert()}else l.trackerGroup= -Mc=Y.g("tracker").attr({zIndex:9}).add()};Lc();if(h.enabled)l.tooltip=qc=e(h);(function(){var F=true;wa.onmousedown=function(s){s=x(s);l.mouseIsDown=ld=true;A=s.chartX;Ta=s.chartY;La(Ca,Eb?"touchend":"mouseup",fa)};var aa=function(s){if(!(s&&s.touches&&s.touches.length>1)){s=x(s);if(!Eb)s.returnValue=false;var J=s.chartX,Q=s.chartY,H=!hc(J-U,Q-Z);if(Eb&&s.type=="touchstart")if(xa(s.target,"isTracker"))l.runTrackerClick||s.preventDefault();else!$d&&!H&&s.preventDefault();if(H){F||N();if(J<U)J=U;else if(J> -U+za)J=U+za;if(Q<Z)Q=Z;else if(Q>Z+pa)Q=Z+pa}if(ld&&s.type!="touchstart"){if(Da=Math.sqrt(Math.pow(A-J,2)+Math.pow(Ta-Q,2))>10){if(ic&&(Ga||ha)&&hc(A-U,Ta-Z))sa||(sa=Y.rect(U,Z,Ja?1:za,L?1:pa,0).attr({fill:"rgba(69,114,167,0.25)",zIndex:7}).add());if(sa&&Ja){J=J-A;sa.attr({width:$a(J),x:(J>0?0:J)+A})}if(sa&&L){Q=Q-Ta;sa.attr({height:$a(Q),y:(Q>0?0:Q)+Ta})}}}else if(!H){var D;Q=l.hoverPoint;J=l.hoverSeries;var E,ba,ta=Ra,la=Fa?s.chartY:s.chartX-U;if(qc&&h.shared){D=[];E=ya.length;for(ba=0;ba<E;ba++)if(ya[ba].visible&& -ya[ba].tooltipPoints.length){s=ya[ba].tooltipPoints[la];s._dist=$a(la-s.plotX);ta=ab(ta,s._dist);D.push(s)}for(E=D.length;E--;)D[E]._dist>ta&&D.splice(E,1);if(D.length&&D[0].plotX!=jd){qc.refresh(D);jd=D[0].plotX}}if(J&&J.tracker)(s=J.tooltipPoints[la])&&s!=Q&&s.onMouseOver()}return(F=H)||!ic}};wa.onmousemove=aa;La(wa,"mouseleave",N);wa.ontouchstart=function(s){if(Ga||ha)wa.onmousedown(s);aa(s)};wa.ontouchmove=aa;wa.ontouchend=function(){Da&&N()};wa.onclick=function(s){var J=l.hoverPoint;s=x(s);s.cancelBubble= -true;if(!Da)if(J&&xa(s.target,"isTracker")){var Q=J.plotX,H=J.plotY;na(J,{pageX:pc.left+U+(Fa?za-H:Q),pageY:pc.top+Z+(Fa?pa-Q:H)});Ha(J.series,"click",na(s,{point:J}));J.firePointEvent("click",s)}else{na(s,w(s));hc(s.chartX-U,s.chartY-Z)&&Ha(l,"click",s)}Da=false}})();Nd=setInterval(function(){id&&id()},32);na(this,{zoomX:Ga,zoomY:ha,resetTracker:N})}function g(l){var h=l.type||u.type||u.defaultSeriesType,x=sb[h],w=p.hasRendered;if(w)if(Fa&&h=="column")x=sb.bar;else if(!Fa&&h=="bar")x=sb.column;h= -new x;h.init(p,l);if(!w&&h.inverted)Fa=true;if(h.isCartesian)ic=h.isCartesian;ya.push(h);return h}function i(){u.alignTicks!==false&&t(Wa,function(l){l.adjustTickAmount()});Nb=null}function j(l){var h=p.isDirtyLegend,x,w=p.isDirtyBox,N=ya.length,fa=N;for(Ib(l,p);fa--;){l=ya[fa];if(l.isDirty&&l.options.stacking){x=true;break}}if(x)for(fa=N;fa--;){l=ya[fa];if(l.options.stacking)l.isDirty=true}t(ya,function(A){if(A.isDirty){A.cleanData();A.getSegments();if(A.options.legendType=="point")h=true}});if(h&& -md.renderLegend){md.renderLegend();p.isDirtyLegend=false}if(ic){if(!Nc){Nb=null;t(Wa,function(A){A.setScale()})}i();rc();t(Wa,function(A){if(A.isDirty||w){A.redraw();w=true}})}if(w){nd();Lc()}t(ya,function(A){A.isDirty&&A.visible&&A.redraw()});gc&&gc.resetTracker&&gc.resetTracker();Ha(p,"redraw")}function k(){var l=a.xAxis||{},h=a.yAxis||{},x;l=mc(l);t(l,function(w,N){w.index=N;w.isX=true});h=mc(h);t(h,function(w,N){w.index=N});Wa=l.concat(h);p.xAxis=[];p.yAxis=[];Wa=jc(Wa,function(w){x=new b(p,w); -p[x.isXAxis?"xAxis":"yAxis"].push(x);return x});i()}function n(l,h){kc=ua(a.title,l);sc=ua(a.subtitle,h);t([["title",l,kc],["subtitle",h,sc]],function(x){var w=x[0],N=p[w],fa=x[1];x=x[2];if(N&&fa){N.destroy();N=null}if(x&&x.text&&!N)p[w]=Y.text(x.text,0,0).attr({align:x.align,"class":"highcharts-"+w,zIndex:1}).css(x.style).add().align(x,false,tc)})}function z(){ib=u.renderTo;Od=Zb+od++;if(Gb(ib))ib=Ca.getElementById(ib);ib.innerHTML="";if(!ib.offsetWidth){Rb=ib.cloneNode(0);Xa(Rb,{position:lc,top:"-9999px", -display:""});Ca.body.appendChild(Rb)}Oc=(Rb||ib).offsetWidth;uc=(Rb||ib).offsetHeight;p.chartWidth=Ra=u.width||Oc||600;p.chartHeight=Ka=u.height||(uc>19?uc:400);p.container=wa=fb(Jb,{className:"highcharts-container"+(u.className?" "+u.className:""),id:Od},na({position:Pd,overflow:Cb,width:Ra+bb,height:Ka+bb,textAlign:"left"},u.style),Rb||ib);p.renderer=Y=u.renderer=="SVG"?new Pc(wa,Ra,Ka):new Qd(wa,Ra,Ka);var l;if(/Gecko/.test(Qc)){l=function(){Xa(wa,{left:0,top:0});var h=wa.getBoundingClientRect(); -Xa(wa,{left:-h.left%1+bb,top:-h.top%1+bb})};l();La(rb,"resize",l);La(p,"destroy",function(){Bb(rb,"resize",l)})}}function K(){function l(){var x=u.width||ib.offsetWidth,w=u.height||ib.offsetHeight;if(x&&w){if(x!=Oc||w!=uc){clearTimeout(h);h=setTimeout(function(){pd(x,w,false)},100)}Oc=x;uc=w}}var h;La(window,"resize",l);La(p,"destroy",function(){Bb(window,"resize",l)})}function ia(){var l=a.labels,h=a.credits,x;n();md=p.legend=new ae(p);rc();t(Wa,function(w){w.setTickPositions(true)});i();rc();nd(); -ic&&t(Wa,function(w){w.render()});if(!p.seriesGroup)p.seriesGroup=Y.g("series-group").attr({zIndex:3}).add();t(ya,function(w){w.translate();w.setTooltipPoints();w.render()});l.items&&t(l.items,function(){var w=na(l.style,this.style),N=oa(w.left)+U,fa=oa(w.top)+Z+12;delete w.left;delete w.top;Y.text(this.html,N,fa).attr({zIndex:2}).css(w).add()});if(!p.toolbar)p.toolbar=d(p);if(h.enabled&&!p.credits){x=h.href;Y.text(h.text,0,0).on("click",function(){if(x)location.href=x}).attr({align:h.position.align, -zIndex:8}).css(h.style).add().align(h.position)}Lc();p.hasRendered=true;if(Rb){ib.appendChild(wa);Bc(Rb)}}function $(){var l=ya.length,h=wa.parentNode;Ha(p,"destroy");Bb(rb,"unload",$);Bb(p);for(t(Wa,function(x){Bb(x)});l--;)ya[l].destroy();wa.innerHTML="";Bb(wa);h&&h.removeChild(wa);wa=null;Y.alignedObjects=null;clearInterval(Nd);for(l in p)delete p[l]}function ga(){if(!Rc&&Ca.readyState!="complete")Ca.attachEvent("onreadystatechange",function(){Ca.detachEvent("onreadystatechange",ga);ga()});else{z(); -qd();rd();t(a.series||[],function(l){g(l)});p.inverted=Fa=y(Fa,a.chart.inverted);k();p.render=ia;p.tracker=gc=new f(p,a.tooltip);ia();Ha(p,"load");c&&c.apply(p,[p]);t(p.callbacks,function(l){l.apply(p,[p])})}}Hc=ua(Hc,Na.xAxis);fd=ua(fd,Na.yAxis);Na.xAxis=Na.yAxis=null;a=ua(Na,a);var u=a.chart,O=u.margin;O=Hb(O)?O:[O,O,O,O];var ja=y(u.marginTop,O[0]),Sa=y(u.marginRight,O[1]),ca=y(u.marginBottom,O[2]),ma=y(u.marginLeft,O[3]),Za=u.spacingTop,jb=u.spacingRight,sd=u.spacingBottom,Sc=u.spacingLeft,tc, -kc,sc,Z,yb,ob,U,Qb,ib,Rb,wa,Od,Oc,uc,Ra,Ka,hd,Kc,td,ud,vd,wd,p=this,$d=(O=u.events)&&!!O.click,xd,hc,qc,ld,$b,Rd,yd,pa,za,gc,Mc,Lc,md,Sb,Tb,pc,ic=u.showAxes,Nc=0,Wa=[],Nb,ya=[],Fa,Y,id,Nd,jd,nd,rc,qd,rd,pd,kd,Sd,ae=function(l){function h(v,S){var va=v.legendItem,Qa=v.legendLine,P=v.legendSymbol,I=L.color,hb=S?A.itemStyle.color:I;I=S?v.color:I;va&&va.css({fill:hb});Qa&&Qa.attr({stroke:I});P&&P.attr({stroke:I,fill:I})}function x(v,S,va){var Qa=v.legendItem,P=v.legendLine,I=v.legendSymbol;v=v.checkbox; -Qa&&Qa.attr({x:S,y:va});P&&P.translate(S,va-4);I&&I.attr({x:S+I.xOff,y:va+I.yOff});if(v){v.x=S;v.y=va}}function w(){t(Ya,function(v){var S=v.checkbox;S&&Xa(S,{left:qa.attr("translateX")+v.legendItemWidth+S.x-40+bb,top:qa.attr("translateY")+S.y-11+bb})})}function N(v){var S,va,Qa,P,I,hb=v.legendItem;P=v.series||v;if(!hb){I=/^(bar|pie|area|column)$/.test(P.type);v.legendItem=hb=Y.text(A.labelFormatter.call(v),0,0).css(v.visible?ha:L).on("mouseover",function(){v.setState(wb);hb.css(Ja)}).on("mouseout", -function(){hb.css(v.visible?ha:L);v.setState()}).on("click",function(){var Vb=function(){v.setVisible()};v.firePointEvent?v.firePointEvent("legendItemClick",null,Vb):Ha(v,"legendItemClick",null,Vb)}).attr({zIndex:2}).add(qa);if(!I&&v.options&&v.options.lineWidth){var cc=v.options;P={"stroke-width":cc.lineWidth,zIndex:2};if(cc.dashStyle)P.dashstyle=cc.dashStyle;v.legendLine=Y.path([Va,-Da-sa,0,Ba,-sa,0]).attr(P).add(qa)}if(I)S=Y.rect(va=-Da-sa,Qa=-11,Da,12,2).attr({"stroke-width":0,zIndex:3}).add(qa); -else if(v.options&&v.options.marker&&v.options.marker.enabled)S=Y.symbol(v.symbol,va=-Da/2-sa,Qa=-4,v.options.marker.radius).attr(v.pointAttr[db]).attr({zIndex:3}).add(qa);if(S){S.xOff=va;S.yOff=Qa}v.legendSymbol=S;h(v,v.visible);if(v.options&&v.options.showCheckbox){v.checkbox=fb("input",{type:"checkbox",checked:v.selected,defaultChecked:v.selected},A.itemCheckboxStyle,wa);La(v.checkbox,"click",function(Vb){Ha(v,"checkboxClick",{checked:Vb.target.checked},function(){v.select()})})}}x(v,Q,H);S=hb.getBBox(); -D=H;E=S.height;v.legendItemWidth=S=A.itemWidth||Da+sa+S.width+aa;if(Ta){Q+=S;cb=zb||Aa(Q-J,cb);if(Q-J+S>(zb||Ra-2*F-J)){Q=J;H+=E}}else{H+=E;cb=zb||Aa(S,cb)}Ya.push(v)}function fa(){Q=J;H=s;D=cb=0;Ya=[];qa||(qa=Y.g("legend").attr({zIndex:7}).add());Oa&&Ea.reverse();t(Ea,function(Qa){if(Qa.options.showInLegend)t(Qa.options.legendType=="point"?Qa.data:[Qa],N)});Oa&&Ea.reverse();Sb=zb||cb;Tb=D-s+E;if(ta||la){Sb+=2*F;Tb+=2*F;if(ba)Sb>0&&Tb>0&&ba.animate({width:Sb,height:Tb});else ba=Y.rect(0,0,Sb,Tb,A.borderRadius, -ta||0).attr({stroke:A.borderColor,"stroke-width":ta||0,fill:la||mb}).add(qa).shadow(A.shadow);ba[Ya.length?"show":"hide"]()}for(var v=["left","right","top","bottom"],S,va=4;va--;){S=v[va];if(Ga[S]&&Ga[S]!="auto"){A[va<2?"align":"verticalAlign"]=S;A[va<2?"x":"y"]=oa(Ga[S])*(va%2?-1:1)}}qa.align(na(A,{width:Sb,height:Tb}),true,tc);Nc||w()}var A=l.options.legend;if(A.enabled){var Ta=A.layout=="horizontal",Da=A.symbolWidth,sa=A.symbolPadding,Ya,Ga=A.style,ha=A.itemStyle,Ja=A.itemHoverStyle,L=A.itemHiddenStyle, -F=oa(Ga.padding),aa=20,s=18,J=4+F+Da+sa,Q,H,D,E=0,ba,ta=A.borderWidth,la=A.backgroundColor,qa,cb,zb=A.width,Ea=l.series,Oa=A.reversed;fa();La(l,"endResize",w);return{colorizeItem:h,destroyItem:function(v){var S=v.checkbox;t(["legendItem","legendLine","legendSymbol"],function(va){v[va]&&v[va].destroy()});S&&Bc(v.checkbox)},renderLegend:fa}}};hc=function(l,h){return l>=0&&l<=za&&h>=0&&h<=pa};Sd=function(){Ha(p,"selection",{resetSelection:true},kd);p.toolbar.remove("zoom")};kd=function(l){var h=Na.lang, -x=p.pointCount<100;p.toolbar.add("zoom",h.resetZoom,h.resetZoomTitle,Sd);!l||l.resetSelection?t(Wa,function(w){w.setExtremes(null,null,false,x)}):t(l.xAxis.concat(l.yAxis),function(w){var N=w.axis;if(p.tracker[N.isXAxis?"zoomX":"zoomY"])N.setExtremes(w.min,w.max,false,x)});j()};rc=function(){var l=a.legend,h=y(l.margin,10),x=l.x,w=l.y,N=l.align,fa=l.verticalAlign,A;qd();if((p.title||p.subtitle)&&!M(ja))if(A=Aa(p.title&&!kc.floating&&!kc.verticalAlign&&kc.y||0,p.subtitle&&!sc.floating&&!sc.verticalAlign&& -sc.y||0))Z=Aa(Z,A+y(kc.margin,15)+Za);if(l.enabled&&!l.floating)if(N=="right")M(Sa)||(yb=Aa(yb,Sb-x+h+jb));else if(N=="left")M(ma)||(U=Aa(U,Sb+x+h+Sc));else if(fa=="top")M(ja)||(Z=Aa(Z,Tb+w+h+Za));else if(fa=="bottom")M(ca)||(ob=Aa(ob,Tb-w+h+sd));ic&&t(Wa,function(Ta){Ta.getOffset()});M(ma)||(U+=Qb[3]);M(ja)||(Z+=Qb[0]);M(ca)||(ob+=Qb[2]);M(Sa)||(yb+=Qb[1]);rd()};pd=function(l,h,x){var w=p.title,N=p.subtitle;Nc+=1;Ib(x,p);Kc=Ka;hd=Ra;Ra=T(l);Ka=T(h);Xa(wa,{width:Ra+bb,height:Ka+bb});Y.setSize(Ra, -Ka);za=Ra-U-yb;pa=Ka-Z-ob;Nb=null;t(Wa,function(fa){fa.isDirty=true;fa.setScale()});t(ya,function(fa){fa.isDirty=true});p.isDirtyLegend=true;p.isDirtyBox=true;rc();w&&w.align(null,null,tc);N&&N.align(null,null,tc);j();Kc=null;Ha(p,"resize");setTimeout(function(){Ha(p,"endResize",null,function(){Nc-=1})},xc&&xc.duration||500)};rd=function(){p.plotLeft=U=T(U);p.plotTop=Z=T(Z);p.plotWidth=za=T(Ra-U-yb);p.plotHeight=pa=T(Ka-Z-ob);p.plotSizeX=Fa?pa:za;p.plotSizeY=Fa?za:pa;tc={x:Sc,y:Za,width:Ra-Sc-jb, -height:Ka-Za-sd}};qd=function(){Z=y(ja,Za);yb=y(Sa,jb);ob=y(ca,sd);U=y(ma,Sc);Qb=[0,0,0,0]};nd=function(){var l=u.borderWidth||0,h=u.backgroundColor,x=u.plotBackgroundColor,w=u.plotBackgroundImage,N,fa={x:U,y:Z,width:za,height:pa};N=2*l+(u.shadow?8:0);if(l||h)if(td)td.animate({width:Ra-N,height:Ka-N});else td=Y.rect(N/2,N/2,Ra-N,Ka-N,u.borderRadius,l).attr({stroke:u.borderColor,"stroke-width":l,fill:h||mb}).add().shadow(u.shadow);if(x)if(ud)ud.animate(fa);else ud=Y.rect(U,Z,za,pa,0).attr({fill:x}).add().shadow(u.plotShadow); -if(w)if(vd)vd.animate(fa);else vd=Y.image(w,U,Z,za,pa).add();if(u.plotBorderWidth)if(wd)wd.animate(fa);else wd=Y.rect(U,Z,za,pa,0,u.plotBorderWidth).attr({stroke:u.plotBorderColor,"stroke-width":u.plotBorderWidth,zIndex:4}).add();p.isDirtyBox=false};Tc=Fb=0;La(rb,"unload",$);u.reflow!==false&&La(p,"load",K);if(O)for(xd in O)La(p,xd,O[xd]);p.options=a;p.series=ya;p.addSeries=function(l,h,x){var w;if(l){Ib(x,p);h=y(h,true);Ha(p,"addSeries",{options:l},function(){w=g(l);w.isDirty=true;p.isDirtyLegend= -true;h&&p.redraw()})}return w};p.animation=y(u.animation,true);p.destroy=$;p.get=function(l){var h,x,w;for(h=0;h<Wa.length;h++)if(Wa[h].options.id==l)return Wa[h];for(h=0;h<ya.length;h++)if(ya[h].options.id==l)return ya[h];for(h=0;h<ya.length;h++){w=ya[h].data;for(x=0;x<w.length;x++)if(w[x].id==l)return w[x]}return null};p.getSelectedPoints=function(){var l=[];t(ya,function(h){l=l.concat(zd(h.data,function(x){return x.selected}))});return l};p.getSelectedSeries=function(){return zd(ya,function(l){return l.selected})}; -p.hideLoading=function(){Uc($b,{opacity:0},{duration:a.loading.hideDuration,complete:function(){Xa($b,{display:mb})}});yd=false};p.isInsidePlot=hc;p.redraw=j;p.setSize=pd;p.setTitle=n;p.showLoading=function(l){var h=a.loading;if(!$b){$b=fb(Jb,{className:"highcharts-loading"},na(h.style,{left:U+bb,top:Z+bb,width:za+bb,height:pa+bb,zIndex:10,display:mb}),wa);Rd=fb("span",null,h.labelStyle,$b)}Rd.innerHTML=l||a.lang.loading;if(!yd){Xa($b,{opacity:0,display:""});Uc($b,{opacity:h.style.opacity},{duration:h.showDuration}); -yd=true}};p.pointCount=0;ga()}var Ca=document,rb=window,Pa=Math,T=Pa.round,Lb=Pa.floor,dd=Pa.ceil,Aa=Pa.max,ab=Pa.min,$a=Pa.abs,tb=Pa.cos,xb=Pa.sin,Ub=Pa.PI,Td=Ub*2/360,Qc=navigator.userAgent,Zc=/msie/i.test(Qc)&&!rb.opera,Vc=Ca.documentMode==8,be=/AppleWebKit/.test(Qc),Rc=rb.SVGAngle||Ca.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),Eb="ontouchstart"in Ca.documentElement,Fb,Tc,ce={},od=0,nb=1,Cc,Na,Ic,xc,Wc,Ma,Jb="div",lc="absolute",Pd="relative",Cb="hidden", -Zb="highcharts-",Ab="visible",bb="px",mb="none",Va="M",Ba="L",Ud="rgba(192,192,192,"+(Rc?1.0E-6:0.0020)+")",db="",wb="hover",yc,$c,ad,bd,nc,zc,Ac,Cd,Dd,cd,Ed,Fd,eb=rb.HighchartsAdapter,Db=eb||{},t=Db.each,zd=Db.grep,jc=Db.map,ua=Db.merge,Ad=Db.hyphenate,La=Db.addEvent,Bb=Db.removeEvent,Ha=Db.fireEvent,Uc=Db.animate,Xc=Db.stop,sb={};eb&&eb.init&&eb.init();if(!eb&&rb.jQuery){var kb=jQuery;t=function(a,c){for(var b=0,d=a.length;b<d;b++)if(c.call(a[b],a[b],b,a)===false)return b};zd=kb.grep;jc=function(a, -c){for(var b=[],d=0,e=a.length;d<e;d++)b[d]=c.call(a[d],a[d],d,a);return b};ua=function(){var a=arguments;return kb.extend(true,null,a[0],a[1],a[2],a[3])};Ad=function(a){return a.replace(/([A-Z])/g,function(c,b){return"-"+b.toLowerCase()})};La=function(a,c,b){kb(a).bind(c,b)};Bb=function(a,c,b){var d=Ca.removeEventListener?"removeEventListener":"detachEvent";if(Ca[d]&&!a[d])a[d]=function(){};kb(a).unbind(c,b)};Ha=function(a,c,b,d){var e=kb.Event(c),f="detached"+c;na(e,b);if(a[c]){a[f]=a[c];a[c]=null}kb(a).trigger(e); -if(a[f]){a[c]=a[f];a[f]=null}d&&!e.isDefaultPrevented()&&d(e)};Uc=function(a,c,b){var d=kb(a);if(c.d){a.toD=c.d;c.d=1}d.stop();d.animate(c,b)};Xc=function(a){kb(a).stop()};kb.extend(kb.easing,{easeOutQuad:function(a,c,b,d,e){return-d*(c/=e)*(c-2)+b}});var de=jQuery.fx.step._default,ee=jQuery.fx.prototype.cur;kb.fx.step._default=function(a){var c=a.elem;c.attr?c.attr(a.prop,a.now):de.apply(this,arguments)};kb.fx.step.d=function(a){var c=a.elem;if(!a.started){var b=Wc.init(c,c.d,c.toD);a.start=b[0]; -a.end=b[1];a.started=true}c.attr("d",Wc.step(a.start,a.end,a.pos,c.toD))};kb.fx.prototype.cur=function(){var a=this.elem;return a.attr?a.attr(this.prop):ee.apply(this,arguments)}}Wc={init:function(a,c,b){c=c||"";var d=a.shift,e=c.indexOf("C")>-1,f=e?7:3,g;c=c.split(" ");b=[].concat(b);var i,j,k=function(n){for(g=n.length;g--;)n[g]==Va&&n.splice(g+1,0,n[g+1],n[g+2],n[g+1],n[g+2])};if(e){k(c);k(b)}if(a.isArea){i=c.splice(c.length-6,6);j=b.splice(b.length-6,6)}if(d){b=[].concat(b).splice(0,f).concat(b); -a.shift=false}for(a=b.length;c.length<a;){d=[].concat(c).splice(c.length-f,f);if(e){d[f-6]=d[f-2];d[f-5]=d[f-1]}c=c.concat(d)}if(i){c=c.concat(i);b=b.concat(j)}return[c,b]},step:function(a,c,b,d){var e=[],f=a.length;if(b==1)e=d;else if(f==c.length&&b<1)for(;f--;){d=parseFloat(a[f]);e[f]=isNaN(d)?a[f]:b*parseFloat(c[f]-d)+d}else e=c;return e}};eb={enabled:true,align:"center",x:0,y:15,style:{color:"#666",fontSize:"11px"}};Na={colors:["#4572A7","#AA4643","#89A54E","#80699B","#3D96AE","#DB843D","#92A8CD", -"#A47D7C","#B5CA92"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:","},global:{useUTC:true},chart:{borderColor:"#4572A7",borderRadius:5,defaultSeriesType:"line",ignoreHiddenSeries:true, -spacingTop:10,spacingRight:10,spacingBottom:15,spacingLeft:10,style:{fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif',fontSize:"12px"},backgroundColor:"#FFFFFF",plotBorderColor:"#C0C0C0"},title:{text:"Chart title",align:"center",y:15,style:{color:"#3E576F",fontSize:"16px"}},subtitle:{text:"",align:"center",y:30,style:{color:"#6D869F"}},plotOptions:{line:{allowPointSelect:false,showCheckbox:false,animation:{duration:1E3},events:{},lineWidth:2,shadow:true,marker:{enabled:true, -lineWidth:0,radius:4,lineColor:"#FFFFFF",states:{hover:{},select:{fillColor:"#FFFFFF",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:ua(eb,{enabled:false,y:-6,formatter:function(){return this.y}}),showInLegend:true,states:{hover:{marker:{}},select:{marker:{}}},stickyTracking:true}},labels:{style:{position:lc,color:"#3E576F"}},legend:{enabled:true,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderWidth:1,borderColor:"#909090",borderRadius:5,shadow:false, -style:{padding:"5px"},itemStyle:{cursor:"pointer",color:"#3E576F"},itemHoverStyle:{cursor:"pointer",color:"#000000"},itemHiddenStyle:{color:"#C0C0C0"},itemCheckboxStyle:{position:lc,width:"13px",height:"13px"},symbolWidth:16,symbolPadding:5,verticalAlign:"bottom",x:0,y:0},loading:{hideDuration:100,labelStyle:{fontWeight:"bold",position:Pd,top:"1em"},showDuration:100,style:{position:lc,backgroundColor:"white",opacity:0.5,textAlign:"center"}},tooltip:{enabled:true,backgroundColor:"rgba(255, 255, 255, .85)", -borderWidth:2,borderRadius:5,shadow:true,snap:Eb?25:10,style:{color:"#333333",fontSize:"12px",padding:"5px",whiteSpace:"nowrap"}},toolbar:{itemStyle:{color:"#4572A7",cursor:"pointer"}},credits:{enabled:true,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"10px"}}};var Hc={dateTimeLabelFormats:{second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"}, -endOnTick:false,gridLineColor:"#C0C0C0",labels:eb,lineColor:"#C0D0E0",lineWidth:1,max:null,min:null,minPadding:0.01,maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:false,tickColor:"#C0D0E0",tickLength:5,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#6D869F",fontWeight:"bold"}},type:"linear"},fd=ua(Hc,{endOnTick:true, -gridLineWidth:1,tickPixelInterval:72,showLastLabel:true,labels:{align:"right",x:-8,y:3},lineWidth:0,maxPadding:0.05,minPadding:0.05,startOnTick:true,tickWidth:0,title:{rotation:270,text:"Y-values"}}),Yd={labels:{align:"right",x:-8,y:3},title:{rotation:270}},Xd={labels:{align:"left",x:8,y:3},title:{rotation:90}},Ld={labels:{align:"center",x:0,y:14},title:{rotation:0}},Wd=ua(Ld,{labels:{y:-5}}),ub=Na.plotOptions;eb=ub.line;ub.spline=ua(eb);ub.scatter=ua(eb,{lineWidth:0,states:{hover:{lineWidth:0}}}); -ub.area=ua(eb,{});ub.areaspline=ua(ub.area);ub.column=ua(eb,{borderColor:"#FFFFFF",borderWidth:1,borderRadius:0,groupPadding:0.2,marker:null,pointPadding:0.1,minPointLength:0,states:{hover:{brightness:0.1,shadow:false},select:{color:"#C0C0C0",borderColor:"#000000",shadow:false}}});ub.bar=ua(ub.column,{dataLabels:{align:"left",x:5,y:0}});ub.pie=ua(eb,{borderColor:"#FFFFFF",borderWidth:1,center:["50%","50%"],colorByPoint:true,dataLabels:{distance:30,enabled:true,formatter:function(){return this.point.name}, -y:5},legendType:"point",marker:null,size:"75%",showInLegend:false,slicedOffset:10,states:{hover:{brightness:0.1,shadow:false}}});Bd();var ac=function(a){var c=[],b;(function(d){if(b=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(d))c=[oa(b[1]),oa(b[2]),oa(b[3]),parseFloat(b[4],10)];else if(b=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(d))c=[oa(b[1],16),oa(b[2],16),oa(b[3],16),1]})(a);return{get:function(d){return c&&!isNaN(c[0])?d== -"rgb"?"rgb("+c[0]+","+c[1]+","+c[2]+")":d=="a"?c[3]:"rgba("+c.join(",")+")":a},brighten:function(d){if(bc(d)&&d!==0){var e;for(e=0;e<3;e++){c[e]+=oa(d*255);if(c[e]<0)c[e]=0;if(c[e]>255)c[e]=255}}return this},setOpacity:function(d){c[3]=d;return this}}};Ic=function(a,c,b){function d(K){return K.toString().replace(/^([0-9])$/,"0$1")}if(!M(c)||isNaN(c))return"Invalid date";a=y(a,"%Y-%m-%d %H:%M:%S");c=new Date(c*nb);var e=c[ad](),f=c[bd](),g=c[nc](),i=c[zc](),j=c[Ac](),k=Na.lang,n=k.weekdays;k=k.months; -c={a:n[f].substr(0,3),A:n[f],d:d(g),e:g,b:k[i].substr(0,3),B:k[i],m:d(i+1),y:j.toString().substr(2,2),Y:j,H:d(e),I:d(e%12||12),l:e%12||12,M:d(c[$c]()),p:e<12?"AM":"PM",P:e<12?"am":"pm",S:d(c.getSeconds())};for(var z in c)a=a.replace("%"+z,c[z]);return b?a.substr(0,1).toUpperCase()+a.substr(1):a};Dc.prototype={init:function(a,c){this.element=Ca.createElementNS("http://www.w3.org/2000/svg",c);this.renderer=a},animate:function(a,c,b){if(c=y(c,xc,true)){c=ua(c);if(b)c.complete=b;Uc(this,a,c)}else{this.attr(a); -b&&b()}},attr:function(a,c){var b,d,e,f,g=this.element,i=g.nodeName,j=this.renderer,k,n=this.shadows,z,K=this;if(Gb(a)&&M(c)){b=a;a={};a[b]=c}if(Gb(a)){b=a;if(i=="circle")b={x:"cx",y:"cy"}[b]||b;else if(b=="strokeWidth")b="stroke-width";K=xa(g,b)||this[b]||0;if(b!="d"&&b!="visibility")K=parseFloat(K)}else for(b in a){k=false;d=a[b];if(b=="d"){if(d&&d.join)d=d.join(" ");if(/(NaN| {2}|^$)/.test(d))d="M 0 0";this.d=d}else if(b=="x"&&i=="text"){for(e=0;e<g.childNodes.length;e++){f=g.childNodes[e];xa(f, -"x")==xa(g,"x")&&xa(f,"x",d)}if(this.rotation)xa(g,"transform","rotate("+this.rotation+" "+d+" "+oa(a.y||xa(g,"y"))+")")}else if(b=="fill")d=j.color(d,g,b);else if(i=="circle"&&(b=="x"||b=="y"))b={x:"cx",y:"cy"}[b]||b;else if(b=="translateX"||b=="translateY"||b=="rotation"){this[b]=d;this.updateTransform();k=true}else if(b=="stroke")d=j.color(d,g,b);else if(b=="dashstyle"){b="stroke-dasharray";if(d){d=d.toLowerCase().replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot", -"1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=d.length;e--;)d[e]=oa(d[e])*a["stroke-width"];d=d.join(",")}}else if(b=="isTracker")this[b]=d;else if(b=="width")d=oa(d);else if(b=="align"){b="text-anchor";d={left:"start",center:"middle",right:"end"}[d]}if(b=="strokeWidth")b="stroke-width";if(be&&b=="stroke-width"&&d===0)d=1.0E-6;if(this.symbolName&&/^(x|y|r|start|end|innerR)/.test(b)){if(!z){this.symbolAttr(a); -z=true}k=true}if(n&&/^(width|height|visibility|x|y|d)$/.test(b))for(e=n.length;e--;)xa(n[e],b,d);if(b=="text")j.buildText(g,d);else k||xa(g,b,d)}return K},symbolAttr:function(a){this.x=y(a.x,this.x);this.y=parseFloat(y(a.y,this.y));this.r=y(a.r,this.r);this.start=y(a.start,this.start);this.end=y(a.end,this.end);this.width=y(a.width,this.width);this.height=parseFloat(y(a.height,this.height));this.innerR=y(a.innerR,this.innerR);this.attr({d:this.renderer.symbols[this.symbolName](this.x,this.y,this.r, -{start:this.start,end:this.end,width:this.width,height:this.height,innerR:this.innerR})})},clip:function(a){return this.attr("clip-path","url("+this.renderer.url+"#"+a.id+")")},css:function(a){if(a&&a.color)a.fill=a.color;a=na(this.styles,a);this.attr({style:Vd(a)});this.styles=a;return this},on:function(a,c){var b=c;if(Eb&&a=="click"){a="touchstart";b=function(d){d.preventDefault();c()}}this.element["on"+a]=b;return this},translate:function(a,c){return this.attr({translateX:a,translateY:c})},invert:function(){this.inverted= -true;this.updateTransform();return this},updateTransform:function(){var a=this.translateX||0,c=this.translateY||0,b=this.inverted,d=this.rotation,e=[];if(b){a+=this.attr("width");c+=this.attr("height")}if(a||c)e.push("translate("+a+","+c+")");if(b)e.push("rotate(90) scale(-1,1)");else d&&e.push("rotate("+d+" "+this.x+" "+this.y+")");e.length&&xa(this.element,"transform",e.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,c,b){if(a){this.alignOptions= -a;this.alignByTranslate=c;b||this.renderer.alignedObjects.push(this)}else{a=this.alignOptions;c=this.alignByTranslate}b=y(b,this.renderer);var d=a.align,e=a.verticalAlign,f=(b.x||0)+(a.x||0),g=(b.y||0)+(a.y||0),i={};if(/^(right|center)$/.test(d))f+=(b.width-(a.width||0))/{right:1,center:2}[d];i[c?"translateX":"x"]=f;if(/^(bottom|middle)$/.test(e))g+=(b.height-(a.height||0))/({bottom:1,middle:2}[e]||1);i[c?"translateY":"y"]=g;this[this.placed?"animate":"attr"](i);this.placed=true;return this},getBBox:function(){var a, -c,b,d=this.rotation,e=d*Td;try{a=na({},this.element.getBBox())}catch(f){a={width:0,height:0}}c=a.width;b=a.height;if(d){a.width=$a(b*xb(e))+$a(c*tb(e));a.height=$a(b*tb(e))+$a(c*xb(e))}return a},show:function(){return this.attr({visibility:Ab})},hide:function(){return this.attr({visibility:Cb})},add:function(a){var c=this.renderer,b=a||c;c=b.element||c.box;var d=c.childNodes,e=this.element,f=xa(e,"zIndex"),g;this.parentInverted=a&&a.inverted;if(f){b.handleZ=true;f=oa(f)}if(b.handleZ)for(g=0;g<d.length;g++){a= -d[g];b=xa(a,"zIndex");if(a!=e&&(oa(b)>f||!M(f)&&M(b))){c.insertBefore(e,a);return this}}c.appendChild(e);return this},destroy:function(){var a=this.element||{},c=this.shadows,b=a.parentNode,d;a.onclick=a.onmouseout=a.onmouseover=a.onmousemove=null;Xc(this);b&&b.removeChild(a);c&&t(c,function(e){(b=e.parentNode)&&b.removeChild(e)});wc(this.renderer.alignedObjects,this);for(d in this)delete this[d];return null},empty:function(){for(var a=this.element,c=a.childNodes,b=c.length;b--;)a.removeChild(c[b])}, -shadow:function(a){var c=[],b,d=this.element,e=this.parentInverted?"(-1,-1)":"(1,1)";if(a){for(a=1;a<=3;a++){b=d.cloneNode(0);xa(b,{isShadow:"true",stroke:"rgb(0, 0, 0)","stroke-opacity":0.05*a,"stroke-width":7-2*a,transform:"translate"+e,fill:mb});d.parentNode.insertBefore(b,d);c.push(b)}this.shadows=c}return this}};var Pc=function(){this.init.apply(this,arguments)};Pc.prototype={init:function(a,c,b){var d=location,e;this.Element=Dc;e=this.createElement("svg").attr({xmlns:"http://www.w3.org/2000/svg", -version:"1.1"});a.appendChild(e.element);this.box=e.element;this.boxWrapper=e;this.alignedObjects=[];this.url=Zc?"":d.href.replace(/#.*?$/,"");this.defs=this.createElement("defs").add();this.setSize(c,b,false)},createElement:function(a){var c=new this.Element;c.init(this,a);return c},buildText:function(a,c){for(var b=c.toString().replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g, -"</span>").split(/<br[^>]?>/g),d=a.childNodes,e=/style="([^"]+)"/,f=/href="([^"]+)"/,g=xa(a,"x"),i,j=d.length;j--;)a.removeChild(d[j]);t(b,function(k,n){var z,K=0,ia;k=k.replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||");z=k.split("|||");t(z,function($){if($!==""||z.length==1){var ga={},u=Ca.createElementNS("http://www.w3.org/2000/svg","tspan");e.test($)&&xa(u,"style",$.match(e)[1].replace(/(;| |^)color([ :])/,"$1fill$2"));if(f.test($)){xa(u,"onclick",'location.href="'+$.match(f)[1]+'"'); -Xa(u,{cursor:"pointer"})}$=$.replace(/<(.|\n)*?>/g,"");u.appendChild(Ca.createTextNode($||" "));if(K)ga.dx=3;else ga.x=g;if(!K){if(n){ia=oa(window.getComputedStyle(i,null).getPropertyValue("line-height"));if(isNaN(ia))ia=i.offsetHeight||18;xa(u,"dy",ia)}i=u}xa(u,ga);a.appendChild(u);K++}})})},crispLine:function(a,c){if(a[1]==a[4])a[1]=a[4]=T(a[1])+c%2/2;if(a[2]==a[5])a[2]=a[5]=T(a[2])+c%2/2;return a},path:function(a){return this.createElement("path").attr({d:a,fill:mb})},circle:function(a,c,b){a= -Hb(a)?a:{x:a,y:c,r:b};return this.createElement("circle").attr(a)},arc:function(a,c,b,d,e,f){if(Hb(a)){c=a.y;b=a.r;d=a.innerR;e=a.start;f=a.end;a=a.x}return this.symbol("arc",a||0,c||0,b||0,{innerR:d||0,start:e||0,end:f||0})},rect:function(a,c,b,d,e,f){if(arguments.length>1){var g=(f||0)%2/2;a=T(a||0)+g;c=T(c||0)+g;b=T((b||0)-2*g);d=T((d||0)-2*g)}g=Hb(a)?a:{x:a,y:c,width:Aa(b,0),height:Aa(d,0)};return this.createElement("rect").attr(na(g,{rx:e||g.r,ry:e||g.r,fill:mb}))},setSize:function(a,c,b){var d= -this.alignedObjects,e=d.length;this.width=a;this.height=c;for(this.boxWrapper[y(b,true)?"animate":"attr"]({width:a,height:c});e--;)d[e].align()},g:function(a){return this.createElement("g").attr(M(a)&&{"class":Zb+a})},image:function(a,c,b,d,e){var f={preserveAspectRatio:mb};arguments.length>1&&na(f,{x:c,y:b,width:d,height:e});f=this.createElement("image").attr(f);f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a);return f},symbol:function(a,c,b,d,e){var f,g=this.symbols[a];g=g&&g(c, -b,d,e);var i=/^url\((.*?)\)$/;if(g){f=this.path(g);na(f,{symbolName:a,x:c,y:b,r:d});e&&na(f,e)}else if(i.test(a)){a=a.match(i)[1];f=this.image(a).attr({x:c,y:b});fb("img",{onload:function(){var j=ce[this.src]||[this.width,this.height];f.attr({width:j[0],height:j[1]}).translate(-T(j[0]/2),-T(j[1]/2))},src:a})}else f=this.circle(c,b,d);return f},symbols:{square:function(a,c,b){b=0.707*b;return[Va,a-b,c-b,Ba,a+b,c-b,a+b,c+b,a-b,c+b,"Z"]},triangle:function(a,c,b){return[Va,a,c-1.33*b,Ba,a+b,c+0.67*b, -a-b,c+0.67*b,"Z"]},"triangle-down":function(a,c,b){return[Va,a,c+1.33*b,Ba,a-b,c-0.67*b,a+b,c-0.67*b,"Z"]},diamond:function(a,c,b){return[Va,a,c-b,Ba,a+b,c,a,c+b,a-b,c,"Z"]},arc:function(a,c,b,d){var e=d.start,f=d.end-1.0E-6,g=d.innerR,i=tb(e),j=xb(e),k=tb(f);f=xb(f);d=d.end-e<Ub?0:1;return[Va,a+b*i,c+b*j,"A",b,b,0,d,1,a+b*k,c+b*f,Ba,a+g*k,c+g*f,"A",g,g,0,d,0,a+g*i,c+g*j,"Z"]}},clipRect:function(a,c,b,d){var e=Zb+od++,f=this.createElement("clipPath").attr({id:e}).add(this.defs);a=this.rect(a,c,b, -d,0).add(f);a.id=e;return a},color:function(a,c,b){var d,e=/^rgba/;if(a&&a.linearGradient){var f=this;c=a.linearGradient;b=Zb+od++;var g,i,j;g=f.createElement("linearGradient").attr({id:b,gradientUnits:"userSpaceOnUse",x1:c[0],y1:c[1],x2:c[2],y2:c[3]}).add(f.defs);t(a.stops,function(k){if(e.test(k[1])){d=ac(k[1]);i=d.get("rgb");j=d.get("a")}else{i=k[1];j=1}f.createElement("stop").attr({offset:k[0],"stop-color":i,"stop-opacity":j}).add(g)});return"url("+this.url+"#"+b+")"}else if(e.test(a)){d=ac(a); -xa(c,b+"-opacity",d.get("a"));return d.get("rgb")}else return a},text:function(a,c,b){var d=Na.chart.style;c=T(y(c,0));b=T(y(b,0));a=this.createElement("text").attr({x:c,y:b,text:a}).css({"font-family":d.fontFamily,"font-size":d.fontSize});a.x=c;a.y=b;return a}};var Ia;if(!Rc){var fe=vb(Dc,{init:function(a,c){var b=["<",c,' filled="f" stroked="f"'],d=["position: ",lc,";"];if(c=="shape"||c==Jb)d.push("left:0;top:0;width:10px;height:10px;");if(Vc)d.push("visibility: ",c==Jb?Cb:Ab);b.push(' style="', -d.join(""),'"/>');if(c){b=c==Jb||c=="span"||c=="img"?b.join(""):a.prepVML(b);this.element=fb(b)}this.renderer=a},add:function(a){var c=this.renderer,b=this.element,d=c.box;d=a?a.element||a:d;a&&a.inverted&&c.invertChild(b,d);d.appendChild(b);this.added=true;this.alignOnAdd&&this.updateTransform();return this},attr:function(a,c){var b,d,e,f=this.element||{},g=f.style,i=f.nodeName,j=this.renderer,k=this.symbolName,n,z,K=this.shadows,ia=this;if(Gb(a)&&M(c)){b=a;a={};a[b]=c}if(Gb(a)){b=a;ia=b=="strokeWidth"|| -b=="stroke-width"?this.strokeweight:this[b]}else for(b in a){d=a[b];n=false;if(k&&/^(x|y|r|start|end|width|height|innerR)/.test(b)){if(!z){this.symbolAttr(a);z=true}n=true}else if(b=="d"){d=d||[];this.d=d.join(" ");e=d.length;for(n=[];e--;)n[e]=bc(d[e])?T(d[e]*10)-5:d[e]=="Z"?"x":d[e];d=n.join(" ")||"x";f.path=d;if(K)for(e=K.length;e--;)K[e].path=d;n=true}else if(b=="zIndex"||b=="visibility"){if(Vc&&b=="visibility"&&i=="DIV"){n=f.childNodes;for(e=n.length;e--;)Xa(n[e],{visibility:d});if(d==Ab)d=null}if(d)g[b]= -d;n=true}else if(/^(width|height)$/.test(b)){if(this.updateClipping){this[b]=d;this.updateClipping()}else g[b]=d;n=true}else if(/^(x|y)$/.test(b)){this[b]=d;if(f.tagName=="SPAN")this.updateTransform();else g[{x:"left",y:"top"}[b]]=d}else if(b=="class")f.className=d;else if(b=="stroke"){d=j.color(d,f,b);b="strokecolor"}else if(b=="stroke-width"||b=="strokeWidth"){f.stroked=d?true:false;b="strokeweight";this[b]=d;if(bc(d))d+=bb}else if(b=="dashstyle"){(f.getElementsByTagName("stroke")[0]||fb(j.prepVML(["<stroke/>"]), -null,null,f))[b]=d||"solid";this.dashstyle=d;n=true}else if(b=="fill")if(i=="SPAN")g.color=d;else{f.filled=d!=mb?true:false;d=j.color(d,f,b);b="fillcolor"}else if(b=="translateX"||b=="translateY"||b=="rotation"||b=="align"){if(b=="align")b="textAlign";this[b]=d;this.updateTransform();n=true}else if(b=="text"){f.innerHTML=d;n=true}if(K&&b=="visibility")for(e=K.length;e--;)K[e].style[b]=d;if(!n)if(Vc)f[b]=d;else xa(f,b,d)}return ia},clip:function(a){var c=a.members,b=c.length;c.push(this);this.destroyClip= -function(){c.splice(b,1)};return this.css(a.getCSS(this.inverted))},css:function(a){Xa(this.element,a);return this},destroy:function(){this.destroyClip&&this.destroyClip();Dc.prototype.destroy.apply(this)},empty:function(){for(var a=this.element.childNodes,c=a.length,b;c--;){b=a[c];b.parentNode.removeChild(b)}},getBBox:function(){var a=this.element;if(a.nodeName=="text")a.style.position=lc;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},on:function(a,c){this.element["on"+ -a]=function(){var b=rb.event;b.target=b.srcElement;c(b)};return this},updateTransform:function(){if(this.added){var a=this,c=a.element,b=a.translateX||0,d=a.translateY||0,e=a.x||0,f=a.y||0,g=a.rotation||0,i=g*Td,j=tb(i);i=xb(i);var k=a.textAlign||"left",n={right:1,center:2}[k],z=k&&k!="left";if(b||d)a.css({marginLeft:b,marginTop:d});a.inverted&&t(c.childNodes,function(K){a.renderer.invertChild(K,c)});if(c.tagName=="SPAN"){Xa(c,{filter:g?["progid:DXImageTransform.Microsoft.Matrix(M11=",j,", M12=", --i,", M21=",i,", M22=",j,", sizingMethod='auto expand')"].join(""):mb});b=c.offsetWidth;d=c.offsetHeight;g=T(oa(c.style.fontSize||12)*1.2);e+=b*ab(j,0)+ab(i,0)*g;f+=d*ab(i,0)-Aa(j,0)*g;if(z){e-=b/n*j;f-=d/n*i}Xa(c,{textAlign:k,left:e,top:f})}}else this.alignOnAdd=true},shadow:function(a){var c=[],b=this.element,d=this.renderer,e,f=b.style,g,i=b.path;if(""+b.path==="")i="x";if(a){for(a=1;a<=3;a++){g=['<shape isShadow="true" strokeweight="',7-2*a,'" filled="false" path="',i,'" coordsize="100,100" style="', -b.style.cssText,'" />'];e=fb(d.prepVML(g),null,{left:oa(f.left)+1,top:oa(f.top)+1});g=['<stroke color="black" opacity="',0.05*a,'"/>'];fb(d.prepVML(g),null,null,e);b.parentNode.insertBefore(e,b);c.push(e)}this.shadows=c}return this}});Ia=function(){this.init.apply(this,arguments)};Ia.prototype=ua(Pc.prototype,{isIE8:Qc.indexOf("MSIE 8.0")>-1,init:function(a,c,b){var d;this.Element=fe;this.alignedObjects=[];d=this.createElement(Jb);a.appendChild(d.element);this.box=d.element;this.boxWrapper=d;this.setSize(c, -b,false);if(!Ca.namespaces.hcv){Ca.namespaces.add("hcv","urn:schemas-microsoft-com:vml");Ca.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}},clipRect:function(a,c,b,d){var e=this.createElement();return na(e,{members:[],left:a,top:c,width:b,height:d,getCSS:function(f){var g=this.top,i=this.left,j=i+this.width,k=g+this.height;g={clip:"rect("+T(f?i:g)+"px,"+T(f?k:j)+"px,"+T(f?j:k)+"px,"+T(f?g:i)+"px)"};!f&&Vc&&na(g, -{width:j+bb,height:k+bb});return g},updateClipping:function(){t(e.members,function(f){f.css(e.getCSS(f.inverted))})}})},color:function(a,c,b){var d,e=/^rgba/;if(a&&a.linearGradient){var f,g,i=a.linearGradient,j,k,n,z;t(a.stops,function(K,ia){if(e.test(K[1])){d=ac(K[1]);f=d.get("rgb");g=d.get("a")}else{f=K[1];g=1}if(ia){n=f;z=g}else{j=f;k=g}});a=90-Pa.atan((i[3]-i[1])/(i[2]-i[0]))*180/Ub;b=["<",b,' colors="0% ',j,",100% ",n,'" angle="',a,'" opacity="',z,'" o:opacity2="',k,'" type="gradient" focus="100%" />']; -fb(this.prepVML(b),null,null,c)}else if(e.test(a)&&c.tagName!="IMG"){d=ac(a);b=["<",b,' opacity="',d.get("a"),'"/>'];fb(this.prepVML(b),null,null,c);return d.get("rgb")}else return a},prepVML:function(a){var c=this.isIE8;a=a.join("");if(c){a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />');a=a.indexOf('style="')==-1?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')}else a=a.replace("<", -"<hcv:");return a},text:function(a,c,b){var d=Na.chart.style;return this.createElement("span").attr({text:a,x:T(c),y:T(b)}).css({whiteSpace:"nowrap",fontFamily:d.fontFamily,fontSize:d.fontSize})},path:function(a){return this.createElement("shape").attr({coordsize:"100 100",d:a})},circle:function(a,c,b){return this.path(this.symbols.circle(a,c,b))},g:function(a){var c;if(a)c={className:Zb+a,"class":Zb+a};return this.createElement(Jb).attr(c)},image:function(a,c,b,d,e){var f=this.createElement("img").attr({src:a}); -arguments.length>1&&f.css({left:c,top:b,width:d,height:e});return f},rect:function(a,c,b,d,e,f){if(arguments.length>1){var g=(f||0)%2/2;a=T(a||0)+g;c=T(c||0)+g;b=T((b||0)-2*g);d=T((d||0)-2*g)}if(Hb(a)){c=a.y;b=a.width;d=a.height;e=a.r;a=a.x}return this.symbol("rect",a||0,c||0,e||0,{width:b||0,height:d||0})},invertChild:function(a,c){var b=c.style;Xa(a,{flip:"x",left:oa(b.width)-10,top:oa(b.height)-10,rotation:-90})},symbols:{arc:function(a,c,b,d){var e=d.start,f=d.end,g=tb(e),i=xb(e),j=tb(f),k=xb(f); -d=d.innerR;if(f-e===0)return["x"];else if(f-e==2*Ub)j=-0.07/b;return["wa",a-b,c-b,a+b,c+b,a+b*g,c+b*i,a+b*j,c+b*k,"at",a-d,c-d,a+d,c+d,a+d*j,c+d*k,a+d*g,c+d*i,"x","e"]},circle:function(a,c,b){return["wa",a-b,c-b,a+b,c+b,a+b,c,a+b,c,"e"]},rect:function(a,c,b,d){var e=d.width;d=d.height;var f=a+e,g=c+d;b=ab(b,e,d);return[Va,a+b,c,Ba,f-b,c,"wa",f-2*b,c,f,c+2*b,f-b,c,f,c+b,Ba,f,g-b,"wa",f-2*b,g-2*b,f,g,f,g-b,f-b,g,Ba,a+b,g,"wa",a,g-2*b,a+2*b,g,a+b,g,a,g-b,Ba,a,c+b,"wa",a,c,a+2*b,c+2*b,a,c+b,a+b,c,"x", -"e"]}}})}var Qd=Rc?Pc:Ia;Hd.prototype.callbacks=[];var vc=function(){};vc.prototype={init:function(a,c){var b;this.series=a;this.applyOptions(c);this.pointAttr={};if(a.options.colorByPoint){b=a.chart.options.colors;if(!this.options)this.options={};this.color=this.options.color=this.color||b[Fb++];if(Fb>=b.length)Fb=0}a.chart.pointCount++;return this},applyOptions:function(a){var c=this.series;this.config=a;if(bc(a)||a===null)this.y=a;else if(Hb(a)&&!bc(a.length)){na(this,a);this.options=a}else if(Gb(a[0])){this.name= -a[0];this.y=a[1]}else if(bc(a[0])){this.x=a[0];this.y=a[1]}if(this.x===Ma)this.x=c.autoIncrement()},destroy:function(){var a=this,c=a.series,b;c.chart.pointCount--;a==c.chart.hoverPoint&&a.onMouseOut();c.chart.hoverPoints=null;Bb(a);t(["graphic","tracker","group","dataLabel","connector"],function(d){a[d]&&a[d].destroy()});a.legendItem&&a.series.chart.legend.destroyItem(a);for(b in a)a[b]=null},select:function(a,c){var b=this,d=b.series.chart;b.selected=a=y(a,!b.selected);b.firePointEvent(a?"select": -"unselect");b.setState(a&&"select");c||t(d.getSelectedPoints(),function(e){if(e.selected&&e!=b){e.selected=false;e.setState(db);e.firePointEvent("unselect")}})},onMouseOver:function(){var a=this.series.chart,c=a.tooltip,b=a.hoverPoint;b&&b!=this&&b.onMouseOut();this.firePointEvent("mouseOver");c&&!c.shared&&c.refresh(this);this.setState(wb);a.hoverPoint=this},onMouseOut:function(){this.firePointEvent("mouseOut");this.setState();this.series.chart.hoverPoint=null},update:function(a,c,b){var d=this, -e=d.series,f=e.chart;Ib(b,f);c=y(c,true);d.firePointEvent("update",{options:a},function(){d.applyOptions(a);e.isDirty=true;c&&f.redraw()})},remove:function(a,c){var b=this,d=b.series,e=d.chart,f=d.data;Ib(c,e);a=y(a,true);b.firePointEvent("remove",null,function(){wc(f,b);b.destroy();d.isDirty=true;a&&e.redraw()})},firePointEvent:function(a,c,b){var d=this,e=this.series.options;if(e.point.events[a]||d.options&&d.options.events&&d.options.events[a])this.importEvents();if(a=="click"&&e.allowPointSelect)b= -function(f){d.select(null,f.ctrlKey||f.metaKey||f.shiftKey)};Ha(this,a,c,b)},importEvents:function(){if(!this.hasImportedEvents){var a=ua(this.series.options.point,this.options).events,c;this.events=a;for(c in a)La(this,c,a[c]);this.hasImportedEvents=true}},setState:function(a){var c=this.series,b=c.options.states,d=ub[c.type].marker&&c.options.marker,e=d&&!d.enabled,f=(d=d&&d.states[a])&&d.enabled===false,g=c.stateMarkerGraphic,i=c.chart,j=this.pointAttr;a||(a=db);if(!(a==this.state||this.selected&& -a!="select"||b[a]&&b[a].enabled===false||a&&(f||e&&!d.enabled))){if(this.graphic)this.graphic.attr(j[a]);else{if(a){if(!g)c.stateMarkerGraphic=g=i.renderer.circle(0,0,j[a].r).attr(j[a]).add(c.group);g.translate(this.plotX,this.plotY)}if(g)g[a?"show":"hide"]()}this.state=a}}};var lb=function(){};lb.prototype={isCartesian:true,type:"line",pointClass:vc,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor",r:"radius"},init:function(a,c){var b,d;d=a.series.length;this.chart= -a;c=this.setOptions(c);na(this,{index:d,options:c,name:c.name||"Series "+(d+1),state:db,pointAttr:{},visible:c.visible!==false,selected:c.selected===true});d=c.events;for(b in d)La(this,b,d[b]);if(d&&d.click||c.point&&c.point.events&&c.point.events.click||c.allowPointSelect)a.runTrackerClick=true;this.getColor();this.getSymbol();this.setData(c.data,false)},autoIncrement:function(){var a=this.options,c=this.xIncrement;c=y(c,a.pointStart,0);this.pointInterval=y(this.pointInterval,a.pointInterval,1); -this.xIncrement=c+this.pointInterval;return c},cleanData:function(){var a=this.chart,c=this.data,b,d,e=a.smallestInterval,f,g;c.sort(function(i,j){return i.x-j.x});for(g=c.length-1;g>=0;g--)c[g-1]&&c[g-1].x==c[g].x&&c.splice(g-1,1);for(g=c.length-1;g>=0;g--)if(c[g-1]){f=c[g].x-c[g-1].x;if(d===Ma||f<d){d=f;b=g}}if(e===Ma||d<e)a.smallestInterval=d;this.closestPoints=b},getSegments:function(){var a=-1,c=[],b=this.data;t(b,function(d,e){if(d.y===null){e>a+1&&c.push(b.slice(a+1,e));a=e}else e==b.length- -1&&c.push(b.slice(a+1,e+1))});this.segments=c},setOptions:function(a){var c=this.chart.options.plotOptions;return ua(c[this.type],c.series,a)},getColor:function(){var a=this.chart.options.colors;this.color=this.options.color||a[Fb++]||"#0000ff";if(Fb>=a.length)Fb=0},getSymbol:function(){var a=this.chart.options.symbols;this.symbol=this.options.marker.symbol||a[Tc++];if(Tc>=a.length)Tc=0},addPoint:function(a,c,b,d){var e=this.data,f=this.graph,g=this.area,i=this.chart;a=(new this.pointClass).init(this, -a);Ib(d,i);if(f&&b)f.shift=b;if(g){g.shift=b;g.isArea=true}c=y(c,true);e.push(a);b&&e[0].remove(false);this.isDirty=true;c&&i.redraw()},setData:function(a,c){var b=this,d=b.data,e=b.initialColor,f=b.chart,g=d&&d.length||0;b.xIncrement=null;if(M(e))Fb=e;for(a=jc(mc(a||[]),function(i){return(new b.pointClass).init(b,i)});g--;)d[g].destroy();b.data=a;b.cleanData();b.getSegments();b.isDirty=true;f.isDirtyBox=true;y(c,true)&&f.redraw(false)},remove:function(a,c){var b=this,d=b.chart;a=y(a,true);if(!b.isRemoving){b.isRemoving= -true;Ha(b,"remove",null,function(){b.destroy();d.isDirtyLegend=d.isDirtyBox=true;a&&d.redraw(c)})}b.isRemoving=false},translate:function(){for(var a=this.chart,c=this.options.stacking,b=this.xAxis.categories,d=this.yAxis,e=this.data,f=e.length;f--;){var g=e[f],i=g.x,j=g.y,k;k=d.stacks[(j<0?"-":"")+this.stackKey];g.plotX=this.xAxis.translate(i);if(c&&this.visible&&k[i]){k=k[i];i=k.total;k.cum=k=k.cum-j;j=k+j;if(c=="percent"){k=i?k*100/i:0;j=i?j*100/i:0}g.percentage=i?g.y*100/i:0;g.stackTotal=i;g.yBottom= -d.translate(k,0,1)}if(j!==null)g.plotY=d.translate(j,0,1);g.clientX=a.inverted?a.plotHeight-g.plotX:g.plotX;g.category=b&&b[g.x]!==Ma?b[g.x]:g.x}},setTooltipPoints:function(a){var c=this.chart,b=c.inverted,d=[],e=T((b?c.plotTop:c.plotLeft)+c.plotSizeX),f,g,i=[];if(a)this.tooltipPoints=null;t(this.segments,function(j){d=d.concat(j)});if(this.xAxis&&this.xAxis.reversed)d=d.reverse();t(d,function(j,k){f=d[k-1]?d[k-1].high+1:0;for(g=j.high=d[k+1]?Lb((j.plotX+(d[k+1]?d[k+1].plotX:e))/2):e;f<=g;)i[b?e- -f++:f++]=j});this.tooltipPoints=i},onMouseOver:function(){var a=this.chart,c=a.hoverSeries;if(!(!Eb&&a.mouseIsDown)){c&&c!=this&&c.onMouseOut();this.options.events.mouseOver&&Ha(this,"mouseOver");this.tracker&&this.tracker.toFront();this.setState(wb);a.hoverSeries=this}},onMouseOut:function(){var a=this.options,c=this.chart,b=c.tooltip,d=c.hoverPoint;d&&d.onMouseOut();this&&a.events.mouseOut&&Ha(this,"mouseOut");b&&!a.stickyTracking&&b.hide();this.setState();c.hoverSeries=null},animate:function(a){var c= -this.chart,b=this.clipRect,d=this.options.animation;if(d&&!Hb(d))d={};if(a){if(!b.isAnimating){b.attr("width",0);b.isAnimating=true}}else{b.animate({width:c.plotSizeX},d&&na(d,{complete:function(){b.isAnimating=false}}));this.animate=null}},drawPoints:function(){var a,c=this.data,b=this.chart,d,e,f,g,i,j;if(this.options.marker.enabled)for(f=c.length;f--;){g=c[f];d=g.plotX;e=g.plotY;j=g.graphic;if(e!==Ma&&!isNaN(e)){a=g.pointAttr[g.selected?"select":db];i=a.r;if(j)j.animate({x:d,y:e,r:i});else g.graphic= -b.renderer.symbol(y(g.marker&&g.marker.symbol,this.symbol),d,e,i).attr(a).add(this.group)}}},convertAttribs:function(a,c,b,d){var e=this.pointAttrToOptions,f,g,i={};a=a||{};c=c||{};b=b||{};d=d||{};for(f in e){g=e[f];i[f]=y(a[g],c[f],b[f],d[f])}return i},getAttribs:function(){var a=this,c=ub[a.type].marker?a.options.marker:a.options,b=c.states,d=b[wb],e,f={},g=a.color,i=a.data,j=[],k,n=a.pointAttrToOptions;if(a.options.marker){f={stroke:g,fill:g};d.radius=d.radius||c.radius+2;d.lineWidth=d.lineWidth|| -c.lineWidth+1}else{f={fill:g};d.color=d.color||ac(d.color||g).brighten(d.brightness).get()}j[db]=a.convertAttribs(c,f);t([wb,"select"],function(K){j[K]=a.convertAttribs(b[K],j[db])});a.pointAttr=j;for(f=i.length;f--;){g=i[f];if((c=g.options&&g.options.marker||g.options)&&c.enabled===false)c.radius=0;e=false;if(g.options)for(var z in n)if(M(c[n[z]]))e=true;if(e){k=[];b=c.states||{};e=b[wb]=b[wb]||{};if(!a.options.marker)e.color=ac(e.color||g.options.color).brighten(e.brightness||d.brightness).get(); -k[db]=a.convertAttribs(c,j[db]);k[wb]=a.convertAttribs(b[wb],j[wb],k[db]);k.select=a.convertAttribs(b.select,j.select,k[db])}else k=j;g.pointAttr=k}},destroy:function(){var a=this,c=a.chart,b=a.clipRect,d;Bb(a);a.legendItem&&a.chart.legend.destroyItem(a);t(a.data,function(e){e.destroy()});t(["area","graph","dataLabelsGroup","group","tracker"],function(e){a[e]&&a[e].destroy()});b&&b!=a.chart.clipRect&&b.destroy();if(c.hoverSeries==a)c.hoverSeries=null;wc(c.series,a);for(d in a)delete a[d]},drawDataLabels:function(){if(this.options.dataLabels.enabled){var a= -this,c,b,d=a.data,e=a.options.dataLabels,f,g=a.dataLabelsGroup,i=a.chart,j=i.inverted,k=a.type,n;if(!g)g=a.dataLabelsGroup=i.renderer.g(Zb+"data-labels").attr({visibility:a.visible?Ab:Cb,zIndex:5}).translate(i.plotLeft,i.plotTop).add();n=e.color;if(n=="auto")n=null;e.style.color=y(n,a.color);t(d,function(z){var K=y(z.barX,z.plotX,-999),ia=y(z.plotY,-999),$=z.dataLabel,ga=e.align;f=e.formatter.call({x:z.x,y:z.y,series:a,point:z,percentage:z.percentage,total:z.total||z.stackTotal});c=(j?i.plotWidth- -ia:K)+e.x;b=(j?i.plotHeight-K:ia)+e.y;if(k=="column")c+={center:z.barW/2,right:z.barW}[ga]||0;if($)$.animate({x:c,y:b});else if(f)z.dataLabel=i.renderer.text(f,c,b).attr({align:ga,rotation:e.rotation,zIndex:1}).css(e.style).add(g)})}},drawGraph:function(){var a=this,c=a.options,b=a.graph,d=[],e,f=a.area,g=a.group,i=c.lineColor||a.color,j=c.lineWidth,k=c.dashStyle,n,z=a.chart.renderer,K=a.yAxis.getThreshold(c.threshold||0),ia=/^area/.test(a.type),$=[],ga=[];t(a.segments,function(u){if(u.length>1){n= -[];t(u,function(ca,ma){if(a.getPointSpline)n.push.apply(n,a.getPointSpline(u,ca,ma));else{n.push(ma?Ba:Va);ma&&c.step&&n.push(ca.plotX,u[ma-1].plotY);n.push(ca.plotX,ca.plotY)}});d=d.concat(n);if(ia){var O=[],ja,Sa=n.length;for(ja=0;ja<Sa;ja++)O.push(n[ja]);if(c.stacking&&a.type!="areaspline")for(ja=u.length-1;ja>=0;ja--)O.push(u[ja].plotX,u[ja].yBottom);else O.push(Ba,u[u.length-1].plotX,K,Ba,u[0].plotX,K);ga=ga.concat(O)}}else $.push(u[0])});a.graphPath=d;a.singlePoints=$;if(ia){e=y(c.fillColor, -ac(a.color).setOpacity(c.fillOpacity||0.75).get());if(f)f.animate({d:ga});else a.area=a.chart.renderer.path(ga).attr({fill:e}).add(g)}if(b)b.animate({d:d});else if(j){b={stroke:i,"stroke-width":j};if(k)b.dashstyle=k;a.graph=z.path(d).attr(b).add(g).shadow(c.shadow)}},render:function(){var a=this.chart,c,b,d=this.options,e=d.animation&&this.animate;b=a.renderer;if(!this.clipRect){this.clipRect=!a.hasRendered&&a.clipRect?a.clipRect:b.clipRect(0,0,a.plotSizeX,a.plotSizeY);if(!a.clipRect)a.clipRect=this.clipRect}if(!this.group){c= -this.group=b.g("series");if(a.inverted){b=function(){c.attr({width:a.plotWidth,height:a.plotHeight}).invert()};b();La(a,"resize",b)}c.clip(this.clipRect).attr({visibility:this.visible?Ab:Cb,zIndex:d.zIndex}).translate(a.plotLeft,a.plotTop).add(a.seriesGroup)}this.drawDataLabels();e&&this.animate(true);this.getAttribs();this.drawGraph&&this.drawGraph();this.drawPoints();this.options.enableMouseTracking!==false&&this.drawTracker();e&&this.animate();this.isDirty=false},redraw:function(){var a=this.chart, -c=this.clipRect,b=this.group;if(c){Xc(c);c.animate({width:a.plotSizeX,height:a.plotSizeY})}b&&b.animate({translateX:a.plotLeft,translateY:a.plotTop});this.translate();this.setTooltipPoints(true);this.render()},setState:function(a){var c=this.options,b=this.graph,d=c.states;c=c.lineWidth;a=a||db;if(this.state!=a){this.state=a;if(!(d[a]&&d[a].enabled===false)){if(a)c=d[a].lineWidth||c+1;if(b&&!b.dashstyle)b.attr({"stroke-width":c},a?0:500)}}},setVisible:function(a,c){var b=this.chart,d=this.legendItem, -e=this.group,f=this.tracker,g=this.dataLabelsGroup,i,j=this.data,k=b.options.chart.ignoreHiddenSeries;i=this.visible;i=(this.visible=a=a===Ma?!i:a)?"show":"hide";e&&e[i]();if(f)f[i]();else for(e=j.length;e--;){f=j[e];f.tracker&&f.tracker[i]()}g&&g[i]();d&&b.legend.colorizeItem(this,a);this.isDirty=true;this.options.stacking&&t(b.series,function(n){if(n.options.stacking&&n.visible)n.isDirty=true});if(k)b.isDirtyBox=true;c!==false&&b.redraw();Ha(this,i)},show:function(){this.setVisible(true)},hide:function(){this.setVisible(false)}, -select:function(a){this.selected=a=a===Ma?!this.selected:a;if(this.checkbox)this.checkbox.checked=a;Ha(this,a?"select":"unselect")},drawTracker:function(){var a=this,c=a.options,b=[].concat(a.graphPath),d=b.length,e=a.chart,f=e.options.tooltip.snap,g=a.tracker,i=c.cursor;i=i&&{cursor:i};var j=a.singlePoints,k;if(d)for(k=d+1;k--;){b[k]==Va&&b.splice(k+1,0,b[k+1]-f,b[k+2],Ba);if(k&&b[k]==Va||k==d)b.splice(k,0,Ba,b[k-2]+f,b[k-1])}for(k=0;k<j.length;k++){d=j[k];b.push(Va,d.plotX-f,d.plotY,Ba,d.plotX+ -f,d.plotY)}if(g)g.attr({d:b});else a.tracker=e.renderer.path(b).attr({isTracker:true,stroke:Ud,fill:mb,"stroke-width":c.lineWidth+2*f,visibility:a.visible?Ab:Cb,zIndex:1}).on(Eb?"touchstart":"mouseover",function(){e.hoverSeries!=a&&a.onMouseOver()}).on("mouseout",function(){c.stickyTracking||a.onMouseOut()}).css(i).add(e.trackerGroup)}};Ia=vb(lb);sb.line=Ia;Ia=vb(lb,{type:"area"});sb.area=Ia;Ia=vb(lb,{type:"spline",getPointSpline:function(a,c,b){var d=c.plotX,e=c.plotY,f=a[b-1],g=a[b+1],i,j,k,n;if(b&& -b<a.length-1){a=f.plotY;k=g.plotX;g=g.plotY;var z;i=(1.5*d+f.plotX)/2.5;j=(1.5*e+a)/2.5;k=(1.5*d+k)/2.5;n=(1.5*e+g)/2.5;z=(n-j)*(k-d)/(k-i)+e-n;j+=z;n+=z;if(j>a&&j>e){j=Aa(a,e);n=2*e-j}else if(j<a&&j<e){j=ab(a,e);n=2*e-j}if(n>g&&n>e){n=Aa(g,e);j=2*e-n}else if(n<g&&n<e){n=ab(g,e);j=2*e-n}c.rightContX=k;c.rightContY=n}if(b){c=["C",f.rightContX||f.plotX,f.rightContY||f.plotY,i||d,j||e,d,e];f.rightContX=f.rightContY=null}else c=[Va,d,e];return c}});sb.spline=Ia;Ia=vb(Ia,{type:"areaspline"});sb.areaspline= -Ia;var Yc=vb(lb,{type:"column",pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color",r:"borderRadius"},init:function(){lb.prototype.init.apply(this,arguments);var a=this,c=a.chart;c.hasColumn=true;c.hasRendered&&t(c.series,function(b){if(b.type==a.type)b.isDirty=true})},translate:function(){var a=this,c=a.chart,b=0,d=a.xAxis.reversed,e=a.xAxis.categories,f={},g,i;lb.prototype.translate.apply(a);t(c.series,function(O){if(O.type==a.type){if(O.options.stacking){g=O.stackKey; -if(f[g]===Ma)f[g]=b++;i=f[g]}else i=b++;O.columnIndex=i}});var j=a.options,k=a.data,n=a.closestPoints;c=$a(k[1]?k[n].plotX-k[n-1].plotX:c.plotSizeX/(e?e.length:1));e=c*j.groupPadding;n=(c-2*e)/b;var z=j.pointWidth,K=M(z)?(n-z)/2:n*j.pointPadding,ia=y(z,n-2*K),$=K+(e+((d?b-a.columnIndex:a.columnIndex)||0)*n-c/2)*(d?-1:1),ga=a.yAxis.getThreshold(j.threshold||0),u=y(j.minPointLength,5);t(k,function(O){var ja=O.plotY,Sa=O.yBottom||ga,ca=O.plotX+$,ma=dd(ab(ja,Sa)),Za=dd(Aa(ja,Sa)-ma),jb;if($a(Za)<u){if(u){Za= -u;ma=$a(ma-ga)>u?Sa-u:ga-(ja<=ga?u:0)}jb=ma-3}na(O,{barX:ca,barY:ma,barW:ia,barH:Za});O.shapeType="rect";O.shapeArgs={x:ca,y:ma,width:ia,height:Za,r:j.borderRadius};O.trackerArgs=M(jb)&&ua(O.shapeArgs,{height:Aa(6,Za+3),y:jb})})},getSymbol:function(){},drawGraph:function(){},drawPoints:function(){var a=this,c=a.options,b=a.chart.renderer,d,e;t(a.data,function(f){var g=f.plotY;if(g!==Ma&&!isNaN(g)){d=f.graphic;e=f.shapeArgs;if(d){Xc(d);d.animate(e)}else f.graphic=b[f.shapeType](e).attr(f.pointAttr[f.selected? -"select":db]).add(a.group).shadow(c.shadow)}})},drawTracker:function(){var a=this,c=a.chart,b=c.renderer,d,e,f=+new Date,g=a.options.cursor,i=g&&{cursor:g},j;t(a.data,function(k){e=k.tracker;d=k.trackerArgs||k.shapeArgs;if(k.y!==null)if(e)e.attr(d);else k.tracker=b[k.shapeType](d).attr({isTracker:f,fill:Ud,visibility:a.visible?Ab:Cb,zIndex:1}).on(Eb?"touchstart":"mouseover",function(n){j=n.relatedTarget||n.fromElement;c.hoverSeries!=a&&xa(j,"isTracker")!=f&&a.onMouseOver();k.onMouseOver()}).on("mouseout", -function(n){if(!a.options.stickyTracking){j=n.relatedTarget||n.toElement;xa(j,"isTracker")!=f&&a.onMouseOut()}}).css(i).add(c.trackerGroup)})},animate:function(a){var c=this,b=c.data;if(!a){t(b,function(d){var e=d.graphic;if(e){e.attr({height:0,y:c.yAxis.translate(0,0,1)});e.animate({height:d.barH,y:d.barY},c.options.animation)}});c.animate=null}},remove:function(){var a=this,c=a.chart;c.hasRendered&&t(c.series,function(b){if(b.type==a.type)b.isDirty=true});lb.prototype.remove.apply(a,arguments)}}); -sb.column=Yc;Ia=vb(Yc,{type:"bar",init:function(a){a.inverted=this.inverted=true;Yc.prototype.init.apply(this,arguments)}});sb.bar=Ia;Ia=vb(lb,{type:"scatter",translate:function(){var a=this;lb.prototype.translate.apply(a);t(a.data,function(c){c.shapeType="circle";c.shapeArgs={x:c.plotX,y:c.plotY,r:a.chart.options.tooltip.snap}})},drawTracker:function(){var a=this,c=a.options.cursor,b=c&&{cursor:c},d;t(a.data,function(e){(d=e.graphic)&&d.attr({isTracker:true}).on("mouseover",function(){a.onMouseOver(); -e.onMouseOver()}).on("mouseout",function(){a.options.stickyTracking||a.onMouseOut()}).css(b)})},cleanData:function(){}});sb.scatter=Ia;Ia=vb(vc,{init:function(){vc.prototype.init.apply(this,arguments);var a=this,c;na(a,{visible:a.visible!==false,name:y(a.name,"Slice")});c=function(){a.slice()};La(a,"select",c);La(a,"unselect",c);return a},setVisible:function(a){var c=this.series.chart,b=this.tracker,d=this.dataLabel,e=this.connector,f;f=(this.visible=a=a===Ma?!this.visible:a)?"show":"hide";this.group[f](); -b&&b[f]();d&&d[f]();e&&e[f]();this.legendItem&&c.legend.colorizeItem(this,a)},slice:function(a,c,b){var d=this.series.chart,e=this.slicedTranslation;Ib(b,d);y(c,true);a=this.sliced=M(a)?a:!this.sliced;this.group.animate({translateX:a?e[0]:d.plotLeft,translateY:a?e[1]:d.plotTop})}});Ia=vb(lb,{type:"pie",isCartesian:false,pointClass:Ia,pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:function(){this.initialColor=Fb},animate:function(){var a=this;t(a.data, -function(c){var b=c.graphic;c=c.shapeArgs;var d=-Ub/2;if(b){b.attr({r:0,start:d,end:d});b.animate({r:c.r,start:c.start,end:c.end},a.options.animation)}});a.animate=null},translate:function(){var a=0,c=-0.25,b=this.options,d=b.slicedOffset,e=d+b.borderWidth,f=b.center,g=this.chart,i=g.plotWidth,j=g.plotHeight,k,n,z,K=this.data,ia=2*Ub,$,ga=ab(i,j),u,O,ja,Sa=b.dataLabels.distance;f.push(b.size,b.innerSize||0);f=jc(f,function(ca,ma){return(u=/%$/.test(ca))?[i,j,ga,ga][ma]*oa(ca)/100:ca});this.getX=function(ca, -ma){z=Pa.asin((ca-f[1])/(f[2]/2+Sa));return f[0]+(ma?-1:1)*tb(z)*(f[2]/2+Sa)};this.center=f;t(K,function(ca){a+=ca.y});t(K,function(ca){$=a?ca.y/a:0;k=c*ia;c+=$;n=c*ia;ca.shapeType="arc";ca.shapeArgs={x:f[0],y:f[1],r:f[2]/2,innerR:f[3]/2,start:k,end:n};z=(n+k)/2;ca.slicedTranslation=jc([tb(z)*d+g.plotLeft,xb(z)*d+g.plotTop],T);O=tb(z)*f[2]/2;ja=xb(z)*f[2]/2;ca.tooltipPos=[f[0]+O*0.7,f[1]+ja*0.7];ca.labelPos=[f[0]+O+tb(z)*Sa,f[1]+ja+xb(z)*Sa,f[0]+O+tb(z)*e,f[1]+ja+xb(z)*e,f[0]+O,f[1]+ja,Sa<0?"center": -z<ia/4?"left":"right",z];ca.percentage=$*100;ca.total=a});this.setTooltipPoints()},render:function(){this.getAttribs();this.drawPoints();this.options.enableMouseTracking!==false&&this.drawTracker();this.drawDataLabels();this.options.animation&&this.animate&&this.animate();this.isDirty=false},drawPoints:function(){var a=this.chart,c=a.renderer,b,d,e;t(this.data,function(f){d=f.graphic;e=f.shapeArgs;if(!f.group){b=f.sliced?f.slicedTranslation:[a.plotLeft,a.plotTop];f.group=c.g("point").attr({zIndex:5}).add().translate(b[0], -b[1])}if(d)d.animate(e);else f.graphic=c.arc(e).attr(f.pointAttr[db]).add(f.group);f.visible===false&&f.setVisible(false)})},drawDataLabels:function(){var a=this.data,c,b=this.chart,d=this.options.dataLabels,e=y(d.connectorPadding,10),f=y(d.connectorWidth,1),g,i,j=d.distance>0,k,n,z=this.center[1],K=[[],[],[],[]],ia,$,ga,u,O,ja,Sa,ca=4,ma;lb.prototype.drawDataLabels.apply(this);t(a,function(Za){var jb=Za.labelPos[7];K[jb<0?0:jb<Ub/2?1:jb<Ub?2:3].push(Za)});K[1].reverse();K[3].reverse();for(Sa=function(Za, -jb){return Za.y>jb.y};ca--;){a=0;c=[].concat(K[ca]);c.sort(Sa);for(ma=c.length;ma--;)c[ma].rank=ma;for(u=0;u<2;u++){n=(ja=ca%3)?9999:-9999;O=ja?-1:1;for(ma=0;ma<K[ca].length;ma++){c=K[ca][ma];if(g=c.dataLabel){i=c.labelPos;ga=Ab;ia=i[0];$=i[1];k||(k=g&&g.getBBox().height);if(j)if(u&&c.rank<a)ga=Cb;else if(!ja&&$<n+k||ja&&$>n-k){$=n+O*k;ia=this.getX($,ca>1);if(!ja&&$+k>z||ja&&$-k<z)if(u)ga=Cb;else a++}if(c.visible===false)ga=Cb;if(ga==Ab)n=$;if(u){g.attr({visibility:ga,align:i[6]})[g.moved?"animate": -"attr"]({x:ia+d.x+({left:e,right:-e}[i[6]]||0),y:$+d.y});g.moved=true;if(j&&f){g=c.connector;i=[Va,ia+(i[6]=="left"?5:-5),$,Ba,ia,$,Ba,i[2],i[3],Ba,i[4],i[5]];if(g){g.animate({d:i});g.attr("visibility",ga)}else c.connector=g=this.chart.renderer.path(i).attr({"stroke-width":f,stroke:d.connectorColor||"#606060",visibility:ga,zIndex:3}).translate(b.plotLeft,b.plotTop).add()}}}}}}},drawTracker:Yc.prototype.drawTracker,getSymbol:function(){}});sb.pie=Ia;rb.Highcharts={Chart:Hd,dateFormat:Ic,pathAnim:Wc, -getOptions:function(){return Na},numberFormat:Gd,Point:vc,Renderer:Qd,seriesTypes:sb,setOptions:function(a){Na=ua(Na,a);Bd();return Na},Series:lb,addEvent:La,createElement:fb,discardElement:Bc,css:Xa,each:t,extend:na,map:jc,merge:ua,pick:y,extendClass:vb}})(); -- GitLab