function number_format( number, decimals, dec_point, thousands_sep ) {
	var n = number, 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) : "");
}
function checkNr(e,opts) {
	var event = e || window.event;
	sender = event.target || event.srcElement;
	
	/* alert(typeof(opts.unsigned) == "undefined");
	opts.float = (typeof(opts.float) == "undefined" ? false : true);
	opts.unsigned = (typeof(opts.unsigned) == "undefined" ? false : true);*/
	
	if (typeof(opts) == "undefined") opts = new Array();
	$(sender).data('opts',opts);
	
	$(sender).unbind('keyup');
	
	$(sender).bind('keyup',function(event) {
		event = event || window.event;
		if (event.keyCode == 17) $(this).data('ctrl',false);
		
		// Komma löschen? Nein? Wenigstens Korrigieren.
		if ($(sender).data('opts').float == true) var clean_value = sender.value.replace(',','.'); else var clean_value = sender.value.replace(/[,\.]/g,'').toLowerCase();
		
		// Negativ erlaubt?
		if ($(sender).data('opts').unsigned) var clean_value = clean_value.replace('-','');
		
		clean_value = clean_value.replace(/[^0-9\.-]/g,'').toLowerCase();
		if (sender.value != clean_value) sender.value = clean_value;
	});
		
	//190 = . | 110,188 = ,
	
	if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 39 || event.keyCode == 37 || event.keyCode == 36 || event.keyCode == 46 || event.keyCode == 35 || event.keyCode == 9) return true;
	
	if (event.keyCode == 188 || event.keyCode == 110) if ($(sender).data('opts').float == true) {sender.value += '.'; return false;} else {return false;}

	if (event.keyCode == 190) if ($(sender).data('opts').float == true) return true; else return false;

	if (event.keyCode == 17) {$(sender).data('ctrl',true); return true;};
		
	if (event.keyCode == 65 && $(sender).data('ctrl') == true) return true; // Ctrl + A
	if (event.keyCode == 67 && $(sender).data('ctrl') == true) return true; // Ctrl + C
	if (event.keyCode == 86 && $(sender).data('ctrl') == true) {return true;} // Crtl + V
	if (event.keyCode == 88 && $(sender).data('ctrl') == true) return true; // Crtl + X
	if (event.keyCode == 109) if (!$(sender).data('opts').unsigned) return true; else return false;
	
	return false;
}
	
Array.prototype.foreach = function( callback ) { for( var k=0; k<this .length; k++ ) { callback( k, this[ k ] ); } }
