📄 popcalendar.js
字号:
{
beginYear = objPopCalendar.yearFrom
endYear = beginYear + objPopCalendar.HalfYearList * 2
}
else if (endYear > objPopCalendar.yearUpTo)
{
endYear = objPopCalendar.yearUpTo
beginYear = endYear - (objPopCalendar.HalfYearList * 2)
}
objPopCalendar.nStartingYear = beginYear
if (longList)
{
sHTML += "<tr><td align='center' onmouseover='objPopCalendar.bShow=true;this.style.backgroundColor=\"#0066CC\"' onmouseout='objPopCalendar.bShow=false;clearInterval(objPopCalendar.intervalID1);this.style.backgroundColor=\"\"' style='cursor:default;border-bottom:1px #a0a0a0 solid' onmousedown='clearInterval(objPopCalendar.intervalID1);objPopCalendar.intervalID1=setInterval(\"PopCalDecYear()\",15)' onmouseup='clearInterval(objPopCalendar.intervalID1)'><IMG id='popupSuperUpYear' onDrag='return(false)' SRC='"+objPopCalendar.imgDir+"Calendar_Up.gif' BORDER=0></td></tr>"
}
var j = 0
for (var i=(beginYear); i<=(endYear); i++)
{
var sName = i
if (i==objPopCalendar.yearSelected)
{
sName = "<B>" + sName + "</B>"
}
sHTML += "<tr><td id='popupSuperYear" + j + "' align='center' onmouseover='objPopCalendar.bShow=true;this.style.backgroundColor=\"#0066CC\"' onmouseout='objPopCalendar.bShow=false;this.style.backgroundColor=\"\"' style='cursor:default;line-height:120%;' onclick='objPopCalendar.bShow=false;PopCalSelectYear("+j+");event.cancelBubble=true'><font color='#ffffff'> " + sName + " </font></td></tr>"
j ++
}
if (longList)
{
sHTML += "<tr><td align='center' onmouseover='objPopCalendar.bShow=true;this.style.backgroundColor=\"#0066CC\"' onmouseout='objPopCalendar.bShow=false;clearInterval(objPopCalendar.intervalID2);this.style.backgroundColor=\"\"' style='cursor:default;border-top:1px #a0a0a0 solid' onmousedown='clearInterval(objPopCalendar.intervalID2);objPopCalendar.intervalID2=setInterval(\"PopCalIncYear()\",15)' onmouseup='clearInterval(objPopCalendar.intervalID2)'><IMG id='popupSuperDownYear' onDrag='return(false)' SRC='"+objPopCalendar.imgDir+"Calendar_Down.gif' BORDER=0></td></tr>"
}
var PopCal=PopCalInstanceCreated()
PopCal.popupSuperYear.innerHTML = "<table width=44 style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;' bgcolor='#449AE8' onmouseover='clearTimeout(objPopCalendar.timeoutID2)' onmouseout='clearTimeout(objPopCalendar.timeoutID2);' cellspacing=0>" + sHTML + "</table>"
PopCal.popupSuperYearList = []
for (var i=0; i<j; i++)
{
PopCal.popupSuperYearList[i] = document.getElementById("popupSuperYear" + i)
}
objPopCalendar.yearConstructed = true
}
}
function PopCalDownYear()
{
if (objPopCalendar.crossYearObj.display != "none")
{
if (!objPopCalendar.keepYear)
{
clearInterval(objPopCalendar.intervalID1)
clearTimeout(objPopCalendar.timeoutID1)
clearInterval(objPopCalendar.intervalID2)
clearTimeout(objPopCalendar.timeoutID2)
objPopCalendar.crossYearObj.display = "none"
PopCalShowAllElements()
}
}
objPopCalendar.keepYear = false
}
function PopCalUpYear()
{
var leftOffset
PopCalConstructYear()
objPopCalendar.crossYearObj.display = ""
leftOffset = parseInt(objPopCalendar.crossobj.left, 10) + document.getElementById("popupSuperSpanYear" + objPopCalendar.id).offsetLeft
if (objPopCalendar.ie)
{
leftOffset += 6
}
else
{
leftOffset += 7
}
objPopCalendar.crossYearObj.left = leftOffset
objPopCalendar.crossYearObj.top = parseInt(objPopCalendar.crossobj.top, 10) + 26
var PopCal = PopCalInstanceCreated()
if (PopCal.LoadElements!=-1)
{
PopCalHideElement( PopCal.Elements, PopCal.popupSuperYear )
}
}
/*** calendar ***/
function PopCalWeekNbr(n)
{
// Algorithm used:
// From Klaus Tondering's Calendar document (The Authority/Guru)
// hhtp://www.tondering.dk/claus/calendar.html
// a = (14-month) / 12
// y = year + 4800 - a
// m = month + 12a - 3
// J = day + (153m + 2) / 5 + 365y + y / 4 - y / 100 + y / 400 - 32045
// d4 = (J + 31741 - (J mod 7)) mod 146097 mod 36524 mod 1461
// L = d4 / 1460
// d1 = ((d4 - L) mod 365) + L
// WeekNumber = d1 / 7 + 1
var PopCal=PopCalInstanceCreated()
var year = n.getFullYear()
var month = n.getMonth() + 1
var day
if (PopCal.startAt == 0)
{
day = n.getDate() + 1
}
else
{
day = n.getDate()
}
var a = Math.floor((14-month) / 12)
var y = year + 4800 - a
var m = month + 12 * a - 3
var b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400)
var J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045
var d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461
var L = Math.floor(d4 / 1460)
var d1 = ((d4 - L) % 365) + L
var week = Math.floor(d1/7) + 1
return week
}
function PopCalConstructCalendar ()
{
var PopCal=PopCalInstanceCreated()
var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)
var dateMessage
var startDate = new Date(objPopCalendar.yearSelected,objPopCalendar.monthSelected,1)
var endDate
var numDaysInMonth
var notSelect
var selectWeekends = PopCal.selectWeekend
var selectHolidays = PopCal.selectHoliday
if (objPopCalendar.overWriteSelectWeekend!=null)
{
selectWeekends = objPopCalendar.overWriteSelectWeekend
}
if (objPopCalendar.overWriteSelectHoliday!=null)
{
selectHolidays = objPopCalendar.overWriteSelectHoliday
}
if (PopCal.showHolidays==0)
{
selectHolidays = true
}
if (objPopCalendar.monthSelected==1)
{
endDate = new Date(objPopCalendar.yearSelected,2,1)
endDate = new Date(endDate - (86400000))
numDaysInMonth = endDate.getDate()
}
else
{
numDaysInMonth = aNumDays[objPopCalendar.monthSelected]
}
var datePointer = 0
dayPointer = startDate.getDay() - PopCal.startAt
if (dayPointer<0)
{
dayPointer = 6
}
//************************************
var timePointer = 0
timePointer = startDate.getTime()
//************************************
var sHTML = "<table border=0 style='font-family:宋体;font-size:9pt;'><tr>"
if (PopCal.showWeekNumber==1)
{
sHTML += "<td width=27 Style='cursor:default'>" + objPopCalendar.weekString + "</td><td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'></td>"
}
for (var i=0; i<7; i++)
{
if (objPopCalendar.language==0)
{
sHTML += "<td width='27' align='right' Style='cursor:default'>"+ objPopCalendar.dayName[i].substr(1,2)+"</td>"
}
else
{
sHTML += "<td width='27' align='right' Style='cursor:default'>"+ objPopCalendar.dayName[i].substr(0,3)+"</td>"
}
}
sHTML +="</tr><tr>"
if (PopCal.showWeekNumber==1)
{
sHTML += "<td align=right Style='cursor:default'>" + PopCalWeekNbr(startDate) + " </td>"
}
for (var i=1; i<=dayPointer;i++ )
{
sHTML += "<td Style='cursor:default'> </td>"
}
if ((PopCal.addCarnival==1) || (PopCal.addGoodFriday==1))
{
var dtDomingoPascuas = PopCalDomingoPascuas(objPopCalendar.yearSelected)
if (PopCal.addCarnival==1)
{
var dtDate = new Date(dtDomingoPascuas - (47 * 86400000))
PopCalAddHoliday(dtDate.getDate(), dtDate.getMonth() + 1, dtDate.getFullYear(),"Carnival's Tuesday", "Carnival's Tuesday")
}
if (PopCal.addGoodFriday==1)
{
var dtDate = new Date(dtDomingoPascuas - (2 * 86400000))
PopCalAddHoliday(dtDate.getDate(), dtDate.getMonth() + 1, dtDate.getFullYear() ,"Good Friday", "Good Friday")
}
}
for (var datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
{
dayPointer++
sHTML += "<td align=right Style='cursor:default;line-height:120%;'>"
var sStyle=objPopCalendar.styleAnchor
if ((datePointer==objPopCalendar.odateSelected) && (objPopCalendar.monthSelected==objPopCalendar.omonthSelected) && (objPopCalendar.yearSelected==objPopCalendar.oyearSelected))
{
sStyle+=objPopCalendar.styleLightBorder
}
notSelect = false
var sHint = ""
for (var k=0;k<objPopCalendar.HolidaysCounter;k++)
{
if ((parseInt(objPopCalendar.Holidays[k].d, 10)==datePointer)&&(parseInt(objPopCalendar.Holidays[k].m, 10)==(objPopCalendar.monthSelected+1)))
{
if ((parseInt(objPopCalendar.Holidays[k].y, 10)==0)||((parseInt(objPopCalendar.Holidays[k].y, 10)==objPopCalendar.yearSelected)&&(parseInt(objPopCalendar.Holidays[k].y, 10)!=0)))
{
if ((PopCal.showHolidays==1) && (objPopCalendar.Holidays[k].tipo==1))
{
sStyle+="background-color:#FFDDDD;"
sHint+=(sHint==""?"":objPopCalendar.ie?"\n":", ") + objPopCalendar.Holidays[k].desc[PopCal.language]
}
else if ((PopCal.showSpecialDay==1) && (objPopCalendar.Holidays[k].tipo==0))
{
sStyle+="background-color:#70FFD0;"
sHint+=(sHint==""?"":objPopCalendar.ie?"\n":", ") + objPopCalendar.Holidays[k].desc[PopCal.language]
}
if ((selectHolidays!=1) && (objPopCalendar.Holidays[k].tipo==1))
{
notSelect = true
}
}
}
}
var regexp= /\"/g
sHint=sHint.replace(regexp,""")
dateMessage = "onmouseover='window.status=\""+objPopCalendar.selectDateMessage.replace("[date]",PopCalConstructDate(datePointer,objPopCalendar.monthSelected,objPopCalendar.yearSelected,objPopCalendar.dateFormat))+"\"' onmouseout='window.status=\"\"' "
if (objPopCalendar.yearSelected == objPopCalendar.yearFrom && objPopCalendar.monthSelected == objPopCalendar.monthFrom)
{
if (datePointer < objPopCalendar.dateFrom)
{
notSelect = true
}
}
if (objPopCalendar.yearSelected == objPopCalendar.yearUpTo && objPopCalendar.monthSelected == objPopCalendar.monthUpTo)
{
if (datePointer > objPopCalendar.dateUpTo)
{
notSelect = true
}
}
if ((selectWeekends!=1) && (!notSelect))
{
if ((dayPointer % 7 == (PopCal.startAt * -1)+1) || (dayPointer % 7 == (PopCal.startAt * -1)+7) || (dayPointer % 7 == (PopCal.startAt * -1)))
{
notSelect = true
}
}
if (notSelect)
{
sStyle += "text-decoration:line-through;"
if ((datePointer==objPopCalendar.dateNow)&&(objPopCalendar.monthSelected==objPopCalendar.monthNow)&&(objPopCalendar.yearSelected==objPopCalendar.yearNow))
{
sStyle += "font-weight:Bold;color:#ff0000;"
}
else if (((dayPointer % 7 == (PopCal.startAt * -1)+1) || (dayPointer % 7 == (PopCal.startAt * -1)+7) || (dayPointer % 7 == (PopCal.startAt * -1))) && (PopCal.showWeekend==1))
{
sStyle += "color:#909090;"
}
sHTML += "<Span title=\"" + sHint + "\" Style='" + sStyle + "'> " + datePointer + " </Span>"
}
else
{
sStyle += "cursor:hand;"
if ((datePointer==objPopCalendar.dateNow)&&(objPopCalendar.monthSelected==objPopCalendar.monthNow)&&(objPopCalendar.yearSelected==objPopCalendar.yearNow))
{
sStyle += "font-weight:Bold;color:#ff0000;"
}
else if (((dayPointer % 7 == (PopCal.startAt * -1)+1) || (dayPointer % 7 == (PopCal.startAt * -1)+7) || (dayPointer % 7 == (PopCal.startAt * -1))) && (PopCal.showWeekend==1))
{
sStyle += "color:#909090;"
}
sHTML += "<span "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' onClick='objPopCalendar.dateSelected=" + datePointer + ";"
if (objPopCalendar.showTime==1)
{
sHTML += "objPopCalendar.timeSelected=" + timePointer + ";"
}
sHTML += "PopCalCloseCalendar();'> " + datePointer + " </span>"
}
sHTML += ""
if ((dayPointer+PopCal.startAt) % 7 == PopCal.startAt) {
sHTML += "</tr><tr>"
if ((PopCal.showWeekNumber==1)&&(datePointer<numDaysInMonth))
{
sHTML += "<td align=right Style='cursor:default'>" + (PopCalWeekNbr(new Date(objPopCalendar.yearSelected,objPopCalendar.monthSelected,datePointer+1))) + " </td>"
}
}
}
if (PopCal.addGoodFriday==1)
{
objPopCalendar.Holidays.length = --objPopCalendar.HolidaysCounter
}
if (PopCal.addCarnival==1)
{
objPopCalendar.Holidays.length = --objPopCalendar.HolidaysCounter
}
document.getElementById("popupSuperContent" + objPopCalendar.id).innerHTML = sHTML
document.getElementById("popupSuperSpanMonth" + objPopCalendar.id).innerHTML = " " + objPopCalendar.monthName[objPopCalendar.monthSelected] + " <IMG id='popupSuperChangeMonth" + objPopCalendar.id + "' onDrag='return(false)' SRC='"+objPopCalendar.imgDir+"Calendar_Drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
document.getElementById("popupSuperSpanYear" + objPopCalendar.id).innerHTML = " " + objPopCalendar.yearSelected + " <IMG id='popupSuperChangeYear" + objPopCalendar.id + "' onDrag='return(false)' SRC='"+objPopCalendar.imgDir+"Calendar_Drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
PopCalMoveShadow()
}
function PopCalMoveShadow()
{
var PopCal=PopCalInstanceCreated()
if (PopCal.shadow==1)
{
objPopCalendar.crossShadowRObj.height = PopCal.popupSuperCalendar.offsetHeight - 10
objPopCalendar.crossShadowRObj.top = PopCal.popupSuperCalendar.offsetTop + 10
objPopCalendar.crossShadowRObj.left = PopCal.popupSuperCalendar.offsetLeft + PopCal.popupSuperCalendar.offsetWidth
objPopCalendar.crossShadowBObj.width = PopCal.popupSuperCalendar.offsetWidth
objPopCalendar.crossShadowBObj.top = PopCal.popupSuperCalendar.offsetTop + PopCal.popupSuperCalendar.offsetHeight
objPopCalendar.crossShadowBObj.left = (PopCal.popupSuperCalendar.offsetLeft + PopCal.popupSuperCalendar.offsetWidth + 10) - PopCal.popupSuperCalendar.offsetWidth
}
}
function PopCalDateNow()
{
return PopCalPad(objPopCalendar.yearNow, 4, "0", "L") + PopCalPad(objPopCalendar.monthNow, 2, "0", "L") + PopCalPad(objPopCalendar.dateNow, 2, "0", "L")
}
function PopCalDateSelect()
{
return PopCalPad(objPopCalendar.yearSelected, 4, "0", "L") + PopCalPad(objPopCalendar.monthSelected, 2, "0", "L") + PopCalPad(objPopCalendar
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -