initSortableTables = function() {
  if(!jQuery.fn.tableSorter) return;

  jQuery.tableSorter.parsers.progressBar = {
          id: 'progressBar',
          is: function(s) {
            return s.match(/(\d+)\%/);
          },
          format: function(s) {
            return s.match(/(\d+)\%/)[1];
          },
          filter: 'numeric',
          sorter: jQuery.tableSorter.sorters.numeric
  };
  jQuery.tableSorter.analyzer.add(jQuery.tableSorter.parsers.progressBar); 

  /// For CivicView Projects flag, we need to sort in red, yellow, green order
  jQuery.tableSorter.parsers.civicFlag = {
          id: 'civicFlag',
          is: function(s) {
            return s.match(/Flag_(\w+)/);
          },
          format: function(s) {
            var map = {red: 0, yellow: 1, green: 2, none: 9999};
            var color = s.match(/Flag_(\w+)/)[1];
            return map[color];
          },
          filter: 'numeric',
          sorter: jQuery.tableSorter.sorters.numeric
  };
  jQuery.tableSorter.analyzer.add_to_front(jQuery.tableSorter.parsers.civicFlag);
  
  jQuery("table.data_panel.sortable").tableSorter({
    sortClassAsc: 'sortUp', // class name for asc sorting action
    sortClassDesc: 'sortDown', // class name for desc sorting action
    stripingRowClass: ['even','odd'],
    stripRowsOnStartUp: false,
    disableHeader: jQuery('#assigned_head'),
    headerClass: 'largeHeaders', // class name for headers (th's)
    dateFormat: 'dd/mm/yyyy' // set date format for non iso dates default us, in this case override and set uk-format
  });
  
  
  // We dont want the largeheaders hijacking out nice new item_list table
  jQuery("table.item_list.sortable").tableSorter({
    sortClassAsc: 'sortUp', // class name for asc sorting action
    sortClassDesc: 'sortDown', // class name for desc sorting action
    stripingRowClass: ['even','odd'],
    stripRowsOnStartUp: false,
    disableHeader: jQuery('#assigned_head'),
    headerClass: 'list_item_header', // class name for headers (th's)
    dateFormat: 'mm/dd/yyyy' // set date format for non iso dates default us, in this case override and set uk-format
  });
  
  jQuery("table.item_list").stripeTable();
  
};



if(jQuery.tableSorter){
  jQuery.tableSorter.parsers.progressBar = {
          id: 'progressBar',
          is: function(s) {
            return s.match(/(\d+)\%/);
          },
          format: function(s) {
            return s.match(/(\d+)\%/)[1];
          },
          filter: 'numeric',
          sorter: jQuery.tableSorter.sorters.numeric
  };
  jQuery.tableSorter.analyzer.add(jQuery.tableSorter.parsers.progressBar); 
}


jQuery(document).ready(function() {
  initSortableTables();
});
