var scorecard_percentage_steps = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110];

window.addEvent('domready', function() {
  $$('table.scorecard').each(function(scorecard) {
    table_rows = scorecard.getElements('tr');
  
    // The reference column is determined by a class name in the first (header) row of the table.
    // All columns after the reference column will be colour-coded as a percentage of the
    // reference column's value in that row (see above!).
    first_row_cells = table_rows[0].getElements('th');
    reference_column_id = null;
    for (var i = 0; i < first_row_cells.length; i++) {
      if (first_row_cells[i].hasClass('reference-column')) {
        reference_column_id = i;
        break;
      }
    }
    
    add_total_column_header_to_row(table_rows[0]);
    
    if (reference_column_id == null) {
      return;
    }
  
    table_rows.each(function(tr) {
      var row_cells = tr.getElements('td');
      if (row_cells.length == 0) {
        return;
      }
      
      var reference_cell = row_cells[reference_column_id];
    
      if (reference_cell) {
        var reference_cell_value = parseInt(reference_cell.innerHTML);
      }
      
      row_cells[reference_column_id].addClass('reference-column');
      
      
      for (var i = reference_column_id + 1; i < row_cells.length; i++) {
        var cell = row_cells[i];
        var cell_numerical_value = parseInt(cell.innerHTML.replace(/(<.*?>)/g, ''));
        if (isNaN(cell_numerical_value)) {
          cell.addClass('not-a-number');
        } else {
          var cell_highlight_percentage = cell_numerical_value / reference_cell_value * 100.0;
          var j = 0;
          while (j < scorecard_percentage_steps.length && scorecard_percentage_steps[j] <= cell_highlight_percentage) {
            highlighted_percentage = scorecard_percentage_steps[j];
            j++;
          }
    
          cell.addClass('highlight-' + highlighted_percentage);
        }
      }
    });
  });
});

function add_total_column_header_to_row() {
  
}