// THIS FILE HAS BEEN MINIFIED

if(typeof(RGraph) == 'undefined') RGraph = {isRGraph:true,type:'common'};RGraph.AllowAdjusting = function (obj)
{
var canvas = obj.canvas;var context = obj.context;RGraph.Register(obj);if(obj.type == 'thermometer'){
var canvas_onmousedown = function (e)
{
e = RGraph.FixEventObject(e);var obj = e.target.__object__;var id = obj.id;var canvas = obj.canvas;var context = obj.context;var coords = obj.coords[0];var mouseCoords = RGraph.getMouseXY(e);var mouseX = mouseCoords[0];var mouseY = mouseCoords[1];if(   mouseX > coords[0] && mouseX < (coords[0] + coords[2])){
RGraph.Registry.Set('chart.thermometer.' + id + '.resizing', true);obj.canvas.style.cursor = 'ns-resize';RGraph.FireCustomEvent(e.target.__object__, 'onadjustbegin');canvas_onmousemove(e);}
}
canvas.addEventListener('mousedown', canvas_onmousedown, false);RGraph.AddEventListener(canvas.id, 'mousedown', canvas_onmousedown);var canvas_onmousemove = function (e)
{
e = RGraph.FixEventObject(e);var obj = e.target.__object__;var id = obj.id;var canvas = obj.canvas;var context = obj.context;var coords = obj.coords[0];var mouseCoords = RGraph.getMouseXY(e);var mouseX = mouseCoords[0];var mouseY = mouseCoords[1];if(RGraph.Registry.Get('chart.thermometer.' + id + '.resizing')){
var capRadius = (RGraph.GetWidth(obj) - obj.gutterLeft - obj.gutterRight) / 2;var top = obj.gutterTop + capRadius;var bottom = coords[1] + coords[3];var newvalue = obj.max - ((mouseY - top) / (bottom - obj.gutterTop - capRadius)) * (obj.max - obj.min);obj.value = Math.round(newvalue);if(obj.value > obj.max){
obj.value = obj.max;} else if(obj.value < obj.min){
obj.value = obj.min;}
RGraph.Clear(canvas);obj.Draw();RGraph.FireCustomEvent(e.target.__object__, 'onadjust');}
}
canvas.addEventListener('mousemove', canvas_onmousemove, false);RGraph.AddEventListener(canvas.id, 'mousemove', canvas_onmousemove);var canvas_onmouseup = function (e)
{
e = RGraph.FixEventObject(e);var obj = e.target.__object__;var id = obj.id;var canvas = obj.canvas;var context = obj.context;var coords = obj.coords[0];var mouseCoords = RGraph.getMouseXY(e);var mouseX = mouseCoords[0];var mouseY = mouseCoords[1];RGraph.Registry.Set('chart.thermometer.' + id + '.resizing', false);obj.canvas.style.cursor = 'default';RGraph.FireCustomEvent(e.target.__object__, 'onadjustend');}
canvas.addEventListener('mouseup', canvas_onmouseup, false);RGraph.AddEventListener(canvas.id, 'mouseup', canvas_onmouseup);} else if(obj.type == 'line'){
var canvas_onmousedown = function (e)
{
e = RGraph.FixEventObject(e);var obj = e.target.__object__;var id = obj.id;var canvas = obj.canvas;var context = obj.context;var coords = obj.coords;var mouseCoords = RGraph.getMouseXY(e);RGraph.Redraw();for (var i=0; i<coords.length; ++i){
if(   mouseCoords[0] > coords[i][0] - 5
&& mouseCoords[1] > coords[i][1] - 5
&& mouseCoords[0] < coords[i][0] + 5
&& mouseCoords[1] < coords[i][1] + 5
){
var numDataSeries = obj.original_data.length;var numDataPoints = obj.original_data[0].length;var data_series = i / numDataPoints;data_series = Math.floor(data_series);canvas.style.cursor = 'ns-resize';RGraph.FireCustomEvent(obj, 'onadjustbegin');RGraph.Registry.Set('chart.adjusting.line.' + id, [obj, i, [coords[i][0], coords[i][1]], data_series]);return;}
}
}
canvas.addEventListener('mousedown', canvas_onmousedown, false);RGraph.AddEventListener(canvas.id, 'mousedown', canvas_onmousedown);var canvas_onmousemove = function (e)
{
e = RGraph.FixEventObject(e);var id = e.target.__object__.id;var state = RGraph.Registry.Get('chart.adjusting.line.' + id);if(state){
var obj = state[0];var idx = state[1];var canvas = obj.canvas;var context = obj.context;var data_series = state[3];var points = obj.original_data[data_series];var mouseCoords = RGraph.getMouseXY(e);var x = mouseCoords[0];var y = mouseCoords[1];var h = RGraph.GetHeight(obj);if(!obj.Get('chart.outofbounds')){
if(y >= (h - obj.gutterBottom)){
y = h - obj.gutterBottom;} else if(y <= obj.gutterTop){
y = obj.gutterTop;}
}
if(obj.Get('chart.xaxispos') == 'center'){
y *= 2;y -= (obj.gutterTop / 2);} else if(obj.Get('chart.xaxispos') == 'top'){
y = RGraph.GetHeight(obj) - y;}
var pos = h - obj.gutterTop - obj.gutterBottom;pos = pos - (y - obj.gutterTop);var value = (obj.max / (h - obj.gutterTop - obj.gutterBottom)) * pos;if(obj.Get('chart.ylabels.invert')){
value = obj.max - value;}
for (var i=0; i<data_series; ++i){
idx -= obj.original_data[0].length;}
obj.original_data[data_series][idx] = value;obj.Set('chart.ymax', obj.max);canvas.style.cursor = 'ns-resize';RGraph.Redraw();RGraph.FireCustomEvent(obj, 'onadjust');return;} else {
var canvas = e.target;var context = canvas.__object__.context;var obj = canvas.__object__;var mouseCoords = RGraph.getMouseXY(e);var x = mouseCoords[0];var y = mouseCoords[1];for (var i=0; i<obj.coords.length; ++i){
if(   x > obj.coords[i][0] - 5
&& y > obj.coords[i][1] - 5
&& x < obj.coords[i][0] + 5
&& y < obj.coords[i][1] + 5
){
canvas.style.cursor = 'ns-resize';return;}
}
}
e.target.style.cursor = null;}
canvas.addEventListener('mousemove', canvas_onmousemove, false);RGraph.AddEventListener(canvas.id, 'mousemove', canvas_onmousemove);var canvas_onmouseup = function (e)
{
var id = e.target.__object__.id;if(RGraph.Registry.Get('chart.adjusting.line.' + id)){
RGraph.FireCustomEvent(e.target.__object__, 'onadjustend');}
RGraph.Registry.Set('chart.adjusting.line.' + id, null);e.target.style.cursor = null;}
canvas.addEventListener('mouseup', canvas_onmouseup, false);RGraph.AddEventListener(canvas.id, 'mouseup', canvas_onmouseup);var canvas_onmouseout = function (e)
{
canvas_onmouseup(e);}
canvas.addEventListener('mouseout', canvas_onmouseout, false);RGraph.AddEventListener(canvas.id, 'mouseout', canvas_onmouseout);} else if(obj.type == 'hprogress'){
var canvas_onmousedown = function (e)
{
var id = e.target.__object__.id;RGraph.Registry.Set('chart.adjusting.hprogress.' + id, [true]);RGraph.FireCustomEvent(e.target.__object__, 'onadjustbegin');canvas_onmousemove(e);}
canvas.addEventListener('mousedown', canvas_onmousedown, false);RGraph.AddEventListener(canvas.id, 'mousedown', canvas_onmousedown);var canvas_onmousemove = function (e)
{
var id = e.target.__object__.id;var state = RGraph.Registry.Get('chart.adjusting.hprogress.' + id);if(state && state.length){
var obj = e.target.__object__;var canvas = obj.canvas;var context = obj.context;if(obj.type == 'hprogress'){
var coords = RGraph.getMouseXY(e);coords[0] = Math.max(0, coords[0] - obj.gutterLeft);var barWidth = canvas.width - obj.gutterLeft - obj.gutterRight;var value = (coords[0] / barWidth) * (obj.max - obj.Get('chart.min'));value += obj.Get('chart.min');obj.value = Math.max(0, value.toFixed());RGraph.Clear(obj.canvas);obj.Draw();}
RGraph.FireCustomEvent(obj, 'onadjust');}
}
canvas.addEventListener('mousemove', canvas_onmousemove, false);RGraph.AddEventListener(canvas.id, 'mousemove', canvas_onmousemove);var canvas_onmouseup = function (e)
{
var id = e.target.__object__.id;if(RGraph.Registry.Get('chart.adjusting.hprogress.' + id)){
RGraph.FireCustomEvent(e.target.__object__, 'onadjustend');}
RGraph.Registry.Set('chart.adjusting.hprogress.' + id, null);}
canvas.addEventListener('mouseup', canvas_onmouseup, false);RGraph.AddEventListener(canvas.id, 'mouseup', canvas_onmouseup);var canvas_onmouseout = function (e)
{
canvas_onmouseup(e);}
canvas.addEventListener('mouseout', canvas_onmouseout, false);RGraph.AddEventListener(canvas.id, 'mouseout', canvas_onmouseout);} else if(obj.type == 'vprogress'){
var canvas_onmousedown = function (e)
{
var id = e.target.__object__.id;RGraph.Registry.Set('chart.adjusting.vprogress.' + id, [true]);RGraph.FireCustomEvent(e.target.__object__, 'onadjustbegin');canvas_onmousemove(e);}
canvas.addEventListener('mousedown', canvas_onmousedown, false);RGraph.AddEventListener(canvas.id, 'mousedown', canvas_onmousedown);var canvas_onmousemove = function (e)
{
var id = e.target.__object__.id;var state = RGraph.Registry.Get('chart.adjusting.vprogress.' + id);if(state && state.length){
var obj = e.target.__object__;var canvas = obj.canvas;var context = obj.context;if(obj.type == 'hprogress'){
var coords = RGraph.getMouseXY(e);coords[0] = Math.max(0, coords[0] - obj.gutterLeft);var barWidth = canvas.width - obj.gutterLeft - obj.gutterRight;var value = (coords[0] / barWidth) * (obj.max - obj.Get('chart.min'));value += obj.Get('chart.min');obj.value = Math.max(0, value.toFixed(obj.Get('chart.scale.decimals')));RGraph.Clear(obj.canvas);obj.Draw();} else if(obj.type == 'vprogress'){
var coords = RGraph.getMouseXY(e);coords[1] = Math.max(0, coords[1] - obj.gutterTop);var barHeight = canvas.height - obj.gutterTop -  obj.gutterBottom;var value = ( (barHeight - coords[1]) / barHeight) * obj.max;obj.value = Math.max(0, value.toFixed(obj.Get('chart.scale.decimals')));RGraph.Clear(obj.canvas);obj.Draw();}
RGraph.FireCustomEvent(obj, 'onadjust');}
}
canvas.addEventListener('mousemove', canvas_onmousemove, false);RGraph.AddEventListener(canvas.id, 'mousemove', canvas_onmousemove);var canvas_onmouseup = function (e)
{
var id = e.target.__object__.id;if(RGraph.Registry.Get('chart.adjusting.vprogress.' + id)){
RGraph.FireCustomEvent(e.target.__object__, 'onadjustend');}
RGraph.Registry.Set('chart.adjusting.vprogress.' + id, null);}
canvas.addEventListener('mouseup', canvas_onmouseup, false);RGraph.AddEventListener(canvas.id, 'mouseup', canvas_onmouseup);var canvas_onmouseout = function (e)
{
canvas_onmouseup(e);}
canvas.addEventListener('mouseout', canvas_onmouseout, false);RGraph.AddEventListener(canvas.id, 'mouseout', canvas_onmouseout);} else if(obj.type == 'bar'){
if(obj.Get('chart.grouping') == 'stacked'){
alert('[BAR] Adjusting stacked bar charts is not supported');return;}
var canvas = obj.canvas;var context = obj.context;var canvas_onmousemove = function (e)
{
var obj = e.target.__object__;var id = obj.id;var canvas = obj.canvas;var context = obj.context;var mouse = RGraph.getMouseXY(e);var mousex = mouse[0];var mousey = mouse[1];for (var i=0; i<obj.coords.length; ++i){
var barX = obj.coords[i][0];var barY = obj.coords[i][1];var barW = obj.coords[i][2];var barH = obj.coords[i][3];if(mousex > barX && mousex < (barX + barW)){
var idx = RGraph.Registry.Get('chart.adjusting.bar.' + id)
if(typeof(idx) == 'number'){
if(obj.Get('chart.xaxispos') == 'center'){
obj.grapharea /= 2;}
var newheight = obj.grapharea - (mousey - obj.gutterTop);var newvalue = (newheight / obj.grapharea) * obj.max;if(obj.Get('chart.xaxispos') == 'top'){
newvalue = obj.max - newvalue;}
if(newvalue > obj.max) newvalue = obj.max;if(obj.Get('chart.xaxispos') == 'center'){
if(newvalue < (-1 * obj.max)) newvalue = (-1 * obj.max);} else {
if(newvalue < 0) newvalue = 0;}
var j, index;for (var j=0, index=0; j<obj.data.length; ++j,++index){
if(typeof(obj.data[j]) == 'object'){
for (var k=0; k<obj.data[j].length && index <= idx; ++k, ++index){
if(index == idx){
if(obj.Get('chart.xaxispos') == 'top'){
newvalue *= -1;}
obj.data[j][k] = newvalue;var b = true;break;}
}
--index;} else if(typeof(obj.data[j]) == 'number'){
if(index == idx){
if(obj.Get('chart.xaxispos') == 'top'){
newvalue *= -1;}
obj.data[j] = newvalue;break;}
}
if(b){
break;}
}
RGraph.Clear(canvas);obj.Draw();RGraph.FireCustomEvent(obj, 'onadjust');}
return;}
}
canvas.style.cursor = 'default';}
canvas.addEventListener('mousemove', canvas_onmousemove, false);RGraph.AddEventListener(canvas.id, 'mousemove', canvas_onmousemove);var canvas_onmousedown = function (e)
{
var obj = e.target.__object__;var id = obj.id;var canvas = obj.canvas;var context = obj.context;var mouse = RGraph.getMouseXY(e);var mousex = mouse[0];var mousey = mouse[1];for (var i=0; i<obj.coords.length; ++i){
if(mousex > obj.coords[i][0] && mousex < (obj.coords[i][0] + obj.coords[i][2])){
RGraph.FireCustomEvent(obj, 'onadjustbegin');obj.Set('chart.ymax', obj.max);RGraph.Registry.Set('chart.adjusting.bar.' + id, i);canvas_onmousemove(e);}
}
}
canvas.addEventListener('mousedown', canvas_onmousedown, false);RGraph.AddEventListener(canvas.id, 'mousedown', canvas_onmousedown);var canvas_onmouseup = function (e)
{
var id = e.target.__object__.id;if(typeof(RGraph.Registry.Get('chart.adjusting.bar.' + id)) == 'number'){
RGraph.FireCustomEvent(e.target.__object__, 'onadjustend');}
RGraph.Registry.Set('chart.adjusting.bar.' + id, null);}
canvas.addEventListener('mouseup', canvas_onmouseup, false);RGraph.AddEventListener(canvas.id, 'mouseup', canvas_onmouseup);var canvas_onmouseout = function (e)
{
canvas_onmouseup(e);}
canvas.addEventListener('mouseout', canvas_onmouseout, false);RGraph.AddEventListener(canvas.id, 'mouseout', canvas_onmouseout);} else if(obj.type == 'radar'){
var canvas = obj.canvas;var context = obj.context;var canvas_onmousemove = function (e)
{
var id = e.target.id;var obj = e.target.__object__;var canvas = obj.canvas;var context = obj.context;var mouseDown = RGraph.Registry.Get('chart.adjusting.radar.' + id);var mouseCoords = RGraph.getMouseXY(e);if(mouseDown){
canvas.style.cursor = 'move';var dataset = mouseDown[0];var index = mouseDown[1];var dx = mouseCoords[0] - obj.centerx;var dy = mouseCoords[1] - obj.centery;var hyp = Math.sqrt((dx * dx) + (dy * dy));var newvalue = (hyp / (obj.size / 2)) * obj.max;newvalue = Math.min(obj.max, newvalue);newvalue = Math.max(0, newvalue);obj.original_data[mouseDown[0]][mouseDown[1]] = newvalue;RGraph.Clear(canvas);obj.Draw();RGraph.FireCustomEvent(obj, 'onadjust');} else {
for (var ds = 0; ds<obj.coords.length; ds++){
for (var i=0; i<obj.coords[ds].length; ++i){
var dx = Math.abs(mouseCoords[0] - obj.coords[ds][i][0]);var dy = Math.abs(mouseCoords[1] - obj.coords[ds][i][1]);var a = Math.atan(dy / dx);var hyp = Math.sqrt((dx * dx) + (dy * dy));if(hyp <= 5){
canvas.style.cursor = 'move';return;}
}
}
canvas.style.cursor = 'default';}
}
canvas.addEventListener('mousemove', canvas_onmousemove, false);RGraph.AddEventListener(canvas.id, 'mousemove', canvas_onmousemove);var canvas_onmousedown = function (e)
{
e = RGraph.FixEventObject(e);var obj = e.target.__object__;var id = obj.id;var canvas = obj.canvas;var context = obj.context;var mouseCoords = RGraph.getMouseXY(e);for (var j=0; j<obj.coords.length; ++j){
for (var i=0; i<obj.coords[j].length; ++i){
var dx = Math.abs(mouseCoords[0] - obj.coords[j][i][0]);var dy = Math.abs(mouseCoords[1] - obj.coords[j][i][1]);var a = Math.atan(dy / dx);var hyp = Math.sqrt((dx * dx) + (dy * dy));if(hyp <= 5){
canvas.style.cursor = 'pointer';RGraph.FireCustomEvent(obj, 'onadjustbegin');RGraph.Registry.Set('chart.adjusting.radar.' + id, [j, i, obj.coords[j][i][0] > obj.centerx, obj.coords[j][i][1] > obj.centery]);return;}
}
}
canvas.style.cursor = 'default';}
canvas.addEventListener('mousedown', canvas_onmousedown, false);RGraph.AddEventListener(canvas.id, 'mousedown', canvas_onmousedown);var canvas_onmouseup = function (e)
{
var id = e.target.id;if(RGraph.Registry.Get('chart.adjusting.radar.' + id)){
RGraph.FireCustomEvent(e.target.__object__, 'onadjustend');}
RGraph.Registry.Set('chart.adjusting.radar.' + id, null);canvas.style.cursor = 'default';}
canvas.addEventListener('mouseup', canvas_onmouseup, false);RGraph.AddEventListener(canvas.id, 'mouseup', canvas_onmouseup);var canvas_onmouseout = function (e)
{
canvas_onmouseup(e);}
canvas.addEventListener('mouseout', canvas_onmouseout, false);RGraph.AddEventListener(canvas.id, 'mouseout', canvas_onmouseout);} else if(obj.type == 'gantt'){
var canvas_onmousedown = function (e)
{
var canvas = e.target;var id = canvas.id;var obj = canvas.__object__;var mouseCoords = RGraph.getMouseXY(e);var mouseX = mouseCoords[0];var mouseY = mouseCoords[1];for (var i=0; i<obj.coords.length; ++i){
var coordX = obj.coords[i][0];var coordY = obj.coords[i][1];var coordW = obj.coords[i][2];var coordH = obj.coords[i][3];if(mouseX > coordX
&& mouseX < (coordX + coordW)
&& mouseY > coordY
&& mouseY < (coordY + coordH)
){
var mode = (mouseX >= (coordX + coordW - 5) ? 'resize' : 'move');RGraph.Registry.Set('chart.adjusting.gantt', {'index': i,'object': obj,'mousex': mouseX,'mousey': mouseY,'event_start': obj.Get('chart.events')[i][0],'event_duration': obj.Get('chart.events')[i][1],'mode': mode});RGraph.FireCustomEvent(obj, 'onadjustbegin');return;}
}
}
canvas.addEventListener('mousedown', canvas_onmousedown, false);RGraph.AddEventListener(canvas.id, 'mousedown', canvas_onmousedown);var canvas_onmousemove = function (e)
{
var canvas = e.target;var id = canvas.id;var obj = canvas.__object__;var mouseCoords = RGraph.getMouseXY(e);var mouseX = mouseCoords[0];var mouseY = mouseCoords[1];for (var i=0; i<obj.coords.length; ++i){
var coordX = obj.coords[i][0];var coordY = obj.coords[i][1];var coordW = obj.coords[i][2];var coordH = obj.coords[i][3];if(mouseX > coordX
&& mouseX < (coordX + coordW)
&& mouseY > coordY
&& mouseY < (coordY + coordH)
){
canvas.style.cursor = 'ew-resize';                        
return;}
}
canvas.style.cursor = 'default';}
canvas.addEventListener('mousemove', canvas_onmousemove, false);RGraph.AddEventListener(canvas.id, 'mousemove', canvas_onmousemove);var window_onmousemove = function (e)
{
var conf = RGraph.Registry.Get('chart.adjusting.gantt');if(conf){
var obj = conf['object'];var id = obj.id;var index = conf['index'];var startX = conf['mousex'];var startY = conf['mousey'];var eventStart = conf['event_start'];var duration = conf['event_duration'];var mode = conf['mode'];var mouseCoords = RGraph.getMouseXY(e);var mouseX = mouseCoords[0];var mouseY = mouseCoords[1];RGraph.FireCustomEvent(obj, 'onadjust');if(mode == 'resize'){
if(mouseX > (RGraph.GetWidth(obj) - obj.gutterRight)){
mouseX = RGraph.GetWidth(obj) - obj.gutterRight;}
var diff = ((mouseX - startX) / (RGraph.GetWidth(obj) - obj.gutterLeft - obj.gutterRight)) * obj.Get('chart.xmax');diff = Math.round(diff);obj.Get('chart.events')[index][1] = duration + diff;if(obj.Get('chart.events')[index][1] < 0){
obj.Get('chart.events')[index][1] = 1;}
} else {
var diff = ((mouseX - startX) / (RGraph.GetWidth(obj) - obj.gutterLeft - obj.gutterRight)) * obj.Get('chart.xmax');diff = Math.round(diff);if(   eventStart + diff > 0
&& (eventStart + diff + obj.Get('chart.events')[index][1]) < obj.Get('chart.xmax')){
obj.Get('chart.events')[index][0] = eventStart + diff;} else if(eventStart + diff < 0){
obj.Get('chart.events')[index][0] = 0;} else if((eventStart + diff + obj.Get('chart.events')[index][1]) > obj.Get('chart.xmax')){
obj.Get('chart.events')[index][0] = obj.Get('chart.xmax') - obj.Get('chart.events')[index][1];}
}
RGraph.Redraw();RGraph.FireCustomEvent(obj, 'onadjust');}
}
window.addEventListener('mousemove', window_onmousemove, false);RGraph.AddEventListener('window_' + canvas.id, 'mousemove', window_onmousemove);var window_onmouseup = function (e)
{
if(RGraph.Registry.Get('chart.adjusting.gantt')){
var conf = RGraph.Registry.Get('chart.adjusting.gantt');var obj = conf['object'];var id = obj.id;RGraph.FireCustomEvent(obj, 'onadjustend');RGraph.Registry.Set('chart.adjusting.gantt', null);}
}
window.addEventListener('mouseup', window_onmouseup, false);RGraph.AddEventListener('window_' + canvas.id, 'mouseup', window_onmouseup);}
}
