/*
Copyright DHTMLX LTD. http://www.dhtmlx.com
You allowed to use this component or parts of it under GPL terms
To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com
*/
window.dhtmlx||(dhtmlx={});dhtmlx.version="3.0";dhtmlx.codebase="./";dhtmlx.copy=function(a){var b=dhtmlx.copy._function;b.prototype=a;return new b};dhtmlx.copy._function=function(){};dhtmlx.extend=function(a,b){for(var c in b)a[c]=b[c];b._init&&a._init();return a};
dhtmlx.proto_extend=function(){for(var a=arguments,b=a[0],c=[],d=a.length-1;d>0;d--){if(typeof a[d]=="function")a[d]=a[d].prototype;for(var e in a[d])e=="_init"?c.push(a[d][e]):b[e]||(b[e]=a[d][e])}a[0]._init&&c.push(a[0]._init);b._init=function(){for(var a=0;a=0&&this.splice(a,b||1)},remove:function(a){this.removeAt(this.find(a))},insertAt:function(a,b){if(!b&&b!==0)this.push(a);else{var c=this.splice(b,this.length-b);this[b]=a;this.push.apply(this,c)}},find:function(a){for(i=0;i11?"pm":"am")+"';case "%A":return'"+(date.getHours()>11?"PM":"AM")+"';case "%s":return'"+dhtmlx.Date.to_fixed(date.getSeconds())+"';case "%W":return'"+dhtmlx.Date.to_fixed(dhtmlx.Date.getISOWeek(date))+"';default:return a}});b&&(a=a.replace(/date\.get/g,"date.getUTC"));return new Function("date",'return "'+
a+'";')},str_to_date:function(a,b){for(var c="var temp=date.split(/[^0-9a-zA-Z]+/g);",d=a.match(/%[a-zA-Z]/g),e=0;e50?1900:2000);";break;case "%g":case "%G":case "%h":case "%H":c+="set[3]=temp["+e+"]||0;";break;case "%i":c+="set[4]=temp["+e+"]||0;";break;case "%Y":c+="set[0]=temp["+e+"]||0;";break;case "%a":case "%A":c+=
"set[3]=set[3]%12+((temp["+e+"]||'').toLowerCase()=='am'?0:12);";break;case "%s":c+="set[5]=temp["+e+"]||0;"}var f="set[0],set[1],set[2],set[3],set[4],set[5]";b&&(f=" Date.UTC("+f+")");return new Function("date","var set=[0,0,1,0,0,0]; "+c+" return new Date("+f+");")},getISOWeek:function(a){if(!a)return!1;var b=a.getDay();b===0&&(b=7);var c=new Date(a.valueOf());c.setDate(a.getDate()+(4-b));var d=c.getFullYear(),e=Math.floor((c.getTime()-(new Date(d,0,1)).getTime())/864E5),f=1+Math.floor(e/7);return f},
getUTCISOWeek:function(a){return this.getISOWeek(a)}};dhtmlx.Destruction={_init:function(){dhtmlx.destructors.push(this)},destructor:function(){this.destructor=function(){};this._htmlrows=this._htmlmap=null;this._html&&document.body.appendChild(this._html);this._html=null;if(this._obj)this._obj.innerHTML="",this._obj._htmlmap=null;this.data=this._obj=this._dataobj=null;this._events=this._handlers={}}};dhtmlx.destructors=[];
dhtmlx.event(window,"unload",function(){if(dhtmlx.destructors){for(var a=0;a0;)str=this._toHex[a%16]+str,a=Math.floor(a/16);for(;str.length255)b=0;if(c<0||c>255)c=0;if(d<0||d>255)d=0;return[b,c,d]};
dhtmlx.math.hsvToRgb=function(a,b,c){var d,e,f,h,g,i,j,k;d=Math.floor(a/60)%6;e=a/60-d;f=c*(1-b);h=c*(1-e*b);g=c*(1-(1-e)*b);k=j=i=0;switch(d){case 0:i=c;j=g;k=f;break;case 1:i=h;j=c;k=f;break;case 2:i=f;j=c;k=g;break;case 3:i=f;j=h;k=c;break;case 4:i=g;j=f;k=c;break;case 5:i=c,j=f,k=h}i=Math.floor(i*255);j=Math.floor(j*255);k=Math.floor(k*255);return[i,j,k]};
dhtmlx.math.rgbToHsv=function(a,b,c){var d,e,f,h,g,i,j,k;d=a/255;e=b/255;f=c/255;h=Math.min(d,e,f);g=Math.max(d,e,f);j=0;i=g==0?0:1-h/g;k=g;g==h?j=0:g==d&&e>=f?j=60*(e-f)/(g-h)+0:g==d&&e")},addSector:function(a,b,c,d,e,f,h,g){var i=[];i.push(d);i.push(Math.floor(e*h));for(var j=b;j"+this._map.join("\n")+"";a._htmlmap=b;this._map=[]}};dhtmlx.chart={};
dhtmlx.chart.scatter={pvt_render_scatter:function(a,b,c,d,e,f){if(!this._settings.xValue)return null;var h=this._getLimits(),g=this._getLimits("h","xValue");if(!e)this.canvases.x=new dhtmlx.ui.Canvas(this._obj,"axis_x"),this.canvases.y=new dhtmlx.ui.Canvas(this._obj,"axis_y"),this._drawYAxis(this.canvases.y.getCanvas(),b,c,d,h.min,h.max),this._drawHXAxis(this.canvases.x.getCanvas(),b,c,d,g.min,g.max);var h={min:this._settings.yAxis.start,max:this._settings.yAxis.end},g={min:this._settings.xAxis.start,
max:this._settings.xAxis.end},i=this._getScatterParams(a,b,c,d,g,h);this._mapStart=c;for(var j=0;jd.max&&(k=b[f.toLowerCase()]);h=g;n-=j){k.fixNum&&(n=parseFloat((new Number(n)).toFixed(k.fixNum)));o.push(Math.floor(q*r)+0.5);t&&(n=Math.round(n*t)/t);var z=c-d+o[o.length-1];this.canvases.scale.renderTextAt("middle","left",b,z,f.template(n.toString()),"dhx_axis_item_y dhx_radar");
if(a.length<2){this._drawScaleSector(y,"arc",b,c,d-o[o.length-1],-Math.PI/2,3*Math.PI/2,n);return}var v=-Math.PI/2,u=v,x;for(p=0;pMath.PI)m=-i;e>Math.PI/2&&(l=-g);if(Math.abs(e+Math.PI/2)0;k--)q-=p.cellWidth,(r=b[k].$startY)&&s.push([q,r]);s.push([s[0][0],s[0][1]]);a.globalAlpha=this._settings.alpha.call(this,b[0]);a.fillStyle=this._settings.color.call(this,b[0]);a.beginPath();this._path(a,s);a.fill();for(k=0;kd.y)w=d.y;var t=this._getSplineYPoint(j+1,n,g,l.a,l.b,l.c,l.d);if(td.y)t=d.y;this._drawLine(a,j,w,j+1,t,h.line.color(b[g]),h.line.width)}this._drawLine(a,p-1,this._getSplineYPoint(j,n,g,l.a,l.b,l.c,l.d),p,r,h.line.color(b[g]),h.line.width)}this._drawItem(a,n,q,b[i[g].index],h.label(b[i[g].index]),e,f)}}},_getSplineParameters:function(a){var b,c,d,e,f,h,g,i,j=[],k=[],l=a.length;for(b=0;b=1;b--)e[b]=(d[b]-j[b]*e[b+1])/c[b];f=[];h=[];g=[];i=[];for(b=0;bi&&(g=i/this._series.length-4);h=Math.floor((i-
g*this._series.length)/2);r=typeof this._settings.radius!="undefined"?parseInt(this._settings.radius,10):Math.round(g/5);p=!1;(k=this._settings.gradient)&&typeof k!="function"?(p=k,k=!1):k&&(k=a.createLinearGradient(c.x,c.y,d.x,c.y),this._settings.gradient(k));x||this._drawLine(a,c.x-0.5,c.y,c.x-0.5,d.y,"#000000",1);for(l=0;lo&&(y=o),y-=n,y*=s,v=c.x,u=c.y+h+l*i+(g+1)*e,y<0&&this._settings.origin=="auto"||this._settings.xAxis&&y===0&&!(this._settings.origin!=
"auto"&&this._settings.origin>n))this.canvases[e].renderTextAt("middle","right",v+10,u+g/2+h,this._settings.label(b[l]));else{y<0&&this._settings.origin!="auto"&&this._settings.origin>n&&(y=0);x||(y+=t/z);j=k||this._settings.color.call(this,b[l]);this._settings.border&&this._drawBarHBorder(a,v,u,g,n,r,z,y,j);a.globalAlpha=this._settings.alpha.call(this,b[l]);var A=this._drawBarH(a,d,v,u,g,n,r,z,y,j,k,p);p!=!1&&this._drawBarHGradient(a,v,u,g,n,r,z,y,j,p);a.globalAlpha=1;A[3]==u?(this.canvases[e].renderTextAt("middle",
"left",A[0]-5,A[3]+Math.floor(g/2),this._settings.label(b[l])),f.addRect(b[l].id,[A[0]-c.x,A[3]-c.y,A[2]-c.x,A[3]+g-c.y],e)):(this.canvases[e].renderTextAt("middle",!1,A[2]+5,A[1]+Math.floor(g/2),this._settings.label(b[l])),f.addRect(b[l].id,[A[0]-c.x,u-c.y,A[2]-c.x,A[3]-c.y],e))}},_setBarHPoints:function(a,b,c,d,e,f,h,g,i){var j=0;if(e>f*h)var k=(e-f*h)/e,j=-Math.asin(k)+Math.PI/2;a.moveTo(b,c+g);var l=b+f*h-e-(e?0:g);e0&&a.arc(l,m,e-g,-Math.PI/2+j,0,!1);var o=
c+d-e-(e?0:g),n=l+e-(e?g:0);a.lineTo(n,o);e&&e>0&&a.arc(l,o,e-g,0,Math.PI/2-j,!1);var p=c+d-g;a.lineTo(b,p);i||a.lineTo(b,c+g);return[n,p]},_drawHScales:function(a,b,c,d,e,f,h){var g=0;if(this._settings.xAxis)this.canvases.x=new dhtmlx.ui.Canvas(this._obj),g=this._drawHXAxis(this.canvases.x.getCanvas(),b,c,d,e,f);if(this._settings.yAxis)this.canvases.y=new dhtmlx.ui.Canvas(this._obj),this._drawHYAxis(this.canvases.y.getCanvas(),b,c,d,h,g)},_drawHYAxis:function(a,b,c,d,e,f){if(this._settings.yAxis){var h,
g=parseInt(f?f:c.x,10)-0.5,i=d.y+0.5,j=c.y;this._drawLine(a,g,i,g,j,this._settings.yAxis.color,1);for(var k=0;kh&&(b+=(this._settings.origin-h)*e,i=b,d-=this._settings.origin-h,d<0&&(d*=-1,a.translate(b,c+f),a.rotate(Math.PI),b=0.5,c=0),b+=0.5);return{value:d,x0:b,y0:c,start:i}},_drawBarH:function(a,b,c,d,e,f,h,g,i,j,k,
l){a.save();var m=this._correctBarHParams(a,c,d,i,g,e,f);a.fillStyle=j;a.beginPath();var o=this._setBarHPoints(a,m.x0,m.y0,e,h,g,m.value,this._settings.border?1:0);k&&!l&&a.lineTo(b.x,m.y0+(this._settings.border?1:0));a.fill();a.restore();var n=m.y0,p=m.y0!=d?d:o[1],s=m.y0!=d?m.start-o[0]:m.start,q=m.y0!=d?m.start:o[0];return[s,n,q,p]},_drawBarHBorder:function(a,b,c,d,e,f,h,g,i){a.save();var j=this._correctBarHParams(a,b,c,g,h,d,e);a.beginPath();this._setBorderStyles(a,i);a.globalAlpha=0.9;this._setBarHPoints(a,
j.x0,j.y0,d,f,h,j.value,a.lineWidth/2,1);a.stroke();a.restore()},_drawBarHGradient:function(a,b,c,d,e,f,h,g,i,j){a.save();var k=this._correctBarHParams(a,b,c,g,h,d,e),l=this._setBarGradient(a,k.x0,k.y0+d,k.x0+h*k.value,k.y0,j,i,"x");a.fillStyle=l.gradient;a.beginPath();this._setBarHPoints(a,k.x0,k.y0+l.offset,d-l.offset*2,f,h,k.value,l.offset);a.fill();a.globalAlpha=1;a.restore()}};
dhtmlx.chart.stackedBarH={pvt_render_stackedBarH:function(a,b,c,d,e,f){var h,g,i,j,k=d.x-c.x,l=!!this._settings.yAxis,m=this._getStackedLimits(b);h=m.max;g=m.min;var o=Math.floor((d.y-c.y)/b.length);e||this._drawHScales(a,b,c,d,g,h,o);l&&(h=parseFloat(this._settings.xAxis.end),g=parseFloat(this._settings.xAxis.start));var n=this._getRelativeValue(g,h);j=n[0];i=n[1];var p=j?k/j:10;if(!l)var s=10,p=j?(k-s)/j:10;var q=parseInt(this._settings.width,10);q+4>o&&(q=o-4);var r=(o-q)/2,w=0,t=!1,B=this._settings.gradient;
B&&(t=!0);l||this._drawLine(a,c.x-0.5,c.y,c.x-0.5,d.y,"#000000",1);for(var y=0,z=0,v=0;vh&&(u=h);u-=g;u*=i;var x=c.x,A=c.y+r+v*o;z?x=b[v].$startX:b[v].$startX=x;if(u<0||this._settings.yAxis&&u===0)this.canvases.y.renderTextAt("middle",!0,x+10,A+q/2,this._settings.label(b[v]));else{l||(u+=s/p);var E=this._settings.color.call(this,
b[v]);a.globalAlpha=this._settings.alpha.call(this,b[v]);a.fillStyle=this._settings.color.call(this,b[v]);a.beginPath();var C=this._setBarHPoints(a,x,A,q,w,p,u,this._settings.border?1:0);B&&!t&&a.lineTo(c.x+k,A+(this._settings.border?1:0));a.fill();if(t!=!1){var D=this._setBarGradient(a,x,A+q,x,A,t,E,"x");a.fillStyle=D.gradient;a.beginPath();C=this._setBarHPoints(a,x,A,q,w,p,u,0);a.fill()}this._settings.border&&this._drawBarHBorder(a,x,A,q,g,w,p,u,E);a.globalAlpha=1;this.canvases[e].renderTextAt("middle",
!0,b[v].$startX+(C[0]-b[v].$startX)/2-1,A+(C[1]-A)/2,this._settings.label(b[v]));f.addRect(b[v].id,[b[v].$startX-c.x,A-c.y,C[0]-c.x,C[1]-c.y],e);b[v].$startX=C[0]}}}};
dhtmlx.chart.stackedBar={pvt_render_stackedBar:function(a,b,c,d,e,f){var h,g,i,j,k=d.y-c.y,l=!!this._settings.yAxis,m=!!this._settings.xAxis,o=this._getStackedLimits(b);h=o.max;g=o.min;var n=Math.floor((d.x-c.x)/b.length);e||this._drawScales(b,c,d,g,h,n);l&&(h=parseFloat(this._settings.yAxis.end),g=parseFloat(this._settings.yAxis.start));var p=this._getRelativeValue(g,h);j=p[0];i=p[1];var s=j?k/j:10,q=parseInt(this._settings.width,10);q+4>n&&(q=n-4);var r=Math.floor((n-q)/2),w=this._settings.gradient?
this._settings.gradient:!1;m||this._drawLine(a,c.x,d.y+0.5,d.x,d.y+0.5,"#000000",1);for(var t=0;t=0;l--)a.globalAlpha=k[l],a.strokeStyle="#d0d0d0",a.beginPath(),this._strokeChartItem(a,
b,c+2*i/3,i+l+1,g.type),a.stroke();a.beginPath();a.globalAlpha=0.3;a.fillStyle="#bdbdbd";this._strokeChartItem(a,b,c+2*i/3,i+1,g.type);a.fill()}a.restore();a.lineWidth=g.borderWidth;a.fillStyle=g.color.call(this,d);a.strokeStyle=g.borderColor.call(this,d);a.globalAlpha=g.alpha.call(this,d);a.beginPath();this._strokeChartItem(a,b,c,i+1,g.type);a.fill();a.stroke();a.globalAlpha=1}e&&this.canvases[f].renderTextAt(!1,!0,b,c-i-this._settings.labelOffset,this._settings.label.call(this,d));var m=this._settings.eventRadius||
i+1;h.addRect(d.id,[b-m-j.x,c-m-j.y,b+m-j.x,c+m-j.y],f)},_strokeChartItem:function(a,b,c,d,e){var f=[];if(e&&(e=="square"||e=="s"))d*=Math.sqrt(2)/2,f=[[b-d-a.lineWidth/2,c-d],[b+d,c-d],[b+d,c+d],[b-d,c+d],[b-d,c-d]];else if(e&&(e=="diamond"||e=="d"))var h=a.lineWidth>1?a.lineWidth*Math.sqrt(2)/4:0,f=[[b,c-d],[b+d,c],[b,c+d],[b-d,c],[b+h,c-d-h]];else f=e&&(e=="triangle"||e=="t")?[[b,c-d],[b+Math.sqrt(3)*d/2,c+d/2],[b-Math.sqrt(3)*d/2,c+d/2],[b,c-d]]:[[b,c,d,0,Math.PI*2,!0]];this._path(a,f)},_getPointY:function(a,
b,c,d){var e=d.minValue,f=d.maxValue,h=d.unit,g=d.valueFactor,i=this._settings.value(a),j=(parseFloat(i||0)-e)*g;this._settings.yAxis||(j+=d.startValue/h);var k=c.y-h*j;if(j<0)k=c.y;if(i>f)k=b.y;if(il&&this._drawXAxis(a,b,c,d,g,d.y-s*(this._settings.origin-l));h=parseInt(this._settings.width,10);var t=0,B=0;for(i=0;ig&&(h=parseInt(g/t-4,10));var y=(g-h*t)/2,z=typeof this._settings.radius!="undefined"?parseInt(this._settings.radius,10):Math.round(h/5),v=!1,u=this._settings.gradient;u&&typeof u!="function"?(v=u,u=!1):u&&(u=a.createLinearGradient(0,d.y,0,c.y),this._settings.gradient(u));
q||this._drawLine(a,c.x,d.y+0.5,d.x,d.y+0.5,"#000000",1);for(i=0;ik&&(x=k);x-=l;x*=o;var A=c.x+y+i*g+(h+1)*B,E=d.y;if(x<0||this._settings.yAxis&&x===0&&!(this._settings.origin!="auto"&&this._settings.origin>l))this.canvases[e].renderTextAt(!0,!0,A+Math.floor(h/2),E,this._settings.label(b[i]));else{!r&&!(this._settings.origin!="auto"&&q)&&(x+=p/s);var C=u||this._settings.color.call(this,b[i]);a.globalAlpha=this._settings.alpha.call(this,
b[i]);var D=this._drawBar(a,c,A,E,h,l,z,s,x,C,u,v);v&&this._drawBarGradient(a,A,E,h,l,z,s,x,C,v);this._settings.border&&this._drawBarBorder(a,A,E,h,l,z,s,x,C);a.globalAlpha=1;D[0]!=A?this.canvases[e].renderTextAt(!1,!0,A+Math.floor(h/2),D[1],this._settings.label(b[i])):this.canvases[e].renderTextAt(!0,!0,A+Math.floor(h/2),D[3],this._settings.label(b[i]));f.addRect(b[i].id,[A-c.x,D[3]-c.y,D[2]-c.x,D[1]-c.y],e)}}}},_correctBarParams:function(a,b,c,d,e,f,h){var g=this._settings.xAxis,i=c;g&&this._settings.origin!=
"auto"&&this._settings.origin>h&&(c-=(this._settings.origin-h)*e,i=c,d-=this._settings.origin-h,d<0&&(d*=-1,a.translate(b+f,c),a.rotate(Math.PI),c=b=0),c-=0.5);return{value:d,x0:b,y0:c,start:i}},_drawBar:function(a,b,c,d,e,f,h,g,i,j,k,l){a.save();a.fillStyle=j;var m=this._correctBarParams(a,c,d,i,g,e,f),o=this._setBarPoints(a,m.x0,m.y0,e,h,g,m.value,this._settings.border?1:0);k&&!l&&a.lineTo(m.x0+(this._settings.border?1:0),b.y);a.fill();a.restore();var n=m.x0,p=m.x0!=c?c+o[0]:o[0],s=m.x0!=c?m.start-
o[1]-m.y0:m.y0,q=m.x0!=c?m.start-m.y0:o[1];return[n,s,p,q]},_setBorderStyles:function(a,b){var c,d;d=dhtmlx.math.toRgb(b);c=dhtmlx.math.rgbToHsv(d[0],d[1],d[2]);c[2]/=2;b="rgb("+dhtmlx.math.hsvToRgb(c[0],c[1],c[2])+")";a.strokeStyle=b;if(a.globalAlpha==1)a.globalAlpha=0.9},_drawBarBorder:function(a,b,c,d,e,f,h,g,i){var j;a.save();j=this._correctBarParams(a,b,c,g,h,d,e);this._setBorderStyles(a,i);this._setBarPoints(a,j.x0,j.y0,d,f,h,j.value,a.lineWidth/2,1);a.stroke();a.restore()},_drawBarGradient:function(a,
b,c,d,e,f,h,g,i,j){a.save();var k=this._correctBarParams(a,b,c,g,h,d,e),l=this._setBarGradient(a,k.x0,k.y0,k.x0+d,k.y0-h*k.value+2,j,i,"y"),m=this._settings.border?1:0;a.fillStyle=l.gradient;this._setBarPoints(a,k.x0+l.offset,k.y0,d-l.offset*2,f,h,k.value,l.offset+m);a.fill();a.restore()},_setBarPoints:function(a,b,c,d,e,f,h,g,i){a.beginPath();var j=0;if(e>f*h){var k=(e-f*h)/e;k<=1&&k>=-1&&(j=-Math.acos(k)+Math.PI/2)}a.moveTo(b+g,c);var l=c-Math.floor(f*h)+e+(e?0:g);e0&&a.arc(m,l,e-g,-Math.PI+j,-Math.PI/2,!1);var o=b+d-e-g,n=l-e+(e?g:0);a.lineTo(o,n);e&&e>0&&a.arc(o,l,e-g,-Math.PI/2,0-j,!1);var p=b+d-g;a.lineTo(p,c);i||a.lineTo(b+g,c);return[p,n]}};
dhtmlx.chart.pie={pvt_render_pie:function(a,b,c,d,e,f){this._renderPie(a,b,c,d,1,f,e)},_renderPie:function(a,b,c,d,e,f,h){if(b.length){var g=this._getPieParameters(c,d),i=this._settings.radius?this._settings.radius:g.radius;if(!(i<0)){var j=this._getValues(b),k=this._getTotalValue(j),l=this._getRatios(j,k),m=this._settings.x?this._settings.x:g.x,o=this._settings.y?this._settings.y:g.y;e==1&&this._settings.shadow&&this._addShadow(a,m,o,i);o/=e;var n=-Math.PI/2,p=[];a.scale(1,e);if(this._settings.gradient){var s=
e!=1?m+i/3:m,q=e!=1?o+i/3:o;this._showRadialGradient(a,m,o,i,s,q)}for(var r=0;r=0||d>=0&&e<=Math.PI||Math.abs(d-Math.PI)>0.0030&&d<=Math.PI&&e>=Math.PI){d<=0&&e>=0&&(d=0,h=!1,this._drawSectorLine(a,b,c,f,d,e));if(d<=Math.PI&&e>=Math.PI)e=Math.PI,h=!1,this._drawSectorLine(a,b,c,f,d,e);var g=(this._settings.height||Math.floor(f/4))/this._settings.cant;a.beginPath();a.arc(b,c,f,d,e,!1);a.lineTo(b+f*Math.cos(e),c+f*Math.sin(e)+g);a.arc(b,c+g,f,e,d,!0);a.lineTo(b+f*Math.cos(d),c+f*Math.sin(d));a.fill();
h&&a.stroke()}},_drawSectorLine:function(a,b,c,d,e,f){a.beginPath();a.arc(b,c,d,e,f,!1);a.stroke()},_addShadow:function(a,b,c,d){a.globalAlpha=0.5;for(var e="#c4c4c4,#c6c6c6,#cacaca,#dcdcdc,#dddddd,#e0e0e0,#eeeeee,#f5f5f5,#f8f8f8".split(","),f=e.length-1;f>-1;f--)a.beginPath(),a.fillStyle=e[f],a.arc(b+1,c+1,d+f,0,Math.PI*2,!0),a.fill();a.globalAlpha=1},_getGrayGradient:function(a){a.addColorStop(0,"#ffffff");a.addColorStop(0.7,"#7a7a7a");a.addColorStop(1,"#000000");return a},_showRadialGradient:function(a,
b,c,d,e,f){a.beginPath();var h;typeof this._settings.gradient!="function"?(h=a.createRadialGradient(e,f,d/4,b,c,d),h=this._getGrayGradient(h)):h=this._settings.gradient(h);a.fillStyle=h;a.arc(b,c,d,0,Math.PI*2,!0);a.fill();a.globalAlpha=0.7},_drawSectorLabel:function(a,b,c,d,e,f,h,g){var i=this.canvases[0].renderText(0,0,h,0,1);if(i){var j=i.scrollWidth;i.style.width=j+"px";j>a&&(j=a);var k=e-d<0.2?4:8;g&&(k=j/1.8);var l=d+(e-d)/2;c-=(k-8)/2;var m=-k,o=-8,n="right";if(l>=Math.PI/2&&l=Math.PI)m=-j-m+1,n="left";var p=0;!g&&f<1&&l>0&&l=Math.PI/2&&l=Math.PI))q+=j/3;i.style.top=s+"px";i.style.left=q+"px";i.style.width=j+"px";i.style.textAlign=n;i.style.whiteSpace="nowrap"}}};
dhtmlx.chart.pie3D={pvt_render_pie3D:function(a,b,c,d,e,f){this._renderPie(a,b,c,d,this._settings.cant,f)}};dhtmlx.chart.donut={pvt_render_donut:function(a,b,c,d,e,f){if(b.length){this._renderPie(a,b,c,d,1,f);var h=this._settings,g=this._getPieParameters(c,d),i=h.radius?h.radius:g.radius,j=h.innerRadius&&h.innerRadius")!=
-1)switch(c=c.split("->"),c[0]){case "html":c=dhtmlx.html.getValue(c[1]).replace(/\"/g,'\\"');break;case "http":c=(new dhtmlx.ajax).sync().get(c[1],{uid:(new Date).valueOf()}).responseText}a[b]=dhtmlx.Template.fromHTML(c)}}};
dhtmlx.SingleRender={_init:function(){},_toHTML:function(a){return this.type._item_start(a,this.type)+this.type.template(a,this.type)+this.type._item_end},render:function(){if(!this.callEvent||this.callEvent("onBeforeRender",[this.data])){if(this.data)this._dataobj.innerHTML=this._toHTML(this.data);this.callEvent&&this.callEvent("onAfterRender",[])}}};
dhtmlx.ui.Tooltip=function(a){this.name="Tooltip";this.version="3.0";typeof a=="string"&&(a={template:a});dhtmlx.extend(this,dhtmlx.Settings);dhtmlx.extend(this,dhtmlx.SingleRender);this._parseSettings(a,{type:"default",dy:0,dx:20});this._dataobj=this._obj=document.createElement("DIV");this._obj.className="dhx_tooltip";dhtmlx.html.insertBefore(this._obj,document.body.firstChild)};
dhtmlx.ui.Tooltip.prototype={show:function(a,b){if(!this._disabled){if(this.data!=a)this.data=a,this.render(a);this._obj.style.top=b.y+this._settings.dy+"px";this._obj.style.left=b.x+this._settings.dx+"px";this._obj.style.display="block"}},hide:function(){this.data=null;this._obj.style.display="none"},disable:function(){this._disabled=!0},enable:function(){this._disabled=!1},types:{"default":dhtmlx.Template.fromHTML("{obj.id}")},template_item_start:dhtmlx.Template.empty,template_item_end:dhtmlx.Template.empty};
dhtmlx.AutoTooltip={tooltip_setter:function(a){var b=new dhtmlx.ui.Tooltip(a);this.attachEvent("onMouseMove",function(a,d){b.show(this.get(a),dhtmlx.html.pos(d))});this.attachEvent("onMouseOut",function(){b.hide()});this.attachEvent("onMouseMoving",function(){b.hide()});return b}};dhtmlx.ajax=function(a,b,c){if(arguments.length!==0){var d=new dhtmlx.ajax;if(c)d.master=c;d.get(a,null,b)}return!this.getXHR?new dhtmlx.ajax:this};
dhtmlx.ajax.prototype={getXHR:function(){return dhtmlx._isIE?new ActiveXObject("Microsoft.xmlHTTP"):new XMLHttpRequest},send:function(a,b,c){var d=this.getXHR();typeof c=="function"&&(c=[c]);if(typeof b=="object"){var e=[],f;for(f in b){var h=b[f];if(h===null||h===dhtmlx.undefined)h="";e.push(f+"="+encodeURIComponent(h))}b=e.join("&")}b&&!this.post&&(a=a+(a.indexOf("?")!=-1?"&":"?")+b,b=null);d.open(this.post?"POST":"GET",a,!this._sync);this.post&&d.setRequestHeader("Content-type","application/x-www-form-urlencoded");
var g=this;d.onreadystatechange=function(){if(!d.readyState||d.readyState==4){if(c&&g)for(var a=0;ab)var c=b,b=a,a=c;return this.getIndexRange(a,b)},getIndexRange:function(a,b){for(var b=Math.min(b||Infinity,this.dataCount()-1),c=dhtmlx.toArray(),d=a||0;d<=b;d++)c.push(this.item(this.order[d]));return c},dataCount:function(){return this.order.length},
exists:function(a){return!!this.pull[a]},move:function(a,b){if(!(a<0||b<0)){var c=this.idByIndex(a),d=this.item(c);this.order.removeAt(a);this.order.insertAt(c,Math.min(this.order.length,b));this.callEvent("onStoreUpdated",[c,d,"move"])}},scheme:function(a){this._scheme=a},sync:function(a,b,c){typeof b!="function"&&(c=b,b=null);if(dhtmlx.debug_bind)this.debug_sync_master=a;var d=a;if(a.name!="DataStore")a=a.data;var e=dhtmlx.bind(function(d,e,g){if(g!="update"||b)d=null;if(!d)this.order=dhtmlx.toArray([].concat(a.order)),
this._filter_order=null,this.pull=a.pull,b&&this.silent(b),this._on_sync&&this._on_sync();c?c=!1:this.refresh(d)},this);a.attachEvent("onStoreUpdated",e);this.feed=function(a,b){d.loadNext(b,a)};e()},add:function(a,b){if(this._scheme){var a=a||{},c;for(c in this._scheme)a[c]=a[c]||this._scheme[c];this._scheme&&(this._scheme.$init?this._scheme.$update(a):this._scheme.$update&&this._scheme.$update(a))}var d=this.id(a),e=this.dataCount();if(dhtmlx.isNotDefined(b)||b<0)b=e;b>e&&(b=Math.min(this.order.length,
b));if(this.callEvent("onBeforeAdd",[d,a,b])===!1)return!1;if(this.exists(d))return null;this.pull[d]=a;this.order.insertAt(d,b);if(this._filter_order){var f=this._filter_order.length;!b&&this.order.length&&(f=0);this._filter_order.insertAt(d,f)}this.callEvent("onafterAdd",[d,b]);this.callEvent("onStoreUpdated",[d,a,"add"]);return d},remove:function(a){if(a instanceof Array)for(var b=0;bb?1:ab?1:ab?1:ac&&(c=a(b)*1)});return c},_split_data_by:function(a){var b=function(a,b){a=dhtmlx.Template.setter(a);return a(b[0])},c=dhtmlx.Template.setter(a.by);
a.map[c]||(a.map[c]=[c,b]);var d={},e=[];this.data.each(function(a){var b=c(a);d[b]||(e.push({id:b}),d[b]=dhtmlx.toArray());d[b].push(a)});for(var f in a.map){var h=a.map[f][1]||b;typeof h!="function"&&(h=this[h]);for(var g=0;g1&&h&&(c.className.indexOf("hidden")!=-1?this.showSeries(d):this.hideSeries(d))}}},on_dblclick:{},on_mouse_move:{},bind:function(){dhx.BaseBind.legacyBind.apply(this,arguments)},sync:function(){dhx.BaseBind.legacySync.apply(this,
arguments)},resize:function(){for(var a in this.canvases)this.canvases[a]._resizeCanvas();this.render()},view_setter:function(a){if(typeof this._settings.offset=="undefined")this._settings.offset=!(a=="area"||a=="stackedArea");a=="radar"&&!this._settings.yAxis&&this.define("yAxis",{});a=="scatter"&&(this._settings.yAxis||this.define("yAxis",{}),this._settings.xAxis||this.define("xAxis",{}));return a},clearCanvas:function(){if(this.canvases&&typeof this.canvases=="object")for(var a in this.canvases)this.canvases[a].clearCanvas()},
render:function(){var a,b,c,d,e;if(this.callEvent("onBeforeRender",[this.data])){if(this.canvases&&typeof this.canvases=="object")for(b in this.canvases)this.canvases[b].clearCanvas();else this.canvases={};if(this._settings.legend)this.canvases.legend||(this.canvases.legend=new dhtmlx.ui.Canvas(this._obj,"legend")),this._drawLegend(this.data.getRange(),this._obj.offsetWidth);a=this._getChartBounds(this._obj.offsetWidth,this._obj.offsetHeight);d=new dhtmlx.ui.Map(this._id);e=this._settings;c=this._getChartData();
for(b=0;b5?10:5;c=parseInt(g,10)*h;if(c>Math.abs(a))d=a<0?-c:0;else{var i=Math.abs(a),j=Math.floor(this._log10(i)),k=i/Math.pow(10,j);d=Math.ceil(k*10)/10*Math.pow(10,j)-c;for(i>1&&c>0.1&&(d=Math.ceil(d));a<0?d<=a:d>=a;)d-=c;a<0&&(d=-d-2*c)}for(e=d;e1)for(var f=1;fc&&(c=h);g2&&f.setAttribute("series_id",c);a.appendChild(f);return f},_drawLegendMarker:function(a,b,c,d,e,f,h){var g=
[],i=this._settings.legend.marker,j=this._settings.legend.values,k=j&&j[h].markerType?j[h].markerType:i.type;if(d)a.strokeStyle=a.fillStyle=d;a.beginPath();if(k=="round"||!i.radius){a.lineWidth=i.height;a.lineCap=k;b+=a.lineWidth/2+5;c+=e/2;a.moveTo(b,c);var l=b+i.width-i.height+1;a.lineTo(l,c)}else if(k=="item"){if(this._settings.line&&this._settings.view!="scatter"&&!this._settings.disableLines){a.beginPath();a.lineWidth=this._series[h].line.width;a.strokeStyle=f?d:this._series[h].line.color.call(this,
{});var m=b+5,o=c+e/2;a.moveTo(m,o);l=m+i.width;a.lineTo(l,o);a.stroke()}var n=this._series[h].item,p=parseInt(n.radius.call(this,{}),10)||0;if(p)a.beginPath(),f?(a.lineWidth=n.borderWidth,a.strokeStyle=d,a.fillStyle=d):(a.lineWidth=n.borderWidth,a.fillStyle=n.color.call(this,{}),a.strokeStyle=n.borderColor.call(this,{}),a.globalAlpha=n.alpha.call(this,{})),a.beginPath(),b+=i.width/2+5,c+=e/2,this._strokeChartItem(a,b,c,p+1,n.type),a.fill(),a.stroke();a.globalAlpha=1}else a.lineWidth=1,b+=5,c+=e/
2-i.height/2,g=[[b+i.radius,c+i.radius,i.radius,Math.PI,3*Math.PI/2,!1],[b+i.width-i.radius,c],[b+i.width-i.radius,c+i.radius,i.radius,-Math.PI/2,0,!1],[b+i.width,c+i.height-i.radius],[b+i.width-i.radius,c+i.height-i.radius,i.radius,0,Math.PI/2,!1],[b+i.radius,c+i.height],[b+i.radius,c+i.height-i.radius,i.radius,Math.PI/2,Math.PI,!1],[b,c+i.radius]],this._path(a,g);a.stroke();a.fill()},_getChartBounds:function(a,b){var c,d,e,f;c=this._settings.padding.left;d=this._settings.padding.top;e=a-this._settings.padding.right;
f=b-this._settings.padding.bottom;if(this._settings.legend){var h=this._settings.legend,g=this._settings.legend.width,i=this._settings.legend.height;h.layout=="x"?h.valign=="center"?h.align=="right"?e-=g:h.align=="left"&&(c+=g):h.valign=="bottom"?f-=i:d+=i:h.align=="right"?e-=g:h.align=="left"&&(c+=g)}return{start:{x:c,y:d},end:{x:e,y:f}}},_getStackedLimits:function(a){var b,c,d,e,f;if(this._settings.yAxis&&typeof this._settings.yAxis.end!="undefined"&&typeof this._settings.yAxis.start!="undefined"&&
this._settings.yAxis.step)d=parseFloat(this._settings.yAxis.end),e=parseFloat(this._settings.yAxis.start);else{for(b=0;bd)d=a[b].$sum;if(a[b].$min0&&(e=0)}return{max:d,min:e}},_setBarGradient:function(a,
b,c,d,e,f,h,g){var i,j,k,l,m,o;f=="light"?(i=g=="x"?a.createLinearGradient(b,c,d,c):a.createLinearGradient(b,c,b,e),o=[[0,"#FFFFFF"],[0.9,h],[1,h]],j=2):f=="falling"||f=="rising"?(i=g=="x"?a.createLinearGradient(b,c,d,c):a.createLinearGradient(b,c,b,e),k=dhtmlx.math.toRgb(h),l=dhtmlx.math.rgbToHsv(k[0],k[1],k[2]),l[1]*=0.5,m="rgb("+dhtmlx.math.hsvToRgb(l[0],l[1],l[2])+")",f=="falling"?o=[[0,m],[0.7,h],[1,h]]:f=="rising"&&(o=[[0,h],[0.3,h],[1,m]]),j=0):(a.globalAlpha=0.37,j=0,i=g=="x"?a.createLinearGradient(b,
e,b,c):a.createLinearGradient(b,c,d,c),o=[[0,"#9d9d9d"],[0.3,"#e8e8e8"],[0.45,"#ffffff"],[0.55,"#ffffff"],[0.7,"#e8e8e8"],[1,"#9d9d9d"]]);this._gradient(i,o);return{gradient:i,offset:j}},_getPositionByAngle:function(a,b,c,d){a*=-1;b+=Math.cos(a)*d;c-=Math.sin(a)*d;return{x:b,y:c}},_gradient:function(a,b){for(var c=0;c2&&(d="arc"),a[d].apply(a,b[c])},_circle:function(a,
b,c,d){a.arc(b,c,d,Math.PI*2,!0)},_addMapRect:function(a,b,c,d,e){a.addRect(b,[c[0].x-d.x,c[0].y-d.y,c[1].x-d.x,c[1].y-d.y],e)}};dhtmlx.compat("layout");