summaryrefslogtreecommitdiff
path: root/frontend/gamma/js/MochiKit/Format.js
Unidiff
Diffstat (limited to 'frontend/gamma/js/MochiKit/Format.js') (more/less context) (show whitespace changes)
-rw-r--r--frontend/gamma/js/MochiKit/Format.js16
1 files changed, 8 insertions, 8 deletions
diff --git a/frontend/gamma/js/MochiKit/Format.js b/frontend/gamma/js/MochiKit/Format.js
index 122845e..58877e7 100644
--- a/frontend/gamma/js/MochiKit/Format.js
+++ b/frontend/gamma/js/MochiKit/Format.js
@@ -1,23 +1,23 @@
1/*** 1/***
2 2
3MochiKit.Format 1.5 3MochiKit.Format 1.5
4 4
5See <http://mochikit.com/> for documentation, downloads, license, etc. 5See <http://mochikit.com/> for documentation, downloads, license, etc.
6 6
7(c) 2005 Bob Ippolito. All rights Reserved. 7(c) 2005 Bob Ippolito. All rights Reserved.
8 8
9***/ 9***/
10 10
11MochiKit.Base._module('Format', '1.5', ['Base']); 11MochiKit.Base.module(MochiKit, 'Format', '1.5', ['Base']);
12 12
13MochiKit.Format._numberFormatter = function (placeholder, header, footer, locale, isPercent, precision, leadingZeros, separatorAt, trailingZeros) { 13MochiKit.Format._numberFormatter = function (placeholder, header, footer, locale, isPercent, precision, leadingZeros, separatorAt, trailingZeros) {
14 return function (num) { 14 return function (num) {
15 num = parseFloat(num); 15 num = parseFloat(num);
16 if (typeof(num) == "undefined" || num === null || isNaN(num)) { 16 if (typeof(num) == "undefined" || num === null || isNaN(num)) {
17 return placeholder; 17 return placeholder;
18 } 18 }
19 var curheader = header; 19 var curheader = header;
20 var curfooter = footer; 20 var curfooter = footer;
21 if (num < 0) { 21 if (num < 0) {
22 num = -num; 22 num = -num;
23 } else { 23 } else {
@@ -95,25 +95,25 @@ MochiKit.Format.numberFormatter = function (pattern, placeholder/* = "" */, loca
95 var rval = MochiKit.Format._numberFormatter( 95 var rval = MochiKit.Format._numberFormatter(
96 placeholder, header, footer, locale, isPercent, precision, 96 placeholder, header, footer, locale, isPercent, precision,
97 leadingZeros, separatorAt, trailingZeros 97 leadingZeros, separatorAt, trailingZeros
98 ); 98 );
99 var m = MochiKit.Base; 99 var m = MochiKit.Base;
100 if (m) { 100 if (m) {
101 var fn = arguments.callee; 101 var fn = arguments.callee;
102 var args = m.concat(arguments); 102 var args = m.concat(arguments);
103 rval.repr = function () { 103 rval.repr = function () {
104 return [ 104 return [
105 self.NAME, 105 self.NAME,
106 "(", 106 "(",
107 map(m.repr, args).join(", "), 107 m.map(m.repr, args).join(", "),
108 ")" 108 ")"
109 ].join(""); 109 ].join("");
110 }; 110 };
111 } 111 }
112 return rval; 112 return rval;
113}; 113};
114 114
115/** @id MochiKit.Format.formatLocale */ 115/** @id MochiKit.Format.formatLocale */
116MochiKit.Format.formatLocale = function (locale) { 116MochiKit.Format.formatLocale = function (locale) {
117 if (typeof(locale) == "undefined" || locale === null) { 117 if (typeof(locale) == "undefined" || locale === null) {
118 locale = "default"; 118 locale = "default";
119 } 119 }
@@ -133,25 +133,25 @@ MochiKit.Format.formatLocale = function (locale) {
133MochiKit.Format.twoDigitAverage = function (numerator, denominator) { 133MochiKit.Format.twoDigitAverage = function (numerator, denominator) {
134 if (denominator) { 134 if (denominator) {
135 var res = numerator / denominator; 135 var res = numerator / denominator;
136 if (!isNaN(res)) { 136 if (!isNaN(res)) {
137 return MochiKit.Format.twoDigitFloat(res); 137 return MochiKit.Format.twoDigitFloat(res);
138 } 138 }
139 } 139 }
140 return "0"; 140 return "0";
141}; 141};
142 142
143/** @id MochiKit.Format.twoDigitFloat */ 143/** @id MochiKit.Format.twoDigitFloat */
144MochiKit.Format.twoDigitFloat = function (aNumber) { 144MochiKit.Format.twoDigitFloat = function (aNumber) {
145 var res = roundToFixed(aNumber, 2); 145 var res = MochiKit.Format.roundToFixed(aNumber, 2);
146 if (res.indexOf(".00") > 0) { 146 if (res.indexOf(".00") > 0) {
147 return res.substring(0, res.length - 3); 147 return res.substring(0, res.length - 3);
148 } else if (res.charAt(res.length - 1) == "0") { 148 } else if (res.charAt(res.length - 1) == "0") {
149 return res.substring(0, res.length - 1); 149 return res.substring(0, res.length - 1);
150 } else { 150 } else {
151 return res; 151 return res;
152 } 152 }
153}; 153};
154 154
155/** @id MochiKit.Format.lstrip */ 155/** @id MochiKit.Format.lstrip */
156MochiKit.Format.lstrip = function (str, /* optional */chars) { 156MochiKit.Format.lstrip = function (str, /* optional */chars) {
157 str = str + ""; 157 str = str + "";
@@ -184,66 +184,66 @@ MochiKit.Format.strip = function (str, /* optional */chars) {
184 return self.rstrip(self.lstrip(str, chars), chars); 184 return self.rstrip(self.lstrip(str, chars), chars);
185}; 185};
186 186
187/** @id MochiKit.Format.truncToFixed */ 187/** @id MochiKit.Format.truncToFixed */
188MochiKit.Format.truncToFixed = function (aNumber, precision) { 188MochiKit.Format.truncToFixed = function (aNumber, precision) {
189 var fixed = MochiKit.Format._numberToFixed(aNumber, precision); 189 var fixed = MochiKit.Format._numberToFixed(aNumber, precision);
190 var fracPos = fixed.indexOf("."); 190 var fracPos = fixed.indexOf(".");
191 if (fracPos > 0 && fracPos + precision + 1 < fixed.length) { 191 if (fracPos > 0 && fracPos + precision + 1 < fixed.length) {
192 fixed = fixed.substring(0, fracPos + precision + 1); 192 fixed = fixed.substring(0, fracPos + precision + 1);
193 fixed = MochiKit.Format._shiftNumber(fixed, 0); 193 fixed = MochiKit.Format._shiftNumber(fixed, 0);
194 } 194 }
195 return fixed; 195 return fixed;
196} 196};
197 197
198/** @id MochiKit.Format.roundToFixed */ 198/** @id MochiKit.Format.roundToFixed */
199MochiKit.Format.roundToFixed = function (aNumber, precision) { 199MochiKit.Format.roundToFixed = function (aNumber, precision) {
200 var fixed = MochiKit.Format._numberToFixed(aNumber, precision); 200 var fixed = MochiKit.Format._numberToFixed(aNumber, precision);
201 var fracPos = fixed.indexOf("."); 201 var fracPos = fixed.indexOf(".");
202 if (fracPos > 0 && fracPos + precision + 1 < fixed.length) { 202 if (fracPos > 0 && fracPos + precision + 1 < fixed.length) {
203 var str = MochiKit.Format._shiftNumber(fixed, precision); 203 var str = MochiKit.Format._shiftNumber(fixed, precision);
204 str = MochiKit.Format._numberToFixed(Math.round(parseFloat(str)), 0); 204 str = MochiKit.Format._numberToFixed(Math.round(parseFloat(str)), 0);
205 fixed = MochiKit.Format._shiftNumber(str, -precision); 205 fixed = MochiKit.Format._shiftNumber(str, -precision);
206 } 206 }
207 return fixed; 207 return fixed;
208} 208};
209 209
210/** 210/**
211 * Converts a number to a fixed format string. This function handles 211 * Converts a number to a fixed format string. This function handles
212 * conversion of exponents by shifting the decimal point to the left 212 * conversion of exponents by shifting the decimal point to the left
213 * or the right. It also guarantees a specified minimum number of 213 * or the right. It also guarantees a specified minimum number of
214 * fractional digits (but no maximum). 214 * fractional digits (but no maximum).
215 * 215 *
216 * @param {Number} aNumber the number to convert 216 * @param {Number} aNumber the number to convert
217 * @param {Number} precision the minimum number of decimal digits 217 * @param {Number} precision the minimum number of decimal digits
218 * 218 *
219 * @return {String} the fixed format number string 219 * @return {String} the fixed format number string
220 */ 220 */
221MochiKit.Format._numberToFixed = function (aNumber, precision) { 221MochiKit.Format._numberToFixed = function (aNumber, precision) {
222 var str = aNumber.toString(); 222 var str = aNumber.toString();
223 var parts = str.split(/[eE]/); 223 var parts = str.split(/[eE]/);
224 var exp = (parts.length === 1) ? 0 : parseInt(parts[1]) || 0; 224 var exp = (parts.length === 1) ? 0 : parseInt(parts[1], 10) || 0;
225 var fixed = MochiKit.Format._shiftNumber(parts[0], exp); 225 var fixed = MochiKit.Format._shiftNumber(parts[0], exp);
226 parts = fixed.split(/\./); 226 parts = fixed.split(/\./);
227 var whole = parts[0]; 227 var whole = parts[0];
228 var frac = (parts.length === 1) ? "" : parts[1]; 228 var frac = (parts.length === 1) ? "" : parts[1];
229 while (frac.length < precision) { 229 while (frac.length < precision) {
230 frac += "0"; 230 frac += "0";
231 } 231 }
232 if (frac.length > 0) { 232 if (frac.length > 0) {
233 return whole + "." + frac; 233 return whole + "." + frac;
234 } else { 234 } else {
235 return whole; 235 return whole;
236 } 236 }
237} 237};
238 238
239/** 239/**
240 * Shifts the decimal dot location in a fixed format number string. 240 * Shifts the decimal dot location in a fixed format number string.
241 * This function handles negative values and will add and remove 241 * This function handles negative values and will add and remove
242 * leading and trailing zeros as needed. 242 * leading and trailing zeros as needed.
243 * 243 *
244 * @param {String} num the fixed format number string 244 * @param {String} num the fixed format number string
245 * @param {Number} exp the base-10 exponent to apply 245 * @param {Number} exp the base-10 exponent to apply
246 * 246 *
247 * @return {String} the new fixed format number string 247 * @return {String} the new fixed format number string
248 */ 248 */
249MochiKit.Format._shiftNumber = function (num, exp) { 249MochiKit.Format._shiftNumber = function (num, exp) {
@@ -266,25 +266,25 @@ MochiKit.Format._shiftNumber = function (num, exp) {
266 num += "0"; 266 num += "0";
267 } 267 }
268 if (pos < num.length) { 268 if (pos < num.length) {
269 num = num.substring(0, pos) + "." + num.substring(pos); 269 num = num.substring(0, pos) + "." + num.substring(pos);
270 } 270 }
271 while (/^0[^.]/.test(num)) { 271 while (/^0[^.]/.test(num)) {
272 num = num.substring(1); 272 num = num.substring(1);
273 } 273 }
274 while (/^-0[^.]/.test(num)) { 274 while (/^-0[^.]/.test(num)) {
275 num = "-" + num.substring(2); 275 num = "-" + num.substring(2);
276 } 276 }
277 return num; 277 return num;
278} 278};
279 279
280/** @id MochiKit.Format.percentFormat */ 280/** @id MochiKit.Format.percentFormat */
281MochiKit.Format.percentFormat = function (aNumber) { 281MochiKit.Format.percentFormat = function (aNumber) {
282 return MochiKit.Format.twoDigitFloat(100 * aNumber) + '%'; 282 return MochiKit.Format.twoDigitFloat(100 * aNumber) + '%';
283}; 283};
284 284
285MochiKit.Format.LOCALE = { 285MochiKit.Format.LOCALE = {
286 en_US: {separator: ",", decimal: ".", percent: "%"}, 286 en_US: {separator: ",", decimal: ".", percent: "%"},
287 de_DE: {separator: ".", decimal: ",", percent: "%"}, 287 de_DE: {separator: ".", decimal: ",", percent: "%"},
288 pt_BR: {separator: ".", decimal: ",", percent: "%"}, 288 pt_BR: {separator: ".", decimal: ",", percent: "%"},
289 fr_FR: {separator: " ", decimal: ",", percent: "%"}, 289 fr_FR: {separator: " ", decimal: ",", percent: "%"},
290 "default": "en_US", 290 "default": "en_US",