File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
(function(){var t,i,e,s,o=[].slice,n=function(t,i){return function(){return t.apply(i,arguments)}},r={}.hasOwnProperty,h=function(t,i){function e(){this.constructor=t}for(var s in i)r.call(i,s)&&(t[s]=i[s]);return e.prototype=i.prototype,t.prototype=new e,t.__super__=i.prototype,t},a=[].indexOf||function(t){for(var i=0,e=this.length;e>i;i++)if(i in this&&this[i]===t)return i;return-1};i=window.Morris={},t=jQuery,i.EventEmitter=function(){function t(){}return t.prototype.on=function(t,i){return null==this.handlers&&(this.handlers={}),null==this.handlers[t]&&(this.handlers[t]=[]),this.handlers[t].push(i),this},t.prototype.fire=function(){var t,i,e,s,n,r,h;if(e=arguments[0],t=2<=arguments.length?o.call(arguments,1):[],null!=this.handlers&&null!=this.handlers[e]){for(r=this.handlers[e],h=[],s=0,n=r.length;n>s;s++)i=r[s],h.push(i.apply(null,t));return h}},t}(),i.commas=function(t){var i,e,s,o;return null!=t?(s=0>t?"-":"",i=Math.abs(t),e=Math.floor(i).toFixed(0),s+=e.replace(/(?=(?:\d{3})+$)(?!^)/g,","),o=i.toString(),o.length>e.length&&(s+=o.slice(e.length)),s):"-"},i.pad2=function(t){return(10>t?"0":"")+t},i.Grid=function(e){function s(i){this.hasToShow=n(this.hasToShow,this),this.resizeHandler=n(this.resizeHandler,this);var e=this;if("string"==typeof i.element?this.el=t(document.getElementById(i.element)):this.el=t(i.element),null==this.el||0===this.el.length)throw new Error("Graph container element not found");"static"===this.el.css("position")&&this.el.css("position","relative"),this.options=t.extend({},this.gridDefaults,this.defaults||{},i),"string"==typeof this.options.units&&(this.options.postUnits=i.units),this.raphael=new Raphael(this.el[0]),this.elementWidth=null,this.elementHeight=null,this.dirty=!1,this.selectFrom=null,this.init&&this.init(),this.setData(this.options.data),this.el.bind("mousemove",function(t){var i,s,o,n,r;return s=e.el.offset(),r=t.pageX-s.left,e.selectFrom?(i=e.data[e.hitTest(Math.min(r,e.selectFrom))]._x,o=e.data[e.hitTest(Math.max(r,e.selectFrom))]._x,n=o-i,e.selectionRect.attr({x:i,width:n})):e.fire("hovermove",r,t.pageY-s.top)}),this.el.bind("mouseleave",function(t){return e.selectFrom&&(e.selectionRect.hide(),e.selectFrom=null),e.fire("hoverout")}),this.el.bind("touchstart touchmove touchend",function(t){var i,s;return s=t.originalEvent.touches[0]||t.originalEvent.changedTouches[0],i=e.el.offset(),e.fire("hovermove",s.pageX-i.left,s.pageY-i.top)}),this.el.bind("click",function(t){var i;return i=e.el.offset(),e.fire("gridclick",t.pageX-i.left,t.pageY-i.top)}),this.options.rangeSelect&&(this.selectionRect=this.raphael.rect(0,0,0,this.el.innerHeight()).attr({fill:this.options.rangeSelectColor,stroke:!1}).toBack().hide(),this.el.bind("mousedown",function(t){var i;return i=e.el.offset(),e.startRange(t.pageX-i.left)}),this.el.bind("mouseup",function(t){var i;return i=e.el.offset(),e.endRange(t.pageX-i.left),e.fire("hovermove",t.pageX-i.left,t.pageY-i.top)})),this.options.resize&&t(window).bind("resize.morris",function(t){return null!=e.timeoutId&&window.clearTimeout(e.timeoutId),e.timeoutId=window.setTimeout(e.resizeHandler,100)}),this.el.css("-webkit-tap-highlight-color","rgba(0,0,0,0)"),this.postInit&&this.postInit()}return h(s,e),s.prototype.gridDefaults={dateFormat:null,axes:!0,grid:!0,gridLineColor:"#aaa",gridStrokeWidth:.5,gridTextColor:"#888",gridTextSize:12,gridTextFamily:"sans-serif",gridTextWeight:"normal",hideHover:!1,yLabelFormat:null,xLabelAngle:0,numLines:5,padding:25,parseTime:!0,postUnits:"",preUnits:"",ymax:"auto",ymin:"auto 0",goals:[],goalStrokeWidth:1,goalLineColors:["#666633","#999966","#cc6666","#663333"],events:[],eventStrokeWidth:1,eventLineColors:["#005a04","#ccffbb","#3a5f0b","#005502"],rangeSelect:null,rangeSelectColor:"#eef",resize:!1},s.prototype.setData=function(e,s){var o,n,r,h,a,l,p,u,d,c,f,g,y,m,x,v,w,b,M,S,L;if(null==s&&(s=!0),this.options.data=e,null==e||0===e.length)return this.data=[],this.raphael.clear(),void(null!=this.hover&&this.hover.hide());if(x=this.cumulative?0:null,v=this.cumulative?0:null,this.options.goals.length>0&&(p=Math.min.apply(Math,this.options.goals),l=Math.max.apply(Math,this.options.goals),v=null!=v?Math.min(v,p):p,x=null!=x?Math.max(x,l):l),this.data=function(){var t,s,o;for(o=[],a=t=0,s=e.length;s>t;a=++t)d=e[a],u={src:d},u.label=d[this.options.xkey],this.options.parseTime?(u.x=i.parseDate(u.label),this.options.dateFormat?u.label=this.options.dateFormat(u.x):"number"==typeof u.label&&(u.label=new Date(u.label).toString())):(u.x=a,this.options.xLabelFormat&&(u.label=this.options.xLabelFormat(u))),g=0,u.y=function(){var t,i,e,s;for(e=this.options.ykeys,s=[],h=t=0,i=e.length;i>t;h=++t)m=e[h],w=d[m],"string"==typeof w&&(w=parseFloat(w)),null!=w&&"number"!=typeof w&&(w=null),null!=w&&this.hasToShow(h)&&(this.cumulative?g+=w:null!=x?(x=Math.max(w,x),v=Math.min(w,v)):x=v=w),this.cumulative&&null!=g&&(x=Math.max(g,x),v=Math.min(g,v)),s.push(w);return s}.call(this),o.push(u);return o}.call(this),this.options.parseTime&&(this.data=this.data.sort(function(t,i){return(t.x>i.x)-(i.x>t.x)})),this.xmin=this.data[0].x,this.xmax=this.data[this.data.length-1].x,this.events=[],this.options.events.length>0){if(this.options.parseTime)for(S=this.options.events,b=0,M=S.length;M>b;b++)o=S[b],o instanceof Array?(r=o[0],f=o[1],this.events.push([i.parseDate(r),i.parseDate(f)])):this.events.push(i.parseDate(o));else this.events=this.options.events;n=t.map(this.events,function(t){return t}),this.xmax=Math.max(this.xmax,Math.max.apply(Math,n)),this.xmin=Math.min(this.xmin,Math.min.apply(Math,n))}return this.xmin===this.xmax&&(this.xmin-=1,this.xmax+=1),this.ymin=this.yboundary("min",v),this.ymax=this.yboundary("max",x),this.ymin===this.ymax&&(v&&(this.ymin-=1),this.ymax+=1),((L=this.options.axes)===!0||"both"===L||"y"===L||this.options.grid===!0)&&(this.options.ymax===this.gridDefaults.ymax&&this.options.ymin===this.gridDefaults.ymin?(this.grid=this.autoGridLines(this.ymin,this.ymax,this.options.numLines),this.ymin=Math.min(this.ymin,this.grid[0]),this.ymax=Math.max(this.ymax,this.grid[this.grid.length-1])):(c=(this.ymax-this.ymin)/(this.options.numLines-1),this.grid=function(){var t,i,e,s;for(s=[],y=t=i=this.ymin,e=this.ymax;c>0?e>=t:t>=e;y=t+=c)s.push(y);return s}.call(this))),this.dirty=!0,s?this.redraw():void 0},s.prototype.yboundary=function(t,i){var e,s;return e=this.options["y"+t],"string"==typeof e?"auto"===e.slice(0,4)?e.length>5?(s=parseInt(e.slice(5),10),null==i?s:Math[t](i,s)):null!=i?i:0:parseInt(e,10):e},s.prototype.autoGridLines=function(t,i,e){var s,o,n,r,h,a,l,p,u;return h=i-t,u=Math.floor(Math.log(h)/Math.log(10)),l=Math.pow(10,u),o=Math.floor(t/l)*l,s=Math.ceil(i/l)*l,a=(s-o)/(e-1),1===l&&a>1&&Math.ceil(a)!==a&&(a=Math.ceil(a),s=o+a*(e-1)),0>o&&s>0&&(o=Math.floor(t/a)*a,s=Math.ceil(i/a)*a),1>a?(r=Math.floor(Math.log(a)/Math.log(10)),n=function(){var t,i;for(i=[],p=t=o;a>0?s>=t:t>=s;p=t+=a)i.push(parseFloat(p.toFixed(1-r)));return i}()):n=function(){var t,i;for(i=[],p=t=o;a>0?s>=t:t>=s;p=t+=a)i.push(p);return i}(),n},s.prototype._calc=function(){var t,i,e,s,o,n,r,h,a;return n=this.el.width(),s=this.el.height(),(this.elementWidth!==n||this.elementHeight!==s||this.dirty)&&(this.elementWidth=n,this.elementHeight=s,this.dirty=!1,this.left=this.options.padding,this.right=this.elementWidth-this.options.padding,this.top=this.options.padding,this.bottom=this.elementHeight-this.options.padding,((h=this.options.axes)===!0||"both"===h||"y"===h)&&(r=function(){var t,i,s,o;for(s=this.grid,o=[],t=0,i=s.length;i>t;t++)e=s[t],o.push(this.measureText(this.yAxisFormat(e)).width);return o}.call(this),this.options.horizontal?this.bottom-=Math.max.apply(Math,r):this.left+=Math.max.apply(Math,r)),((a=this.options.axes)===!0||"both"===a||"x"===a)&&(t=this.options.horizontal?-90:-this.options.xLabelAngle,i=function(){var i,e,s;for(s=[],o=i=0,e=this.data.length;e>=0?e>i:i>e;o=e>=0?++i:--i)s.push(this.measureText(this.data[o].label,t).height);return s}.call(this),this.options.horizontal?this.left+=Math.max.apply(Math,i):this.bottom-=Math.max.apply(Math,i)),this.width=Math.max(1,this.right-this.left),this.height=Math.max(1,this.bottom-this.top),this.options.horizontal?(this.dx=this.height/(this.xmax-this.xmin),this.dy=this.width/(this.ymax-this.ymin),this.yStart=this.left,this.yEnd=this.right,this.xStart=this.top,this.xEnd=this.bottom,this.xSize=this.height,this.ySize=this.width):(this.dx=this.width/(this.xmax-this.xmin),this.dy=this.height/(this.ymax-this.ymin),this.yStart=this.bottom,this.yEnd=this.top,this.xStart=this.left,this.xEnd=this.right,this.xSize=this.width,this.ySize=this.height),this.calc)?this.calc():void 0},s.prototype.transY=function(t){return this.options.horizontal?this.left+(t-this.ymin)*this.dy:this.bottom-(t-this.ymin)*this.dy},s.prototype.transX=function(t){return 1===this.data.length?(this.xStart+this.xEnd)/2:this.xStart+(t-this.xmin)*this.dx},s.prototype.redraw=function(){return this.raphael.clear(),this._calc(),this.drawGrid(),this.drawGoals(),this.drawEvents(),this.draw?this.draw():void 0},s.prototype.measureText=function(t,i){var e,s;return null==i&&(i=0),s=this.raphael.text(100,100,t).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).rotate(i),e=s.getBBox(),s.remove(),e},s.prototype.yAxisFormat=function(t){return this.yLabelFormat(t,0)},s.prototype.yLabelFormat=function(t,e){return"function"==typeof this.options.yLabelFormat?this.options.yLabelFormat(t,e):""+this.options.preUnits+i.commas(t)+this.options.postUnits},s.prototype.getYAxisLabelX=function(){return this.left-this.options.padding/2},s.prototype.drawGrid=function(){var t,i,e,s,o,n,r,h,a;if(this.options.grid!==!1||(n=this.options.axes)===!0||"both"===n||"y"===n){for(t=this.options.horizontal?this.getXAxisLabelY():this.getYAxisLabelX(),r=this.grid,a=[],s=0,o=r.length;o>s;s++)i=r[s],e=this.transY(i),((h=this.options.axes)===!0||"both"===h||"y"===h)&&(this.options.horizontal?this.drawXAxisLabel(e,t,this.yAxisFormat(i)):this.drawYAxisLabel(t,e,this.yAxisFormat(i))),this.options.grid?(e=Math.floor(e)+.5,this.options.horizontal?a.push(this.drawGridLine("M"+e+","+this.xStart+"V"+this.xEnd)):a.push(this.drawGridLine("M"+this.xStart+","+e+"H"+this.xEnd))):a.push(void 0);return a}},s.prototype.drawGoals=function(){var t,i,e,s,o,n,r;for(n=this.options.goals,r=[],e=s=0,o=n.length;o>s;e=++s)i=n[e],t=this.options.goalLineColors[e%this.options.goalLineColors.length],r.push(this.drawGoal(i,t));return r},s.prototype.drawEvents=function(){var t,i,e,s,o,n,r;for(n=this.events,r=[],e=s=0,o=n.length;o>s;e=++s)i=n[e],t=this.options.eventLineColors[e%this.options.eventLineColors.length],r.push(this.drawEvent(i,t));return r},s.prototype.drawGoal=function(t,i){var e,s;return s=Math.floor(this.transY(t))+.5,e=this.options.horizontal?"M"+s+","+this.xStart+"V"+this.xEnd:"M"+this.xStart+","+s+"H"+this.xEnd,this.raphael.path(e).attr("stroke",i).attr("stroke-width",this.options.goalStrokeWidth)},s.prototype.drawEvent=function(t,i){var e,s,o,n;return t instanceof Array?(e=t[0],o=t[1],e=Math.floor(this.transX(e))+.5,o=Math.floor(this.transX(o))+.5,this.options.horizontal?this.raphael.rect(this.yStart,e,this.yEnd-this.yStart,o-e).attr({fill:i,stroke:!1}).toBack():this.raphael.rect(e,this.yEnd,o-e,this.yStart-this.yEnd).attr({fill:i,stroke:!1}).toBack()):(n=Math.floor(this.transX(t))+.5,s=this.options.horizontal?"M"+this.yStart+","+n+"H"+this.yEnd:"M"+n+","+this.yStart+"V"+this.yEnd,this.raphael.path(s).attr("stroke",i).attr("stroke-width",this.options.eventStrokeWidth))},s.prototype.drawYAxisLabel=function(t,i,e){return this.raphael.text(t,i,e).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor).attr("text-anchor","end")},s.prototype.drawGridLine=function(t){return this.raphael.path(t).attr("stroke",this.options.gridLineColor).attr("stroke-width",this.options.gridStrokeWidth)},s.prototype.startRange=function(t){return this.hover.hide(),this.selectFrom=t,this.selectionRect.attr({x:t,width:0}).show()},s.prototype.endRange=function(t){var i,e;return this.selectFrom?(e=Math.min(this.selectFrom,t),i=Math.max(this.selectFrom,t),this.options.rangeSelect.call(this.el,{start:this.data[this.hitTest(e)].x,end:this.data[this.hitTest(i)].x}),this.selectFrom=null):void 0},s.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},s.prototype.hasToShow=function(t){return this.options.shown===!0||this.options.shown[t]===!0},s}(i.EventEmitter),i.parseDate=function(t){var i,e,s,o,n,r,h,a,l,p,u;return"number"==typeof t?t:(e=t.match(/^(\d+) Q(\d)$/),o=t.match(/^(\d+)-(\d+)$/),n=t.match(/^(\d+)-(\d+)-(\d+)$/),h=t.match(/^(\d+) W(\d+)$/),a=t.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+)(Z|([+-])(\d\d):?(\d\d))?$/),l=t.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+):(\d+(\.\d+)?)(Z|([+-])(\d\d):?(\d\d))?$/),e?new Date(parseInt(e[1],10),3*parseInt(e[2],10)-1,1).getTime():o?new Date(parseInt(o[1],10),parseInt(o[2],10)-1,1).getTime():n?new Date(parseInt(n[1],10),parseInt(n[2],10)-1,parseInt(n[3],10)).getTime():h?(p=new Date(parseInt(h[1],10),0,1),4!==p.getDay()&&p.setMonth(0,1+(4-p.getDay()+7)%7),p.getTime()+6048e5*parseInt(h[2],10)):a?a[6]?(r=0,"Z"!==a[6]&&(r=60*parseInt(a[8],10)+parseInt(a[9],10),"+"===a[7]&&(r=0-r)),Date.UTC(parseInt(a[1],10),parseInt(a[2],10)-1,parseInt(a[3],10),parseInt(a[4],10),parseInt(a[5],10)+r)):new Date(parseInt(a[1],10),parseInt(a[2],10)-1,parseInt(a[3],10),parseInt(a[4],10),parseInt(a[5],10)).getTime():l?(u=parseFloat(l[6]),i=Math.floor(u),s=Math.round(1e3*(u-i)),l[8]?(r=0,"Z"!==l[8]&&(r=60*parseInt(l[10],10)+parseInt(l[11],10),"+"===l[9]&&(r=0-r)),Date.UTC(parseInt(l[1],10),parseInt(l[2],10)-1,parseInt(l[3],10),parseInt(l[4],10),parseInt(l[5],10)+r,i,s)):new Date(parseInt(l[1],10),parseInt(l[2],10)-1,parseInt(l[3],10),parseInt(l[4],10),parseInt(l[5],10),i,s).getTime()):new Date(parseInt(t,10),0,1).getTime())},i.Hover=function(){function e(e){null==e&&(e={}),this.options=t.extend({},i.Hover.defaults,e),this.el=t("<div class='"+this.options["class"]+"'></div>"),this.el.hide(),this.options.parent.append(this.el)}return e.defaults={"class":"morris-hover morris-default-style"},e.prototype.update=function(t,i,e,s){return t?(this.html(t),this.show(),this.moveTo(i,e,s)):this.hide()},e.prototype.html=function(t){return this.el.html(t)},e.prototype.moveTo=function(t,i,e){var s,o,n,r,h,a;return h=this.options.parent.innerWidth(),r=this.options.parent.innerHeight(),o=this.el.outerWidth(),s=this.el.outerHeight(),n=Math.min(Math.max(0,t-o/2),h-o),null!=i?e===!0?(a=i-s/2,0>a&&(a=0)):(a=i-s-10,0>a&&(a=i+10,a+s>r&&(a=r/2-s/2))):a=r/2-s/2,this.el.css({left:n+"px",top:parseInt(a)+"px"})},e.prototype.show=function(){return this.el.show()},e.prototype.hide=function(){return this.el.hide()},e}(),i.Line=function(e){function s(t){return this.hilight=n(this.hilight,this),this.onHoverOut=n(this.onHoverOut,this),this.onHoverMove=n(this.onHoverMove,this),this.onGridClick=n(this.onGridClick,this),this instanceof i.Line?void s.__super__.constructor.call(this,t):new i.Line(t)}return h(s,e),s.prototype.init=function(){return"always"!==this.options.hideHover?(this.hover=new i.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)):void 0},s.prototype.defaults={lineWidth:3,pointSize:4,lineColors:["#0b62a4","#7A92A3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],pointStrokeWidths:[1],pointStrokeColors:["#ffffff"],pointFillColors:[],smooth:!0,shown:!0,xLabels:"auto",xLabelFormat:null,xLabelMargin:24,hideHover:!1,trendLine:!1,trendLineWidth:2,trendLineColors:["#689bc3","#a2b3bf","#64b764"]},s.prototype.calc=function(){return this.calcPoints(),this.generatePaths()},s.prototype.calcPoints=function(){var t,i,e,s,o,n;for(o=this.data,n=[],e=0,s=o.length;s>e;e++)t=o[e],t._x=this.transX(t.x),t._y=function(){var e,s,o,n;for(o=t.y,n=[],e=0,s=o.length;s>e;e++)i=o[e],null!=i?n.push(this.transY(i)):n.push(i);return n}.call(this),n.push(t._ymax=Math.min.apply(Math,[this.bottom].concat(function(){var e,s,o,n;for(o=t._y,n=[],e=0,s=o.length;s>e;e++)i=o[e],null!=i&&n.push(i);return n}())));return n},s.prototype.hitTest=function(t){var i,e,s,o,n;if(0===this.data.length)return null;for(n=this.data.slice(1),i=s=0,o=n.length;o>s&&(e=n[i],!(t<(e._x+this.data[i]._x)/2));i=++s);return i},s.prototype.onGridClick=function(t,i){var e;return e=this.hitTest(t),this.fire("click",e,this.data[e].src,t,i)},s.prototype.onHoverMove=function(t,i){var e;return e=this.hitTest(t),this.displayHoverForRow(e)},s.prototype.onHoverOut=function(){return this.options.hideHover!==!1?this.displayHoverForRow(null):void 0},s.prototype.displayHoverForRow=function(t){var i;return null!=t?((i=this.hover).update.apply(i,this.hoverContentForRow(t)),this.hilight(t)):(this.hover.hide(),this.hilight())},s.prototype.hoverContentForRow=function(i){var e,s,o,n,r,h,a;for(o=this.data[i],e=t("<div class='morris-hover-row-label'>").text(o.label),e=e.prop("outerHTML"),a=o.y,s=r=0,h=a.length;h>r;s=++r)n=a[s],this.options.labels[s]!==!1&&(e+="<div class='morris-hover-point' style='color: "+this.colorFor(o,s,"label")+"'>\n "+this.options.labels[s]+":\n "+this.yLabelFormat(n,s)+"\n</div>");return"function"==typeof this.options.hoverCallback&&(e=this.options.hoverCallback(i,this.options,e,o.src)),[e,o._x,o._ymax]},s.prototype.generatePaths=function(){var t,e,s,o;return this.paths=function(){var n,r,h,l;for(l=[],e=n=0,r=this.options.ykeys.length;r>=0?r>n:n>r;e=r>=0?++n:--n)o="boolean"==typeof this.options.smooth?this.options.smooth:(h=this.options.ykeys[e],a.call(this.options.smooth,h)>=0),t=function(){var t,i,o,n;for(o=this.data,n=[],t=0,i=o.length;i>t;t++)s=o[t],void 0!==s._y[e]&&n.push({x:s._x,y:s._y[e]});return n}.call(this),t.length>1?l.push(i.Line.createPath(t,o,this.bottom)):l.push(null);return l}.call(this)},s.prototype.draw=function(){var t;return((t=this.options.axes)===!0||"both"===t||"x"===t)&&this.drawXAxis(),this.drawSeries(),this.options.hideHover===!1?this.displayHoverForRow(this.data.length-1):void 0},s.prototype.drawXAxis=function(){var t,e,s,o,n,r,h,a,l,p,u=this;for(h=this.bottom+this.options.padding/2,n=null,o=null,t=function(t,i){var e,s,r,a,l;return e=u.drawXAxisLabel(u.transX(i),h,t),l=e.getBBox(),e.transform("r"+-u.options.xLabelAngle),s=e.getBBox(),e.transform("t0,"+s.height/2+"..."),0!==u.options.xLabelAngle&&(a=-.5*l.width*Math.cos(u.options.xLabelAngle*Math.PI/180),e.transform("t"+a+",0...")),s=e.getBBox(),(null==n||n>=s.x+s.width||null!=o&&o>=s.x)&&s.x>=0&&s.x+s.width<u.el.width()?(0!==u.options.xLabelAngle&&(r=1.25*u.options.gridTextSize/Math.sin(u.options.xLabelAngle*Math.PI/180),o=s.x-r),n=s.x-u.options.xLabelMargin):e.remove()},s=this.options.parseTime?1===this.data.length&&"auto"===this.options.xLabels?[[this.data[0].label,this.data[0].x]]:i.labelSeries(this.xmin,this.xmax,this.width,this.options.xLabels,this.options.xLabelFormat):function(){var t,i,e,s;for(e=this.data,s=[],t=0,i=e.length;i>t;t++)r=e[t],s.push([r.label,r.x]);return s}.call(this),s.reverse(),p=[],a=0,l=s.length;l>a;a++)e=s[a],p.push(t(e[0],e[1]));return p},s.prototype.drawSeries=function(){var t,i,e,s,o,n;for(this.seriesPoints=[],t=i=s=this.options.ykeys.length-1;0>=s?0>=i:i>=0;t=0>=s?++i:--i)this.hasToShow(t)&&((this.options.trendLine!==!1&&this.options.trendLine===!0||this.options.trendLine[t]===!0)&&this._drawTrendLine(t),this._drawLineFor(t));for(n=[],t=e=o=this.options.ykeys.length-1;0>=o?0>=e:e>=0;t=0>=o?++e:--e)this.hasToShow(t)?n.push(this._drawPointFor(t)):n.push(void 0);return n},s.prototype._drawPointFor=function(t){var i,e,s,o,n,r;for(this.seriesPoints[t]=[],n=this.data,r=[],s=0,o=n.length;o>s;s++)e=n[s],i=null,null!=e._y[t]&&(i=this.drawLinePoint(e._x,e._y[t],this.colorFor(e,t,"point"),t)),r.push(this.seriesPoints[t].push(i));return r},s.prototype._drawLineFor=function(t){var i;return i=this.paths[t],null!==i?this.drawLinePath(i,this.colorFor(null,t,"line"),t):void 0},s.prototype._drawTrendLine=function(t){var e,s,o,n,r,h,a,l,p,u,d,c,f,g,y;for(h=0,p=0,a=0,l=0,n=0,y=this.data,f=0,g=y.length;g>f;f++)u=y[f],d=u.x,c=u.y[t],void 0!==c&&(n+=1,h+=d,p+=c,a+=d*d,l+=d*c);return e=(n*l-h*p)/(n*a-h*h),s=p/n-e*h/n,o=[{},{}],o[0].x=this.transX(this.data[0].x),o[0].y=this.transY(this.data[0].x*e+s),o[1].x=this.transX(this.data[this.data.length-1].x),o[1].y=this.transY(this.data[this.data.length-1].x*e+s),r=i.Line.createPath(o,!1,this.bottom),r=this.raphael.path(r).attr("stroke",this.colorFor(null,t,"trendLine")).attr("stroke-width",this.options.trendLineWidth)},s.createPath=function(t,e,s){var o,n,r,h,a,l,p,u,d,c,f,g,y,m;for(p="",e&&(r=i.Line.gradients(t)),u={y:null},h=y=0,m=t.length;m>y;h=++y)o=t[h],null!=o.y&&(null!=u.y?e?(n=r[h],l=r[h-1],a=(o.x-u.x)/4,d=u.x+a,f=Math.min(s,u.y+a*l),c=o.x-a,g=Math.min(s,o.y-a*n),p+="C"+d+","+f+","+c+","+g+","+o.x+","+o.y):p+="L"+o.x+","+o.y:e&&null==r[h]||(p+="M"+o.x+","+o.y)),u=o;return p},s.gradients=function(t){var i,e,s,o,n,r,h,a;for(e=function(t,i){return(t.y-i.y)/(t.x-i.x)},a=[],s=r=0,h=t.length;h>r;s=++r)i=t[s],null!=i.y?(o=t[s+1]||{y:null},n=t[s-1]||{y:null},null!=n.y&&null!=o.y?a.push(e(n,o)):null!=n.y?a.push(e(n,i)):null!=o.y?a.push(e(i,o)):a.push(null)):a.push(null);return a},s.prototype.hilight=function(t){var i,e,s,o,n;if(null!==this.prevHilight&&this.prevHilight!==t)for(i=e=0,o=this.seriesPoints.length-1;o>=0?o>=e:e>=o;i=o>=0?++e:--e)this.seriesPoints[i][this.prevHilight]&&this.seriesPoints[i][this.prevHilight].animate(this.pointShrinkSeries(i));if(null!==t&&this.prevHilight!==t)for(i=s=0,n=this.seriesPoints.length-1;n>=0?n>=s:s>=n;i=n>=0?++s:--s)this.seriesPoints[i][t]&&this.seriesPoints[i][t].animate(this.pointGrowSeries(i));return this.prevHilight=t},s.prototype.colorFor=function(t,i,e){return"function"==typeof this.options.lineColors?this.options.lineColors.call(this,t,i,e):"point"===e?this.options.pointFillColors[i%this.options.pointFillColors.length]||this.options.lineColors[i%this.options.lineColors.length]:"line"===e?this.options.lineColors[i%this.options.lineColors.length]:this.options.trendLineColors[i%this.options.trendLineColors.length]},s.prototype.drawXAxisLabel=function(t,i,e){return this.raphael.text(t,i,e).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},s.prototype.drawLinePath=function(t,i,e){return this.raphael.path(t).attr("stroke",i).attr("stroke-width",this.lineWidthForSeries(e))},s.prototype.drawLinePoint=function(t,i,e,s){return this.raphael.circle(t,i,this.pointSizeForSeries(s)).attr("fill",e).attr("stroke-width",this.pointStrokeWidthForSeries(s)).attr("stroke",this.pointStrokeColorForSeries(s))},s.prototype.pointStrokeWidthForSeries=function(t){return this.options.pointStrokeWidths[t%this.options.pointStrokeWidths.length]},s.prototype.pointStrokeColorForSeries=function(t){return this.options.pointStrokeColors[t%this.options.pointStrokeColors.length]},s.prototype.lineWidthForSeries=function(t){return this.options.lineWidth instanceof Array?this.options.lineWidth[t%this.options.lineWidth.length]:this.options.lineWidth},s.prototype.pointSizeForSeries=function(t){return this.options.pointSize instanceof Array?this.options.pointSize[t%this.options.pointSize.length]:this.options.pointSize},s.prototype.pointGrowSeries=function(t){return 0!==this.pointSizeForSeries(t)?Raphael.animation({r:this.pointSizeForSeries(t)+3},25,"linear"):void 0},s.prototype.pointShrinkSeries=function(t){return Raphael.animation({r:this.pointSizeForSeries(t)},25,"linear")},s}(i.Grid),i.labelSeries=function(e,s,o,n,r){var h,a,l,p,u,d,c,f,g,y,m;if(l=200*(s-e)/o,a=new Date(e),c=i.LABEL_SPECS[n],void 0===c)for(m=i.AUTO_LABEL_ORDER,g=0,y=m.length;y>g;g++)if(p=m[g],d=i.LABEL_SPECS[p],l>=d.span){c=d;break}for(void 0===c&&(c=i.LABEL_SPECS.second),r&&(c=t.extend({},c,{fmt:r})),h=c.start(a),u=[];(f=h.getTime())<=s;)f>=e&&u.push([c.fmt(h),f]),c.incr(h);return u},e=function(t){return{span:60*t*1e3,start:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours())},fmt:function(t){return""+i.pad2(t.getHours())+":"+i.pad2(t.getMinutes())},incr:function(i){return i.setUTCMinutes(i.getUTCMinutes()+t)}}},s=function(t){return{span:1e3*t,start:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes())},fmt:function(t){return""+i.pad2(t.getHours())+":"+i.pad2(t.getMinutes())+":"+i.pad2(t.getSeconds())},incr:function(i){return i.setUTCSeconds(i.getUTCSeconds()+t)}}},i.LABEL_SPECS={decade:{span:1728e8,start:function(t){return new Date(t.getFullYear()-t.getFullYear()%10,0,1)},fmt:function(t){return""+t.getFullYear()},incr:function(t){return t.setFullYear(t.getFullYear()+10)}},year:{span:1728e7,start:function(t){return new Date(t.getFullYear(),0,1)},fmt:function(t){return""+t.getFullYear()},incr:function(t){return t.setFullYear(t.getFullYear()+1)}},month:{span:24192e5,start:function(t){return new Date(t.getFullYear(),t.getMonth(),1)},fmt:function(t){return""+t.getFullYear()+"-"+i.pad2(t.getMonth()+1)},incr:function(t){return t.setMonth(t.getMonth()+1)}},week:{span:6048e5,start:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())},fmt:function(t){return""+t.getFullYear()+"-"+i.pad2(t.getMonth()+1)+"-"+i.pad2(t.getDate())},incr:function(t){return t.setDate(t.getDate()+7)}},day:{span:864e5,start:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())},fmt:function(t){return""+t.getFullYear()+"-"+i.pad2(t.getMonth()+1)+"-"+i.pad2(t.getDate())},incr:function(t){return t.setDate(t.getDate()+1)}},hour:e(60),"30min":e(30),"15min":e(15),"10min":e(10),"5min":e(5),minute:e(1),"30sec":s(30),"15sec":s(15),"10sec":s(10),"5sec":s(5),second:s(1)},i.AUTO_LABEL_ORDER=["decade","year","month","week","day","hour","30min","15min","10min","5min","minute","30sec","15sec","10sec","5sec","second"],i.Area=function(e){function s(e){var n;return this instanceof i.Area?(n=t.extend({},o,e),this.cumulative=!n.behaveLikeLine,"auto"===n.fillOpacity&&(n.fillOpacity=n.behaveLikeLine?.8:1),void s.__super__.constructor.call(this,n)):new i.Area(e)}var o;return h(s,e),o={fillOpacity:"auto",behaveLikeLine:!1},s.prototype.calcPoints=function(){var t,i,e,s,o,n,r;for(n=this.data,r=[],s=0,o=n.length;o>s;s++)t=n[s],t._x=this.transX(t.x),i=0,t._y=function(){var s,o,n,r;for(n=t.y,r=[],s=0,o=n.length;o>s;s++)e=n[s],this.options.behaveLikeLine?r.push(this.transY(e)):(i+=e||0,r.push(this.transY(i)));return r}.call(this),r.push(t._ymax=Math.max.apply(Math,t._y));return r},s.prototype.drawSeries=function(){var t,i,e,s,o,n,r,h;for(this.seriesPoints=[],i=this.options.behaveLikeLine?function(){n=[];for(var t=0,i=this.options.ykeys.length-1;i>=0?i>=t:t>=i;i>=0?t++:t--)n.push(t);return n}.apply(this):function(){r=[];for(var t=o=this.options.ykeys.length-1;0>=o?0>=t:t>=0;0>=o?t++:t--)r.push(t);return r}.apply(this),h=[],e=0,s=i.length;s>e;e++)t=i[e],this._drawFillFor(t),this._drawLineFor(t),h.push(this._drawPointFor(t));return h},s.prototype._drawFillFor=function(t){var i;return i=this.paths[t],null!==i?(i+="L"+this.transX(this.xmax)+","+this.bottom+"L"+this.transX(this.xmin)+","+this.bottom+"Z",this.drawFilledPath(i,this.fillForSeries(t))):void 0},s.prototype.fillForSeries=function(t){var i;return i=Raphael.rgb2hsl(this.colorFor(this.data[t],t,"line")),Raphael.hsl(i.h,this.options.behaveLikeLine?.9*i.s:.75*i.s,Math.min(.98,this.options.behaveLikeLine?1.2*i.l:1.25*i.l))},s.prototype.drawFilledPath=function(t,i){return this.raphael.path(t).attr("fill",i).attr("fill-opacity",this.options.fillOpacity).attr("stroke","none")},s}(i.Line),i.Bar=function(e){function s(e){return this.onHoverOut=n(this.onHoverOut,this),this.onHoverMove=n(this.onHoverMove,this),this.onGridClick=n(this.onGridClick,this),this instanceof i.Bar?void s.__super__.constructor.call(this,t.extend({},e,{parseTime:!1})):new i.Bar(e)}return h(s,e),s.prototype.init=function(){return this.cumulative=this.options.stacked,"always"!==this.options.hideHover?(this.hover=new i.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)):void 0},s.prototype.defaults={barSizeRatio:.75,barGap:3,barColors:["#0b62a4","#7a92a3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],barOpacity:1,barRadius:[0,0,0,0],xLabelMargin:50,horizontal:!1,shown:!0},s.prototype.calc=function(){var t;return this.calcBars(),this.options.hideHover===!1?(t=this.hover).update.apply(t,this.hoverContentForRow(this.data.length-1)):void 0},s.prototype.calcBars=function(){var t,i,e,s,o,n,r;for(n=this.data,r=[],t=s=0,o=n.length;o>s;t=++s)i=n[t],i._x=this.xStart+this.xSize*(t+.5)/this.data.length,r.push(i._y=function(){var t,s,o,n;for(o=i.y,n=[],t=0,s=o.length;s>t;t++)e=o[t],null!=e?n.push(this.transY(e)):n.push(null);return n}.call(this));return r},s.prototype.draw=function(){var t;return((t=this.options.axes)===!0||"both"===t||"x"===t)&&this.drawXAxis(),this.drawSeries()},s.prototype.drawXAxis=function(){var t,i,e,s,o,n,r,h,a,l,p,u,d,c,f,g,y;for(i=this.options.horizontal?this.getYAxisLabelX():this.getXAxisLabelY(),l=null,a=null,y=[],e=f=0,g=this.data.length;g>=0?g>f:f>g;e=g>=0?++f:--f)p=this.data[this.data.length-1-e],s=this.options.horizontal?this.drawYAxisLabel(i,p._x-.5*this.options.gridTextSize,p.label):this.drawXAxisLabel(p._x,i,p.label),t=this.options.horizontal?0:this.options.xLabelAngle,c=s.getBBox(),s.transform("r"+-t),o=s.getBBox(),s.transform("t0,"+o.height/2+"..."),0!==t&&(h=-.5*c.width*Math.cos(t*Math.PI/180),s.transform("t"+h+",0...")),this.options.horizontal?(d=o.y,u=o.height,r=this.el.height()):(d=o.x,u=o.width,r=this.el.width()),(null==l||l>=d+u||null!=a&&a>=d)&&d>=0&&r>d+u?(0!==t&&(n=1.25*this.options.gridTextSize/Math.sin(t*Math.PI/180),a=d-n),this.options.horizontal?y.push(l=d):y.push(l=d-this.options.xLabelMargin)):y.push(s.remove());return y},s.prototype.getXAxisLabelY=function(){return this.bottom+(this.options.xAxisLabelTopPadding||this.options.padding/2)},s.prototype.drawSeries=function(){var t,i,e,s,o,n,r,h,a,l,p,u,d,c,f,g,y,m;if(e=this.xSize/this.options.data.length,this.options.stacked)a=1;else for(a=0,s=y=0,m=this.options.ykeys.length-1;m>=0?m>=y:y>=m;s=m>=0?++y:--y)this.hasToShow(s)&&(a+=1);return t=(e*this.options.barSizeRatio-this.options.barGap*(a-1))/a,this.options.barSize&&(t=Math.min(t,this.options.barSize)),d=e-t*a-this.options.barGap*(a-1),h=d/2,g=this.ymin<=0&&this.ymax>=0?this.transY(0):null,this.bars=function(){var s,a,d,y;for(d=this.data,y=[],o=s=0,a=d.length;a>s;o=++s)l=d[o],n=0,y.push(function(){var s,a,d,y;for(d=l._y,y=[],p=s=0,a=d.length;a>s;p=++s)f=d[p],this.hasToShow(p)&&(null!==f?(g?(c=Math.min(f,g),i=Math.max(f,g)):(c=f,i=this.bottom),r=this.xStart+o*e+h,this.options.stacked||(r+=p*(t+this.options.barGap)),u=i-c,this.options.verticalGridCondition&&this.options.verticalGridCondition(l.x)&&(this.options.horizontal?this.drawBar(this.yStart,this.xStart+o*e,this.ySize,e,this.options.verticalGridColor,this.options.verticalGridOpacity,this.options.barRadius):this.drawBar(this.xStart+o*e,this.yEnd,e,this.ySize,this.options.verticalGridColor,this.options.verticalGridOpacity,this.options.barRadius)),this.options.stacked&&(c-=n),this.options.horizontal?(this.drawBar(c,r,u,t,this.colorFor(l,p,"bar"),this.options.barOpacity,this.options.barRadius),y.push(n-=u)):(this.drawBar(r,c,t,u,this.colorFor(l,p,"bar"),this.options.barOpacity,this.options.barRadius),y.push(n+=u))):y.push(null));return y}.call(this));return y}.call(this)},s.prototype.colorFor=function(t,i,e){var s,o;return"function"==typeof this.options.barColors?(s={x:t.x,y:t.y[i],label:t.label},o={index:i,key:this.options.ykeys[i],label:this.options.labels[i]},this.options.barColors.call(this,s,o,e)):this.options.barColors[i%this.options.barColors.length]},
s.prototype.hitTest=function(t,i){var e;return 0===this.data.length?null:(e=this.options.horizontal?i:t,e=Math.max(Math.min(e,this.xEnd),this.xStart),Math.min(this.data.length-1,Math.floor((e-this.xStart)/(this.xSize/this.data.length))))},s.prototype.onGridClick=function(t,i){var e;return e=this.hitTest(t,i),this.fire("click",e,this.data[e].src,t,i)},s.prototype.onHoverMove=function(t,i){var e,s;return e=this.hitTest(t,i),(s=this.hover).update.apply(s,this.hoverContentForRow(e))},s.prototype.onHoverOut=function(){return this.options.hideHover!==!1?this.hover.hide():void 0},s.prototype.hoverContentForRow=function(i){var e,s,o,n,r,h,a,l;for(o=this.data[i],e=t("<div class='morris-hover-row-label'>").text(o.label),e=e.prop("outerHTML"),l=o.y,s=h=0,a=l.length;a>h;s=++h)r=l[s],this.options.labels[s]!==!1&&(e+="<div class='morris-hover-point' style='color: "+this.colorFor(o,s,"label")+"'>\n "+this.options.labels[s]+":\n "+this.yLabelFormat(r,s)+"\n</div>");return"function"==typeof this.options.hoverCallback&&(e=this.options.hoverCallback(i,this.options,e,o.src)),this.options.horizontal?(n=this.left+.5*this.width,r=this.top+(i+.5)*this.height/this.data.length,[e,n,r,!0]):(n=this.left+(i+.5)*this.width/this.data.length,[e,n])},s.prototype.drawXAxisLabel=function(t,i,e){var s;return s=this.raphael.text(t,i,e).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},s.prototype.drawBar=function(t,i,e,s,o,n,r){var h,a;return h=Math.max.apply(Math,r),a=0===h||h>s?this.raphael.rect(t,i,e,s):this.raphael.path(this.roundedRect(t,i,e,s,r)),a.attr("fill",o).attr("fill-opacity",n).attr("stroke","none")},s.prototype.roundedRect=function(t,i,e,s,o){return null==o&&(o=[0,0,0,0]),["M",t,o[0]+i,"Q",t,i,t+o[0],i,"L",t+e-o[1],i,"Q",t+e,i,t+e,i+o[1],"L",t+e,i+s-o[2],"Q",t+e,i+s,t+e-o[2],i+s,"L",t+o[3],i+s,"Q",t,i+s,t,i+s-o[3],"Z"]},s}(i.Grid),i.Donut=function(e){function s(e){this.resizeHandler=n(this.resizeHandler,this),this.select=n(this.select,this),this.click=n(this.click,this);var s=this;if(!(this instanceof i.Donut))return new i.Donut(e);if(this.options=t.extend({},this.defaults,e),"string"==typeof e.element?this.el=t(document.getElementById(e.element)):this.el=t(e.element),null===this.el||0===this.el.length)throw new Error("Graph placeholder not found.");void 0!==e.data&&0!==e.data.length&&(this.raphael=new Raphael(this.el[0]),this.options.resize&&t(window).bind("resize",function(t){return null!=s.timeoutId&&window.clearTimeout(s.timeoutId),s.timeoutId=window.setTimeout(s.resizeHandler,100)}),this.setData(e.data))}return h(s,e),s.prototype.defaults={colors:["#0B62A4","#3980B5","#679DC6","#95BBD7","#B0CCE1","#095791","#095085","#083E67","#052C48","#042135"],backgroundColor:"#FFFFFF",labelColor:"#000000",formatter:i.commas,resize:!1},s.prototype.redraw=function(){var t,e,s,o,n,r,h,a,l,p,u,d,c,f,g,y,m,x,v,w,b,M,S;for(this.raphael.clear(),e=this.el.width()/2,s=this.el.height()/2,c=(Math.min(e,s)-10)/3,u=0,w=this.values,f=0,m=w.length;m>f;f++)d=w[f],u+=d;for(a=5/(2*c),t=1.9999*Math.PI-a*this.data.length,r=0,n=0,this.segments=[],b=this.values,o=g=0,x=b.length;x>g;o=++g)d=b[o],l=r+a+t*(d/u),p=new i.DonutSegment(e,s,2*c,c,r,l,this.data[o].color||this.options.colors[n%this.options.colors.length],this.options.backgroundColor,n,this.raphael),p.render(),this.segments.push(p),p.on("hover",this.select),p.on("click",this.click),r=l,n+=1;for(this.text1=this.drawEmptyDonutLabel(e,s-10,this.options.labelColor,15,800),this.text2=this.drawEmptyDonutLabel(e,s+10,this.options.labelColor,14),h=Math.max.apply(Math,this.values),n=0,M=this.values,S=[],y=0,v=M.length;v>y;y++){if(d=M[y],d===h){this.select(n);break}S.push(n+=1)}return S},s.prototype.setData=function(t){var i;return this.data=t,this.values=function(){var t,e,s,o;for(s=this.data,o=[],t=0,e=s.length;e>t;t++)i=s[t],o.push(parseFloat(i.value));return o}.call(this),this.redraw()},s.prototype.click=function(t){return this.fire("click",t,this.data[t])},s.prototype.select=function(t){var i,e,s,o,n,r;for(r=this.segments,o=0,n=r.length;n>o;o++)e=r[o],e.deselect();return s=this.segments[t],s.select(),i=this.data[t],this.setLabels(i.label,this.options.formatter(i.value,i))},s.prototype.setLabels=function(t,i){var e,s,o,n,r,h,a,l;return e=2*(Math.min(this.el.width()/2,this.el.height()/2)-10)/3,n=1.8*e,o=e/2,s=e/3,this.text1.attr({text:t,transform:""}),r=this.text1.getBBox(),h=Math.min(n/r.width,o/r.height),this.text1.attr({transform:"S"+h+","+h+","+(r.x+r.width/2)+","+(r.y+r.height)}),this.text2.attr({text:i,transform:""}),a=this.text2.getBBox(),l=Math.min(n/a.width,s/a.height),this.text2.attr({transform:"S"+l+","+l+","+(a.x+a.width/2)+","+a.y})},s.prototype.drawEmptyDonutLabel=function(t,i,e,s,o){var n;return n=this.raphael.text(t,i,"").attr("font-size",s).attr("fill",e),null!=o&&n.attr("font-weight",o),n},s.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},s}(i.EventEmitter),i.DonutSegment=function(t){function i(t,i,e,s,o,r,h,a,l,p){this.cx=t,this.cy=i,this.inner=e,this.outer=s,this.color=h,this.backgroundColor=a,this.index=l,this.raphael=p,this.deselect=n(this.deselect,this),this.select=n(this.select,this),this.sin_p0=Math.sin(o),this.cos_p0=Math.cos(o),this.sin_p1=Math.sin(r),this.cos_p1=Math.cos(r),this.is_long=r-o>Math.PI?1:0,this.path=this.calcSegment(this.inner+3,this.inner+this.outer-5),this.selectedPath=this.calcSegment(this.inner+3,this.inner+this.outer),this.hilight=this.calcArc(this.inner)}return h(i,t),i.prototype.calcArcPoints=function(t){return[this.cx+t*this.sin_p0,this.cy+t*this.cos_p0,this.cx+t*this.sin_p1,this.cy+t*this.cos_p1]},i.prototype.calcSegment=function(t,i){var e,s,o,n,r,h,a,l,p,u;return p=this.calcArcPoints(t),e=p[0],o=p[1],s=p[2],n=p[3],u=this.calcArcPoints(i),r=u[0],a=u[1],h=u[2],l=u[3],"M"+e+","+o+("A"+t+","+t+",0,"+this.is_long+",0,"+s+","+n)+("L"+h+","+l)+("A"+i+","+i+",0,"+this.is_long+",1,"+r+","+a)+"Z"},i.prototype.calcArc=function(t){var i,e,s,o,n;return n=this.calcArcPoints(t),i=n[0],s=n[1],e=n[2],o=n[3],"M"+i+","+s+("A"+t+","+t+",0,"+this.is_long+",0,"+e+","+o)},i.prototype.render=function(){var t=this;return this.arc=this.drawDonutArc(this.hilight,this.color),this.seg=this.drawDonutSegment(this.path,this.color,this.backgroundColor,function(){return t.fire("hover",t.index)},function(){return t.fire("click",t.index)})},i.prototype.drawDonutArc=function(t,i){return this.raphael.path(t).attr({stroke:i,"stroke-width":2,opacity:0})},i.prototype.drawDonutSegment=function(t,i,e,s,o){return this.raphael.path(t).attr({fill:i,stroke:e,"stroke-width":3}).hover(s).click(o)},i.prototype.select=function(){return this.selected?void 0:(this.seg.animate({path:this.selectedPath},150,"<>"),this.arc.animate({opacity:1},150,"<>"),this.selected=!0)},i.prototype.deselect=function(){return this.selected?(this.seg.animate({path:this.path},150,"<>"),this.arc.animate({opacity:0},150,"<>"),this.selected=!1):void 0},i}(i.EventEmitter)}).call(this);