/*
	Copyright (c) 2004-2008, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/book/dojo-book-0-9/introduction/licensing
*/


window[(typeof (djConfig)!="undefined"&&djConfig.scopeMap&&djConfig.scopeMap[0][1])||"dojo"]._xdResourceLoaded({depends:[["provide","dojo.number"],["require","dojo.i18n"],["requireLocalization","dojo.cldr","number",null,"af,af-na,ar,ar-dz,ar-ma,ar-qa,ar-sa,ar-sy,ar-tn,ar-ye,as,be,bg,bo,ca,cs,da,de,de-at,de-ch,de-de,de-li,el,el-cy,en,en-au,en-be,en-bw,en-bz,en-gb,en-ie,en-in,en-jm,en-mt,en-na,en-nz,en-sg,en-tt,en-us,en-us-posix,en-za,en-zw,eo,es,es-cl,es-do,es-ec,es-es,es-gt,es-hn,es-mx,es-ni,es-pa,es-pe,es-pr,es-py,es-sv,es-us,es-uy,es-ve,et,eu,fa,fa-af,fi,fo,fr,fr-be,fr-ca,fr-ch,fr-lu,ga,gl,gu,gv,haw,he,hi,hr,hu,hy,id,ii,is,it,it-ch,ja,ja-jp,kk,kl,km,kn,ko,ko-kr,kok,kw,lt,lv,mk,mr,ms,ms-bn,mt,nb,nl,nl-be,nn,ROOT,om,pa,pl,ps,pt,pt-pt,ro,ru,sh,sh-cs,sh-yu,sk,sl,so,sq,sr,sr-latn-cs,sr-latn-me,sr-latn-rs,sr-latn-yu,sv,sw,sw-ke,ta,te,th,ti,tr,uk,uz-af,uz-arab,vi,zh,zh-cn,zh-hant,zh-hant-hk,zh-hk,zh-mo,zh-tw","af,af-na,ar,ar-dz,ar-ma,ar-qa,ar-sa,ar-sy,ar-tn,ar-ye,as,be,bg,bo,ca,cs,da,de,de-at,de-ch,de-de,de-li,el,el-cy,en,en-au,en-be,en-bw,en-bz,en-gb,en-ie,en-in,en-jm,en-mt,en-na,en-nz,en-sg,en-tt,en-us,en-us-posix,en-za,en-zw,eo,es,es-cl,es-do,es-ec,es-es,es-gt,es-hn,es-mx,es-ni,es-pa,es-pe,es-pr,es-py,es-sv,es-us,es-uy,es-ve,et,eu,fa,fa-af,fi,fo,fr,fr-be,fr-ca,fr-ch,fr-lu,ga,gl,gu,gv,haw,he,hi,hr,hu,hy,id,ii,is,it,it-ch,ja,ja-jp,kk,kl,km,kn,ko,ko-kr,kok,kw,lt,lv,mk,mr,ms,ms-bn,mt,nb,nl,nl-be,nn,ROOT,om,pa,pl,ps,pt,pt-pt,ro,ru,sh,sh-cs,sh-yu,sk,sl,so,sq,sr,sr-latn-cs,sr-latn-me,sr-latn-rs,sr-latn-yu,sv,sw,sw-ke,ta,te,th,ti,tr,uk,uz-af,uz-arab,vi,zh,zh-cn,zh-hant,zh-hant-hk,zh-hk,zh-mo,zh-tw"],["require","dojo.string"],["require","dojo.regexp"]],defineResource:function(_1,_2,_3){if(!_1._hasResource["dojo.number"]){_1._hasResource["dojo.number"]=true;_1.provide("dojo.number");_1.require("dojo.i18n");_1.require("dojo.string");_1.require("dojo.regexp");_1.number.format=function(_4,_5){_5=_1.mixin({},_5||{});var _6=_1.i18n.normalizeLocale(_5.locale);var _7=_1.i18n.getLocalization("dojo.cldr","number",_6);_5.customs=_7;var _8=_5.pattern||_7[(_5.type||"decimal")+"Format"];if(isNaN(_4)){return null;}return _1.number._applyPattern(_4,_8,_5);};_1.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;_1.number._applyPattern=function(_9,_a,_b){_b=_b||{};var _c=_b.customs.group;var _d=_b.customs.decimal;var _e=_a.split(";");var _f=_e[0];_a=_e[(_9<0)?1:0]||("-"+_f);if(_a.indexOf("%")!=-1){_9*=100;}else{if(_a.indexOf("‰")!=-1){_9*=1000;}else{if(_a.indexOf("¤")!=-1){_c=_b.customs.currencyGroup||_c;_d=_b.customs.currencyDecimal||_d;_a=_a.replace(/\u00a4{1,3}/,function(_10){var _11=["symbol","currency","displayName"][_10.length-1];return _b[_11]||_b.currency||"";});}else{if(_a.indexOf("E")!=-1){throw new Error("exponential notation not supported");}}}}var _12=_1.number._numberPatternRE;var _13=_f.match(_12);if(!_13){throw new Error("unable to find a number expression in pattern: "+_a);}return _a.replace(_12,_1.number._formatAbsolute(_9,_13[0],{decimal:_d,group:_c,places:_b.places}));};_1.number.round=function(_14,_15,_16){var _17=String(_14).split(".");var _18=(_17[1]&&_17[1].length)||0;if(_18>_15){var _19=Math.pow(10,_15);if(_16>0){_19*=10/_16;_15++;}_14=Math.round(_14*_19)/_19;_17=String(_14).split(".");_18=(_17[1]&&_17[1].length)||0;if(_18>_15){_17[1]=_17[1].substr(0,_15);_14=Number(_17.join("."));}}return _14;};_1.number._formatAbsolute=function(_1a,_1b,_1c){_1c=_1c||{};if(_1c.places===true){_1c.places=0;}if(_1c.places===Infinity){_1c.places=6;}var _1d=_1b.split(".");var _1e=(_1c.places>=0)?_1c.places:(_1d[1]&&_1d[1].length)||0;if(!(_1c.round<0)){_1a=_1.number.round(_1a,_1e,_1c.round);}var _1f=String(Math.abs(_1a)).split(".");var _20=_1f[1]||"";if(_1c.places){_1f[1]=_1.string.pad(_20.substr(0,_1c.places),_1c.places,"0",true);}else{if(_1d[1]&&_1c.places!==0){var pad=_1d[1].lastIndexOf("0")+1;if(pad>_20.length){_1f[1]=_1.string.pad(_20,pad,"0",true);}var _22=_1d[1].length;if(_22<_20.length){_1f[1]=_20.substr(0,_22);}}else{if(_1f[1]){_1f.pop();}}}var _23=_1d[0].replace(",","");pad=_23.indexOf("0");if(pad!=-1){pad=_23.length-pad;if(pad>_1f[0].length){_1f[0]=_1.string.pad(_1f[0],pad);}if(_23.indexOf("#")==-1){_1f[0]=_1f[0].substr(_1f[0].length-pad);}}var _24=_1d[0].lastIndexOf(",");var _25,_26;if(_24!=-1){_25=_1d[0].length-_24-1;var _27=_1d[0].substr(0,_24);_24=_27.lastIndexOf(",");if(_24!=-1){_26=_27.length-_24-1;}}var _28=[];for(var _29=_1f[0];_29;){var off=_29.length-_25;_28.push((off>0)?_29.substr(off):_29);_29=(off>0)?_29.slice(0,off):"";if(_26){_25=_26;delete _26;}}_1f[0]=_28.reverse().join(_1c.group||",");return _1f.join(_1c.decimal||".");};_1.number.regexp=function(_2b){return _1.number._parseInfo(_2b).regexp;};_1.number._parseInfo=function(_2c){_2c=_2c||{};var _2d=_1.i18n.normalizeLocale(_2c.locale);var _2e=_1.i18n.getLocalization("dojo.cldr","number",_2d);var _2f=_2c.pattern||_2e[(_2c.type||"decimal")+"Format"];var _30=_2e.group;var _31=_2e.decimal;var _32=1;if(_2f.indexOf("%")!=-1){_32/=100;}else{if(_2f.indexOf("‰")!=-1){_32/=1000;}else{var _33=_2f.indexOf("¤")!=-1;if(_33){_30=_2e.currencyGroup||_30;_31=_2e.currencyDecimal||_31;}}}var _34=_2f.split(";");if(_34.length==1){_34.push("-"+_34[0]);}var re=_1.regexp.buildGroupRE(_34,function(_36){_36="(?:"+_1.regexp.escapeString(_36,".")+")";return _36.replace(_1.number._numberPatternRE,function(_37){var _38={signed:false,separator:_2c.strict?_30:[_30,""],fractional:_2c.fractional,decimal:_31,exponent:false};var _39=_37.split(".");var _3a=_2c.places;if(_39.length==1||_3a===0){_38.fractional=false;}else{if(_3a===undefined){_3a=_39[1].lastIndexOf("0")+1;}if(_3a&&_2c.fractional==undefined){_38.fractional=true;}if(!_2c.places&&(_3a<_39[1].length)){_3a+=","+_39[1].length;}_38.places=_3a;}var _3b=_39[0].split(",");if(_3b.length>1){_38.groupSize=_3b.pop().length;if(_3b.length>1){_38.groupSize2=_3b.pop().length;}}return "("+_1.number._realNumberRegexp(_38)+")";});},true);if(_33){re=re.replace(/(\s*)(\u00a4{1,3})(\s*)/g,function(_3c,_3d,_3e,_3f){var _40=["symbol","currency","displayName"][_3e.length-1];var _41=_1.regexp.escapeString(_2c[_40]||_2c.currency||"");_3d=_3d?"\\s":"";_3f=_3f?"\\s":"";if(!_2c.strict){if(_3d){_3d+="*";}if(_3f){_3f+="*";}return "(?:"+_3d+_41+_3f+")?";}return _3d+_41+_3f;});}return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_30,decimal:_31,factor:_32};};_1.number.parse=function(_42,_43){var _44=_1.number._parseInfo(_43);var _45=(new RegExp("^"+_44.regexp+"$")).exec(_42);if(!_45){return NaN;}var _46=_45[1];if(!_45[1]){if(!_45[2]){return NaN;}_46=_45[2];_44.factor*=-1;}_46=_46.replace(new RegExp("["+_44.group+"\\s\\xa0"+"]","g"),"").replace(_44.decimal,".");return Number(_46)*_44.factor;};_1.number._realNumberRegexp=function(_47){_47=_47||{};if(!("places" in _47)){_47.places=Infinity;}if(typeof _47.decimal!="string"){_47.decimal=".";}if(!("fractional" in _47)||/^0/.test(_47.places)){_47.fractional=[true,false];}if(!("exponent" in _47)){_47.exponent=[true,false];}if(!("eSigned" in _47)){_47.eSigned=[true,false];}var _48=_1.number._integerRegexp(_47);var _49=_1.regexp.buildGroupRE(_47.fractional,function(q){var re="";if(q&&(_47.places!==0)){re="\\"+_47.decimal;if(_47.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+_47.places+"}";}}return re;},true);var _4c=_1.regexp.buildGroupRE(_47.exponent,function(q){if(q){return "([eE]"+_1.number._integerRegexp({signed:_47.eSigned})+")";}return "";});var _4e=_48+_49;if(_49){_4e="(?:(?:"+_4e+")|(?:"+_49+"))";}return _4e+_4c;};_1.number._integerRegexp=function(_4f){_4f=_4f||{};if(!("signed" in _4f)){_4f.signed=[true,false];}if(!("separator" in _4f)){_4f.separator="";}else{if(!("groupSize" in _4f)){_4f.groupSize=3;}}var _50=_1.regexp.buildGroupRE(_4f.signed,function(q){return q?"[-+]":"";},true);var _52=_1.regexp.buildGroupRE(_4f.separator,function(sep){if(!sep){return "(?:0|[1-9]\\d*)";}sep=_1.regexp.escapeString(sep);if(sep==" "){sep="\\s";}else{if(sep==" "){sep="\\s\\xa0";}}var grp=_4f.groupSize,_55=_4f.groupSize2;if(_55){var _56="(?:0|[1-9]\\d{0,"+(_55-1)+"}(?:["+sep+"]\\d{"+_55+"})*["+sep+"]\\d{"+grp+"})";return ((grp-_55)>0)?"(?:"+_56+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_56;}return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return _50+_52;};}}});
