Path : /var/www/html/mini-moneyexchange/public/assets/libs/chart/ |
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
Current File : /var/www/html/mini-moneyexchange/public/assets/libs/chart/jquery.flot.min.js |
/* Javascript plotting library for jQuery, v. 0.7. * * Released under the MIT license by IOLA, December 2007. * */ (function (b) { b.color = {}; b.color.make = function (d, e, g, f) { var c = {}; c.r = d || 0; c.g = e || 0; c.b = g || 0; c.a = f != null ? f : 1; c.add = function (h, j) { for (var k = 0; k < h.length; ++k) { c[h.charAt(k)] += j; } return c.normalize(); }; c.scale = function (h, j) { for (var k = 0; k < h.length; ++k) { c[h.charAt(k)] *= j; } return c.normalize(); }; c.toString = function () { if (c.a >= 1) { return "rgb(" + [c.r, c.g, c.b].join(",") + ")"; } else { return "rgba(" + [c.r, c.g, c.b, c.a].join(",") + ")"; } }; c.normalize = function () { function h(k, j, l) { return j < k ? k : j > l ? l : j; } c.r = h(0, parseInt(c.r), 255); c.g = h(0, parseInt(c.g), 255); c.b = h(0, parseInt(c.b), 255); c.a = h(0, c.a, 1); return c; }; c.clone = function () { return b.color.make(c.r, c.b, c.g, c.a); }; return c.normalize(); }; b.color.extract = function (d, e) { var c; do { c = d.css(e).toLowerCase(); if (c != "" && c != "transparent") { break; } d = d.parent(); } while (!b.nodeName(d.get(0), "body")); if (c == "rgba(0, 0, 0, 0)") { c = "transparent"; } return b.color.parse(c); }; b.color.parse = function (c) { var d, f = b.color.make; if ( (d = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec( c )) ) { return f(parseInt(d[1], 10), parseInt(d[2], 10), parseInt(d[3], 10)); } if ( (d = /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( c )) ) { return f( parseInt(d[1], 10), parseInt(d[2], 10), parseInt(d[3], 10), parseFloat(d[4]) ); } if ( (d = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec( c )) ) { return f( parseFloat(d[1]) * 2.55, parseFloat(d[2]) * 2.55, parseFloat(d[3]) * 2.55 ); } if ( (d = /rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec( c )) ) { return f( parseFloat(d[1]) * 2.55, parseFloat(d[2]) * 2.55, parseFloat(d[3]) * 2.55, parseFloat(d[4]) ); } if ((d = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))) { return f(parseInt(d[1], 16), parseInt(d[2], 16), parseInt(d[3], 16)); } if ((d = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))) { return f( parseInt(d[1] + d[1], 16), parseInt(d[2] + d[2], 16), parseInt(d[3] + d[3], 16) ); } var e = b.trim(c).toLowerCase(); if (e == "transparent") { return f(255, 255, 255, 0); } else { d = a[e] || [0, 0, 0]; return f(d[0], d[1], d[2]); } }; var a = { aqua: [0, 255, 255], azure: [240, 255, 255], beige: [245, 245, 220], black: [0, 0, 0], blue: [0, 0, 255], brown: [165, 42, 42], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgrey: [169, 169, 169], darkgreen: [0, 100, 0], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkviolet: [148, 0, 211], fuchsia: [255, 0, 255], gold: [255, 215, 0], green: [0, 128, 0], indigo: [75, 0, 130], khaki: [240, 230, 140], lightblue: [173, 216, 230], lightcyan: [224, 255, 255], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightyellow: [255, 255, 224], lime: [0, 255, 0], magenta: [255, 0, 255], maroon: [128, 0, 0], navy: [0, 0, 128], olive: [128, 128, 0], orange: [255, 165, 0], pink: [255, 192, 203], purple: [128, 0, 128], violet: [128, 0, 128], red: [255, 0, 0], silver: [192, 192, 192], white: [255, 255, 255], yellow: [255, 255, 0], }; })(jQuery); (function (c) { function b(av, ai, J, af) { var Q = [], O = { colors: ["#488c13", "#da4b0f", "#e9b104", "#97080e", "#1b55c0"], legend: { show: true, noColumns: 1, labelFormatter: null, labelBoxBorderColor: "#ccc", container: null, position: "ne", margin: 5, backgroundColor: null, backgroundOpacity: 0.85, }, xaxis: { show: null, position: "bottom", mode: null, color: null, tickColor: null, transform: null, inverseTransform: null, min: null, max: null, autoscaleMargin: null, ticks: null, tickFormatter: null, labelWidth: null, labelHeight: null, reserveSpace: null, tickLength: null, alignTicksWithAxis: null, tickDecimals: null, tickSize: null, minTickSize: null, monthNames: null, timeformat: null, twelveHourClock: false, }, yaxis: { autoscaleMargin: 0.02, position: "left" }, xaxes: [], yaxes: [], series: { points: { show: false, radius: 3, lineWidth: 2, fill: true, fillColor: "#ffffff", symbol: "circle", }, lines: { lineWidth: 2, fill: false, fillColor: null, steps: false }, bars: { show: false, lineWidth: 2, barWidth: 1, fill: true, fillColor: null, align: "left", horizontal: false, }, shadowSize: 3, }, grid: { show: true, aboveData: false, color: "#545454", backgroundColor: null, borderColor: "#cdcdcd", tickColor: "#ebebeb", labelMargin: 5, axisMargin: 8, borderWidth: 1, minBorderMargin: null, markings: null, markingsColor: "#f4f4f4", markingsLineWidth: 2, clickable: false, hoverable: false, autoHighlight: true, mouseActiveRadius: 10, }, hooks: {}, }, az = null, ad = null, y = null, H = null, A = null, p = [], aw = [], q = { left: 0, right: 0, top: 0, bottom: 0 }, G = 0, I = 0, h = 0, w = 0, ak = { processOptions: [], processRawData: [], processDatapoints: [], drawSeries: [], draw: [], bindEvents: [], drawOverlay: [], shutdown: [], }, aq = this; aq.setData = aj; aq.setupGrid = t; aq.draw = W; aq.getPlaceholder = function () { return av; }; aq.getCanvas = function () { return az; }; aq.getPlotOffset = function () { return q; }; aq.width = function () { return h; }; aq.height = function () { return w; }; aq.offset = function () { var aB = y.offset(); aB.left += q.left; aB.top += q.top; return aB; }; aq.getData = function () { return Q; }; aq.getAxes = function () { var aC = {}, aB; c.each(p.concat(aw), function (aD, aE) { if (aE) { aC[aE.direction + (aE.n != 1 ? aE.n : "") + "axis"] = aE; } }); return aC; }; aq.getXAxes = function () { return p; }; aq.getYAxes = function () { return aw; }; aq.c2p = C; aq.p2c = ar; aq.getOptions = function () { return O; }; aq.highlight = x; aq.unhighlight = T; aq.triggerRedrawOverlay = f; aq.pointOffset = function (aB) { return { left: parseInt(p[aA(aB, "x") - 1].p2c(+aB.x) + q.left), top: parseInt(aw[aA(aB, "y") - 1].p2c(+aB.y) + q.top), }; }; aq.shutdown = ag; aq.resize = function () { B(); g(az); g(ad); }; aq.hooks = ak; F(aq); Z(J); X(); aj(ai); t(); W(); ah(); function an(aD, aB) { aB = [aq].concat(aB); for (var aC = 0; aC < aD.length; ++aC) { aD[aC].apply(this, aB); } } function F() { for (var aB = 0; aB < af.length; ++aB) { var aC = af[aB]; aC.init(aq); if (aC.options) { c.extend(true, O, aC.options); } } } function Z(aC) { var aB; c.extend(true, O, aC); if (O.xaxis.color == null) { O.xaxis.color = O.grid.color; } if (O.yaxis.color == null) { O.yaxis.color = O.grid.color; } if (O.xaxis.tickColor == null) { O.xaxis.tickColor = O.grid.tickColor; } if (O.yaxis.tickColor == null) { O.yaxis.tickColor = O.grid.tickColor; } if (O.grid.borderColor == null) { O.grid.borderColor = O.grid.color; } if (O.grid.tickColor == null) { O.grid.tickColor = c.color .parse(O.grid.color) .scale("a", 0.22) .toString(); } for (aB = 0; aB < Math.max(1, O.xaxes.length); ++aB) { O.xaxes[aB] = c.extend(true, {}, O.xaxis, O.xaxes[aB]); } for (aB = 0; aB < Math.max(1, O.yaxes.length); ++aB) { O.yaxes[aB] = c.extend(true, {}, O.yaxis, O.yaxes[aB]); } if (O.xaxis.noTicks && O.xaxis.ticks == null) { O.xaxis.ticks = O.xaxis.noTicks; } if (O.yaxis.noTicks && O.yaxis.ticks == null) { O.yaxis.ticks = O.yaxis.noTicks; } if (O.x2axis) { O.xaxes[1] = c.extend(true, {}, O.xaxis, O.x2axis); O.xaxes[1].position = "top"; } if (O.y2axis) { O.yaxes[1] = c.extend(true, {}, O.yaxis, O.y2axis); O.yaxes[1].position = "right"; } if (O.grid.coloredAreas) { O.grid.markings = O.grid.coloredAreas; } if (O.grid.coloredAreasColor) { O.grid.markingsColor = O.grid.coloredAreasColor; } if (O.lines) { c.extend(true, O.series.lines, O.lines); } if (O.points) { c.extend(true, O.series.points, O.points); } if (O.bars) { c.extend(true, O.series.bars, O.bars); } if (O.shadowSize != null) { O.series.shadowSize = O.shadowSize; } for (aB = 0; aB < O.xaxes.length; ++aB) { V(p, aB + 1).options = O.xaxes[aB]; } for (aB = 0; aB < O.yaxes.length; ++aB) { V(aw, aB + 1).options = O.yaxes[aB]; } for (var aD in ak) { if (O.hooks[aD] && O.hooks[aD].length) { ak[aD] = ak[aD].concat(O.hooks[aD]); } } an(ak.processOptions, [O]); } function aj(aB) { Q = Y(aB); ax(); z(); } function Y(aE) { var aC = []; for (var aB = 0; aB < aE.length; ++aB) { var aD = c.extend(true, {}, O.series); if (aE[aB].data != null) { aD.data = aE[aB].data; delete aE[aB].data; c.extend(true, aD, aE[aB]); aE[aB].data = aD.data; } else { aD.data = aE[aB]; } aC.push(aD); } return aC; } function aA(aC, aD) { var aB = aC[aD + "axis"]; if (typeof aB == "object") { aB = aB.n; } if (typeof aB != "number") { aB = 1; } return aB; } function m() { return c.grep(p.concat(aw), function (aB) { return aB; }); } function C(aE) { var aC = {}, aB, aD; for (aB = 0; aB < p.length; ++aB) { aD = p[aB]; if (aD && aD.used) { aC["x" + aD.n] = aD.c2p(aE.left); } } for (aB = 0; aB < aw.length; ++aB) { aD = aw[aB]; if (aD && aD.used) { aC["y" + aD.n] = aD.c2p(aE.top); } } if (aC.x1 !== undefined) { aC.x = aC.x1; } if (aC.y1 !== undefined) { aC.y = aC.y1; } return aC; } function ar(aF) { var aD = {}, aC, aE, aB; for (aC = 0; aC < p.length; ++aC) { aE = p[aC]; if (aE && aE.used) { aB = "x" + aE.n; if (aF[aB] == null && aE.n == 1) { aB = "x"; } if (aF[aB] != null) { aD.left = aE.p2c(aF[aB]); break; } } } for (aC = 0; aC < aw.length; ++aC) { aE = aw[aC]; if (aE && aE.used) { aB = "y" + aE.n; if (aF[aB] == null && aE.n == 1) { aB = "y"; } if (aF[aB] != null) { aD.top = aE.p2c(aF[aB]); break; } } } return aD; } function V(aC, aB) { if (!aC[aB - 1]) { aC[aB - 1] = { n: aB, direction: aC == p ? "x" : "y", options: c.extend(true, {}, aC == p ? O.xaxis : O.yaxis), }; } return aC[aB - 1]; } function ax() { var aG; var aM = Q.length, aB = [], aE = []; for (aG = 0; aG < Q.length; ++aG) { var aJ = Q[aG].color; if (aJ != null) { --aM; if (typeof aJ == "number") { aE.push(aJ); } else { aB.push(c.color.parse(Q[aG].color)); } } } for (aG = 0; aG < aE.length; ++aG) { aM = Math.max(aM, aE[aG] + 1); } var aC = [], aF = 0; aG = 0; while (aC.length < aM) { var aI; if (O.colors.length == aG) { aI = c.color.make(100, 100, 100); } else { aI = c.color.parse(O.colors[aG]); } var aD = aF % 2 == 1 ? -1 : 1; aI.scale("rgb", 1 + aD * Math.ceil(aF / 2) * 0.2); aC.push(aI); ++aG; if (aG >= O.colors.length) { aG = 0; ++aF; } } var aH = 0, aN; for (aG = 0; aG < Q.length; ++aG) { aN = Q[aG]; if (aN.color == null) { aN.color = aC[aH].toString(); ++aH; } else { if (typeof aN.color == "number") { aN.color = aC[aN.color].toString(); } } if (aN.lines.show == null) { var aL, aK = true; for (aL in aN) { if (aN[aL] && aN[aL].show) { aK = false; break; } } if (aK) { aN.lines.show = true; } } aN.xaxis = V(p, aA(aN, "x")); aN.yaxis = V(aw, aA(aN, "y")); } } function z() { var aO = Number.POSITIVE_INFINITY, aI = Number.NEGATIVE_INFINITY, aB = Number.MAX_VALUE, aU, aS, aR, aN, aD, aJ, aT, aP, aH, aG, aC, a0, aX, aL; function aF(a3, a2, a1) { if (a2 < a3.datamin && a2 != -aB) { a3.datamin = a2; } if (a1 > a3.datamax && a1 != aB) { a3.datamax = a1; } } c.each(m(), function (a1, a2) { a2.datamin = aO; a2.datamax = aI; a2.used = false; }); for (aU = 0; aU < Q.length; ++aU) { aJ = Q[aU]; aJ.datapoints = { points: [] }; an(ak.processRawData, [aJ, aJ.data, aJ.datapoints]); } for (aU = 0; aU < Q.length; ++aU) { aJ = Q[aU]; var aZ = aJ.data, aW = aJ.datapoints.format; if (!aW) { aW = []; aW.push({ x: true, number: true, required: true }); aW.push({ y: true, number: true, required: true }); if (aJ.bars.show || (aJ.lines.show && aJ.lines.fill)) { aW.push({ y: true, number: true, required: false, defaultValue: 0, }); if (aJ.bars.horizontal) { delete aW[aW.length - 1].y; aW[aW.length - 1].x = true; } } aJ.datapoints.format = aW; } if (aJ.datapoints.pointsize != null) { continue; } aJ.datapoints.pointsize = aW.length; aP = aJ.datapoints.pointsize; aT = aJ.datapoints.points; insertSteps = aJ.lines.show && aJ.lines.steps; aJ.xaxis.used = aJ.yaxis.used = true; for (aS = aR = 0; aS < aZ.length; ++aS, aR += aP) { aL = aZ[aS]; var aE = aL == null; if (!aE) { for (aN = 0; aN < aP; ++aN) { a0 = aL[aN]; aX = aW[aN]; if (aX) { if (aX.number && a0 != null) { a0 = +a0; if (isNaN(a0)) { a0 = null; } else { if (a0 == Infinity) { a0 = aB; } else { if (a0 == -Infinity) { a0 = -aB; } } } } if (a0 == null) { if (aX.required) { aE = true; } if (aX.defaultValue != null) { a0 = aX.defaultValue; } } } aT[aR + aN] = a0; } } if (aE) { for (aN = 0; aN < aP; ++aN) { a0 = aT[aR + aN]; if (a0 != null) { aX = aW[aN]; if (aX.x) { aF(aJ.xaxis, a0, a0); } if (aX.y) { aF(aJ.yaxis, a0, a0); } } aT[aR + aN] = null; } } else { if ( insertSteps && aR > 0 && aT[aR - aP] != null && aT[aR - aP] != aT[aR] && aT[aR - aP + 1] != aT[aR + 1] ) { for (aN = 0; aN < aP; ++aN) { aT[aR + aP + aN] = aT[aR + aN]; } aT[aR + 1] = aT[aR - aP + 1]; aR += aP; } } } } for (aU = 0; aU < Q.length; ++aU) { aJ = Q[aU]; an(ak.processDatapoints, [aJ, aJ.datapoints]); } for (aU = 0; aU < Q.length; ++aU) { aJ = Q[aU]; (aT = aJ.datapoints.points), (aP = aJ.datapoints.pointsize); var aK = aO, aQ = aO, aM = aI, aV = aI; for (aS = 0; aS < aT.length; aS += aP) { if (aT[aS] == null) { continue; } for (aN = 0; aN < aP; ++aN) { a0 = aT[aS + aN]; aX = aW[aN]; if (!aX || a0 == aB || a0 == -aB) { continue; } if (aX.x) { if (a0 < aK) { aK = a0; } if (a0 > aM) { aM = a0; } } if (aX.y) { if (a0 < aQ) { aQ = a0; } if (a0 > aV) { aV = a0; } } } } if (aJ.bars.show) { var aY = aJ.bars.align == "left" ? 0 : -aJ.bars.barWidth / 2; if (aJ.bars.horizontal) { aQ += aY; aV += aY + aJ.bars.barWidth; } else { aK += aY; aM += aY + aJ.bars.barWidth; } } aF(aJ.xaxis, aK, aM); aF(aJ.yaxis, aQ, aV); } c.each(m(), function (a1, a2) { if (a2.datamin == aO) { a2.datamin = null; } if (a2.datamax == aI) { a2.datamax = null; } }); } function j(aB, aC) { var aD = document.createElement("canvas"); aD.className = aC; aD.width = G; aD.height = I; if (!aB) { c(aD).css({ position: "absolute", left: 0, top: 0 }); } c(aD).appendTo(av); if (!aD.getContext) { aD = window.G_vmlCanvasManager.initElement(aD); } aD.getContext("2d").save(); return aD; } function B() { G = av.width(); I = av.height(); if (G <= 0 || I <= 0) { throw "Invalid dimensions for plot, width = " + G + ", height = " + I; } } function g(aC) { if (aC.width != G) { aC.width = G; } if (aC.height != I) { aC.height = I; } var aB = aC.getContext("2d"); aB.restore(); aB.save(); } function X() { var aC, aB = av.children("canvas.base"), aD = av.children("canvas.overlay"); if (aB.length == 0 || aD == 0) { av.html(""); av.css({ padding: 0 }); if (av.css("position") == "static") { av.css("position", "relative"); } B(); az = j(true, "base"); ad = j(false, "overlay"); aC = false; } else { az = aB.get(0); ad = aD.get(0); aC = true; } H = az.getContext("2d"); A = ad.getContext("2d"); y = c([ad, az]); if (aC) { av.data("plot").shutdown(); aq.resize(); A.clearRect(0, 0, G, I); y.unbind(); av.children().not([az, ad]).remove(); } av.data("plot", aq); } function ah() { if (O.grid.hoverable) { y.mousemove(aa); y.mouseleave(l); } if (O.grid.clickable) { y.click(R); } an(ak.bindEvents, [y]); } function ag() { if (M) { clearTimeout(M); } y.unbind("mousemove", aa); y.unbind("mouseleave", l); y.unbind("click", R); an(ak.shutdown, [y]); } function r(aG) { function aC(aH) { return aH; } var aF, aB, aD = aG.options.transform || aC, aE = aG.options.inverseTransform; if (aG.direction == "x") { aF = aG.scale = h / Math.abs(aD(aG.max) - aD(aG.min)); aB = Math.min(aD(aG.max), aD(aG.min)); } else { aF = aG.scale = w / Math.abs(aD(aG.max) - aD(aG.min)); aF = -aF; aB = Math.max(aD(aG.max), aD(aG.min)); } if (aD == aC) { aG.p2c = function (aH) { return (aH - aB) * aF; }; } else { aG.p2c = function (aH) { return (aD(aH) - aB) * aF; }; } if (!aE) { aG.c2p = function (aH) { return aB + aH / aF; }; } else { aG.c2p = function (aH) { return aE(aB + aH / aF); }; } } function L(aD) { var aB = aD.options, aF, aJ = aD.ticks || [], aI = [], aE, aK = aB.labelWidth, aG = aB.labelHeight, aC; function aH(aM, aL) { return c( '<div style="position:absolute;top:-10000px;' + aL + 'font-size:smaller"><div class="' + aD.direction + "Axis " + aD.direction + aD.n + 'Axis">' + aM.join("") + "</div></div>" ).appendTo(av); } if (aD.direction == "x") { if (aK == null) { aK = Math.floor(G / (aJ.length > 0 ? aJ.length : 1)); } if (aG == null) { aI = []; for (aF = 0; aF < aJ.length; ++aF) { aE = aJ[aF].label; if (aE) { aI.push( '<div class="tickLabel" style="float:left;width:' + aK + 'px">' + aE + "</div>" ); } } if (aI.length > 0) { aI.push('<div style="clear:left"></div>'); aC = aH(aI, "width:10000px;"); aG = aC.height(); aC.remove(); } } } else { if (aK == null || aG == null) { for (aF = 0; aF < aJ.length; ++aF) { aE = aJ[aF].label; if (aE) { aI.push('<div class="tickLabel">' + aE + "</div>"); } } if (aI.length > 0) { aC = aH(aI, ""); if (aK == null) { aK = aC.children().width(); } if (aG == null) { aG = aC.find("div.tickLabel").height(); } aC.remove(); } } } if (aK == null) { aK = 0; } if (aG == null) { aG = 0; } aD.labelWidth = aK; aD.labelHeight = aG; } function au(aD) { var aC = aD.labelWidth, aL = aD.labelHeight, aH = aD.options.position, aF = aD.options.tickLength, aG = O.grid.axisMargin, aJ = O.grid.labelMargin, aK = aD.direction == "x" ? p : aw, aE; var aB = c.grep(aK, function (aN) { return aN && aN.options.position == aH && aN.reserveSpace; }); if (c.inArray(aD, aB) == aB.length - 1) { aG = 0; } if (aF == null) { aF = "full"; } var aI = c.grep(aK, function (aN) { return aN && aN.reserveSpace; }); var aM = c.inArray(aD, aI) == 0; if (!aM && aF == "full") { aF = 5; } if (!isNaN(+aF)) { aJ += +aF; } if (aD.direction == "x") { aL += aJ; if (aH == "bottom") { q.bottom += aL + aG; aD.box = { top: I - q.bottom, height: aL }; } else { aD.box = { top: q.top + aG, height: aL }; q.top += aL + aG; } } else { aC += aJ; if (aH == "left") { aD.box = { left: q.left + aG, width: aC }; q.left += aC + aG; } else { q.right += aC + aG; aD.box = { left: G - q.right, width: aC }; } } aD.position = aH; aD.tickLength = aF; aD.box.padding = aJ; aD.innermost = aM; } function U(aB) { if (aB.direction == "x") { aB.box.left = q.left; aB.box.width = h; } else { aB.box.top = q.top; aB.box.height = w; } } function t() { var aC, aE = m(); c.each(aE, function (aF, aG) { aG.show = aG.options.show; if (aG.show == null) { aG.show = aG.used; } aG.reserveSpace = aG.show || aG.options.reserveSpace; n(aG); }); allocatedAxes = c.grep(aE, function (aF) { return aF.reserveSpace; }); q.left = q.right = q.top = q.bottom = 0; if (O.grid.show) { c.each(allocatedAxes, function (aF, aG) { S(aG); P(aG); ap(aG, aG.ticks); L(aG); }); for (aC = allocatedAxes.length - 1; aC >= 0; --aC) { au(allocatedAxes[aC]); } var aD = O.grid.minBorderMargin; if (aD == null) { aD = 0; for (aC = 0; aC < Q.length; ++aC) { aD = Math.max(aD, Q[aC].points.radius + Q[aC].points.lineWidth / 2); } } for (var aB in q) { q[aB] += O.grid.borderWidth; q[aB] = Math.max(aD, q[aB]); } } h = G - q.left - q.right; w = I - q.bottom - q.top; c.each(aE, function (aF, aG) { r(aG); }); if (O.grid.show) { c.each(allocatedAxes, function (aF, aG) { U(aG); }); k(); } o(); } function n(aE) { var aF = aE.options, aD = +(aF.min != null ? aF.min : aE.datamin), aB = +(aF.max != null ? aF.max : aE.datamax), aH = aB - aD; if (aH == 0) { var aC = aB == 0 ? 1 : 0.01; if (aF.min == null) { aD -= aC; } if (aF.max == null || aF.min != null) { aB += aC; } } else { var aG = aF.autoscaleMargin; if (aG != null) { if (aF.min == null) { aD -= aH * aG; if (aD < 0 && aE.datamin != null && aE.datamin >= 0) { aD = 0; } } if (aF.max == null) { aB += aH * aG; if (aB > 0 && aE.datamax != null && aE.datamax <= 0) { aB = 0; } } } } aE.min = aD; aE.max = aB; } function S(aG) { var aM = aG.options; var aH; if (typeof aM.ticks == "number" && aM.ticks > 0) { aH = aM.ticks; } else { aH = 0.3 * Math.sqrt(aG.direction == "x" ? G : I); } var aT = (aG.max - aG.min) / aH, aO, aB, aN, aR, aS, aQ, aI; if (aM.mode == "time") { var aJ = { second: 1000, minute: 60 * 1000, hour: 60 * 60 * 1000, day: 24 * 60 * 60 * 1000, month: 30 * 24 * 60 * 60 * 1000, year: 365.2425 * 24 * 60 * 60 * 1000, }; var aK = [ [1, "second"], [2, "second"], [5, "second"], [10, "second"], [30, "second"], [1, "minute"], [2, "minute"], [5, "minute"], [10, "minute"], [30, "minute"], [1, "hour"], [2, "hour"], [4, "hour"], [8, "hour"], [12, "hour"], [1, "day"], [2, "day"], [3, "day"], [0.25, "month"], [0.5, "month"], [1, "month"], [2, "month"], [3, "month"], [6, "month"], [1, "year"], ]; var aC = 0; if (aM.minTickSize != null) { if (typeof aM.tickSize == "number") { aC = aM.tickSize; } else { aC = aM.minTickSize[0] * aJ[aM.minTickSize[1]]; } } for (var aS = 0; aS < aK.length - 1; ++aS) { if ( aT < (aK[aS][0] * aJ[aK[aS][1]] + aK[aS + 1][0] * aJ[aK[aS + 1][1]]) / 2 && aK[aS][0] * aJ[aK[aS][1]] >= aC ) { break; } } aO = aK[aS][0]; aN = aK[aS][1]; if (aN == "year") { aQ = Math.pow(10, Math.floor(Math.log(aT / aJ.year) / Math.LN10)); aI = aT / aJ.year / aQ; if (aI < 1.5) { aO = 1; } else { if (aI < 3) { aO = 2; } else { if (aI < 7.5) { aO = 5; } else { aO = 10; } } } aO *= aQ; } aG.tickSize = aM.tickSize || [aO, aN]; aB = function (aX) { var a2 = [], a0 = aX.tickSize[0], a3 = aX.tickSize[1], a1 = new Date(aX.min); var aW = a0 * aJ[a3]; if (a3 == "second") { a1.setUTCSeconds(a(a1.getUTCSeconds(), a0)); } if (a3 == "minute") { a1.setUTCMinutes(a(a1.getUTCMinutes(), a0)); } if (a3 == "hour") { a1.setUTCHours(a(a1.getUTCHours(), a0)); } if (a3 == "month") { a1.setUTCMonth(a(a1.getUTCMonth(), a0)); } if (a3 == "year") { a1.setUTCFullYear(a(a1.getUTCFullYear(), a0)); } a1.setUTCMilliseconds(0); if (aW >= aJ.minute) { a1.setUTCSeconds(0); } if (aW >= aJ.hour) { a1.setUTCMinutes(0); } if (aW >= aJ.day) { a1.setUTCHours(0); } if (aW >= aJ.day * 4) { a1.setUTCDate(1); } if (aW >= aJ.year) { a1.setUTCMonth(0); } var a5 = 0, a4 = Number.NaN, aY; do { aY = a4; a4 = a1.getTime(); a2.push(a4); if (a3 == "month") { if (a0 < 1) { a1.setUTCDate(1); var aV = a1.getTime(); a1.setUTCMonth(a1.getUTCMonth() + 1); var aZ = a1.getTime(); a1.setTime(a4 + a5 * aJ.hour + (aZ - aV) * a0); a5 = a1.getUTCHours(); a1.setUTCHours(0); } else { a1.setUTCMonth(a1.getUTCMonth() + a0); } } else { if (a3 == "year") { a1.setUTCFullYear(a1.getUTCFullYear() + a0); } else { a1.setTime(a4 + aW); } } } while (a4 < aX.max && a4 != aY); return a2; }; aR = function (aV, aY) { var a0 = new Date(aV); if (aM.timeformat != null) { return c.plot.formatDate(a0, aM.timeformat, aM.monthNames); } var aW = aY.tickSize[0] * aJ[aY.tickSize[1]]; var aX = aY.max - aY.min; var aZ = aM.twelveHourClock ? " %p" : ""; if (aW < aJ.minute) { fmt = "%h:%M:%S" + aZ; } else { if (aW < aJ.day) { if (aX < 2 * aJ.day) { fmt = "%h:%M" + aZ; } else { fmt = "%b %d %h:%M" + aZ; } } else { if (aW < aJ.month) { fmt = "%b %d"; } else { if (aW < aJ.year) { if (aX < aJ.year) { fmt = "%b"; } else { fmt = "%b %y"; } } else { fmt = "%y"; } } } } return c.plot.formatDate(a0, fmt, aM.monthNames); }; } else { var aU = aM.tickDecimals; var aP = -Math.floor(Math.log(aT) / Math.LN10); if (aU != null && aP > aU) { aP = aU; } aQ = Math.pow(10, -aP); aI = aT / aQ; if (aI < 1.5) { aO = 1; } else { if (aI < 3) { aO = 2; if (aI > 2.25 && (aU == null || aP + 1 <= aU)) { aO = 2.5; ++aP; } } else { if (aI < 7.5) { aO = 5; } else { aO = 10; } } } aO *= aQ; if (aM.minTickSize != null && aO < aM.minTickSize) { aO = aM.minTickSize; } aG.tickDecimals = Math.max(0, aU != null ? aU : aP); aG.tickSize = aM.tickSize || aO; aB = function (aX) { var aZ = []; var a0 = a(aX.min, aX.tickSize), aW = 0, aV = Number.NaN, aY; do { aY = aV; aV = a0 + aW * aX.tickSize; aZ.push(aV); ++aW; } while (aV < aX.max && aV != aY); return aZ; }; aR = function (aV, aW) { return aV.toFixed(aW.tickDecimals); }; } if (aM.alignTicksWithAxis != null) { var aF = (aG.direction == "x" ? p : aw)[aM.alignTicksWithAxis - 1]; if (aF && aF.used && aF != aG) { var aL = aB(aG); if (aL.length > 0) { if (aM.min == null) { aG.min = Math.min(aG.min, aL[0]); } if (aM.max == null && aL.length > 1) { aG.max = Math.max(aG.max, aL[aL.length - 1]); } } aB = function (aX) { var aY = [], aV, aW; for (aW = 0; aW < aF.ticks.length; ++aW) { aV = (aF.ticks[aW].v - aF.min) / (aF.max - aF.min); aV = aX.min + aV * (aX.max - aX.min); aY.push(aV); } return aY; }; if (aG.mode != "time" && aM.tickDecimals == null) { var aE = Math.max(0, -Math.floor(Math.log(aT) / Math.LN10) + 1), aD = aB(aG); if ( !(aD.length > 1 && /\..*0$/.test((aD[1] - aD[0]).toFixed(aE))) ) { aG.tickDecimals = aE; } } } } aG.tickGenerator = aB; if (c.isFunction(aM.tickFormatter)) { aG.tickFormatter = function (aV, aW) { return "" + aM.tickFormatter(aV, aW); }; } else { aG.tickFormatter = aR; } } function P(aF) { var aH = aF.options.ticks, aG = []; if (aH == null || (typeof aH == "number" && aH > 0)) { aG = aF.tickGenerator(aF); } else { if (aH) { if (c.isFunction(aH)) { aG = aH({ min: aF.min, max: aF.max }); } else { aG = aH; } } } var aE, aB; aF.ticks = []; for (aE = 0; aE < aG.length; ++aE) { var aC = null; var aD = aG[aE]; if (typeof aD == "object") { aB = +aD[0]; if (aD.length > 1) { aC = aD[1]; } } else { aB = +aD; } if (aC == null) { aC = aF.tickFormatter(aB, aF); } if (!isNaN(aB)) { aF.ticks.push({ v: aB, label: aC }); } } } function ap(aB, aC) { if (aB.options.autoscaleMargin && aC.length > 0) { if (aB.options.min == null) { aB.min = Math.min(aB.min, aC[0].v); } if (aB.options.max == null && aC.length > 1) { aB.max = Math.max(aB.max, aC[aC.length - 1].v); } } } function W() { H.clearRect(0, 0, G, I); var aC = O.grid; if (aC.show && aC.backgroundColor) { N(); } if (aC.show && !aC.aboveData) { ac(); } for (var aB = 0; aB < Q.length; ++aB) { an(ak.drawSeries, [H, Q[aB]]); d(Q[aB]); } an(ak.draw, [H]); if (aC.show && aC.aboveData) { ac(); } } function D(aB, aI) { var aE, aH, aG, aD, aF = m(); for (i = 0; i < aF.length; ++i) { aE = aF[i]; if (aE.direction == aI) { aD = aI + aE.n + "axis"; if (!aB[aD] && aE.n == 1) { aD = aI + "axis"; } if (aB[aD]) { aH = aB[aD].from; aG = aB[aD].to; break; } } } if (!aB[aD]) { aE = aI == "x" ? p[0] : aw[0]; aH = aB[aI + "1"]; aG = aB[aI + "2"]; } if (aH != null && aG != null && aH > aG) { var aC = aH; aH = aG; aG = aC; } return { from: aH, to: aG, axis: aE }; } function N() { H.save(); H.translate(q.left, q.top); H.fillStyle = am(O.grid.backgroundColor, w, 0, "rgba(255, 255, 255, 0)"); H.fillRect(0, 0, h, w); H.restore(); } function ac() { var aF; H.save(); H.translate(q.left, q.top); var aH = O.grid.markings; if (aH) { if (c.isFunction(aH)) { var aK = aq.getAxes(); aK.xmin = aK.xaxis.min; aK.xmax = aK.xaxis.max; aK.ymin = aK.yaxis.min; aK.ymax = aK.yaxis.max; aH = aH(aK); } for (aF = 0; aF < aH.length; ++aF) { var aD = aH[aF], aC = D(aD, "x"), aI = D(aD, "y"); if (aC.from == null) { aC.from = aC.axis.min; } if (aC.to == null) { aC.to = aC.axis.max; } if (aI.from == null) { aI.from = aI.axis.min; } if (aI.to == null) { aI.to = aI.axis.max; } if ( aC.to < aC.axis.min || aC.from > aC.axis.max || aI.to < aI.axis.min || aI.from > aI.axis.max ) { continue; } aC.from = Math.max(aC.from, aC.axis.min); aC.to = Math.min(aC.to, aC.axis.max); aI.from = Math.max(aI.from, aI.axis.min); aI.to = Math.min(aI.to, aI.axis.max); if (aC.from == aC.to && aI.from == aI.to) { continue; } aC.from = aC.axis.p2c(aC.from); aC.to = aC.axis.p2c(aC.to); aI.from = aI.axis.p2c(aI.from); aI.to = aI.axis.p2c(aI.to); if (aC.from == aC.to || aI.from == aI.to) { H.beginPath(); H.strokeStyle = aD.color || O.grid.markingsColor; H.lineWidth = aD.lineWidth || O.grid.markingsLineWidth; H.moveTo(aC.from, aI.from); H.lineTo(aC.to, aI.to); H.stroke(); } else { H.fillStyle = aD.color || O.grid.markingsColor; H.fillRect(aC.from, aI.to, aC.to - aC.from, aI.from - aI.to); } } } var aK = m(), aM = O.grid.borderWidth; for (var aE = 0; aE < aK.length; ++aE) { var aB = aK[aE], aG = aB.box, aQ = aB.tickLength, aN, aL, aP, aJ; if (!aB.show || aB.ticks.length == 0) { continue; } H.strokeStyle = aB.options.tickColor || c.color.parse(aB.options.color).scale("a", 0.22).toString(); H.lineWidth = 1; if (aB.direction == "x") { aN = 0; if (aQ == "full") { aL = aB.position == "top" ? 0 : w; } else { aL = aG.top - q.top + (aB.position == "top" ? aG.height : 0); } } else { aL = 0; if (aQ == "full") { aN = aB.position == "left" ? 0 : h; } else { aN = aG.left - q.left + (aB.position == "left" ? aG.width : 0); } } if (!aB.innermost) { H.beginPath(); aP = aJ = 0; if (aB.direction == "x") { aP = h; } else { aJ = w; } if (H.lineWidth == 1) { aN = Math.floor(aN) + 0.5; aL = Math.floor(aL) + 0.5; } H.moveTo(aN, aL); H.lineTo(aN + aP, aL + aJ); H.stroke(); } H.beginPath(); for (aF = 0; aF < aB.ticks.length; ++aF) { var aO = aB.ticks[aF].v; aP = aJ = 0; if ( aO < aB.min || aO > aB.max || (aQ == "full" && aM > 0 && (aO == aB.min || aO == aB.max)) ) { continue; } if (aB.direction == "x") { aN = aB.p2c(aO); aJ = aQ == "full" ? -w : aQ; if (aB.position == "top") { aJ = -aJ; } } else { aL = aB.p2c(aO); aP = aQ == "full" ? -h : aQ; if (aB.position == "left") { aP = -aP; } } if (H.lineWidth == 1) { if (aB.direction == "x") { aN = Math.floor(aN) + 0.5; } else { aL = Math.floor(aL) + 0.5; } } H.moveTo(aN, aL); H.lineTo(aN + aP, aL + aJ); } H.stroke(); } if (aM) { H.lineWidth = aM; H.strokeStyle = O.grid.borderColor; H.strokeRect(-aM / 2, -aM / 2, h + aM, w + aM); } H.restore(); } function k() { av.find(".tickLabels").remove(); var aG = ['<div class="tickLabels" style="font-size:smaller">']; var aJ = m(); for (var aD = 0; aD < aJ.length; ++aD) { var aC = aJ[aD], aF = aC.box; if (!aC.show) { continue; } aG.push( '<div class="' + aC.direction + "Axis " + aC.direction + aC.n + 'Axis" style="color:' + aC.options.color + '">' ); for (var aE = 0; aE < aC.ticks.length; ++aE) { var aH = aC.ticks[aE]; if (!aH.label || aH.v < aC.min || aH.v > aC.max) { continue; } var aK = {}, aI; if (aC.direction == "x") { aI = "center"; aK.left = Math.round(q.left + aC.p2c(aH.v) - aC.labelWidth / 2); if (aC.position == "bottom") { aK.top = aF.top + aF.padding; } else { aK.bottom = I - (aF.top + aF.height - aF.padding); } } else { aK.top = Math.round(q.top + aC.p2c(aH.v) - aC.labelHeight / 2); if (aC.position == "left") { aK.right = G - (aF.left + aF.width - aF.padding); aI = "right"; } else { aK.left = aF.left + aF.padding; aI = "left"; } } aK.width = aC.labelWidth; var aB = ["position:absolute", "text-align:" + aI]; for (var aL in aK) { aB.push(aL + ":" + aK[aL] + "px"); } aG.push( '<div class="tickLabel" style="' + aB.join(";") + '">' + aH.label + "</div>" ); } aG.push("</div>"); } aG.push("</div>"); av.append(aG.join("")); } function d(aB) { if (aB.lines.show) { at(aB); } if (aB.bars.show) { e(aB); } if (aB.points.show) { ao(aB); } } function at(aE) { function aD(aP, aQ, aI, aU, aT) { var aV = aP.points, aJ = aP.pointsize, aN = null, aM = null; H.beginPath(); for (var aO = aJ; aO < aV.length; aO += aJ) { var aL = aV[aO - aJ], aS = aV[aO - aJ + 1], aK = aV[aO], aR = aV[aO + 1]; if (aL == null || aK == null) { continue; } if (aS <= aR && aS < aT.min) { if (aR < aT.min) { continue; } aL = ((aT.min - aS) / (aR - aS)) * (aK - aL) + aL; aS = aT.min; } else { if (aR <= aS && aR < aT.min) { if (aS < aT.min) { continue; } aK = ((aT.min - aS) / (aR - aS)) * (aK - aL) + aL; aR = aT.min; } } if (aS >= aR && aS > aT.max) { if (aR > aT.max) { continue; } aL = ((aT.max - aS) / (aR - aS)) * (aK - aL) + aL; aS = aT.max; } else { if (aR >= aS && aR > aT.max) { if (aS > aT.max) { continue; } aK = ((aT.max - aS) / (aR - aS)) * (aK - aL) + aL; aR = aT.max; } } if (aL <= aK && aL < aU.min) { if (aK < aU.min) { continue; } aS = ((aU.min - aL) / (aK - aL)) * (aR - aS) + aS; aL = aU.min; } else { if (aK <= aL && aK < aU.min) { if (aL < aU.min) { continue; } aR = ((aU.min - aL) / (aK - aL)) * (aR - aS) + aS; aK = aU.min; } } if (aL >= aK && aL > aU.max) { if (aK > aU.max) { continue; } aS = ((aU.max - aL) / (aK - aL)) * (aR - aS) + aS; aL = aU.max; } else { if (aK >= aL && aK > aU.max) { if (aL > aU.max) { continue; } aR = ((aU.max - aL) / (aK - aL)) * (aR - aS) + aS; aK = aU.max; } } if (aL != aN || aS != aM) { H.moveTo(aU.p2c(aL) + aQ, aT.p2c(aS) + aI); } aN = aK; aM = aR; H.lineTo(aU.p2c(aK) + aQ, aT.p2c(aR) + aI); } H.stroke(); } function aF(aI, aQ, aP) { var aW = aI.points, aV = aI.pointsize, aN = Math.min(Math.max(0, aP.min), aP.max), aX = 0, aU, aT = false, aM = 1, aL = 0, aR = 0; while (true) { if (aV > 0 && aX > aW.length + aV) { break; } aX += aV; var aZ = aW[aX - aV], aK = aW[aX - aV + aM], aY = aW[aX], aJ = aW[aX + aM]; if (aT) { if (aV > 0 && aZ != null && aY == null) { aR = aX; aV = -aV; aM = 2; continue; } if (aV < 0 && aX == aL + aV) { H.fill(); aT = false; aV = -aV; aM = 1; aX = aL = aR + aV; continue; } } if (aZ == null || aY == null) { continue; } if (aZ <= aY && aZ < aQ.min) { if (aY < aQ.min) { continue; } aK = ((aQ.min - aZ) / (aY - aZ)) * (aJ - aK) + aK; aZ = aQ.min; } else { if (aY <= aZ && aY < aQ.min) { if (aZ < aQ.min) { continue; } aJ = ((aQ.min - aZ) / (aY - aZ)) * (aJ - aK) + aK; aY = aQ.min; } } if (aZ >= aY && aZ > aQ.max) { if (aY > aQ.max) { continue; } aK = ((aQ.max - aZ) / (aY - aZ)) * (aJ - aK) + aK; aZ = aQ.max; } else { if (aY >= aZ && aY > aQ.max) { if (aZ > aQ.max) { continue; } aJ = ((aQ.max - aZ) / (aY - aZ)) * (aJ - aK) + aK; aY = aQ.max; } } if (!aT) { H.beginPath(); H.moveTo(aQ.p2c(aZ), aP.p2c(aN)); aT = true; } if (aK >= aP.max && aJ >= aP.max) { H.lineTo(aQ.p2c(aZ), aP.p2c(aP.max)); H.lineTo(aQ.p2c(aY), aP.p2c(aP.max)); continue; } else { if (aK <= aP.min && aJ <= aP.min) { H.lineTo(aQ.p2c(aZ), aP.p2c(aP.min)); H.lineTo(aQ.p2c(aY), aP.p2c(aP.min)); continue; } } var aO = aZ, aS = aY; if (aK <= aJ && aK < aP.min && aJ >= aP.min) { aZ = ((aP.min - aK) / (aJ - aK)) * (aY - aZ) + aZ; aK = aP.min; } else { if (aJ <= aK && aJ < aP.min && aK >= aP.min) { aY = ((aP.min - aK) / (aJ - aK)) * (aY - aZ) + aZ; aJ = aP.min; } } if (aK >= aJ && aK > aP.max && aJ <= aP.max) { aZ = ((aP.max - aK) / (aJ - aK)) * (aY - aZ) + aZ; aK = aP.max; } else { if (aJ >= aK && aJ > aP.max && aK <= aP.max) { aY = ((aP.max - aK) / (aJ - aK)) * (aY - aZ) + aZ; aJ = aP.max; } } if (aZ != aO) { H.lineTo(aQ.p2c(aO), aP.p2c(aK)); } H.lineTo(aQ.p2c(aZ), aP.p2c(aK)); H.lineTo(aQ.p2c(aY), aP.p2c(aJ)); if (aY != aS) { H.lineTo(aQ.p2c(aY), aP.p2c(aJ)); H.lineTo(aQ.p2c(aS), aP.p2c(aJ)); } } } H.save(); H.translate(q.left, q.top); H.lineJoin = "round"; var aG = aE.lines.lineWidth, aB = aE.shadowSize; if (aG > 0 && aB > 0) { H.lineWidth = aB; H.strokeStyle = "rgba(0,0,0,0.1)"; var aH = Math.PI / 18; aD( aE.datapoints, Math.sin(aH) * (aG / 2 + aB / 2), Math.cos(aH) * (aG / 2 + aB / 2), aE.xaxis, aE.yaxis ); H.lineWidth = aB / 2; aD( aE.datapoints, Math.sin(aH) * (aG / 2 + aB / 4), Math.cos(aH) * (aG / 2 + aB / 4), aE.xaxis, aE.yaxis ); } H.lineWidth = aG; H.strokeStyle = aE.color; var aC = ae(aE.lines, aE.color, 0, w); if (aC) { H.fillStyle = aC; aF(aE.datapoints, aE.xaxis, aE.yaxis); } if (aG > 0) { aD(aE.datapoints, 0, 0, aE.xaxis, aE.yaxis); } H.restore(); } function ao(aE) { function aH(aN, aM, aU, aK, aS, aT, aQ, aJ) { var aR = aN.points, aI = aN.pointsize; for (var aL = 0; aL < aR.length; aL += aI) { var aP = aR[aL], aO = aR[aL + 1]; if ( aP == null || aP < aT.min || aP > aT.max || aO < aQ.min || aO > aQ.max ) { continue; } H.beginPath(); aP = aT.p2c(aP); aO = aQ.p2c(aO) + aK; if (aJ == "circle") { H.arc(aP, aO, aM, 0, aS ? Math.PI : Math.PI * 2, false); } else { aJ(H, aP, aO, aM, aS); } H.closePath(); if (aU) { H.fillStyle = aU; H.fill(); } H.stroke(); } } H.save(); H.translate(q.left, q.top); var aG = aE.points.lineWidth, aC = aE.shadowSize, aB = aE.points.radius, aF = aE.points.symbol; if (aG > 0 && aC > 0) { var aD = aC / 2; H.lineWidth = aD; H.strokeStyle = "rgba(0,0,0,0.1)"; aH(aE.datapoints, aB, null, aD + aD / 2, true, aE.xaxis, aE.yaxis, aF); H.strokeStyle = "rgba(0,0,0,0.2)"; aH(aE.datapoints, aB, null, aD / 2, true, aE.xaxis, aE.yaxis, aF); } H.lineWidth = aG; H.strokeStyle = aE.color; aH( aE.datapoints, aB, ae(aE.points, aE.color), 0, false, aE.xaxis, aE.yaxis, aF ); H.restore(); } function E(aN, aM, aV, aI, aQ, aF, aD, aL, aK, aU, aR, aC) { var aE, aT, aJ, aP, aG, aB, aO, aH, aS; if (aR) { aH = aB = aO = true; aG = false; aE = aV; aT = aN; aP = aM + aI; aJ = aM + aQ; if (aT < aE) { aS = aT; aT = aE; aE = aS; aG = true; aB = false; } } else { aG = aB = aO = true; aH = false; aE = aN + aI; aT = aN + aQ; aJ = aV; aP = aM; if (aP < aJ) { aS = aP; aP = aJ; aJ = aS; aH = true; aO = false; } } if (aT < aL.min || aE > aL.max || aP < aK.min || aJ > aK.max) { return; } if (aE < aL.min) { aE = aL.min; aG = false; } if (aT > aL.max) { aT = aL.max; aB = false; } if (aJ < aK.min) { aJ = aK.min; aH = false; } if (aP > aK.max) { aP = aK.max; aO = false; } aE = aL.p2c(aE); aJ = aK.p2c(aJ); aT = aL.p2c(aT); aP = aK.p2c(aP); if (aD) { aU.beginPath(); aU.moveTo(aE, aJ); aU.lineTo(aE, aP); aU.lineTo(aT, aP); aU.lineTo(aT, aJ); aU.fillStyle = aD(aJ, aP); aU.fill(); } if (aC > 0 && (aG || aB || aO || aH)) { aU.beginPath(); aU.moveTo(aE, aJ + aF); if (aG) { aU.lineTo(aE, aP + aF); } else { aU.moveTo(aE, aP + aF); } if (aO) { aU.lineTo(aT, aP + aF); } else { aU.moveTo(aT, aP + aF); } if (aB) { aU.lineTo(aT, aJ + aF); } else { aU.moveTo(aT, aJ + aF); } if (aH) { aU.lineTo(aE, aJ + aF); } else { aU.moveTo(aE, aJ + aF); } aU.stroke(); } } function e(aD) { function aC(aJ, aI, aL, aG, aK, aN, aM) { var aO = aJ.points, aF = aJ.pointsize; for (var aH = 0; aH < aO.length; aH += aF) { if (aO[aH] == null) { continue; } E( aO[aH], aO[aH + 1], aO[aH + 2], aI, aL, aG, aK, aN, aM, H, aD.bars.horizontal, aD.bars.lineWidth ); } } H.save(); H.translate(q.left, q.top); H.lineWidth = aD.bars.lineWidth; H.strokeStyle = aD.color; var aB = aD.bars.align == "left" ? 0 : -aD.bars.barWidth / 2; var aE = aD.bars.fill ? function (aF, aG) { return ae(aD.bars, aD.color, aF, aG); } : null; aC(aD.datapoints, aB, aB + aD.bars.barWidth, 0, aE, aD.xaxis, aD.yaxis); H.restore(); } function ae(aD, aB, aC, aF) { var aE = aD.fill; if (!aE) { return null; } if (aD.fillColor) { return am(aD.fillColor, aC, aF, aB); } var aG = c.color.parse(aB); aG.a = typeof aE == "number" ? aE : 0.4; aG.normalize(); return aG.toString(); } function o() { av.find(".legend").remove(); if (!O.legend.show) { return; } var aH = [], aF = false, aN = O.legend.labelFormatter, aM, aJ; for (var aE = 0; aE < Q.length; ++aE) { aM = Q[aE]; aJ = aM.label; if (!aJ) { continue; } if (aE % O.legend.noColumns == 0) { if (aF) { aH.push("</tr>"); } aH.push("<tr>"); aF = true; } if (aN) { aJ = aN(aJ, aM); } aH.push( '<td class="legendColorBox"><div style="border:1px solid ' + O.legend.labelBoxBorderColor + ';padding:1px"><div style="width:4px;height:0;border:5px solid ' + aM.color + ';overflow:hidden"></div></div></td><td class="legendLabel">' + aJ + "</td>" ); } if (aF) { aH.push("</tr>"); } if (aH.length == 0) { return; } var aL = '<table style="font-size:smaller;color:' + O.grid.color + '">' + aH.join("") + "</table>"; if (O.legend.container != null) { c(O.legend.container).html(aL); } else { var aI = "", aC = O.legend.position, aD = O.legend.margin; if (aD[0] == null) { aD = [aD, aD]; } if (aC.charAt(0) == "n") { aI += "top:" + (aD[1] + q.top) + "px;"; } else { if (aC.charAt(0) == "s") { aI += "bottom:" + (aD[1] + q.bottom) + "px;"; } } if (aC.charAt(1) == "e") { aI += "right:" + (aD[0] + q.right) + "px;"; } else { if (aC.charAt(1) == "w") { aI += "left:" + (aD[0] + q.left) + "px;"; } } var aK = c( '<div class="legend">' + aL.replace('style="', 'style="position:absolute;' + aI + ";") + "</div>" ).appendTo(av); if (O.legend.backgroundOpacity != 0) { var aG = O.legend.backgroundColor; if (aG == null) { aG = O.grid.backgroundColor; if (aG && typeof aG == "string") { aG = c.color.parse(aG); } else { aG = c.color.extract(aK, "background-color"); } aG.a = 1; aG = aG.toString(); } var aB = aK.children(); c( '<div style="position:absolute;width:' + aB.width() + "px;height:" + aB.height() + "px;" + aI + "background-color:" + aG + ';"> </div>' ) .prependTo(aK) .css("opacity", O.legend.backgroundOpacity); } } } var ab = [], M = null; function K(aI, aG, aD) { var aO = O.grid.mouseActiveRadius, a0 = aO * aO + 1, aY = null, aR = false, aW, aU; for (aW = Q.length - 1; aW >= 0; --aW) { if (!aD(Q[aW])) { continue; } var aP = Q[aW], aH = aP.xaxis, aF = aP.yaxis, aV = aP.datapoints.points, aT = aP.datapoints.pointsize, aQ = aH.c2p(aI), aN = aF.c2p(aG), aC = aO / aH.scale, aB = aO / aF.scale; if (aH.options.inverseTransform) { aC = Number.MAX_VALUE; } if (aF.options.inverseTransform) { aB = Number.MAX_VALUE; } if (aP.lines.show || aP.points.show) { for (aU = 0; aU < aV.length; aU += aT) { var aK = aV[aU], aJ = aV[aU + 1]; if (aK == null) { continue; } if ( aK - aQ > aC || aK - aQ < -aC || aJ - aN > aB || aJ - aN < -aB ) { continue; } var aM = Math.abs(aH.p2c(aK) - aI), aL = Math.abs(aF.p2c(aJ) - aG), aS = aM * aM + aL * aL; if (aS < a0) { a0 = aS; aY = [aW, aU / aT]; } } } if (aP.bars.show && !aY) { var aE = aP.bars.align == "left" ? 0 : -aP.bars.barWidth / 2, aX = aE + aP.bars.barWidth; for (aU = 0; aU < aV.length; aU += aT) { var aK = aV[aU], aJ = aV[aU + 1], aZ = aV[aU + 2]; if (aK == null) { continue; } if ( Q[aW].bars.horizontal ? aQ <= Math.max(aZ, aK) && aQ >= Math.min(aZ, aK) && aN >= aJ + aE && aN <= aJ + aX : aQ >= aK + aE && aQ <= aK + aX && aN >= Math.min(aZ, aJ) && aN <= Math.max(aZ, aJ) ) { aY = [aW, aU / aT]; } } } } if (aY) { aW = aY[0]; aU = aY[1]; aT = Q[aW].datapoints.pointsize; return { datapoint: Q[aW].datapoints.points.slice(aU * aT, (aU + 1) * aT), dataIndex: aU, series: Q[aW], seriesIndex: aW, }; } return null; } function aa(aB) { if (O.grid.hoverable) { u("plothover", aB, function (aC) { return aC.hoverable != false; }); } } function l(aB) { if (O.grid.hoverable) { u("plothover", aB, function (aC) { return false; }); } } function R(aB) { u("plotclick", aB, function (aC) { return aC.clickable != false; }); } function u(aC, aB, aD) { var aE = y.offset(), aH = aB.pageX - aE.left - q.left, aF = aB.pageY - aE.top - q.top, aJ = C({ left: aH, top: aF }); aJ.pageX = aB.pageX; aJ.pageY = aB.pageY; var aK = K(aH, aF, aD); if (aK) { aK.pageX = parseInt( aK.series.xaxis.p2c(aK.datapoint[0]) + aE.left + q.left ); aK.pageY = parseInt( aK.series.yaxis.p2c(aK.datapoint[1]) + aE.top + q.top ); } if (O.grid.autoHighlight) { for (var aG = 0; aG < ab.length; ++aG) { var aI = ab[aG]; if ( aI.auto == aC && !( aK && aI.series == aK.series && aI.point[0] == aK.datapoint[0] && aI.point[1] == aK.datapoint[1] ) ) { T(aI.series, aI.point); } } if (aK) { x(aK.series, aK.datapoint, aC); } } av.trigger(aC, [aJ, aK]); } function f() { if (!M) { M = setTimeout(s, 30); } } function s() { M = null; A.save(); A.clearRect(0, 0, G, I); A.translate(q.left, q.top); var aC, aB; for (aC = 0; aC < ab.length; ++aC) { aB = ab[aC]; if (aB.series.bars.show) { v(aB.series, aB.point); } else { ay(aB.series, aB.point); } } A.restore(); an(ak.drawOverlay, [A]); } function x(aD, aB, aF) { if (typeof aD == "number") { aD = Q[aD]; } if (typeof aB == "number") { var aE = aD.datapoints.pointsize; aB = aD.datapoints.points.slice(aE * aB, aE * (aB + 1)); } var aC = al(aD, aB); if (aC == -1) { ab.push({ series: aD, point: aB, auto: aF }); f(); } else { if (!aF) { ab[aC].auto = false; } } } function T(aD, aB) { if (aD == null && aB == null) { ab = []; f(); } if (typeof aD == "number") { aD = Q[aD]; } if (typeof aB == "number") { aB = aD.data[aB]; } var aC = al(aD, aB); if (aC != -1) { ab.splice(aC, 1); f(); } } function al(aD, aE) { for (var aB = 0; aB < ab.length; ++aB) { var aC = ab[aB]; if (aC.series == aD && aC.point[0] == aE[0] && aC.point[1] == aE[1]) { return aB; } } return -1; } function ay(aE, aD) { var aC = aD[0], aI = aD[1], aH = aE.xaxis, aG = aE.yaxis; if (aC < aH.min || aC > aH.max || aI < aG.min || aI > aG.max) { return; } var aF = aE.points.radius + aE.points.lineWidth / 2; A.lineWidth = aF; A.strokeStyle = c.color.parse(aE.color).scale("a", 0.5).toString(); var aB = 1.5 * aF, aC = aH.p2c(aC), aI = aG.p2c(aI); A.beginPath(); if (aE.points.symbol == "circle") { A.arc(aC, aI, aB, 0, 2 * Math.PI, false); } else { aE.points.symbol(A, aC, aI, aB, false); } A.closePath(); A.stroke(); } function v(aE, aB) { A.lineWidth = aE.bars.lineWidth; A.strokeStyle = c.color.parse(aE.color).scale("a", 0.5).toString(); var aD = c.color.parse(aE.color).scale("a", 0.5).toString(); var aC = aE.bars.align == "left" ? 0 : -aE.bars.barWidth / 2; E( aB[0], aB[1], aB[2] || 0, aC, aC + aE.bars.barWidth, 0, function () { return aD; }, aE.xaxis, aE.yaxis, A, aE.bars.horizontal, aE.bars.lineWidth ); } function am(aJ, aB, aH, aC) { if (typeof aJ == "string") { return aJ; } else { var aI = H.createLinearGradient(0, aH, 0, aB); for (var aE = 0, aD = aJ.colors.length; aE < aD; ++aE) { var aF = aJ.colors[aE]; if (typeof aF != "string") { var aG = c.color.parse(aC); if (aF.brightness != null) { aG = aG.scale("rgb", aF.brightness); } if (aF.opacity != null) { aG.a *= aF.opacity; } aF = aG.toString(); } aI.addColorStop(aE / (aD - 1), aF); } return aI; } } } c.plot = function (g, e, d) { var f = new b(c(g), e, d, c.plot.plugins); return f; }; c.plot.version = "0.7"; c.plot.plugins = []; c.plot.formatDate = function (l, f, h) { var o = function (d) { d = "" + d; return d.length == 1 ? "0" + d : d; }; var e = []; var p = false, j = false; var n = l.getUTCHours(); var k = n < 12; if (h == null) { h = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ]; } if (f.search(/%p|%P/) != -1) { if (n > 12) { n = n - 12; } else { if (n == 0) { n = 12; } } } for (var g = 0; g < f.length; ++g) { var m = f.charAt(g); if (p) { switch (m) { case "h": m = "" + n; break; case "H": m = o(n); break; case "M": m = o(l.getUTCMinutes()); break; case "S": m = o(l.getUTCSeconds()); break; case "d": m = "" + l.getUTCDate(); break; case "m": m = "" + (l.getUTCMonth() + 1); break; case "y": m = "" + l.getUTCFullYear(); break; case "b": m = "" + h[l.getUTCMonth()]; break; case "p": m = k ? "am" : "pm"; break; case "P": m = k ? "AM" : "PM"; break; case "0": m = ""; j = true; break; } if (m && j) { m = o(m); j = false; } e.push(m); if (!j) { p = false; } } else { if (m == "%") { p = true; } else { e.push(m); } } } return e.join(""); }; function a(e, d) { return d * Math.floor(e / d); } })(jQuery);