⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 popcalendar.js

📁 移动计费管理软件
💻 JS
📖 第 1 页 / 共 5 页
字号:
		{
			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'>&nbsp;" + sName + "&nbsp;</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) + "&nbsp;</td>"
	}

	for (var i=1; i<=dayPointer;i++ )
	{
		sHTML += "<td Style='cursor:default'>&nbsp;</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,"&quot;")

		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 + "'>&nbsp;" + datePointer + "&nbsp;</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();'>&nbsp;" + datePointer + "&nbsp;</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))) + "&nbsp;</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 = "&nbsp;" + objPopCalendar.monthName[objPopCalendar.monthSelected] + "&nbsp;<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 = "&nbsp;" + objPopCalendar.yearSelected + "&nbsp;<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(objPopCalen

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -