(function($){
	$.fn.numberOnly = function(decimalplace, minNumber, maxNumber){
		var numberOnly = {};
		$(this).keyup(function(e){
			switch(e.which){
				case 37:
				case 38:
				case 39:
				case 40:
					return;
				default:
					if($(this).val() != null && $(this).val() != ""){
						if(!$(this).val().match(numberOnly[this].regEx)){
							$(this).val(numberOnly[this].lastData);
							return;
						}
						if(numberOnly[this].min!==false && $(this).val() < numberOnly[this].min){
							$(this).val(numberOnly[this].min);
							numberOnly[this].lastData = $(this).val();
							return;
						}
						if(numberOnly[this].max!==false && $(this).val() > numberOnly[this].max){
							$(this).val(numberOnly[this].max);
							numberOnly[this].lastData = $(this).val();
							return;
						}
					}
					numberOnly[this].lastData = $(this).val();
			}
		});
		$(this).blur(function(){
			if(!$(this).val().match(numberOnly[this].regEx)){
				$(this).val(numberOnly[this].defaultNumber);
			}
		});
		$(this).each(function(){
			var last = $(this).val();
			var decimalPlaces = decimalplace;
			if(decimalPlaces > 0){
				var reg = "^[-+]?([0-9]+)(\\.?[0-9]{0," + decimalPlaces + "})$";
			}
			else {
				var reg = "^[-+]?[0-9]+$";
			}
			
			if(last == null || last == "") last = 0;
			
			numberOnly[this] = {
				min:			minNumber,
				max:			maxNumber,
				defaultNumber:	last,
				lastData:		last,
				regEx:			reg
			};
		});
	};
})(jQuery);	
