/* Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details */ //>>built define("dojo/date/locale",["../_base/lang","../_base/array","../date","../cldr/supplemental","../i18n","../regexp","../string","../i18n!../cldr/nls/gregorian","module"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){ var _a={}; _1.setObject(_9.id.replace(/\//g,"."),_a); function _b(_c,_d,_e,_f){ return _f.replace(/([a-z])\1*/ig,function(_10){ var s,pad,c=_10.charAt(0),l=_10.length,_11=["abbr","wide","narrow"]; switch(c){ case "G": s=_d[(l<4)?"eraAbbr":"eraNames"][_c.getFullYear()<0?0:1]; break; case "y": s=_c.getFullYear(); switch(l){ case 1: break; case 2: if(!_e.fullYear){ s=String(s); s=s.substr(s.length-2); break; } default: pad=true; } break; case "Q": case "q": s=Math.ceil((_c.getMonth()+1)/3); pad=true; break; case "M": case "L": var m=_c.getMonth(); if(l<3){ s=m+1; pad=true; }else{ var _12=["months",c=="L"?"standAlone":"format",_11[l-3]].join("-"); s=_d[_12][m]; } break; case "w": var _13=0; s=_a._getWeekOfYear(_c,_13); pad=true; break; case "d": s=_c.getDate(); pad=true; break; case "D": s=_a._getDayOfYear(_c); pad=true; break; case "e": case "c": var d=_c.getDay(); if(l<2){ s=(d-_4.getFirstDayOfWeek(_e.locale)+8)%7; break; } case "E": d=_c.getDay(); if(l<3){ s=d+1; pad=true; }else{ var _14=["days",c=="c"?"standAlone":"format",_11[l-3]].join("-"); s=_d[_14][d]; } break; case "a": var _15=_c.getHours()<12?"am":"pm"; s=_e[_15]||_d["dayPeriods-format-wide-"+_15]; break; case "h": case "H": case "K": case "k": var h=_c.getHours(); switch(c){ case "h": s=(h%12)||12; break; case "H": s=h; break; case "K": s=(h%12); break; case "k": s=h||24; break; } pad=true; break; case "m": s=_c.getMinutes(); pad=true; break; case "s": s=_c.getSeconds(); pad=true; break; case "S": s=Math.round(_c.getMilliseconds()*Math.pow(10,l-3)); pad=true; break; case "v": case "z": s=_a._getZone(_c,true,_e); if(s){ break; } l=4; case "Z": var _16=_a._getZone(_c,false,_e); var tz=[(_16<=0?"+":"-"),_7.pad(Math.floor(Math.abs(_16)/60),2),_7.pad(Math.abs(_16)%60,2)]; if(l==4){ tz.splice(0,0,"GMT"); tz.splice(3,0,":"); } s=tz.join(""); break; default: throw new Error("dojo.date.locale.format: invalid pattern char: "+_f); } if(pad){ s=_7.pad(s,l); } return s; }); }; _a._getZone=function(_17,_18,_19){ if(_18){ return _3.getTimezoneName(_17); }else{ return _17.getTimezoneOffset(); } }; _a.format=function(_1a,_1b){ _1b=_1b||{}; var _1c=_5.normalizeLocale(_1b.locale),_1d=_1b.formatLength||"short",_1e=_a._getGregorianBundle(_1c),str=[],_1f=_1.hitch(this,_b,_1a,_1e,_1b); if(_1b.selector=="year"){ return _20(_1e["dateFormatItem-yyyy"]||"yyyy",_1f); } var _21; if(_1b.selector!="date"){ _21=_1b.timePattern||_1e["timeFormat-"+_1d]; if(_21){ str.push(_20(_21,_1f)); } } if(_1b.selector!="time"){ _21=_1b.datePattern||_1e["dateFormat-"+_1d]; if(_21){ str.push(_20(_21,_1f)); } } return str.length==1?str[0]:_1e["dateTimeFormat-"+_1d].replace(/\'/g,"").replace(/\{(\d+)\}/g,function(_22,key){ return str[key]; }); }; _a.regexp=function(_23){ return _a._parseInfo(_23).regexp; }; _a._parseInfo=function(_24){ _24=_24||{}; var _25=_5.normalizeLocale(_24.locale),_26=_a._getGregorianBundle(_25),_27=_24.formatLength||"short",_28=_24.datePattern||_26["dateFormat-"+_27],_29=_24.timePattern||_26["timeFormat-"+_27],_2a; if(_24.selector=="date"){ _2a=_28; }else{ if(_24.selector=="time"){ _2a=_29; }else{ _2a=_26["dateTimeFormat-"+_27].replace(/\{(\d+)\}/g,function(_2b,key){ return [_29,_28][key]; }); } } var _2c=[],re=_20(_2a,_1.hitch(this,_2d,_2c,_26,_24)); return {regexp:re,tokens:_2c,bundle:_26}; }; _a.parse=function(_2e,_2f){ var _30=/[\u200E\u200F\u202A\u202E]/g,_31=_a._parseInfo(_2f),_32=_31.tokens,_33=_31.bundle,re=new RegExp("^"+_31.regexp.replace(_30,"")+"$",_31.strict?"":"i"),_34=re.exec(_2e&&_2e.replace(_30,"")); if(!_34){ return null; } var _35=["abbr","wide","narrow"],_36=[1970,0,1,0,0,0,0],_37="",_38=_2.every(_34,function(v,i){ if(!i){ return true; } var _39=_32[i-1],l=_39.length,c=_39.charAt(0); switch(c){ case "y": if(l!=2&&_2f.strict){ _36[0]=v; }else{ if(v<100){ v=Number(v); var _3a=""+new Date().getFullYear(),_3b=_3a.substring(0,2)*100,_3c=Math.min(Number(_3a.substring(2,4))+20,99); _36[0]=(v<_3c)?_3b+v:_3b-100+v; }else{ if(_2f.strict){ return false; } _36[0]=v; } } break; case "M": case "L": if(l>2){ var _3d=_33["months-"+(c=="L"?"standAlone":"format")+"-"+_35[l-3]].concat(); if(!_2f.strict){ v=v.replace(".","").toLowerCase(); _3d=_2.map(_3d,function(s){ return s.replace(".","").toLowerCase(); }); } v=_2.indexOf(_3d,v); if(v==-1){ return false; } }else{ v--; } _36[1]=v; break; case "E": case "e": case "c": var _3e=_33["days-"+(c=="c"?"standAlone":"format")+"-"+_35[l-3]].concat(); if(!_2f.strict){ v=v.toLowerCase(); _3e=_2.map(_3e,function(d){ return d.toLowerCase(); }); } v=_2.indexOf(_3e,v); if(v==-1){ return false; } break; case "D": _36[1]=0; case "d": _36[2]=v; break; case "a": var am=_2f.am||_33["dayPeriods-format-wide-am"],pm=_2f.pm||_33["dayPeriods-format-wide-pm"]; if(!_2f.strict){ var _3f=/\./g; v=v.replace(_3f,"").toLowerCase(); am=am.replace(_3f,"").toLowerCase(); pm=pm.replace(_3f,"").toLowerCase(); } if(_2f.strict&&v!=am&&v!=pm){ return false; } _37=(v==pm)?"p":(v==am)?"a":""; break; case "K": if(v==24){ v=0; } case "h": case "H": case "k": if(v>23){ return false; } _36[3]=v; break; case "m": _36[4]=v; break; case "s": _36[5]=v; break; case "S": _36[6]=v; } return true; }); var _40=+_36[3]; if(_37==="p"&&_40<12){ _36[3]=_40+12; }else{ if(_37==="a"&&_40==12){ _36[3]=0; } } var _41=new Date(_36[0],_36[1],_36[2],_36[3],_36[4],_36[5],_36[6]); if(_2f.strict){ _41.setFullYear(_36[0]); } var _42=_32.join(""),_43=_42.indexOf("d")!=-1,_44=_42.indexOf("M")!=-1; if(!_38||(_44&&_41.getMonth()>_36[1])||(_43&&_41.getDate()>_36[2])){ return null; } if((_44&&_41.getMonth()<_36[1])||(_43&&_41.getDate()<_36[2])){ _41=_3.add(_41,"hour",1); } return _41; }; function _20(_45,_46,_47,_48){ var _49=function(x){ return x; }; _46=_46||_49; _47=_47||_49; _48=_48||_49; var _4a=_45.match(/(''|[^'])+/g),_4b=_45.charAt(0)=="'"; _2.forEach(_4a,function(_4c,i){ if(!_4c){ _4a[i]=""; }else{ _4a[i]=(_4b?_47:_46)(_4c.replace(/''/g,"'")); _4b=!_4b; } }); return _48(_4a.join("")); }; function _2d(_4d,_4e,_4f,_50){ _50=_6.escapeString(_50); if(!_4f.strict){ _50=_50.replace(" a"," ?a"); } return _50.replace(/([a-z])\1*/ig,function(_51){ var s,c=_51.charAt(0),l=_51.length,p2="",p3=""; if(_4f.strict){ if(l>1){ p2="0"+"{"+(l-1)+"}"; } if(l>2){ p3="0"+"{"+(l-2)+"}"; } }else{ p2="0?"; p3="0{0,2}"; } switch(c){ case "y": s="\\d{2,4}"; break; case "M": case "L": s=(l>2)?"\\S+?":"1[0-2]|"+p2+"[1-9]"; break; case "D": s="[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|"+p2+"[1-9][0-9]|"+p3+"[1-9]"; break; case "d": s="3[01]|[12]\\d|"+p2+"[1-9]"; break; case "w": s="[1-4][0-9]|5[0-3]|"+p2+"[1-9]"; break; case "E": case "e": case "c": s="\\S+"; break; case "h": s="1[0-2]|"+p2+"[1-9]"; break; case "k": s="1[01]|"+p2+"\\d"; break; case "H": s="1\\d|2[0-3]|"+p2+"\\d"; break; case "K": s="1\\d|2[0-4]|"+p2+"[1-9]"; break; case "m": case "s": s="[0-5]\\d"; break; case "S": s="\\d{"+l+"}"; break; case "a": var am=_4f.am||_4e["dayPeriods-format-wide-am"],pm=_4f.pm||_4e["dayPeriods-format-wide-pm"]; s=am+"|"+pm; if(!_4f.strict){ if(am!=am.toLowerCase()){ s+="|"+am.toLowerCase(); } if(pm!=pm.toLowerCase()){ s+="|"+pm.toLowerCase(); } if(s.indexOf(".")!=-1){ s+="|"+s.replace(/\./g,""); } } s=s.replace(/\./g,"\\."); break; default: s=".*"; } if(_4d){ _4d.push(_51); } return "("+s+")"; }).replace(/[\xa0 ]/g,"[\\s\\xa0]"); }; var _52=[]; _a.addCustomFormats=function(_53,_54){ _52.push({pkg:_53,name:_54}); }; _a._getGregorianBundle=function(_55){ var _56={}; _2.forEach(_52,function(_57){ var _58=_5.getLocalization(_57.pkg,_57.name,_55); _56=_1.mixin(_56,_58); },this); return _56; }; _a.addCustomFormats(_9.id.replace(/\/date\/locale$/,".cldr"),"gregorian"); _a.getNames=function(_59,_5a,_5b,_5c){ var _5d,_5e=_a._getGregorianBundle(_5c),_5f=[_59,_5b,_5a]; if(_5b=="standAlone"){ var key=_5f.join("-"); _5d=_5e[key]; if(_5d[0]==1){ _5d=undefined; } } _5f[1]="format"; return (_5d||_5e[_5f.join("-")]).concat(); }; _a.isWeekend=function(_60,_61){ var _62=_4.getWeekend(_61),day=(_60||new Date()).getDay(); if(_62.end<_62.start){ _62.end+=7; if(day<_62.start){ day+=7; } } return day>=_62.start&&day<=_62.end; }; _a._getDayOfYear=function(_63){ return _3.difference(new Date(_63.getFullYear(),0,1,_63.getHours()),_63)+1; }; _a._getWeekOfYear=function(_64,_65){ if(arguments.length==1){ _65=0; } var _66=new Date(_64.getFullYear(),0,1).getDay(),adj=(_66-_65+7)%7,_67=Math.floor((_a._getDayOfYear(_64)+adj-1)/7); if(_66==_65){ _67++; } return _67; }; return _a; });