(function(){var global=window;if(global.module==undefined)global.module=function(r,E){var x=global[r];if(x==undefined)global[r]=x={};E(x)}; module("Charts",function(r){var E;E=function(){function f(a){var b,c,d,e;c={};e=f.DEFAULTS;for(b in e){d=e[b];c[b]=d}for(b in a){d=a[b];if(a.hasOwnProperty(b))c[b]=d}return c}f.DEFAULTS={dot_size:5,dot_color:"#00aadd",dot_stroke_color:"#fff",dot_stroke_size:2,line_width:3,line_color:"#00aadd",smoothing:0.4,fill_area:true,area_color:"#00aadd",area_opacity:0.2,show_x_labels:true,show_y_labels:true,label_max:true,label_min:true,max_x_labels:10,max_y_labels:3,font_family:"Helvetica, Arial, sans-serif", x_label_size:14,y_label_size:14,label_format:"%m/%d",label_color:"#333",show_grid:false,x_padding:45,y_padding:40,multi_axis:false,scale:"linear",y_axis_scale:[],render:"line",bar_width:20};f.merge=function(a,b){var c,d,e;if(a==null)a={};if(b==null)b={};d={};for(c in a){e=a[c];d[c]=e}for(c in b){e=b[c];if(b.hasOwnProperty(c))d[c]=e}return d};return f}();var x;x=function(){function f(){}f.clone=function(a){var b,c;if(!(a!=null&&typeof a==="object"))return a;b=new a.constructor;for(c in a)b[c]=f.clone(a[c]); return b};f.comma=function(a){var b,c,d;d=a.toString();a="";b=0;for(c=d.length-1;c>=0;){a+=d.charAt(b);if(c%3===0&&c!==0)a+=",";b++;c--}return a};f.commas=function(a){a=a.toString().split(".");return a.length===1?this.comma(a[0]):this.comma(a[0])+"."+a[1]};return f}();var y,C,L,M,N;L=function(f){switch(f){case 1:return"Jan";case 2:return"Feb";case 3:return"Mar";case 4:return"Apr";case 5:return"May";case 6:return"Jun";case 7:return"Jul";case 8:return"Aug";case 9:return"Sep";case 10:return"Oct";case 11:return"Nov"; case 12:return"Dec"}};N=function(f,a){var b;if(a==null)a=2;b=a>0?Math.pow(10,a):1;return x.commas(Math.round(f*b)/b)};M=function(f,a){var b,c;if(a==null)a=2;c=a>0?Math.pow(10,a):1;if(f>1E6){b=f/1E6;b=Math.round(b*c)/c;return b+"m"}else if(f>1E3){b=f/1E3;return Math.round(b*c)/c+"k"}else return Math.round(f*c)/c};C=function(){function f(a,b){this.r=a;this.format=b!=null?b:"";this.num=0;this.font_family="Helvetica, Arial, sans-serif"}f.prototype.x=function(a){this.x_func=a;return this};f.prototype.y= function(a){this.y_func=a;return this};f.prototype.size=function(a){this.size=a;return this};f.prototype.attr=function(a){this.options=a;return this};f.prototype.color=function(a){this.color=a;return this};f.prototype.draw=function(a){if(!this.color)this.color="#333";a=new y(this.r,this.x_func(this.num),this.y_func(this.num),a,this.format,this.size,this.font_family,this.color,this.options);this.num+=1;return a.draw()};return f}();y=function(){function f(a,b,c,d,e,g,h,i,j){this.r=a;this.x=b;this.y= c;this.text=d;this.format=e!=null?e:"";this.size=g!=null?g:14;this.font_family=h!=null?h:"Helvetica, Arial, sans-serif";this.color=i!=null?i:"#333";this.options=j!=null?j:void 0}f.prototype.is_date=function(a){return Object.prototype.toString.call(a)==="[object Date]"};f.prototype.parse_date=function(){var a,b,c,d,e;b=this.format.match(/%([a-zA-Z])/g);a=this.format;d=0;for(e=b.length;d= 12?"pm":"am"};f.prototype.to_12_hour_clock=function(a){a=a.getHours()%12;return a===0?12:a};f.prototype.fmt_minutes=function(a){a=a.getMinutes();return a<10?"0"+a:a};f.prototype.parse_format=function(a){switch(a){case "%m":return this.text.getMonth()+1;case "%b":return L(this.text.getMonth()+1);case "%d":return this.text.getDate();case "%Y":return this.text.getFullYear();case "%H":return this.text.getHours();case "%M":return this.fmt_minutes(this.text);case "%I":return this.to_12_hour_clock(this.text); case "%p":return this.meridian_indicator(this.text)}};f.prototype.draw=function(){var a;this.element=this.r.text(this.x,this.y,this.is_date(this.text)?this.parse_date(this.text):typeof this.text==="number"?N(this.text):this.text);a=this.element.getBBox().width;this.element.attr({fill:this.color,"font-size":this.size,"font-weight":"normal","text-anchor":"middle","font-family":this.font_family});if(this.options!=null)this.element.attr(this.options);else{a=this.x=a;0<=a?++i:--i){g<=b&&d.push(this.r.path("M "+this.options.x_padding+", "+g+" L "+e+", "+g+" Z"));g+=h}return d.attr({stroke:"#ccc","stroke-width":1}).toBack()};return f})();var O;O=function(){function f(a,b,c,d){this.r=a;this.point=b;this.opts=c;this.scale_factor=d!=null?d:1.5;this.element=this.r.circle(b.x,b.y,this.opts.dot_size);this.style_dot();this.opts.hover_enabled&&this.attach_handlers()}f.prototype.style_dot=function(){this.element.attr({fill:this.opts.dot_color, stroke:this.opts.dot_stroke_color,"stroke-width":this.opts.dot_stroke_size});return this.element.toFront()};f.prototype.activate=function(){this.element.attr({fill:"#333"});return this.element.animate({r:this.opts.dot_size*this.scale_factor},200)};f.prototype.deactivate=function(){this.element.attr({fill:this.opts.dot_color});return this.element.animate({r:this.opts.dot_size},200)};f.prototype.attach_handlers=function(){this.element.mouseover(function(a){return function(){return a.activate()}}(this)); return this.element.mouseout(function(a){return function(){return a.deactivate()}}(this))};f.prototype.hide=function(){return this.element.hide()};return f}();var P;P=function(){function f(a){var b,c,d,e;c={};e=f.DEFAULTS;for(b in e){d=e[b];c[b]=d}for(b in a){d=a[b];if(a.hasOwnProperty(b))c[b]=d}return c}f.DEFAULTS={line_width:4,line_color:"#000",area_color:"#00aadd",area_width:20,area_opacity:0.2,bar_margin:8,show_average:true,average_width:4,average_height:8,average_color:"#000",font_family:"Helvetica, Arial, sans-serif", x_label_size:14,y_label_size:14,x_padding:45,y_padding:40};f.merge=function(a,b){var c,d,e;if(a==null)a={};if(b==null)b={};d={};for(c in a){e=a[c];d[c]=e}for(c in b){e=b[c];if(b.hasOwnProperty(c))d[c]=e}return d};return f}();var u;u=function(){function f(a,b){var c,d,e;d={};for(c in b){e=b[c];d[c]=e}for(c in a){e=a[c];if(a.hasOwnProperty(c))d[c]=e}return d}f.merge=function(a,b){var c,d,e;if(a==null)a={};if(b==null)b={};d={};for(c in a){e=a[c];d[c]=e}for(c in b){e=b[c];if(b.hasOwnProperty(c))d[c]= e}return d};return f}();var Q,t={}.hasOwnProperty,s=function(f,a){function b(){this.constructor=f}for(var c in a)if(t.call(a,c))f[c]=a[c];b.prototype=a.prototype;f.prototype=new b;f.__super__=a.prototype;return f};Q=function(f){function a(b){return a.__super__.constructor.call(this,b,a.DEFAULTS)}s(a,f);a.DEFAULTS={bar_margin:30,bar_bg_color:"#bdced3",bar1_color:"90-#2f5e78-#4284a8",bar2_color:"90-#173e53-#225d7c",raw_value_bar_color:"#9eb7bf",x_padding:160,x_padding_right:100,y_padding:50,bg_bar_padding:14, rounding:3,dash_width:3,label_size:14,font_family:"Helvetica, Arial, sans-serif"};return a}(u);var F;F=function(){function f(a){var b,c,d,e;c={};e=f.DEFAULTS;for(b in e){d=e[b];c[b]=d}for(b in a){d=a[b];if(a.hasOwnProperty(b))c[b]=d}return c}f.DEFAULTS={bar_width:20,bar_spacing:20,bar_color:"#00aadd",rounding:0,font_family:"Helvetica, Arial, sans-serif",show_x_labels:true,show_y_labels:true,x_label_size:14,x_label_color:"#333",y_label_size:14,y_label_color:"#333",show_grid:false,x_padding:25,y_padding:40}; f.merge=function(a,b){var c,d,e;if(a==null)a={};if(b==null)b={};d={};for(c in a){e=a[c];d[c]=e}for(c in b){e=b[c];if(b.hasOwnProperty(c))d[c]=e}return d};return f}();var G,B,z,R=function(f,a){return function(){return f.apply(a,arguments)}};B=function(){function f(){this.scale=R(this.scale,this)}f.prototype.domain=function(a){this.domain_min=Math.min.apply(Math.min,a);this.domain_max=Math.max.apply(Math.max,a);return this};f.prototype.range=function(a){this.range_min=Math.min.apply(Math.min,a);this.range_max= Math.max.apply(Math.max,a);return this.scale};f.prototype.scale=function(a){var b;b=this.domain_max-this.domain_min;a=(this.domain_max*this.range_min-this.domain_min*this.range_max)/b+a*((this.range_max-this.range_min)/b);return b===0?this.range_min:a};return f}();G=function(){function f(a){this.base=a!=null?a:10;return this.scale=R(this.scale,this)}f.prototype.scale=function(a){var b;b=Math.log;return b(a)/b(this.base)};return f}();z=function(){function f(){}f.get_ranges_for_points=function(a){var b, c,d,e,g;c=[];d=[];e=0;for(g=a.length;eb?b:a};return f}();r.Scaling=z;r.Scaler=B;var n;n=function(){function f(a,b,c){this.y=b;this.options=c!=null?c:{};if(this.is_date(a)){this.x=a.getTime();this.is_date_type=true}else this.x=a}f.prototype.is_date=function(a){return Object.prototype.toString.call(a)=== "[object Date]"};return f}();r.Point=n;var H;Raphael.fn.triangle=function(f,a,b){b*=1.75;return this.path("M".concat(f,",",a,"m0-",b*0.58,"l",b*0.5,",",b*0.87,"-",b,",0z"))};H=function(){function f(a){this.r=a}f.prototype.black_nub=function(a,b,c,d,e){var g,h,i,j,k,m;if(b==null)b=10;if(c==null)c=8;if(e==null)e=0;g=a.getBBox();d=g.x;m=g.y;a=g.width;g=g.height;h=d+a/2;k=a+2*b;i=g+2*c;j=this.r.set();j.push(this.r.rect(h-k/2,m-c,k,i,e));j.push(this.r.triangle(d+a+b+2,m+2+0.5*g,4).rotate(90));return j.attr({fill:"#333", stroke:"none"}).toBack()};f.prototype.straight_line=function(a,b){return this.r.path("M"+a.x+","+a.y+"L"+b.x+","+b.y)};f.prototype.vertical_dashed_line=function(a,b,c,d){var e,g,h;if(c==null)c=3;if(d==null)d=10;g=Math.floor((b.y-a.y)/d);b=this.r.set();e=h=0;for(g=g-1;0<=g?h<=g:h>=g;e=0<=g?++h:--h)if(e%2===0){e=this.r.rect(a.x-0.5*c,e*d+a.y,c,d);b.push(e)}return b};f.prototype.get_points_along_top_of_bbox=function(a,b){var c,d,e;if(b==null)b=0;c=a.getBBox();d=c.x;e=c.x+c.width;c=c.y+b;return[new n(d, c),new n(e,c)]};f.prototype.one_px_highlight=function(a){a=this.get_points_along_top_of_bbox(a,2);this.straight_line(a[0],a[1]).attr({"stroke-width":1,stroke:"rgba(255,255,255,0.3)"});return this.straight_line};f.prototype.one_px_shadow=function(a){a=this.get_points_along_top_of_bbox(a);this.straight_line(a[0],a[1]).attr({"stroke-width":0.5,stroke:"rgba(0,0,0,0.5)"});return this.straight_line};return f}();r.Effects=H;var D;D=function(){function f(a,b,c,d){var e,g;this.r=a;if(d==null)d=true;if(typeof c=== "number")c=x.commas(Math.round(c*100)/100);e=b.getBBox();g=e.x;a=e.y;e=g+e.width/2;this.text=this.r.text(e,a-22.5,c);this.text.attr({fill:"#fff","font-size":14,"text-anchor":"middle",opacity:0,"font-weight":"bold"});c=this.text.getBBox().width+20;this.popup=this.r.set();this.popup.push(this.r.rect(e-c/2,a-35,c,25,5));this.triangle=this.r.triangle(e,a-10+4,4).rotate(180);this.popup.push(this.triangle);this.popup.attr({fill:"rgba(0,0,0,.4)",opacity:0,stroke:"none"});this.popup.toFront();this.text.toFront(); if(d===true){b.mouseover(function(h){return function(){return h.show()}}(this));b.mouseout(function(h){return function(){return h.hide()}}(this))}}f.prototype.animate_opacity=function(a,b,c){if(c==null)c=200;return a.animate({opacity:b,"fill-opacity":b},c,function(d){return function(){if(b===0){d.text.toBack();return d.popup.toBack()}}}(this))};f.prototype.hide=function(){this.animate_opacity(this.popup,0);return this.animate_opacity(this.text,0)};f.prototype.show=function(){this.popup.toFront(); this.text.toFront();this.animate_opacity(this.popup,0.9);return this.animate_opacity(this.text,1)};f.prototype.translate=function(a,b){this.popup.translate(a,b);this.text.translate(a,b);return this.triangle.translate(-2*a,b)};return f}();r.Tooltip=D;var S;S=function(){function f(a,b,c,d,e,g){this.r=a;this.raw_points=b;this.scaled_points=c;this.height=d;this.width=e;this.options=g!=null?g:{};this.effective_height=this.height-this.options.y_padding;this.x_offset=this.options.bar_width/2}f.prototype.draw= function(){return this.draw_bars()};f.prototype.draw_bars=function(){var a,b,c,d,e,g,h,i,j,k;e=this.r.set();g=[];c=b=0;k=this.scaled_points;a=i=0;for(j=k.length;i=this.raw_points[b].y)b=a;if(this.raw_points[a].y=a.length)c=a.length-1;return[a[d],a[c]]};f.get_tangent=function(a,b){return[b.x-a.x,b.y-a.y]};return f}();r.Bezier=I;var T;T=function(){function f(a,b,c,d,e,g){this.r=a;this.raw_points=b;this.scaled_points=c;this.height=d;this.width=e;this.options=g!=null?g:{}} f.prototype.draw=function(){var a;a=I.create_path(this.scaled_points,this.options.smoothing);this.options.fill_area&&this.draw_area(a);this.draw_curve(a);this.options.dot_size>0&&this.draw_dots_and_tooltips(this.scaled_points,this.raw_points)};f.prototype.draw_curve=function(a){return this.r.path(a).attr({stroke:this.options.line_color,"stroke-width":this.options.line_width})};f.prototype.draw_area=function(a){var b,c,d;c=this.scaled_points;d=this.height-this.options.y_padding;b=c[c.length-1];c=c[0]; a+="L "+b.x+", "+d+" ";a+="L "+c.x+", "+d+" ";a+="Z";a=this.r.path(a);a.attr({fill:this.options.area_color,"fill-opacity":this.options.area_opacity,stroke:"none"});return a};f.prototype.draw_dots_and_tooltips=function(){var a,b,c,d,e,g,h,i,j,k,m;i=this.scaled_points;h=this.raw_points;j=[];b=[];c=k=e=d=0;for(m=i.length;k=h[d].y)d=c;if(g.ythis.center_point.x){d="start";e=30}else{d="end";e=-30}g.attr({"text-anchor":d,x:c._realx+e,opacity:0});return c._label=g};a.prototype.add_grandchildren=function(b,c){if(b.children){c._children=[];return this.create_circles_along_radius(b.children,this.child_radius,this.outer_radius2,function(){return function(d,e){c._active=false;return c._children.push(e)}}(this))}};a.prototype.draw_circle=function(b,c,d,e){var g,h;g={fill:this.options.fill_color,stroke:"none"};h=this.r.set();h.push(this.r.circle(b, c,d).attr(g));h.push(this.r.text(b,c,"+").attr({"font-size":e,fill:"#fff"}));return h.attr({cursor:"pointer"}).toFront()};a.prototype.draw=function(){var b;b=this.draw_circle(this.center_point.x,this.center_point.y,this.main_radius,100);b._active=false;b._children=[];this.add_click_to_circle(b,true);this.create_circles_along_radius(this.children,this.child_radius,this.outer_radius,function(c){return function(d,e){c.add_grandchildren(d,e);c.add_click_to_circle(e);return b._children.push(e)}}(this)); return b.toFront()};return a}(v);r.PathMenu=V;var Y,Z;t={}.hasOwnProperty;s=function(f,a){function b(){this.constructor=f}for(var c in a)if(t.call(a,c))f[c]=a[c];b.prototype=a.prototype;f.prototype=new b;f.__super__=a.prototype;return f};Z=function(f,a,b,c,d){var e,g,h;g=360/c*b;e=(90-g)*Math.PI/180;h=f+d*Math.cos(e);e=a-d*Math.sin(e);return{path:c===b?[["M",f,a-d],["A",d,d,0,1,1,f-0.01,a-d]]:[["M",f,a-d],["A",d,d,0,+(g>180),1,h,e]]}};Y=function(f){function a(b){return a.__super__.constructor.call(this, b,a.DEFAULTS)}s(a,f);a.DEFAULTS={radius:55,stroke_width:30,font_color:"#333333",label_color:"#333333",fill_color:"#fff",stroke_color:"#81ae14",background_color:"#222222",text_shadow:false};return a}(u);u=function(f){function a(b,c,d,e){this.label=c;this.value=d;if(e==null)e={};a.__super__.constructor.call(this,b,new Y(e));this.center_point=new n(this.width/2,this.height/2);this.r.customAttributes.arc=Z}s(a,f);a.prototype.draw=function(){var b;b=this.r.path().attr({"stroke-width":this.options.stroke_width, stroke:this.options.stroke_color,arc:[this.center_point.x,this.center_point.y,0,100,this.options.radius]});this.r.circle(this.center_point.x,this.center_point.y,this.options.radius).attr({fill:this.options.fill_color,stroke:"none","stroke-width":0});this.r.text(this.center_point.x,this.center_point.y,Math.round(this.value*100/100)+"%").attr({"font-size":this.options.radius/2.5,fill:this.options.font_color,"font-weight":"bold"});this.r.text(this.center_point.x,this.center_point.y+1.8*this.options.radius, this.label).attr({"font-size":this.options.radius/2.5,"font-weight":"bold",fill:this.options.label_color});this.options.text_shadow&&this.r.text(this.center_point.x,this.center_point.y+1.8*this.options.radius+1,this.label).attr({"font-size":this.options.radius/2.5,"font-weight":"bold",fill:this.options.text_shadow}).toBack();return b.animate({arc:[this.center_point.x,this.center_point.y,this.value,100,this.options.radius]},1500,"<")};return a}(v);r.CircleProgress=u;t={}.hasOwnProperty;s=function(f, a){function b(){this.constructor=f}for(var c in a)if(t.call(a,c))f[c]=a[c];b.prototype=a.prototype;f.prototype=new b;f.__super__=a.prototype;return f};u=function(f){function a(b,c){if(c==null)c={};a.__super__.constructor.call(this,b,new E(c));this.padding=26;this.all_points=[];this.line_indices=[];this.line_options=[]}s(a,f);a.prototype.add_line=function(b){var c,d,e,g,h;c=b.data;if(!(c.length<1)){e=[];g=0;for(h=c.length;g0?c:c+h;if(this.options.y_axis_name){j+=k*1.75;h=this.options.axis_name_color||"#333";i=this.options.axis_name_size||k;g=(new y(this.r,5,this.height/2,this.options.y_axis_name,e,i,g, h)).draw();g.transform("T0,0R270S1");g.transform("...t0,"+g.getBBox().x*-1)}m=this.create_scalers(b)[1];h=[];d=(new C(this.r,e)).x(function(){return j}).y(function(l){return m(b[l].y)}).size(k).color(d);e=0;for(k=b.length;e1){b=Math.round(b);if(b===0)b=1}return b};a.prototype.draw_y_labels=function(b,c){var d,e,g,h,i,j;if(c==null)c=0;g=z.get_ranges_for_points(b); h=g[2];e=g[3];if(this.options.y_axis_scale.length===2){h=this.options.y_axis_scale;e=h[0];h=h[1]}if(h===e)return this._draw_y_labels([new n(0,h)],c);g=[];if(this.options.scale==="log"){d=new G;j=d(e);d=d(h);d=(d-j)/(this.options.max_y_labels-1);e=e;for(i=0;e<=h&&i1)g[g.length-1].y=Math.round(h);return this._draw_y_labels(g,c)};a.prototype.draw_x_label= function(b,c){var d,e,g,h;e=this.options.label_format;h=this.options.x_label_size;g=this.options.font_family;d=this.options.label_color||"#333";return(new y(this.r,c.x,this.options.x_axis_name?this.height-h*2:this.height-h,b.is_date_type===true?new Date(b.x):Math.round(b.x),e,h,g,d)).draw()};a.prototype.draw_x_labels=function(b,c){var d,e,g,h,i,j;g=[];h=this.options.max_x_labels;if(this.options.x_axis_name){d=this.options.axis_name_color||"#333";e=this.options.axis_name_size||this.options.x_label_size; (new y(this.r,this.width/2,this.height-this.options.x_label_size/2,this.options.x_axis_name,this.options.label_format,e,this.options.font_family,d)).draw()}this.draw_x_label(b[0],c[0]);g.push(c[0].x);if(!(h<2)){d=c.length-1;this.draw_x_label(b[d],c[d]);g.push(c[d].x);if(!(h<3)){d=c.length-1;h=d/(h-1);e=Math.round(h);if(h!==e)h=e+1;for(e=h;e1?this.create_scalers(this.all_points):this.create_scalers_for_single_point();j=d[0];k=d[1];o=this.line_indices;d=m=0;for(l=o.length;m2?this.create_scalers(i):this.create_scalers_for_single_point();e=b[0];g=b[1]}else{e=j;g=k}c=function(){var p,q,w;w=[];p=0;for(q=i.length;pthis.index){e=c(this.index);c=this.render_bar(this.options.x_padding,d,e-this.options.x_padding);d=this.render_bar(e,d,h-e,this.options.bar2_color);g=new D(this.r, d,this.format_tooltip(b));g.translate(d.getBBox().width/2,0);c.mouseover(function(){return g.show()});return c.mouseout(function(){return g.hide()})}else{d=this.render_bar(this.options.x_padding,d,h-this.options.x_padding);g=new D(this.r,d,this.format_tooltip(b));return g.translate(d.getBBox().width/2,0)}};a.prototype.draw_guide_line=function(b,c,d,e){var g,h;if(e==null)e=1;h=new n(d,this.options.y_padding);g=new n(d,this.height);this.effects.vertical_dashed_line(h,g,this.options.dash_width).attr({fill:"rgba(0,0,0,"+ e+")",stroke:"none"});e=(new C(this.r)).x(function(){return d}).y(function(i){return i*15+15}).size(this.options.label_size).attr({fill:"rgba(0,0,0,"+e+")"});e.draw(b).attr({"font-weight":"bold"});return e.draw(c).attr({"font-size":10})};a.prototype.sort_bars_by_index=function(){var b,c;c=function(){var d,e,g,h;g=this.bars;h=[];d=0;for(e=g.length;d