66 lines
29 KiB
JavaScript
66 lines
29 KiB
JavaScript
/*
|
|
* My97 DatePicker 4.8.5
|
|
* License: http://www.my97.net/license.asp
|
|
*/
|
|
//"use strict";
|
|
if($cfg.eCont){$dp={};for(var p in $pdp)if("object"==typeof $pdp[p]){$dp[p]={};for(var pp in $pdp[p])$dp[p][pp]=$pdp[p][pp]}else $dp[p]=$pdp[p]}else $dp=$pdp;for(p in $cfg)$dp[p]=$cfg[p];var $c;$FF&&(Event.prototype.__defineSetter__("returnValue",function(a){a||this.preventDefault();return a}),Event.prototype.__defineGetter__("srcElement",function(){for(var a=this.target;1!=a.nodeType;)a=a.parentNode;return a}));
|
|
function My97DP(){$c=this;this.QS=[];$d=document.createElement("div");$d.className="WdateDiv";$d.innerHTML='<div id=dpTitle><div class="NavImg NavImgll"><a></a></div><div class="NavImg NavImgl"><a></a></div><div style="float:left"><div class="menuSel MMenu"></div><input class=yminput></div><div style="float:left"><div class="menuSel YMenu"></div><input class=yminput></div><div class="NavImg NavImgrr"><a></a></div><div class="NavImg NavImgr"><a></a></div><div style="float:right"></div></div><div style="position:absolute;overflow:hidden"></div><div></div><div id=dpTime><div class="menuSel hhMenu"></div><div class="menuSel mmMenu"></div><div class="menuSel ssMenu"></div><table cellspacing=0 cellpadding=0 border=0><tr><td rowspan=2><span id=dpTimeStr></span> <input class=tB maxlength=2><input value=":" class=tm readonly><input class=tE maxlength=2><input value=":" class=tm readonly><input class=tE maxlength=2></td><td><button id=dpTimeUp></button></td></tr><tr><td><button id=dpTimeDown></button></td></tr></table></div><div id=dpQS></div><div id=dpControl><input class=dpButton id=dpClearInput type=button><input class=dpButton id=dpTodayInput type=button><input class=dpButton id=dpOkInput type=button></div>';
|
|
attachTabEvent($d,function(){hideSel()});(function(){var d=$d.getElementsByTagName("a");divs=$d.getElementsByTagName("div");ipts=$d.getElementsByTagName("input");btns=$d.getElementsByTagName("button");spans=$d.getElementsByTagName("span");$d.navLeftImg=d[0];$d.leftImg=d[1];$d.rightImg=d[3];$d.navRightImg=d[2];$d.rMD=divs[9];$d.MI=ipts[0];$d.yI=ipts[1];$d.titleDiv=divs[0];$d.MD=divs[4];$d.yD=divs[6];$d.qsDivSel=divs[10];$d.dDiv=divs[11];$d.tDiv=divs[12];$d.HD=divs[13];$d.mD=divs[14];$d.sD=divs[15];
|
|
$d.qsDiv=divs[16];$d.qsDiv.title=$lang.quickStr;$d.bDiv=divs[17];$d.HI=ipts[2];$d.mI=ipts[4];$d.sI=ipts[6];$d.clearI=ipts[7];$d.todayI=ipts[8];$d.okI=ipts[9];$d.upButton=btns[0];$d.downButton=btns[1];$d.timeSpan=spans[0]})();this.init();$dp.focusArr=[document,$d.MI,$d.yI,$d.HI,$d.mI,$d.sI,$d.clearI,$d.todayI,$d.okI];for(var a=0;a<$dp.focusArr.length;a++){var b=$dp.focusArr[a];b.nextCtrl=a==$dp.focusArr.length-1?$dp.focusArr[1]:$dp.focusArr[a+1];$dp.attachEvent(b,"onkeydown",_tab)}(function(){$d.navLeftImg.onclick=
|
|
function(){$ny=0>=$ny?$ny-1:-1;0==$ny%5?$d.yI.focus():($d.yI.value=$dt.y-1,$d.yI.onblur())};$d.leftImg.onclick=function(){$dt.attr("M",-1);$d.MI.onblur()};$d.rightImg.onclick=function(){$dt.attr("M",1);$d.MI.onblur()};$d.navRightImg.onclick=function(){$ny=0<=$ny?$ny+1:1;0==$ny%5?$d.yI.focus():($d.yI.value=$dt.y+1,$d.yI.onblur())}})();_inputBindEvent("y,M,H,m,s");$d.upButton.onclick=function(){updownEvent(1)};$d.downButton.onclick=function(){updownEvent(-1)};$d.qsDiv.onclick=function(){"block"!=$d.qsDivSel.style.display?
|
|
($c._fillQS(),showB($d.qsDivSel)):hide($d.qsDivSel)};document.body.appendChild($d)}
|
|
My97DP.prototype={init:function(){$ny=0;$dp.cal=this;$dp.readOnly&&null!=$dp.el.readOnly&&($dp.el.readOnly=!0,$dp.el.blur());this._dealFmt();$dt=this.newdate=new DPDate;$tdt=new DPDate;$sdt=this.date=new DPDate;$dp.valueEdited=0;this.dateFmt=this.doExp($dp.dateFmt);this.autoPickDate=null==$dp.autoPickDate?$dp.has.st&&$dp.has.st?!1:!0:$dp.autoPickDate;$dp.autoUpdateOnChanged=null==$dp.autoUpdateOnChanged?$dp.isShowOK&&$dp.has.d?!1:!0:$dp.autoUpdateOnChanged;this.ddateRe=this._initRe("disabledDates");
|
|
this.ddayRe=this._initRe("disabledDays");this.sdateRe=this._initRe("specialDates");this.sdayRe=this._initRe("specialDays");this.minDate=this.doCustomDate($dp.minDate,$dp.minDate!=$dp.defMinDate?$dp.realFmt:$dp.realFullFmt,$dp.defMinDate);this.maxDate=this.doCustomDate($dp.maxDate,$dp.maxDate!=$dp.defMaxDate?$dp.realFmt:$dp.realFullFmt,$dp.defMaxDate);this.minTime=this.doCustomDate($dp.minTime,$dp.realTimeFmt);this.maxTime=this.doCustomDate($dp.maxTime,$dp.realTimeFmt);0<this.minDate.compareWith(this.maxDate)&&
|
|
($dp.errMsg=$lang.err_1);this.loadDate()?(this._makeDateInRange(),this.oldValue=$dp.el[$dp.elProp]):this.mark(!1,2);_setAll($dt);$d.timeSpan.innerHTML=$lang.timeStr;$d.clearI.value=$lang.clearStr;$d.todayI.value=$lang.todayStr;$d.okI.value=$lang.okStr;$d.okI.disabled=!$c.checkValid($sdt);this.initShowAndHide();this.initBtn();$dp.errMsg&&alert($dp.errMsg);this.draw();1==$dp.el.nodeType&&void 0===$dp.el.My97Mark&&($dp.attachEvent($dp.el,"onkeydown",_tab),$dp.attachEvent($dp.el,"onblur",function(){$dp&&
|
|
"none"==$dp.dd.style.display&&$c.close()}),$dp.el.My97Mark=!1);$c.currFocus=$dp.el;hideSel()},_makeDateInRange:function(){var a=this.checkRange();0!=a&&(a=0<a?this.maxDate:this.minDate,$dp.has.sd&&($dt.y=a.y,$dt.M=a.M,$dt.d=a.d),$dp.has.st&&($dt.H=a.H,$dt.m=a.m,$dt.s=a.s))},splitDate:function(a,b,d,e,g,h,f,m,n){if(a&&a.loadDate)var l=a;else{l=new DPDate;b=b||$dp.dateFmt;var t=0,q=/yyyy|yyy|yy|y|MMMM|MMM|MM|M|dd|d|%ld|HH|H|mm|m|ss|s|DD|D|WW|W|w/g,r=b.match(q);q.lastIndex=0;if(n)n=a.split(/\W+/);else{var u=
|
|
0;for(t="^";null!==(n=q.exec(b));)switch(0<=u&&((u=b.substring(u,n.index))&&0<="-/\\".indexOf(u)&&(u="[\\-/]"),t+=u),u=q.lastIndex,n[0]){case "yyyy":t+="(\\d{4})";break;case "yyy":t+="(\\d{3})";break;case "MMMM":case "MMM":case "DD":case "D":t+="(\\D+)";break;default:t+="(\\d\\d?)"}n=(new RegExp(t+".*$")).exec(a);t=1}if(n){for(a=0;a<r.length;a++)if(q=n[a+t])switch(r[a]){case "MMMM":case "MMM":b=l;a:{u="MMMM"==r[a]?$lang.aLongMonStr:$lang.aMonStr;for(var w=0;12>w;w++)if(u[w].toLowerCase()==q.substr(0,
|
|
u[w].length).toLowerCase()){q=w+1;break a}q=-1}b.M=q;break;case "y":case "yy":q=pInt2(q,0);q=50>q?q+2E3:q+1900;l.y=q;break;case "yyy":l.y=pInt2(q,0)+$dp.yearOffset;break;default:l[r[a].slice(-1)]=q}l.refresh()}else""!=a&&(l.d=32)}l.coverDate(d,e,g,h,f,m);return l},_initRe:function(a){var b=$dp[a],d="";if(b&&0<b.length){for(a=0;a<b.length;a++)d+=this.doExp(b[a]),a!=b.length-1&&(d+="|");d=d?new RegExp("(?:"+d+")"):null}else d=null;return d},update:function(a){void 0===a&&(a=this.getNewDateStr());$dp.el[$dp.elProp]!=
|
|
a&&($dp.el[$dp.elProp]=a);this.setRealValue()},setRealValue:function(a){var b=$dp.$($dp.vel);a=rtn(a,this.getNewDateStr($dp.realFmt));b&&(b.value=a);$dp.el.realValue=a},doExp:function(a){var b,d=/#?\{(.*?)\}/;a+="";for(b=0;6>b;b++)a=a.replace("%"+"yMdHms".charAt(b),this.getP("yMdHms".charAt(b),null,$tdt));"#F{"==a.substring(0,3)&&(a=a.substring(3,a.length-1),0>a.indexOf("return ")&&(a="return "+a),a=$dp.win.eval('new Function("'+a+'");'),a=a());for(;null!=(b=d.exec(a));){b.lastIndex=b.index+b[1].length+
|
|
b[0].length-b[1].length-1;var e=pInt(eval(b[1]));0>e&&(e="9700"+-e);a=a.substring(0,b.index)+e+a.substring(b.lastIndex+1)}return a},doCustomDate:function(a,b,d){(a=this.doExp(a))&&""!=a||(a=d);"object"==typeof a?b=a:(b=this.splitDate(a,b,null,null,1,0,0,0,!0),b.y=(""+b.y).replace(/^9700/,"-"),b.M=(""+b.M).replace(/^9700/,"-"),b.d=(""+b.d).replace(/^9700/,"-"),b.H=(""+b.H).replace(/^9700/,"-"),b.m=(""+b.m).replace(/^9700/,"-"),b.s=(""+b.s).replace(/^9700/,"-"),0<=a.indexOf("%ld")&&a.replace(/%ld/g,
|
|
"0"),b.refresh());return b},loadDate:function(){var a=$dp.el[$dp.elProp],b=this.dateFmt,d=$dp.has;if($dp.alwaysUseStartDate||""!=$dp.startDate&&""==a)a=this.doExp($dp.startDate),b=$dp.realFmt;$dt.loadFromDate(this.splitDate(a,b));if(""!=a)return a=1,d.sd&&!this.isDate($dt)&&($dt.y=$tdt.y,$dt.M=$tdt.M,$dt.d=$tdt.d,a=0),d.st&&!this.isTime($dt)&&($dt.H=$tdt.H,$dt.m=$tdt.m,$dt.s=$tdt.s,a=0),a&&this.checkValid($dt);d.H||($dt.H=0);d.m||($dt.m=0);d.s||($dt.s=0);return 1},isDate:function(a){null!=a.y&&(a=
|
|
doStr(a.y,4)+"-"+a.M+"-"+a.d);return a.match(/^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3])):([0-5]?[0-9])((\s)|(:([0-5]?[0-9])))))?$/)},
|
|
isTime:function(a){null!=a.H&&(a=a.H+":"+a.m+":"+a.s);return a.match(/^([0-9]|([0-1][0-9])|([2][0-3])):([0-9]|([0-5][0-9])):([0-9]|([0-5][0-9]))$/)},checkRange:function(a,b){a=a||$dt;var d=a.compareWith(this.minDate,b);0<d&&(d=a.compareWith(this.maxDate,b),0>d&&(d=0));return d},checkTimeRange:function(a,b){a=a||$dt;return 0>a.compareWith(this.minTime,b,"Hms")?-1:0<a.compareWith(this.maxTime,b,"Hms")?1:0},checkValid:function(a,b,d){b=b||$dp.has.minUnit;var e=this.checkRange(a,b);0==e?("d"==b&&null==
|
|
d&&(d=Math.abs(((new Date(a.y,a.M-1,a.d)).getDay()-$dp.firstDayOfWeek+7)%7)),e=!this.testDisDay(d)&&!this.testDisDate(a,b),0<="Hms".indexOf(b)&&(e=0==this.checkTimeRange(a,b))):e=0;return e},checkAndUpdate:function(){var a=$dp.el[$dp.elProp];if(0<=$dp.errDealMode&&2>=$dp.errDealMode&&null!=a)if(""!=a&&this.date.loadFromDate(this.splitDate(a,$dp.dateFmt)),""==a||this.isDate(this.date)&&this.isTime(this.date)&&this.checkValid(this.date))""!=a?(this.newdate.loadFromDate(this.date),this.update()):this.setRealValue("");
|
|
else return!1;return!0},close:function(a){hideSel();this.checkAndUpdate()?(this.mark(!0),$dp.hide()):(a?(_cancelKey(a),this.mark(!1,2)):this.mark(!1),$dp.show())},_fd:function(){var a,b=new sb;var d=$lang.aWeekStr;var e=$dp.firstDayOfWeek,g="",h="",f=new DPDate($dt.y,$dt.M,$dt.d,2,0,0),m=f.y,n=f.M;var l=1-(new Date(m,n-1,1)).getDay()+e;1<l&&(l-=7);b.a("<table class=WdayTable width=100% border=0 cellspacing=0 cellpadding=0>");b.a("<tr class=MTitle align=center>");$dp.isShowWeek&&b.a("<td>"+d[0]+"</td>");
|
|
for(a=0;7>a;a++)b.a("<td>"+d[(e+a)%7+1]+"</td>");b.a("</tr>");for(a=1;7>a;a++){b.a("<tr>");for(d=0;7>d;d++){f.loadDate(m,n,l++);f.refresh();if(f.M==n){var t=!0;g=0==f.compareWith($sdt,"d")?"Wselday":0==f.compareWith($tdt,"d")?"Wtoday":!$dp.highLineWeekDay||0!=(e+d)%7&&6!=(e+d)%7?"Wday":"Wwday";h=!$dp.highLineWeekDay||0!=(e+d)%7&&6!=(e+d)%7?"WdayOn":"WwdayOn"}else if($dp.isShowOthers){if(0==d&&1<a)break;t=!0;g="WotherDay";h="WotherDayOn"}else t=!1;$dp.isShowWeek&&0==d&&(4>a||t)&&b.a("<td class=Wweek>"+
|
|
getWeek(f,0==$dp.firstDayOfWeek?1:0)+"</td>");b.a("<td ");if(t){if(this.checkValid(f,"d",d)){if(this.testSpeDay(Math.abs(((new Date(f.y,f.M-1,f.d)).getDay()-$dp.firstDayOfWeek+7)%7))||this.testSpeDate(f))g="WspecialDay";b.a('onclick="day_Click('+f.y+","+f.M+","+f.d+');" ');b.a("onmouseover=\"this.className='"+h+"'\" ");b.a("onmouseout=\"this.className='"+g+"'\" ")}else g="WinvalidDay";b.a("class="+g);b.a(">"+f.d+"</td>")}else b.a("></td>")}b.a("</tr>")}b.a("</table>");return b.j()},testDisDate:function(a,
|
|
b){a=this.testDate(a,this.ddateRe,b);return this.ddateRe&&$dp.opposite?!a:a},testDisDay:function(a){return this.testDay(a,this.ddayRe)},testSpeDate:function(a){return this.testDate(a,this.sdateRe)},testSpeDay:function(a){return this.testDay(a,this.sdayRe)},testDate:function(a,b,d){var e="d"==d?$dp.realDateFmt:$dp.realFmt;"d"==d&&$dp.has.d&&$dp.opposite&&(b=(b+"").replace(/^\/\(\?:(.*)\)\/.*/,"$1"),d=b.indexOf($dp.dateSplitStr),0<=d&&(b=b.substr(0,d)),b=new RegExp(b));return b?b.test(this.getDateStr(e,
|
|
a)):0},testDay:function(a,b){return b?b.test(a):0},_f:function(a,b,d,e,g,h){var f=new sb,m=h?"r"+a:a;h&&$dt.attr("M",1);bak=$dt[a];f.a("<table cellspacing=0 cellpadding=3 border=0>");for(var n=0;n<e;n++){f.a('<tr nowrap="nowrap">');for(var l=0;l<d;l++)f.a("<td nowrap "),$dt[a]=eval(g),$dt[a]>b?f.a("class='menu'"):this.checkValid($dt,a)||$dp.opposite&&-1=="Hms".indexOf(a)&&0==this.checkRange($dt,a)?(f.a("class='menu' onmouseover=\"this.className='menuOn'\" onmouseout=\"this.className='menu'\" onmousedown=\""),
|
|
f.a("hide($d."+a+"D);$d."+m+"I.value="+$dt[a]+";_blur.call($d."+m+'I);"')):f.a("class='invalidMenu'"),f.a(">"),$dt[a]<=b&&f.a("M"==a?$lang.aMonStr[$dt[a]-1]:$dt[a]),f.a("</td>");f.a("</tr>")}f.a("</table>");$dt[a]=bak;h&&$dt.attr("M",-1);return f.j()},_fMyPos:function(a,b){if(a){var d=a.offsetLeft;$IE&&(d=a.getBoundingClientRect().left);b.style.left=d}},_fM:function(a){this._fMyPos(a,$d.MD);$d.MD.innerHTML=this._f("M",12,2,6,"i+j*6+1",a==$d.rMI)},_fy:function(a,b,d){var e=new sb;d=d||a==$d.ryI;b=
|
|
Math.max(0,rtn(b,$dt.y-5));e.a(this._f("y",9999,2,5,b+"+i+j*5",d));e.a("<table width=100% cellspacing=0 cellpadding=3 border=0 align=center><tr><td ");e.a(this.minDate.y<b?"class='menu' onmouseover=\"this.className='menuOn'\" onmouseout=\"this.className='menu'\" onmousedown='if(event.preventDefault)event.preventDefault();event.cancelBubble=true;$c._fy(0,"+(b-10)+","+d+")'":"class='invalidMenu'");e.a(">←</td><td class='menu' onmouseover=\"this.className='menuOn'\" onmouseout=\"this.className='menu'\" onmousedown=\"hide($d.yD);$d.yI.blur();\">×</td><td ");
|
|
e.a(this.maxDate.y>=b+10?"class='menu' onmouseover=\"this.className='menuOn'\" onmouseout=\"this.className='menu'\" onmousedown='if(event.preventDefault)event.preventDefault();event.cancelBubble=true;$c._fy(0,"+(b+10)+","+d+")'":"class='invalidMenu'");e.a(" align=right>→</td></tr></table>");this._fMyPos(a,$d.yD);$d.yD.innerHTML=e.j()},_fHMS:function(a,b){var d=$dp.hmsMenuCfg[a],e=d[0];d=d[1];$d[a+"D"].innerHTML=this._f(a,b-1,d,Math.ceil(b/e/d),"i*"+d+"*"+e+"+j*"+e)},_fH:function(){this._fHMS("H",
|
|
24)},_fm:function(){this._fHMS("m",60)},_fs:function(){this._fHMS("s",60)},_fillQS:function(a,b){this.initQS();var d=b?'>a/<rekciPetaD 79yM>knalb_=tegrat "eulb:roloc"=elyts "ten.79ym.www//:ptth"=ferh a<'.split("").reverse().join(""):$lang.quickStr;b=this.QS;var e=new sb;e.a("<table class=WdayTable width=100% height=100% border=0 cellspacing=0 cellpadding=0>");e.a('<tr class=MTitle><td><div style="float:left"> '+d+"</div>");a||e.a('<div style="float:right;cursor:pointer;font-size:14px;" onclick="hide($d.qsDivSel);">× </div>');
|
|
e.a("</td></tr>");for(a=0;a<b.length;a++)b[a]?(e.a("<tr><td style='text-align:left' nowrap='nowrap' class='menu' onmouseover=\"this.className='menuOn'\" onmouseout=\"this.className='menu'\" onclick=\""),e.a("day_Click("+b[a].y+", "+b[a].M+", "+b[a].d+","+b[a].H+","+b[a].m+","+b[a].s+');">'),e.a(" "+this.getDateStr(null,b[a])),e.a("</td></tr>")):e.a("<tr><td class='menu'> </td></tr>");e.a("</table>");$d.qsDivSel.innerHTML=e.j()},_dealFmt:function(){function a(d){var e=(d+"").slice(1,
|
|
2);$dp.has[e]=d.exec($dp.dateFmt)?($dp.has.minUnit=e,!0):!1}a(/w/);a(/WW|W/);a(/DD|D/);a(/yyyy|yyy|yy|y/);a(/MMMM|MMM|MM|M/);a(/dd|d/);a(/HH|H/);a(/mm|m/);a(/ss|s/);$dp.has.sd=$dp.has.y||$dp.has.M||$dp.has.d?!0:!1;$dp.has.st=$dp.has.H||$dp.has.m||$dp.has.s?!0:!1;var b=$dp.realFullFmt.match(/%Date(.*)%Time/);$dp.dateSplitStr=b?b[1]:" ";$dp.realFullFmt=$dp.realFullFmt.replace(/%Date/,$dp.realDateFmt).replace(/%Time/,$dp.realTimeFmt);$dp.realFmt=$dp.has.sd?$dp.has.st?$dp.realFullFmt:$dp.realDateFmt:
|
|
$dp.realTimeFmt},initShowAndHide:function(){var a=0;$dp.has.y?(a=1,show($d.yI,$d.navLeftImg,$d.navRightImg)):hide($d.yI,$d.navLeftImg,$d.navRightImg);$dp.has.M?(a=1,show($d.MI,$d.leftImg,$d.rightImg)):hide($d.MI,$d.leftImg,$d.rightImg);a?show($d.titleDiv):hide($d.titleDiv);$dp.has.st?(show($d.tDiv),disHMS($d.HI,$dp.has.H),disHMS($d.mI,$dp.has.m),disHMS($d.sI,$dp.has.s)):hide($d.tDiv);shorH($d.clearI,$dp.isShowClear);shorH($d.todayI,$dp.isShowToday);shorH($d.okI,$dp.isShowOK);shorH($d.qsDiv,!$dp.doubleCalendar&&
|
|
$dp.has.d&&$dp.qsEnabled);$dp.eCont||!($dp.isShowClear||$dp.isShowToday||$dp.isShowOK)?hide($d.bDiv):show($d.bDiv)},mark:function(a,b){function d(f){var m=f.className;if(m){var n=m.replace(/WdateFmtErr/g,"");if(m!=n)try{f.setAttribute(h,n)}catch(l){alert("WdatePicker:el is null")}}}function e(f){try{f.setAttribute(h,f.className+" WdateFmtErr")}catch(m){alert("WdatePicker:el is null")}}var g=$dp.el,h=$FF?"class":"className";if(-1!=$dp.errDealMode)if(a)d(g);else switch(null==b&&(b=$dp.errDealMode),
|
|
b){case 0:confirm($lang.errAlertMsg)?(g[$dp.elProp]=this.oldValue||"",d(g)):e(g);break;case 1:g[$dp.elProp]=this.oldValue||"";d(g);break;case 2:e(g)}},getP:function(a,b,d){d=d||$sdt;var e=[a+a,a],g=d[a],h=function(l){return doStr(g,l.length)};switch(a){case "w":g=getDay(d);break;case "D":var f=getDay(d)+1;h=function(l){return 2==l.length?$lang.aLongWeekStr[f]:$lang.aWeekStr[f]};break;case "W":g=getWeek(d);break;case "y":e=["yyyy","yyy","yy","y"];b=b||e[0];h=function(l){return doStr(4>l.length?3>l.length?
|
|
d.y%100:(d.y+2E3-$dp.yearOffset)%1E3:g,l.length)};break;case "M":e=["MMMM","MMM","MM","M"],h=function(l){return 4==l.length?$lang.aLongMonStr[g-1]:3==l.length?$lang.aMonStr[g-1]:doStr(g,l.length)}}b=b||a+a;-1<"yMdHms".indexOf(a)&&"y"!=a&&!$dp.has[a]&&(g=-1<"Hms".indexOf(a)?0:1);var m=[];for(a=0;a<e.length;a++){var n=e[a];0<=b.indexOf(n)&&(m[a]=h(n),b=b.replace(new RegExp(n,"g"),"{"+a+"}"))}for(a=0;a<m.length;a++)b=b.replace(new RegExp("\\{"+a+"\\}","g"),m[a]);return b},getDateStr:function(a,b){b=
|
|
b||this.splitDate($dp.el[$dp.elProp],this.dateFmt)||$sdt;a=a||this.dateFmt;if(0<=a.indexOf("%ld")){var d=new DPDate;d.loadFromDate(b);d.d=0;d.M=pInt(d.M)+1;d.refresh();a=a.replace(/%ld/g,d.d)}for(d=0;7>d;d++){var e="ydHmswW".charAt(d);a=this.getP(e,a,b)}0<=a.indexOf("D")?(a=a.replace(/DD/g,"%dd").replace(/D/g,"%d"),a=this.getP("M",a,b),a=a.replace(/%dd/g,this.getP("D","DD",b)).replace(/%d/g,this.getP("D","D",b))):a=this.getP("M",a,b);return a},getNewP:function(a,b){return this.getP(a,b,$dt)},getNewDateStr:function(a){return this.getDateStr(a,
|
|
this.newdate)},draw:function(){$c._dealFmt();$d.rMD.innerHTML="";if($dp.doubleCalendar){$c.autoPickDate=!0;$dp.isShowOthers=!1;$d.className="WdateDiv WdateDiv2";var a=new sb;a.a("<table class=WdayTable2 width=100% cellspacing=0 cellpadding=0 border=1><tr><td valign=top>");a.a(this._fd());a.a("</td><td valign=top>");$dt.attr("M",1);a.a(this._fd());$d.rMI=$d.MI.cloneNode(!0);$d.ryI=$d.yI.cloneNode(!0);$d.rMD.appendChild($d.rMI);$d.rMD.appendChild($d.ryI);$d.rMI.value=$lang.aMonStr[$dt.M-1];$d.rMI.realValue=
|
|
$dt.M;$d.ryI.value=$dt.y;_inputBindEvent("rM,ry");$d.rMI.className=$d.ryI.className="yminput";$dt.attr("M",-1);a.a("</td></tr></table>");$d.dDiv.innerHTML=a.j()}else $d.className="WdateDiv",$d.dDiv.innerHTML=this._fd();!$dp.has.d||$dp.autoShowQS?(this._fillQS(!0),showB($d.qsDivSel)):hide($d.qsDivSel);this.autoSize()},convertScale:function(a){$dp.eCont?(a=Math.min(($dp.eCont.offsetWidth-5)/$d.offsetWidth,($dp.eCont.offsetHeight-5)/$d.offsetWidth),a=Math.max(1,a)):a=parseFloat(a);return isNaN(a)?$dp.isTouch?
|
|
1.5:1:a},autoSize:function(){for(var a=parent.document.getElementsByTagName("iframe"),b=$d.offsetHeight,d=$d.offsetWidth,e=0;e<a.length;e++){var g=$d.style.height;$d.style.height="";if(a[e].contentWindow==window&&b){var h=this.convertScale($dp.scale);$dp._scaled&&$dp.eCont&&(h*=$dp._scaled);if($dp._scaled!=h){doc.body.style="font-size:"+100*h+"% !important";var f=h/($dp._scaled||1);1!=f&&(d=Math.round(d*f),$d.style.width=d-2,b=$d.style.height=Math.round(b*f));$dp._scaled=h}1==$dp._scaled?show($d.upButton,
|
|
$d.downButton):hide($d.upButton,$d.downButton);a[e].style.width=d+"px";(h=$d.tDiv.offsetHeight)&&"none"==$d.bDiv.style.display&&"none"!=$d.tDiv.style.display&&document.body.scrollHeight-b>=h?(b+=h,$d.style.height=b):$d.style.height=g;a[e].style.height=Math.max(b,$d.offsetHeight)+"px"}}$d.qsDivSel.style.width=$d.dDiv.offsetWidth+"px";$d.qsDivSel.style.height=$d.dDiv.offsetHeight+"px"},pickDate:function(){$dt.d=Math.min((new Date($dt.y,$dt.M,0)).getDate(),$dt.d);$sdt.loadFromDate($dt);$dp.valueEdited=
|
|
0;this.update();!$dp.eCont&&this.checkValid($dt)&&(elFocus(),hide($dp.dd));$dp.onpicked?callFunc("onpicked"):fireChangeEvent()},initBtn:function(){$d.clearI.onclick=function(){callFunc("onclearing")||($dp.valueEdited=0,$c.update(""),elFocus(),hide($dp.dd),$dp.oncleared?callFunc("oncleared"):fireChangeEvent())};$d.okI.onclick=function(){day_Click()};this.checkValid($tdt)?($d.todayI.disabled=!1,$d.todayI.onclick=function(){$dt.loadFromDate($tdt);day_Click()}):$d.todayI.disabled=!0},initQS:function(){var a,
|
|
b,d=[],e=$dp.quickSel.length,g=$dp.has.minUnit;if(5<e)e=5;else if("m"==g||"s"==g)d=[-60,-30,0,30,60,-15,15,-45,45];else for(a=0;14>a;a++)d[a]=$dt[g]-2+a;for(a=b=0;a<e;a++){var h=this.doCustomDate($dp.quickSel[a]);this.checkValid(h)&&(this.QS[b++]=h)}e=[1,1,1,0,0,0];for(a=0;a<="yMdHms".indexOf(g);a++)e[a]=$dt["yMdHms".charAt(a)];for(a=0;5>b;a++)a<d.length?(h=new DPDate(e[0],e[1],e[2],e[3],e[4],e[5]),h[g]=d[a],h.refresh(),this.checkValid(h)&&(this.QS[b++]=h)):this.QS[b++]=null}};
|
|
function elFocus(){var a=$dp.el;try{"none"==a.style.display||"hidden"==a.type||"input"!=a.nodeName.toLowerCase()&&"textarea"!=a.nodeName.toLowerCase()||(a.My97Mark=!0,a.focus())}catch(b){}setTimeout(function(){a.My97Mark=!1},197)}function sb(){this.s=[];this.i=0;this.a=function(a){this.s[this.i++]=a};this.j=function(){return this.s.join("")}}
|
|
function getWeek(a,b){b=new Date(a.y,a.M-1,a.d+(b||0));"ISO8601"==$dp.weekMethod?(b.setDate(b.getDate()-(b.getDay()+6)%7+3),a=b.valueOf(),b.setMonth(0),b.setDate(4),b=Math.round((a-b.valueOf())/6048E5)+1):(a=new Date(a.y,0,1),b=Math.round((b.valueOf()-a.valueOf())/864E5),b=Math.ceil((b+(a.getDay()+1))/7));return 1==$dt.M&&52<b?1:b}function getDay(a){return(new Date(a.y,a.M-1,a.d)).getDay()}function show(){setDisp(arguments,"")}function showB(){setDisp(arguments,"block")}
|
|
function hide(){setDisp(arguments,"none")}function setDisp(a,b){for(i=0;i<a.length;i++)a[i].style.display=b}function shorH(a,b){b?show(a):hide(a)}function disHMS(a,b){b?a.disabled=!1:(a.disabled=!0,a.value="00")}
|
|
function c(a,b){var d=b;"M"==a?d=makeInRange(b,1,12):"H"==a?d=makeInRange(b,0,23):0<="ms".indexOf(a)&&(d=makeInRange(b,0,59));$dt[a]=d;$d[a+"I"]&&("M"==a?($d.MI.realValue=d,$d.MI.value=$lang.aMonStr[d-1]):$d[a+"I"].value=d);$sdt[a]==d||callFunc(a+"changing")||(b=$c.checkRange(),0==b?sv(a,d):0>b?_setAll($c.minDate):0<b&&_setAll($c.maxDate),$d.okI.disabled=!$c.checkValid($sdt),0<="yMd".indexOf(a)&&$c.draw(),callFunc(a+"changed"))}function _setTime(a){sv("H",a.H);sv("m",a.m);sv("s",a.s)}
|
|
function _setAll(a){sv("y",a.y);sv("M",a.M);sv("d",a.d);_setTime(a)}function day_Click(a,b,d,e,g,h){var f=new DPDate($dt.y,$dt.M,$dt.d,$dt.H,$dt.m,$dt.s);$dt.loadDate(a,b,d,e,g,h);callFunc("onpicking")?$dt=f:(f=f.y==a&&f.M==b&&f.d==d,f||0==arguments.length||(c("y",a),c("M",b),c("d",d),$dp.has.st&&updownEvent(0),$c.currFocus=$dp.el,dealAutoUpdate()),($c.autoPickDate||f||0==arguments.length)&&$c.pickDate())}
|
|
function dealAutoUpdate(){if($dp.autoUpdateOnChanged)try{$c.update(),$dp.el.focus()}catch(a){}}function callFunc(a){var b;$dp[a]&&(b=$dp[a].call($dp.el,$dp));return b}function sv(a,b){null==b&&(b=$dt[a]);$sdt[a]=$dt[a]=b;0<="yHms".indexOf(a)&&($d[a+"I"].value=b);"M"==a&&($d.MI.realValue=b,$d.MI.value=$lang.aMonStr[b-1]);0<="Hms".indexOf(a)&&(a=$c.checkTimeRange($dt,a),0>a?_setTime($c.minTime):0<a&&_setTime($c.maxTime))}function makeInRange(a,b,d){a<b?a=b:a>d&&(a=d);return a}
|
|
function attachTabEvent(a,b){$dp.attachEvent(a,"onkeydown",function(d){d=d||event;k=void 0==d.which?d.keyCode:d.which;9==k&&b()})}function doStr(a,b){for(a+="";a.length<b;)a="0"+a;return a}function hideSel(){hide($d.yD,$d.MD,$d.HD,$d.mD,$d.sD)}
|
|
function updownEvent(a){var b=$c.currFocus,d=$dp.hmsMenuCfg;b!=$d.HI&&b!=$d.mI&&b!=$d.sI&&(b=$d.HI);b=b==$d.HI?"H":b==$d.mI?"m":"s";d=d[b][0];var e=$dt[b]+a*d;for(a=0;60>=a;a+=d)if(e<=a){e=a-e<d/2?a:Math.max(0,a-d);60==e&&e--;break}$dt[b]=e;c(b,$dt[b]);dealAutoUpdate()}function DPDate(a,b,d,e,g,h){this.loadDate(a,b,d,e,g,h)}
|
|
DPDate.prototype={loadDate:function(a,b,d,e,g,h){var f=new Date;this.y=pInt3(a,this.y,f.getFullYear());this.M=pInt3(b,this.M,f.getMonth()+1);this.d=$dp.has.d?pInt3(d,this.d,f.getDate()):1;this.H=pInt3(e,this.H,f.getHours());this.m=pInt3(g,this.m,f.getMinutes());this.s=pInt3(h,this.s,f.getSeconds())},loadFromDate:function(a){a&&this.loadDate(a.y,a.M,a.d,a.H,a.m,a.s)},coverDate:function(a,b,d,e,g,h){var f=new Date;this.y=pInt3(this.y,a,f.getFullYear());this.M=pInt3(this.M,b,f.getMonth()+1);this.d=$dp.has.d?
|
|
pInt3(this.d,d,f.getDate()):1;this.H=pInt3(this.H,e,f.getHours());this.m=pInt3(this.m,g,f.getMinutes());this.s=pInt3(this.s,h,f.getSeconds())},compareWith:function(a,b,d){d=d||"yMdHms";b=d.indexOf(b);b=0<=b?b:5;for(var e=0;e<=b;e++){var g=d.charAt(e);g=this[g]-a[g];if(0<g)return 1;if(0>g)return-1}return 0},refresh:function(){"ld"==this.d&&(this.d=0,this.M=pInt(this.M)+1);var a=new Date(this.y,this.M-1,this.d,this.H,this.m,this.s);1900>this.y&&a.setFullYear(this.y);this.y=a.getFullYear();this.M=a.getMonth()+
|
|
1;this.d=a.getDate();this.H=a.getHours();this.m=a.getMinutes();this.s=a.getSeconds();return!isNaN(this.y)},attr:function(a,b){if(0<="yMdHms".indexOf(a)){var d=this.d;"M"==a&&(this.d=1);this[a]+=b;this.refresh();this.d=d}}};function pInt(a){return parseInt(a,10)}function pInt2(a,b){return rtn(pInt(a),b)}function pInt3(a,b,d){return pInt2(a,rtn(b,d))}function rtn(a,b){return null==a||isNaN(a)?b:a}
|
|
function fireChangeEvent(){$dp.valueEdited||$dp.cal.oldValue==$dp.el[$dp.elProp]||fireEvent($dp.el,"change")}function fireEvent(a,b){if($IE)a.fireEvent("on"+b);else{var d=document.createEvent("HTMLEvents");d.initEvent(b,!0,!0);a.dispatchEvent(d)}}function _foundInput(a){var b,d="y M H m s ry rM".split(" ");for(b=0;b<d.length;b++){var e=d[b];if($d[e+"I"]==a)return e.slice(e.length-1,e.length)}return 0}
|
|
function _focus(a){a=_foundInput(this);var b=$d[a+"D"];if(a){$c.currFocus=this;$c.lastFocusTime=new Date;"y"==a?this.className="yminputfocus":"M"==a&&(this.className="yminputfocus",this.value=this.realValue);try{$dp.isTouch||this.select()}catch(d){}$c["_f"+a](this);showB(b);0<="Hms".indexOf(a)&&(b.style.marginLeft=Math.min(this.offsetLeft,$d.sI.offsetLeft+60*$dp._scaled-b.offsetWidth),b.style.marginTop=this.offsetTop-b.offsetHeight-2)}}
|
|
function _blur(a){if(!(97>new Date-$c.lastFocusTime)){var b=_foundInput(this);var d=this.value;var e=$dt[b];if(0!=b){$dt[b]=0<=Number(d)?Number(d):$dt[b];if("y"==b)(d=this==$d.ryI)&&12==$dt.M&&--$dt.y;else if("M"==b){if(d=this==$d.rMI){var g=$lang.aMonStr[$dt[b]-1];12==e&&($dt.y+=1);$dt.attr("M",-1)}$sdt.M==$dt.M&&(this.value=g||$lang.aMonStr[$dt[b]-1]);$sdt.y!=$dt.y&&c("y",$dt.y)}eval('c("'+b+'",'+$dt[b]+")");if(!0!==a){if("y"==b||"M"==b)this.className="yminput";hide($d[b+"D"])}dealAutoUpdate()}}}
|
|
function _cancelKey(a){a.preventDefault?(a.preventDefault(),a.stopPropagation()):(a.cancelBubble=!0,a.returnValue=!1);$OPERA&&(a.keyCode=0)}function _inputBindEvent(a){a=a.split(",");for(var b=0;b<a.length;b++){var d=a[b]+"I";$d[d].onfocus=_focus;$d[d].onblur=_blur;$dp.isTouch&&($d[d].readOnly=!0)}}
|
|
function _tab(a){function b(v){var x=0;if($dp.win.document.selection){x=$dp.win.document.selection.createRange();var D=x.text.length;x.moveStart("character",-v.value.length);x=x.text.length-D}else if(v.selectionStart||"0"==v.selectionStart)x=v.selectionStart;return x}function d(v,x){v.setSelectionRange?(v.focus(),v.setSelectionRange(x,x)):v.createTextRange&&(v=v.createTextRange(),v.collapse(!0),v.moveEnd("character",x),v.moveStart("character",x),v.select())}var e=a.srcElement||a.target,g=a.which||
|
|
a.keyCode,h=$dp.eCont?!0:"none"!=$dp.dd.style.display;$dp.valueEdited=1;96<=g&&105>=g&&(g-=48);if($dp.enableKeyboard&&h){e.nextCtrl||(e.nextCtrl=$dp.focusArr[1],$c.currFocus=$dp.el);e==$dp.el&&($c.currFocus=$dp.el);if(27==g){if(e==$dp.el){$c.close();return}$dp.el.focus()}if(37<=g&&40>=g){if($c.currFocus==$dp.el||$c.currFocus==$d.okI){if($dp.has.d){var f="d";38==g?$dt[f]-=7:39==g?$dt[f]+=1:37==g?--$dt[f]:$dt[f]+=7;$dt.refresh();c("y",$dt.y);c("M",$dt.M);c("d",$dt[f]);_cancelKey(a);return}f=$dp.has.minUnit;
|
|
$d[f+"I"].focus()}if(f=f||_foundInput($c.currFocus))38==g||39==g?$dt[f]+=1:--$dt[f],$dt.refresh(),$c.currFocus.value=$dt[f],_blur.call($c.currFocus,!0),$c.currFocus.select()}else if(9==g){e=e.nextCtrl;for(var m=0;m<$dp.focusArr.length;m++)if(1==e.disabled||0==e.offsetHeight)e=e.nextCtrl;else break;$c.currFocus!=e&&($c.currFocus=e,e.focus())}else 13==g&&(_blur.call($c.currFocus),"button"==$c.currFocus.type?$c.currFocus.click():$dp.cal.oldValue==$dp.el[$dp.elProp]?$c.pickDate():$c.close(),$c.currFocus=
|
|
$dp.el)}else 9==g&&e==$dp.el&&$c.close();if($dp.enableInputMask&&!$OPERA&&!$dp.readOnly&&$c.currFocus==$dp.el&&48<=g&&57>=g){e=$dp.el;f=e.value;var n=b(e),l="",t=[],q=m=0,r=0;r=0;var u=/yyyy|yyy|yy|y|MM|M|dd|d|%ld|HH|H|mm|m|ss|s|WW|W|w/g,w=$dp.dateFmt.match(u);var C=0;if(""!=f){r=f.match(/[0-9]/g);r=null==r?0:r.length;for(m=0;m<w.length;m++)r-=Math.max(w[m].length,2);r=0<=r?1:0;1==r&&n>=f.length&&(n=f.length-1)}f=f.substring(0,n)+String.fromCharCode(g)+f.substring(n+r);n++;for(m=0;m<f.length;m++)r=
|
|
f.charAt(m),/[0-9]/.test(r)?l+=r:t[m]=1;f="";for(u.lastIndex=0;null!==(m=u.exec($dp.dateFmt));){r=m.index-("%ld"==m[0]?1:0);0<=q&&(f+=$dp.dateFmt.substring(q,r),n>=q+C&&n<=r+C&&(n+=r-q));q=u.lastIndex;var z=q-r;w=l.substring(0,z);var A=m[0].charAt(0);var B=pInt(w.charAt(0));if(1<l.length){var y=l.charAt(1);y=10*B+pInt(y)}else y="",y=B;t[r+1]||"M"==A&&12<y||"d"==A&&31<y||"H"==A&&23<y||0<="ms".indexOf(A)&&59<y?(w=2==m[0].length?"0"+B:B,n++):1==z&&(w=y,z++,C++);f+=w;l=l.substring(z);if(""==l)break}e.value=
|
|
f;d(e,n);_cancelKey(a)}!h||$c.currFocus==$dp.el||48<=g&&57>=g||8==g||46==g||_cancelKey(a)}document.ready=1; |