(function(F){F.fn.simpledraw=function(I,H,J){if(J&&this[0].vcanvas){return this[0].vcanvas;}if(I==undefined){I=F(this).innerWidth();}if(H==undefined){H=F(this).innerHeight();}if(F.browser.hasCanvas){return new C(I,H,this);}else{if(F.browser.msie){return new D(I,H,this);}else{return false;}}};var G=[];F.fn.sparkline=function(I,H){var H=F.extend({type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:false},H?H:{});return this.each(function(){var J=function(){var K=(I=="html"||I==undefined)?F(this).text().split(","):I;
var M=H.width=="auto"?K.length*H.defaultPixelsPerValue:H.width;if(H.height=="auto"){if(!H.composite||!this.vcanvas){var L=document.createElement("span");L.innerHTML="a";F(this).html(L);height=F(L).innerHeight();F(L).remove();}}else{height=H.height;}F.fn.sparkline[H.type].call(this,K,H,M,height);};if((F(this).html()&&F(this).is(":hidden"))||(F.fn.jquery<"1.3.0"&&F(this).parents().is(":hidden"))){G.push([this,J]);}else{J.call(this);}});};F.sparkline_display_visible=function(){for(var H=G.length-1;H>=0;
H--){var I=G[H][0];if(F(I).is(":visible")&&!F(I).parents().is(":hidden")){G[H][1].call(I);G.splice(H,1);}}};F.fn.sparkline.line=function(K,M,e,b){var M=F.extend({spotColor:"#f80",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:undefined,normalRangeMax:undefined,normalRangeColor:"#ccc",chartRangeMin:undefined,chartRangeMax:undefined},M?M:{});var U=[],T=[],Y=[];for(h=0;h<K.length;h++){var Z=K[h];var c=typeof (K[h])=="string";var Q=typeof (K[h])=="object"&&K[h] instanceof Array;
var j=c&&K[h].split(":");if(c&&j.length==2){U.push(Number(j[0]));T.push(Number(j[1]));Y.push(Number(j[1]));}else{if(Q){U.push(K[h][0]);T.push(K[h][1]);Y.push(K[h][1]);}else{U.push(h);if(K[h]===null||K[h]=="null"){T.push(null);}else{T.push(Number(K[h]));Y.push(Number(K[h]));}}}}if(M.xvalues){U=M.xvalues;}var L=Math.max.apply(Math,Y);var V=L;var N=Math.min.apply(Math,Y);var R=N;var O=Math.max.apply(Math,U);var S=O;var P=Math.min.apply(Math,U);var J=P;if(M.normalRangeMin!=undefined){if(M.normalRangeMin<N){N=M.normalRangeMin;
}if(M.normalRangeMax>L){L=M.normalRangeMax;}}if(M.chartRangeMin!=undefined&&M.chartRangeMin<N){N=M.chartRangeMin;}if(M.chartRangeMax!=undefined&&M.chartRangeMax>L){L=M.chartRangeMax;}var I=O-P==0?1:O-P;var H=L-N==0?1:L-N;var m=T.length-1;if(m<1){this.innerHTML="";return ;}var n=F(this).simpledraw(e,b,M.composite);if(n){var l=n.pixel_width;var g=n.pixel_height;var o=0;var k=0;if(M.spotRadius&&(l<(M.spotRadius*4)||g<(M.spotRadius*4))){M.spotRadius=0;}if(M.spotRadius){if(M.minSpotColor||(M.spotColor&&T[m]==N)){g-=Math.ceil(M.spotRadius);
}if(M.maxSpotColor||(M.spotColor&&T[m]==L)){g-=Math.ceil(M.spotRadius);o+=Math.ceil(M.spotRadius);}if(M.minSpotColor||M.maxSpotColor&&(T[0]==N||T[0]==L)){k+=Math.ceil(M.spotRadius);l-=Math.ceil(M.spotRadius);}if(M.spotColor||(M.minSpotColor||M.maxSpotColor&&(T[m]==N||T[m]==L))){l-=Math.ceil(M.spotRadius);}}g--;if(M.normalRangeMin!=undefined){var a=o+Math.round(g-(g*((M.normalRangeMax-N)/H)));var b=Math.round((g*(M.normalRangeMax-M.normalRangeMin))/H);n.drawRect(k,a,l,b,undefined,M.normalRangeColor);
}var d=[];var f=[d];for(var h=0;h<T.length;h++){var X=U[h],W=T[h];if(W===null){if(h){if(T[h-1]!==null){d=[];f.push(d);}}}else{if(!d.length){d.push([k+Math.round((X-P)*(l/I)),o+g]);}d.push([k+Math.round((X-P)*(l/I)),o+Math.round(g-(g*((W-N)/H)))]);}}for(var h=0;h<f.length;h++){d=f[h];if(!d.length){continue;}if(M.fillColor){d.push([d[d.length-1][0],o+g-1]);n.drawShape(d,undefined,M.fillColor);d.pop();}if(d.length>2){d[0]=[d[0][0],d[1][1]];}n.drawShape(d,M.lineColor,undefined,M.lineWidth);}if(M.spotRadius&&M.spotColor){n.drawCircle(k+l,o+Math.round(g-(g*((T[m]-N)/H))),M.spotRadius,undefined,M.spotColor);
}if(L!=R){if(M.spotRadius&&M.minSpotColor){var X=U[T.indexOf(R)];n.drawCircle(k+Math.round((X-P)*(l/I)),o+Math.round(g-(g*((R-N)/H))),M.spotRadius,undefined,M.minSpotColor);}if(M.spotRadius&&M.maxSpotColor){var X=U[T.indexOf(V)];n.drawCircle(k+Math.round((X-P)*(l/I)),o+Math.round(g-(g*((V-N)/H))),M.spotRadius,undefined,M.maxSpotColor);}}}else{this.innerHTML="";}};F.fn.sparkline.bar=function(V,X,J,W){var X=F.extend({type:"bar",barColor:"#00f",negBarColor:"#f44",zeroColor:undefined,zeroAxis:undefined,barWidth:4,barSpacing:1,chartRangeMax:undefined,chartRangeMin:undefined,colorMap:{}},X?X:{});
var J=(V.length*X.barWidth)+((V.length-1)*X.barSpacing);var R=[];for(var N=0;N<V.length;N++){if(V[N]=="null"||V[N]===null){V[N]=null;}else{V[N]=Number(V[N]);R.push(Number(V[N]));}}var T=Math.max.apply(Math,R);var M=Math.min.apply(Math,R);if(X.chartRangeMin!=undefined&&X.chartRangeMin<M){M=X.chartRangeMin;}if(X.chartRangeMax!=undefined&&X.chartRangeMax>T){T=X.chartRangeMax;}if(X.zeroAxis==undefined){X.zeroAxis=M<0;}var O=T-M==0?1:T-M;var Q=F(this).simpledraw(J,W);if(Q){var P=Q.pixel_width;var H=Q.pixel_height;
var I=M<0&&X.zeroAxis?H-Math.round(H*(Math.abs(M)/O))-1:H-1;for(var N=0;N<V.length;N++){var U=N*(X.barWidth+X.barSpacing);var K=V[N];if(K===null){continue;}var L=(K<0)?X.negBarColor:X.barColor;if(X.zeroAxis&&M<0){var W=Math.round(H*((Math.abs(K)/O)))+1;var S=(K<0)?I:I-W;}else{var W=Math.round(H*((K-M)/O))+1;var S=H-W;}if(K==0&&X.zeroColor!=undefined){L=X.zeroColor;}if(X.colorMap[K]){L=X.colorMap[K];}Q.drawRect(U,S,X.barWidth-1,W-1,L,L);}}else{this.innerHTML="";}};F.fn.sparkline.tristate=function(Q,S,I,R){Q=F.map(Q,Number);
var S=F.extend({barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{}},S);var I=(Q.length*S.barWidth)+((Q.length-1)*S.barSpacing);var M=F(this).simpledraw(I,R);if(M){var N=M.pixel_width;var H=M.pixel_height;var L=Math.round(H/2);for(var K=0;K<Q.length;K++){var P=K*(S.barWidth+S.barSpacing);if(Q[K]<0){var O=L;var R=L-1;var J=S.negBarColor;}else{if(Q[K]>0){var O=0;var R=L-1;var J=S.posBarColor;}else{var O=L-1;var R=2;var J=S.zeroBarColor;}}if(S.colorMap[Q[K]]){J=S.colorMap[Q[K]];
}M.drawRect(P,O,S.barWidth-1,R-1,J,J);}}else{this.innerHTML="";}};F.fn.sparkline.discrete=function(V,X,I,W){V=F.map(V,Number);var X=F.extend({lineHeight:"auto",thresholdColor:undefined,thresholdValue:0,chartRangeMax:undefined,chartRangeMin:undefined},X);I=X.width=="auto"?V.length*2:I;var K=Math.floor(I/V.length);var Q=F(this).simpledraw(I,W);if(Q){var R=Q.pixel_width;var H=Q.pixel_height;var U=X.lineHeight=="auto"?Math.round(H*0.3):X.lineHeight;var P=H-U;var M=Math.min.apply(Math,V);var S=Math.max.apply(Math,V);
if(X.chartRangeMin!=undefined&&X.chartRangeMin<M){M=X.chartRangeMin;}if(X.chartRangeMax!=undefined&&X.chartRangeMax>S){S=X.chartRangeMax;}var O=S-M;for(var N=0;N<V.length;N++){var L=V[N];var T=(N*K);var J=Math.round(P-P*((L-M)/O));Q.drawLine(T,J,T,J+U,(X.thresholdColor&&L<X.thresholdValue)?X.thresholdColor:X.lineColor);}}else{this.innerHTML="";}};F.fn.sparkline.bullet=function(J,L,S,Q){J=F.map(J,Number);var L=F.extend({targetColor:"red",targetWidth:3,performanceColor:"blue",rangeColors:["#D3DAFE","#A8B6FF","#7F94FF"],base:undefined},L);
S=L.width=="auto"?"4.0em":S;var Y=F(this).simpledraw(S,Q);if(Y&&J.length>1){var X=Y.pixel_width-Math.ceil(L.targetWidth/2);var U=Y.pixel_height;var T=Math.min.apply(Math,J);var V=Math.max.apply(Math,J);if(L.base==undefined){var T=T<0?T:0;}else{T=L.base;}var O=V-T;for(i=2;i<J.length;i++){var M=parseInt(J[i]);var I=Math.round(X*((M-T)/O));Y.drawRect(0,0,I-1,U-1,L.rangeColors[i-2],L.rangeColors[i-2]);}var R=parseInt(J[1]);var H=Math.round(X*((R-T)/O));Y.drawRect(0,Math.round(U*0.3),H-1,Math.round(U*0.4)-1,L.performanceColor,L.performanceColor);
var P=parseInt(J[0]);var N=Math.round(X*((P-T)/O)-(L.targetWidth/2));var K=Math.round(U*0.1);var W=U-(K*2);Y.drawRect(N,K,L.targetWidth-1,W-1,L.targetColor,L.targetColor);}else{this.innerHTML="";}};F.fn.sparkline.pie=function(S,U,K,T){S=F.map(S,Number);var U=F.extend({sliceColors:["#f00","#0f0","#00f"]},U);K=U.width=="auto"?T:K;var P=F(this).simpledraw(K,T);if(P&&S.length>1){var Q=P.pixel_width;var H=P.pixel_height;var O=Math.floor(Math.min(Q,H)/2);var R=0;for(var M=0;M<S.length;M++){R+=S[M];}var N=0;
if(U.offset){N+=(2*Math.PI)*(U.offset/360);}var I=2*Math.PI;for(var M=0;M<S.length;M++){var J=N;var L=N;if(R>0){L=N+(I*(S[M]/R));}P.drawPieSlice(O,O,O,J,L,undefined,U.sliceColors[M%U.sliceColors.length]);N=L;}}};function A(I,J){if(J==2){var H=Math.floor(I.length/2);return I.length%2?I[H]:(I[H]+I[H+1])/2;}else{var K=Math.floor(I.length/4);return I.length%2?(I[K*J]+I[K*J+1])/2:I[K*J];}}F.fn.sparkline.box=function(I,K,S,R){I=F.map(I,Number);var K=F.extend({raw:false,boxLineColor:"black",boxFillColor:"#cdf",whiskerColor:"black",outlierLineColor:"#333",outlierFillColor:"white",medianColor:"red",showOutliers:true,outlierIQR:1.5,spotRadius:1.5,target:undefined,targetColor:"#4a2",chartRangeMax:undefined,chartRangeMin:undefined},K);
S=K.width=="auto"?"4.0em":S;minvalue=K.chartRangeMin==undefined?Math.min.apply(Math,I):K.chartRangeMin;maxvalue=K.chartRangeMax==undefined?Math.max.apply(Math,I):K.chartRangeMax;var Z=F(this).simpledraw(S,R);if(Z&&I.length>1){var W=Z.pixel_width;var T=Z.pixel_height;if(K.raw){if(K.showOutliers&&I.length>5){var X=I[0],P=I[1],O=I[2],N=I[3],M=I[4],H=I[5],L=I[6];}else{var P=I[0],O=I[1],N=I[2],M=I[3],H=I[4];}}else{I.sort(function(d,c){return d-c;});var O=A(I,1);var N=A(I,2);var M=A(I,3);var J=M-O;if(K.showOutliers){var P=undefined,H=undefined;
for(var U=0;U<I.length;U++){if(P==undefined&&I[U]>O-(J*K.outlierIQR)){P=I[U];}if(I[U]<M+(J*K.outlierIQR)){H=I[U];}}var X=I[0];var L=I[I.length-1];}else{var P=I[0];var H=I[I.length-1];}}var Y=W/(maxvalue-minvalue+1);var V=0;if(K.showOutliers){V=Math.ceil(K.spotRadius);W-=2*Math.ceil(K.spotRadius);var Y=W/(maxvalue-minvalue+1);if(X<P){Z.drawCircle((X-minvalue)*Y+V,T/2,K.spotRadius,K.outlierLineColor,K.outlierFillColor);}if(L>H){Z.drawCircle((L-minvalue)*Y+V,T/2,K.spotRadius,K.outlierLineColor,K.outlierFillColor);
}}Z.drawRect(Math.round((O-minvalue)*Y+V),Math.round(T*0.1),Math.round((M-O)*Y),Math.round(T*0.8),K.boxLineColor,K.boxFillColor);Z.drawLine(Math.round((P-minvalue)*Y+V),Math.round(T/2),Math.round((O-minvalue)*Y+V),Math.round(T/2),K.lineColor);Z.drawLine(Math.round((P-minvalue)*Y+V),Math.round(T/4),Math.round((P-minvalue)*Y+V),Math.round(T-T/4),K.whiskerColor);Z.drawLine(Math.round((H-minvalue)*Y+V),Math.round(T/2),Math.round((M-minvalue)*Y+V),Math.round(T/2),K.lineColor);Z.drawLine(Math.round((H-minvalue)*Y+V),Math.round(T/4),Math.round((H-minvalue)*Y+V),Math.round(T-T/4),K.whiskerColor);
Z.drawLine(Math.round((N-minvalue)*Y+V),Math.round(T*0.1),Math.round((N-minvalue)*Y+V),Math.round(T*0.9),K.medianColor);if(K.target){var Q=Math.ceil(K.spotRadius);Z.drawLine(Math.round((K.target-minvalue)*Y+V),Math.round((T/2)-Q),Math.round((K.target-minvalue)*Y+V),Math.round((T/2)+Q),K.targetColor);Z.drawLine(Math.round((K.target-minvalue)*Y+V-Q),Math.round(T/2),Math.round((K.target-minvalue)*Y+V+Q),Math.round(T/2),K.targetColor);}}else{this.innerHTML="";}};if(!Array.prototype.indexOf){Array.prototype.indexOf=function(I){for(var H=0;
H<this.length;H++){if(this[H]==I){return H;}}return -1;};}if(F.browser.msie&&!document.namespaces.v){document.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML");}if(F.browser.hasCanvas==undefined){var B=document.createElement("canvas");F.browser.hasCanvas=B.getContext!=undefined;}var E=function(I,H,J){};E.prototype={init:function(I,H,J){this.width=I;this.height=H;this.target=J;if(J[0]){J=J[0];}J.vcanvas=this;},drawShape:function(J,I,K,H){alert("drawShape not implemented");},drawLine:function(J,L,I,K,M,H){return this.drawShape([[J,L],[I,K]],M,H);
},drawCircle:function(I,L,H,J,K){alert("drawCircle not implemented");},drawPieSlice:function(I,N,H,K,J,L,M){alert("drawPieSlice not implemented");},drawRect:function(I,M,J,H,K,L){alert("drawRect not implemented");},getElement:function(){return this.canvas;},_insert:function(H,I){F(I).html(H);}};var C=function(I,H,J){return this.init(I,H,J);};C.prototype=F.extend(new E,{_super:E.prototype,init:function(I,H,J){this._super.init(I,H,J);this.canvas=document.createElement("canvas");if(J[0]){J=J[0];}J.vcanvas=this;
F(this.canvas).css({display:"inline-block",width:I,height:H,verticalAlign:"top"});this._insert(this.canvas,J);this.pixel_height=F(this.canvas).height();this.pixel_width=F(this.canvas).width();this.canvas.width=this.pixel_width;this.canvas.height=this.pixel_height;F(this.canvas).css({width:this.pixel_width,height:this.pixel_height});},_getContext:function(J,K,H){var I=this.canvas.getContext("2d");if(J!=undefined){I.strokeStyle=J;}I.lineWidth=H==undefined?1:H;if(K!=undefined){I.fillStyle=K;}return I;
},drawShape:function(L,K,M,H){var J=this._getContext(K,M,H);J.beginPath();J.moveTo(L[0][0]+0.5,L[0][1]+0.5);for(var I=1;I<L.length;I++){J.lineTo(L[I][0]+0.5,L[I][1]+0.5);}if(K!=undefined){J.stroke();}if(M!=undefined){J.fill();}},drawCircle:function(I,M,H,K,L){var J=this._getContext(K,L);J.beginPath();J.arc(I,M,H,0,2*Math.PI,false);if(K!=undefined){J.stroke();}if(L!=undefined){J.fill();}},drawPieSlice:function(I,O,H,L,J,M,N){var K=this._getContext(M,N);K.beginPath();K.moveTo(I,O);K.arc(I,O,H,L,J,false);
K.lineTo(I,O);K.closePath();if(M!=undefined){K.stroke();}if(N){K.fill();}},drawRect:function(I,M,J,H,K,L){return this.drawShape([[I,M],[I+J,M],[I+J,M+H],[I,M+H],[I,M]],K,L);}});var D=function(I,H,J){return this.init(I,H,J);};D.prototype=F.extend(new E,{_super:E.prototype,init:function(I,H,K){this._super.init(I,H,K);if(K[0]){K=K[0];}K.vcanvas=this;this.canvas=document.createElement("span");F(this.canvas).css({display:"inline-block",position:"relative",overflow:"hidden",width:I,height:H,margin:"0px",padding:"0px",verticalAlign:"top"});
this._insert(this.canvas,K);this.pixel_height=F(this.canvas).height();this.pixel_width=F(this.canvas).width();this.canvas.width=this.pixel_width;this.canvas.height=this.pixel_height;var J='<v:group coordorigin="0 0" coordsize="'+this.pixel_width+" "+this.pixel_height+'" style="position:absolute;top:0;left:0;width:'+this.pixel_width+"px;height="+this.pixel_height+'px;"></v:group>';this.canvas.insertAdjacentHTML("beforeEnd",J);this.group=F(this.canvas).children()[0];},drawShape:function(R,M,H,J){var N=[];
for(var I=0;I<R.length;I++){N[I]=""+(R[I][0])+","+(R[I][1]);}var L=N.splice(0,1);J=J==undefined?1:J;var Q=M==undefined?' stroked="false" ':' strokeWeight="'+J+'" strokeColor="'+M+'" ';var P=H==undefined?' filled="false"':' fillColor="'+H+'" filled="true" ';var K=N[0]==N[N.length-1]?"x ":"";var O='<v:shape coordorigin="0 0" coordsize="'+this.pixel_width+" "+this.pixel_height+'" '+Q+P+' style="position:absolute;left:0px;top:0px;height:'+this.pixel_height+"px;width:"+this.pixel_width+'px;padding:0px;margin:0px;"  path="m '+L+" l "+N.join(", ")+" "+K+'e"> </v:shape>';
this.group.insertAdjacentHTML("beforeEnd",O);},drawCircle:function(I,O,H,M,N){I-=H+1;O-=H+1;var L=M==undefined?' stroked="false" ':' strokeWeight="1" strokeColor="'+M+'" ';var K=N==undefined?' filled="false"':' fillColor="'+N+'" filled="true" ';var J="<v:oval "+L+K+' style="position:absolute;top:'+O+"px; left:"+I+"px; width:"+(H*2)+"px; height:"+(H*2)+'px"></v:oval>';this.group.insertAdjacentHTML("beforeEnd",J);},drawPieSlice:function(S,Q,N,O,K,R,J){if(O==K){return ;}if((K-O)==(2*Math.PI)){O=0;K=(2*Math.PI);
}var I=S+Math.round(Math.cos(O)*N);var H=Q+Math.round(Math.sin(O)*N);var M=S+Math.round(Math.cos(K)*N);var L=Q+Math.round(Math.sin(K)*N);var P=[S-N,Q-N,S+N,Q+N,I,H,M,L];var V=R==undefined?' stroked="false" ':' strokeWeight="1" strokeColor="'+R+'" ';var U=J==undefined?' filled="false"':' fillColor="'+J+'" filled="true" ';var T='<v:shape coordorigin="0 0" coordsize="'+this.pixel_width+" "+this.pixel_height+'" '+V+U+' style="position:absolute;left:0px;top:0px;height:'+this.pixel_height+"px;width:"+this.pixel_width+'px;padding:0px;margin:0px;"  path="m '+S+","+Q+" wa "+P.join(", ")+' x e"> </v:shape>';
this.group.insertAdjacentHTML("beforeEnd",T);},drawRect:function(I,M,J,H,K,L){return this.drawShape([[I,M],[I,M+H],[I+J,M+H],[I+J,M],[I,M]],K,L);}});})(jQuery);
