(function(B){function A(C){var D=B.formatCurrency.regions[C];
if(D){return D
}else{if(/(\w+)-(\w+)/g.test(C)){C=C.replace(/(\w+)-(\w+)/g,"$1");
return B.formatCurrency.regions[C]
}}return null
}B.formatCurrency={};
B.formatCurrency.regions=[];
B.formatCurrency.regions[""]={symbol:"$",positiveFormat:"%s%n",negativeFormat:"(%s%n)",decimalSymbol:".",digitGroupSymbol:",",groupDigits:true};
B.fn.formatCurrency=function(C,E){if(arguments.length==1&&typeof C!=="string"){E=C;
C=false
}var D={name:"formatCurrency",colorize:false,region:"",global:true,roundToDecimalPlace:2,eventOnDecimalsEntered:false};
D=B.extend(D,B.formatCurrency.regions[""]);
E=B.extend(D,E);
if(E.region.length>0){E=B.extend(E,A(E.region))
}return this.each(function(){$this=B(this);
var F="0";
F=$this[$this.is("input, select, textarea")?"val":"html"]();
if(F.search("\\(")>=0){F="-"+F
}F=F.replace(RegExp("[^\\d"+E.decimalSymbol+"-]","g"),"");
if(E.decimalSymbol!="."){F=F.replace(E.decimalSymbol,".")
}if(isNaN(F)){F="0"
}var J=String(F).split(".");
F=J[0];
var H=F==(F=Math.abs(F)),G=J.length>1;
J=G?J[1].toString():"0";
if(E.roundToDecimalPlace>=0){J=parseFloat("1."+J);
J=J.toFixed(E.roundToDecimalPlace);
if(J.substring(0,1)=="2"){F=Number(F)+1
}J=J.substring(2)
}F=String(F);
if(E.groupDigits){for(var I=0;
I<Math.floor((F.length-(1+I))/3);
I++){F=F.substring(0,F.length-(4*I+3))+E.digitGroupSymbol+F.substring(F.length-(4*I+3))
}}I=(H?E.positiveFormat:E.negativeFormat).replace(/%s/g,E.symbol);
I=I.replace(/%e/g,F);
I=I.replace(/%d/g,J);
F=B([]);
F=C?B(C):$this;
F[F.is("input, select, textarea")?"val":"html"](I);
G&&E.eventOnDecimalsEntered&&F.trigger("decimalsEntered",J);
if(E.colorize){F.css("color",H?"black":"red")
}})
};
B.fn.toNumber=function(C){var D=B.extend({name:"toNumber",region:"",global:true},B.formatCurrency.regions[""]);
C=jQuery.extend(D,C);
if(C.region.length>0){C=B.extend(C,A(C.region))
}return this.each(function(){var F=B(this).is("input, select, textarea")?"val":"html",E=RegExp("[^\\d"+C.decimalSymbol+"-]","g");
B(this)[F](B(this)[F]().replace(E,""))
})
};
B.fn.asNumber=function(C){var E=B.extend({name:"asNumber",region:"",parse:true,parseType:"Float",global:true},B.formatCurrency.regions[""]);
C=jQuery.extend(E,C);
if(C.region.length>0){C=B.extend(C,A(C.region))
}E=C;
var D;
a:switch(C.parseType.toLowerCase()){case"int":D="Int";
break a;
case"float":D="Float";
break a;
default:throw"invalid parseType"
}E.parseType=D;
D=B(this).is("input, select, textarea")?"val":"html";
E=RegExp("[^\\d"+C.decimalSymbol+"-]","g");
D=(D=B(this)[D]())?D:"";
D=D.replace(E,"");
if(!C.parse){return D
}if(D.length==0){D="0"
}if(C.decimalSymbol!="."){D=D.replace(C.decimalSymbol,".")
}return window["parse"+C.parseType](D)
}
})(jQuery);
