blob: 270700e69f7e6054bb93d8f659772518f53bd4ce [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.hebrew"]){
dojo._hasResource["dojox.date.hebrew"]=true;
dojo.provide("dojox.date.hebrew");
dojo.require("dojox.date.hebrew.Date");
dojo.require("dojo.date");
dojox.date.hebrew.getDaysInMonth=function(_1){
return _1.getDaysInHebrewMonth(_1.getMonth(),_1.getFullYear());
};
dojox.date.hebrew.compare=function(_2,_3,_4){
if(_2 instanceof dojox.date.hebrew.Date){
_2=_2.toGregorian();
}
if(_3 instanceof dojox.date.hebrew.Date){
_3=_3.toGregorian();
}
return dojo.date.compare.apply(null,arguments);
};
dojox.date.hebrew.add=function(_5,_6,_7){
var _8=new dojox.date.hebrew.Date(_5);
switch(_6){
case "day":
_8.setDate(_5.getDate()+_7);
break;
case "weekday":
var _9=_5.getDay();
var _a=0;
if(_7<0&&_9==6){
_9=5;
_a=-1;
}
if((_9+_7)<5&&(_9+_7)>=0){
_8.setDate(_5.getDate()+_7+_a);
}else{
var _b=(_7>0)?5:-1;
var _c=(_7>0)?2:-2;
if(_7>0&&(_9==5||_9==6)){
_a=4-_9;
_9=4;
}
var _d=_9+_7-_b;
var _e=parseInt(_d/5);
var _f=_d%5;
_8.setDate(_5.getDate()-_9+_c+_e*7+_a+_f+_b);
}
break;
case "year":
_8.setFullYear(_5.getFullYear()+_7);
break;
case "week":
_7*=7;
_8.setDate(_5.getDate()+_7);
break;
case "month":
var _10=_5.getMonth();
var _b=_10+_7;
if(!_5.isLeapYear(_5.getFullYear())){
if(_10<5&&_b>=5){
_b++;
}else{
if(_10>5&&_b<=5){
_b--;
}
}
}
_8.setMonth(_b);
break;
case "hour":
_8.setHours(_5.getHours()+_7);
break;
case "minute":
_8.setMinutes(_5.getMinutes()+_7);
break;
case "second":
_8.setSeconds(_5.getSeconds()+_7);
break;
case "millisecond":
_8.setMilliseconds(_5.getMilliseconds()+_7);
break;
}
return _8;
};
dojox.date.hebrew.difference=function(_11,_12,_13){
_12=_12||new dojox.date.hebrew.Date();
_13=_13||"day";
var _14=_11.getFullYear()-_12.getFullYear();
var _15=1;
switch(_13){
case "weekday":
var _16=Math.round(dojox.date.hebrew.difference(_11,_12,"day"));
var _17=parseInt(dojox.date.hebrew.difference(_11,_12,"week"));
var mod=_16%7;
if(mod==0){
_16=_17*5;
}else{
var adj=0;
var _18=_12.getDay();
var _19=_11.getDay();
_17=parseInt(_16/7);
mod=_16%7;
var _1a=new dojox.date.hebrew.Date(_12);
_1a.setDate(_1a.getDate()+(_17*7));
var _1b=_1a.getDay();
if(_16>0){
switch(true){
case _18==5:
adj=-1;
break;
case _18==6:
adj=0;
break;
case _19==5:
adj=-1;
break;
case _19==6:
adj=-2;
break;
case (_1b+mod)>5:
adj=-2;
}
}else{
if(_16<0){
switch(true){
case _18==5:
adj=0;
break;
case _18==6:
adj=1;
break;
case _19==5:
adj=2;
break;
case _19==6:
adj=1;
break;
case (_1b+mod)<0:
adj=2;
}
}
}
_16+=adj;
_16-=(_17*2);
}
_15=_16;
break;
case "year":
_15=_14;
break;
case "month":
var _1c=(_11.toGregorian()>_12.toGregorian())?_11:_12;
var _1d=(_11.toGregorian()>_12.toGregorian())?_12:_11;
var _1e=_1c.getMonth();
var _1f=_1d.getMonth();
if(_14==0){
_15=(!_11.isLeapYear(_11.getFullYear())&&_1c.getMonth()>5&&_1d.getMonth()<=5)?(_1c.getMonth()-_1d.getMonth()-1):(_1c.getMonth()-_1d.getMonth());
}else{
_15=(!_1d.isLeapYear(_1d.getFullYear())&&_1f<6)?(13-_1f-1):(13-_1f);
_15+=(!_1c.isLeapYear(_1c.getFullYear())&&_1e>5)?(_1e-1):_1e;
var i=_1d.getFullYear()+1;
var e=_1c.getFullYear();
for(i;i<e;i++){
_15+=_1d.isLeapYear(i)?13:12;
}
}
if(_11.toGregorian()<_12.toGregorian()){
_15=-_15;
}
break;
case "week":
_15=parseInt(dojox.date.hebrew.difference(_11,_12,"day")/7);
break;
case "day":
_15/=24;
case "hour":
_15/=60;
case "minute":
_15/=60;
case "second":
_15/=1000;
case "millisecond":
_15*=_11.toGregorian().getTime()-_12.toGregorian().getTime();
}
return Math.round(_15);
};
}