(function($){$.formatCurrency={};$.formatCurrency.regions=[];$.formatCurrency.regions[""]={symbol:"$",positiveFormat:"%s%n",negativeFormat:"(%s%n)",decimalSymbol:".",digitGroupSymbol:",",groupDigits:true}; $.fn.formatCurrency=function(destination,settings){if(arguments.length==1&&typeof destination!=="string"){settings=destination;destination=false }var defaults={name:"formatCurrency",colorize:false,region:"",global:true};defaults=$.extend(defaults,$.formatCurrency.regions[""]);settings=$.extend(defaults,settings); if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}return this.each(function(){$this=$(this);var num="0"; num=$this[$this.is("input, select, textarea")?"val":"html"]();var trimRegex=new RegExp("[^\\d"+settings.decimalSymbol+"-]","g");num=num.replace(trimRegex,""); if(settings.decimalSymbol!="."){num=num.replace(settings.decimalSymbol,".")}if(isNaN(num)){num="0"}var isPositive=(num==(num=Math.abs(num))); num=Math.floor(num*100);var cents=num%100;num=Math.floor(num/100).toString();if(cents<10){cents="0"+cents}if(settings.groupDigits){for(var i=0; i0){settings=$.extend(settings,getRegionOrCulture(settings.region))}return this.each(function(){var method=$(this).is("input, select, textarea")?"val":"html"; var trimRegex=new RegExp("[^\\d"+settings.decimalSymbol+"-]","g");$(this)[method]($(this)[method]().replace(trimRegex,""))})};$.fn.asNumber=function(settings){var defaults=$.extend({name:"asNumber",region:"",parse:true,parseType:"Float",global:true},$.formatCurrency.regions[""]); settings=jQuery.extend(defaults,settings);if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}settings.parseType=validateParseType(settings.parseType); var method=$(this).is("input, select, textarea")?"val":"html";var trimRegex=new RegExp("[^\\d"+settings.decimalSymbol+"-]","g");var num=$(this)[method]().replace(trimRegex,""); if(!settings.parse){return num}if(num.length==0){num="0"}if(settings.decimalSymbol!="."){num=num.replace(settings.decimalSymbol,".")}return window["parse"+settings.parseType](num) };function getRegionOrCulture(region){var regionInfo=$.formatCurrency.regions[region];if(regionInfo){return regionInfo}else{if(/(\w+)-(\w+)/g.test(region)){var culture=region.replace(/(\w+)-(\w+)/g,"$1"); return $.formatCurrency.regions[culture]}}return null}function validateParseType(parseType){switch(parseType.toLowerCase()){case"int":return"Int"; case"float":return"Float";default:throw"invalid parseType"}}})(jQuery);