X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fqml%2FLibrary%2Fjs%2FCommon.js;h=cd1febecd6e9d6ccf2124b9e486863f15d32b543;hb=0f8d4b44f550d528c2b6b09fb0f6a8c7821caf9f;hp=eef8c9e9fa6b50ed6574b2d3a50b0666b5f6df59;hpb=2b13ee54b100838b12d7cadea2aaf6608b0c1a04;p=marketstoday diff --git a/src/qml/Library/js/Common.js b/src/qml/Library/js/Common.js index eef8c9e..cd1febe 100644 --- a/src/qml/Library/js/Common.js +++ b/src/qml/Library/js/Common.js @@ -1,11 +1,58 @@ /* -@version: 0.1 +@version: 0.5 @author: Sudheer K. @license: GNU General Public License */ function isTodayAWeekDay(){ var dayOfWeek = (new Date()).getDay(); - var isWeekDay = (dayOfWeek == 0 || dayOfWeek == 6)? false : true; + var isWeekDay = (dayOfWeek === 0 || dayOfWeek === 6)? false : true; return isWeekDay; } + + +//Source: Mout JS library (https://github.com/mout/mout/blob/master/src/number/abbreviate.js) + +/** +* Enforce a specific amount of decimal digits and also fix floating +* point rounding issues. +* @example `enforcePrecision(0.615, 2) -> 0.62`, `(0.615).toFixed(2) -> +* 0.61` +*/ +function enforcePrecision(val, nDecimalDigits){ + var pow = Math.pow(10, nDecimalDigits); + return +(Math.round(val * pow) / pow).toFixed(nDecimalDigits); +} + +var _defaultDict = { + thousand : 'K', + million : 'M', + billion : 'B' +}; + + +/** +* Abbreviate number if bigger than 1000. (eg: 2.5K, 17.5M, 3.4B, ...) +*/ +function abbreviateNumber(val, nDecimals, dict){ + nDecimals = nDecimals !== null? nDecimals : 1; + dict = dict || _defaultDict; + val = enforcePrecision(val, nDecimals); + + var str, mod; + + if (val < 1000){ + str = val; + } else if (val < 1000000) { + mod = enforcePrecision(val / 1000, nDecimals); + // might overflow to next scale during rounding + str = mod < 1000? mod + dict.thousand : 1 + dict.million; + } else if (val < 1000000000) { + mod = enforcePrecision(val / 1000000, nDecimals); + str = mod < 1000? mod + dict.million : 1 + dict.billion; + } else { + str = enforcePrecision(val / 1000000000, nDecimals) + dict.billion; + } + + return str; +}