(function(a){a.fn.numeric=function(d,e){if(typeof d==="boolean"){d={decimal:d}}d=d||{};if(typeof d.negative=="undefined"){d.negative=true}var b=(d.decimal===false)?"":d.decimal||".";var c=(d.negative===true)?true:false;var e=typeof e=="function"?e:function(){};return this.data("numeric.decimal",b).data("numeric.negative",c).data("numeric.callback",e).keypress(a.fn.numeric.keypress).keyup(a.fn.numeric.keyup).blur(a.fn.numeric.blur)};a.fn.numeric.keypress=function(g){var b=a.data(this,"numeric.decimal");var c=a.data(this,"numeric.negative");var d=g.charCode?g.charCode:g.keyCode?g.keyCode:0;if(d==13&&this.nodeName.toLowerCase()=="input"){return true}else{if(d==13){return false}}var f=false;if((g.ctrlKey&&d==97)||(g.ctrlKey&&d==65)){return true}if((g.ctrlKey&&d==120)||(g.ctrlKey&&d==88)){return true}if((g.ctrlKey&&d==99)||(g.ctrlKey&&d==67)){return true}if((g.ctrlKey&&d==122)||(g.ctrlKey&&d==90)){return true}if((g.ctrlKey&&d==118)||(g.ctrlKey&&d==86)||(g.shiftKey&&d==45)){return true}if(d<48||d>57){if(this.value.indexOf("-")!=0&&c&&d==45&&(this.value.length==0||(a.fn.getSelectionStart(this))==0)){return true}if(b&&d==b.charCodeAt(0)&&this.value.indexOf(b)!=-1){f=false}if(d!=8&&d!=9&&d!=13&&d!=35&&d!=36&&d!=37&&d!=39&&d!=46){f=false}else{if(typeof g.charCode!="undefined"){if(g.keyCode==g.which&&g.which!=0){f=true;if(g.which==46){f=false}}else{if(g.keyCode!=0&&g.charCode==0&&g.which==0){f=true}}}}if(b&&d==b.charCodeAt(0)){if(this.value.indexOf(b)==-1){f=true}else{f=false}}}else{f=true}return f};a.fn.numeric.keyup=function(p){var k=this.value;if(k.length>0){var f=a.fn.getSelectionStart(this);var o=a.data(this,"numeric.decimal");var l=a.data(this,"numeric.negative");if(o!=""){var d=k.indexOf(o);if(d==0){this.value="0"+k}if(d==1&&k.charAt(0)=="-"){this.value="-0"+k.substring(1)}k=this.value}var c=[0,1,2,3,4,5,6,7,8,9,"-",o];var h=k.length;for(var n=h-1;n>=0;n--){var b=k.charAt(n);if(n!=0&&b=="-"){k=k.substring(0,n)+k.substring(n+1)}else{if(n==0&&!l&&b=="-"){k=k.substring(1)}}var g=false;for(var m=0;m<c.length;m++){if(b==c[m]){g=true;break}}if(!g||b==" "){k=k.substring(0,n)+k.substring(n+1)}}var q=k.indexOf(o);if(q>0){for(var n=h-1;n>q;n--){var b=k.charAt(n);if(b==o){k=k.substring(0,n)+k.substring(n+1)}}}this.value=k;a.fn.setSelection(this,f)}};a.fn.numeric.blur=function(){var b=a.data(this,"numeric.decimal");var e=a.data(this,"numeric.callback");var d=this.value;if(d!=""){var c=new RegExp("^\\d+$|\\d*"+b+"\\d+");if(!c.exec(d)){e.apply(this)}}};a.fn.removeNumeric=function(){return this.data("numeric.decimal",null).data("numeric.negative",null).data("numeric.callback",null).unbind("keypress",a.fn.numeric.keypress).unbind("blur",a.fn.numeric.blur)};a.fn.getSelectionStart=function(c){if(c.createTextRange){var b=document.selection.createRange().duplicate();b.moveEnd("character",c.value.length);if(b.text==""){return c.value.length}return c.value.lastIndexOf(b.text)}else{return c.selectionStart}};a.fn.setSelection=function(d,c){if(typeof c=="number"){c=[c,c]}if(c&&c.constructor==Array&&c.length==2){if(d.createTextRange){var b=d.createTextRange();b.collapse(true);b.moveStart("character",c[0]);b.moveEnd("character",c[1]);b.select()}else{if(d.setSelectionRange){d.focus();d.setSelectionRange(c[0],c[1])}}}}})(jQuery);
