📄 calendar.js
字号:
Calendar=function(_1,_2,_3,_4){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=_3||null;this.onClose=_4||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof _1=="number"?_1:Calendar._FD;this.showsOtherMonths=false;this.dateStr=_2;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined"){Calendar._SDN_len=3;}var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined"){Calendar._SMN_len=3;}ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}Calendar._SMN=ar;}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(el){var SL=0,ST=0;var _9=/^div$/i.test(el.tagName);if(_9&&el.scrollLeft){SL=el.scrollLeft;}if(_9&&el.scrollTop){ST=el.scrollTop;}var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var _b=this.getAbsolutePos(el.offsetParent);r.x+=_b.x;r.y+=_b.y;}return r;};Calendar.isRelated=function(el,_d){var _e=_d.relatedTarget;if(!_e){var _f=_d.type;if(_f=="mouseover"){_e=_d.fromElement;}else{if(_f=="mouseout"){_e=_d.toElement;}}}while(_e){if(_e==el){return true;}_e=_e.parentNode;}return false;};Calendar.removeClass=function(el,_11){if(!(el&&el.className)){return;}var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=_11){ar[ar.length]=cls[i];}}el.className=ar.join(" ");};Calendar.addClass=function(el,_16){Calendar.removeClass(el,_16);el.className+=" "+_16;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName)){f=f.parentNode;}return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1){f=f.parentNode;}return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}return false;};Calendar.addEvent=function(el,_1d,_1e){if(el.attachEvent){el.attachEvent("on"+_1d,_1e);}else{if(el.addEventListener){el.addEventListener(_1d,_1e,true);}else{el["on"+_1d]=_1e;}}};Calendar.removeEvent=function(el,_20,_21){if(el.detachEvent){el.detachEvent("on"+_20,_21);}else{if(el.removeEventListener){el.removeEventListener(_20,_21,true);}else{el["on"+_20]=null;}}};Calendar.createElement=function(_22,_23){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",_22);}else{el=document.createElement(_22);}if(typeof _23!="undefined"){_23.appendChild(el);}return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else{if(typeof el.parentNode.month!="undefined"){return el.parentNode;}}return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else{if(typeof el.parentNode.year!="undefined"){return el.parentNode;}}return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0){s.left=cd.offsetLeft+"px";}else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined"){mcw=50;}s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var _34=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";_34=true;}else{yr.style.display="none";}yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}if(_34){var s=yc.style;s.display="block";if(cd.navtype<0){s.left=cd.offsetLeft+"px";}else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined"){ycw=50;}s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}if(cal.timeout){clearTimeout(cal.timeout);}var el=cal.activeDiv;if(!el){return false;}var _3b=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(_3b==el||_3b.parentNode==el){Calendar.cellClick(el,ev);}var mon=Calendar.findMonth(_3b);var _3d=null;if(mon){_3d=new Date(cal.date);if(mon.month!=_3d.getMonth()){_3d.setMonth(mon.month);cal.setDate(_3d);cal.dateClicked=false;cal.callHandler();}}else{var _3e=Calendar.findYear(_3b);if(_3e){_3d=new Date(cal.date);if(_3e.year!=_3d.getFullYear()){_3d.setFullYear(_3e.year);cal.setDate(_3d);cal.dateClicked=false;cal.callHandler();}}}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(!cal){return;}var el=cal.activeDiv;var _42=Calendar.getTargetElement(ev);if(_42==el||_42.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2))){Calendar.removeClass(el,"active");}Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}ev||(ev=window.event);if(el.navtype==50&&_42!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var _47=true;if(x>pos.x+w){dx=x-pos.x-w;_47=false;}else{dx=pos.x-x;}if(dx<0){dx=0;}var _48=el._range;var _49=el._current;var _4a=Math.floor(dx/10)%_48.length;for(var i=_48.length;--i>=0;){if(_48[i]==_49){break;}}while(_4a-->0){if(_47){if(--i<0){i=_48.length-1;}}else{if(++i>=_48.length){i=0;}}}var _4c=_48[i];el.innerHTML=_4c;cal.onUpdateTime();}var mon=Calendar.findMonth(_42);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}var _4e=Calendar.findYear(_42);if(_4e){if(_4e.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}Calendar.addClass(_4e,"hilite");cal.hilitedYear=_4e;}else{if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}}else{if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}}return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}var _52;var _53;if(Calendar.is_ie){_53=window.event.clientY+document.body.scrollTop;_52=window.event.clientX+document.body.scrollLeft;}else{_52=ev.pageX;_53=ev.pageY;}cal.hideShowCovered();var st=cal.element.style;st.left=(_52-cal.xOffs)+"px";st.top=(_53-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);}cal.hideShowCovered();};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false;}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300){with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else{addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);}addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}}else{if(cal.isPopup){cal._dragStart(ev);}}if(el.navtype==-1||el.navtype==1){if(cal.timeout){clearTimeout(cal.timeout);}cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else{if(el.navtype==-2||el.navtype==2){if(cal.timeout){clearTimeout(cal.timeout);}cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}}return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}el.calendar.tooltips.innerHTML=el.ttip;}if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled){return false;}removeClass(el,"hilite");if(el.caldate){removeClass(el.parentNode,"rowhilite");}if(el.calendar){el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];}return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var _62=false;var _63=false;var _64=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");_62=(cal.currentDateEl==el);if(!_62){cal.currentDateEl=el;}}cal.date.setDateOnly(el.caldate);_64=cal.date;var _65=!(cal.dateClicked=!el.otherMonth);if(!_65&&!cal.currentDateEl){cal._toggleMultipleDate(new Date(_64));}else{_63=!el.disabled;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -