(function($) {

    $.fn.numeric = function(p) {

        p = $.extend({
            fl: false
        }, p);

        return this.each
			(
				function() {
				    $(this).keypress
						(
							function(e) {
							    if (!e.charCode) k = String.fromCharCode(e.which);
							    else k = String.fromCharCode(e.charCode);
							    var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;

							    if ((key == 13 && this.nodeName.toLowerCase() == "input") ||
							    ((e.ctrlKey && key == 97) || (e.ctrlKey && key == 65)) ||
							    ((e.ctrlKey && key == 120) || (e.ctrlKey && key == 88)) ||
							    ((e.ctrlKey && key == 99) || (e.ctrlKey && key == 67)) ||
							    ((e.ctrlKey && key == 122) || (e.ctrlKey && key == 90)) ||
							    ((e.ctrlKey && key == 118) || (e.ctrlKey && key == 86) || (e.shiftKey && key == 45)) ||
							    key == 8 || key == 9 || key == 13 || key == 35 || key == 36 || key == 37 || key == 39/* || key == 46*/) {
							        
							    } else {

							        var oldval = this.value;
							        var newval = oldval + k;
							        if (/^\d+$/.test(newval) || (p.fl == true && /^\d+\,?\d{0,2}$/.test(newval))) { }
							        else { e.preventDefault(); }
							    }


							}

						);
				    $(this).bind('contextmenu', function() { return false });
				}
			);
    };

})(jQuery);

