]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/xul/staff_client/chrome/content/util/money.js
some input filtering
[working/Evergreen.git] / Open-ILS / xul / staff_client / chrome / content / util / money.js
1 dump('entering util/money.js\n');
2
3 if (typeof util == 'undefined') var util = {};
4 util.money = {};
5
6 util.money.EXPORT_OK    = [ 
7         'sanitize', 'dollars_float_to_cents_integer', 'cents_as_dollars'
8 ];
9 util.money.EXPORT_TAGS  = { ':all' : util.money.EXPORT_OK };
10
11 util.money.dollars_float_to_cents_integer = function( money ) {
12         // careful to avoid fractions of pennies
13         var money_s = money.toString().replace(/[^\.\d]/g, '');
14         var marray = money_s.split(".");
15         var dollars = marray[0];
16         var cents = marray[1];
17         try {
18                 if (cents.length < 2) {
19                         cents = cents + '0';
20                 }
21         } catch(E) {
22         }
23         try {
24                 if (cents.length > 2) {
25                         dump("util.money: We don't round money\n");
26                         cents = cents.substr(0,2);
27                 }
28         } catch(E) {
29         }
30         var total = 0;
31         try {
32                 if (parseInt(cents)) total += parseInt(cents);
33         } catch(E) {
34         }
35         try {
36                 if (parseInt(dollars)) total += (parseInt(dollars) * 100);
37         } catch(E) {
38         }
39         return total;   
40 }
41
42 util.money.cents_as_dollars = function( cents ) {
43         cents = cents.toString().replace(/[^\.\d]/g, ''); 
44         if (cents.match(/\./)) cents = util.money.dollars_float_to_cents_integer( cents ).toString();
45         try {
46                 switch( cents.length ) {
47                         case 0: cents = '000'; break;
48                         case 1: cents = '00' + cents; break;
49                 }
50         } catch(E) {
51         }
52         return cents.substr(0,cents.length-2) + '.' + cents.substr(cents.length - 2);
53 }
54
55 util.money.sanitize = function( money ) {
56         return util.money.cents_as_dollars( util.money.dollars_float_to_cents_integer( money ) );
57 }
58
59
60 dump('exiting util/money.js\n');