1 dump('entering util/money.js\n');
3 if (typeof util == 'undefined') var util = {};
6 util.money.EXPORT_OK = [
7 'sanitize', 'dollars_float_to_cents_integer', 'cents_as_dollars'
9 util.money.EXPORT_TAGS = { ':all' : util.money.EXPORT_OK };
11 util.money.dollars_float_to_cents_integer = function( money ) {
13 if (money == '' || money == null || money == undefined) money = 0;
14 // careful to avoid fractions of pennies
15 var negative; negative = money.toString().match(/-/) ? -1 : 1;
16 var money_s = money.toString().replace(/[^\.\d]/g, '');
17 var marray = money_s.split(".");
18 var dollars = marray[0];
19 var cents = marray[1];
21 if (cents.length < 2) {
27 if (cents.length > 2) {
28 dump("util.money: We don't round money\n");
29 cents = cents.substr(0,2);
35 if (Number(cents)) total += Number(cents);
39 if (Number(dollars)) total += (Number(dollars) * 100);
42 return total * negative;
44 alert('util.money.dollars_float_to_cents_integer:\n' + E);
48 util.money.cents_as_dollars = function( cents ) {
50 if (cents == '' || cents == null || cents == undefined) cents = 0;
51 var negative; negative = cents.toString().match(/-/) ? '-' : '';
52 cents = cents.toString().replace(/[^\.\d]/g, '');
53 if (cents.match(/\./)) cents = util.money.dollars_float_to_cents_integer( cents ).toString();
55 switch( cents.length ) {
56 case 0: cents = '000'; break;
57 case 1: cents = '00' + cents; break;
61 return negative + cents.substr(0,cents.length-2) + '.' + cents.substr(cents.length - 2);
63 alert('util.money.cents_as_dollars:\n' + E);
67 util.money.sanitize = function( money ) {
68 return util.money.cents_as_dollars( util.money.dollars_float_to_cents_integer( money ) );
72 dump('exiting util/money.js\n');