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