2015-03-28 20:03:50 +00:00
/*! Parser: namedNumbers - updated 10/26/2014 (v2.18.0) */
2015-10-31 15:08:21 +00:00
/ *
* code modified from http : //stackoverflow.com/a/12014376/145346
* /
/*jshint jquery:true */
! function ( a ) { "use strict" ;
// Change language of the named numbers as needed
var b , c , d = { negative : [ "negative" , "minus" ] , numbers : { zero : 0 , one : 1 , two : 2 , three : 3 , four : 4 , five : 5 , six : 6 , seven : 7 , eight : 8 , nine : 9 , ten : 10 , eleven : 11 , twelve : 12 , thirteen : 13 , fourteen : 14 , fifteen : 15 , sixteen : 16 , seventeen : 17 , eighteen : 18 , nineteen : 19 , twenty : 20 , thirty : 30 , forty : 40 , fourty : 40 , // common misspelling
fifty : 50 , sixty : 60 , seventy : 70 , eighty : 80 , ninety : 90 } ,
// special case
hundred : "hundred" ,
// multiples
powers : { thousand : 1e3 , million : 1e6 , billion : 1e9 , trillion : 1e12 , quadrillion : 1e15 , quintillion : 1e18 , sextillion : 1e21 , septillion : 1e24 , octillion : 1e27 , nonillion : 1e30 , decillion : 1e33 , undecillion : 1e36 , duodecillion : 1e39 , tredecillion : 1e42 , quattuordecillion : 1e45 , quindecillion : 1e48 , sexdecillion : 1e51 , septendecillion : 1e54 , octodecillion : 1e57 , novemdecillion : 1e60 , vigintillion : 1e63 , unvigintillion : 1e66 , duovigintillion : 1e69 , trevigintillion : 1e72 , quattuorvigintillion : 1e75 , quinvigintillion : 1e78 , sexvigintillion : 1e81 , septenvigintillion : 1e84 , octovigintillion : 1e87 , novemvigintillion : 1e90 , trigintillion : 1e93 , untrigintillion : 1e96 , duotrigintillion : 1e99 , googl : 1e100 } } , e = new RegExp ( "(" + d . negative . join ( "|" ) + ")" ) , f = function ( e , f ) {
// remove extra characters that might be next to the word
var g = e . replace ( /[,."']/g , "" ) ,
// formatFloat will deal with the commas & decimals in the number format
h = a . tablesorter . formatFloat ( e || "" , f ) , i = d . powers . hasOwnProperty ( g ) ? d . powers [ g ] : null ; h = "number" == typeof h ? h : d . numbers . hasOwnProperty ( g ) ? d . numbers [ g ] : null , null !== h ? c += h : g === d . hundred ? c *= 100 : null !== i && ( b += c * i , c = 0 ) } ; a . tablesorter . addParser ( { id : "namedNumbers" , is : function ( ) { return ! 1 } , format : function ( g , h ) { b = 0 , c = 0 ; var i , j = ( g || "" ) . split ( /[\s-]+/ ) , k = j . length ; for ( i = 0 ; k > i ; i ++ ) f ( j [ i ] . toLowerCase ( ) , h ) ;
// make sure to let zero get parsed, so check hasOwnProperty
return b = ( b + c ) * ( g . match ( e ) ? - 1 : 1 ) , b || d . numbers . hasOwnProperty ( g ) ? b : a . tablesorter . formatFloat ( g || "" , h ) } , type : "numeric" } ) } ( jQuery ) ;