text: ﻿/*! tablesorter repeatHeaders widget - updated 4/12/2013
  * Requires tablesorter v2.8+ and jQuery 1.7+
  * Original by Christian Bach from the example-widgets.html demo
  */
  /*global jQuery: false */
  ;(function($){
    "use strict";
  
    $.tablesorter.addWidget({
      id: "repeatHeaders",
      priority: 10,
      options: {
        rowsToSkip : 4
      },
      // format is called on init and when a sorting has finished
      format: function(table, c, wo) {
        var h = '', i, $tr, l, skip;
        // cache and collect all TH headers
        if (!wo.repeatHeaders) {
          h = '<tr class="repeated-header remove-me">';
          $.each(c.headerContent, function(i,t) {
            h += '<th>' + t + '</th>';
          });
          // "remove-me" class was added in case the table needs to be updated, the "remove-me" rows will be
          // removed prior to the update to prevent including the rows in the update - see "selectorRemove" option
          wo.repeatHeaders = h + '</tr>';
        }
  
        // number of rows to skip
        skip = wo && wo.rowsToSkip || 4;
  
        // remove appended headers by classname
        c.$table.find("tr.repeated-header").remove();
        $tr = c.$tbodies.find('tr');
        l = $tr.length;
        // loop all tr elements and insert a copy of the "headers"
        for (i = skip; i < l; i += skip) {
          // insert a copy of the table head every X rows
          $tr.eq(i).before(wo.repeatHeaders);
        }
      },
      // this remove function is called when using the refreshWidgets method or when destroying the tablesorter plugin
      // this function only applies to tablesorter v2.4+
      remove: function(table, c){
        c.$table.find("tr.repeated-header").remove();
      }
  
    });
  
  })(jQuery);
  