📄 calendar.js
字号:
var fixedX = -1; //0 -1
var fixedY = -1; //0 -1
var startAt = 0; // 0 1
var showWeekNumber = -1; // 0 1
var showToday = 0; // 0 1
var imgDir = 'images/calendar';
var crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear
var bPageLoaded = false;
var ie = document.all;
var dom = document.getElementById;
var bShow = false;
var ns4 = document.layers;
var today = new Date();
var dateNow = today.getDate();
var monthNow = today.getMonth();
var yearNow = today.getYear();
var imgsrc = new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif"); var img = new Array();
var monthName = new Array("1 月","2 月","3 月","4 月","5 月","6 月","7 月","8 月","9 月","10 月","11 月","12 月")
// var monthName = new Array("January","February","March","April","May","June","July","August","September","October","November","December")
var monthName2 = new Array("1 月","2 月","3 月","4 月","5 月","6 月","7 月","8 月","9 月","10 月","11 月","12 月")
// var monthName2 = new Array("1 JAN","2 FEB","3 MAR","4 APR","5 MAY","6 JUN","7 JUL","8 AUG","9 SEP","10 OCT","11 NOV","12 DEC")
if (startAt==0) {
dayName = new Array("日", "一", "二", "三", "四", "五", "六");
// dayName = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
} else {
dayName = new Array("一", "二", "三", "四", "五", "六", "日");
// dayName = new Array("Mon","Tue","Wed","Thu","Fri","Sat","Sun");
}
function hideElement(elmID, overDiv) {
if(ie) {
for(i = 0; i < document.all.tags(elmID).length; i++) {
obj = document.all.tags(elmID)[i];
if(!obj || !obj.offsetParent) {
continue;
}
objLeft = obj.offsetLeft;
objTop = obj.offsetTop;
objParent = obj.offsetParent;
while(objParent.tagName.toUpperCase() != "BODY") {
objLeft += objParent.offsetLeft;
objTop += objParent.offsetTop;
objParent = objParent.offsetParent;
}
objHeight = obj.offsetHeight;
objWidth = obj.offsetWidth;
if((overDiv.offsetLeft + overDiv.offsetWidth) <= objLeft);
else if((overDiv.offsetTop + overDiv.offsetHeight) <= objTop);
else if(overDiv.offsetTop >= (objTop + objHeight));
else if(overDiv.offsetLeft >= (objLeft + objWidth));
else {
obj.style.visibility = "hidden";
}
}
}
}
function showElement(elmID) {
if(ie) {
for(i = 0; i < document.all.tags(elmID).length; i++) {
obj = document.all.tags( elmID )[i];
if(!obj || !obj.offsetParent) {
continue;
}
obj.style.visibility = "";
}
}
}
function HolidayRec(d, m, y, desc) {
this.d = d;
this.m = m;
this.y = y;
this.desc = desc;
}
var HolidaysCounter = 0;
var Holidays = new Array();
function addHoliday(d, m, y, desc) {
Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc );
}
if(dom) {
for(i=0; i<imgsrc.length; i++) {
img[i] = new Image;
img[i].src = imgDir + imgsrc[i];
}
//头部分
document.write ("<div onclick='bShow=true' id='calendar' style='z-index:+999;position:absolute;visibility:hidden;'>")
document.write ("<table width="+((showWeekNumber==1)?170:180)+" class='cnj_td' bgcolor='#99CCFF' cellpadding='0' cellspace='1'>")
document.write ("<tr>")
document.write ("<td bgcolor='#ffffff'>")
document.write ("<table width="+((showWeekNumber==1)?170:180)+" class='cnj_td' bgcolor='#ffffff'>")
document.write ("<tr style='background:url(/images/calendar/bg.jpg);'>")
document.write ("<td>")
document.write ("<table width='"+((showWeekNumber==1)?168:180)+"'>")
document.write ("<tr>")
document.write ("<td style='padding:1px;font-size:11px'>")
document.write ("<font color='#330099' ><B><span id='caption'></span></B></font></td>")
document.write ("<td align=right class='cnj_td'>")
document.write ("<img src='/images/calendar/close_cad.gif' onclick='hideCalendar()' border='0' alt='close' style='cursor:hand;'></td>")
document.write ("</tr>")
document.write ("</table>")
document.write ("</td>")
document.write ("</tr>")
document.write ("<tr><td style='padding:5px;padding-top:0px;' bgcolor=#FFFFFF><span id='content'></span></td></tr>")
if(showToday==1) {
document.write ("<tr bgcolor=#f0f0f0 ><td style='padding:5px' align=center><span id='lblToday'></span></td></tr>");
}
document.write ("</table>");
document.write ("</td>");
document.write ("</tr>");
document.write ("</table>");
document.write ("</div>");
document.write ("<div id='selectMonth' style='z-index:+999;position:absolute;visibility:hidden;'></div>");
document.write ("<div id='selectYear' style='z-index:+999;position:absolute;visibility:hidden;'></div>");
}
var styleAnchor = "text-decoration:none;color:black;";
var styleLightBorder = "border-style:solid;border-width:1px;border-color:#a0a0a0;";
function swapImage(srcImg, destImg) {
if(ie) {
document.getElementById(srcImg).setAttribute("src",imgDir + destImg);
}
}
function init() {
if(!ns4) {
if(!ie) {
yearNow += 1900;
}
crossobj = (dom)?document.getElementById("calendar").style : ie? document.all.calendar : document.calendar;
hideCalendar();
crossMonthObj = (dom)?document.getElementById("selectMonth").style : ie? document.all.selectMonth : document.selectMonth;
crossYearObj = (dom)?document.getElementById("selectYear").style : ie? document.all.selectYear : document.selectYear;
monthConstructed = false;
yearConstructed = false;
if(showToday==1) {
document.getElementById("lblToday").innerHTML = ""+
"<a onmousemove='window.status=\"今日日期\"' onmouseout='window.status=\"\"' title='今日日期' "+
" style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();' onFocus='this.blur()'>"+
""+yearNow+" 年 "+
""+monthName[monthNow]+" "+
""+dateNow+" 日"+
"</a>";
}
sHTML1="<a href='javascript:decMonth()' style='text-decoration:none'><font face='webdings' size=4 color=#330099>3</font></a></span>";
sHTML1+="<a href='javascript:incMonth()' style='text-decoration:none'><font face='webdings' size=4 color=#330099>4</font></a></span>";
sHTML1+="<span id='spanMonth' class='cnj_input4' onclick='popUpMonth()' title='月份' "
sHTML1+="onMouseover=\"this.className='cnj_input3';window.status='月份:'\" onMouseout=\"this.className='cnj_input4';window.status=''\"></span> ";
sHTML1+="<span id='spanYear' class='cnj_input4' onclick='popUpYear()' title='年份' "
sHTML1+="onMouseover=\"this.className='cnj_input3';window.status='年份:'\" onMouseout=\"this.className='cnj_input4';window.status=''\"></span> ";
document.getElementById("caption").innerHTML = sHTML1;
bPageLoaded = true;
}
}
function hideCalendar() {
crossobj.visibility = "hidden";
if(crossMonthObj != null) {
crossMonthObj.visibility="hidden";
}
if(crossYearObj != null) {
crossYearObj.visibility="hidden";
}
showElement('SELECT');
showElement('APPLET');
}
function padZero(num) {
return (num < 10)? '0' + num : num;
}
function constructDate(d,m,y) {
sTmp = dateFormat
sTmp = sTmp.replace("dd","<e>");
sTmp = sTmp.replace("d","<d>");
sTmp = sTmp.replace("<e>",padZero(d));
sTmp = sTmp.replace("<d>",d);
sTmp = sTmp.replace("mmmm","<p>");
sTmp = sTmp.replace("mmm","<o>");
sTmp = sTmp.replace("mm","<n>");
sTmp = sTmp.replace("m","<m>");
sTmp = sTmp.replace("<m>",m+1);
sTmp = sTmp.replace("<n>",padZero(m+1));
sTmp = sTmp.replace("<o>",monthName[m]);
sTmp = sTmp.replace("<p>",monthName2[m]);
sTmp = sTmp.replace("yyyy",y);
return sTmp.replace("yy",padZero(y%100));
}
function closeCalendar() {
var sTmp;
hideCalendar();
ctlToPlaceValue.value = constructDate(dateSelected,monthSelected,yearSelected);
}
function StartDecMonth() {
intervalID1 = setInterval("decMonth()",80);
}
function StartIncMonth() {
intervalID1 = setInterval("incMonth()",80);
}
function incMonth() {
monthSelected++;
if (monthSelected>11) {
monthSelected=0;
yearSelected++;
}
constructCalendar();
}
function decMonth() {
monthSelected--;
if (monthSelected<0) {
monthSelected=11;
yearSelected--;
}
constructCalendar();
}
//月份选择
function constructMonth() {
popDownYear();
if (!monthConstructed) {
sHTML = "";
for(i=0; i<12; i++) {
sName = monthName[i];
if (i==monthSelected){ sName = "<B>" + sName + "</B>"; }
sHTML += "<tr><td id='m" + i + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onClick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'> " + sName + " </td></tr>";
}
document.getElementById("selectMonth").innerHTML = "<table width=50 style='font-family:sinsum; font-size:11px; border-width:1; border-style:solid; border-color:#75D0FA;' bgcolor='#E0F4FD' cellspacing=0 onmouseover='clearTimeout(timeoutID1)' onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" + sHTML + "</table>";
monthConstructed = true;
}
}
function popUpMonth() {
constructMonth();
crossMonthObj.visibility = (dom||ie)? "visible" : "show";
crossMonthObj.left = parseInt(crossobj.left) + 50;
crossMonthObj.top = parseInt(crossobj.top) + 26;
hideElement('SELECT', document.getElementById("selectMonth"));
hideElement('APPLET', document.getElementById("selectMonth"));
}
function popDownMonth() {
crossMonthObj.visibility = "hidden";
}
function incYear() {
for(i=0; i<7; i++) {
newYear = (i+nStartingYear)+1;
if (newYear==yearSelected) {
txtYear = " <B>"+ newYear +"</B> ";
} else {
txtYear = " " + newYear + " ";
}
document.getElementById("y"+i).innerHTML = txtYear;
}
nStartingYear++;
bShow = true;
}
function decYear() {
for (i=0; i<7; i++) {
newYear = (i+nStartingYear)-1;
if (newYear==yearSelected) {
txtYear = " <B>"+ newYear +"</B> ";
} else {
txtYear = " " + newYear + " ";
}
document.getElementById("y"+i).innerHTML = txtYear;
}
nStartingYear--;
bShow = true;
}
function selectYear(nYear) {
yearSelected = parseInt(nYear+nStartingYear);
yearConstructed = false;
constructCalendar();
popDownYear();
}
//年选择
function constructYear() {
popDownMonth();
sHTML = "";
if(!yearConstructed) {
sHTML ="<tr><td align='center' style='cursor:pointer' "
sHTML +=" onmouseover='this.style.backgroundColor=\"#FFCC99\"' "
sHTML +=" onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' "
sHTML +=" onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' "
sHTML +=" onmouseup='clearInterval(intervalID1)'> "
sHTML +=" <img src='/images/calendar/scroll_db_up.gif'></img></td></tr>";
j = 0;
nStartingYear = yearSelected-3;
for (i=(yearSelected-3); i<=(yearSelected+3); i++) {
sName = i;
if (i==yearSelected) { sName = "<b>" + sName + "</b>" }
sHTML +="<tr><td height='15' id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' "
sHTML +=" style='cursor:pointer' onClick='selectYear("+j+");event.cancelBubble=true'> " + sName + " "
sHTML +="</td></tr>";
j ++;
}
sHTML += "<tr><td align='center' style='cursor:pointer' "
sHTML += " onmouseover='this.style.backgroundColor=\"#FFCC99\"' "
sHTML += " onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' "
sHTML += " onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)' "
sHTML += " onmouseup='clearInterval(intervalID2)'> "
sHTML += " <img src='/images/calendar/scroll_db_down.gif'></img></td></tr>";
document.getElementById("selectYear").innerHTML = ""+
"<table width='55' style='font-family:宋体; font-size:11px; border-width:1; border-style:solid; border-color:#75D0FA;' bgcolor='#E0F4FD' "+
" onmouseover='clearTimeout(timeoutID2)' "+
" onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"+
""+ sHTML + ""+
"</table>";
yearConstructed = true;
}
}
function popDownYear() {
clearInterval(intervalID1);
clearTimeout(timeoutID1);
clearInterval(intervalID2);
clearTimeout(timeoutID2);
crossYearObj.visibility= "hidden";
}
function popUpYear() {
var leftOffset;
constructYear();
crossYearObj.visibility = (dom||ie)? "visible" : "show";
leftOffset = parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft;
if(ie) {
leftOffset += 6;
}
crossYearObj.left = leftOffset;
crossYearObj.top = parseInt(crossobj.top) + 26;
}
function WeekNbr(n) {
year = n.getFullYear();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -