(function($){$.fn.tablesorter=function(){this.each(function(){new TableSorter(this);});};function TableSorter(el){this.el=$(el);this.headers=this.el.find('.thead');this.init();};TableSorter.prototype.extend=$.extend;TableSorter.prototype.extend({init:function(){var self=this;this.headers.find('th').hover(function(){$(this).addClass('hover');},function(){$(this).removeClass('hover');});this.headers.delegate('th',' click',function(e){e.preventDefault();var $t=$(this),order='asc';if($t.hasClass('asc')){order='desc';}
var column=$t.parent().children().index($t);var rows=self.el.find('tr:not(.thead, .tfoot)').filter(function(){return!($(this).parent().get(0).tagName.toLowerCase()=='tfoot');}).remove().get();$.each(rows,function(index,row){var key=$(row).children('td').eq(column).text().toUpperCase();var number=parseFloat(key.replace(/^[^\d.]*/,''));row.sortKey=isNaN(number)?key:number;})
rows.sort(function(a,b){if(a.sortKey<b.sortKey)return-1;if(a.sortKey>b.sortKey)return 1;return 0;});var first_header=self.headers.first();if(order=='asc'){rows.reverse();}
$.each(rows,function(i,row){row.className=i%2==0?'even':'odd';first_header.after(row);row.sortKey=null;});self.headers.find('.orderby').removeClass().end().each(function(){$(this).children().eq(column).addClass('orderby '+order);});});}});})(jQuery);
