this.canvasWidth||n>this.canvasHeight||t<0||n<0){return null}s=this.getRegion(e,t,n);if(r!==s){if(r!==undefined&&i){this.removeHighlight()}this.currentRegion=s;if(s!==undefined&&i){this.renderHighlight()}return true}return false},clearRegionHighlight:function(){if(this.currentRegion!==undefined){this.removeHighlight();this.currentRegion=undefined;return true}return false},renderHighlight:function(){this.changeHighlight(true)},removeHighlight:function(){this.changeHighlight(false)},changeHighlight:function(e){},getCurrentRegionTooltip:function(){var t=this.options,n="",r=[],s,o,u,a,f,l,c,h,p,d,v,m,g,y;if(this.currentRegion===undefined){return""}s=this.getCurrentRegionFields();v=t.get("tooltipFormatter");if(v){return v(this,t,s)}if(t.get("tooltipChartTitle")){n+=''+t.get("tooltipChartTitle")+"
\n"}o=this.options.get("tooltipFormat");if(!o){return""}if(!e.isArray(o)){o=[o]}if(!e.isArray(s)){s=[s]}c=this.options.get("tooltipFormatFieldlist");h=this.options.get("tooltipFormatFieldlistKey");if(c&&h){p=[];for(l=s.length;l--;){d=s[l][h];if((y=e.inArray(d,c))!=-1){p[y]=s[l]}}s=p}u=o.length;g=s.length;for(l=0;l'+f+"")}}}if(r.length){return n+r.join("\n")}return""},getCurrentRegionFields:function(){},calcHighlightColor:function(e,t){var n=t.get("highlightColor"),r=t.get("highlightLighten"),i,o,u,a;if(n){return n}if(r){i=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(e)||/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(e);if(i){u=[];o=e.length===4?16:1;for(a=0;a<3;a++){u[a]=s(Math.round(parseInt(i[a+1],16)*o*r),0,255)}return"rgb("+u.join(",")+")"}}return e}});b={changeHighlight:function(t){var n=this.currentRegion,r=this.target,i=this.regionShapes[n],s;if(i){s=this.renderRegion(n,t);if(e.isArray(s)||e.isArray(i)){r.replaceWithShapes(i,s);this.regionShapes[n]=e.map(s,function(e){return e.id})}else{r.replaceWithShape(i,s);this.regionShapes[n]=s.id}}},render:function(){var t=this.values,n=this.target,r=this.regionShapes,i,s,o,u;if(!this.cls._super.render.call(this)){return}for(o=t.length;o--;){i=this.renderRegion(o);if(i){if(e.isArray(i)){s=[];for(u=i.length;u--;){i[u].append();s.push(i[u].id)}r[o]=s}else{i.append();r[o]=i.id}}else{r[o]=null}}n.render()}};e.fn.sparkline.line=w=r(e.fn.sparkline._base,{type:"line",init:function(e,t,n,r,i){w._super.init.call(this,e,t,n,r,i);this.vertices=[];this.regionMap=[];this.xvalues=[];this.yvalues=[];this.yminmax=[];this.hightlightSpotId=null;this.lastShapeId=null;this.initTarget()},getRegion:function(e,t,n){var r,i=this.regionMap;for(r=i.length;r--;){if(i[r]!==null&&t>=i[r][0]&&t<=i[r][1]){return i[r][2]}}return undefined},getCurrentRegionFields:function(){var e=this.currentRegion;return{isNull:this.yvalues[e]===null,x:this.xvalues[e],y:this.yvalues[e],color:this.options.get("lineColor"),fillColor:this.options.get("fillColor"),offset:e}},renderHighlight:function(){var e=this.currentRegion,t=this.target,n=this.vertices[e],r=this.options,i=r.get("spotRadius"),s=r.get("highlightSpotColor"),o=r.get("highlightLineColor"),u,a;if(!n){return}if(i&&s){u=t.drawCircle(n[0],n[1],i,undefined,s);this.highlightSpotId=u.id;t.insertAfterShape(this.lastShapeId,u)}if(o){a=t.drawLine(n[0],this.canvasTop,n[0],this.canvasTop+this.canvasHeight,o);this.highlightLineId=a.id;t.insertAfterShape(this.lastShapeId,a)}},removeHighlight:function(){var e=this.target;if(this.highlightSpotId){e.removeShapeId(this.highlightSpotId);this.highlightSpotId=null}if(this.highlightLineId){e.removeShapeId(this.highlightLineId);this.highlightLineId=null}},scanValues:function(){var e=this.values,t=e.length,n=this.xvalues,r=this.yvalues,i=this.yminmax,s,o,u,a,f;for(s=0;sthis.maxy){this.maxy=n}}if(e.get("chartRangeMin")!==undefined&&(e.get("chartRangeClip")||e.get("chartRangeMin")this.maxy)){this.maxy=e.get("chartRangeMax")}if(e.get("chartRangeMinX")!==undefined&&(e.get("chartRangeClipX")||e.get("chartRangeMinX")this.maxx)){this.maxx=e.get("chartRangeMaxX")}},drawNormalRange:function(e,t,n,r,i){var s=this.options.get("normalRangeMin"),o=this.options.get("normalRangeMax"),u=t+Math.round(n-n*((o-this.miny)/i)),a=Math.round(n*(o-s)/i);this.target.drawRect(e,u,r,a,undefined,this.options.get("normalRangeColor")).append()},render:function(){var t=this.options,n=this.target,r=this.canvasWidth,i=this.canvasHeight,s=this.vertices,o=t.get("spotRadius"),u=this.regionMap,a,f,l,c,h,p,d,v,g,y,b,E,S,x,T,N,C,k,L,A,O,M,_,D,P;if(!w._super.render.call(this)){return}this.scanValues();this.processRangeOptions();_=this.xvalues;D=this.yvalues;if(!this.yminmax.length||this.yvalues.length<2){return}c=h=0;a=this.maxx-this.minx===0?1:this.maxx-this.minx;f=this.maxy-this.miny===0?1:this.maxy-this.miny;l=this.yvalues.length-1;if(o&&(rthis.maxy){y=this.maxy}if(!d.length){d.push([E,c+i])}p=[E,c+Math.round(i-i*((y-this.miny)/f))];d.push(p);s.push(p)}}C=[];k=[];L=v.length;for(P=0;P2){d[0]=[d[0][0],d[1][1]]}C.push(d)}}L=k.length;for(P=0;P-1;if(y||e.isArray(F)){D=true;if(y){F=n[T]=a(F.split(":"))}F=f(F,null);b=Math.min.apply(Math,F);w=Math.max.apply(Math,F);if(bg){g=w}}}this.stacked=D;this.regionShapes={};this.barWidth=l;this.barSpacing=c;this.totalBarWidth=l+c;this.width=i=n.length*l+(n.length-1)*c;this.initTarget();if(d){M=h===undefined?-Infinity:h;_=p===undefined?Infinity:p}x=[];S=D?[]:x;var U=[];var z=[];for(T=0,N=n.length;T0){U[T]+=F}if(v<0&&g>0){if(F<0){z[T]+=Math.abs(F)}else{S[T]+=F}}else{S[T]+=Math.abs(F-(F<0?g:v))}x.push(F)}}}else{F=d?s(n[T],M,_):n[T];F=n[T]=u(F);if(F!==null){x.push(F)}}}this.max=O=Math.max.apply(Math,x);this.min=A=Math.min.apply(Math,x);this.stackMax=g=D?Math.max.apply(Math,U):O;this.stackMin=v=D?Math.min.apply(Math,x):A;if(r.get("chartRangeMin")!==undefined&&(r.get("chartRangeClip")||r.get("chartRangeMin")O)){O=r.get("chartRangeMax")}this.zeroAxis=k=r.get("zeroAxis",true);if(A<=0&&O>=0&&k){L=0}else if(k==false){L=A}else if(A>0){L=A}else{L=O}this.xaxisOffset=L;C=D?Math.max.apply(Math,S)+Math.max.apply(Math,z):O-A;this.canvasHeightEf=k&&A<0?this.canvasHeight-2:this.canvasHeight-1;if(A=0?g:O;I=(q-L)/C*this.canvasHeight;if(I!==Math.ceil(I)){this.canvasHeightEf-=2;I=Math.ceil(I)}}else{I=this.canvasHeight}this.yoffset=I;if(e.isArray(r.get("colorMap"))){this.colorMapByIndex=r.get("colorMap");this.colorMapByValue=null}else{this.colorMapByIndex=null;this.colorMapByValue=r.get("colorMap");if(this.colorMapByValue&&this.colorMapByValue.get===undefined){this.colorMapByValue=new m(this.colorMapByValue)}}this.range=C},getRegion:function(e,t,n){var r=Math.floor(t/this.totalBarWidth);return r<0||r>=this.values.length?undefined:r},getCurrentRegionFields:function(){var e=this.currentRegion,t=d(this.values[e]),n=[],r,i;for(i=t.length;i--;){r=t[i];n.push({isNull:r===null,value:r,color:this.calcColor(i,r,e),offset:e})}return n},calcColor:function(t,n,r){var i=this.colorMapByIndex,s=this.colorMapByValue,o=this.options,u,a;if(this.stacked){u=o.get("stackedBarColor")}else{u=n<0?o.get("negBarColor"):o.get("barColor")}if(n===0&&o.get("zeroColor")!==undefined){u=o.get("zeroColor")}if(s&&(a=s.get(n))){u=a}else if(i&&i.length>r){u=i[r]}return e.isArray(u)?u[t%u.length]:u},renderRegion:function(t,n){var r=this.values[t],i=this.options,s=this.xaxisOffset,o=[],u=this.range,a=this.stacked,f=this.target,l=t*this.totalBarWidth,h=this.canvasHeightEf,p=this.yoffset,d,v,m,g,y,b,w,E,S,x;r=e.isArray(r)?r:[r];w=r.length;E=r[0];g=c(null,r);x=c(s,r,true);if(g){if(i.get("nullColor")){m=n?i.get("nullColor"):this.calcHighlightColor(i.get("nullColor"),i);d=p>0?p-1:p;return f.drawRect(l,d,this.barWidth-1,0,m,m)}else{return undefined}}y=p;for(b=0;b0){v=Math.floor(h*(Math.abs(E-s)/u))+1}else{v=1}if(Et){o=i[t]}else if(n[t]<0){o=r.get("negBarColor")}else if(n[t]>0){o=r.get("posBarColor")}else{o=r.get("zeroBarColor")}return o},renderRegion:function(e,t){var n=this.values,r=this.options,i=this.target,s,o,u,a,f,l;s=i.pixelHeight;u=Math.round(s/2);a=e*this.totalBarWidth;if(n[e]<0){f=u;o=u-1}else if(n[e]>0){f=0;o=u-1}else{f=u-1;o=2}l=this.calcColor(n[e],e);if(l===null){return}if(t){l=this.calcHighlightColor(l,r)}return i.drawRect(a,f,this.barWidth-1,o-1,l,l)}});e.fn.sparkline.discrete=x=r(e.fn.sparkline._base,b,{type:"discrete",init:function(t,n,r,i,s){x._super.init.call(this,t,n,r,i,s);this.regionShapes={};this.values=n=e.map(n,Number);this.min=Math.min.apply(Math,n);this.max=Math.max.apply(Math,n);this.range=this.max-this.min;this.width=i=r.get("width")==="auto"?n.length*2:this.width;this.interval=Math.floor(i/n.length);this.itemWidth=i/n.length;if(r.get("chartRangeMin")!==undefined&&(r.get("chartRangeClip")||r.get("chartRangeMin")this.max)){this.max=r.get("chartRangeMax")}this.initTarget();if(this.target){this.lineHeight=r.get("lineHeight")==="auto"?Math.round(this.canvasHeight*.3):r.get("lineHeight")}},getRegion:function(e,t,n){return Math.floor(t/this.itemWidth)},getCurrentRegionFields:function(){var e=this.currentRegion;return{isNull:this.values[e]===undefined,value:this.values[e],offset:e}},renderRegion:function(e,t){var n=this.values,r=this.options,i=this.min,o=this.max,u=this.range,a=this.interval,f=this.target,l=this.canvasHeight,c=this.lineHeight,h=l-c,p,d,v,m;d=s(n[e],i,o);m=e*a;p=Math.round(h-h*((d-i)/u));v=r.get("thresholdColor")&&d0){for(u=n.length;u--;){o+=n[u]}}this.total=o;this.initTarget();this.radius=Math.floor(Math.min(this.canvasWidth,this.canvasHeight)/2)},getRegion:function(e,t,n){var r=this.target.getShapeAt(e,t,n);return r!==undefined&&this.shapes[r]!==undefined?this.shapes[r]:undefined},getCurrentRegionFields:function(){var e=this.currentRegion;return{isNull:this.values[e]===undefined,value:this.values[e],percent:this.values[e]/this.total*100,color:this.options.get("sliceColors")[e%this.options.get("sliceColors").length],offset:e}},changeHighlight:function(e){var t=this.currentRegion,n=this.renderSlice(t,e),r=this.valueShapes[t];delete this.shapes[r];this.target.replaceWithShape(r,n);this.valueShapes[t]=n.id;this.shapes[n.id]=t},renderSlice:function(e,t){var n=this.target,r=this.options,i=this.radius,s=r.get("borderWidth"),o=r.get("offset"),u=2*Math.PI,a=this.values,f=this.total,l=o?2*Math.PI*(o/360):0,c,h,p,d,v;d=a.length;for(p=0;p0){h=l+u*(a[p]/f)}if(e===p){v=r.get("sliceColors")[p%r.get("sliceColors").length];if(t){v=this.calcHighlightColor(v,r)}return n.drawPieSlice(i,i,i-s,c,h,undefined,v)}l=h}},render:function(){var e=this.target,t=this.values,n=this.options,r=this.radius,i=n.get("borderWidth"),s,o;if(!N._super.render.call(this)){return}if(i){e.drawCircle(r,r,Math.floor(r-i/2),n.get("borderColor"),undefined,i).append()}for(o=t.length;o--;){if(t[o]){s=this.renderSlice(o).append();this.valueShapes[o]=s.id;this.shapes[s.id]=o}}e.render()}});e.fn.sparkline.box=C=r(e.fn.sparkline._base,{type:"box",init:function(t,n,r,i,s){C._super.init.call(this,t,n,r,i,s);this.values=e.map(n,Number);this.width=r.get("width")==="auto"?"4.0em":i;this.initTarget();if(!this.values.length){this.disabled=1}},getRegion:function(){return 1},getCurrentRegionFields:function(){var e=[{field:"lq",value:this.quartiles[0]},{field:"med",value:this.quartiles[1]},{field:"uq",value:this.quartiles[2]}];if(this.loutlier!==undefined){e.push({field:"lo",value:this.loutlier})}if(this.routlier!==undefined){e.push({field:"ro",value:this.routlier})}if(this.lwhisker!==undefined){e.push({field:"lw",value:this.lwhisker})}if(this.rwhisker!==undefined){e.push({field:"rw",value:this.rwhisker})}return e},render:function(){var e=this.target,t=this.values,n=t.length,r=this.options,i=this.canvasWidth,s=this.canvasHeight,u=r.get("chartRangeMin")===undefined?Math.min.apply(Math,t):r.get("chartRangeMin"),a=r.get("chartRangeMax")===undefined?Math.max.apply(Math,t):r.get("chartRangeMax"),f=0,l,c,h,p,d,v,m,g,y,b,w;if(!C._super.render.call(this)){return}if(r.get("raw")){if(r.get("showOutliers")&&t.length>5){c=t[0];l=t[1];p=t[2];d=t[3];v=t[4];m=t[5];g=t[6]}else{l=t[0];p=t[1];d=t[2];v=t[3];m=t[4]}}else{t.sort(function(e,t){return e-t});p=o(t,1);d=o(t,2);v=o(t,3);h=v-p;if(r.get("showOutliers")){l=m=undefined;for(y=0;yp-h*r.get("outlierIQR")){l=t[y]}if(t[y]m){e.drawCircle((g-u)*w+f,s/2,r.get("spotRadius"),r.get("outlierLineColor"),r.get("outlierFillColor")).append()}}e.drawRect(Math.round((p-u)*w+f),Math.round(s*.1),Math.round((v-p)*w),Math.round(s*.8),r.get("boxLineColor"),r.get("boxFillColor")).append();e.drawLine(Math.round((l-u)*w+f),Math.round(s/2),Math.round((p-u)*w+f),Math.round(s/2),r.get("lineColor")).append();e.drawLine(Math.round((l-u)*w+f),Math.round(s/4),Math.round((l-u)*w+f),Math.round(s-s/4),r.get("whiskerColor")).append();e.drawLine(Math.round((m-u)*w+f),Math.round(s/2),Math.round((v-u)*w+f),Math.round(s/2),r.get("lineColor")).append();e.drawLine(Math.round((m-u)*w+f),Math.round(s/4),Math.round((m-u)*w+f),Math.round(s-s/4),r.get("whiskerColor")).append();e.drawLine(Math.round((d-u)*w+f),Math.round(s*.1),Math.round((d-u)*w+f),Math.round(s*.9),r.get("medianColor")).append();if(r.get("target")){b=Math.ceil(r.get("spotRadius"));e.drawLine(Math.round((r.get("target")-u)*w+f),Math.round(s/2-b),Math.round((r.get("target")-u)*w+f),Math.round(s/2+b),r.get("targetColor")).append();e.drawLine(Math.round((r.get("target")-u)*w+f-b),Math.round(s/2),Math.round((r.get("target")-u)*w+f+b),Math.round(s/2),r.get("targetColor")).append()}e.render()}});(function(){if(document.namespaces&&!document.namespaces.v){e.fn.sparkline.hasVML=true;document.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML")}else{e.fn.sparkline.hasVML=false}var t=document.createElement("canvas");e.fn.sparkline.hasCanvas=!!(t.getContext&&t.getContext("2d"))})();A=r({init:function(e,t,n,r){this.target=e;this.id=t;this.type=n;this.args=r},append:function(){this.target.appendShape(this);return this}});O=r({_pxregex:/(\d+)(px)?\s*$/i,init:function(t,n,r){if(!t){return}this.width=t;this.height=n;this.target=r;this.lastShapeId=null;if(r[0]){r=r[0]}e.data(r,"_jqs_vcanvas",this)},drawLine:function(e,t,n,r,i,s){return this.drawShape([[e,t],[n,r]],i,s)},drawShape:function(e,t,n,r){return this._genShape("Shape",[e,t,n,r])},drawCircle:function(e,t,n,r,i,s){return this._genShape("Circle",[e,t,n,r,i,s])},drawPieSlice:function(e,t,n,r,i,s,o){return this._genShape("PieSlice",[e,t,n,r,i,s,o])},drawRect:function(e,t,n,r,i,s){return this._genShape("Rect",[e,t,n,r,i,s])},getElement:function(){return this.canvas},getLastShapeId:function(){return this.lastShapeId},reset:function(){alert("reset not implemented")},_insert:function(t,n){e(n).html(t)},_calculatePixelDims:function(t,n,r){var i;i=this._pxregex.exec(n);if(i){this.pixelHeight=i[1]}else{this.pixelHeight=e(r).height()}i=this._pxregex.exec(t);if(i){this.pixelWidth=i[1]}else{this.pixelWidth=e(r).width()}},_genShape:function(e,t){var n=P++;t.unshift(n);return new A(this,n,e,t)},appendShape:function(e){alert("appendShape not implemented")},replaceWithShape:function(e,t){alert("replaceWithShape not implemented")},insertAfterShape:function(e,t){alert("insertAfterShape not implemented")},removeShapeId:function(e){alert("removeShapeId not implemented")},getShapeAt:function(e,t,n){alert("getShapeAt not implemented")},render:function(){alert("render not implemented")}});M=r(O,{init:function(t,n,r,i){M._super.init.call(this,t,n,r);this.canvas=document.createElement("canvas");if(r[0]){r=r[0]}e.data(r,"_jqs_vcanvas",this);e(this.canvas).css({display:"inline-block",width:t,height:n,verticalAlign:"top"});this._insert(this.canvas,r);this._calculatePixelDims(t,n,this.canvas);this.canvas.width=this.pixelWidth;this.canvas.height=this.pixelHeight;this.interact=i;this.shapes={};this.shapeseq=[];this.currentTargetShapeId=undefined;e(this.canvas).css({width:this.pixelWidth,height:this.pixelHeight})},_getContext:function(e,t,n){var r=this.canvas.getContext("2d");if(e!==undefined){r.strokeStyle=e}r.lineWidth=n===undefined?1:n;if(t!==undefined){r.fillStyle=t}return r},reset:function(){var e=this._getContext();e.clearRect(0,0,this.pixelWidth,this.pixelHeight);this.shapes={};this.shapeseq=[];this.currentTargetShapeId=undefined},_drawShape:function(e,t,n,r,i){var s=this._getContext(n,r,i),o,u;s.beginPath();s.moveTo(t[0][0]+.5,t[0][1]+.5);for(o=1,u=t.length;o';this.canvas.insertAdjacentHTML("beforeEnd",i);this.group=e(this.canvas).children()[0];this.rendered=false;this.prerender=""},_drawShape:function(e,t,n,r,i){var s=[],o,u,a,f,l,c,h;for(h=0,c=t.length;h'+" ";return l},_drawCircle:function(e,t,n,r,i,s,o){var u,a,f;t-=r;n-=r;u=i===undefined?' stroked="false" ':' strokeWeight="'+o+'px" strokeColor="'+i+'" ';a=s===undefined?' filled="false"':' fillColor="'+s+'" filled="true" ';f="';return f},_drawPieSlice:function(e,t,n,r,i,s,o,u){var a,f,l,c,h,p,d,v;if(i===s){return""}if(s-i===2*Math.PI){i=0;s=2*Math.PI}f=t+Math.round(Math.cos(i)*r);l=n+Math.round(Math.sin(i)*r);c=t+Math.round(Math.cos(s)*r);h=n+Math.round(Math.sin(s)*r);if(f===c&&l===h){if(s-i'+" ";return v},_drawRect:function(e,t,n,r,i,s,o){return this._drawShape(e,[[t,n],[t,n+i],[t+r,n+i],[t+r,n],[t,n]],s,o)},reset:function(){this.group.innerHTML=""},appendShape:function(e){var t=this["_draw"+e.type].apply(this,e.args);if(this.rendered){this.group.insertAdjacentHTML("beforeEnd",t)}else{this.prerender+=t}this.lastShapeId=e.id;return e.id},replaceWithShape:function(t,n){var r=e("#jqsshape"+t),i=this["_draw"+n.type].apply(this,n.args);r[0].outerHTML=i},replaceWithShapes:function(t,n){var r=e("#jqsshape"+t[0]),i="",s=n.length,o;for(o=0;o