(function($){$.number_format=function(value,opts){var options=$.extend({precision:0,decimal:'.',thousands:',',default:'0,00',allow_negative:true},opts);var signal=(value.toString().indexOf('-')==0&&options.allow_negative)?'-':'';if(get_numeric(value)==0||get_numeric(value)=='')return signal+options.default;var val=get_numeric(value);val=signal+format_value(val);return val;function get_numeric(val){var value=val.toString().replace(/[^\d]*/g,'');var mult=val.toString().indexOf('-')==0?-1:1;return parseInt(value*mult)}function format_value(val){var value=val.toString();var offset=value.charAt(0)=='-'?1:0;var integer_part='';var decimal_part='';var formatted_number='';var aux=0;if(options.precision>0){aux=offset?(options.precision+1):options.precision;if(value.length<=aux){integer_part='0';if(value.length<aux)for(var i=0;i<options.precision-value.length;i++)decimal_part+='0';decimal_part+=offset?value.slice(1):value;formatted_number+=integer_part+options.decimal+decimal_part}else{integer_part=value.slice(0,value.length-options.precision);decimal_part=value.slice(value.length-options.precision);formatted_number=format_integer_part(integer_part)+options.decimal+decimal_part}}else{formatted_number=format_integer_part(value)}return formatted_number}function format_integer_part(val){var counter=0;var formatted='';var separator='';var offset=val.charAt(0)=='-'?1:0;for(var i=val.length-1;i>=offset;i--){separator=(counter>0&&counter%3==0)?options.thousands:'';formatted=val[i]+separator+formatted;counter++}return formatted}}})(jQuery);(function($){$.fn.number_format=function(opts){return $(this).each(function(){$(this).val($.number_format($(this).val(),opts));$(this).keyup(function(){$(this).val($.number_format($(this).val(),opts))}).blur(function(){$(this).trigger('keyup')}).focus(function(){$(this).select()})})}})(jQuery);
