if(window.PlotJax.Gesture==null){registerNS("PlotJax.Zoom");registerNS("PlotJax.GestureMenu");registerNS("PlotJax.Gesture");PlotJax.GestureMenu=function(a,b,c){this.z34=a;this.z32=c;this.z11=document.createElement("div");this.z11.setAttribute("id",b+"_menu");this.z11.style.position="absolute";this.z11.style.left="0px";this.z11.style.top="0px";this.z11.style.zIndex=-1;this.z11.style.visibility="hidden";a.appendChild(this.z11);this.z11.innerHTML="<table border=0 cellspacing=0 cellpadding=0>"+"<tr><td><button id='"+b+"_zoombtn' style='width: 100%; background: #D0D0D0; font-size: x-small;' onmouseover='this.style.background=\"#F0F0F0\"' onmouseout='this.style.background=\"#D0D0D0\"' onclick='this.menu.onZoom()'><b>Zoom</b></button></td></tr>\n"+"<tr><td><button id='"+b+"_undobtn' style='width: 100%; background: #D0D0D0; font-size: x-small;' onmouseover='this.style.background=\"#F0F0F0\"' onmouseout='this.style.background=\"#D0D0D0\"' onclick='this.menu.onUndo()'><b>Undo</b></button></td></tr>\n"+"<tr><td><button id='"+b+"_redobtn' style='width: 100%; background: #D0D0D0; font-size: x-small;' onmouseover='this.style.background=\"#F0F0F0\"' onmouseout='this.style.background=\"#D0D0D0\"' onclick='this.menu.onRedo()'><b>Redo</b></button></td></tr>\n"+"<tr><td><button id='"+b+"_clearbtn' style='width: 100%; background: #D0D0D0; font-size: x-small;' onmouseover='this.style.background=\"#F0F0F0\"' onmouseout='this.style.background=\"#D0D0D0\"' onclick='this.menu.onClear()'><b>Clear Zooms</b></button></td></tr>\n"+"<tr><td><button id='"+b+"_disablebtn' style='width: 100%; background: #D0D0D0; font-size: x-small;' onmouseover='this.style.background=\"#F0F0F0\"' onmouseout='this.style.background=\"#D0D0D0\"' onclick='this.menu.onDisable()'><b>Disable<br/>Gestures</b></button></td></tr>"+"<tr><td><button id='"+b+"_helpbtn' style='width: 100%; background: #D0D0D0; font-size: x-small;' onmouseover='this.style.background=\"#F0F0F0\"' onmouseout='this.style.background=\"#D0D0D0\"' onclick='this.menu.onHelp(event)'><b>Help</b></button></td></tr></table>";this.z11.menu=this;this.z5=document.getElementById(b+"_zoombtn");this.z5.disabled=true;this.z5.menu=this;this.z27=document.getElementById(b+"_undobtn");this.z27.disabled=true;this.z27.menu=this;this.z56=document.getElementById(b+"_redobtn");this.z56.disabled=true;this.z56.menu=this;this.z2=document.getElementById(b+"_clearbtn");this.z2.disabled=false;this.z2.menu=this;this.z62=document.getElementById(b+"_disablebtn");this.z62.disabled=false;this.z62.menu=this;this.z28=document.getElementById(b+"_helpbtn");this.z28.disabled=false;this.z28.menu=this;this.z48=false};PlotJax.GestureMenu.prototype={open:function(x,y){this.z27.disabled=(!this.z32.hasUndos());this.z56.disabled=(!this.z32.hasRedos());this.z5.disabled=(!this.z32.hasZooms());this.z11.style.left=x;this.z11.style.top=y;this.z11.style.zIndex=100;this.z11.style.visibility="visible";this.z48=true},close:function(){this.z11.style.zIndex=-1;this.z11.style.visibility="hidden";this.z48=false},toggle:function(x,y){if(this.z48){this.close()}else{this.open(x,y)}return false},onZoom:function(){this.close();this.z34.onZoom();return false},onRedo:function(){this.close();this.z34.onRedo();return false},onUndo:function(){this.close();this.z34.onUndo();return false},onClear:function(){this.close();this.z34.onClear();return false},onDisable:function(){this.close();this.z34.onClear();this.z34.disableGestures();return false},onHelp:function(a){if(a==null){a=window.event}var x=(a.clientX!=null)?a.clientX:a.pageX;var y=(a.clientY!=null)?a.clientY:a.pageY;this.close();this.z34.openHelp(x,y);return false}};PlotJax.Zoom=function(a,b,c,d,e,f,g){this.z36=a;this.z53=d;this.z3=c;this.z67=b;this.z43=e;this.z4=c/d;this.z9=b[0]-(d*Math.sin(a));this.z21=b[0]+(d*Math.sin(a));this.z52=b[1]-(d*Math.cos(a));this.z23=b[1]+(d*Math.cos(a));this.z12=d*d;this.z25=[b[0]+f,b[1]+g];this.z13=Math.cos(a);this.z15=Math.sin(a)};PlotJax.Zoom.COLOR="rgba(200,200,200,0.5)";PlotJax.Zoom.CLEAR="rgba(254,254,254,0.0)";PlotJax.Zoom.prototype={shade:function(a){if(window.G_vmlCanvasManager!=null){this.z43.oval(this.z67[0]-this.z53,this.z67[1]-this.z3,this.z53*2,this.z3*2,this.z36,"#C8C8C8",0.5);return}this.z43.save();this.z43.translate(this.z67[0],this.z67[1]);this.z43.rotate(this.z36);this.z43.scale(1,this.z3/this.z53);this.z43.beginPath();this.z43.fillStyle=a;this.z43.strokeStyle="black";this.z43.lineWidth=2;this.z43.arc(0,0,this.z53,0,2*Math.PI,false);this.z43.closePath();this.z43.fill();this.z43.stroke();this.z43.restore()},redraw:function(){this.shade(PlotJax.Zoom.COLOR)},contains:function(x,y){var a=x-this.z25[0];var b=y-this.z25[1];var c=(a==0)?((b<0)?-Math.PI/2:Math.PI/2):Math.atan(b/a);var d=(this.z53*Math.cos(c)*this.z13)-(this.z3*Math.sin(c)*this.z15);var e=(this.z3*Math.sin(c)*this.z13)+(this.z53*Math.cos(c)*this.z15);var D=(a*a)+(b*b);var P=(d*d)+(e*e);return(D<P)},intersects:function(a,b,r){if(r>4){r*=0.8}var c=a-this.z25[0];var d=b-this.z25[1];var e=r*r;var f=(c*c)+(d*d);if(f<=e){return true}var g=this.z12+e;if(g<f){return false}var h=(c==0)?((d<0)?-Math.PI/2:Math.PI/2):Math.atan(d/c);f=Math.sqrt(f);return((r>=Math.abs(Math.sin(h-this.z36)*f))&&(this.z53>=Math.abs(Math.cos(h-this.z36)*f)))},isFlick:function(){return((this.z4<0.20)||(this.z3<5))},getCenterPoint:function(){return this.z25},getBBox:function(){return[this.z9,this.z52,this.z21,this.z23]}};PlotJax.Gesture=function(x,y,w,h,a,b,c,d){this.z35=x;this.z19=y;this.z22=w;this.z31=h;this.z34=b;this.z43=a;this.z41=[];this.z26=[];this.z61=[];this.z20=[];this.z37=0;this.z54=0;this.z6=0;this.z39=0;this.z59=0;this.z44=0;this.z63=0;this.z68=0;this.z18=0;this.z7=0;this.z46=0;this.z57=0;this.z24=0;this.z64=0;this.z10=0;this.z17=0;this.z60=false;this.z42=null;this.z47=null;this.z50=null;this.z8=null;this.z58=null;this.z55=null;this.z49=null;this.z51=null;this.z29=null;this.z14=null;this.z45=null;this.z38=null;this.z40=0;this.z65=new PlotJax.GestureMenu(b,d,this);if(c!=null){this.z42=document.getElementById(c);this.z42.innerHTML="<p>\n"+"<b>For chart "+d+"\n"+"<b>Mouse X: </b><span id='"+c+"_mousex' style='font-weight: bold;'></span><br/>\n"+"<b>Mouse Y: </b><span id='"+c+"_mousey' style='font-weight: bold;'></span><br/>\n"+"<b>Click count: </b><span id='"+c+"_clicks' style='font-weight: bold;'></span><br/>\n"+"<b>Mouse Button: </b><span id='"+c+"_mousebtn' style='font-weight: bold;'></span><br/>\n"+"<b>Min X: </b><span id='"+c+"_minx' style='font-weight: bold;'></span><b>; Max X: </b><span id='"+c+"_maxx' style='font-weight: bold;'></span><br/>\n"+"<b>Min Y: </b><span id='"+c+"_miny' style='font-weight: bold;'></span><b>; Max Y: </b><span id='"+c+"_maxy' style='font-weight: bold;'></span><br/>\n"+"<b>Up: </b><span id='"+c+"_up' style='font-weight: bold;'></span> "+"<b>Down: </b><span id='"+c+"_down' style='font-weight: bold;'></span> "+"<b>Left: </b><span id='"+c+"_left' style='font-weight: bold;'></span> "+"<b>Right: </b><span id='"+c+"_right' style='font-weight: bold;'></span><br/</p>";this.z47=document.getElementById(c+"_mousex");this.z50=document.getElementById(c+"_mousey");this.z1=document.getElementById(c+"_clicks");this.z8=document.getElementById(c+"_mousebtn");this.z58=document.getElementById(c+"_minx");this.z55=document.getElementById(c+"_maxx");this.z49=document.getElementById(c+"_miny");this.z51=document.getElementById(c+"_maxy");this.z29=document.getElementById(c+"_up");this.z14=document.getElementById(c+"_down");this.z45=document.getElementById(c+"_left");this.z38=document.getElementById(c+"_right")}else{this.z42=null}};PlotJax.Gesture.prototype={endDraw:function(){if(!this.z60){return}this.z60=false;this.z10=null;this.z17=null;this.z40++;if(this.z42!=null){this.z8.innerHTML="UP";this.z1.innerHTML=""+this.z40}if((this.z59==0)&&(this.z44==0)&&(this.z6==0)&&(this.z39==0)){return}this.z66=true;var a=Math.abs(this.z59-this.z44);var b=Math.abs(this.z6-this.z39);var c=((this.z59/(this.z59+this.z44)<0.01)||(this.z59/(this.z59+this.z44)>0.9))||((this.z6/(this.z6+this.z39)<0.01)||(this.z6/(this.z6+this.z39)>0.9));var d=this.makeZoom();var i=0;if(c||d.isFlick()){var e=false;var f=d.getCenterPoint();for(i=this.z26.length-1;i>=0;i--){if((this.z26[i].contains(f[0],f[1]))&&(this.flickZoom(i)>0)){e=true}}if(e||(this.flick(d)>0)){this.z34.redraw()}}else{this.z26.push(d)}this.z43.clearRect(0,0,this.z22,this.z31);for(i=0;i<this.z26.length;i++){this.z26[i].redraw()}},makeZoom:function(){var a=[(this.z63+this.z68)>>1,(this.z18+this.z7)>>1];var b=0;var c=0;var d=[];var e=[];var i,xdist,ydist,majortheta;for(i=0;i<this.z16.length;i+=2){xdist=a[0]-this.z16[i];ydist=a[1]-this.z16[i+1];e.push(Math.sqrt((xdist*xdist)+(ydist*ydist)));d.push((Math.abs(xdist)<2)?Math.PI/2:Math.atan(ydist/xdist));if(c<e[e.length-1]){c=e[e.length-1];majortheta=d[d.length-1];b=d.length-1}}var f=0;for(i=0;i<d.length;i++){if(i!=b){f=Math.max(f,Math.abs(Math.sin(d[i]-majortheta)*e[i]))}}f=Math.round(f);c=Math.round(c);return new PlotJax.Zoom(majortheta,a,f,c,this.z43,this.z35,this.z19)},hasZooms:function(){return(this.z26.length>0)},clearZooms:function(){this.z26=[];this.z43.clearRect(0,0,this.z22,this.z31)},reset:function(){this.z10=null;this.z17=null},clear:function(){this.z26=[];this.z41=[];this.z20=[];this.z61=[];this.reset();this.z43.clearRect(0,0,this.z22,this.z31)},startDraw:function(){this.z60=true;if(this.z42!=null){this.z8.innerHTML="DOWN"}this.z37=0;this.z54=0;this.z6=0;this.z39=0;this.z59=0;this.z44=0;this.z68=Number.MAX_VALUE;this.z63=Number.MIN_VALUE;this.z7=Number.MAX_VALUE;this.z18=Number.MIN_VALUE;this.z16=[]},updateMouseXY:function(a){if(!this.z60){this.startDraw()}var b=this.z34.getCanvasCoords();var c,newy;if(a.clientX!=null){c=a.clientX;newy=a.clientY}else{c=a.pageX;c=a.pageY}c-=(b[0]+this.z35);newy-=(b[1]+this.z19);this.z16.push(c,newy);if(this.z16.length>400){this.z16.splice(0,2)}if(this.z10!=null){if(window.G_vmlCanvasManager!=null){if(this.z16.length==4){this.z43.addPolyLine("pljxGesture",this.z16)}this.z43.updatePolyLine("pljxGesture",this.z16)}else{this.z43.lineWidth=2;this.z43.beginPath();this.z43.moveTo(this.z10,this.z17);this.z43.lineTo(c,newy);this.z43.closePath();this.z43.stroke()}}if(this.z10<c){this.z6+=Math.abs(this.z10-c)}else if(this.z10>c){this.z39+=Math.abs(this.z10-c)}if(this.z17<newy){this.z44+=Math.abs(this.z17-newy)}else if(this.z17>newy){this.z59+=Math.abs(this.z17-newy)}this.z68=Math.min(c,this.z68);this.z63=Math.max(c,this.z63);this.z7=Math.min(newy,this.z7);this.z18=Math.max(newy,this.z18);this.z10=c;this.z17=newy;if(this.z42!=null){this.z29.innerHTML=this.z59;this.z14.innerHTML=this.z44;this.z45.innerHTML=this.z35;this.z38.innerHTML=this.z33;this.z58.innerHTML=this.z68;this.z55.innerHTML=this.z63;this.z49.innerHTML=this.z7;this.z51.innerHTML=this.z18}},observe:function(a){this.z41.push(a)},redo:function(){if(this.z20.length==0){return 0}var a=this.z20.pop();var b=[];for(var i=0;i<a.length;i++){a[i].redo()}this.z61.push(a);return a.length},undo:function(){if(this.z61.length==0){return 0}var a=this.z61.pop();for(var i=0;i<a.length;i++){a[i].undo()}this.z20.push(a);return a.length},zoom:function(){if(this.z26.length==0){return 0}var a=[];var b=[];var i,j,keepcount=0;for(i=0;i<this.z41.length;i++){var c=this.z41[i].observeZoom(this.z26);a.push(this.z41[i]);b.push(c.slice(0));keepcount+=c.length}if(keepcount==0){this.z26=[];return 0}for(i=0;i<b.length;i++){if(b[i].length>0){this.z41[i].keepElements(b[i])}}this.z61.push(a);this.z26=[];return a.length},flickZoom:function(a){var i,j;var b=[];for(i=0;i<this.z41.length;i++){var c=this.z41[i].observeZoom([this.z26[a]]);if(c.length>0){this.z41[i].hideElements(c);b.push(this.z41[i])}}if(b.length>0){this.z61.push(b)}this.z26.splice(a,1);return b.length},flick:function(a){var b=[];for(var i=0;i<this.z41.length;i++){var c=this.z41[i].observeFlick(a);if(c.length>0){this.z41[i].hideElements(c);b.push(this.z41[i])}}if(b.length>0){this.z61.push(b)}return b.length},setBBox:function(a,b,c,d){this.z35=a;this.z19=b;this.z33=c;this.z30=d;this.z22=c-a+1;this.z31=d-b+1},hasUndos:function(){return this.z61.length},hasRedos:function(){return this.z20.length},closeMenu:function(){this.z65.close()},mouseClick:function(a){if(this.z66){this.z66=false;return}if(a==null){a=window.event}var x=(a.clientX!=null)?a.clientX:a.pageX;var y=(a.clientY!=null)?a.clientY:a.pageY;var b=this.z34.getCanvasCoords();var c=x-b[0];var d=y-b[1];if(this.z33-c<100){c=this.z33-100}if(this.z30-d<100){d=this.z30-100}this.z65.toggle(c,d)}}}