﻿/**
 * @version: 1.2.1
 * Created by Robert J. Knothe on 2009-06-21. Please report any bugs at http://www.decorplanit.com/plugin/
 * Copyright (c) 2009 Robert J. Knothe  http://www.decorplanit.com/plugin/
 * The MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
(function(e){e.fn.autoNumeric=function(){return this.each(function(){var h=e.extend(e.fn.autoNumeric.defaults);var f=e(this);var g=this.id;e(this).keypress(function(p){e.extend(h,b(g,h));var v=0;var i=0;var o=0;var m=0;var t=h.aNum+h.aSign+h.aDec;if(document.selection){this.focus();var l=document.selection.createRange();var q=document.selection.createRange().text.length;l.moveStart("character",-this.value.length);v=(l.text.length-q)*1;m=this.value.length*1}else{if(this.selectionStart||this.selectionStart=="0"){v=this.selectionStart*1;m=this.value.length*1}}i=m-(m-this.value.lastIndexOf(h.aDec));if(i==-1){i=m}o=(m-this.value.lastIndexOf(h.aDec))-1;if(this.value.lastIndexOf(h.aDec)==-1){o=0}if(!p){p=window.event}var k="";if(p.keyCode){k=p.keyCode}else{if(p.which){k=p.which}}var u=String.fromCharCode(k);if((p.ctrlKey)&&(u=="c"||u=="v"||u=="x"||p.which==67||p.which==86||p.which==88)){return}if(k==8||p.keyCode==37||(p.keyCode==39||p.which===0)){return}if(t.indexOf(u)==-1){if(h.aDec!="."&&h.aSep!="."&&p.which===0){return}else{p.preventDefault()}}var s=this.value;var n="";var r=0;for(j=0;j<i;j++){n=s.charAt(j);if(n>="0"&&n<="9"){r++}}if(u==h.aDec){if(p.which===0){return}else{if(this.value.indexOf(h.aDec)!=-1||h.mDec<=0||v<this.value.length-h.mDec||v===0&&this.value.charAt(0)=="-"||this.value.lastIndexOf(h.aSep)>=v&&h.aSep!==""){p.preventDefault()}}}if(k==45&&(v>0||this.value.indexOf("-")!=-1||h.aSign==="")){p.preventDefault()}if(k>=48&&k<=57){if(this.value.indexOf("-")!=-1){if(v===0){p.preventDefault()}if(this.value.charAt(1)==="0"&&this.value.length>=2&&(v==1&&k==48||v>=2&&v<=i)){p.preventDefault()}if((this.value.charAt(1)>=1&&this.value.charAt(1)<=9)&&(v==1&&k==48)){p.preventDefault()}}if(this.value.indexOf("-")==-1&&this.value.length>0){if(this.value.charAt(0)==="0"&&v>0&&v<=i){p.preventDefault()}if(i>0&&v===0&&k==48){p.preventDefault()}}if(r>=h.mNum&&v<=i){p.preventDefault()}if(this.value.indexOf(h.aDec)!=-1&&v>=(this.value.length-o)&&o>=h.mDec){p.preventDefault()}}});e(this).keyup(function(i){if(i.keyCode==37||i.keyCode==39||h.aSep===""){return}document.getElementById(this.id).value=a(this.value,h)});e(this).change(function(){if(e.browser.opera){c(f,g,h)}});e(this).bind("paste",function(){setTimeout(function(){c(f,g,h)},0)})})};e.fn.autoNumeric.defaults={aNum:"0123456789",aSign:"",aSep:",",aDec:".",mNum:9,mDec:2,dGroup:/(\d)((\d{3}?)+)$/,rMethod:"S"};function b(f,g){var h=e("#"+f).attr("alt");if(h!==""){g.aSign=(h.charAt(0)==="n")?"-":"";g.mNum=(h.charAt(1)==="0")?g.mNum=15:h.charAt(1)*1;if(h.charAt(2)!="c"){if(h.charAt(2)==="a"){g.aSep="'"}else{if(h.charAt(2)==="p"){g.aSep="."}else{if(h.charAt(2)==="s"){g.aSep=" "}else{g.aSep=""}}}}if(h.charAt(3)!=3){g.dGroup=(h.charAt(3)==2)?/(\d)((\d)(\d{2}?)+)$/:/(\d)((\d{4}?)+)$/}g.aDec=(h.charAt(4)==="c")?",":g.aDec;g.mDec=(h.charAt(5)<="9")?h.charAt(5)*1:document.getElementById("dp"+h.charAt(5)).value*1;g.rMethod=(h.charAt(6)!=="")?h.charAt(6):g.rMethod}return g}function a(f,i){f=f.split(i.aSep).join("");var h=f.split(i.aDec);var g=h[0];while(i.dGroup.test(g)){g=g.replace(i.dGroup,"$1"+i.aSep+"$2")}if(i.mDec!==0&&h.length>1){f=g+i.aDec+h[1]}else{f=g}return f}function d(l,q,g){var f="";var n=0;var s="";l=l+"";if(l.charAt(0)=="-"){s=(l*1===0)?"":"-";l=l.replace("-","")}var p=l.lastIndexOf(".");if(p===0){l="0"+l;p=1}if(p==-1||p==l.length-1){if(q>0){f=(p==-1)?l+".":l;for(n=0;n<q;n++){f+="0"}return s+f}else{return s+l}}var o=(l.length-1)-p;if(o==q){return s+l}if(o<q){f=l;for(n=o;n<q;n++){f+="0"}return s+f}var h=p+q;var k=l.charAt(h+1)*1;var m=[];for(n=0;n<=h;n++){m[n]=l.charAt(n)}var r=(l.charAt(h)==".")?(l.charAt(h-1)%2):(l.charAt(h)%2);if((k>4&&g==="S")||(k>4&&g==="A"&&s==="")||(k>5&&g==="A"&&s=="-")||(k>5&&g==="s")||(k>5&&g==="a"&&s==="")||(k>4&&g==="a"&&s=="-")||(k>5&&g==="B")||(k==5&&g==="B"&&r==1)||(k>0&&g==="C"&&s==="")||(k>0&&g==="F"&&s=="-")||(k>0&&g==="U")){for(n=(m.length-1);n>=0;n--){if(m[n]=="."){continue}m[n]++;if(m[n]<10){break}}}for(n=0;n<=h;n++){if(m[n]=="."||m[n]<10||n===0){f+=m[n]}else{f+="0"}}if(q===0){f=f.replace(".","")}return s+f}function c(h,q,m){var o=h.val();if(o.length>25){document.getElementById(q).value="";return}e.extend(m,b(q,m));var n=m.aNum+m.aSign+m.aDec;var u="";if(m.aSign=="-"){u="\\-"}var g=new RegExp("[^"+u+m.aNum+m.aDec+"]","gi");var f=o.replace(g,"");if(f.lastIndexOf("-")>0||f.indexOf(m.aDec)!=f.lastIndexOf(m.aDec)){f=""}var p="";var l=0;var t="";var k=0;var r=f.split("");for(k=0;k<r.length;k++){if(k===0&&r[k]=="-"){l=1;t="-";continue}if(r[k]==m.aDec&&r.length-1==k){break}if(p.length===0&&r[k]=="0"&&(r[k+1]>=0||r[k+1]<=9)){continue}else{p=p+r[k]}}p=t+p;if(p.indexOf(m.aDec)==-1&&p.length>(m.mNum+l)){p=""}if(p.indexOf(m.aDec)>(m.mNum+l)){p=""}if(p.indexOf(m.aDec)!=-1&&(m.aDec!=".")){p=p.replace(m.aDec,".")}p=d(p,m.mDec,m.rMethod);if(m.aDec!="."){p=p.replace(".",m.aDec)}if(p!==""&&m.aSep!==""){p=a(p,m)}document.getElementById(q).value=p}e.fn.autoNumeric.Strip=function(i){var g=document.getElementById(i).value;var k=e.extend(e.fn.autoNumeric.defaults);e.extend(k,b(i,k));var f="";if(k.aSign=="-"){f="\\-"}var h=new RegExp("[^"+f+k.aNum+k.aDec+"]","gi");g=g.replace(h,"");if(g.indexOf(k.aDec)!=-1&&(k.aDec!=".")){g=g.replace(k.aDec,".")}if(g*1===0&&f!==""){g=g.replace("-","")}return g};e.fn.autoNumeric.Format=function(g,f){var i=e.extend(e.fn.autoNumeric.defaults);e.extend(i,b(g,i));f=d(f,i.mDec,i.rMethod);var h=0;if(f.indexOf("-")!=-1&&i.aSign===""){f=""}else{if(f.indexOf("-")!=-1&&i.aSign=="-"){h=1}}if(f.indexOf(".")==-1&&f.length>(i.mNum+h)){f=""}else{if(f.indexOf(".")>(i.mNum+h)){f=""}}if(i.aDec!="."){f=f.replace(".",i.aDec)}return a(f,i)}})(jQuery);