Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

character equivalents & language wiki page

  • Loading branch information...
commit 0c2c9a718d83418fefc140128d3ff9fcaeb3ff68 1 parent 8a6f3e2
@Mottie authored
View
BIN  README.markdown
Binary file not shown
View
26 docs/example-locale-sort.html
@@ -40,14 +40,14 @@
*/
// modify the above defaults as follows
$.extend( $.tablesorter.characterEquivalents, {
- "ae" : "\u00e6;", // expanding characters æ Æ
- "AE" : "\u00c6;",
- "oe" : "\u00f6;\u0153;", // œ Œ
- "OE" : "\u00d6;\u0152;",
- "d" : "\u00f0;", // Eth (ð Ð)
- "D" : "\u00d0;",
- "o" : "\u00f3;\u00f2;\u00f4;\u00f5;", // remove ö because it's in the oe now
- "O" : "\u00d3;\u00d2;\u00d4;\u00d5;" // remove Ö because it's in the OE now
+ "ae" : "\u00e6", // expanding characters æ Æ
+ "AE" : "\u00c6",
+ "oe" : "\u00f6\u0153", // œ Œ
+ "OE" : "\u00d6\u0152",
+ "d" : "\u00f0", // Eth (ð Ð)
+ "D" : "\u00d0",
+ "o" : "\u00f3\u00f2\u00f4\u00f5", // remove ö because it's in the oe now
+ "O" : "\u00d3\u00d2\u00d4\u00d5" // remove Ö because it's in the OE now
});
$("table").tablesorter({
@@ -66,6 +66,16 @@
<a href="index.html">Back to documentation</a>
</div>
<div id="main">
+
+ <p class="tip">
+ <em>NOTE!</em>
+ <ul>
+ <li>Accented characters will get replaced by their character equivalent when the <code class="hilight">sortLocaleCompare</code> option is <code class="hilight">true</code>.</li>
+ <li>In the javascript code block below you can see the default <code class="hilight">$.tablesorter.characterEquivalents</code> table and an example of how to extend it to include other equivalents.</li>
+ <li>If you have a specific language requirement, please refer to the <a href="https://github.com/Mottie/tablesorter/wiki/Language">Language</a> wiki pages to see if it is there. If not, please consider sharing the code or even just share the character equivalents themselves.</li>
+ </ul>
+ </p>
+
<h1>Demo</h1>
<div id="demo"><table class="tablesorter">
<thead>
View
3  docs/index.html
@@ -878,6 +878,9 @@
}
});</pre></li>
</ul>
+ <p class="tip">
+ <em>NOTE:</em> See the <a href="https://github.com/Mottie/tablesorter/wiki/Language">Language</a> wiki page for language specific examples and how to extend the character equivalent tables seen in the <a href="example-locale-sort.html">sortLocaleCompare demo</a>.
+ </p>
<del>Boolean flag indicating whenever to use javascript <code class="hilight">String.localeCompare</code> method or not.<br>
This is only used when comparing text with international character strings. A sort using localeCompare will sort accented characters the same as their unaccented counterparts.</del>
</div>
View
5 js/jquery.tablesorter.js
@@ -1,5 +1,5 @@
/*!
-* TableSorter 2.3.7 - Client-side table sorting with ease!
+* TableSorter 2.3.8 - Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
* Copyright (c) 2007 Christian Bach
@@ -18,7 +18,7 @@
$.extend({
tablesorter: new function() {
- this.version = "2.3.7";
+ this.version = "2.3.8";
var parsers = [], widgets = [];
this.defaults = {
@@ -640,7 +640,6 @@
downTime = new Date().getTime();
return !c.cancelSelection;
}
-
// prevent resizable widget from initializing a sort (long clicks are ignored)
if (external !== true && (new Date().getTime() - downTime > 500)) { return false; }
if (c.delayInit && !c.cache) { buildCache($this[0]); }
View
4 js/jquery.tablesorter.min.js
@@ -1,6 +1,6 @@
/*!
-* TableSorter 2.3.7 - Client-side table sorting with ease!
+* TableSorter 2.3.8 - Client-side table sorting with ease!
* Minified using UglifyJS (http://jscompress.com/)
* Copyright (c) 2007 Christian Bach
*/
-!function($){$.extend({tablesorter:new function(){function log(a){if(typeof console!=="undefined"&&typeof console.log!=="undefined"){console.log(a)}else{alert(a)}}function benchmark(a,b){log(a+" ("+((new Date).getTime()-b.getTime())+"ms)")}function getElementText(a,b,c){if(!b){return""}var d=a.config,e=d.textExtraction,f="";if(e==="simple"){if(d.supportsTextContent){f=b.textContent}else{if(b.childNodes[0]&&b.childNodes[0].hasChildNodes()){f=b.childNodes[0].innerHTML}else{f=b.innerHTML}}}else{if(typeof e==="function"){f=e(b,a,c)}else if(typeof e==="object"&&e.hasOwnProperty(c)){f=e[c](b,a,c)}else{f=d.supportsTextContent?b.textContent:$(b).text()}}return $.trim(f)}function getParserById(a){var b,c=parsers.length;for(b=0;b<c;b++){if(parsers[b].id.toLowerCase()===a.toString().toLowerCase()){return parsers[b]}}return false}function detectParserForColumn(a,b,c,d){var e,f=parsers.length,g=false,h="",i=true;while(h===""&&i){c++;if(b[c]){g=b[c].cells[d];h=getElementText(a,g,d);if(a.config.debug){log("Checking if value was empty on row "+c+", column: "+d+": "+h)}}else{i=false}}for(e=1;e<f;e++){if(parsers[e].is(h,a,g)){return parsers[e]}}return parsers[0]}function buildParserCache(a,b){var c=a.config,d=$(a.tBodies).filter(":not(."+c.cssInfoBlock+")"),e=$.tablesorter,f,g,h,i,j,k,l,m,n,o="";if(d.length===0){return}f=d[0].rows;if(f[0]){g=[];h=f[0].cells.length;for(i=0;i<h;i++){j=b.filter(':not([colspan])[data-column="'+i+'"]:last,[colspan="1"][data-column="'+i+'"]:last');l=c.headers[i];n=getParserById(e.getData(j,l,"sorter"));c.empties[i]=e.getData(j,l,"empty")||c.emptyTo||(c.emptyToBottom?"bottom":"top");c.strings[i]=e.getData(j,l,"string")||c.stringTo||"max";if(!n){n=detectParserForColumn(a,f,-1,i)}if(c.debug){o+="column:"+i+"; parser:"+n.id+"; string:"+c.strings[i]+"; empty: "+c.empties[i]+"\n"}g.push(n)}}if(c.debug){log(o)}return g}function buildCache(a){var b=a.tBodies,c=a.config,d,e,f=c.parsers,g,h,i,j,k,l,m;c.cache={};if(c.debug){m=new Date}for(j=0;j<b.length;j++){c.cache[j]={row:[],normalized:[]};if(!$(b[j]).hasClass(c.cssInfoBlock)){$(b[j]).addClass("tablesorter-hidden");d=b[j]&&b[j].rows.length||0;e=b[j].rows[0]&&b[j].rows[0].cells.length||0;for(h=0;h<d;++h){k=$(b[j].rows[h]);l=[];if(k.hasClass(c.cssChildRow)){c.cache[j].row[c.cache[j].row.length-1]=c.cache[j].row[c.cache[j].row.length-1].add(k);continue}c.cache[j].row.push(k);for(i=0;i<e;++i){g=getElementText(a,k[0].cells[i],i);l.push(f[i].format(g,a,k[0].cells[i],i))}l.push(c.cache[j].normalized.length);c.cache[j].normalized.push(l)}$(b[j]).removeClass("tablesorter-hidden")}}if(c.debug){benchmark("Building cache for "+d+" rows",m)}}function getWidgetById(a){var b,c,d=widgets.length;for(b=0;b<d;b++){c=widgets[b];if(c&&c.hasOwnProperty("id")&&c.id.toLowerCase()===a.toLowerCase()){return c}}}function applyWidget(a,b){var c=a.config,d=c.widgets,e,f,g,h=d.length;if(c.debug){e=new Date}for(f=0;f<h;f++){g=getWidgetById(d[f]);if(g){if(b===true&&g.hasOwnProperty("init")){g.init(a,widgets,g)}else if(!b&&g.hasOwnProperty("format")){g.format(a)}}}if(c.debug){benchmark("Completed "+(b===true?"initializing":"applying")+" widgets",e)}}function appendToTable(a,b){var c=a.config,d=a.tBodies,e=[],f,g,h,i,j=c.cache,k,l,m,n,o,p,q;if(c.debug){q=new Date}for(n=0;n<d.length;n++){if(!$(d[n]).hasClass(c.cssInfoBlock)){$(d[n]).addClass("tablesorter-hidden");k=document.createDocumentFragment();f=j[n].row;g=j[n].normalized;h=g.length;i=h?g[0].length-1:0;for(l=0;l<h;l++){p=g[l][i];e.push(f[p]);if(!c.appender||!c.removeRows){o=f[p].length;for(m=0;m<o;m++){k.appendChild(f[p][m])}}}a.tBodies[n].appendChild(k);$(d[n]).removeClass("tablesorter-hidden")}}if(c.appender){c.appender(a,e)}if(c.debug){benchmark("Rebuilt table",q)}if(!b){applyWidget(a)}$(a).trigger("sortEnd",a)}function computeThIndexes(a){var b=[],c={},d=$(a).find("thead:eq(0) tr"),e,f,g,h,i,j,k,l,m,n,o,p;for(e=0;e<d.length;e++){j=d[e].cells;for(f=0;f<j.length;f++){i=j[f];k=i.parentNode.rowIndex;l=k+"-"+i.cellIndex;m=i.rowSpan||1;n=i.colSpan||1;if(typeof b[k]==="undefined"){b[k]=[]}for(g=0;g<b[k].length+1;g++){if(typeof b[k][g]==="undefined"){o=g;break}}c[l]=o;$(i).attr({"data-column":o});for(g=k;g<k+m;g++){if(typeof b[g]==="undefined"){b[g]=[]}p=b[g];for(h=o;h<o+n;h++){p[h]="x"}}}}return c}function formatSortingOrder(a){return/^d/i.test(a)||a===1}function buildHeaders(a){var b=computeThIndexes(a),c,d,e,f,g,h,i=a.config,j=$.tablesorter;i.headerList=[];if(i.debug){g=new Date}h=$(a).find(i.selectorHeaders).each(function(a){d=$(this);c=i.headers[a];this.innerHTML='<div class="tablesorter-header-inner">'+this.innerHTML+"</div>";if(i.onRenderHeader){i.onRenderHeader.apply(e,[a])}this.column=b[this.parentNode.rowIndex+"-"+this.cellIndex];this.order=formatSortingOrder(j.getData(d,c,"sortInitialOrder")||i.sortInitialOrder)?[1,0,2]:[0,1,2];this.count=-1;if(j.getData(d,c,"sorter")==="false"){this.sortDisabled=true}this.lockedOrder=false;f=j.getData(d,c,"lockedOrder")||false;if(typeof f!=="undefined"&&f!==false){this.order=this.lockedOrder=formatSortingOrder(f)?[1,1,1]:[0,0,0]}if(!this.sortDisabled){e=d.addClass(i.cssHeader)}i.headerList[a]=this;d.parent().addClass(i.cssHeader)});if(a.config.debug){benchmark("Built headers:",g);log(h)}return h}function isValueInArray(a,b){var c,d=b.length;for(c=0;c<d;c++){if(b[c][0]===a){return true}}return false}function setHeadersCss(a,b,c){var d,e=[],f,g,h,i=[a.config.cssDesc,a.config.cssAsc];b.removeClass(i.join(" ")).each(function(){if(!this.sortDisabled){e[this.column]=$(this)}});h=c.length;for(f=0;f<h;f++){if(c[f][1]===2){continue}if(e[c[f][0]]){e[c[f][0]].addClass(i[c[f][1]])}d=b.filter('[data-column="'+c[f][0]+'"]');if(h>1&&d.length){for(g=0;g<d.length;g++){if(!d[g].sortDisabled){$(d[g]).addClass(i[c[f][1]])}}}}}function fixColumnWidth(a){if(a.config.widthFixed){var b=$("<colgroup>");$("tr:first td",a.tBodies[0]).each(function(){b.append($("<col>").css("width",$(this).width()))});$(a).prepend(b)}}function updateHeaderSortCount(a,b){var c,d,e,f=a.config,g=b.length;for(c=0;c<g;c++){d=b[c];e=f.headerList[d[0]];e.count=d[1]%(f.sortReset?3:2)}}function getCachedSortType(a,b){return a&&a[b]?a[b].type||"":""}function multisort(table,sortList){var dynamicExp,col,mx=0,dir=0,tc=table.config,l=sortList.length,bl=table.tBodies.length,sortTime,i,j,k,c,cache,lc,s,e,order,orgOrderCol;if(tc.debug){sortTime=new Date}for(k=0;k<bl;k++){dynamicExp="var sortWrapper = function(a,b) {";cache=tc.cache[k];lc=cache.normalized.length;for(i=0;i<l;i++){c=sortList[i][0];order=sortList[i][1];s=/n/i.test(getCachedSortType(tc.parsers,c))?"Numeric":"Text";s+=order===0?"":"Desc";e="e"+i;if(/Numeric/.test(s)&&tc.strings[c]){for(j=0;j<lc;j++){col=Math.abs(parseFloat(cache.normalized[j][c]));mx=Math.max(mx,isNaN(col)?0:col)}if(typeof tc.string[tc.strings[c]]==="boolean"){dir=(order===0?1:-1)*(tc.string[tc.strings[c]]?-1:1)}else{dir=tc.strings[c]?tc.string[tc.strings[c]]||0:0}}dynamicExp+="var "+e+" = sort"+s+"(table,a["+c+"],b["+c+"],"+c+","+mx+","+dir+"); ";dynamicExp+="if ("+e+") { return "+e+"; } ";dynamicExp+="else { "}orgOrderCol=cache.normalized&&cache.normalized[0]?cache.normalized[0].length-1:0;dynamicExp+="return a["+orgOrderCol+"]-b["+orgOrderCol+"];";for(i=0;i<l;i++){dynamicExp+="}; "}dynamicExp+="return 0; ";dynamicExp+="}; ";eval(dynamicExp);cache.normalized.sort(sortWrapper)}if(tc.debug){benchmark("Sorting on "+sortList.toString()+" and dir "+order+" time",sortTime)}}function sortText(a,b,c,d){if(b===c){return 0}var e=a.config,f=e.string[e.empties[d]||e.emptyTo],g=$.tablesorter.regex,h,i,j,k,l,m,n,o;if(b===""&&f!==0){return typeof f==="boolean"?f?-1:1:-f||-1}if(c===""&&f!==0){return typeof f==="boolean"?f?1:-1:f||1}if(typeof e.textSorter==="function"){return e.textSorter(b,c,a,d)}h=b.replace(g[0],"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0");j=c.replace(g[0],"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0");i=parseInt(b.match(g[2]))||h.length!==1&&b.match(g[1])&&Date.parse(b);k=parseInt(c.match(g[2]))||i&&c.match(g[1])&&Date.parse(c)||null;if(k){if(i<k){return-1}if(i>k){return 1}}o=Math.max(h.length,j.length);for(n=0;n<o;n++){l=!(h[n]||"").match(g[3])&&parseFloat(h[n])||h[n]||0;m=!(j[n]||"").match(g[3])&&parseFloat(j[n])||j[n]||0;if(isNaN(l)!==isNaN(m)){return isNaN(l)?1:-1}if(typeof l!==typeof m){l+="";m+=""}if(l<m){return-1}if(l>m){return 1}}return 0}function sortTextDesc(a,b,c,d){if(b===c){return 0}var e=a.config,f=e.string[e.empties[d]||e.emptyTo];if(b===""&&f!==0){return typeof f==="boolean"?f?-1:1:f||1}if(c===""&&f!==0){return typeof f==="boolean"?f?1:-1:-f||-1}if(typeof e.textSorter==="function"){return e.textSorter(c,b,a,d)}return sortText(a,c,b)}function getTextValue(a,b,c){if(b){var d,e=a.length,f=b+c;for(d=0;d<e;d++){f+=a.charCodeAt(d)}return c*f}return 0}function sortNumeric(a,b,c,d,e,f){if(b===c){return 0}var g=a.config,h=g.string[g.empties[d]||g.emptyTo];if(b===""&&h!==0){return typeof h==="boolean"?h?-1:1:-h||-1}if(c===""&&h!==0){return typeof h==="boolean"?h?1:-1:h||1}if(isNaN(b)){b=getTextValue(b,e,f)}if(isNaN(c)){c=getTextValue(c,e,f)}return b-c}function sortNumericDesc(a,b,c,d,e,f){if(b===c){return 0}var g=a.config,h=g.string[g.empties[d]||g.emptyTo];if(b===""&&h!==0){return typeof h==="boolean"?h?-1:1:h||1}if(c===""&&h!==0){return typeof h==="boolean"?h?1:-1:-h||-1}if(isNaN(b)){b=getTextValue(b,e,f)}if(isNaN(c)){c=getTextValue(c,e,f)}return c-b}this.version="2.3.7";var parsers=[],widgets=[];this.defaults={widthFixed:false,cancelSelection:true,dateFormat:"mmddyyyy",sortMultiSortKey:"shiftKey",usNumberFormat:true,delayInit:false,headers:{},ignoreCase:true,sortForce:null,sortList:[],sortAppend:null,sortInitialOrder:"asc",sortLocaleCompare:false,sortReset:false,sortRestart:false,emptyTo:"bottom",stringTo:"max",textExtraction:"simple",textSorter:null,widgets:[],widgetOptions:{zebra:["even","odd"]},initWidgets:true,initialized:null,onRenderHeader:null,tableClass:"tablesorter",cssAsc:"tablesorter-headerSortUp",cssChildRow:"expand-child",cssDesc:"tablesorter-headerSortDown",cssHeader:"tablesorter-header",cssInfoBlock:"tablesorter-infoOnly",selectorHeaders:"> thead th",selectorRemove:"tr.remove-me",debug:false,headerList:[],empties:{},strings:{},parsers:[]};this.benchmark=benchmark;this.hasInitialized=false;this.construct=function(a){return this.each(function(){if(!this.tHead||this.tBodies.length===0){return}var b,c,d,e,f,g,h,i,j,k,l,m,n=$.metadata;this.config={};f=e=$.extend(true,this.config,$.tablesorter.defaults,a);if(f.debug){$.data(this,"startoveralltimer",new Date)}d=$(this).addClass(f.tableClass);$.data(this,"tablesorter",f);f.supportsTextContent=$("<span>x</span>")[0].textContent==="x";f.string={max:1,min:-1,"max+":1,"max-":-1,zero:0,none:0,"null":0,top:true,bottom:false};b=buildHeaders(this);f.parsers=buildParserCache(this,b);if(!f.delayInit){buildCache(this)}fixColumnWidth(this);b.bind("mousedown.tablesorter mouseup.tablesorter",function(a,e){if(a.type==="mousedown"){m=(new Date).getTime();return!f.cancelSelection}if(e!==true&&(new Date).getTime()-m>500){return false}if(f.delayInit&&!f.cache){buildCache(d[0])}if(!this.sortDisabled){d.trigger("sortStart",d[0]);c=$(this);i=!a[f.sortMultiSortKey];this.count=(this.count+1)%(f.sortReset?3:2);if(f.sortRestart){g=this;b.each(function(){if(this!==g&&(i||!$(this).is("."+f.cssDesc+",."+f.cssAsc))){this.count=-1}})}g=this.column;if(i){f.sortList=[];if(f.sortForce!==null){j=f.sortForce;for(h=0;h<j.length;h++){if(j[h][0]!==g){f.sortList.push(j[h])}}}l=this.order[this.count];if(l<2){f.sortList.push([g,l]);if(this.colSpan>1){for(h=1;h<this.colSpan;h++){f.sortList.push([g+h,l])}}}}else{if(isValueInArray(g,f.sortList)){for(h=0;h<f.sortList.length;h++){k=f.sortList[h];l=f.headerList[k[0]];if(k[0]===g){k[1]=l.order[l.count];if(k[1]===2){f.sortList.splice(h,1);l.count=-1}}}}else{l=this.order[this.count];if(l<2){f.sortList.push([g,l]);if(this.colSpan>1){for(h=1;h<this.colSpan;h++){f.sortList.push([g+h,l])}}}}}if(f.sortAppend!==null){j=f.sortAppend;for(h=0;h<j.length;h++){if(j[h][0]!==g){f.sortList.push(j[h])}}}d.trigger("sortBegin",d[0]);setHeadersCss(d[0],b,f.sortList);multisort(d[0],f.sortList);appendToTable(d[0]);return false}});if(f.cancelSelection){b.each(function(){this.onselectstart=function(){return false}})}d.bind("update",function(a,c){$(f.selectorRemove,this).remove();f.parsers=buildParserCache(this,b);buildCache(this);if(c!==false){$(this).trigger("sorton",[f.sortList])}}).bind("updateCell",function(a,b,c){var d=this,e=$(this).find("tbody"),g,h,i=e.index($(b).closest("tbody"));g=e.eq(i).find("tr").index($(b).closest("tr"));h=[g,b.cellIndex];d.config.cache[i].normalized[h[0]][h[1]]=f.parsers[h[1]].format(getElementText(d,b,h[1]),d,b,h[1]);if(c!==false){$(this).trigger("sorton",[f.sortList])}}).bind("addRows",function(a,b,c){var d,e=b.filter("tr").length,g=[],i=b[0].cells.length,j=this,k=$(this).find("tbody").index(b.closest("tbody"));for(d=0;d<e;d++){for(h=0;h<i;h++){g[h]=f.parsers[h].format(getElementText(j,b[d].cells[h],h),j,b[d].cells[h],h)}g.push(f.cache[k].row.length);f.cache[k].row.push([b[d]]);f.cache[k].normalized.push(g);g=[]}if(c!==false){$(this).trigger("sorton",[f.sortList])}}).bind("sorton",function(a,c,d){$(this).trigger("sortStart",this);f.sortList=c;updateHeaderSortCount(this,f.sortList);setHeadersCss(this,b,f.sortList);multisort(this,f.sortList);appendToTable(this,d)}).bind("appendCache",function(a,b){appendToTable(this,b)}).bind("applyWidgetId",function(a,b){getWidgetById(b).format(this)}).bind("applyWidgets",function(a,b){applyWidget(this,b)}).bind("destroy",function(a,b){$.tablesorter.destroy(this,b)});if(d.data()&&typeof d.data().sortlist!=="undefined"){f.sortList=d.data().sortlist}else if(n&&d.metadata()&&d.metadata().sortlist){f.sortList=d.metadata().sortlist}applyWidget(this,true);if(f.sortList.length>0){d.trigger("sorton",[f.sortList,!f.initWidgets])}else if(f.initWidgets){applyWidget(this)}this.hasInitialized=true;if(f.debug){$.tablesorter.benchmark("Overall initialization time",$.data(this,"startoveralltimer"))}d.trigger("tablesorter-initialized",this);if(typeof f.initialized==="function"){f.initialized(this)}})};this.destroy=function(a,b){var c=$(a),d=a.config;c.find("thead:first tr:not(."+d.cssHeader+")").remove();c.find("thead:first .tablesorter-resizer").remove();c.unbind("update updateCell addRows sorton appendCache applyWidgetId applyWidgets destroy mouseup mouseleave").find(d.selectorHeaders).unbind("click mousedown mousemove mouseup").removeClass(d.cssHeader+" "+d.cssAsc+" "+d.cssDesc);if(b!==false){c.removeClass(d.tableClass)}};this.addParser=function(a){var b,c=parsers.length,d=true;for(b=0;b<c;b++){if(parsers[b].id.toLowerCase()===a.id.toLowerCase()){d=false}}if(d){parsers.push(a)}};this.addWidget=function(a){widgets.push(a)};this.formatFloat=function(a,b){if(typeof a!=="string"||a===""){return a}if(b.config.usNumberFormat!==false){a=a.replace(/,/g,"")}else{a=a.replace(/[\s|\.]/g,"").replace(/,/g,".")}if(/^\s*\([.\d]+\)/.test(a)){a=a.replace(/^\s*\(/,"-").replace(/\)/,"")}var c=parseFloat(a);return isNaN(c)?$.trim(a):c};this.isDigit=function(a){return/^[\-+(]?\d*[)]?$/.test(a.replace(/[,.'\s]/g,""))};this.regex=[/(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi,/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,/^0x[0-9a-f]+$/i,/^0/];this.characterEquivalents={a:"áàâãä",A:"ÁÀÂÃÄ",c:"ç",C:"Ç",e:"éèêë",E:"ÉÈÊË",i:"íìIîï",I:"ÍÌIÎÏ",o:"óòôõö",O:"ÓÒÔÕÖ",S:"ß",u:"úùûü",U:"ÚÙÛÜ"};this.replaceAccents=function(a){var b,c="[",d=this.characterEquivalents;if(!this.characterRegex){this.characterRegexArray={};for(b in d){if(typeof b==="string"){c+=d[b];this.characterRegexArray[b]=new RegExp("["+d[b]+"]","g")}}this.characterRegex=new RegExp(c+"]")}if(this.characterRegex.test(a)){for(b in d){if(typeof b==="string"){a=a.replace(this.characterRegexArray[b],b)}}}return a};this.getData=function(a,b,c){var d="",e=$(a),f,g;if(!e.length){return""}f=$.metadata?e.metadata():false;g=" "+(e.attr("class")||"");if(e.data()&&(typeof e.data(c)!=="undefined"||typeof e.data(c.toLowerCase())!=="undefined")){d+=e.data(c)||e.data(c.toLowerCase())}else if(f&&typeof f[c]!=="undefined"){d+=f[c]}else if(b&&typeof b[c]!=="undefined"){d+=b[c]}else if(g&&g.match(" "+c+"-")){d=g.match(new RegExp(" "+c+"-(\\w+)"))[1]||""}return $.trim(d)};this.clearTableBody=function(a){$(a.tBodies).filter(":not(."+a.config.cssInfoBlock+")").empty()}}})();var ts=$.tablesorter;$.fn.extend({tablesorter:ts.construct});ts.addParser({id:"text",is:function(a,b,c){return true},format:function(a,b,c,d){var e=b.config;a=$.trim(e.ignoreCase?a.toLocaleLowerCase():a);return e.sortLocaleCompare?ts.replaceAccents(a):a},type:"text"});ts.addParser({id:"currency",is:function(a){return/^\(?[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+/.test(a)},format:function(a,b){return ts.formatFloat(a.replace(/[^\w,. \-()]/g,""),b)},type:"numeric"});ts.addParser({id:"ipAddress",is:function(a){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(a)},format:function(a,b){var c,d,e=a.split("."),f="",g=e.length;for(c=0;c<g;c++){d=e[c];if(d.length===2){f+="0"+d}else{f+=d}}return ts.formatFloat(f,b)},type:"numeric"});ts.addParser({id:"url",is:function(a){return/^(https?|ftp|file):\/\//.test(a)},format:function(a){return $.trim(a.replace(/(https?|ftp|file):\/\//,""))},type:"text"});ts.addParser({id:"isoDate",is:function(a){return/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(a)},format:function(a,b){return ts.formatFloat(a!==""?(new Date(a.replace(/-/g,"/"))).getTime()||"":"",b)},type:"numeric"});ts.addParser({id:"percent",is:function(a){return/\d%\)?$/.test(a)},format:function(a,b){return ts.formatFloat(a.replace(/%/g,""),b)},type:"numeric"});ts.addParser({id:"usLongDate",is:function(a){return a.match(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/)},format:function(a,b){return ts.formatFloat((new Date(a)).getTime()||"",b)},type:"numeric"});ts.addParser({id:"shortDate",is:function(a){return/^(\d{2}|\d{4})[\/\-\,\.\s+]\d{2}[\/\-\.\,\s+](\d{2}|\d{4})$/.test(a)},format:function(a,b,c,d){var e=b.config,f=e.headerList[d],g=f.shortDateFormat;if(typeof g==="undefined"){g=f.shortDateFormat=ts.getData(f,e.headers[d],"dateFormat")||e.dateFormat}a=a.replace(/\s+/g," ").replace(/[\-|\.|\,]/g,"/");if(g==="mmddyyyy"){a=a.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$1/$2")}else if(g==="ddmmyyyy"){a=a.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$2/$1")}else if(g==="yyyymmdd"){a=a.replace(/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/,"$1/$2/$3")}return ts.formatFloat((new Date(a)).getTime()||"",b)},type:"numeric"});ts.addParser({id:"time",is:function(a){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(a)},format:function(a,b){return ts.formatFloat((new Date("2000/01/01 "+a)).getTime()||"",b)},type:"numeric"});ts.addParser({id:"digit",is:function(a){return ts.isDigit(a)},format:function(a,b){return ts.formatFloat(a.replace(/[^\w,. \-()]/g,""),b)},type:"numeric"});ts.addParser({id:"metadata",is:function(a){return false},format:function(a,b,c){var d=b.config,e=!d.parserMetadataName?"sortValue":d.parserMetadataName;return $(c).metadata()[e]},type:"numeric"});ts.addWidget({id:"zebra",format:function(a){var b,c,d,e,f,g,h,i,j=a.config,k=new RegExp(j.cssChildRow,"i"),l=$(a).children("tbody:not(."+j.cssInfoBlock+")"),m=["even","odd"];m=j.widgetZebra&&j.hasOwnProperty("css")?j.widgetZebra.css:j.widgetOptions&&j.widgetOptions.hasOwnProperty("zebra")?j.widgetOptions.zebra:m;if(j.debug){g=new Date}for(h=0;h<l.length;h++){b=$(l[h]);i=b.children("tr").length;if(i>1){e=0;c=b.find("tr:visible");b.addClass("tablesorter-hidden");c.each(function(){d=$(this);if(!k.test(this.className)){e++}f=e%2===0;d.removeClass(m[f?1:0]).addClass(m[f?0:1])});b.removeClass("tablesorter-hidden")}}if(j.debug){ts.benchmark("Applying Zebra widget",g)}}})}(jQuery)
+!function($){$.extend({tablesorter:new function(){function log(a){if(typeof console!=="undefined"&&typeof console.log!=="undefined"){console.log(a)}else{alert(a)}}function benchmark(a,b){log(a+" ("+((new Date).getTime()-b.getTime())+"ms)")}function getElementText(a,b,c){if(!b){return""}var d=a.config,e=d.textExtraction,f="";if(e==="simple"){if(d.supportsTextContent){f=b.textContent}else{if(b.childNodes[0]&&b.childNodes[0].hasChildNodes()){f=b.childNodes[0].innerHTML}else{f=b.innerHTML}}}else{if(typeof e==="function"){f=e(b,a,c)}else if(typeof e==="object"&&e.hasOwnProperty(c)){f=e[c](b,a,c)}else{f=d.supportsTextContent?b.textContent:$(b).text()}}return $.trim(f)}function getParserById(a){var b,c=parsers.length;for(b=0;b<c;b++){if(parsers[b].id.toLowerCase()===a.toString().toLowerCase()){return parsers[b]}}return false}function detectParserForColumn(a,b,c,d){var e,f=parsers.length,g=false,h="",i=true;while(h===""&&i){c++;if(b[c]){g=b[c].cells[d];h=getElementText(a,g,d);if(a.config.debug){log("Checking if value was empty on row "+c+", column: "+d+": "+h)}}else{i=false}}for(e=1;e<f;e++){if(parsers[e].is(h,a,g)){return parsers[e]}}return parsers[0]}function buildParserCache(a,b){var c=a.config,d=$(a.tBodies).filter(":not(."+c.cssInfoBlock+")"),e=$.tablesorter,f,g,h,i,j,k,l,m,n,o="";if(d.length===0){return}f=d[0].rows;if(f[0]){g=[];h=f[0].cells.length;for(i=0;i<h;i++){j=b.filter(':not([colspan])[data-column="'+i+'"]:last,[colspan="1"][data-column="'+i+'"]:last');l=c.headers[i];n=getParserById(e.getData(j,l,"sorter"));c.empties[i]=e.getData(j,l,"empty")||c.emptyTo||(c.emptyToBottom?"bottom":"top");c.strings[i]=e.getData(j,l,"string")||c.stringTo||"max";if(!n){n=detectParserForColumn(a,f,-1,i)}if(c.debug){o+="column:"+i+"; parser:"+n.id+"; string:"+c.strings[i]+"; empty: "+c.empties[i]+"\n"}g.push(n)}}if(c.debug){log(o)}return g}function buildCache(a){var b=a.tBodies,c=a.config,d,e,f=c.parsers,g,h,i,j,k,l,m;c.cache={};if(c.debug){m=new Date}for(j=0;j<b.length;j++){c.cache[j]={row:[],normalized:[]};if(!$(b[j]).hasClass(c.cssInfoBlock)){$(b[j]).addClass("tablesorter-hidden");d=b[j]&&b[j].rows.length||0;e=b[j].rows[0]&&b[j].rows[0].cells.length||0;for(h=0;h<d;++h){k=$(b[j].rows[h]);l=[];if(k.hasClass(c.cssChildRow)){c.cache[j].row[c.cache[j].row.length-1]=c.cache[j].row[c.cache[j].row.length-1].add(k);continue}c.cache[j].row.push(k);for(i=0;i<e;++i){g=getElementText(a,k[0].cells[i],i);l.push(f[i].format(g,a,k[0].cells[i],i))}l.push(c.cache[j].normalized.length);c.cache[j].normalized.push(l)}$(b[j]).removeClass("tablesorter-hidden")}}if(c.debug){benchmark("Building cache for "+d+" rows",m)}}function getWidgetById(a){var b,c,d=widgets.length;for(b=0;b<d;b++){c=widgets[b];if(c&&c.hasOwnProperty("id")&&c.id.toLowerCase()===a.toLowerCase()){return c}}}function applyWidget(a,b){var c=a.config,d=c.widgets,e,f,g,h=d.length;if(c.debug){e=new Date}for(f=0;f<h;f++){g=getWidgetById(d[f]);if(g){if(b===true&&g.hasOwnProperty("init")){g.init(a,widgets,g)}else if(!b&&g.hasOwnProperty("format")){g.format(a)}}}if(c.debug){benchmark("Completed "+(b===true?"initializing":"applying")+" widgets",e)}}function appendToTable(a,b){var c=a.config,d=a.tBodies,e=[],f,g,h,i,j=c.cache,k,l,m,n,o,p,q;if(c.debug){q=new Date}for(n=0;n<d.length;n++){if(!$(d[n]).hasClass(c.cssInfoBlock)){$(d[n]).addClass("tablesorter-hidden");k=document.createDocumentFragment();f=j[n].row;g=j[n].normalized;h=g.length;i=h?g[0].length-1:0;for(l=0;l<h;l++){p=g[l][i];e.push(f[p]);if(!c.appender||!c.removeRows){o=f[p].length;for(m=0;m<o;m++){k.appendChild(f[p][m])}}}a.tBodies[n].appendChild(k);$(d[n]).removeClass("tablesorter-hidden")}}if(c.appender){c.appender(a,e)}if(c.debug){benchmark("Rebuilt table",q)}if(!b){applyWidget(a)}$(a).trigger("sortEnd",a)}function computeThIndexes(a){var b=[],c={},d=$(a).find("thead:eq(0) tr"),e,f,g,h,i,j,k,l,m,n,o,p;for(e=0;e<d.length;e++){j=d[e].cells;for(f=0;f<j.length;f++){i=j[f];k=i.parentNode.rowIndex;l=k+"-"+i.cellIndex;m=i.rowSpan||1;n=i.colSpan||1;if(typeof b[k]==="undefined"){b[k]=[]}for(g=0;g<b[k].length+1;g++){if(typeof b[k][g]==="undefined"){o=g;break}}c[l]=o;$(i).attr({"data-column":o});for(g=k;g<k+m;g++){if(typeof b[g]==="undefined"){b[g]=[]}p=b[g];for(h=o;h<o+n;h++){p[h]="x"}}}}return c}function formatSortingOrder(a){return/^d/i.test(a)||a===1}function buildHeaders(a){var b=computeThIndexes(a),c,d,e,f,g,h,i=a.config,j=$.tablesorter;i.headerList=[];if(i.debug){g=new Date}h=$(a).find(i.selectorHeaders).each(function(a){d=$(this);c=i.headers[a];this.innerHTML='<div class="tablesorter-header-inner">'+this.innerHTML+"</div>";if(i.onRenderHeader){i.onRenderHeader.apply(e,[a])}this.column=b[this.parentNode.rowIndex+"-"+this.cellIndex];this.order=formatSortingOrder(j.getData(d,c,"sortInitialOrder")||i.sortInitialOrder)?[1,0,2]:[0,1,2];this.count=-1;if(j.getData(d,c,"sorter")==="false"){this.sortDisabled=true}this.lockedOrder=false;f=j.getData(d,c,"lockedOrder")||false;if(typeof f!=="undefined"&&f!==false){this.order=this.lockedOrder=formatSortingOrder(f)?[1,1,1]:[0,0,0]}if(!this.sortDisabled){e=d.addClass(i.cssHeader)}i.headerList[a]=this;d.parent().addClass(i.cssHeader)});if(a.config.debug){benchmark("Built headers:",g);log(h)}return h}function isValueInArray(a,b){var c,d=b.length;for(c=0;c<d;c++){if(b[c][0]===a){return true}}return false}function setHeadersCss(a,b,c){var d,e=[],f,g,h,i=[a.config.cssDesc,a.config.cssAsc];b.removeClass(i.join(" ")).each(function(){if(!this.sortDisabled){e[this.column]=$(this)}});h=c.length;for(f=0;f<h;f++){if(c[f][1]===2){continue}if(e[c[f][0]]){e[c[f][0]].addClass(i[c[f][1]])}d=b.filter('[data-column="'+c[f][0]+'"]');if(h>1&&d.length){for(g=0;g<d.length;g++){if(!d[g].sortDisabled){$(d[g]).addClass(i[c[f][1]])}}}}}function fixColumnWidth(a){if(a.config.widthFixed){var b=$("<colgroup>");$("tr:first td",a.tBodies[0]).each(function(){b.append($("<col>").css("width",$(this).width()))});$(a).prepend(b)}}function updateHeaderSortCount(a,b){var c,d,e,f=a.config,g=b.length;for(c=0;c<g;c++){d=b[c];e=f.headerList[d[0]];e.count=d[1]%(f.sortReset?3:2)}}function getCachedSortType(a,b){return a&&a[b]?a[b].type||"":""}function multisort(table,sortList){var dynamicExp,col,mx=0,dir=0,tc=table.config,l=sortList.length,bl=table.tBodies.length,sortTime,i,j,k,c,cache,lc,s,e,order,orgOrderCol;if(tc.debug){sortTime=new Date}for(k=0;k<bl;k++){dynamicExp="var sortWrapper = function(a,b) {";cache=tc.cache[k];lc=cache.normalized.length;for(i=0;i<l;i++){c=sortList[i][0];order=sortList[i][1];s=/n/i.test(getCachedSortType(tc.parsers,c))?"Numeric":"Text";s+=order===0?"":"Desc";e="e"+i;if(/Numeric/.test(s)&&tc.strings[c]){for(j=0;j<lc;j++){col=Math.abs(parseFloat(cache.normalized[j][c]));mx=Math.max(mx,isNaN(col)?0:col)}if(typeof tc.string[tc.strings[c]]==="boolean"){dir=(order===0?1:-1)*(tc.string[tc.strings[c]]?-1:1)}else{dir=tc.strings[c]?tc.string[tc.strings[c]]||0:0}}dynamicExp+="var "+e+" = sort"+s+"(table,a["+c+"],b["+c+"],"+c+","+mx+","+dir+"); ";dynamicExp+="if ("+e+") { return "+e+"; } ";dynamicExp+="else { "}orgOrderCol=cache.normalized&&cache.normalized[0]?cache.normalized[0].length-1:0;dynamicExp+="return a["+orgOrderCol+"]-b["+orgOrderCol+"];";for(i=0;i<l;i++){dynamicExp+="}; "}dynamicExp+="return 0; ";dynamicExp+="}; ";eval(dynamicExp);cache.normalized.sort(sortWrapper)}if(tc.debug){benchmark("Sorting on "+sortList.toString()+" and dir "+order+" time",sortTime)}}function sortText(a,b,c,d){if(b===c){return 0}var e=a.config,f=e.string[e.empties[d]||e.emptyTo],g=$.tablesorter.regex,h,i,j,k,l,m,n,o;if(b===""&&f!==0){return typeof f==="boolean"?f?-1:1:-f||-1}if(c===""&&f!==0){return typeof f==="boolean"?f?1:-1:f||1}if(typeof e.textSorter==="function"){return e.textSorter(b,c,a,d)}h=b.replace(g[0],"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0");j=c.replace(g[0],"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0");i=parseInt(b.match(g[2]))||h.length!==1&&b.match(g[1])&&Date.parse(b);k=parseInt(c.match(g[2]))||i&&c.match(g[1])&&Date.parse(c)||null;if(k){if(i<k){return-1}if(i>k){return 1}}o=Math.max(h.length,j.length);for(n=0;n<o;n++){l=!(h[n]||"").match(g[3])&&parseFloat(h[n])||h[n]||0;m=!(j[n]||"").match(g[3])&&parseFloat(j[n])||j[n]||0;if(isNaN(l)!==isNaN(m)){return isNaN(l)?1:-1}if(typeof l!==typeof m){l+="";m+=""}if(l<m){return-1}if(l>m){return 1}}return 0}function sortTextDesc(a,b,c,d){if(b===c){return 0}var e=a.config,f=e.string[e.empties[d]||e.emptyTo];if(b===""&&f!==0){return typeof f==="boolean"?f?-1:1:f||1}if(c===""&&f!==0){return typeof f==="boolean"?f?1:-1:-f||-1}if(typeof e.textSorter==="function"){return e.textSorter(c,b,a,d)}return sortText(a,c,b)}function getTextValue(a,b,c){if(b){var d,e=a.length,f=b+c;for(d=0;d<e;d++){f+=a.charCodeAt(d)}return c*f}return 0}function sortNumeric(a,b,c,d,e,f){if(b===c){return 0}var g=a.config,h=g.string[g.empties[d]||g.emptyTo];if(b===""&&h!==0){return typeof h==="boolean"?h?-1:1:-h||-1}if(c===""&&h!==0){return typeof h==="boolean"?h?1:-1:h||1}if(isNaN(b)){b=getTextValue(b,e,f)}if(isNaN(c)){c=getTextValue(c,e,f)}return b-c}function sortNumericDesc(a,b,c,d,e,f){if(b===c){return 0}var g=a.config,h=g.string[g.empties[d]||g.emptyTo];if(b===""&&h!==0){return typeof h==="boolean"?h?-1:1:h||1}if(c===""&&h!==0){return typeof h==="boolean"?h?1:-1:-h||-1}if(isNaN(b)){b=getTextValue(b,e,f)}if(isNaN(c)){c=getTextValue(c,e,f)}return c-b}this.version="2.3.8";var parsers=[],widgets=[];this.defaults={widthFixed:false,cancelSelection:true,dateFormat:"mmddyyyy",sortMultiSortKey:"shiftKey",usNumberFormat:true,delayInit:false,headers:{},ignoreCase:true,sortForce:null,sortList:[],sortAppend:null,sortInitialOrder:"asc",sortLocaleCompare:false,sortReset:false,sortRestart:false,emptyTo:"bottom",stringTo:"max",textExtraction:"simple",textSorter:null,widgets:[],widgetOptions:{zebra:["even","odd"]},initWidgets:true,initialized:null,onRenderHeader:null,tableClass:"tablesorter",cssAsc:"tablesorter-headerSortUp",cssChildRow:"expand-child",cssDesc:"tablesorter-headerSortDown",cssHeader:"tablesorter-header",cssInfoBlock:"tablesorter-infoOnly",selectorHeaders:"> thead th",selectorRemove:"tr.remove-me",debug:false,headerList:[],empties:{},strings:{},parsers:[]};this.benchmark=benchmark;this.hasInitialized=false;this.construct=function(a){return this.each(function(){if(!this.tHead||this.tBodies.length===0){return}var b,c,d,e,f,g,h,i,j,k,l,m,n=$.metadata;this.config={};f=e=$.extend(true,this.config,$.tablesorter.defaults,a);if(f.debug){$.data(this,"startoveralltimer",new Date)}d=$(this).addClass(f.tableClass);$.data(this,"tablesorter",f);f.supportsTextContent=$("<span>x</span>")[0].textContent==="x";f.string={max:1,min:-1,"max+":1,"max-":-1,zero:0,none:0,"null":0,top:true,bottom:false};b=buildHeaders(this);f.parsers=buildParserCache(this,b);if(!f.delayInit){buildCache(this)}fixColumnWidth(this);b.bind("mousedown.tablesorter mouseup.tablesorter",function(a,e){if(a.type==="mousedown"){m=(new Date).getTime();return!f.cancelSelection}if(e!==true&&(new Date).getTime()-m>500){return false}if(f.delayInit&&!f.cache){buildCache(d[0])}if(!this.sortDisabled){d.trigger("sortStart",d[0]);c=$(this);i=!a[f.sortMultiSortKey];this.count=(this.count+1)%(f.sortReset?3:2);if(f.sortRestart){g=this;b.each(function(){if(this!==g&&(i||!$(this).is("."+f.cssDesc+",."+f.cssAsc))){this.count=-1}})}g=this.column;if(i){f.sortList=[];if(f.sortForce!==null){j=f.sortForce;for(h=0;h<j.length;h++){if(j[h][0]!==g){f.sortList.push(j[h])}}}l=this.order[this.count];if(l<2){f.sortList.push([g,l]);if(this.colSpan>1){for(h=1;h<this.colSpan;h++){f.sortList.push([g+h,l])}}}}else{if(isValueInArray(g,f.sortList)){for(h=0;h<f.sortList.length;h++){k=f.sortList[h];l=f.headerList[k[0]];if(k[0]===g){k[1]=l.order[l.count];if(k[1]===2){f.sortList.splice(h,1);l.count=-1}}}}else{l=this.order[this.count];if(l<2){f.sortList.push([g,l]);if(this.colSpan>1){for(h=1;h<this.colSpan;h++){f.sortList.push([g+h,l])}}}}}if(f.sortAppend!==null){j=f.sortAppend;for(h=0;h<j.length;h++){if(j[h][0]!==g){f.sortList.push(j[h])}}}d.trigger("sortBegin",d[0]);setHeadersCss(d[0],b,f.sortList);multisort(d[0],f.sortList);appendToTable(d[0]);return false}});if(f.cancelSelection){b.each(function(){this.onselectstart=function(){return false}})}d.bind("update",function(a,c){$(f.selectorRemove,this).remove();f.parsers=buildParserCache(this,b);buildCache(this);if(c!==false){$(this).trigger("sorton",[f.sortList])}}).bind("updateCell",function(a,b,c){var d=this,e=$(this).find("tbody"),g,h,i=e.index($(b).closest("tbody"));g=e.eq(i).find("tr").index($(b).closest("tr"));h=[g,b.cellIndex];d.config.cache[i].normalized[h[0]][h[1]]=f.parsers[h[1]].format(getElementText(d,b,h[1]),d,b,h[1]);if(c!==false){$(this).trigger("sorton",[f.sortList])}}).bind("addRows",function(a,b,c){var d,e=b.filter("tr").length,g=[],i=b[0].cells.length,j=this,k=$(this).find("tbody").index(b.closest("tbody"));for(d=0;d<e;d++){for(h=0;h<i;h++){g[h]=f.parsers[h].format(getElementText(j,b[d].cells[h],h),j,b[d].cells[h],h)}g.push(f.cache[k].row.length);f.cache[k].row.push([b[d]]);f.cache[k].normalized.push(g);g=[]}if(c!==false){$(this).trigger("sorton",[f.sortList])}}).bind("sorton",function(a,c,d){$(this).trigger("sortStart",this);f.sortList=c;updateHeaderSortCount(this,f.sortList);setHeadersCss(this,b,f.sortList);multisort(this,f.sortList);appendToTable(this,d)}).bind("appendCache",function(a,b){appendToTable(this,b)}).bind("applyWidgetId",function(a,b){getWidgetById(b).format(this)}).bind("applyWidgets",function(a,b){applyWidget(this,b)}).bind("destroy",function(a,b){$.tablesorter.destroy(this,b)});if(d.data()&&typeof d.data().sortlist!=="undefined"){f.sortList=d.data().sortlist}else if(n&&d.metadata()&&d.metadata().sortlist){f.sortList=d.metadata().sortlist}applyWidget(this,true);if(f.sortList.length>0){d.trigger("sorton",[f.sortList,!f.initWidgets])}else if(f.initWidgets){applyWidget(this)}this.hasInitialized=true;if(f.debug){$.tablesorter.benchmark("Overall initialization time",$.data(this,"startoveralltimer"))}d.trigger("tablesorter-initialized",this);if(typeof f.initialized==="function"){f.initialized(this)}})};this.destroy=function(a,b){var c=$(a),d=a.config;c.find("thead:first tr:not(."+d.cssHeader+")").remove();c.find("thead:first .tablesorter-resizer").remove();c.unbind("update updateCell addRows sorton appendCache applyWidgetId applyWidgets destroy mouseup mouseleave").find(d.selectorHeaders).unbind("click mousedown mousemove mouseup").removeClass(d.cssHeader+" "+d.cssAsc+" "+d.cssDesc);if(b!==false){c.removeClass(d.tableClass)}};this.addParser=function(a){var b,c=parsers.length,d=true;for(b=0;b<c;b++){if(parsers[b].id.toLowerCase()===a.id.toLowerCase()){d=false}}if(d){parsers.push(a)}};this.addWidget=function(a){widgets.push(a)};this.formatFloat=function(a,b){if(typeof a!=="string"||a===""){return a}if(b.config.usNumberFormat!==false){a=a.replace(/,/g,"")}else{a=a.replace(/[\s|\.]/g,"").replace(/,/g,".")}if(/^\s*\([.\d]+\)/.test(a)){a=a.replace(/^\s*\(/,"-").replace(/\)/,"")}var c=parseFloat(a);return isNaN(c)?$.trim(a):c};this.isDigit=function(a){return/^[\-+(]?\d*[)]?$/.test(a.replace(/[,.'\s]/g,""))};this.regex=[/(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi,/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,/^0x[0-9a-f]+$/i,/^0/];this.characterEquivalents={a:"áàâãä",A:"ÁÀÂÃÄ",c:"ç",C:"Ç",e:"éèêë",E:"ÉÈÊË",i:"íìIîï",I:"ÍÌIÎÏ",o:"óòôõö",O:"ÓÒÔÕÖ",S:"ß",u:"úùûü",U:"ÚÙÛÜ"};this.replaceAccents=function(a){var b,c="[",d=this.characterEquivalents;if(!this.characterRegex){this.characterRegexArray={};for(b in d){if(typeof b==="string"){c+=d[b];this.characterRegexArray[b]=new RegExp("["+d[b]+"]","g")}}this.characterRegex=new RegExp(c+"]")}if(this.characterRegex.test(a)){for(b in d){if(typeof b==="string"){a=a.replace(this.characterRegexArray[b],b)}}}return a};this.getData=function(a,b,c){var d="",e=$(a),f,g;if(!e.length){return""}f=$.metadata?e.metadata():false;g=" "+(e.attr("class")||"");if(e.data()&&(typeof e.data(c)!=="undefined"||typeof e.data(c.toLowerCase())!=="undefined")){d+=e.data(c)||e.data(c.toLowerCase())}else if(f&&typeof f[c]!=="undefined"){d+=f[c]}else if(b&&typeof b[c]!=="undefined"){d+=b[c]}else if(g&&g.match(" "+c+"-")){d=g.match(new RegExp(" "+c+"-(\\w+)"))[1]||""}return $.trim(d)};this.clearTableBody=function(a){$(a.tBodies).filter(":not(."+a.config.cssInfoBlock+")").empty()}}})();var ts=$.tablesorter;$.fn.extend({tablesorter:ts.construct});ts.addParser({id:"text",is:function(a,b,c){return true},format:function(a,b,c,d){var e=b.config;a=$.trim(e.ignoreCase?a.toLocaleLowerCase():a);return e.sortLocaleCompare?ts.replaceAccents(a):a},type:"text"});ts.addParser({id:"currency",is:function(a){return/^\(?[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+/.test(a)},format:function(a,b){return ts.formatFloat(a.replace(/[^\w,. \-()]/g,""),b)},type:"numeric"});ts.addParser({id:"ipAddress",is:function(a){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(a)},format:function(a,b){var c,d,e=a.split("."),f="",g=e.length;for(c=0;c<g;c++){d=e[c];if(d.length===2){f+="0"+d}else{f+=d}}return ts.formatFloat(f,b)},type:"numeric"});ts.addParser({id:"url",is:function(a){return/^(https?|ftp|file):\/\//.test(a)},format:function(a){return $.trim(a.replace(/(https?|ftp|file):\/\//,""))},type:"text"});ts.addParser({id:"isoDate",is:function(a){return/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(a)},format:function(a,b){return ts.formatFloat(a!==""?(new Date(a.replace(/-/g,"/"))).getTime()||"":"",b)},type:"numeric"});ts.addParser({id:"percent",is:function(a){return/\d%\)?$/.test(a)},format:function(a,b){return ts.formatFloat(a.replace(/%/g,""),b)},type:"numeric"});ts.addParser({id:"usLongDate",is:function(a){return a.match(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/)},format:function(a,b){return ts.formatFloat((new Date(a)).getTime()||"",b)},type:"numeric"});ts.addParser({id:"shortDate",is:function(a){return/^(\d{2}|\d{4})[\/\-\,\.\s+]\d{2}[\/\-\.\,\s+](\d{2}|\d{4})$/.test(a)},format:function(a,b,c,d){var e=b.config,f=e.headerList[d],g=f.shortDateFormat;if(typeof g==="undefined"){g=f.shortDateFormat=ts.getData(f,e.headers[d],"dateFormat")||e.dateFormat}a=a.replace(/\s+/g," ").replace(/[\-|\.|\,]/g,"/");if(g==="mmddyyyy"){a=a.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$1/$2")}else if(g==="ddmmyyyy"){a=a.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$2/$1")}else if(g==="yyyymmdd"){a=a.replace(/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/,"$1/$2/$3")}return ts.formatFloat((new Date(a)).getTime()||"",b)},type:"numeric"});ts.addParser({id:"time",is:function(a){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(a)},format:function(a,b){return ts.formatFloat((new Date("2000/01/01 "+a)).getTime()||"",b)},type:"numeric"});ts.addParser({id:"digit",is:function(a){return ts.isDigit(a)},format:function(a,b){return ts.formatFloat(a.replace(/[^\w,. \-()]/g,""),b)},type:"numeric"});ts.addParser({id:"metadata",is:function(a){return false},format:function(a,b,c){var d=b.config,e=!d.parserMetadataName?"sortValue":d.parserMetadataName;return $(c).metadata()[e]},type:"numeric"});ts.addWidget({id:"zebra",format:function(a){var b,c,d,e,f,g,h,i,j=a.config,k=new RegExp(j.cssChildRow,"i"),l=$(a).children("tbody:not(."+j.cssInfoBlock+")"),m=["even","odd"];m=j.widgetZebra&&j.hasOwnProperty("css")?j.widgetZebra.css:j.widgetOptions&&j.widgetOptions.hasOwnProperty("zebra")?j.widgetOptions.zebra:m;if(j.debug){g=new Date}for(h=0;h<l.length;h++){b=$(l[h]);i=b.children("tr").length;if(i>1){e=0;c=b.find("tr:visible");b.addClass("tablesorter-hidden");c.each(function(){d=$(this);if(!k.test(this.className)){e++}f=e%2===0;d.removeClass(m[f?1:0]).addClass(m[f?0:1])});b.removeClass("tablesorter-hidden")}}if(j.debug){ts.benchmark("Applying Zebra widget",g)}}})}(jQuery)
View
2  js/jquery.tablesorter.widgets.js
@@ -1,4 +1,4 @@
-/*! tableSorter 2.3 widgets - updated 6/1/2012
+/*! tableSorter 2.3 widgets - updated 6/5/2012
*
* jQuery UI Theme
* Column Styles
View
6 js/jquery.tablesorter.widgets.min.js
@@ -1,10 +1,10 @@
-/*! tableSorter 2.3 widgets - updated 6/1/2012 */
+/*! tableSorter 2.3 widgets - updated 6/5/2012 */
;(function(b){
b.tablesorter.storage=function(c,a,e){var d,h=!1;d={};var l=c.id||b(".tablesorter").index(b(c)),g=window.location.pathname;try{h=!!localStorage.getItem}catch(f){}b.parseJSON&&(h?d=b.parseJSON(localStorage[a])||{}:(d=document.cookie.split(/[;\s|=]/),c=b.inArray(a,d)+1,d=0!==c?b.parseJSON(d[c])||{}:{}));if(e&&JSON&&JSON.hasOwnProperty("stringify")){if(!d[g]||!d[g][l])d[g]||(d[g]={});d[g][l]=e;h?localStorage[a]=JSON.stringify(d):(c=new Date,c.setTime(c.getTime()+31536E6),document.cookie= a+"="+JSON.stringify(d).replace(/\"/g,'"')+"; expires="+c.toGMTString()+"; path=/")}else return d&&d.hasOwnProperty(g)&&d[g].hasOwnProperty(l)?d[g][l]:{}};
b.tablesorter.addWidget({id:"uitheme",format:function(c){var a,e,d,h,l,g=b(c),f=c.config,m=f.widgetOptions,i=["ui-icon-arrowthick-2-n-s","ui-icon-arrowthick-1-s","ui-icon-arrowthick-1-n"],i=f.widgetUitheme&&f.widgetUitheme.hasOwnProperty("css")?f.widgetUitheme.css||i:m&&m.hasOwnProperty("uitheme")?m.uitheme:i;d=i.join(" ");f.debug&&(a=new Date); g.hasClass("ui-theme")||(g.addClass("ui-widget ui-widget-content ui-corner-all ui-theme"),b.each(f.headerList,function(){b(this).addClass("ui-widget-header ui-corner-all ui-state-default").append('<span class="ui-icon"/>').wrapInner('<div class="tablesorter-inner"/>').hover(function(){b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")})}));b.each(f.headerList,function(a){h=b(this);if(this.sortDisabled)h.find("span.ui-icon").removeClass(d+" ui-icon");else{e=h.hasClass(f.cssAsc)? i[1]:h.hasClass(f.cssDesc)?i[2]:h.hasClass(f.cssHeader)?i[0]:"";l=g.hasClass("hasStickyHeaders")?g.find("tr."+(m.stickyHeaders||"tablesorter-stickyHeader")).find("th").eq(a).add(h):h;l[e===i[0]?"removeClass":"addClass"]("ui-state-active").find("span.ui-icon").removeClass(d).addClass(e)}});f.debug&&b.tablesorter.benchmark("Applying uitheme widget",a)}});
b.tablesorter.addWidget({id:"columns",format:function(c){var a,e,d,h,l,g,f,m,i=c.config,o=b(c).children("tbody:not(."+i.cssInfoBlock+")"),p=i.sortList, r=p.length,q=["primary","secondary","tertiary"],q=i.widgetColumns&&i.widgetColumns.hasOwnProperty("css")?i.widgetColumns.css||q:i.widgetOptions&&i.widgetOptions.hasOwnProperty("columns")?i.widgetOptions.columns||q:q;l=q.length-1;g=q.join(" ");i.debug&&(h=new Date);for(m=0;m<o.length;m++)c=b(o[m]),a=c.addClass("tablesorter-hidden").children("tr"),a.each(function(){d=b(this);if("none"!==this.style.display&&(e=d.children().removeClass(g),p&&p[0]&&(e.eq(p[0][0]).addClass(q[0]),1<r)))for(f=1;f<r;f++)e.eq(p[f][0]).addClass(q[f]|| q[l])}),c.removeClass("tablesorter-hidden");i.debug&&b.tablesorter.benchmark("Applying Columns widget",h)}});
-b.tablesorter.addWidget({id:"filter",format:function(c){if(!b(c).hasClass("hasFilters")){var a,e,d,h,l,g,f,m,i,o,p,r,q,w,t,A,x,k=c.config,j=k.widgetOptions,s=j.filter_cssFilter||"tablesorter-filter",u=b(c).addClass("hasFilters"),y=u.children("tbody:not(."+k.cssInfoBlock+")"),B=k.parsers.length,n='<tr class="'+s+'">',C=/^\/((?:\\\/|[^\/])+)\/([mig]{0,3})?$/,F=RegExp(k.cssChildRow),v,D,z=function(){k.debug&& (v=new Date);g=u.find("thead").eq(0).children("tr").find("select."+s+", input."+s).map(function(){return b(this).val()||""}).get();l=g.join("");for(d=0;d<y.length;d++){w=b(y[d]);t=w.addClass("tablesorter-hidden").children("tr");h=t.length;for(e=0;e<h;e++)if(!F.test(t[e].className))if(""===l)t[e].style.display="";else{m=!0;q=t.eq(e).nextUntil("tr:not(."+k.cssChildRow+")");o=q.length&&(j&&j.hasOwnProperty("filter_childRows")&&"undefined"!==typeof j.filter_childRows?j.filter_childRows:1)?q.text():""; A=t.eq(e).children("td");for(a=0;a<B;a++)p=b.trim(A.eq(a).text()),r=j.filter_ignoreCase?p.toLocaleLowerCase():p,""!==g[a]&&(i=m,f=j.filter_ignoreCase?g[a].toLocaleLowerCase():g[a],j.filter_functions&&j.filter_functions[a]?!0===j.filter_functions[a]?i=j.filter_ignoreCase?f===r:g[a]===p:"function"===typeof j.filter_functions[a]?i=j.filter_functions[a](p,k.cache[d].normalized[e][a],g[a],a):"function"===typeof j.filter_functions[a][g[a]]&&(i=j.filter_functions[a][g[a]](p,k.cache[d].normalized[e][a],g[a], a)):C.test(f)?(x=C.exec(f),i=RegExp(x[1],x[2]).test(r)):/[\"|\']$/.test(f)&&r===f.replace(/(\"|\')/g,"")?m=m?!0:!1:/[\?|\*]/.test(f)?i=RegExp(f.replace(/\?/g,"\\S{1}").replace(/\*/g,"\\S*")).test(r):(p=(r+o).indexOf(f),m=!j.filter_startsWith&&0<=p||j.filter_startsWith&&0===p?m?!0:!1:!1),m=i?m?!0:!1:!1);t[e].style.display=m?"":"none";if(q.length)q[m?"show":"hide"]()}w.removeClass("tablesorter-hidden")}k.debug&&b.tablesorter.benchmark("Completed filter widget search",v);u.trigger("applyWidgets")},E= function(a){var c,f=[],a=parseInt(a,10);c='<option value="">'+(b(k.headerList[a]).attr("data-placeholder")||"")+"</option>";for(d=0;d<y.length;d++){h=k.cache[d].row.length;for(e=0;e<h;e++)o=k.cache[d].row[e][0].cells[a],f.push(k.supportsTextContent?o.textContent:b(o).text())}f=f.getUnique(!0);for(d=0;d<f.length;d++)c+='<option value="'+f[d]+'">'+f[d]+"</option>";u.find("thead").find("select."+s+'[data-col="'+a+'"]').append(c)};k.debug&&(v=new Date);for(a=0;a<B;a++)c=j.filter_functions&&j.filter_functions[a]&& "function"!==typeof j.filter_functions[a]||b(k.headerList[a]).hasClass("filter-select"),n+="<td>",n=c?n+('<select data-col="'+a+'" class="'+s):n+('<input type="search" placeholder="'+(b(k.headerList[a]).attr("data-placeholder")||"")+'" data-col="'+a+'" class="'+s),n=b.tablesorter.getData?n+("false"===b.tablesorter.getData(k.headerList[a],k.headers[a],"filter")?' disabled" disabled':'"'):n+(k.headers[a]&&k.headers[a].hasOwnProperty("filter")&&!1===k.headers[a].filter||b(k.headerList[a]).hasClass("filter-false")? ' disabled" disabled':'"'),n+=(c?"></select>":">")+"</td>";u.find("thead").eq(0).append(n+="</tr>").find("input."+s).bind("keyup search",function(a,b){32>a.which&&8!==a.which||37<=a.which&&40>=a.which||(!1===b?z():(clearTimeout(D),D=setTimeout(function(){z()},j.filter_searchDelay||300)))});if(j.filter_functions)for(a in j.filter_functions)if(o=b(k.headerList[a]),n="","string"===typeof a&&!0===j.filter_functions[a]&&!o.hasClass("filter-false"))E(a);else if("string"===typeof a&&!o.hasClass("filter-false")){for(e in j.filter_functions[a])"string"=== typeof e&&(n+=""===n?"<option>"+(o.attr("data-placeholder")||"")+"</option>":"",n+="<option>"+e+"</option>");u.find("thead").find("select."+s+'[data-col="'+a+'"]').append(n)}for(a=0;a<k.headerList.length;a++)o=b(k.headerList[a]),o.hasClass("filter-select")&&(!o.hasClass("filter-false")&&!(j.filter_functions&&!0===j.filter_functions[a]))&&E(a);u.find("select."+s).bind("change",function(){z()});k.debug&&b.tablesorter.benchmark("Applying Filter widget",v)}}});
-b.tablesorter.addWidget({id:"stickyHeaders", format:function(c){if(!b(c).hasClass("hasStickyHeaders")){var a=b(c).addClass("hasStickyHeaders"),e=c.config.widgetOptions,d=b(window),h=b(c).children("thead"),l=h.children("tr:not(.sticky-false)").children(),g=e.stickyHeaders||"tablesorter-stickyHeader",f=l.eq(0),m=a.find("tfoot"),i=h.find("tr.tablesorter-header:not(.sticky-false)").clone().removeClass("tablesorter-header").addClass(g).css({width:h.outerWidth(!0),position:"fixed",left:f.offset().left,margin:0,top:0,visibility:"hidden",zIndex:10}), o=i.children(),p="";a.bind("sortEnd",function(a,d){var c=b(d).find("thead tr"),e=c.filter("."+g).children();c.filter(":not(."+g+")").children().each(function(a){e.eq(a).attr("class",b(this).attr("class"))})}).bind("pagerComplete",function(){d.resize()});l.each(function(a){var d=b(this);o.eq(a).bind("mouseup",function(a){d.trigger(a,!0)}).bind("mousedown",function(){this.onselectstart=function(){return!1};return!1}).find(".tablesorter-header-inner").width(d.find(".tablesorter-header-inner").width())}); h.prepend(i);d.scroll(function(){var b=f.offset(),c=d.scrollTop(),e=a.height()-(f.height()+(m.height()||0)),c=c>b.top&&c<b.top+e?"visible":"hidden";i.css({left:b.left-d.scrollLeft(),visibility:c});c!==p&&(d.resize(),p=c)}).resize(function(){var a=0;i.css({left:f.offset().left-d.scrollLeft(),width:h.outerWidth()}).each(function(c){b(this).css("top",a);a+=h.find("tr").eq(c).outerHeight()});o.find(".tablesorter-header-inner").each(function(a){b(this).width(l.eq(a).find(".tablesorter-header-inner").width())})})}}});
+b.tablesorter.addWidget({id:"filter",format:function(c){if(!b(c).hasClass("hasFilters")){var a,e,d,h,l,g,f,m,i,o,p,r,q,x,t,A,y,k=c.config,j=k.widgetOptions,s=j.filter_cssFilter||"tablesorter-filter",u=b(c).addClass("hasFilters"),z=u.children("tbody:not(."+k.cssInfoBlock+")"),B=k.parsers.length,n='<tr class="'+s+'">',C=/^\/((?:\\\/|[^\/])+)\/([mig]{0,3})?$/,F=RegExp(k.cssChildRow),v,D,w=function(){k.debug&& (v=new Date);g=u.find("thead").eq(0).children("tr").find("select."+s+", input."+s).map(function(){return b(this).val()||""}).get();l=g.join("");for(d=0;d<z.length;d++){x=b(z[d]);t=x.addClass("tablesorter-hidden").children("tr");h=t.length;for(e=0;e<h;e++)if(!F.test(t[e].className))if(""===l)t[e].style.display="";else{m=!0;q=t.eq(e).nextUntil("tr:not(."+k.cssChildRow+")");o=q.length&&(j&&j.hasOwnProperty("filter_childRows")&&"undefined"!==typeof j.filter_childRows?j.filter_childRows:1)?q.text():""; A=t.eq(e).children("td");for(a=0;a<B;a++)if(p=b.trim(A.eq(a).text()),r=j.filter_ignoreCase?p.toLocaleLowerCase():p,""!==g[a]){i=m;f=j.filter_ignoreCase?g[a].toLocaleLowerCase():g[a];if(j.filter_functions&&j.filter_functions[a])!0===j.filter_functions[a]?i=j.filter_ignoreCase?f===r:g[a]===p:"function"===typeof j.filter_functions[a]?i=j.filter_functions[a](p,k.cache[d].normalized[e][a],g[a],a):"function"===typeof j.filter_functions[a][g[a]]&&(i=j.filter_functions[a][g[a]](p,k.cache[d].normalized[e][a], g[a],a));else if(C.test(f)){y=C.exec(f);try{i=RegExp(y[1],y[2]).test(r)}catch(c){i=!1}}else/[\"|\']$/.test(f)&&r===f.replace(/(\"|\')/g,"")?m=m?!0:!1:/[\?|\*]/.test(f)?i=RegExp(f.replace(/\?/g,"\\S{1}").replace(/\*/g,"\\S*")).test(r):(p=(r+o).indexOf(f),m=!j.filter_startsWith&&0<=p||j.filter_startsWith&&0===p?m?!0:!1:!1);m=i?m?!0:!1:!1}t[e].style.display=m?"":"none";if(q.length)q[m?"show":"hide"]()}x.removeClass("tablesorter-hidden")}k.debug&&b.tablesorter.benchmark("Completed filter widget search", v);u.trigger("applyWidgets")},E=function(a){var c,f=[],a=parseInt(a,10);c='<option value="">'+(b(k.headerList[a]).attr("data-placeholder")||"")+"</option>";for(d=0;d<z.length;d++){h=k.cache[d].row.length;for(e=0;e<h;e++)o=k.cache[d].row[e][0].cells[a],f.push(k.supportsTextContent?o.textContent:b(o).text())}f=f.getUnique(!0);for(d=0;d<f.length;d++)c+='<option value="'+f[d]+'">'+f[d]+"</option>";u.find("thead").find("select."+s+'[data-col="'+a+'"]').append(c)};k.debug&&(v=new Date);for(a=0;a<B;a++)c= j.filter_functions&&j.filter_functions[a]&&"function"!==typeof j.filter_functions[a]||b(k.headerList[a]).hasClass("filter-select"),n+="<td>",n=c?n+('<select data-col="'+a+'" class="'+s):n+('<input type="search" placeholder="'+(b(k.headerList[a]).attr("data-placeholder")||"")+'" data-col="'+a+'" class="'+s),n=b.tablesorter.getData?n+("false"===b.tablesorter.getData(k.headerList[a],k.headers[a],"filter")?' disabled" disabled':'"'):n+(k.headers[a]&&k.headers[a].hasOwnProperty("filter")&&!1===k.headers[a].filter|| b(k.headerList[a]).hasClass("filter-false")?' disabled" disabled':'"'),n+=(c?"></select>":">")+"</td>";u.bind("addRows updateCell update appendCache",function(){w()}).find("thead").eq(0).append(n+="</tr>").find("input."+s).bind("keyup search",function(a,b){32>a.which&&8!==a.which||37<=a.which&&40>=a.which||(!1===b?w():(clearTimeout(D),D=setTimeout(function(){w()},j.filter_searchDelay||300)))});if(j.filter_functions)for(a in j.filter_functions)if(o=b(k.headerList[a]),n="","string"===typeof a&&!0=== j.filter_functions[a]&&!o.hasClass("filter-false"))E(a);else if("string"===typeof a&&!o.hasClass("filter-false")){for(e in j.filter_functions[a])"string"===typeof e&&(n+=""===n?"<option>"+(o.attr("data-placeholder")||"")+"</option>":"",n+="<option>"+e+"</option>");u.find("thead").find("select."+s+'[data-col="'+a+'"]').append(n)}for(a=0;a<k.headerList.length;a++)o=b(k.headerList[a]),o.hasClass("filter-select")&&(!o.hasClass("filter-false")&&!(j.filter_functions&&!0===j.filter_functions[a]))&&E(a); u.find("select."+s).bind("change",function(){w()});k.debug&&b.tablesorter.benchmark("Applying Filter widget",v)}}});
+b.tablesorter.addWidget({id:"stickyHeaders",format:function(c){if(!b(c).hasClass("hasStickyHeaders")){var a=b(c).addClass("hasStickyHeaders"),e=c.config.widgetOptions,d=b(window),h=b(c).children("thead"),l=h.children("tr:not(.sticky-false)").children(),g=e.stickyHeaders||"tablesorter-stickyHeader",f=l.eq(0),m=a.find("tfoot"),i=h.find("tr.tablesorter-header:not(.sticky-false)").clone().removeClass("tablesorter-header").addClass(g).css({width:h.outerWidth(!0), position:"fixed",left:f.offset().left,margin:0,top:0,visibility:"hidden",zIndex:10}),o=i.children(),p="";a.bind("sortEnd",function(a,d){var c=b(d).find("thead tr"),e=c.filter("."+g).children();c.filter(":not(."+g+")").children().each(function(a){e.eq(a).attr("class",b(this).attr("class"))})}).bind("pagerComplete",function(){d.resize()});l.each(function(a){var d=b(this);o.eq(a).bind("mouseup",function(a){d.trigger(a,!0)}).bind("mousedown",function(){this.onselectstart=function(){return!1};return!1}).find(".tablesorter-header-inner").width(d.find(".tablesorter-header-inner").width())}); h.prepend(i);d.scroll(function(){var b=f.offset(),c=d.scrollTop(),e=a.height()-(f.height()+(m.height()||0)),c=c>b.top&&c<b.top+e?"visible":"hidden";i.css({left:b.left-d.scrollLeft(),visibility:c});c!==p&&(d.resize(),p=c)}).resize(function(){var a=0;i.css({left:f.offset().left-d.scrollLeft(),width:h.outerWidth()}).each(function(c){b(this).css("top",a);a+=h.find("tr").eq(c).outerHeight()});o.find(".tablesorter-header-inner").each(function(a){b(this).width(l.eq(a).find(".tablesorter-header-inner").width())})})}}});
b.tablesorter.addWidget({id:"resizable",format:function(c){if(!b(c).hasClass("hasResizable")){b(c).addClass("hasResizable");var a,e,d=c.config,h=b(d.headerList).filter(":gt(0)"),l=0,g=null,f=null,m=function(){l=0;g=f=null;b(window).trigger("resize")};if(e=b.tablesorter.storage?b.tablesorter.storage(c,"tablesorter-resizable"):"")for(a in e)!isNaN(a)&&a<d.headerList.length&&b(d.headerList[a]).width(e[a]);h.each(function(){b(this).append('<div class="tablesorter-resizer" style="cursor:w-resize;position:absolute;height:100%;width:20px;left:-20px;top:0;z-index:1;"></div>').wrapInner('<div style="position:relative;height:100%;width:100%"></div>')}).bind("mousemove", function(a){if(0!==l&&g){var b=a.pageX-l;g.width()<-b||f&&f.width()<=b||(f.width(f.width()+b),l=a.pageX)}}).bind("mouseup",function(){e&&(b.tablesorter.storage&&g)&&(e[f.index()]=f.width(),b.tablesorter.storage(c,"tablesorter-resizable",e));m();return!1}).find(".tablesorter-resizer").bind("mousedown",function(a){g=b(a.target).closest("th");f=g.prev();l=a.pageX;return!1});b(c).find("thead").bind("mouseup mouseleave",function(){m()})}}});
b.tablesorter.addWidget({id:"saveSort",init:function(b,a,e){e.format(b, !0)},format:function(c,a){var e,d,h=c.config;e={sortList:h.sortList};h.debug&&(d=new Date);b(c).hasClass("hasSaveSort")?c.hasInitialized&&b.tablesorter.storage&&(b.tablesorter.storage(c,"tablesorter-savesort",e),h.debug&&b.tablesorter.benchmark("saveSort widget: Saving last sort: "+h.sortList,d)):(b(c).addClass("hasSaveSort"),e="",b.tablesorter.storage&&(e=(e=b.tablesorter.storage(c,"tablesorter-savesort"))&&e.hasOwnProperty("sortList")&&b.isArray(e.sortList)?e.sortList:"",h.debug&&b.tablesorter.benchmark("saveSort: Last sort loaded: "+ e,d)),a&&e&&0<e.length?h.sortList=e:c.hasInitialized&&(e&&0<e.length)&&b(c).trigger("sorton",[e]))}})
})(jQuery);
View
2  package.json
@@ -1,6 +1,6 @@
{
"name": "tablesorter",
- "version": "2.3.7",
+ "version": "2.3.8",
"title": "tablesorter",
"author": {
"name": "Christian Bach",
Please sign in to comment.
Something went wrong with that request. Please try again.