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