/* Copyright (c) 2004-2010, 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["dojo.date"]){ dojo._hasResource["dojo.date"]=true; dojo.provide("dojo.date"); dojo.date.getDaysInMonth=function(_1){ var _2=_1.getMonth(); var _3=[31,28,31,30,31,30,31,31,30,31,30,31]; if(_2==1&&dojo.date.isLeapYear(_1)){ return 29; } return _3[_2]; }; dojo.date.isLeapYear=function(_4){ var _5=_4.getFullYear(); return !(_5%400)||(!(_5%4)&&!!(_5%100)); }; dojo.date.getTimezoneName=function(_6){ var _7=_6.toString(); var tz=""; var _8; var _9=_7.indexOf("("); if(_9>-1){ tz=_7.substring(++_9,_7.indexOf(")")); }else{ var _a=/([A-Z\/]+) \d{4}$/; if((_8=_7.match(_a))){ tz=_8[1]; }else{ _7=_6.toLocaleString(); _a=/ ([A-Z\/]+)$/; if((_8=_7.match(_a))){ tz=_8[1]; } } } return (tz=="AM"||tz=="PM")?"":tz; }; dojo.date.compare=function(_b,_c,_d){ _b=new Date(+_b); _c=new Date(+(_c||new Date())); if(_d=="date"){ _b.setHours(0,0,0,0); _c.setHours(0,0,0,0); }else{ if(_d=="time"){ _b.setFullYear(0,0,0); _c.setFullYear(0,0,0); } } if(_b>_c){ return 1; } if(_b<_c){ return -1; } return 0; }; dojo.date.add=function(_e,_f,_10){ var sum=new Date(+_e); var _11=false; var _12="Date"; switch(_f){ case "day": break; case "weekday": var _13,_14; var mod=_10%5; if(!mod){ _13=(_10>0)?5:-5; _14=(_10>0)?((_10-5)/5):((_10+5)/5); }else{ _13=mod; _14=parseInt(_10/5); } var _15=_e.getDay(); var adj=0; if(_15==6&&_10>0){ adj=1; }else{ if(_15==0&&_10<0){ adj=-1; } } var _16=_15+_13; if(_16==0||_16==6){ adj=(_10>0)?2:-2; } _10=(7*_14)+_13+adj; break; case "year": _12="FullYear"; _11=true; break; case "week": _10*=7; break; case "quarter": _10*=3; case "month": _11=true; _12="Month"; break; default: _12="UTC"+_f.charAt(0).toUpperCase()+_f.substring(1)+"s"; } if(_12){ sum["set"+_12](sum["get"+_12]()+_10); } if(_11&&(sum.getDate()<_e.getDate())){ sum.setDate(0); } return sum; }; dojo.date.difference=function(_17,_18,_19){ _18=_18||new Date(); _19=_19||"day"; var _1a=_18.getFullYear()-_17.getFullYear(); var _1b=1; switch(_19){ case "quarter": var m1=_17.getMonth(); var m2=_18.getMonth(); var q1=Math.floor(m1/3)+1; var q2=Math.floor(m2/3)+1; q2+=(_1a*4); _1b=q2-q1; break; case "weekday": var _1c=Math.round(dojo.date.difference(_17,_18,"day")); var _1d=parseInt(dojo.date.difference(_17,_18,"week")); var mod=_1c%7; if(mod==0){ _1c=_1d*5; }else{ var adj=0; var _1e=_17.getDay(); var _1f=_18.getDay(); _1d=parseInt(_1c/7); mod=_1c%7; var _20=new Date(_17); _20.setDate(_20.getDate()+(_1d*7)); var _21=_20.getDay(); if(_1c>0){ switch(true){ case _1e==6: adj=-1; break; case _1e==0: adj=0; break; case _1f==6: adj=-1; break; case _1f==0: adj=-2; break; case (_21+mod)>5: adj=-2; } }else{ if(_1c<0){ switch(true){ case _1e==6: adj=0; break; case _1e==0: adj=1; break; case _1f==6: adj=2; break; case _1f==0: adj=1; break; case (_21+mod)<0: adj=2; } } } _1c+=adj; _1c-=(_1d*2); } _1b=_1c; break; case "year": _1b=_1a; break; case "month": _1b=(_18.getMonth()-_17.getMonth())+(_1a*12); break; case "week": _1b=parseInt(dojo.date.difference(_17,_18,"day")/7); break; case "day": _1b/=24; case "hour": _1b/=60; case "minute": _1b/=60; case "second": _1b/=1000; case "millisecond": _1b*=_18.getTime()-_17.getTime(); } return Math.round(_1b); }; }