/**
 * jQuery plugin to format numbers
 *
 * Author: Hugo Hideki Yamashita <hugo.hideki@gmail.com>
 * Version: 2.0
 * Release date: January 01, 2009
 */

(function($){$.number_format=function(value,opts){var options=$.extend({precision:0,decimal:',',thousands:'.',def:'',allow_negative:true},opts);var signal=(value.toString().indexOf('-')==0&&options.allow_negative)?'-':'';if(get_numeric(value)==0||get_numeric(value)=='')
return signal+options.def;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.charAt(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));}).focus(function(){$(this).select();});});};})(jQuery);