(function(g){g.jqplot.Cursor=function(m){this.style="crosshair";this.previousCursor="auto";this.show=true;this.showTooltip=true;this.followMouse=false;this.tooltipLocation="se";this.tooltipOffset=6;this.showTooltipGridPosition=false;this.showTooltipUnitPosition=true;this.tooltipFormatString="%.4P";this.useAxesFormatters=true;this.tooltipAxisGroups=[];this.zoom=false;this.clickReset=false;this.dblClickReset=true;this._zoom={start:[],end:[],started:false,zooming:false,axes:{start:{},end:{}}};this._tooltipElem;this.zoomCanvas;g.extend(true,this,m)};g.jqplot.Cursor.init=function(p,o,n){var m=n||{};this.plugins.cursor=new g.jqplot.Cursor(m.cursor);if(this.plugins.cursor.show){g.jqplot.eventListenerHooks.push(["jqplotMouseEnter",b]);g.jqplot.eventListenerHooks.push(["jqplotMouseLeave",e]);g.jqplot.eventListenerHooks.push(["jqplotMouseMove",f]);if(this.plugins.cursor.zoom){g.jqplot.eventListenerHooks.push(["jqplotMouseDown",a]);g.jqplot.eventListenerHooks.push(["jqplotMouseUp",l]);if(this.plugins.cursor.clickReset){g.jqplot.eventListenerHooks.push(["jqplotClick",h])}if(this.plugins.cursor.dblClickReset){g.jqplot.eventListenerHooks.push(["jqplotDblClick",c])}}}};g.jqplot.Cursor.postDraw=function(){var t=this.plugins.cursor;t._tooltipElem=g('<div class="jqplot-cursor-tooltip" style="position:absolute;display:none"></div>');this.target.append(t._tooltipElem);if(t.zoom){t.zoomCanvas=new g.jqplot.GenericCanvas();this.eventCanvas._elem.before(t.zoomCanvas.createElement(this._gridPadding,"jqplot-zoom-canvas",this._plotDimensions));var r=t.zoomCanvas.setContext()}if(t.showTooltipUnitPosition){if(t.tooltipAxisGroups.length===0){var o=this.series;var p;var m=[];for(var n=0;n<o.length;n++){p=o[n];var q=p.xaxis+","+p.yaxis;if(g.inArray(q,m)==-1){m.push(q)}}for(var n=0;n<m.length;n++){t.tooltipAxisGroups.push(m[n].split(","))}}}};g.jqplot.Cursor.resetZoom=function(p){var o=p.axes;var n=p.plugins.cursor._zoom.axes;for(var m in o){o[m]._ticks=[];o[m].min=n[m].min;o[m].max=n[m].max;o[m].numberTicks=n[m].numberTicks;o[m].tickInterval=n[m].tickInterval;o[m]._tickInterval=n[m]._tickInterval}p.redraw()};g.jqplot.preInitHooks.push(g.jqplot.Cursor.init);g.jqplot.postDrawHooks.push(g.jqplot.Cursor.postDraw);function d(q,n,u){var w=u.plugins.cursor;var y="";var m=false;if(w.showTooltipGridPosition){y=q.x+", "+q.y;m=true}if(w.showTooltipUnitPosition){var r;for(var o=0;o<w.tooltipAxisGroups.length;o++){r=w.tooltipAxisGroups[o];if(m){y+="<br />"}if(w.useAxesFormatters){var x=u.axes[r[0]]._ticks[0].formatter;var p=u.axes[r[1]]._ticks[0].formatter;var v=u.axes[r[0]]._ticks[0].formatString;var t=u.axes[r[1]]._ticks[0].formatString;y+=x(v,n[r[0]])+", "+p(t,n[r[1]])}else{y+=g.jqplot.sprintf(w.tooltipFormatString,n[r[0]])+", "+g.jqplot.sprintf(w.tooltipFormatString,n[r[1]])}m=true}}w._tooltipElem.html(y)}function k(n,p){var r=p.plugins.cursor;var o=r._tooltipElem;switch(r.tooltipLocation){case"nw":var m=n.x+p._gridPadding.left-o.outerWidth(true)-r.tooltipOffset;var q=n.y+p._gridPadding.top-r.tooltipOffset-o.outerHeight(true);break;case"n":var m=n.x+p._gridPadding.left-o.outerWidth(true)/2;var q=n.y+p._gridPadding.top-r.tooltipOffset-o.outerHeight(true);break;case"ne":var m=n.x+p._gridPadding.left+r.tooltipOffset;var q=n.y+p._gridPadding.top-r.tooltipOffset-o.outerHeight(true);break;case"e":var m=n.x+p._gridPadding.left+r.tooltipOffset;var q=n.y+p._gridPadding.top-o.outerHeight(true)/2;break;case"se":var m=n.x+p._gridPadding.left+r.tooltipOffset;var q=n.y+p._gridPadding.top+r.tooltipOffset;break;case"s":var m=n.x+p._gridPadding.left-o.outerWidth(true)/2;var q=n.y+p._gridPadding.top+r.tooltipOffset;break;case"sw":var m=n.x+p._gridPadding.left-o.outerWidth(true)-r.tooltipOffset;var q=n.y+p._gridPadding.top+r.tooltipOffset;break;case"w":var m=n.x+p._gridPadding.left-o.outerWidth(true)-r.tooltipOffset;var q=n.y+p._gridPadding.top-o.outerHeight(true)/2;break;default:var m=n.x+p._gridPadding.left+r.tooltipOffset;var q=n.y+p._gridPadding.top+r.tooltipOffset;break}r._tooltipElem.css("left",m);r._tooltipElem.css("top",q)}function j(q){var o=q._gridPadding;var r=q.plugins.cursor;var p=r._tooltipElem;switch(r.tooltipLocation){case"nw":var n=o.left+r.tooltipOffset;var m=o.top+r.tooltipOffset;p.css("left",n);p.css("top",m);break;case"n":var n=(o.left+(q._plotDimensions.width-o.right))/2-p.outerWidth(true)/2;var m=o.top+r.tooltipOffset;p.css("left",n);p.css("top",m);break;case"ne":var n=o.right+r.tooltipOffset;var m=o.top+r.tooltipOffset;p.css({right:n,top:m});break;case"e":var n=o.right+r.tooltipOffset;var m=(o.top+(q._plotDimensions.height-o.bottom))/2-p.outerHeight(true)/2;p.css({right:n,top:m});break;case"se":var n=o.right+r.tooltipOffset;var m=o.bottom+r.tooltipOffset;p.css({right:n,bottom:m});break;case"s":var n=(o.left+(q._plotDimensions.width-o.right))/2-p.outerWidth(true)/2;var m=o.bottom+r.tooltipOffset;p.css({left:n,bottom:m});break;case"sw":var n=o.left+r.tooltipOffset;var m=o.bottom+r.tooltipOffset;p.css({left:n,bottom:m});break;case"w":var n=o.left+r.tooltipOffset;var m=(o.top+(q._plotDimensions.height-o.bottom))/2-p.outerHeight(true)/2;p.css({left:n,top:m});break;default:var n=o.right-r.tooltipOffset;var m=o.bottom+r.tooltipOffset;p.css({right:n,bottom:m});break}}function h(n,m,q,p,o){var r=o.plugins.cursor;if(r.clickReset){g.jqplot.Cursor.resetZoom(o)}return true}function c(n,m,q,p,o){var r=o.plugins.cursor;if(r.dblClickReset){g.jqplot.Cursor.resetZoom(o)}return}function e(o,n,r,q,p){var s=p.plugins.cursor;if(s.show){g(o.target).css("cursor",s.previousCursor);if(s.showTooltip){s._tooltipElem.hide()}if(s.zoom){s._zoom.started=false;s._zoom.zooming=false;var m=s.zoomCanvas._ctx;m.clearRect(0,0,m.canvas.width,m.canvas.height)}}}function b(n,m,q,p,o){var r=o.plugins.cursor;if(r.show){r.previousCursor=n.target.style.cursor;n.target.style.cursor=r.style;if(r.showTooltip){d(m,q,o);if(r.followMouse){k(m,o)}else{j(o)}r._tooltipElem.show()}}}function f(n,m,q,p,o){var r=o.plugins.cursor;if(r.show){if(r.showTooltip){d(m,q,o);if(r.followMouse){k(m,o)}}if(r.zoom&&r._zoom.started){r._zoom.zooming=true;r._zoom.end=[m.x,m.y];i.call(r)}}}function a(n,m,s,r,q){var t=q.plugins.cursor;var p=q.axes;if(t.zoom){t._zoom.start=[m.x,m.y];t._zoom.started=true;for(var o in s){t._zoom.axes.start[o]=s[o];if(t._zoom.axes[o]==undefined){t._zoom.axes[o]={};t._zoom.axes[o].numberTicks=p[o].numberTicks;t._zoom.axes[o].tickInterval=p[o].tickInterval;t._zoom.axes[o]._tickInterval=p[o]._tickInterval;t._zoom.axes[o].min=p[o].min;t._zoom.axes[o].max=p[o].max}}}}function l(x,s,p,y,t){var v=t.plugins.cursor;if(v.zoom&&v._zoom.zooming){var u=t.axes;var n=v._zoom.axes;var o=n.start;var q=n.end;var r,w;var z=v.zoomCanvas._ctx;z.clearRect(0,0,z.canvas.width,z.canvas.height);if(!(Math.abs(s.x-v._zoom.start[0])<8||Math.abs(s.y-v._zoom.start[1])<8)){for(var m in p){dp=p[m];if(dp!=null){if(dp>o[m]){u[m].min=o[m];u[m].max=dp}else{span=o[m]-dp;u[m].max=o[m];u[m].min=dp}u[m].tickInterval=null;u[m]._tickInterval=null;u[m]._ticks=[]}}t.redraw()}}v._zoom.started=false;v._zoom.zooming=false}function i(){var s=this._zoom.start;var p=this._zoom.end;var o=this.zoomCanvas._ctx;var n,q,r,m;if(p[0]>s[0]){n=s[0];m=p[0]-s[0]}else{n=p[0];m=s[0]-p[0]}if(p[1]>s[1]){q=s[1];r=p[1]-s[1]}else{q=p[1];r=s[1]-p[1]}o.fillStyle="rgba(0,0,0,0.2)";o.strokeStyle="#999999";o.lineWidth=1;o.clearRect(0,0,o.canvas.width,o.canvas.height);o.fillRect(0,0,o.canvas.width,o.canvas.height);o.clearRect(n,q,m,r);o.strokeRect(n,q,m,r)}})(jQuery);