function diagnose(a){alert(a)}if(window.PlotJax==null){registerNS("PlotJax");registerNS("PlotJax.Menu");registerNS("PlotJax.BaseType");registerNS("PlotJax.TimeType");registerNS("PlotJax.TimestampType");registerNS("PlotJax.DateType");registerNS("PlotJax.NumberType");registerNS("PlotJax.SymbolType");registerNS("PlotJax.IntervalType");PlotJax=function(b,w,h,c,d,e){this.origwidth=w;this.origheight=h;this.width=w;this.height=h;this.charts=[];this.xType=null;this.yType=null;this.sizeType=null;this.intensityType=null;this.myid=b;this.chartdiv=document.getElementById(b);this.helper=d;this.gesturesEnabled=false;this.isIE=false;if(this.chartdiv==null){alert("Unknown chart '"+b+"'");return}if((w<100)||(h<100)){alert("Minimum chart dimensions are 100 x 100");return}this.chartcnvs=document.createElement("canvas");this.chartcnvs.setAttribute("width",w);this.chartcnvs.setAttribute("height",h);this.chartcnvs.setAttribute("id",b+"_canvas");this.chartcnvs.style.position="absolute";this.chartcnvs.style.left="0px";this.chartcnvs.style.top="0px";this.chartcnvs.style.zIndex=1;this.chartdiv.appendChild(this.chartcnvs);this.chartdiv.chart=this;if(window.G_vmlCanvasManager!=null){this.isIE=true;this.chartcnvs=G_vmlCanvasManager.initElement(this.chartcnvs)}this.hoverdiv=document.createElement("div");this.hoverdiv.setAttribute("id",b+"_hover");this.hoverdiv.style.position="absolute";this.hoverdiv.style.left=0;this.hoverdiv.style.top=0;this.hoverdiv.style.zIndex=-1;this.hoverdiv.style.visibility="hidden";this.hoverdiv.style.background="#FAFCBA";this.hoverdiv.style.border="thin solid black";this.hoverdiv.style.fontFamily="arial, sans-serif, helvetica";this.hoverdiv.style.color="black";this.hoverdiv.style.fontSize="x-small";this.chartdiv.appendChild(this.hoverdiv);this.zoommap=document.createElement("div");this.zoommap.setAttribute("id",b+"_zoommap");this.zoommap.style.position="absolute";this.zoommap.style.left="0px";this.zoommap.style.top="0px";this.zoommap.style.zIndex=2;this.zoommap.style.cursor="pointer";this.zoommap.chart=this;this.chartdiv.appendChild(this.zoommap);this.zoommap.onmousemove=function(a){this.chart.mouseMove(a)};this.zoommap.onmousedown=function(a){this.chart.mouseDown(a)};this.zoommap.onmouseup=function(a){this.chart.mouseUp(a)};this.zoommap.onclick=function(a){this.chart.mouseClick(a)};this.zoomcnvs=document.createElement("canvas");this.zoomcnvs.setAttribute("width",w);this.zoomcnvs.setAttribute("height",h);this.zoomcnvs.setAttribute("id",b+"_zoomcanvas");this.zoomcnvs.style.position="absolute";this.zoomcnvs.style.left=0;this.zoomcnvs.style.top=0;this.zoommap.appendChild(this.zoomcnvs);if(window.G_vmlCanvasManager!=null){this.zoomcnvs=G_vmlCanvasManager.initElement(this.zoomcnvs)}this.debugdiv=(e!=null)?document.getElementById(e):null;this.chartctx=this.chartcnvs.getContext('2d');if(this.chartctx==null){alert("Sorry, your browser is not supported.\nPlease consider upgrading to any of the following:\n"+"Firefox ver. 2+,\n"+"Opera vers. 9.2+\n"+"Safari vers. 3+ \n"+"Internet Explorer vers. 6.0+");return null}this.zoomctx=this.zoomcnvs.getContext('2d');if(PlotJax.Gesture!=null){this.gesture=new PlotJax.Gesture(0,0,w,h,this.zoomctx,this,e,b)}if(PlotJax.Balloon!=null){var f=((d!=null)&&(d.getBalloonDimensions!=null))?d.getBalloonDimensions():[360,360];this.balloon=new PlotJax.Balloon(b,f[0],f[1])}this.shapes=new PlotJax.Shapes(this,this.chartctx);if((PlotJax.Gestures!=null)||(PlotJax.Balloon!=null)){this.menu=new PlotJax.Menu(this,b)}this.chartdiv.plotjax=this;this.images={};if(c!=null){this.loadData(c)}};PlotJax.SHADOW="rgba(0,0,0,0.1)";PlotJax.SHADOW_OFFSET=10;PlotJax.PLOT_LINE=1;PlotJax.PLOT_POINT=2;PlotJax.PLOT_AREA=4;PlotJax.PLOT_BOX=8;PlotJax.PLOT_PIE=16;PlotJax.PLOT_HBAR=32;PlotJax.PLOT_VBAR=64;PlotJax.PLOT_CANDLE=128;PlotJax.PLOT_GANTT=256;PlotJax.PLOT_QUADTREE=512;PlotJax.PLOT_PARETO=2048;PlotJax.PLOT_BUBBLE=4096;PlotJax.PLOT_GAUGE=8192;PlotJax.PLOT_LINEFIT=16384;PlotJax.PLOT_POLYFIT=32768;PlotJax.PLOT_EXPFIT=65536;PlotJax.PLOT_BULLET=131072;PlotJax.DASH_LEN=6;PlotJax.DOT_LEN=3;PlotJax.NEEDSY={"box":false,"bubble":true,"line":true,"point":true,"scatter":true,"area":true,"vbar":true,"cvbar":true,"hbar":true,"chbar":true,"pie":true,"segpie":true,"candle":true,"pareto":true,"linefit":true,"polyfit":true,"expfit":true};PlotJax.NEED_AXIS={"box":true,"bubble":true,"line":true,"point":true,"scatter":true,"area":true,"vbar":true,"cvbar":true,"hbar":true,"chbar":true,"candle":true,"pareto":true,"linefit":true,"polyfit":true,"expfit":true,"pie":false,"segpie":false,"quadtree":false,"treemap":false,"bullet":false,"gauge":false,"halfgauge":false,"vstripgauge":false,"hstripgauge":false};PlotJax.NEEDS_SYMDOMAIN={"box":false,"bubble":false,"line":false,"point":false,"scatter":false,"area":false,"vbar":true,"cvbar":true,"hbar":true,"chbar":true,"pie":true,"segpie":true,"candle":true,"pareto":true,"linefit":false,"polyfit":false,"expfit":false};PlotJax.PLOTMASK={"box":PlotJax.PLOT_BOX,"bubble":PlotJax.PLOT_BUBBLE,"line":PlotJax.PLOT_LINE,"point":PlotJax.PLOT_POINT,"scatter":PlotJax.PLOT_POINT,"area":PlotJax.PLOT_AREA,"vbar":PlotJax.PLOT_VBAR,"cvbar":PlotJax.PLOT_VBAR,"hbar":PlotJax.PLOT_HBAR,"chbar":PlotJax.PLOT_HBAR,"pie":PlotJax.PLOT_PIE,"segpie":PlotJax.PLOT_PIE,"candle":PlotJax.PLOT_CANDLE,"pareto":PlotJax.PLOT_PARETO,"linefit":PlotJax.PLOT_LINEFIT,"polyfit":PlotJax.PLOT_POLYFIT,"expfit":PlotJax.PLOT_EXPFIT,"quadtree":PlotJax.PLOT_QUADTREE,"treemap":PlotJax.PLOT_QUADTREE,"bullet":PlotJax.PLOT_BULLET,"gauge":PlotJax.PLOT_GAUGE,"halfgauge":PlotJax.PLOT_GAUGE,"vstripgauge":PlotJax.PLOT_GAUGE,"hstripgauge":PlotJax.PLOT_GAUGE};PlotJax.COMPATIBLE={"line":{"box":true,"expfit":true,"linefit":true,"polyfit":true,"point":true,"scatter":true,"line":true,"area":true,"vbar":true,"candle":true},"point":{"box":true,"expfit":true,"linefit":true,"polyfit":true,"point":true,"scatter":true,"line":true,"area":true,"vbar":true,"candle":true},"scatter":{"box":true,"expfit":true,"linefit":true,"polyfit":true,"point":true,"scatter":true,"line":true,"area":true,"vbar":true,"candle":true},"area":{"box":true,"expfit":true,"linefit":true,"polyfit":true,"point":true,"scatter":true,"line":true,"area":true,"vbar":true,"candle":true},"vbar":{"box":true,"expfit":true,"linefit":true,"polyfit":true,"point":true,"scatter":true,"line":true,"area":true,"vbar":true,"candle":true},"cvbar":{"cvbar":true},"hbar":{"hbar":true},"chbar":{"chbar":true},"candle":{"box":true,"expfit":true,"linefit":true,"polyfit":true,"point":true,"scatter":true,"line":true,"area":true,"vbar":true,"candle":true},"linefit":{"box":true,"expfit":true,"linefit":true,"polyfit":true,"point":true,"scatter":true,"line":true,"area":true,"vbar":true,"candle":true},"polyfit":{"box":true,"expfit":true,"linefit":true,"polyfit":true,"point":true,"scatter":true,"line":true,"area":true,"vbar":true,"candle":true},"expfit":{"box":true,"expfit":true,"linefit":true,"polyfit":true,"point":true,"scatter":true,"line":true,"area":true,"vbar":true,"candle":true},"bullet":{"bullet":true},"bubble":{},"pareto":{},"pie":{},"segpie":{},"quadtree":{},"gauge":{},"halfgauge":{},"vstripgauge":{},"hstripgauge":{}};PlotJax.COLORS={"aliceblue":"#f0f8ff","antiquewhite":"#faebd7","aqua":"#00ffff","aquamarine":"#7fffd4","azure":"#f0ffff","beige":"#f5f5dc","bisque":"#ffe4c4","black":"#000000","blanchedalmond":"#ffebcd","blue":"#0000ff","blueviolet":"#8a2be2","brown":"#a52a2a","burlywood":"#deb887","cadetblue":"#5f9ea0","chartreuse":"#7fff00","chocolate":"#d2691e","coral":"#ff7f50","cornflowerblue":"#6495ed","cornsilk":"#fff8dc","crimson":"#dc143c","cyan":"#00ffff","darkblue":"#00008b","darkcyan":"#008b8b","darkgoldenrod":"#b8860b","darkgray":"#a9a9a9","darkgrey":"#a9a9a9","darkgreen":"#006400","darkkhaki":"#bdb76b","darkmagenta":"#8b008b","darkolivegreen":"#556b2f","darkorange":"#ff8c00","darkorchid":"#9932cc","darkred":"#8b0000","darksalmon":"#e9967a","darkseagreen":"#8fbc8f","darkslateblue":"#483d8b","darkslategray":"#2f4f4f","darkslategrey":"#2f4f4f","darkturquoise":"#00ced1","darkviolet":"#9400d3","deeppink":"#ff1493","deepskyblue":"#00bfff","dimgray":"#696969","dimgrey":"#696969","dodgerblue":"#1e90ff","firebrick":"#b22222","floralwhite":"#fffaf0","forestgreen":"#228b22","fuchsia":"#ff00ff","gainsboro":"#dcdcdc","ghostwhite":"#f8f8ff","gold":"#ffd700","goldenrod":"#daa520","gray":"#808080","grey":"#808080","green":"#008000","greenyellow":"#adff2f","honeydew":"#f0fff0","hotpink":"#ff69b4","indianred":"#cd5c5c","indigo":"#4b0082","ivory":"#fffff0","khaki":"#f0e68c","lavender":"#e6e6fa","lavenderblush":"#fff0f5","lawngreen":"#7cfc00","lemonchiffon":"#fffacd","lightblue":"#add8e6","lightcoral":"#f08080","lightcyan":"#e0ffff","lightgoldenrodyellow":"#fafad2","lightgray":"#d3d3d3","lightgrey":"#d3d3d3","lightgreen":"#90ee90","lightpink":"#ffb6c1","lightsalmon":"#ffa07a","lightseagreen":"#20b2aa","lightskyblue":"#87cefa","lightslategray":"#778899","lightslategrey":"#778899","lightsteelblue":"#b0c4de","lightyellow":"#ffffe0","lime":"#00ff00","limegreen":"#32cd32","linen":"#faf0e6","magenta":"#ff00ff","maroon":"#800000","mediumaquamarine":"#66cdaa","mediumblue":"#0000cd","mediumorchid":"#ba55d3","mediumpurple":"#9370d8","mediumseagreen":"#3cb371","mediumslateblue":"#7b68ee","mediumspringgreen":"#00fa9a","mediumturquoise":"#48d1cc","mediumvioletred":"#c71585","midnightblue":"#191970","mintcream":"#f5fffa","mistyrose":"#ffe4e1","moccasin":"#ffe4b5","navajowhite":"#ffdead","navy":"#000080","oldlace":"#fdf5e6","olive":"#808000","olivedrab":"#6b8e23","orange":"#ffa500","orangered":"#ff4500","orchid":"#da70d6","palegoldenrod":"#eee8aa","palegreen":"#98fb98","paleturquoise":"#afeeee","palevioletred":"#d87093","papayawhip":"#ffefd5","peachpuff":"#ffdab9","peru":"#cd853f","pink":"#ffc0cb","plum":"#dda0dd","powderblue":"#b0e0e6","purple":"#800080","red":"#ff0000","rosybrown":"#bc8f8f","royalblue":"#4169e1","saddlebrown":"#8b4513","salmon":"#fa8072","sandybrown":"#f4a460","seagreen":"#2e8b57","seashell":"#fff5ee","sienna":"#a0522d","silver":"#c0c0c0","skyblue":"#87ceeb","slateblue":"#6a5acd","slategray":"#708090","slategrey":"#708090","snow":"#fffafa","springgreen":"#00ff7f","steelblue":"#4682b4","tan":"#d2b48c","teal":"#008080","thistle":"#d8bfd8","tomato":"#ff6347","turquoise":"#40e0d0","violet":"#ee82ee","wheat":"#f5deb3","white":"#ffffff","whitesmoke":"#f5f5f5","yellow":"#ffff00","yellowgreen":"#9acd32"};PlotJax.dfltFonts={'TickFont':{"Description":{"Family":"Courier New","Size":11,"Color":"black","Opacity":1.0},"Height":14,"DataURL":"data:image/gif;base64,R0lGODlhTwMOAIAAAAAAAAAAACH5BAEAAAEALAAAAABPAw4AAAL/jI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn1GoUALhgJ9tId5EFK74JspVmxqrL64M67H4j3nCDPJ5t09nktd4c4NclCNeGV2eXZhgXOHeXmDe49RcZ9iVZCamIGMjZybk4Nxb66RhKetpA2ggqxuDp4CnrAdjpyiUCe1s29lqR1wGoq4UxLEphjOublIzTaucWfYxoydsofY1NrdoLjc1my5hdaF1HPj1tzmqdPX7cfu7tLj//rv0O+tzNrk4f346PV75ts2RRe0TvmwZdsJop5OAwocSJEaEN69dNHxdh/+EOgTsIMl9HVuaEoSplDxK8SHw+Huw4KaSpPpYKxayZyRbNnHsE8nt4L1qrbcsAMszIzqUjef+uYSSKcVdQpqKAVe01K2DSrSmtppyY9J/YZTv7cNtHVCrAr7EQHlWbaB8tZHDX2h0p9JXIohmaDprq9CnXwOCMnkU3GFhJqgn/elMkd3C9yWP1nSvIJ+pPPKPSdk5zmLNkxVfjQdUqDSTcsYa9ArVrOfJr0GtPrapt0qwY1+sKz1SGVTJshKGFVwQRsefsuhZqiWOriventE0BK6eo0G9xlIl7M55cTzsYjrf6ETS8W7ZK1G/h1Ua/SDzi+Y83WwzfEvV6tVlb+/88L1t/Gr32zXX2VIfeXZrlBaB6yeG1HYHjxRchWCgct9co6vWVoXBYxcZeUQsCJZ9nXFXTnWumZTeViZGxBtp56mBGH2UtloMjWyWeKBGM9hH2HXaN+fOQgD6Vpt+QRPa4IYLUJfmekBDUNFNJNE5poXHBVDicCcfBxpeExUCHnHIGEnedW6jEd5Mm/cVlSJp04MTdmptYKVNnGtKUHiO1hGQlSmfemVmgepoiKJoDxTVdoJSMZJtBqo1j54QaBvfcTlXmdwiek3K6n2iJbdIkNwOSOaFDby7EpVEYdohqmGCt+hwJzj3xJXMuGJPrDb2e0cNtwA6rl1m0qnCsFgYvxeLheHTNtRqxLQgrAbXT3motD9lKy2233n7rpQyngktuueaei2666tYw569UFAAAOw==","Positions":[0,10,18,27,36,44,54,64,72,81,91,99,109,118,126,136,144,153,162,172,181,190,199,207,217,225,235,244,252,262,270,279,288,298,306,315,325,333,343,352,360,369,378,387,396,405,415,424,433,442,451,459,468,477,486,495,504,513,522,531,540,549,556,567,576,585,594,603,612,621,628,638,648,657,664,674,684,692,700,710,719,729,739,747,755,764,772,782,791,801,810,819,827,837,-1,-1],"Widths":[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,56],"CharSet":"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-=[]\\;',./_+{}|:\"<>?`~ \t","ImageURL":"../imgs/courier_new_11_black_100.gif"},'LabelFont':{"Description":{"Family":"Arial","Size":14,"Color":"black","Opacity":1.0,"Weight":"bold"},"Height":16,"DataURL":"data:image/gif;base64,R0lGODlhmgMQAIAAAAAAAAAAACH5BAEAAAEALAAAAACaAxAAAAL/jI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKm+ApfPJATQ30op0+qgytAgtN/GFdpVX8LWsOKfP2AP7+24b2OtuO2x33/fbMHrOZ/anp7Y2CEgn6BcHmKdn1oj4GBkAF1jJSLiAhyiXWGdXSLj3iXkoSql4OMcq6FrZ18cJCzamIYqbJRexa4E22Ps463saTBxlvJkMiTE77PQMVPym6kkdipo5WuyYyow5Ga44Gipuino+jR5Hmp1p+c0lPx8OX69daqqMe12ObcnvE75SnBalabVtzJRgBRda+2OvGUSIunxNwFMoV4Mq/8+wJOvnTZdBZw3BvfqXBx43Zl4ugeM4suEumLFUtlNFyWBOj/d2Tsr30iVASfdcfjOkSVxEUCYxMpwI0KE/fT2TUk0VsWQ3k1Uj/bLG9aexeU2gzvSI1ty6Xl+VdaPns5Y+jnL5lOW5cN/ZkLTcHBTJz61fpcv+SnDKVOhdWVa3RnMAEmSnh+ooo3VHcG/Qo+yiVq5mCFhA0W29wW3aUmxVoDQJO+ZsdOvRvlhj99RaB+/NsDrjmlYsW7Drt3YXO306LKvuxE9rebYtt+tpP5O9VE95sOwWhNhyS50deqJw2kt5UUAcz/Hicd03RvsVS5Po2ncv9Z47lLdmdPq9kv+ifxV+/5EG3nBhcWXTeuSkpBmD/9zHlH6ZrQWYO+5t0yAkNNnUn3qZwZaPZGrF1powxp2FXHPEFWgOUSY+eNkqB6YD43At5dUKig/RptpJFbHIC1t3hFBYOuKlR0xyMspYI3u+zfikNrUZWB5q6Pk3ZZYdblkla/btNRIsV74Y3HRSdqTYhCudAyN0CJbYYiMbFrclfWvaKdOSYLUI52Z9BghkbxAGtyKXMa5y3CKBDUYWQjiGlt1jCUEw5mhHzlbkYYcNlNgF/C041UYukhmlihJS2NWbZTp0Z2qGFlqqgSipx6eCcoqZoZy2cSrrnlpGGM98vab1JJRN0WKPhbT/xvedfx8JCZt3Gp6IVHzAqkrojGYC5RtGzFkLR7fXRZodjxe+9KOHh54mW6bmnecrSxmsRRIyWQo7lLDWCgirtlLd56py5RBIcJXtBqKnkPVB6iBfRhILYICNxumwxMBRCfGgzt5L4KhKsvplsONRlfA+jem6b5xl3Kmyqw9LB3FIZo5aF6uOcnert9oFefK1kqZs2gfuytzg0CbTPEJkXlZmWbxG9oueyx1KzS6ND4ZHYohfcVvySorO+lt1ijLdtJsvL4snu88RW9pOZQN5dlFNgici0letiRuGZI0pNtggMk13P0rbwog8OD9dl7ngvpcrvCMjO5ZQxwQ+WMWQyVV+LhUl/mn3n/whJnCtWNrYLLahouyWwZ9CBaWeI/7WjlE3ro7o0sq6Vzvak+nOa19LJdr4OPGSVi/DR5+EN7TV5Be41pE72R6hzjtt8ymHs/kXk3rZ6rPR0s9U8e8eXGn2+N4bUfXkOPz8sxDaiwE/DOfHT38LHV1EA/jzKr+dqCiQX78aSMkK75NfptoXBAQGcIEMbGAA85bA8gEGVIbZhAoyQhEHGrCAItkB++bnQQVqcIQkLGEEuZVAW+xvbxccIO48doQCAAA7","Positions":[0,10,21,31,42,54,60,71,82,90,94,104,110,124,135,146,157,168,176,187,193,205,216,229,239,247,257,267,279,291,303,314,325,338,350,357,366,378,388,403,415,428,439,452,464,476,485,498,509,524,535,547,557,566,577,587,597,607,617,627,637,647,656,663,678,689,698,710,720,733,739,746,753,761,770,778,785,790,796,801,807,814,820,830,840,847,853,858,864,874,884,894,905,912,-1,-1],"Widths":[8,9,8,9,9,5,9,9,4,4,8,4,12,9,9,9,9,6,8,5,9,9,11,8,7,7,9,10,10,10,9,9,11,10,4,8,10,8,13,10,11,9,11,10,9,8,10,9,13,9,10,8,8,8,8,8,8,8,8,8,8,8,4,14,8,8,10,8,10,5,5,5,5,8,5,5,4,4,3,4,4,4,8,8,5,5,3,4,7,8,8,9,5,8,8,64],"CharSet":"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-=[]\\;',./_+{}|:\"<>?`~ \t","ImageURL":"../imgs/arial_bold_14_black_100.gif"},'TitleFont':{"Description":{"Family":"Arial","Size":18,"Color":"black","Opacity":1.0,"Weight":"bold"},"Height":21,"DataURL":"data:image/gif;base64,R0lGODlhdwQVAIAAAAAAAAAAACH5BAEAAAEALAAAAAB3BBUAAAL/jI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn1Kr1is1qt9yu9wtOAMLk8gWABqHHlnVasnbExe85w15+b91sBN8th3fwp+dHWHjYRydoIIjHaNj3OKmoABip6FiIeUfY8LeQ2HmJ6RmgWQk5Rxk5iPiaCgvqukk3WkmLu2hJWrrIx1vbyAiZK2x7GkusGaibGxia6XxGCjwMdwyRnWG3HBFXzGHdKhJOPf05rr29zGZuvrc9pT58GD1rTJ8obVram6yM3ChazwTeU8aPXzB6APH5q7Vv4b997jahulfPYDdY/wYBPtTjsGO9duH+NcTV7yQqkhaPRUx3LZ+0mMkeFLMnpqZCgh3G+UQnEluIaszWjYGHISVNNfIqIA3WpqnRZmY8cmFI8Zc+UR9lbcXJM6zVgRnLBjWGNu3YkSFfylyZ0q1Kaxd3CdyIl1w7sXNBVpQIde0ql3WjmQ1cllVNkRNv/iV41C9Ndiatstx5WMPPSd+k8oo6TVjLzpGBnvJjtCJK07cCOiZcGrBW1xwbr1YtltUl2w0P3l7bSnfClrv9BjSbF7nxjoMZeiycGS/m3nwRkx3JnGM6SXVEU5Y+nK/i3MSzHz/82jpw4IrTdF+9NLi85JT2Cn7vGxnGqXq1j/93lZF7CJkCjmGLzRfZfo59pl8zDqnyCmOeNYhNaLqMVh04352lHGsV9gJWPhLBRVx9IIZoX3N2sSUXVzLNBlFcm6kzS3Jh2Wjjc+X155yG56GHoXjabUcVhdC9s1x62xnnFW4ZDnnfb0JOZ1OMP0bnX4LrhQTZhjxxBk9JMbJnEpeGBNYelAeCYmKN7hnYHVUQarmQhKa5uN59dlIDGkwMAvhkbCP6kxppmZwJpICyRFkaZtD1diJ+gQZoJSfU1Zdoo5xEqmlBX+7Y4YqcKbeLfXnOSWaIea6Y6YNKPZVVdXeZuSqlOtXmZGaMuiolizTSOmlQOeoY25zoODclerr/nlWZorPBeB2hPGa3mGUXPqaWpQgCWiec3PW65K/XziQrNx72Bd+fSz31rG8WSiWXpaHeKOqQj+aIb6Uq7TdvlOR9O6ujalLH71h7XQQMS/yaGnBX6hW8q7hfifjWf4ipumyXtyrk454Vs9oqVkp5LOuwHXfcbWtL2oUqkQcxmOZOEK7MMpTOJvbbZVUWuWVlPJfrlHdUMnUunvHFNyHNhaZcJca8/utyxPcud+PAzbXc73ha28v10CcVPCyxpSaI9Z/6jtgmb02z2uKrTDYpLs+AlA2VgP5uTHJfF4f8nc8Mr4qyfAAau3bUn45rONgAR6siyIBaOZEtER4dp8qd//TEJmsMIxutkCUkbXTZSd/yIcRyyNulwF73iy7I+S6u69WbU3137VurzmyZXRvm3a3VOp76w76qaTGoiRZ+3dMa7c56xrbejHOk1oX5nvQE/5w34NBrfI3OiQsrKfC1/jvy3X9HPyhqZ07+e6yoiYld0KrBevbXw3td1AijLysmd5j7jSx2TaBxrOtGvVaXrOMpcFqzg93tGlY13AHterYTmgUbNa5sbE97Lprat6Zjve+5jng2o13YkOSk2xnvUQqKW/ygZjqiwOZUMuzd74THQf7NEE1wE134MkZAHA5ucSUi0JsWtCb5eQp55PugC0f4uXOB713cEofE9mfFXP9BClNcfKB5OlVAfQWxgrAz2KI4db25WcxaP7paflKmO0HJBmiFcd/9YESiELZGeTC84wL9iD4yFnFiTXMbleJVMoz54o32m1bn7ue/GybSGWNcnhbXdKXD9YdtdAocosojR2RUboBvI40QPzZJ/SCleFIslw85VCFYTvAcV/TeR6DlOBTRrmcpXKEJmfeiW+LRTl+pXgA1uMvgMdJXI3RijwwJTT6GS219ZGYCAcnGP8ZRZJpTFaaEabrWhYt0qKsd8NxCq8sMEntcaicyt+lLSHrLXZSM5P7s+EgBYi92l1QcucpxrQbp8xPqM+VQAufJcipzkefc3ut4WEYvknH1jgsdG/6eyaQcJu9sSnrIFLHJtLfQc42WayYxr5Q2e1WTg/X0UMJIuE4RsiU1LUUIJ1s60kXlc2Q+C1RNw7lEhTJDjRY62kwvFxMs+sSgsozlw37IOPYd1EBVHOhBW+kFqz4yCPrU6hO8WpWwrgCrYi1rDVCYFGgoNAVj+h9QC2qTGNiwimbFQdiSgkUadDWvTQBrXf8K2MBehSTcIILxNFNDoMCLrB6Yq1EFCwNFgoavMtgrY5fAOchqdrOcrQJFLmsEktLSiWrd2WSBRU4KUraz//PrWrkKutUioaesra1tb2vY8l1BqhuYEWizqFu5tdUKBQAAOw==","Positions":[0,12,25,37,50,64,72,85,98,107,112,125,132,151,164,177,190,203,212,225,232,246,259,276,290,302,314,328,343,358,373,387,400,416,431,439,450,465,478,495,510,526,540,556,571,586,598,615,630,649,663,678,689,701,713,725,738,749,761,773,785,797,809,816,837,850,861,880,893,909,917,925,933,941,954,963,971,976,986,992,999,1007,1014,1025,1038,1048,1056,1061,1071,1082,1095,1108,1122,1130,-1,-1],"Widths":[10,11,10,11,11,7,11,11,5,5,11,5,17,11,11,11,11,7,10,6,11,11,15,11,12,9,13,13,13,13,12,11,14,13,5,10,13,11,15,13,14,12,14,13,12,11,13,14,17,12,13,10,10,10,10,10,10,10,10,10,10,10,5,18,11,10,17,11,13,7,6,6,6,11,6,6,5,7,4,5,5,5,10,11,7,7,4,7,9,11,11,11,6,11,10,80],"CharSet":"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-=[]\\;',./_+{}|:\"<>?`~ \t","ImageURL":"../imgs/arial_bold_18_black_100.gif"},'SignatureFont':{"Description":{"Family":"Arial","Size":10,"Color":"black","Opacity":1.0},"Height":13,"DataURL":"data:image/gif;base64,R0lGODlhwQINAIAAAAAAAAAAACH5BAEAAAEALAAAAADBAg0AAAL/jI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh0QYoHKMJBlLRDOwfD5105gUgFVgr9Nt9uDVdsHORbRsqErR0ETYuRV/wXH3PP1Ok/f7s/7fBvjnNVfHRsdl1pQHdUcIl8iHeEe2SOnnJgeZGThRiKnlefFV2HBUpWSIqoTE6rDKxNkDy3LKtiiZtGYW2wmIG/p7SEdcDCwIetx5PCa7u6ynW/asxmfpbJ2pLCwLze0LPnZmGw1e3tftS5sOmv4K0fwdGm+uLmnqSNlod8WPuDnMj7RJl/QV7JIPYJ2B3AYyfIjHUBtmw7Ldu1hPXrVB/+724YGD7FAykbneYbs1bWIwbbwsquzV7aFERiW/jdxHrpGqSy9ZgkwpKGjEUiRDunpA7+a5j3ZMtkIHNRAwaka3javJUCqaqVuLogwHzdbVSiu96XQE09JMnjohoV2ZE6NYe3GV0bQrMWLLry5VxhUKmGpFoW/NYnr2zyUuXXXNzexpcx09pDE30HpUM+PezcU0ReJ4MevdqFrvRSEKmitp0UY7e1tztTFQ03mUngRcz27mW3+rze2jG6M90u7iiWPZO3dZecrTYuaL2OzZkg4J+gR5ORqqZp9UVdawDiyn8K6ZLp/2VjXo0rgFdjVNtqr81fMDW4RNNmfjbYYzq9Nv34tg9dmW33CFDRcMWwhOJt1S5cjmWEftMNiOTX0Z1xdQ+yHHoVP6hCZKQBmQl5RwTmmGASN5eZRYi8ikJ2Jq7/3Hol7+5JKQjTH2h+NC462YF5Aq4gOXSAee5h17DY7GxJBBrZjbh80h+CQ/O032XFubBakgQC5OFaRjBuHmj5QMmsIOgLs9pVEI5NGQlQRvegDLnCnYWUSeeu4pQz/wrMDfiRltNwJFfIIgpaB3KtrnoY4+CqkVNN0QJzynkUDIZYyZGGmnnn4KaqiijkqqDAUAADs=","Positions":[0,8,16,23,31,40,44,52,60,66,71,76,81,92,100,108,116,124,130,136,140,149,156,165,172,179,186,194,203,212,221,230,238,248,257,263,269,278,286,297,306,316,325,335,344,353,362,372,381,392,401,410,418,425,434,442,450,458,466,474,482,490,497,502,515,523,530,542,549,558,564,569,574,579,586,592,597,601,607,610,615,621,626,634,642,647,651,656,662,667,675,684,692,697,-1,-1],"Widths":[6,6,5,6,6,3,6,6,3,3,4,3,9,6,6,6,6,3,4,3,6,5,7,5,5,5,7,7,7,7,7,6,8,7,3,5,7,6,9,7,8,7,8,7,7,7,7,7,9,7,7,6,6,6,6,6,6,6,6,6,6,6,3,10,6,6,9,5,7,4,3,3,3,6,3,3,3,3,2,3,3,3,6,6,3,3,3,3,4,6,6,6,3,6,6,48],"CharSet":"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-=[]\\;',./_+{}|:\"<>?`~ \t","ImageURL":"../imgs/arial_10_black_100.gif"}};PlotJax.prototype={getCanvasCoords:function(){var a=0;var b=0;var c=this.chartcnvs;if(c.offsetParent){do{a+=c.offsetLeft;b+=c.offsetTop;c=c.offsetParent}while(c!=null)}return[a,b]},mouseClick:function(a){this.hoverdiv.style.zIndex=-1;this.hoverdiv.style.visibility="hidden";if(this.hovertime){clearTimeout(this.hovertime);this.hovertime=null}if(this.gesturesEnabled){return this.gesture.mouseClick(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;var b=this.getCanvasCoords();var c=x-b[0];var d=y-b[1];var e=(this.menu!=null)?this.menu.isOpen():false;if(this.menu!=null){this.menu.close()}if(PlotJax.Balloon!=null){this.balloon.closeBalloon();if((this.helper!=null)&&(this.helper.getBalloonContent!=null)){for(var i=0;(i<this.charts.length)&&(!this.charts[i].onclick(c,d,x,y));i++){}if((!e)&&(i==this.charts.length)){this.menu.toggle(c,d)}}}else if(this.menu!=null){this.menu.toggle(c,d)}return false},keyDown:function(a){this.hoverdiv.style.zIndex=-1;this.hoverdiv.style.visibility="hidden";if(this.hovertime){clearTimeout(this.hovertime);this.hovertime=null}this.menu.close();this.gesture.closeMenu();if(this.gesturesEnabled){if(a==null){a=window.event}if(a.ctrlKey&&(!a.shiftKey)&&(!a.altKey)&&(!a.metaKey)){var b=(a.charCode)?a.charCode:((a.which)?a.which:a.keyCode);var c=String.fromCharCode(b).toLowerCase();if(((c=="z")&&(this.gesture.undo()>0))||((c=="y")&&(this.gesture.redo()>0))){this.redraw()}}}},onZoom:function(){if(this.gesture.zoom()>0){this.redraw()}else{this.gesture.clearZooms()}},onUndo:function(){if(this.gesture.undo()>0){this.redraw()}},onRedo:function(){if(this.gesture.redo()>0){this.redraw()}},onClear:function(){this.gesture.clearZooms()},mouseMove:function(a){this.hoverdiv.style.zIndex=-1;this.hoverdiv.style.visibility="hidden";if(this.hovertime){clearTimeout(this.hovertime);this.hovertime=null}if(a==null){a=window.event}var b=(this.isIE&&((a.button&1)==1))||((!this.isIE)&&this.mousedown);if(this.gesturesEnabled&&b){return this.gesture.updateMouseXY(a)}if((this.helper==null)||(this.helper.onhover==null)){return false}this.hoverx=(a.clientX!=null)?a.clientX:a.pageX;this.hovery=(a.clientY!=null)?a.clientY:a.pageY;this.hovertime=setTimeout("document.getElementById('"+this.myid+"').plotjax.hover()",400);return true},hover:function(){var a=this.getCanvasCoords();var b=this.hoverx-a[0];var c=this.hovery-a[1];for(var i=0;(i<this.charts.length);i++){var d=this.charts[i].onhover(b,c);if(d!=null){this.hoverdiv.innerHTML=d;this.hoverdiv.style.left=b+5;this.hoverdiv.style.top=c-13;this.hoverdiv.style.zIndex=100;this.hoverdiv.style.visibility="visible";break}}},mouseDown:function(a){this.hoverdiv.style.zIndex=-1;this.hoverdiv.style.visibility="hidden";this.mousedown=true;if(this.gesturesEnabled&&(a!=null)&&(a.button==0)){return this.gesture.startDraw()}return true},mouseUp:function(a){this.mousedown=false;this.hoverdiv.style.zIndex=-1;this.hoverdiv.style.visibility="hidden";if(this.gesturesEnabled){return this.gesture.endDraw()}return true},enableGestures:function(){if(this.gesture!=null){this.gesturesEnabled=true}},disableGestures:function(){this.gesturesEnabled=false},computeMargins:function(a,b,c){while(true){var d=10;var e=10;var f=10;var g=10;var h=null;if(this.signature!=null){h=this.signatureFont.getBounds(this.signature,0,0,0,0);e+=h[3]+5}if(this.title!=null){if(typeof this.titlePos=="string"){h=this.titleFont.getBounds(this.title,0,0,3,0);if(this.titlePos=="bottom"){e+=h[3]+5}else{g+=h[3]+5}}else{var y=this.titlePos[1];if(y>(this.height>>1)){e=(this.height-y)+5}else{g=y+5}}}if(a==null){this.leftmargin=d;this.botmargin=e;this.rtmargin=f;this.topmargin=g;this.chartw=this.width-d-f;this.charth=this.height-g-e;return}h=this.labelFont.getBounds(this.xType.getLabel(),0,0,3,0);e+=h[3]+5;f+=20;this.xLabelPos=[this.width-f-(h[2]>>1),this.height-e];h=(this.tickFont!=null)?this.tickFont.getBounds(this.xType.getTemplate(),0,0,0,0):[0,0,0,0];var j=h[3];var k=(h[2]+5)*a.length;var l=0;var i=0;for(i=0;i<a.length;i+=2){h=(this.tickFont!=null)?this.tickFont.getBounds(a[i],0,0,0,this.xAngle):[0,0,0,0];j=Math.max(j,h[3]);l+=5+h[2]}k=Math.max(k,l);if((this.xAngle==0)&&(k>this.width)){this.xAngle=135;continue}e+=j+2;j=0;for(i=0;i<b.length;i+=2){h=(this.tickFont!=null)?this.tickFont.getBounds(b[i]+"00",0,0,0,0):[0,0,0,0];j=Math.max(j,h[2])}if(!this.yRotate){h=this.labelFont.getBounds(this.yType.getLabel(),0,0,0,0);j=Math.max(j,(h[2]>>1));d+=j+2;g+=h[3]+6;this.yLabelPos=[d,g-6]}else{h=this.labelFont.getBounds(this.yType.getLabel(),0,0,0,0);this.yLabelPos=[d,g+((this.height-e-g)>>1)+(h[2]>>1)];d+=10+j+2+5+h[3];g+=6}this.leftmargin=d;this.botmargin=e;this.rtmargin=f;this.topmargin=g;this.chartw=this.width-d-f;this.charth=this.height-g-e;if((this.xAngle==0)&&(k>this.chartw)){this.xAngle=135;continue}else{break}}if(this.xCenterLabel){this.xLabelPos[0]=this.leftmargin+(this.chartw>>1)}},computeScales:function(a,b,c,d){if((this.plottypes==PlotJax.PLOT_PIE)||(this.plottypes==PlotJax.PLOT_QUADTREE)){return this}var e=this.yType.getLimits();var f=e[0];if(((this.plottypes&(PlotJax.PLOT_VBAR|PlotJax.PLOT_HBAR))!=0)&&(f>0)&&(!(this.yType.needsOrigin()&&a))){for(var i=0;i<this.props.length;i++){var g=this.props[i];var j=1;while(j<g.length){g[j][0]=f;j+=3}}}if((this.zType!=null)||this.threed){var h=this.charth;var k=this.chartw;var l=this.xType.cardinality();var m=(this.zType!=null)?this.zType.cardinality():1;var n=m/(l*this.data.length);if((this.plottypes&(PlotJax.PLOT_HBAR|PlotJax.PLOT_GANTT))==0){this.plotWidth=Math.floor(k/(n*Math.sin(Math.PI/6)+1));this.plotDepth=Math.floor((k-this.plotWidth)/Math.sin(Math.PI/6));this.plotHeight=Math.floor(h-(this.plotDepth*Math.cos(Math.PI/3)));this.xType.setScale(this.plotWidth);this.yType.setScale(this.plotHeight);this.zType.setScale(this.plotDepth)}else{this.plotHeight=Math.floor(h/(n*Math.cos(Math.PI/6)+1));this.plotDepth=Math.floor((h-this.plotHeight)/Math.cos(Math.PI/6));this.plotWidth=Math.floor(k-(this.plotDepth*Math.sin(Math.PI/6)));this.yType.setScale(this.plotWidth);this.xType.setScale(this.plotHeight);this.zType.setScale(this.plotDepth)}}else{if((this.plottypes&(PlotJax.PLOT_HBAR|PlotJax.PLOT_GANTT))==0){var o=((this.plottypes&PlotJax.PLOT_BUBBLE)!=0)?Math.ceil(Math.sqrt(PlotJax.Bubble.MAX_FACTOR*(this.chartw*this.charth))/2):0;this.xType.setScale(this.chartw,o,b);this.yType.setScale(this.charth,o,c)}else{this.yType.setScale(this.chartw);this.xType.setScale(this.charth)}}if(((this.plottypes&(PlotJax.PLOT_VBAR|PlotJax.PLOT_HBAR))!=0)&&(this.zType==null)&&(!this.computeSpacing(this.plottypes))){return null}this.vertEdge=this.height-this.botmargin;return this},computeSpacing:function(a){var b=this.xType.cardinality();var c=this.bars_per_domain;var d=(b!=0)?b:this.barCount;var e=10;var f=((a&PlotJax.PLOT_HBAR)!=0)?this.charth:this.chartw;var g=Math.floor(f/(b+1))-e;if(g<2){alert('Insufficient width for number of domain values.');return null}var h=Math.floor(g/c);if(h<2){alert('Insufficient width for number of ranges or values.');return null}var j=-(g>>1);for(var i=0;i<this.charts.length;i++){if(this.charts[i].setBarOffsets!=null){j=this.charts[i].setBarOffsets(j,h);if(j==null){return null}}}return this},drawBottomAxis:function(a,b){var i,txt,bbox;var c=0;var d=this.leftmargin;var e=(this.tickFont!=null)?this.tickFont.getHeight():0;var f=0;if(this.tickFont!=null){for(i=0;(i<a.length)&&(f==0);i+=2){d=this.xType.pt2pxl(a[i+1],this.leftmargin);txt=a[i];if((txt.length>25)&&this.isSymbolDomain){txt=txt.substr(0,22)+'...'}bbox=this.tickFont.getBounds(txt,0,0,0,0);if((this.xAngle!=null)&&(this.xAngle!=0)){if(bbox[3]+2>(d-c)){f=1}}else if(bbox[2]>(d-c)){f=1}c=d}}d=this.leftmargin;var g=((this.yType!=null)&&(this.gridDirection!=null)&&((this.gridDirection=='vertical')||(this.gridDirection=='both')));var h=this.height-this.botmargin;var j=this.xLabelPos[1]-h;if((this.yType!=null)&&(this.yType instanceof PlotJax.NumberType)&&(b[1]<=0)&&(b[b.length-1]>=0)){h=this.vertEdge-this.yType.pt2pxl(0,0);if((this.gridDirection==null)&&(this.axisColor!=null)&&(!this.xCenterLabel)){this.xLabelPos[1]=h+j}}this.axisCoords[1]=h;if(this.axisColor!=null){this.drawLine([d,h,d+this.chartw,h],this.axisColor,2,'solid')}this.labelFont.drawBelow(this.xType.getLabel(),this.xLabelPos[0],this.xLabelPos[1],4);var k=((this.gridDirection!=null)||(this.axisColor==null))?this.height-this.botmargin:h;for(i=0;i<a.length;i+=2){d=this.xType.pt2pxl(a[i+1],this.leftmargin);if((this.gridDirection==null)&&(this.axisColor!=null)){this.drawLine([d,k+4,d,k],this.axisColor,1,'solid')}if(this.tickFont==null){continue}txt=a[i];if((txt.length>25)&&this.isSymbolDomain){txt=txt.substr(0,22)+'...'}if(f!=2){bbox=this.tickFont.getBounds(txt,0,0,0,0);if((this.xAngle!=null)&&(this.xAngle!=0)){this.tickFont.drawAlignedTo(txt,d+(e>>1),k+6,0,this.xAngle)}else{this.tickFont.drawBelow(txt,d,k+2,2,0)}if(f==1){f++}}else{f=1}}return this},drawVerticalGrid:function(a,b){var c=this.leftmargin;var d=this.height-this.botmargin;var e=this.topmargin;this.drawLine([c,e,c+this.chartw,e],this.gridColor,1,this.gridPattern);if((this.axisColor==null)||((this.yType!=null)&&(this.yType instanceof PlotJax.NumberType)&&(b[1]<=0)&&(b[b.length-1]>=0))){this.drawLine([c,d,c+this.chartw,d],this.gridColor,1,this.gridPattern)}for(var i=1;i<a.length;i+=2){c=this.xType.pt2pxl(a[i],this.leftmargin);this.drawLine([c,e,c,d],this.gridColor,1,this.gridPattern)}return this},drawBands:function(a){var b=this.leftmargin;var c=b+this.chartw;var d=0;var e=this.vertEdge-this.yType.pt2pxl(this.bands[0],0);var i=0;if(this.bands instanceof Array){for(i=1;i<this.bands.length;i+=2){d=this.vertEdge-this.yType.pt2pxl(this.bands[i+1],0);this.chartctx.fillStyle=this.bands[i];this.chartctx.fillRect(b,e,this.chartw,d-e);e=d}return this}var f=false;this.chartctx.fillStyle=this.bands;for(i=1;i<a.length-2;i+=2){if(f&&((i+2)<a.length)){f=false;e=this.vertEdge-this.yType.pt2pxl(a[i],0);d=this.vertEdge-this.yType.pt2pxl(a[i+2],0);this.chartctx.fillRect(b,e,this.chartw,e-d)}else{f=true}}return this},drawLeftAxis:function(a,b){var c=((this.gridDirection!=null)&&((this.gridDirection=='horizontal')||(this.gridDirection=='both')));var d=((!(this.xType instanceof PlotJax.NumberType))||(a[1]>=0)||(a[a.length-1]<0))?this.leftmargin:this.xType.pt2pxl(0,this.leftmargin);this.axisCoords[0]=d;if(this.axisColor!=null){this.drawLine([d,this.topmargin,d,this.topmargin+this.charth],this.axisColor,2,'solid')}if(this.yRotate){this.labelFont.drawString(this.yType.getLabel(),this.yLabelPos[0],this.yLabelPos[1],3,'left',270)}else{this.labelFont.drawAbove(this.yType.getLabel(),this.yLabelPos[0],this.yLabelPos[1],2,2)}var e=((this.gridDirection!=null)||(this.axisColor==null))?this.leftmargin:d;var f=d-4;var g=(this.tickFont!=null)?this.tickFont.getHeight():0;var h=this.botmargin+g+10;var j=0;for(var i=0;i<b.length;i+=2){j=this.vertEdge-this.yType.pt2pxl(b[i+1],0);if((this.gridDirection==null)&&(this.axisColor!=null)){this.drawLine([d,j,f,j],this.axisColor,1,'solid')}if(this.tickFont==null){continue}this.tickFont.drawLeftOf(b[i],e,j,5);h=j}return this},drawHorizontalGrid:function(a,b){var c=this.leftmargin;var d=c+this.chartw;var e=this.topmargin;this.drawLine([c,e,d,e],this.gridColor,1,this.gridPattern);this.drawLine([d,e,d,e+this.charth],this.gridColor,1,this.gridPattern);if((this.axisColor!=null)||((this.xType instanceof PlotJax.NumberType)&&(a[1]<=0)&&(a[a.length-1]>=0))){this.drawLine([c,e,c,e+this.charth],this.gridColor,1,this.gridPattern)}for(var i=1;i<b.length;i+=2){e=this.vertEdge-this.yType.pt2pxl(b[i],0);this.drawLine([c,e,d,e],this.gridColor,1,this.gridPattern)}return this},drawLine:function(a,b,c,d,e){if(this.isIE){this.chartctx.styledPolyLine(a,b,c,d);return}if(e==null){e=false}if(d==null){d='solid'}this.chartctx.strokeStyle=b;this.chartctx.lineWidth=(c==null)?1:c;var i;if(d=='solid'){this.chartctx.beginPath();this.chartctx.moveTo(a[0],a[1]);for(i=2;i<a.length;i+=2){this.chartctx.lineTo(a[i],a[i+1])}this.chartctx.stroke();return}var f=(d=='dash')?PlotJax.DASH_LEN:PlotJax.DOT_LEN;var g,ty;if(a.length==4){if(a[0]>a[2]){g=a[0];a[0]=a[2];a[2]=g;ty=a[1];a[1]=a[3];a[3]=g}if(a[0]==a[2]){ty=0;while(ty<(a[3]-a[1])){this.chartctx.beginPath();this.chartctx.moveTo(a[0],a[1]+ty);ty+=f;this.chartctx.lineTo(a[0],a[1]+ty);this.chartctx.stroke();ty+=PlotJax.DASH_LEN}return}if(a[1]==a[3]){g=0;while(g<(a[2]-a[0])){this.chartctx.beginPath();this.chartctx.moveTo(a[0]+g,a[1]);g+=Math.min(((a[2]-a[0])-g),f);this.chartctx.lineTo(a[0]+g,a[1]);this.chartctx.stroke();g+=PlotJax.DASH_LEN}return}}for(i=0;i<a.length-2;i+=2){var x=a[i];var y=a[i+1];var h=a[i+3]-y;var j=a[i+2]-x;var k=Math.atan(h/j);var l=Math.sqrt((h*h)+(j*j));var m=0;g=0;ty=0;while(m<l){this.chartctx.beginPath();this.chartctx.moveTo(g+x,ty+y);m+=Math.min((l-m),PlotJax.DASH_LEN);g=Math.round(m*Math.cos(k));ty=Math.round(m*Math.sin(k));this.chartctx.lineTo(g+x,ty+y);this.chartctx.stroke();m+=PlotJax.DASH_LEN;g=Math.round(m*Math.cos(k));ty=Math.round(m*Math.sin(k))}}},drawLogo:function(){var x=this.leftmargin;var y=this.topmargin;var w=this.chartw;var h=this.charth;if(this.logo.width<w){x+=((w-this.logo.width)>>1);w=this.logo.width}if(this.logo.height<h){y+=((h-this.logo.height)>>1);h=this.logo.height}this.chartctx.drawImage(this.logo,x,y,w,h)},drawRightAxis:function(a){var b=this.width-this.rtmargin;if(this.rtaxisColor!=null){this.drawLine([b,this.topmargin,b,this.topmargin+this.charth],this.y2AxisColor,2,'solid')}if(this.yRotate){this.labelFont.drawAlignedTo(this.y2Label,this.y2LabelPos[0],this.y2LabelPos[1],270)}else{this.labelFont.drawString(this.y2Label,this.y2LabelPos[0],this.y2LabelPos[1])}var c=this.horizGrid?b-this.chartw:b+2;var d=(this.tickFont!=null)?this.tickFont.getHeight():0;var e=this.botmargin+d+10;var f=this.horizGrid?this.gridPattern:'solid';var g=0;for(var i=0;i<a.length;i+=2){g=this.yType.pt2pxl(a[i+1],this.topmargin);if(this.rtaxisColor!=null){this.drawLine([b,g,c,g],this.gridColor,1,f)}if(this.tickFont==null){continue}if(e-g>d){this.tickFont.drawRightOf(a[i],b,g,5);e=g}}return this},getColor:function(a,b){if(a==null){return b}var c=this.parseColor(a);return(c==null)?b:(c.length==3)?"rgb("+c.join(',')+")":"rgba("+c.join(',')+")"},getBalloon:function(){return this.balloon},getGesture:function(){return this.gesture},getHelper:function(){return this.helper},getCanvas:function(){return this.chartctx},getXType:function(){return this.xType},getYType:function(){return this.yType},getY2Type:function(){return this.y2Type},getZType:function(){return this.zType},getTickFont:function(){return this.tickFont},getLabelFont:function(){return this.labelFont},getLeftMargin:function(){return this.leftmargin},getRightMargin:function(){return this.rtmargin},getTopMargin:function(){return this.topmargin},getBottomMargin:function(){return this.botmargin},getChartWidth:function(){return this.chartw},getChartHeight:function(){return this.charth},getVertEdge:function(){return this.vertEdge},getAxisCoords:function(){return this.axisCoords},getType:function(a,b){if(a.Type==null){alert("Invalid type specification: no Type");return null}if((b!=null)&&b){return new PlotJax.SymbolType(a)}switch(a.Type.toLowerCase()){case"timestamp":return new PlotJax.TimestampType(a);case"time":return new PlotJax.TimeType(a);case"date":return new PlotJax.DateType(a);case"number":return new PlotJax.NumberType(a);case"symbol":return new PlotJax.SymbolType(a);default:alert("Unknown data type "+a.Type);return null}},isLoaded:function(){this.resource_count--;if(this.resource_count==0){this.continueLoad()}},loadData:function(a){if(typeof a=="string"){if(!JSON){alert("No JSON parser available.\nSee http://yuiblog.com/blog/2007/04/10/json-and-browser-security/");return null}a=JSON.parse(a)}this.labelFont=null;this.tickFont=null;this.titleFont=null;this.signatureFont=null;this.legendFont=null;this.yRotate=0;this.xAngle=0;this.xCenterLabel=false;this.xType=this.yType=this.y2Type=this.zType=null;this.sizeType=this.intensityType=null;this.xLabel=this.yLabel=this.y2Label=null;this.xLabelPos=this.yLabelPos=this.y2LabelPos=null;this.isSymDomain=false;this.logo=null;this.legendPos=null;this.title=null;this.titlePos=null;this.signature=null;this.axisColor=null;this.rtaxisColor=null;this.gridColor=this.gridPattern=this.gridDirection=this.gridOver=null;this.fillColor=this.bgColor=this.bgGradient=this.bands=this.shadow=null;this.plottypes=0;this.colors=null;this.charts=[];this.axisCoords=[];this.leftmargin=this.topmargin=this.botmargin=this.rtmargin=null;this.vertEdge=this.chartw=this.charth=null;this.intensityFactor=null;this.plotHeight=this.plotWidth=this.plotDepth=null;this.brushWidth=null;if(this.gesture!=null){this.gesture.clear()}this.gesturesEnabled=false;if(a.X==null){alert("No X datatype.");return}var i;var b=a.Charts;if(b==null){alert("No charts defined.");return}var c={};this.resource_count=0;if(a.Labels!=null){if(a.Labels.Font!=null){c.labelFont=true;this.resource_count++}this.yRotate=((a.Labels.YRotate!=null)&&a.Labels.YRotate);this.xCenterLabel=((a.Labels.XPosition!=null)&&(a.Labels.XPosition.toLowerCase()=='center'))?true:false}else{c.labelFont=false}if((a.Ticks!=null)&&(typeof a.Ticks=="object")&&(a.Ticks.Font!=null)){c.tickFont=true;this.resource_count++}else{c.tickFont=false}if((a.Legend!=null)&&(a.Legend.Font!=null)){c.legendFont=true;this.resource_count++}else{c.legendFont=false}if((a.Title!=null)&&(a.Title.Font!=null)){c.titleFont=true;this.resource_count++}else{c.titleFont=false}if((a.Signature!=null)&&(a.Signature.Font!=null)){c.signatureFont=true;this.resource_count++}else{c.signatureFont=false}var d;var e={};if((a.Logo!=null)&&(this.images[a.Logo]==null)){d=new Image();d.appCtxt=this;d.onerror=function(){alert("cannot load image")};d.onload=function(){this.appCtxt.isLoaded()};this.logo=this.images[a.Logo]=e[a.Logo]=d;this.resource_count++}for(var f=0;f<a.Charts.length;f++){var g=a.Charts[f].Style;if(g==null){continue}if(!(g instanceof Array)){a.Charts[f].Style=[a.Charts[f].Style];g=a.Charts[f].Style}for(i=0;i<g.length;i++){if((g[i].Icon!=null)&&(this.images[g[i].Icon]==null)){d=new Image();d.appCtxt=this;d.onload=function(){this.appCtxt.isLoaded()};this.images[g[i].Icon]=e[g[i].Icon]=d;this.shapes.addIcon(g[i].Icon,d);this.resource_count++}}}this.contentJson=a;if((this.resource_count==0)&&(this.foundry!=null)){this.continueLoad()}if(this.foundry==null){this.resource_count++;this.foundry=new Shodo.Foundry(this.chartctx,PlotJax.dfltFonts,a.FontPath,this,function(){if(this.appCtxt.foundry==null){this.appCtxt.foundry=this}this.appCtxt.isLoaded()});if(this.foundry==null){alert("Can't create foundry")}}if(c.labelFont){this.labelFont=this.foundry.addFontsFromJSON(a.Labels.Font,function(){this.appCtxt.isLoaded()},this);if(this.labelFont){this.labelFont=this.foundry.getFontByName(this.labelFont[0])}}if(c.tickFont){this.tickFont=this.foundry.addFontsFromJSON(a.Ticks.Font,function(){this.appCtxt.isLoaded()},this);if(this.tickFont){this.tickFont=this.foundry.getFontByName(this.tickFont[0])}}if(c.legendFont){this.legendFont=this.foundry.addFontsFromJSON(a.Legend.Font,function(){this.appCtxt.isLoaded()},this);if(this.legendFont){this.legendFont=this.foundry.getFontByName(this.legendFont[0])}}if(c.titleFont){this.titleFont=this.foundry.addFontsFromJSON(a.Title.Font,function(){this.appCtxt.isLoaded()},this);if(this.titleFont){this.titleFont=this.foundry.getFontByName(this.titleFont[0])}}if(c.signatureFont){this.signatureFont=this.foundry.addFontsFromJSON(a.Signature.Font,function(){this.appCtxt.isLoaded()},this);if(this.signatureFont){this.signatureFont=this.foundry.getFontByName(this.signatureFont[0])}}for(var h in e){e[h].src=h}},continueLoad:function(){var a=this.contentJson;var i=0;if(this.labelFont==null){this.labelFont=this.foundry.getFontByName("LabelFont")}if(this.tickFont==null){this.tickFont=this.foundry.getFontByName("TickFont")}if(a.Ticks!=null){if(typeof a.Ticks=="object"){this.xAngle=a.Ticks.XAngle}else if(a.Ticks.toLowerCase()=="none"){this.tickFont=null}}if(this.xAngle==null){this.xAngle=0}if(this.yRotate==null){this.yRotate=0}if(a.Legend!=null){if(this.legendFont!=null){this.legendFont=this.foundry.getFontByName("TickFont")}this.legendPos=(a.Legend.Position!=null)?a.Legend.Position.toLowerCase():'left'}if(a.Title!=null){if(this.titleFont==null){this.titleFont=this.foundry.getFontByName("TitleFont")}this.title=a.Title.String;var b=this.titleFont.getBounds(this.title,0,0,0,0);if(b[2]>(this.width-20)){var c=this.title.split(" ");b=this.titleFont.getBounds(c[0]+" ",0,0,0,0);var d=b[2];this.title=c[0];for(i=1;i<c.length;i++){b=this.titleFont.getBounds(c[i]+" ",0,0,0,0);if((d+b[2])<(this.width-20)){this.title+=" "+c[i];d+=b[2]}else{d=b[2];this.title+="\n"+c[i]}}}this.titlePos=(a.Title.Position!=null)?((typeof a.Title.Position=="string")?a.Title.Position.toLowerCase():a.Title.Position):"bottom"}if(a.Signature!=null){if(this.signatureFont==null){this.signatureFont=this.foundry.getFontByName("SignatureFont")}this.signature=a.Signature.String;this.signaturePos=a.Signature.Position}this.axisColor=null;this.rtaxisColor=null;if(a.AxisColor==null){this.axisColor="rgb(0,0,0)";this.rtaxisColor="rgb(0,0,0)"}else if(a.AxisColor instanceof Array){this.axisColor=this.getColor(a.AxisColor[0],"rgb(0,0,0)");this.rtaxisColor=this.getColor(a.AxisColor[1],"rgb(0,0,0)")}else if(a.AxisColor!="none"){this.axisColor=this.getColor(a.AxisColor,"rgb(0,0,0)")}if(a.Grid!=null){this.gridColor=this.getColor(a.Grid.Color,"rgba(0,0,0,0.5)");this.gridPattern=(a.Grid.Pattern!=null)?a.Grid.Pattern.toLowerCase():'solid';this.gridDirection=((a.Grid.Direction==null)||(a.Grid.Direction.toLowerCase()=="none"))?null:a.Grid.Direction.toLowerCase();this.gridOver=((a.Grid.Layer!=null)&&(a.Grid.Layer.toLowerCase()=='over'))}else{this.gridColor=null;this.gridPattern=null;this.gridDirection=null;this.gridOver=false}this.fillColor=a.FillColor?this.getColor(a.FillColor,"rgb(255, 255, 255)"):this.getColor("rgb(255, 255, 255)");if(a.Background!=null){this.bgColor=this.getColor(a.Background.Color,"rgb(255, 255, 255)");if(a.Background.Gradient!=null){this.bgGradient=(a.Background.Gradient.toLowerCase()=='vertical')}else{this.bgGradient=null}if(a.Background.Bands!=null){this.bands=(a.Background.Bands instanceof Array)?a.Background.Bands.slice(0):(a.Background.Bands=="")?null:this.getColor(a.Background.Bands,"rgb(255, 255, 255)")}else{this.bands=null;this.bgGradient=null}}else{this.bgColor=this.getColor("rgb(255, 255, 255)");this.bgGradient=null;this.bands=null}this.shadow=(a.Shadow!=null)?a.Shadow:false;if(this.shadow){this.width=this.origwidth-PlotJax.SHADOW_OFFSET;this.height=this.origheight-PlotJax.SHADOW_OFFSET}else{this.width=this.origwidth;this.height=this.origheight}if(this.balloon!=null){if((a.Balloon==null)||(a.Balloon!="center")){this.balloon.offsetBalloon()}else{this.balloon.centerBalloon()}}if(a.Border!=null){if(typeof a.Border=="string"){this.border=(a.Border.toLowerCase()=="none")?null:["black",2]}else{this.border=[a.Border.Color||"black",a.Border.Width||2]}}else{this.border=["black",2]}var e=false;var f=false;var g;for(g=0;g<a.Charts.length;g++){if(PlotJax.PLOTMASK[a.Charts[g].PlotKind]==null){alert("Unrecognized PlotKind "+a.Charts[g].PlotKind);continue}this.plottypes|=PlotJax.PLOTMASK[a.Charts[g].PlotKind];if((PlotJax.NEEDSY[a.Charts[g].PlotKind]!=null)&&PlotJax.NEEDSY[a.Charts[g].PlotKind]){e=true}if((PlotJax.NEEDS_SYMDOMAIN[a.Charts[g].PlotKind]!=null)&&PlotJax.NEEDS_SYMDOMAIN[a.Charts[g].PlotKind]){f=true}}if(a.X.Label==null){a.X.Label='X Axis'}if(a.X.KeepOrigin==null){a.X.KeepOrigin=false}this.xType=this.getType(a.X,f);if(this.xType==null){return}var h=this.xType.getMinLimit();var j=this.xType.getMaxLimit();if(this.xType instanceof PlotJax.SymbolType){this.isSymDomain=true;for(g=0;g<a.Charts.length;g++){for(i=0;i<a.Charts[g].Data.length;i++){this.xType.normalize(a.Charts[g].Data[i][0])}}this.xType.sortDomain()}var k=null;var l=null;var m=null;var n=null;if(e){if(a.Y==null){alert("No Y datatype.");return}if(a.Y.Label==null){a.Y.Label='Y Axis'}if(a.Y.KeepOrigin==null){a.Y.KeepOrigin=false}if(a.Y.Mapping==null){a.Y.Mapping='normal'}this.yType=this.getType(a.Y);if(this.yType==null){return}k=this.yType.getMinLimit();l=this.yType.getMaxLimit();if(a.Y2!=null){this.y2Type=this.getType(a.Y2);if(this.y2Type==null){return}m=this.y2Type.getMinLimit();n=this.y2Type.getMaxLimit()}}var o=[h,j,k,l,m,n];for(g=0;g<a.Charts.length-1;g++){if(PlotJax.COMPATIBLE[a.Charts[g].PlotKind]==null){alert("Unknown PlotKind "+a.Charts[g].PlotKind);return}for(var p=g+1;p<a.Charts.length;p++){if(!PlotJax.COMPATIBLE[a.Charts[g].PlotKind][a.Charts[p].PlotKind]){alert(a.Charts[p].PlotKind+" chart incompatible with "+a.Charts[g].PlotKind+" chart");return}}}this.needs_axis=PlotJax.NEED_AXIS[a.Charts[0].PlotKind];for(g=0;g<a.Charts.length;g++){switch(a.Charts[g].PlotKind){case'bubble':this.charts.push(new PlotJax.BubbleChart(a.Charts[g],this,o,this.shapes));break;case'line':this.charts.push(new PlotJax.LineGraph(a.Charts[g],this,o,this.shapes));break;case'point':case'scatter':this.charts.push(new PlotJax.PointGraph(a.Charts[g],this,o,this.shapes));break;case'area':this.charts.push(new PlotJax.AreaGraph(a.Charts[g],this,o,this.shapes));break;case'vbar':case'cvbar':this.charts.push(new PlotJax.BarChart(a.Charts[g],this,o,this.shapes));break;case'hbar':case'chbar':this.charts.push(new PlotJax.HorizBarChart(a.Charts[g],this,o,this.shapes));break;case'pie':case'segpie':this.charts.push(new PlotJax.PieChart(a.Charts[g],this,o));break;case'box':this.charts.push(new PlotJax.BoxChart(a.Charts[g],this,o));break;case'candle':this.charts.push(new PlotJax.CandleChart(a.Charts[g],this,o));break;case'quadtree':case'treemap':this.charts.push(new PlotJax.Treemap(a.Charts[g],this,o));break;case'pareto':this.charts.push(new PlotJax.ParetoChart(a.Charts[g],this,o));break;case'gantt':this.charts.push(new PlotJax.GanttChart(a.Charts[g],this,o));break;case'linefit':this.charts.push(new PlotJax.LineFit(a.Charts[g],this,o,this.shapes));break;case'polyfit':this.charts.push(new PlotJax.PolyFit(a.Charts[g],this,o,this.shapes));break;case'expfit':this.charts.push(new PlotJax.ExpFit(a.Charts[g],this,o,this.shapes));break;case'bullet':this.charts.push(new PlotJax.BulletChart(a.Charts[g],this,o));break;case'gauge':case'halfgauge':case'vstripgauge':case'hstripgauge':this.charts.push(new PlotJax.Gauge(a.Charts[g],this,o));break}}this.redraw(true);if(this.onchange){this.onchange()}},parseColor:function(a){if(PlotJax.COLORS[a]!=null){a=PlotJax.COLORS[a]}if(a.substr(0,1)=='#'){return(a.length==7)?[parseInt(a.substr(1,2),16),parseInt(a.substr(3,2),16),parseInt(a.substr(5,2),16)]:(a.length==4)?[parseInt(a.substr(1,1),16)*16,parseInt(a.substr(2,1),16)*16,parseInt(a.substr(3,1),16)*16]:(a.length==9)?[parseInt(a.substr(1,2),16),parseInt(a.substr(3,2),16),parseInt(a.substr(5,2),16),parseInt(a.substr(7,2),16)/255]:(a.length==5)?[parseInt(a.substr(1,1),16)*16,parseInt(a.substr(2,1),16)*16,parseInt(a.substr(3,1),16)*16,parseInt(a.substr(4,1),16)/16]:null}if(a.match(/(rgb[a]?)\s*\(([^\)]+)\)/)==null){return null}var b=RegExp.$1;var c=RegExp.$2.split(/\s*,\s*/);if(b=="rgba"){if((c.length!=4)||(parseFloat(c[3])==null)||(c[3]<0)||(c[3]>1.0)){return null}}else if(c.length!=3){return null}for(var i=0;i<3;i++){if((parseInt(c[i],10)==null)||(c[i]<0)||(c[i]>255)){return null}}return c},pt2pxl:function(x,y,z){var a=(this.plottypes&(PlotJax.PLOT_HBAR|PlotJax.PLOT_GANTT));var b=this.xType.pt2pxl(x);var c=this.yType.pt2pxl(y);var d=(z==null)?null:this.zType.pt2pxl(z);return(z==null)?(a==0)?[this.leftmargin+b,this.vertEdge-c]:[this.leftmargin+c,this.vertEdge-b]:(a==0)?[this.leftmargin+b+Math.round(d*0.433),this.vertEdge-c-Math.round(d*0.25)]:[this.leftmargin+c+Math.round(d*0.433),this.vertEdge-b-Math.round(d*0.25)]},positionZooms:function(){this.zoomcnvs.setAttribute("width",this.chartw);this.zoomcnvs.setAttribute("height",this.charth);this.zoommap.style.left=this.leftmargin;this.zoommap.style.top=this.topmargin;this.zoommap.style.width=this.chartw;this.zoommap.style.height=this.charth;if(this.gesture!=null){this.gesture.setBBox(this.leftmargin,this.topmargin,this.leftmargin+this.chartw,this.topmargin+this.charth)}return this},redraw_nodata:function(a){if(a){this.computeMargins()}this.decorate(a);var b=this.titleFont.getBounds("No data\navailable.",0,0,4,0);var c=(this.botmargin+this.topmargin)>>1;var d=(this.leftmargin+this.rtmargin)>>1;c+=((b[3]-b[1])>>1);this.titleFont.drawAbove("No data\navailable.",d,c,0,4);return this.positionZooms()},decorate:function(a){this.chartctx.clearRect(0,0,this.origwidth,this.origwidth);if(this.shadow){this.chartctx.fillStyle=PlotJax.SHADOW;this.chartctx.fillRect(PlotJax.SHADOW_OFFSET,PlotJax.SHADOW_OFFSET,this.origheight-PlotJax.SHADOW_OFFSET-1,this.origheight-PlotJax.SHADOW_OFFSET-1)}this.chartctx.fillStyle=this.fillColor;this.chartctx.fillRect(0,0,this.width,this.height);var i;if(this.bgGradient!=null){var b=[];var c=this.height-this.botmargin;var d=(this.bgGradient)?this.chartctx.createLinearGradient(0,this.topmargin+this.charth,0,this.topmargin):this.chartctx.createLinearGradient(this.leftmargin,this.charth,this.leftmargin+this.chartw,this.charth);if(this.bands instanceof Array){for(i=0;i<this.bands.length;i+=2){b.push(this.bands[i],this.bands[i+1])}}else{b.push(0.5,this.bands)}for(i=0;i<b.length;i+=2){d.addColorStop(b[i],b[i+1])}this.chartctx.fillStyle=d}else{this.chartctx.fillStyle=this.bgColor}this.chartctx.fillRect(this.leftmargin,this.topmargin,this.chartw,this.charth);if(this.border!=null){this.chartctx.strokeStyle=this.border[0];this.chartctx.lineWidth=this.border[1];this.chartctx.beginPath();this.chartctx.rect(1,1,this.width-this.border[1],this.height-this.border[1]);this.chartctx.stroke()}var e=this.height-10;var f;if(this.signature!=null){f=this.signatureFont.getBounds(this.signature,0,0,0,0);this.signatureFont.drawString(this.signature,this.width-5-f[2],this.height-4-f[3]);e-=f[3]}if(this.title!=null){f=this.titleFont.getBounds(this.title,0,0,0,0);if(typeof this.titlePos=="string"){if(this.titlePos=="bottom"){this.titleFont.drawAbove(this.title,(this.width>>1),e,0,3)}else{this.titleFont.drawBelow(this.title,(this.width>>1),10,0,3)}}else{this.titleFont.drawString(this.title,this.titlePos[0],this.titlePos[0],3,'left',0)}}if(this.legend!=null){this.drawLegend()}if(this.logo!=null){this.drawLogo()}return this},redraw_noaxis:function(a){var i,pt_count=0;for(i=0;i<this.charts.length;i++){if(this.charts[i]!=null){pt_count+=this.charts[i].layout(a)}}if(a){this.computeMargins()}this.decorate(a);for(i=0;i<this.charts.length;i++){if(this.charts[i]!=null){this.charts[i].redraw(a)}}return this.positionZooms()},redraw:function(a){if(!this.needs_axis){return this.redraw_noaxis(a)}var b=[Number.MAX_VALUE,Number.MIN_VALUE,Number.MAX_VALUE,Number.MIN_VALUE,Number.MAX_VALUE,Number.MIN_VALUE];var i;var c=0;this.bars_per_domain=0;for(i=0;i<this.charts.length;i++){if(this.charts[i]!=null){c+=this.charts[i].layout(a,b);if(this.charts[i].getBarsPerDomain!=null){this.bars_per_domain+=this.charts[i].getBarsPerDomain()}}}if((c==0)&&((this.xType.getMinLimit()==null)||(this.xType.getMaxLimit()==null)||((this.yType!=null)&&(this.yType.getMinLimit()==null)||(this.yType.getMaxLimit()==null)))){return this.redraw_nodata(a)}var d=b[0];var e=b[1];var f=b[2];var g=b[3];var h=b[4];var j=b[5];if(a){var k=this.xType.getMinLimit();var l=this.xType.getMaxLimit();if(k!=null){d=k}if(l!=null){e=l}var m=(this.yType!=null)?this.yType.getMinLimit():null;var n=(this.yType!=null)?this.yType.getMaxLimit():null;var o=(this.y2Type!=null)?this.y2Type.getMinLimit():null;var p=(this.y2Type!=null)?this.y2Type.getMaxLimit():null;if(m!=null){f=m}if(n!=null){g=n}if(o!=null){h=o}if(p!=null){j=p}}var q=this.xType.setInterval(d,e,a);var r=(this.yType!=null)?this.yType.setInterval(f,g,a):[];var s=(this.zType!=null)?this.zType.setInterval(h,j,a):(this.y2Type!=null)?this.y2Type.setInterval(h,j,a):[];if(a){this.computeMargins(q,r,s)}this.computeScales(a,q,r,s);this.decorate(a);if((this.bands!=null)&&(this.bgGradient==null)){this.drawBands(r)}if((this.gridDirection!=null)&&(!this.gridOver)){if((this.gridDirection=='vertical')||(this.gridDirection=='both')){this.drawVerticalGrid(q,r)}if((this.gridDirection=='horizontal')||(this.gridDirection=='both')){this.drawHorizontalGrid(q,r)}}this.drawBottomAxis(q,r);if(this.yType!=null){this.drawLeftAxis(q,r)}if(this.y2Type!=null){this.drawRightAxis(q,s)}if(this.yType!=null){this.chartctx.save();this.chartctx.beginPath();this.chartctx.rect(this.leftmargin,this.topmargin,this.chartw,this.charth);this.chartctx.clip()}for(i=0;i<this.charts.length;i++){if(this.charts[i]!=null){this.charts[i].redraw(a)}}if(this.yType!=null){this.chartctx.restore()}if((this.gridDirection!=null)&&(this.gridOver)){if((this.gridDirection=='vertical')||(this.gridDirection=='both')){this.drawVerticalGrid(q,r)}if((this.gridDirection=='horizontal')||(this.gridDirection=='both')){this.drawHorizontalGrid(q,r)}}return this.positionZooms()},appendChild:function(a){this.chartdiv.appendChild(a)},useShadow:function(){return((this.shadow!=null)&&this.shadow)},openHelp:function(x,y){if(this.balloon!=null){this.balloon.openBalloon(x,y,"url:../html/pljxhelp.html")}}};PlotJax.Menu=function(a,b){this.plot=a;this.menudiv=document.createElement("div");this.menudiv.setAttribute("id",b+"_menu");this.menudiv.style.position="absolute";this.menudiv.style.left="0";this.menudiv.style.top="0";this.menudiv.style.zIndex=-1;this.menudiv.style.visibility="hidden";a.appendChild(this.menudiv);this.menudiv.innerHTML="<table border=0 cellspacing=0 cellpadding=0>"+"<tr><td><button id='enableBtn' style='width: 100%; background: #D0D0D0; font-size: x-small;' onmouseover='this.style.background=\"#F0F0F0\"' onmouseout='this.style.background=\"#D0D0D0\"' onclick='this.menu.onClick(); return false;'><b>Enable<br/>Gestures</b></td></tr>"+"<tr><td><button id='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); return false;'><b>Help</b></td></tr></table>";this.enableBtn=document.getElementById("enableBtn");this.enableBtn.disabled=(PlotJax.Gestures==null);this.enableBtn.menu=this;this.helpBtn=document.getElementById("helpBtn");this.enableBtn.disabled=(PlotJax.Balloon==null);this.helpBtn.menu=this;this.menudiv.parent=this;this.opened=false};PlotJax.Menu.prototype={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.plot.openHelp(x,y);return false},onClick:function(){this.plot.enableGestures();this.close()},isOpen:function(){return this.opened},toggle:function(x,y){if(this.opened){this.close()}else{this.open(x-10,y-20)}return false},open:function(x,y){this.menudiv.style.left=x;this.menudiv.style.top=y;this.menudiv.style.visibility="visible";this.menudiv.style.zIndex=1000;this.opened=true},close:function(){this.menudiv.style.visibility="hidden";this.menudiv.style.zIndex=-1;this.opened=false}};Date.prototype.pljxSetTimeInSecs=function(a){this.setTime(Math.round(a*1000))};PlotJax.BaseType=function(a){this.minLimit=this.maxLimit=this.minval=this.maxval=this.scale=null;this.keepOrigin=this.log10=false;this.label=a.Label;this.log10=(a.Log10!=null)?a.Log10:false;this.tickFormat=a.TickFormat};PlotJax.BaseType.MONTHS={"JAN":0,"FEB":1,"MAR":2,"APR":3,"MAY":4,"JUN":5,"JUL":6,"AUG":7,"SEP":8,"OCT":9,"NOV":10,"DEC":11};PlotJax.BaseType.MONTH=['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'];PlotJax.BaseType.PRETTY_MONTH=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];PlotJax.BaseType.logsteps=[0,Math.log(2)/Math.log(10),Math.log(3)/Math.log(10),Math.log(4)/Math.log(10),Math.log(5)/Math.log(10),1.0];PlotJax.BaseType.prototype={getLimits:function(){return[this.minval,this.maxval]},getMaxLimit:function(){return this.maxLimit},getMinLimit:function(){return this.minLimit},isLog10:function(){return this.log10},needOrigin:function(){return this.keepOrigin},pt2pxl:function(a,b){return b+Math.round((a-this.scalemin)*this.scale)},setScale:function(a,b,c){if((b!=null)&&(b!=0)){this.updateTicks(a,b,c);this.scalemin=c[1];this.scalemax=c[c.length-1]}else{b=0;this.scalemin=this.minval;this.scalemax=this.maxval}this.scale=a/(this.scalemax-this.scalemin);return this},getLabel:function(){return this.label},zeropad:function(n){return n>9?n:"0"+n},subsecs:function(t,a){if(a==0){return t.getUTCSeconds()}if(a>3){a=3}var n=t.getMilliseconds();if(n.length<3){n=(n.length==1)?"00"+n:"0"+n}return t.getUTCSeconds()+'.'+n.substr(0,a)},strftime:function(a,b){var t=b;var c=(a.match(/\%p/i)!=null);var d=a.split("%");var e;for(var i=1;i<d.length;i++){switch(d[i].substr(0,1)){case'b':e=PlotJax.BaseType.MONTH[t.getUTCMonth()];break;case'B':e=PlotJax.BaseType.PRETTY_MONTH[t.getUTCMonth()];break;case'd':e=this.zeropad(t.getUTCDate());break;case'H':e=this.zeropad(t.getUTCHours());break;case'i':e=(t.getUTCHours()+12)%12;if(e==0){e=12}break;case'I':e=this.zeropad((t.getUTCHours()+12)%12);if(e=="00"){e=12}break;case'm':e=this.zeropad(t.getUTCMonth()+1);break;case'M':e=this.zeropad(t.getUTCMinutes());break;case'p':e=(t.getUTCHours()<12)?'AM':'PM';break;case'P':e=(t.getUTCHours()<12)?'A':'P';break;case'S':e=this.zeropad(t.getUTCSeconds());break;case'T':e=this.zeropad(t.getUTCHours())+":"+this.zeropad(t.getUTCMinutes())+":"+this.zeropad(t.getUTCSeconds());break;case'y':e=this.zeropad(this.Y(t)%100);break;case'Y':e=t.getUTCFullYear();break;case'.':d[i]=d[i].replace(/^\.(\d)S/,this.subsecs(t,RegExp.$1));e="";break;default:e="";break}if(e!=""){d[i]=""+e+d[i].substr(1)}}return d.join("")},displayLength:function(){var a=this.displayFormat;var b=a.length;var c=a.match(/\%([bcdHImMpSTyY])/g);for(var d in c){switch(d){case'b':case'B':b+=1;break;case'T':b+=6;break;case'Y':b+=2;break}}c=a.match(/%\.(\d)S/g);for(var i=0;i<c.length;i++){b+=((c[i]==0)?-2:(c[i]>=3)?2:(c[i]==2)?1:0)}return b},printf:function(k){var l=function(a,b,c){var d='';for(var i=0;i<Math.abs(c);i++){d+=b}return c>0?a+d:d+a};var m=function(d,e,f,g){var h=function(a,b,c){if(b>=0){if(a.indexOf(' ')>=0){c=' '+c}else if(a.indexOf('+')>=0){c='+'+c}}else{c='-'+c}return c};var i=parseInt(e,10);if(e.charAt(0)=='0'){var j=0;if(d.indexOf(' ')>=0||d.indexOf('+')>=0){j++}if(f.length<(i-j)){f=l(f,'0',f.length-(i-j))}return h(d,g,f)}f=h(d,g,f);return(f.length<i)?(d.indexOf('-')<0)?l(f,' ',f.length-i):l(f,' ',i-f.length):f};var n=[];n.d=function(a,b,c,d){var e=parseInt(c,10);var f=((Math.abs(d)).toString().split('.'))[0];if(f.length<e){f=l(f,' ',e-f.length)}return m(a,b,f,d)};n.e=function(a,b,c,d){var e=parseInt(c,10);if(isNaN(e)){e=6}var f=(Math.abs(d)).toExponential(e);if(f.indexOf('.')<0&&a.indexOf('#')>=0){f=f.replace(/^(.*)(e.*)$/,'$1.$2')}return m(a,b,f,d)};n.f=function(a,b,c,d){var e=parseInt(c,10);if(isNaN(e)){e=6}var f=(Math.abs(d)).toFixed(e);if(f.indexOf('.')<0&&a.indexOf('#')>=0){f=f+'.'}return m(a,b,f,d)};n.s=function(a,b,c,d){var e=parseInt(c,10);var f=d;if(f.length>e){f=f.substring(0,e)}return m(a,b,f,0)};var o=k.split('%');var p=o[0];var q=/^([\-+ #]*)(\d*)\.?(\d*)([cdieEfFgGosuxX])(.*)$/;for(var i=1;i<o.length;i++){var r=q.exec(o[i]);if(!r){continue}if(arguments[i]!=null){p+=n[r[4]](r[1],r[2],r[3],arguments[i])}p+=r[5]}return p},strptime:function(a){var b=0;var c=0;var d=0;a=a.toUpperCase();var e=this.displayFormat;var f=e.split("%");var j=(f[0]!=null)?f[0].length:0;var i;for(i=1,j=0;i<f.length;i++){switch(f[i].substr(0,1)){case'Y':if(a.length-j<4){return null}b=parseInt(a.substr(j,4),10);if(b==null){return null}j+=f[i].length+3;break;case'y':if(a.length-j<2){return null}b=parseInt(a.substr(j,2),10);if(b==null){return null}b+=2000;j+=f[i].length+1;break;case'm':if(a.substr(j).match(/(\d{1,2})/)==null){return null}c=parseInt(RegExp.$1,10)-1;if((c<0)||(c>11)){return null}j+=f[i].length+RegExp.$1.length-1;break;case'b':if(((a.length-j)<3)||(PlotJax.BaseType.MONTHS[a.substr(j,3)]==null)){return null}c=PlotJax.BaseType.MONTHS[a.substr(j,3)];j+=f[i].length+2;break;case'd':if(a.substr(j).match(/(\d{1,2})/)==null){return null}d=parseInt(RegExp.$1,10);if((d<1)||(d>31)){return null}j+=f[i].length+RegExp.$1.length-1;break}}return new Date(b,c,d)}};PlotJax.TimeType=function(a){PlotJax.TimeType.baseConstructor.call(this,a);this.displayFormat=(a.Format==null)?'%H:%M:%.3S':a.Format;this.twelveHourTick=(this.tickFormat!=null)?this.tickFormat.match(/%p/i):false;this.twelveHourValue=this.displayFormat.match(/%p/i);this.regex=new RegExp(/^(\d{1,2})(?:\:(\d{2})(?:\:(\d{2}(?:\.\d+)))?)?([aApP][Mm]?)?$/);this.minLimit=(a.Min!=null)?this.normalize(a.Min):null;this.maxLimit=(a.Max!=null)?this.normalize(a.Max):null;if((this.minLimit!=null)&&(this.maxLimit!=null)&&(this.maxLimit<=this.minLimit)){alert("TimeType: Invalid limits: max less than min.");return null}if(this.keepOrigin){if((this.minLimit==null)||(this.minLimit>0)){this.minLimit=0}}};JSPPTrustee.extend(PlotJax.TimeType,PlotJax.BaseType);PlotJax.TimeType.prototype.display=function(a){var b=new Date();b.pljxSetTimeInSecs(a);return this.strftime(this.displayFormat,b)};PlotJax.TimeType.prototype.getTemplate=function(){return'HH:MM:SS.SSSAM'};PlotJax.TimeType.prototype.getTicks=function(){var a=[];var b=this.minval;var c=new Date();while(b<=this.maxval){c.pljxSetTimeInSecs(b);a.push(this.strftime(this.tickfmt,c),b);b+=this.interval}return a};PlotJax.TimeType.prototype.updateTicks=function(a,b,c){var d=Math.ceil((b*(this.maxval-this.minval)/(a-(b*2)))/this.interval);var e=this.minval;var f=this.maxval;var g=new Date();for(;d>0;d--){e-=this.interval;f+=this.interval;g.pljxSetTimeInSecs(e);c.unshift(this.strftime(this.tickfmt,g),e);g.pljxSetTimeInSecs(f);c.push(this.strftime(this.tickfmt,g),f)}return c};PlotJax.TimeType.prototype.normalize=function(a){var b=a.substr(-1).toUpperCase();if(b=="M"){b=a.substr(-2,1).toUpperCase()}var c=(b=='P')?12*3600:0;var d=((b=='A')||(b=='P'));a=a.replace(/[aApP][mM]?/,"");var e=a.split(":");if((e==null)||(e.length==0)||(e.length>3)){alert("Invalid time value "+a);return null}switch(e.length){case 1:e.push(0,0);break;case 2:e.push(0);break}var f=parseInt(e[0],10);var g=parseInt(e[1],10);var h=parseFloat(e[2]);if(d&&(f==12)&&(c==0)){f=0}if((d&&(f>11))||(f>23)||(g>59)||(h>=60)){alert("Invalid time value "+a);return null}var i=(f*3600)+c+(g*60)+h;return i};PlotJax.TimeType.prototype.setInterval=function(a,b,c){if(b==a){a=a-3600;b=b+3600}if(this.log10){a=Math.floor(a)-(a<0?1:0);b=Math.floor(b)+1}var d=b-a;var e=this.twelveHourTick?'%I:%M%p':'%H:%M';if(d<=100){var f=Math.log(d)/Math.log(10);var g=f-Math.floor(f);var h=Math.floor(f)-1;if(h<1){if(g<0.15){this.interval=1}else if(g<0.4){this.interval=2}else if(g<0.87){this.interval=5}else{this.interval=1;h=Math.floor(f)}}this.interval*=Math.pow(10,h);e=this.twelveHourTick?(h<0)?'%I:%M:%.'+Math.abs(h)+'S%p':'%I:%M:%S%p':(h<0)?'%H:%M:%.'+Math.abs(h)+'S':'%T'}else{if(d<=420){e=this.twelveHourTick?'%I:%M%p':'%T'}this.interval=(d<=240)?20:(d<=420)?30:(d<=600)?60:(d<=1200)?120:(d<=3600)?300:(d<=7200)?600:(d<=14400)?1200:(d<=25200)?1800:(d<=43200)?3600:7200}this.minval=this.interval*Math.floor(a/this.interval);this.maxval=this.interval*Math.ceil(b/this.interval);if(c&&this.keepOrigin&&(this.minval>0)){this.minval=0}this.tickfmt=(this.tickFormat!=null)?this.tickFormat:e;return this.getTicks()};PlotJax.TimestampType=function(a){PlotJax.TimestampType.baseConstructor.call(this,a);this.re=new RegExp(/^(\d{4})-(\d{1,2})-(\d{1,2})\s+(\d{1,2}):(\d{2}):(\d{2}(?:\.\d+)?)$/);this.minLimit=(a.Min!=null)?this.normalize(a.Min):null;this.maxLimit=(a.Max!=null)?this.normalize(a.Max):null;if((this.minLimit!=null)&&(this.maxLimit!=null)&&(this.maxLimit<=this.minLimit)){alert("TimestampType: Invalid limits: max "+a.Max+" less than min "+a.Min);return null}this.displayFormat=(a.Format!=null)?a.Format:"%Y-%m-%d %H:%M:%.3S";this.keepOrigin=false};JSPPTrustee.extend(PlotJax.TimestampType,PlotJax.BaseType);PlotJax.TimestampType.prototype.display=function(a){var b=new Date();b.pljxSetTimeInSecs(a);return this.strftime(this.displayFormat,b)};PlotJax.TimestampType.prototype.getLog10Ticks=function(){var a=[]};PlotJax.TimestampType.prototype.getTemplate=function(){return'YYYY-MM-DD HH:MM:SS.SSS'};PlotJax.TimestampType.prototype.getTicks=function(){var a=[];var b=this.minval;var c=0;var d=0;var e=new Date();e.pljxSetTimeInSecs(b);if(this.useMonths){c=e.getUTCFullYear();d=e.getUTCMonth()}else if(this.useYears){c=e.getUTCFullYear()}a.push(this.strftime(this.tickfmt,e),e.getTime()/1000);while(b<this.maxval){if(this.useYears){c+=this.interval;e.setUTCFullYear(c,0,1)}else if(this.useMonths){d+=this.interval;if(d>11){c++;d=0}e.setUTCFullYear(c,d,1)}else{b+=this.interval;e.pljxSetTimeInSecs(b)}b=e.getTime()/1000;a.push(this.strftime(this.tickfmt,e),b)}return a};PlotJax.TimestampType.prototype.updateTicks=function(a,b,c){var d=new Date();var e=0;var f=0;var g=new Date();var h=0;var i=0;var j=this.minval;var k=this.maxval;d.pljxSetTimeInSecs(this.minval);g.pljxSetTimeInSecs(this.maxval);var l=this.minval;var m=this.maxval;var n=0;if(this.useMonths){e=d.getUTCFullYear();f=d.getUTCMonth();l=(e*12)+f;h=g.getUTCFullYear();i=g.getUTCMonth();m=(h*12)+i}else if(this.useYears){e=d.getUTCFullYear();l=e;h=g.getUTCFullYear();m=h}n=Math.ceil((b*(m-l)/(a-(b*2)))/this.interval);for(;n>0;n--){if(this.useYears){e-=this.interval;h+=this.interval;d.setUTCFullYear(e,0,1);g.setUTCFullYear(h,0,1)}else if(this.useMonths){f-=this.interval;if(f<0){e--;f+=12}d.setUTCFullYear(e,f,1);i+=this.interval;if(i>11){h++;i=0}g.setUTCFullYear(h,i,1)}else{j-=this.interval;d.pljxSetTimeInSecs(j);k+=this.interval;g.pljxSetTimeInSecs(k)}c.unshift(this.strftime(this.tickfmt,d),d.getTime()/1000);c.push(this.strftime(this.tickfmt,g),g.getTime()/1000)}return c};PlotJax.TimestampType.prototype.normalize=function(a){if(this.re.test(a)==null){alert("Invalid timestamp value "+a);return null}var b=RegExp.$1;var c=RegExp.$2;var d=RegExp.$3;var e=RegExp.$4;var f=RegExp.$5;var g=RegExp.$6;var h=RegExp.$7;if(h==null){h=0}else if(h>999){h=h.substr(0,3)}if((c<1)||(c>12)||(d<1)||(d>31)||(e>23)||(f>59)||(g>=60)){alert("Invalid timestamp value"+a);return null}var i=new Date(b,c-1,d);i.setUTCHours(e,f,g,h);if(i==null){alert("Invalid timestamp value "+a);return null}return i.getTime()/1000};PlotJax.TimestampType.prototype.setInterval=function(a,b,c){if(b==a){a=a-86400;b=b+86400}if(this.log10){a=Math.floor(a)-(a<0?1:0);b=Math.floor(b)+1}var d=b-a;this.useMonths=false;this.useYears=false;var e='%Y-%m-%d %T';var f=new Date();var g=new Date();f.pljxSetTimeInSecs(a);g.pljxSetTimeInSecs(b);var h,xd,precision;if(d<=100){h=Math.log(d)/Math.log(10);xd=h-Math.floor(h);precision=Math.floor(h)-1;if(precision<1){if(xd<0.15){this.interval=1}else if(xd<0.4){this.interval=2}else if(xd<0.87){this.interval=5}else{this.interval=1;precision=Math.floor(h)}}this.interval*=Math.pow(10,precision);if(precision<0){e='%Y-%m-%d %H:%M:%.'+Math.abs(precision)+'S'}}else if(g.getUTCFullYear()-f.getUTCFullYear()>10){d=g.getUTCFullYear()-f.getUTCFullYear()+1;h=Math.log(d)/Math.log(10);xd=h-Math.floor(h);precision=Math.floor(h)-1;if(xd<0.15){this.interval=1}else if(xd<0.4){this.interval=2}else if(xd<0.87){this.interval=5}else{this.interval=1;precision=Math.floor(h)}this.interval*=Math.pow(10,precision);e='%Y';this.useYears=true}else{e=(d<=3600)?'%Y-%m-%d %T':(d<=86400)?'%Y-%m-%d %H:%M':(g.getUTCFullYear()-f.getUTCFullYear()<1)?'%Y-%b-%d':'%Y-%b';if(d<=15552000){this.interval=(d<=240)?20:(d<=420)?30:(d<=600)?60:(d<=1200)?120:(d<=3600)?300:(d<=7200)?600:(d<=14400)?1200:(d<=25200)?1800:(d<=43200)?3600:(d<=86400)?7200:(d<=172800)?14400:(d<=345600)?28800:(d<=604800)?43200:(d<=1296000)?86400:(d<=2592000)?172800:(d<=5184000)?432000:(d<=10368000)?864000:1296000}else{this.useMonths=true;d=((g.getUTCFullYear()*12)+g.getUTCMonth()+1)-((f.getUTCFullYear()*12)+f.getUTCMonth());this.interval=(d<=12)?1:(d<=24)?2:(d<=48)?4:(d<=84)?6:12}}if(this.useYears){d=f.getUTCFullYear();d=this.interval*Math.floor(d/this.interval);f.setUTCFullYear(d,0,1);this.minval=f.getTime()/1000;d=g.getUTCFullYear()+1;d=this.interval*Math.ceil(d/this.interval);g.setUTCFullYear(d,0,1);this.maxval=g.getTime()/1000}else if(this.useMonths){d=(f.getUTCFullYear()*12)+f.getUTCMonth();d=this.interval*Math.floor(d/this.interval);f=new Date(Math.floor(d/12),d%12,1);this.minval=f.getTime()/1000;d=(g.getUTCFullYear()*12)+g.getUTCMonth()+1;d=this.interval*Math.ceil(d/this.interval);g=new Date(Math.floor(d/12),d%12,1);this.maxval=g.getTime()/1000}else{a-=(this.interval*0.1);b+=(this.interval*0.1);this.minval=this.interval*Math.floor(a/this.interval);this.maxval=this.interval*Math.ceil(b/this.interval)}this.tickfmt=(this.tickFormat!=null)?this.tickFormat:e;return this.getTicks()};PlotJax.DateType=function(a){PlotJax.DateType.baseConstructor.call(this,a);this.tickFormat=(a.TickFormat!=null)?a.TickFormat:"%Y-%m-%d";this.displayFormat=(a.Format!=null)?a.Format:"%Y-%m-%d";this.keepOrigin=false;this.minLimit=(a.Min!=null)?this.normalize(a.Min):null;this.maxLimit=(a.Max!=null)?this.normalize(a.Max):null;if((this.minLimit!=null)&&(this.maxLimit!=null)&&(this.maxLimit<=this.minLimit)){alert("DateType: Invalid limits: max less than min.");return null}};JSPPTrustee.extend(PlotJax.DateType,PlotJax.BaseType);PlotJax.DateType.prototype.display=function(a){var b=new Date();b.pljxSetTimeInSecs(a);return this.strftime(this.displayFormat,b)};PlotJax.DateType.prototype.getLog10Ticks=function(){var a=[];var i=this.minval;var n=0;var k=i;while(i<=this.maxval){k=i+PlotJax.BaseType.logsteps[n++];if(n>=PlotJax.BaseType.logsteps.length){n=0;i=k}}return a};PlotJax.DateType.prototype.getTemplate=function(){return'YYYY-MMM-DD'};PlotJax.DateType.prototype.getTicks=function(){if(this.log1){return this.getLog10Ticks()}var a=[];var b=this.minval;var c=0;var d=0;var e=new Date();e.pljxSetTimeInSecs(b);if(this.useMonths){c=e.getUTCFullYear();d=e.getUTCMonth()}else if(this.useYears){c=e.getUTCFullYear()}a.push(this.strftime(this.tickfmt,e),e.getTime()/1000);while(b<this.maxval){if(this.useYears){c+=this.interval;e.setUTCFullYear(c,0,1)}else if(this.useMonths){d+=this.interval;if(d>11){c++;d=0}e.setUTCFullYear(c,d,1)}else{b+=this.interval;e.pljxSetTimeInSecs(b)}b=e.getTime()/1000;a.push(this.strftime(this.tickfmt,e),b)}return a};PlotJax.DateType.prototype.updateTicks=function(a,b,c){var d=new Date();var e=0;var f=0;var g=new Date();var h=0;var i=0;var j=this.minval;var k=this.maxval;d.pljxSetTimeInSecs(this.minval);g.pljxSetTimeInSecs(this.maxval);var l=this.minval;var m=this.maxval;var n=0;if(this.useMonths){e=d.getUTCFullYear();f=d.getUTCMonth();l=(e*12)+f;h=g.getUTCFullYear();i=g.getUTCMonth();m=(h*12)+i}else if(this.useYears){e=d.getUTCFullYear();l=e;h=g.getUTCFullYear();m=h}n=Math.ceil((b*(m-l)/(a-(b*2)))/this.interval);for(;n>0;n--){if(this.useYears){e-=this.interval;h+=this.interval;d.setUTCFullYear(e,0,1);g.setUTCFullYear(h,0,1)}else if(this.useMonths){f-=this.interval;if(f<0){e--;f+=12}d.setUTCFullYear(e,f,1);i+=this.interval;if(i>11){h++;i=0}g.setUTCFullYear(h,i,1)}else{j-=this.interval;d.pljxSetTimeInSecs(j);k+=this.interval;g.pljxSetTimeInSecs(k)}c.unshift(this.strftime(this.tickfmt,d),d.getTime()/1000);c.push(this.strftime(this.tickfmt,g),g.getTime()/1000)}return c};PlotJax.DateType.prototype.normalize=function(a){var b=this.strptime(a);if(b==null){alert("Invalid date value "+a+" for format "+this.displayFormat);return null}return b.getTime()/1000};PlotJax.DateType.prototype.setInterval=function(a,b,c){if(b==a){a=a-86400;b=b+86400}if(this.log10){a=Math.floor(a)-(a<0?1:0);b=Math.floor(b)+1}var d=b-a;this.useMonths=false;this.useYears=false;var e='%Y-%m-%d';var f=new Date();var g=new Date();f.pljxSetTimeInSecs(a);g.pljxSetTimeInSecs(b);if(g.getUTCFullYear()-f.getUTCFullYear()>10){d=g.getUTCFullYear()-f.getUTCFullYear()+1;var h=Math.log(d)/Math.log(10);var i=h-Math.floor(h);var j=Math.floor(h)-1;if(i<0.15){this.interval=1}else if(i<0.4){this.interval=2}else if(i<0.87){this.interval=5}else{this.interval=1;j=Math.floor(h)}this.interval*=Math.pow(10,j);e='%Y';this.useYears=true}else{e=(g.getUTCFullYear()-f.getUTCFullYear()<=1)?'%Y-%b-%d':'%Y-%b';if(d<=15552000){this.interval=(d<=1296000)?86400:(d<=2592000)?172800:(d<=5184000)?432000:(d<=10368000)?864000:1296000}else{this.useMonths=true;d=((g.getUTCFullYear()*12)+g.getUTCMonth()+1)-((f.getUTCFullYear()*12)+f.getUTCMonth());this.interval=(d<=12)?1:(d<=24)?2:(d<=48)?4:(d<=84)?6:12}}if(this.useYears){d=f.getUTCFullYear();d=this.interval*Math.floor(d/this.interval);f.setUTCFullYear(d,0,1);this.minval=f.getTime()/1000;d=g.getUTCFullYear()+1;d=this.interval*Math.ceil(d/this.interval);g.setUTCFullYear(d,0,1);this.maxval=g.getTime()/1000}else if(this.useMonths){d=(f.getUTCFullYear()*12)+f.getUTCMonth();d=this.interval*Math.floor(d/this.interval);f=new Date(Math.floor(d/12),d%12,1);this.minval=f.getTime()/1000;d=(g.getUTCFullYear()*12)+g.getUTCMonth()+1;d=this.interval*Math.ceil(d/this.interval);g=new Date(Math.floor(d/12),d%12,1);this.maxval=g.getTime()/1000}else{this.minval=this.interval*Math.floor(a/this.interval);this.maxval=this.interval*Math.ceil(b/this.interval)}this.tickfmt=(this.tickFormat!=null)?this.tickFormat:e;return this.getTicks()};PlotJax.NumberType=function(b){PlotJax.NumberType.baseConstructor.call(this,b);if(b.TickFormat!=null){this.tickFormat=b.TickFormat;this.tickfmt=function(a){return this.printf(this.tickFormat,a)}}if(b.Format!=null){this.displayFormat=b.Format;this.dispfmt=function(a){return this.printf(this.displayFormat,a)}}this.minLimit=(b.Min!=null)?this.normalize(b.Min):null;this.maxLimit=(b.Max!=null)?this.normalize(b.Max):null;if((this.minLimit!=null)&&(this.maxLimit!=null)&&(this.maxLimit<=this.minLimit)){alert("NumberType: Invalid limits: max less than min.");return null}if(this.keepOrigin){if((this.maxLimit==null)||(this.maxLimit<0)){this.maxLimit=0}else if((this.minLimit==null)||(this.minLimit>0)){this.minLimit=0}}};JSPPTrustee.extend(PlotJax.NumberType,PlotJax.BaseType);PlotJax.NumberType.prototype.display=function(a){return(this.dispfmt!=null)?this.dispfmt(a):a};PlotJax.NumberType.prototype.displayLength=function(){var a=this.tickfmt(this.minval);var b=this.tickfmt(this.maxval);return Math.max(a.length,b.length)};PlotJax.NumberType.prototype.getLog10Ticks=function(){var a=[];var i=this.minval;var n=0;var k=i;while(i<=this.maxval){k=i+PlotJax.BaseType.logsteps[n++];if(n>=PlotJax.BaseType.logsteps.length){n=0;i=k}a.push(this.tickfmt(i),i)}return a};PlotJax.NumberType.prototype.getTemplate=function(){return'-0.000e-00'};PlotJax.NumberType.prototype.getTicks=function(){if(this.log10){return this.getLog10Ticks()}var a=[];var b=this.minval;if(this.tickfmt==null){return null}while(b<=this.maxval){a.push(this.tickfmt(b),b);b+=this.interval}return a};PlotJax.NumberType.prototype.updateTicks=function(a,b,c){var d=this.minval;var e=this.maxval;var f=Math.ceil((b*(this.maxval-this.minval)/(a-(b*2)))/this.interval);for(;f>0;f--){d-=this.interval;e+=this.interval;c.unshift(this.tickfmt(d),d);c.push(this.tickfmt(e),e)}return c};PlotJax.NumberType.prototype.normalize=function(a){return a};PlotJax.NumberType.prototype.getLabel=function(){return(this.label.match(/%truncate%/)==null)?this.label:(this.interval>=1000000000)?this.label.replace(/%truncate%/,"(billions)"):(this.interval>=1000000)?this.label.replace(/%truncate%/,"(millions)"):(this.interval>=1000)?this.label.replace(/%truncate%/,"(thousands)"):this.label.replace(/%truncate%/,"")};PlotJax.NumberType.prototype.setInterval=function(b,c,d){if(c==b){b*=0.75;c*=1.25}if(this.log10){b=Math.floor(b)-(b<0?1:0);c=Math.floor(c)+1}var e=Math.log(c-b)/Math.log(10);var f=e-Math.floor(e);var g=Math.floor(e);if(f<0.87){g--}this.interval=(f<0.15)?1:(f<0.4)?2:(f<0.87)?6:1;if(g>0){this.interval*=Math.pow(10,g);if(this.tickFormat==null){this.tickfmt=function(a){return Math.round(a/this.truncator)}}}else if(g<0){if(g<-4){this.interval+='.0e'+g;if(this.tickFormat==null){this.tickfmt=function(a){return a.toExponential(g)}}}else{this.interval*=Math.pow(10,g);if(this.tickFormat==null){this.tickfmt=function(a){return a.toFixed(g)}}}}this.truncator=1;if(this.label.match(/%truncate%/)){if(this.interval>=1000000000){this.truncator=1000000000}else if(this.interval>=1000000){this.truncator=1000000}else if(this.interval>=1000){this.truncator=1000}}b-=(this.interval*0.1);c+=(this.interval*0.1);this.minval=this.interval*Math.floor(b/this.interval);this.maxval=this.interval*Math.ceil(c/this.interval);if(d&&this.keepOrigin){if(this.minval>0){this.minval=0}else if(this.maxval<0){this.maxval=0}}return this.getTicks()};PlotJax.SymbolType=function(a){PlotJax.SymbolType.baseConstructor.call(this,a);this.symbols=[];this.ordinal=[];this.maxlen=0;this.maxsym='';this.log10=false;this.keepOrigin=true;this.shadowvals=[];switch(a.Type){case"date":this.shadow=new PlotJax.DateType(a);break;case"time":this.shadow=new PlotJax.TimeType(a);break;case"timestamp":this.shadow=new PlotJax.TimestampType(a);break;default:this.shadow=null}};JSPPTrustee.extend(PlotJax.SymbolType,PlotJax.BaseType);PlotJax.SymbolType.prototype.cardinality=function(){return this.symbols.length};PlotJax.SymbolType.prototype.display=function(a){return this.ordinal[a-1]};PlotJax.SymbolType.prototype.displayLength=function(){return this.maxlen};PlotJax.SymbolType.prototype.getTemplate=function(){return this.maxsym};PlotJax.SymbolType.prototype.sortDomain=function(){if(this.shadow!=null){this.shadowvals=this.shadowvals.sort(function(a,b){return a-b});for(var i=0;i<this.shadowvals.length;i++){var t=this.shadow.display(this.shadowvals[i]);this.symbols[t]=i+1;this.ordinal[i+1]=t}}};PlotJax.SymbolType.prototype.getTicks=function(){var a=[(this.minval>=1)?this.ordinal[this.minval-1]:"",this.minval];var i;for(i=this.minval;i<this.maxval;i++){if((i>=0)&&(i<this.ordinal.length)){a.push(this.ordinal[i],i+1)}else{a.push("",i+1)}}return a};PlotJax.SymbolType.prototype.updateTicks=function(a,b,c){var d=this.minval;var e=this.maxval;var f=Math.ceil((b*(this.maxval-this.minval)/(a-(b*2)))/this.interval);for(;f>0;f--){d--;e++;c.unshift("",d);c.push("",e)}return c};PlotJax.SymbolType.prototype.normalize=function(a){if(this.shadow){var t=this.shadow.normalize(a);a=this.shadow.display(t);if(this.symbols[a]==null){this.shadowvals.push(t)}}if(this.symbols[a]==null){this.ordinal.push(a);this.symbols[a]=this.ordinal.length;if(this.maxlen<a.length){this.maxlen=a.length;this.maxsym=a}}return this.symbols[a]};PlotJax.SymbolType.prototype.setInterval=function(a,b,c){this.interval=1;this.minval=a-1;this.maxval=b+1;return this.getTicks()};PlotJax.IntervalType=function(a){PlotJax.IntervalType.baseConstructor.call(this,a);this.valid_units={year:6,month:5,day:4,hour:3,minute:2,second:1};this.valid_precision={month:5,hour:3,minute:2,second:1};this.maxLimit=(a.Max!=null)?a.Max:null;this.minLimit=(a.Min!=null)?a.Min:null;if(this.keepOrigin){if((this.maxLimit==null)||(this.maxLimit<0)){this.maxLimit=0}else if((this.minLimit==null)||(this.minLimit>0)){this.minLimit=0}}if(a.precision==null){a.precision="seconds"}this.precision=this.valid_precision[a.precision];if(this.units==null){alert("Invalid unit "+a.units+" for interval type.");return null}if(this.precision==null){alert("Invalid precision "+a.precision+" for interval type.");return null}if(this.precision>this.units){alert("Invalid precision "+a.precision+" for "+a.units+" interval type.");return null}this.restrs=[[/^([\-+])?\s+(\d+(?:\.\d+)?)$/],[/^([\-+])?\s+(\d+):(\d{1,2}(?:\.\d+)?)$/,/^([\-+])?\s+(\d+)$/],[/^([\-+])?\s+(\d+):(\d{1,2}):(\d{1,2}(?:\.\d+)?)$/,/^([\-+])?\s+(\d+):(\d{1,2})$/,/^([\-+])?\s+(\d+)$/],[/^([\-+])?\s+(?:(\d+)\s+)?(\d{1,2}):(\d{1,2}):(\d{1,2}(?:\.\d+)?)$/,/^([\-+])?\s+(?:(\d+)\s+)?(\d{1,2}):(\d{1,2})$/,/^([\-+])?\s+(?:(\d+)\s+)?(\d{1,2})$/,/^([\-+])?\s+(\d+)$/]];this.re=new RegExp(this.restrs[this.units-1][this.precision-1]);this.minLimit=this.normalize(a.Min);this.maxLimit=this.normalize(a.Max);if((this.minLimit!=null)&&(this.maxLimit!=null)&&(this.maxLimit<=this.minLimit)){alert("IntervalType: Invalid limits: max less than min.");return null}};JSPPTrustee.extend(PlotJax.IntervalType,PlotJax.BaseType);PlotJax.IntervalType.prototype.display=function(a){if(this.units==1){return a}var b,hours,mins,secs;var c="";if(a<0){c="-";a*=-1}secs=a%60;mins=(a-secs)%3600;hours=(a-secs-mins)%(3600*24);b=(a-secs-mins-hours)/(3600*24);switch(this.units){case 4:switch(this.precision){case 1:mins/=60;if(mins<10){mins="0"+mins}hours/=3600;if(hours<10){hours="0"+hours}if(secs<10){secs="0"+secs}return c+b+" "+hours+":"+mins+":"+secs;case 2:mins/=60;if(mins<10){mins="0"+mins}hours/=3600;if(hours<10){hours="0"+hours}return c+b+" "+hours+":"+mins;case 3:hours/=3600;if(hours<10){hours="0"+hours}return c+b+" "+hours;case 4:return c+b}case 3:hours+=(b*24);switch(this.precision){case 1:mins/=60;if(mins<10){mins="0"+mins}if(secs<10){secs="0"+secs}return c+hours+":"+mins+":"+secs;case 2:mins/=60;if(mins<10){mins="0"+mins}return c+hours+":"+mins;case 3:return c+hours}case 2:mins+=(hours*60)+(b*24*60);switch(this.precision){case 1:if(secs<10){secs="0"+secs}return c+mins+":"+secs;case 2:return c+mins}}};PlotJax.IntervalType.prototype.displayLength=function(){if(this.units==1){var a=this.tickfmt(this.minval);var b=this.tickfmt(this.maxval);return Math.max(a.length,b.length)}var c,hours,mins,secs;var d=this.minval;secs=d%60;mins=(d-secs)%3600;hours=(d-secs-mins)%(3600*24);c=(d-secs-mins-hours)/(3600*24);switch(this.units){case 4:switch(this.precision){case 1:return 1+13+c.length;case 2:return 1+6+c.length;case 3:return 1+3+c.length;case 4:return 1+c.length}case 3:hours+=(c*24);switch(this.precision){case 1:return 1+10+hours.length;case 2:return 1+3+hours.length;case 3:return 1+hours.length}case 2:mins+=(hours*60)+(c*24*60);switch(this.precision){case 1:return 1+7+mins.length;case 2:return 1+mins.length}}};PlotJax.IntervalType.prototype.getLog10Ticks=function(){var a=[];var i=this.minval;var n=0;var k=i;while(i<=this.maxval){k=i+PlotJax.BaseType.logsteps[n++];if(n>=PlotJax.BaseType.logsteps.length){n=0;i=k}}return a};PlotJax.IntervalType.prototype.getTemplate=function(){return'HH:MM:SS.SSS'};PlotJax.IntervalType.prototype.getTicks=function(){if(this.log10){return this.getLog10Ticks()}var a=[]};PlotJax.IntervalType.prototype.updateTicks=function(a,b,c){var d=this.minval;var e=this.maxval;var f=Math.ceil((b*(this.maxval-this.minval)/(a-(b*2)))/this.interval);for(;f>0;f--){d--;e++;c.unshift("",d);c.push("",e)}return c};PlotJax.IntervalType.prototype.normalize=function(a){var b=1;var c,hours,mins,secs;if(!this.re.test(a)){alert("Invalid data format for interval type.");return null}if((RegExp.$1!=null)&&(RegExp.$1=="-")){b=-1}if(this.units==4){c=(RegExp.$2!=null)?RegExp.$2:0;if(this.precision==4){return b*c*24*60*60}hours=RegExp.$3;if(hours>23){alert("Invalid value for interval type.");return null}if(this.precision==3){return b*((c*24*60*60)+(hours*60*60))}mins=RegExp.$4;if(mins>59){alert("Invalid value for Interval type.");return null}if(this.precision==2){return b*((c*24*60*60)+(hours*60*60)+(mins*60))}secs=RegExp.$5;if(secs>=60){alert("Invalid value for Interval type.");return null}return b*((c*24*60*60)+(hours*60*60)+(mins*60)+secs)}else if(this.units==3){hours=RegExp.$2;if(this.precision==3){return b*(hours*60*60)}mins=RegExp.$3;if(mins>59){alert("Invalid value for Interval type.");return null}if(this.precision==2){return b*((hours*60*60)+(mins*60))}secs=RegExp.$4;if(secs>=60){alert("Invalid value for Interval type.");return null}return b*((hours*60*60)+(mins*60)+secs)}else if(this.units==2){mins=RegExp.$2;if(this.precision==2){return b*(mins*60)}secs=RegExp.$3;if(secs>=60){alert("Invalid value for Interval type.");return null}return b*((mins*60)+secs)}else{secs=RegExp.$2;return b*secs}};PlotJax.IntervalType.prototype.setInterval=function(b,c,d){if(c==b){b*=0.75;c*=1.25}if(this.log10){b=Math.floor(b)-(b<0?1:0);c=Math.floor(c)+1}var e=Math.log(c-b)/Math.log(10);var f=e-Math.floor(e);var g=Math.floor(e)-1;if(f<0.15){this.interval=1}else if(f<0.4){this.interval=2}else if(f<0.87){this.interval=5}else{this.interval=1;g=Math.floor(e)}if(g>0){this.interval*=Math.pow(10,g);this.tickfmt=function(a){return Math.round(a/this.truncator)}}else if(g<0){if(g<-4){this.interval+='.0e'+g;this.tickfmt=function(a){return a.toExponential(g)}}else{this.interval*=Math.pow(10,g);this.tickfmt=function(a){return a.toFixed(g)}}}this.minval=this.interval*Math.floor(b/this.interval);this.maxval=this.interval*Math.ceil(c/this.interval);if(d&&this.keepOrigin){if(this.minval>0){this.minval=0}else if(this.maxval<0){this.maxval=0}}return this.getTicks()}}