Object.extend(Math, {numberFormat: function(number, options) {options = Object.extend({decimals: 2,decimalDelimiter: ",",wholeDelimiter: ""
}, options || {});var i = 0;var nArr = String(number).split(".");var whole = (typeof nArr[0] != "undefined") ? nArr[0] : "0";if (options.wholeDelimiter) {var exp = /(\d+)(\d{3})/;while (exp.test(whole)) {whole = whole.replace(exp, "$1" + options.wholeDelimiter + "$2");}
}
var remainder = "";if (typeof nArr[1] != "undefined") {remainder = nArr[1];} else {for (i = 0; i < options.decimals; i++){remainder += "0";}
}
if (options.decimals <= 0) {return whole;}
var a = new Array();for (i = 0; i < options.decimals; i++) {if (remainder.charAt(i) != "") {a[i] = remainder.charAt(i);}
else a[i] = "0";}
return whole + options.decimalDelimiter + a.join("");}
});Ajax.Base.prototype.initialize = Ajax.Base.prototype.initialize.wrap(
function (callOriginal, options) {var csrfName, csrfToken, parameters;try {csrfName = $$("head meta[name=csrf-name]")[0].content;csrfToken = $$("head meta[name=csrf-token]")[0].content;} catch (e) {return callOriginal(options);}
parameters = options.parameters || {};if (Object.isString(parameters)) {if (parameters.indexOf(csrfName + "=") == -1) {parameters += "&" + csrfName + "=" + csrfToken;}
} else if (Object.isHash(parameters)) {if (!parameters.get(csrfName)) {parameters.set(csrfName, csrfToken);}
}
options.parameters = parameters;return callOriginal(options);}
);
