/* 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;i0;)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){var g=[];g.push(d);g.push(Math.floor(e*h));for(var i=b;i"+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");e||(this._drawYAxis(a,b,c,d,h.min,h.max),this._drawHXAxis(a,b,c,d,g.min,g.max));for(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),j=0;jd.max&&(k=b[f.toLowerCase()]);h=i;n-=k){l.fixNum&&(n=parseFloat((new Number(n)).toFixed(l.fixNum)));o.push(Math.floor(u*z)+0.5);y&&(n=Math.round(n*y)/y);var w=d-e+o[o.length-1];this.renderTextAt("middle","left",c,w,h.template(n.toString()),"dhx_axis_item_y dhx_radar");if(b.length<2){this._drawScaleSector(a, "arc",c,d,e-o[o.length-1],-Math.PI/2,3*Math.PI/2,n);return}var v=-Math.PI/2,t=v,A;for(r=0;rMath.PI)m=-i;e>Math.PI/2&&(l=-g);if(Math.abs(e+Math.PI/2)=0;m--){var p= k+Math.floor(h.cellWidth*m)-0.5,n=b[m].$startY;a.lineTo(p,n)}else a.lineTo(k+Math.floor(h.cellWidth*(length-1))-0.5,j);a.lineTo(k,j);a.fill();for(m=0;m=1;c--)f[c]=(e[c]-b[c]*f[c+1])/d[c];h=[];g=[];i=[];j=[];for(c=0;co&&(u=o/this._series.length- 4);var z=Math.floor((o-u*this._series.length)/2),x=typeof this._settings.radius!="undefined"?parseInt(this._settings.radius,10):Math.round(u/5),y=!1,s=this._settings.gradient;s&&typeof s!="function"?(y=s,s=!1):s&&(s=a.createLinearGradient(c.x,c.y,d.x,c.y),this._settings.gradient(s));var w=0;l||this._drawLine(a,c.x-0.5,c.y,c.x-0.5,d.y,"#000000",1);for(var v=0;vh&&(t=h);t-=g;t*=i;var A=c.x,B=c.y+z+v*o+(u+1)*e;if(t<0&&this._settings.origin== "auto"||this._settings.xAxis&&t===0&&!(this._settings.origin!="auto"&&this._settings.origin>g))this.renderTextAt("middle","right",A+10,B+u/2+z,this._settings.label(b[v]));else{t<0&&this._settings.origin!="auto"&&this._settings.origin>g&&(t=0);l||(t+=q/r);var C=s||this._settings.color.call(this,b[v]);this._settings.border&&this._drawBarHBorder(a,A,B,u,g,x,r,t,C);a.globalAlpha=this._settings.alpha.call(this,b[v]);var D=this._drawBarH(a,c,A,B,u,g,x,r,t,C,s,y);y!=!1&&this._drawBarHGradient(a,A,B,u,g, x,r,t,C,y);a.globalAlpha=1;D[3]==B?(this.renderTextAt("middle","left",D[0]-5,D[3]+Math.floor(u/2),this._settings.label(b[v])),f.addRect(b[v].id,[D[0],D[3],D[2],D[3]+u],e)):(this.renderTextAt("middle",!1,D[2]+5,D[1]+Math.floor(u/2),this._settings.label(b[v])),f.addRect(b[v].id,[D[0],B,D[2],D[3]],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 p=c+d-e-(e?0:g),o=l+e-(e?g:0);a.lineTo(o,p);var n=l;e&&e>0&&a.arc(n,p,e-g,0,Math.PI/2-j,!1);var r=c+d-g;a.lineTo(b,r);i||a.lineTo(b,c+g);return[o,r]},_drawHScales:function(a,b,c,d,e,f,h){var g=this._drawHXAxis(a,b,c,d,e,f);this._drawHYAxis(a,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 p=this._setBarHPoints(a,m.x0,m.y0,e,h,g,m.value,this._settings.border?1:0);k&&!l&&a.lineTo(b.x+total_width, m.y0+(this._settings.border?1:0));a.fill();a.restore();var o=m.y0,n=m.y0!=d?d:p[1],r=m.y0!=d?m.start-p[0]:m.start,q=m.y0!=d?m.start:p[0];return[r,o,q,n]},_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();var m=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 p=Math.floor((d.y-c.y)/b.length);e||this._drawHScales(a,b,c,d,g,h,p);l&&(h=parseFloat(this._settings.xAxis.end),g=parseFloat(this._settings.xAxis.start));var o=this._getRelativeValue(g,h);j=o[0];i=o[1];var n=j?k/j:10;if(!l)var r=10,n=j?(k-r)/j:10;var q=parseInt(this._settings.width,10);q+4>p&&(q=p-4);var u=Math.floor((p-q)/2),z=0,x=!1, y=this._settings.gradient;y&&(x=!0);l||this._drawLine(a,c.x-0.5,c.y,c.x-0.5,d.y,"#000000",1);for(var s=0;sh&&(w=h);w-=g;w*=i;var v=c.x,t=c.y+u+s*p;e?v=b[s].$startX:b[s].$startX=v;if(w<0||this._settings.yAxis&&w===0)this.renderTextAt("middle",!0,v+10,t+q/2,this._settings.label(b[s]));else{l||(w+=r/n);var A=this._settings.color.call(this,b[s]);a.globalAlpha=this._settings.alpha.call(this,b[s]);a.fillStyle=this._settings.color.call(this, b[s]);a.beginPath();var B=this._setBarHPoints(a,v,t,q,z,n,w,this._settings.border?1:0);y&&!x&&a.lineTo(c.x+k,t+(this._settings.border?1:0));a.fill();if(x!=!1){var C=this._setBarGradient(a,v,t+q,v,t,x,A,"x");a.fillStyle=C.gradient;a.beginPath();B=this._setBarHPoints(a,v,t,q,z,n,w,0);a.fill()}this._settings.border&&this._drawBarHBorder(a,v,t,q,g,z,n,w,A);a.globalAlpha=1;this.renderTextAt("middle",!0,b[s].$startX+(B[0]-b[s].$startX)/2-1,t+(B[1]-t)/2,this._settings.label(b[s]));f.addRect(b[s].id,[b[s].$startX, t,B[0],B[1]],e);b[s].$startX=B[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,p=this._getStackedLimits(b);h=p.max;g=p.min;var o=Math.floor((d.x-c.x)/b.length);e||this._drawScales(a,b,c,d,g,h,o);l&&(h=parseFloat(this._settings.yAxis.end),g=parseFloat(this._settings.yAxis.start));var n=this._getRelativeValue(g,h);j=n[0];i=n[1];var r=j?k/j:10,q=parseInt(this._settings.width,10);q+4>o&&(q=o-4);var u=Math.floor((o-q)/2),z=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 x=0;x=0;i--)a.globalAlpha=g[i],a.strokeStyle="#d0d0d0",a.beginPath(),this._strokeChartItem(a,b,c+2*h/3,h+i+1,f.type),a.stroke();a.beginPath();a.globalAlpha=0.3;a.fillStyle="#bdbdbd";this._strokeChartItem(a,b,c+2*h/3,h+1,f.type);a.fill()}a.restore();a.lineWidth=f.borderWidth;a.fillStyle=f.color.call(this,d);a.strokeStyle=f.borderColor.call(this,d);a.globalAlpha=f.alpha.call(this,d);a.beginPath();this._strokeChartItem(a,b,c,h+1,f.type);a.fill();a.stroke();a.globalAlpha=1;e&& this.renderTextAt(!1,!0,b,c-h-this._settings.labelOffset,this._settings.label.call(this,d))},_strokeChartItem:function(a,b,c,d,e){if(e&&(e=="square"||e=="s"))d*=Math.sqrt(2)/2,a.moveTo(b-d-a.lineWidth/2,c-d),a.lineTo(b+d,c-d),a.lineTo(b+d,c+d),a.lineTo(b-d,c+d),a.lineTo(b-d,c-d);else if(e&&(e=="diamond"||e=="d")){var f=a.lineWidth>1?a.lineWidth*Math.sqrt(2)/4:0;a.moveTo(b,c-d);a.lineTo(b+d,c);a.lineTo(b,c+d);a.lineTo(b-d,c);a.lineTo(b+f,c-d-f)}else e&&(e=="triangle"||e=="t")?(a.moveTo(b,c-d),a.lineTo(b+ Math.sqrt(3)*d/2,c+d/2),a.lineTo(b-Math.sqrt(3)*d/2,c+d/2),a.lineTo(b,c-d)):a.arc(b,c,d,0,Math.PI*2,!0)},_getYPointOfLineChart: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-Math.floor(h*j);if(j<0)k=c.y;if(i>f)k=b.y;if(ig&&this._drawXAxis(a,b,c,d,o,d.y-r*(this._settings.origin-g));var u=parseInt(this._settings.width,10);this._series&&u*this._series.length+4>o&&(u=parseInt(o/this._series.length-4,10));var z=Math.floor((o-u*this._series.length)/2),x=typeof this._settings.radius!="undefined"?parseInt(this._settings.radius,10):Math.round(u/5),y=!1,s=this._settings.gradient;s&&typeof s!="function"?(y=s,s=!1):s&&(s=a.createLinearGradient(0,d.y,0,c.y),this._settings.gradient(s));m||this._drawLine(a, c.x,d.y+0.5,d.x,d.y+0.5,"#000000",1);for(var w=0;wh&&(v=h);v-=g;v*=i;var t=c.x+z+w*o+(u+1)*e,A=d.y+0.5;if(v<0||this._settings.yAxis&&v===0&&!(this._settings.origin!="auto"&&this._settings.origin>g))this.renderTextAt(!0,!0,t+Math.floor(u/2),A,this._settings.label(b[w]));else{!l&&!(this._settings.origin!="auto"&&m)&&(v+=q/r);var B=s||this._settings.color.call(this,b[w]);a.globalAlpha=this._settings.alpha.call(this,b[w]);var C=this._drawBar(a, c,t,A,u,g,x,r,v,B,s,y);y&&this._drawBarGradient(a,t,A,u,g,x,r,v,B,y);this._settings.border&&this._drawBarBorder(a,t,A,u,g,x,r,v,B);a.globalAlpha=1;C[0]!=t?this.renderTextAt(!1,!0,t+Math.floor(u/2),C[1],this._settings.label(b[w])):this.renderTextAt(!0,!0,t+Math.floor(u/2),C[3],this._settings.label(b[w]));f.addRect(b[w].id,[t,C[3],C[2],C[1]],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:parseInt(b,10),y0:parseInt(c,10),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),p=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 o=m.x0,n=m.x0!=c?c+p[0]:p[0],r=m.x0!=c?m.start-p[1]:d,q=m.x0!=c?m.start:p[1]; return[o,r,n,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 p=b+d-e-(e?0:g),o=l-e+(e?g:0);a.lineTo(p,o);e&&e>0&&a.arc(p,l,e-g,-Math.PI/2,0-j,!1);var n=b+d-g;a.lineTo(n,c);i||a.lineTo(b+g,c);return[n,o]}}; dhtmlx.chart.pie={pvt_render_pie:function(a,b,c,d,e,f){this._renderPie(a,b,c,d,1,f)},_renderPie:function(a,b,c,d,e,f){if(b.length){var h=this._getPieParameters(c,d),g=this._settings.radius?this._settings.radius:h.radius;if(!(g<0)){var i=this._getValues(b),j=this._getTotalValue(i),k=this._getRatios(i,j),l=this._settings.x?this._settings.x:h.x,m=this._settings.y?this._settings.y:h.y;e==1&&this._settings.shadow&&this._addShadow(a,l,m,g);m/=e;var p=-Math.PI/2,o=[];a.scale(1,e);if(this._settings.gradient){var n= e!=1?l+g/3:l,r=e!=1?m+g/3:m;this._showRadialGradient(a,l,m,g,n,r)}for(var q=0;q=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.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,p=-8,o="right";if(l>=Math.PI/2&&l=Math.PI)m=-j-m+1,o="left";var n=0;!g&&f<1&&l>0&&l=Math.PI/2&&l=Math.PI))q+=j/3;i.style.top=r+"px";i.style.left=q+"px";i.style.width=j+"px";i.style.textAlign=o;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;g5?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);gd)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;f=="light"?(i=g=="x"?a.createLinearGradient(b,c,d,c):a.createLinearGradient(b,c,b,e),i.addColorStop(0,"#FFFFFF"),i.addColorStop(0.9,h),i.addColorStop(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"?(i.addColorStop(0,m),i.addColorStop(0.7,h),i.addColorStop(1,h)):f=="rising"&&(i.addColorStop(0,h),i.addColorStop(0.3,h),i.addColorStop(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),i.addColorStop(0,"#9d9d9d"),i.addColorStop(0.3,"#e8e8e8"),i.addColorStop(0.45,"#ffffff"),i.addColorStop(0.55,"#ffffff"),i.addColorStop(0.7,"#e8e8e8"),i.addColorStop(1,"#9d9d9d"));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}}};dhtmlx.compat("layout");