blob: 4743fef1a7fc7741e1649cb3fe7cda0f8d22db33 [file] [log] [blame]
/*
Copyright (c) 2004-2009, 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
*/
if(!dojo._hasResource["dojox.date.HebrewLocale"]){
dojo._hasResource["dojox.date.HebrewLocale"]=true;
dojo.provide("dojox.date.HebrewLocale");
dojo.experimental("dojox.date.HebrewLocale");
dojo.require("dojox.date.HebrewDate");
dojo.require("dojox.date.HebrewNumerals");
dojo.require("dojo.regexp");
dojo.require("dojo.string");
dojo.require("dojo.i18n");
dojo.requireLocalization("dojo.cldr","hebrew",null,"ROOT,he");
(function(){
function _1(_2,_3,_4,_5,_6){
return _6.replace(/([a-z])\1*/ig,function(_7){
var s,_9;
var c=_7.charAt(0);
var l=_7.length;
var _c=["abbr","wide","narrow"];
switch(c){
case "y":
if(_4=="he"){
s=dojox.date.HebrewNumerals.getYearHebrewLetters(_2.getFullYear());
}else{
s=String(_2.getFullYear());
}
break;
case "M":
var m=_2.getMonth();
if(l<3){
if(!_2.isLeapYear(_2.getFullYear())&&m>5){
m--;
}
if(_4=="he"){
s=dojox.date.HebrewNumerals.getMonthHebrewLetters(m);
}else{
s=m+1;
_9=true;
}
}else{
if(!_2.isLeapYear(_2.getFullYear())&&m==6){
m--;
}
var _e=["months","format",_c[l-3]].join("-");
s=_3[_e][m];
}
break;
case "d":
if(_4=="he"){
s=dojox.date.HebrewNumerals.getDayHebrewLetters(_2.getDate());
}else{
s=_2.getDate();
_9=true;
}
break;
case "E":
var d=_2.getDay();
if(l<3){
s=d+1;
_9=true;
}else{
var _10=["days","format",_c[l-3]].join("-");
s=_3[_10][d];
}
break;
case "a":
var _11=(_2.getHours()<12)?"am":"pm";
s=_3[_11];
break;
case "h":
case "H":
case "K":
case "k":
var h=_2.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;
}
_9=true;
break;
case "m":
s=_2.getMinutes();
_9=true;
break;
case "s":
s=_2.getSeconds();
_9=true;
break;
case "S":
s=Math.round(_2.getMilliseconds()*Math.pow(10,l-3));
_9=true;
break;
default:
throw new Error("dojox.date.HebrewLocale.formatPattern: invalid pattern char: "+_6);
}
if(_9){
s=dojo.string.pad(s,l);
}
return s;
});
};
dojox.date.HebrewLocale.format=function(_13,_14){
_14=_14||{};
var _15=dojo.i18n.normalizeLocale(_14.locale);
var _16=_14.formatLength||"short";
var _17=dojox.date.HebrewLocale._getHebrewBundle(_15);
var str=[];
var _19=dojo.hitch(this,_1,_13,_17,_15,_14.fullYear);
if(_14.selector!="time"){
var _1a=_14.datePattern||_17["dateFormat-"+_16];
if(_1a){
str.push(_1b(_1a,_19));
}
}
if(_14.selector!="date"){
var _1c=_14.timePattern||_17["timeFormat-"+_16];
if(_1c){
str.push(_1b(_1c,_19));
}
}
var _1d=str.join(" ");
return _1d;
};
dojox.date.HebrewLocale.regexp=function(_1e){
return dojox.date.HebrewLocale._parseInfo(_1e).regexp;
};
dojox.date.HebrewLocale._parseInfo=function(_1f){
_1f=_1f||{};
var _20=dojo.i18n.normalizeLocale(_1f.locale);
var _21=dojox.date.HebrewLocale._getHebrewBundle(_20);
var _22=_1f.formatLength||"short";
var _23=_1f.datePattern||_21["dateFormat-"+_22];
var _24=_1f.timePattern||_21["timeFormat-"+_22];
var _25;
if(_1f.selector=="date"){
_25=_23;
}else{
if(_1f.selector=="time"){
_25=_24;
}else{
_25=(typeof (_24)=="undefined")?_23:_23+" "+_24;
}
}
var _26=[];
var re=_1b(_25,dojo.hitch(this,_28,_26,_21,_1f));
return {regexp:re,tokens:_26,bundle:_21};
};
dojox.date.HebrewLocale.parse=function(_29,_2a){
if(!_2a){
_2a={};
}
var _2b=dojox.date.HebrewLocale._parseInfo(_2a);
var _2c=_2b.tokens,_2d=_2b.bundle;
var re=new RegExp("^"+_2b.regexp+"$");
var _2f=re.exec(_29);
var _30=dojo.i18n.normalizeLocale(_2a.locale);
if(!_2f){
return null;
}
var _31,_32;
var _33=[5730,3,23,0,0,0,0];
var _34="";
var _35=0;
var _36=["abbr","wide","narrow"];
var _37=dojo.every(_2f,function(v,i){
if(!i){
return true;
}
var _3a=_2c[i-1];
var l=_3a.length;
switch(_3a.charAt(0)){
case "y":
if(_30=="he"){
_33[0]=dojox.date.HebrewNumerals.parseYearHebrewLetters(v);
}else{
_33[0]=Number(v);
}
break;
case "M":
if(l>2){
var _3c=_2d["months-format-"+_36[l-3]].concat();
if(!_2a.strict){
v=v.replace(".","").toLowerCase();
_3c=dojo.map(_3c,function(s){
return s.replace(".","").toLowerCase();
});
}
v=dojo.indexOf(_3c,v);
if(v==-1){
return false;
}
_35=l;
}else{
if(_30=="he"){
v=dojox.date.HebrewNumerals.parseMonthHebrewLetters(v);
}else{
v--;
}
}
_33[1]=Number(v);
break;
case "D":
_33[1]=0;
case "d":
if(_30=="he"){
_33[2]=dojox.date.HebrewNumerals.parseDayHebrewLetters(v);
}else{
_33[2]=Number(v);
}
break;
case "a":
var am=_2a.am||_2d.am;
var pm=_2a.pm||_2d.pm;
if(!_2a.strict){
var _40=/\./g;
v=v.replace(_40,"").toLowerCase();
am=am.replace(_40,"").toLowerCase();
pm=pm.replace(_40,"").toLowerCase();
}
if(_2a.strict&&v!=am&&v!=pm){
return false;
}
_34=(v==pm)?"p":(v==am)?"a":"";
break;
case "K":
if(v==24){
v=0;
}
case "h":
case "H":
case "k":
_33[3]=Number(v);
break;
case "m":
_33[4]=Number(v);
break;
case "s":
_33[5]=Number(v);
break;
case "S":
_33[6]=Number(v);
}
return true;
});
var _41=+_33[3];
if(_34==="p"&&_41<12){
_33[3]=_41+12;
}else{
if(_34==="a"&&_41==12){
_33[3]=0;
}
}
var _42=new dojox.date.HebrewDate(_33[0],_33[1],_33[2],_33[3],_33[4],_33[5],_33[6]);
if((_35>2)&&(_33[1]>5)&&!_42.isLeapYear(_42.getFullYear())){
_42=new dojox.date.HebrewDate(_33[0],_33[1]-1,_33[2],_33[3],_33[4],_33[5],_33[6]);
}
return _42;
};
function _1b(_43,_44,_45,_46){
var _47=function(x){
return x;
};
_44=_44||_47;
_45=_45||_47;
_46=_46||_47;
var _49=_43.match(/(''|[^'])+/g);
var _4a=_43.charAt(0)=="'";
dojo.forEach(_49,function(_4b,i){
if(!_4b){
_49[i]="";
}else{
_49[i]=(_4a?_45:_44)(_4b);
_4a=!_4a;
}
});
return _46(_49.join(""));
};
function _28(_4d,_4e,_4f,_50){
_50=dojo.regexp.escapeString(_50);
var _51=dojo.i18n.normalizeLocale(_4f.locale);
return _50.replace(/([a-z])\1*/ig,function(_52){
var s;
var c=_52.charAt(0);
var l=_52.length;
var 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="\\S+";
break;
case "M":
if(_51=="he"){
s=(l>2)?"\\S+ ?\\S+":"\\S{1,4}";
}else{
s=(l>2)?"\\S+ ?\\S+":p2+"[1-9]|1[0-2]";
}
break;
case "d":
if(_51=="he"){
s="\\S['\"']{1,2}\\S?";
}else{
s="[12]\\d|"+p2+"[1-9]|30";
}
break;
case "E":
if(_51=="he"){
s=(l>3)?"\\S+ ?\\S+":"\\S";
}else{
s="\\S+";
}
break;
case "h":
s=p2+"[1-9]|1[0-2]";
break;
case "k":
s=p2+"\\d|1[01]";
break;
case "H":
s=p2+"\\d|1\\d|2[0-3]";
break;
case "K":
s=p2+"[1-9]|1\\d|2[0-4]";
break;
case "m":
case "s":
s=p2+"\\d|[0-5]\\d";
break;
case "S":
s="\\d{"+l+"}";
break;
case "a":
var am=_4f.am||_4e.am||"AM";
var pm=_4f.pm||_4e.pm||"PM";
if(_4f.strict){
s=am+"|"+pm;
}else{
s=am+"|"+pm;
if(am!=am.toLowerCase()){
s+="|"+am.toLowerCase();
}
if(pm!=pm.toLowerCase()){
s+="|"+pm.toLowerCase();
}
}
break;
default:
s=".*";
}
if(_4d){
_4d.push(_52);
}
return "("+s+")";
}).replace(/[\xa0 ]/g,"[\\s\\xa0]");
};
})();
(function(){
var _5a=[];
dojox.date.HebrewLocale.addCustomFormats=function(_5b,_5c){
_5a.push({pkg:_5b,name:_5c});
};
dojox.date.HebrewLocale._getHebrewBundle=function(_5d){
var _5e={};
dojo.forEach(_5a,function(_5f){
var _60=dojo.i18n.getLocalization(_5f.pkg,_5f.name,_5d);
_5e=dojo.mixin(_5e,_60);
},this);
return _5e;
};
})();
dojox.date.HebrewLocale.addCustomFormats("dojo.cldr","hebrew");
dojox.date.HebrewLocale.getNames=function(_61,_62,_63,_64){
var _65;
var _66=dojox.date.HebrewLocale._getHebrewBundle;
var _67=[_61,_63,_62];
if(_63=="standAlone"){
var key=_67.join("-");
_65=_66(_64)[key];
if(_65===_66("ROOT")[key]){
_65=undefined;
}
}
_67[1]="format";
return (_65||_66(_64)[_67.join("-")]).concat();
};
}