$(document).ready(function()
{
    $("input.number-format").each(
    	function(i) {
			number_format(this);
			
			var $this = $(this);
			$this.keyup(
				function (e) {
					number_format(e.currentTarget, e);
				}
			);
			
			$this.blur(
				function (e) {
					number_format(e.currentTarget, e);
				}                                
			);
    	}
    );
    
});

function number_format(input, event)
{
    if (event &&  (event.keyCode >= 37 && event.keyCode <= 40 || event.keyCode == 46 || event.keyCode == 8)) {
    	return true;
    } else {
    	var number = input.value.replace(/[^\d]+/g, '');
    	var number_chunks = Array();
    	
    	var j = 0;
    	var l = 0;
    	var i = number.toString().length
		for (; i >= 0; i--, j++) {
			if (j % 3 == 0 && j != 0) {
				number_chunks[l++] = number.substr(i, 3);
				j = 0;	
			} else if (j % 3 != 0 && i == 0) {
				number_chunks[l] = number.substr(i, j);
			}
		}
		
		number_chunks = number_chunks.reverse();
		number = number_chunks.join(' ');
		
		input.value = number;
    }
}
