Number.prototype.nf = function( decimals, dec_point, thousands_sep ) { var n = this, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals; var d = dec_point == undefined ? "," : dec_point; var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : ""; var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0; return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); } Array.prototype.in_array = function( needle ) { for( var i=0; i < this.length; i++ ) { if( this[i] === needle ) { return true; } } return false; } String.prototype.wordWrap = function(m, b, c){ var i, j, s, r = this.split("\n"); if(m > 0) for(i in r){ for(s = r[i], r[i] = ""; s.length > m; j = c ? m : (j = s.substr(0, m).match(/\S*$/)).input.length - j[0].length || m, r[i] += s.substr(0, j) + ((s = s.substr(j)).length ? b : "") ); r[i] += s; } return r.join("\n"); };