function StatsTable(a,c,e,b,d){this.table=$(a);this.table_body=$(c);this.table_groups_header=$(e);this.table_columns_header=$(b);this.table_stats_nodes=$(d);this.table_groups_header_sel=e;this.table_columns_header_sel=b;this.table_stats_nodes_sel=d;this.groups=[];this.guide_header_class="guide-header";this.column_border_class="column-border"}StatsTable.prototype.group_columns=function(a){var c=0;for(var b=0;b<a.length;b++){this.groups.push([c+1,a[b]+1]);c=a[b]+1}this.insert_column_borders()};StatsTable.prototype.hide_group=function(b){var c=this.groups[this.find_groups_index_for_column(b+1)];for(var a=c[0];a<c[1];a++){this.hide_column_internal(a,false)}this.hide_column_internal(c[1],true)};StatsTable.prototype.show_group=function(b){var c=this.groups[this.find_groups_index_for_column(b+1)];for(var a=c[0];a<c[1];a++){this.show_column_internal(a,false)}this.show_column_internal(c[1],true)};StatsTable.prototype.hide_column=function(a){this.hide_column_internal(a+1,true)};StatsTable.prototype.show_column=function(a){this.show_column_internal(a+1,true)};StatsTable.prototype.rank_rows=function(c){var a=$("td:nth-child(1)",this.table_stats_nodes);var e=a.length;for(var b=0;b<e;b++){var d=c?b+1:e-b;$(a[b]).text(d)}};StatsTable.prototype.insert_guide_headers=function(c){for(var a=c-1;a+1<this.table_stats_nodes.length;a+=c){var b=$(this.table_stats_nodes[a]);this.table_columns_header.clone().addClass(this.guide_header_class).insertAfter(b);this.table_groups_header.clone().addClass(this.guide_header_class).insertAfter(b)}this.reselect_table_headers()};StatsTable.prototype.remove_guide_headers=function(){$("tr."+this.guide_header_class,this.table_body).remove();this.reselect_table_headers()};StatsTable.prototype.reselect_table_headers=function(){this.table_columns_header=$(this.table_columns_header_sel);this.table_groups_header=$(this.table_groups_header_sel)};StatsTable.prototype.reselect_table_stats_nodes=function(){this.table_stats_nodes=$(this.table_stats_nodes_sel)};StatsTable.prototype.hide_column_internal=function(c,a){var b=this.find_body_nodes_for_column(c);b.addClass("hide");this.adjust_headers(c,-1);if(a){this.remove_column_borders();this.insert_column_borders()}};StatsTable.prototype.show_column_internal=function(b,a){this.find_body_nodes_for_column(b).removeClass("hide");this.adjust_headers(b,1);if(a){this.remove_column_borders();this.insert_column_borders()}};StatsTable.prototype.insert_column_borders=function(){var e=0;for(var d=this.groups.length-1;d>=0;d--){var g=this.groups[d][0];var a=this.groups[d][1];var c=this.find_groups_header_nodes_for_column(g);if(this.colspan_for_node(c)==0){continue}e++;for(var f=a;f>=g;f--){var b=this.find_columns_header_nodes_for_column(f);if(this.is_node_viewable(b)){if(e>1){b.addClass(this.column_border_class);c.addClass(this.column_border_class);this.find_body_nodes_for_column(f).addClass(this.column_border_class)}break}}}};StatsTable.prototype.remove_column_borders=function(){$("."+this.column_border_class,this.table).removeClass(this.column_border_class)};StatsTable.prototype.colspan_for_node=function(a){var b=a.attr("colspan");if(b){return parseInt(b)}return 0};StatsTable.prototype.is_node_viewable=function(a){return !a.hasClass("hide")};StatsTable.prototype.find_body_nodes_for_column=function(a){return $("td:nth-child("+a+")",this.table_stats_nodes)};StatsTable.prototype.find_groups_header_nodes_for_column=function(b){var a=this.find_groups_index_for_column(b);return $("td:nth-child("+(a+1)+")",this.table_groups_header)};StatsTable.prototype.find_columns_header_nodes_for_column=function(a){return $("th:nth-child("+a+")",this.table_columns_header)};StatsTable.prototype.find_groups_index_for_column=function(c){for(var b=0;b<this.groups.length;b++){var d=this.groups[b][0];var a=this.groups[b][1];if(c>=d&&c<=a){return b}}console.log("Error: could not find groups index for column: "+c);return -1};StatsTable.prototype.adjust_headers=function(e,f){var c=this.find_columns_header_nodes_for_column(e);var g=(f>0&&!this.is_node_viewable(c)||f<0&&this.is_node_viewable(c));if(f>0){c.removeClass("hide")}else{c.addClass("hide")}if(g){var d=this.find_groups_header_nodes_for_column(e);var a=this.colspan_for_node(d);var b=a+f;if(b==0){d.addClass("hide")}else{d.removeClass("hide")}d.attr("colspan",a+f)}};function SortedStatsTable(b,f,e,d){this.stats=b;this.smaller_is_better_stats=f;this.ordering_by_worst=e;var c=this.sorting_order(d);b.table.tablesorter({sortList:c,headers:{0:{sorter:false}}});b.table.bind("sortStart",function(){b.remove_guide_headers()});var a=this;b.table.bind("sortEnd",function(){b.reselect_table_stats_nodes();b.insert_guide_headers(20);b.rank_rows(a.should_rank_ascending())});b.table.trigger("update");b.table.trigger("sorton",[c])}SortedStatsTable.prototype.sorting_order=function(b){var a=this.is_smaller_is_better(b);var e=a?0:1;var c=a?1:0;var d=this.ordering_by_worst?c:e;return[[b,d]]};SortedStatsTable.prototype.should_rank_ascending=function(){var b=this.current_sorting();var a=b[0];var c=b[1];var d=this.is_smaller_is_better(a)?0:1;return c==d};SortedStatsTable.prototype.is_smaller_is_better=function(a){return $.inArray(a,this.smaller_is_better_stats)>-1};SortedStatsTable.prototype.current_sorting=function(){var a=this.stats.table.get(0).config;if(a){return a.sortList[0]}return[0,0]};function StatsOptions(h,a){var g=$(".options_container",a);var n=$(".expand_description",a);$(".expand_action",a).bind("click",function(){if(g.hasClass("hide")){g.slideDown("fast");g.removeClass("hide");n.text("hide")}else{g.slideUp("fast");g.addClass("hide");n.text("expand")}});function j(o,i){if(o.checked){o.checked="checked";h.show_column(i)}else{o.checked=undefined;h.hide_column(i)}}function b(o){for(var p=0;p<o.length;p++){if(o[p].checked){return true}}return false}var c=$(".group",a);var e=0;for(var d=0;d<c.length;d++){var k=$(c[d]);var m=$(".toggle",k);for(var f=0;f<m.length;f++){$(m[f]).bind("click",{column:f+e+2},function(i){j(this,i.data.column)})}var l=e;e+=m.length;$(".toggle_group",k).bind("click",{options:m,start:l+2},function(p){var i=b(p.data.options);if(i){h.hide_group(p.data.start)}else{h.show_group(p.data.start)}var o=i?undefined:"checked";$(p.data.options).each(function(r,q){q.checked=o})})}}$(document).ready(function(){var a=new StatsTable("#stats","#stats tbody","#stats tr.groups","#stats tr.columns","#stats tr:not(.groups, .columns)");a.group_columns(JSON.parse(a.table.attr("data-groups")));new SortedStatsTable(a,JSON.parse(a.table.attr("data-smaller-is-better")),JSON.parse(a.table.attr("data-order-by-worst")),JSON.parse(a.table.attr("data-sorting-by-column")));new StatsOptions(a,$("#stats_options"))});
