text: /*! Widget: columns */
  ;(function ($) {
  'use strict';
  var ts = $.tablesorter = $.tablesorter || {};
  
  ts.addWidget({
  	id: "columns",
  	priority: 30,
  	options : {
  		columns : [ "primary", "secondary", "tertiary" ]
  	},
  	format: function(table, c, wo) {
  		var $tbody, tbodyIndex, $rows, rows, $row, $cells, remove, indx,
  			$table = c.$table,
  			$tbodies = c.$tbodies,
  			sortList = c.sortList,
  			len = sortList.length,
  			// removed c.widgetColumns support
  			css = wo && wo.columns || [ "primary", "secondary", "tertiary" ],
  			last = css.length - 1;
  			remove = css.join(' ');
  		// check if there is a sort (on initialization there may not be one)
  		for (tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) {
  			$tbody = ts.processTbody(table, $tbodies.eq(tbodyIndex), true); // detach tbody
  			$rows = $tbody.children('tr');
  			// loop through the visible rows
  			$rows.each(function() {
  				$row = $(this);
  				if (this.style.display !== 'none') {
  					// remove all columns class names
  					$cells = $row.children().removeClass(remove);
  					// add appropriate column class names
  					if (sortList && sortList[0]) {
  						// primary sort column class
  						$cells.eq(sortList[0][0]).addClass(css[0]);
  						if (len > 1) {
  							for (indx = 1; indx < len; indx++) {
  								// secondary, tertiary, etc sort column classes
  								$cells.eq(sortList[indx][0]).addClass( css[indx] || css[last] );
  							}
  						}
  					}
  				}
  			});
  			ts.processTbody(table, $tbody, false);
  		}
  		// add classes to thead and tfoot
  		rows = wo.columns_thead !== false ? ['thead tr'] : [];
  		if (wo.columns_tfoot !== false) {
  			rows.push('tfoot tr');
  		}
  		if (rows.length) {
  			$rows = $table.find( rows.join(',') ).children().removeClass(remove);
  			if (len) {
  				for (indx = 0; indx < len; indx++) {
  					// add primary. secondary, tertiary, etc sort column classes
  					$rows.filter('[data-column="' + sortList[indx][0] + '"]').addClass(css[indx] || css[last]);
  				}
  			}
  		}
  	},
  	remove: function(table, c, wo) {
  		var tbodyIndex, $tbody,
  			$tbodies = c.$tbodies,
  			remove = (wo.columns || [ "primary", "secondary", "tertiary" ]).join(' ');
  		c.$headers.removeClass(remove);
  		c.$table.children('tfoot').children('tr').children('th, td').removeClass(remove);
  		for (tbodyIndex = 0; tbodyIndex < $tbodies.length; tbodyIndex++ ) {
  			$tbody = ts.processTbody(table, $tbodies.eq(tbodyIndex), true); // remove tbody
  			$tbody.children('tr').each(function() {
  				$(this).children().removeClass(remove);
  			});
  			ts.processTbody(table, $tbody, false); // restore tbody
  		}
  	}
  });
  
  })(jQuery);
  