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

📄 calendar.js

📁 泛微协同办公系统标准版E-office V5.5的源代码内含泛微办公系统V5.5自动注册文件。
💻 JS
📖 第 1 页 / 共 2 页
字号:
	month = n.getMonth() + 1;

	if (startAt == 0) {
		day = n.getDate() + 1;
	} else {
		day = n.getDate();
	}
 
	a = Math.floor((14-month) / 12);
	y = year + 4800 - a;
	m = month + 12 * a - 3;
	b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400);
	J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045;
	d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
	L = Math.floor(d4 / 1460);
	d1 = ((d4 - L) % 365) + L;
	week = Math.floor(d1/7) + 1;
 
	return week;
} 

function constructCalendar() {
	var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31);
	var dateMessage;
	var startDate =	new Date (yearSelected,monthSelected,1);
	var endDate;

	if(monthSelected==1) {
		endDate	= new Date (yearSelected,monthSelected+1,1);
		endDate	= new Date (endDate	- (24*60*60*1000));
		numDaysInMonth = endDate.getDate();
	} else {
		numDaysInMonth = aNumDays[monthSelected];
	}

	datePointer = 0;
	dayPointer = startDate.getDay() - startAt;
		
	if(dayPointer<0) {
		dayPointer = 6;
	}
	sHTML =	"<table	 border=0 style='font-family:verdana;font-size:10px;'><tr>";

	if(showWeekNumber==1) {
		sHTML += "<td width=27 align='right'><b> W</b></td>"
		sHTML += "<td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'><img src='"+imgDir+"divider.gif' width=1></td>";
	}

	for(i=0; i<7; i++) {   /////// 夸老 ///////////////////////
		//sHTML += "<td width='27' align='right'><B>"+ dayName[i]+"</B></td>";
		if (i == 0)
			sHTML += "<td width='40' align='right'  bgcolor='#D2FFFF'>"+ dayName[i]+"</td>";
		else
			sHTML += "<td width='27' align='right'  bgcolor='#D2FFFF'>"+ dayName[i]+"</td>";
			
	}
	sHTML +="</tr><tr>";
		
	if(showWeekNumber==1) {
		sHTML += "<td align=right>" + WeekNbr(startDate) + " </td>";
	}

	for(var i=1; i<=dayPointer;i++)	{  // 后 朝楼
		sHTML += "<td> </td>";
	}
	
	for(datePointer=1; datePointer<=numDaysInMonth; datePointer++) {
		dayPointer++;
		sHTML += "<td align=right>";
		sStyle = styleAnchor;

		if((datePointer==odateSelected) && (monthSelected==omonthSelected) && (yearSelected==oyearSelected)) {
			sStyle += styleLightBorder;
		}
		sHint = "";

		for(k=0;k<HolidaysCounter;k++) {
			if((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)==(monthSelected+1))) {
				if((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0))) {
					sStyle+="background-color:#FFDDDD;";
					sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc;
				}
			}
		}
		var regexp= /\"/g;
		sHint=sHint.replace(regexp,"&quot;");
		/////////////// 朝楼 急琶矫 ==> 付快胶啊 朝楼 困肺 艾阑锭 ///////////////////////////////
		dateMessage = "title='指向日期: "+ yearSelected + " " +	monthName[monthSelected] +" "  + datePointer + "日"+"' onmousemove='window.status=\"指向日期: "+ yearSelected + " " +	monthName[monthSelected] +" "  + datePointer + "日"+"\"' onmouseout='window.status=\"\"' ";

		if((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow)) {  // 泅犁 坷疵 朝楼
			sHTML += "<b><a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#ff0000> " + datePointer + "</font> </a></b>";
		} else
		if(dayPointer % 7 == (startAt * -1)+1) {  // 老夸老 老锭
			sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'> <font color=red>" + datePointer + "</font> </a>";
		} else {
			sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'> " + datePointer + " </a>";
		}
		sHTML += "";

		if((dayPointer+startAt) % 7 == startAt) { 
			sHTML += "</tr><tr>";

			if((showWeekNumber==1)&&(datePointer<numDaysInMonth)) {
				sHTML += "<td align=right>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + " </td>";
			}
		}
	}
	document.getElementById("content").innerHTML = sHTML;  
	document.getElementById("spanMonth").innerHTML = " " +	
	monthName[monthSelected] + 
	"<a href='javascript:popUpMonth()' style='text-decoration:none'><font face='webdings' size=3 color=#330099>6</font></a>";	

	document.getElementById("spanYear").innerHTML =	" " + yearSelected	+ " " +
	"<a href='javascript:popUpYear()' style='text-decoration:none'><font face='webdings' size=3 color=#330099>6</font></a>";
}

function popUpCalendar(ctl, ctl2, format) {
	var leftpos = 0;
	var toppos = 0;

	if(bPageLoaded) {
		if(crossobj.visibility == "hidden") {
			ctlToPlaceValue	= ctl2;
			dateFormat=format;
			formatChar = " ";
			aFormat	= dateFormat.split(formatChar);

				if(aFormat.length<3) {
					formatChar = "/";
					aFormat	= dateFormat.split(formatChar);

					if(aFormat.length<3) {
						formatChar = ".";
						aFormat	= dateFormat.split(formatChar);

						if(aFormat.length<3) {
							formatChar = "-";
							aFormat	= dateFormat.split(formatChar);

							if (aFormat.length<3) {
								formatChar="";
							}
						}
					}
				}
				tokensChanged =	'0';

				if(formatChar != "") {
					aData =	ctl2.value.split(formatChar);

					for(i=0;i<3;i++) {
						if ((aFormat[i]=="d") || (aFormat[i]=="dd")) {
							dateSelected = parseInt(aData[i], 10);
							tokensChanged++;
						} else
						if((aFormat[i]=="m") || (aFormat[i]=="mm")) {
							monthSelected =	parseInt(aData[i], 10) - 1;
							tokensChanged++;
						} else
						if(aFormat[i]=="yyyy") {
							yearSelected = parseInt(aData[i], 10);
							tokensChanged++;
						}else
						if(aFormat[i]=="mmm") {

							for(j=0; j<12;	j++) {
								if (aData[i]==monthName[j]) {
									monthSelected=j;
									tokensChanged++;
								}
							}
						} else
						if(aFormat[i]=="mmmm") {
							for(j=0; j<12;	j++) {
								if (aData[i]==monthName2[j]) {
									monthSelected=j;
									tokensChanged ++;
								}
							}
						}
					}
				}

				if((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected)) {
					dateSelected = dateNow;
					monthSelected =	monthNow;
					yearSelected = yearNow;
				}
				odateSelected=dateSelected;
				omonthSelected=monthSelected;
				oyearSelected=yearSelected;

				aTag = ctl2;
				do {
					aTag = aTag.offsetParent;
					leftpos	+= aTag.offsetLeft;
					toppos += aTag.offsetTop;
				} while(aTag.tagName!="BODY");

				crossobj.left =	fixedX==-1 ? ctl2.offsetLeft	+ leftpos :	fixedX;
				crossobj.top = fixedY==-1 ?	ctl2.offsetTop +	toppos + ctl2.offsetHeight +	2 :	fixedY;
				constructCalendar (1, monthSelected, yearSelected);
				crossobj.visibility=(dom||ie)? "visible" : "show";

				hideElement('SELECT', document.getElementById("calendar"));
				hideElement('APPLET', document.getElementById("calendar"));			

				bShow = true;
			} else {
				hideCalendar();

				if (ctlNow!=ctl) {
					popUpCalendar(ctl, ctl2, format);
				}
			}
			ctlNow = ctl;
		}
	}

	document.onkeypress = function hidecal1() { 
		if(event.keyCode==27) {
			hideCalendar();
		}
	}

	document.onclick = function hidecal2() { 		
		if(!bShow) {
			hideCalendar();
		}
		bShow = false;
	}

	if(ie) {
		init();
	} else {
		window.onload = init;
	}
	var layerQueue = new Array();
	var layerIndex = -1;


function hideElement(elmID, overDiv) {
	if(ie) {
		for(i = 0; i < document.getElementsByTagName(elmID).length; i++) {
			obj = document.getElementsByTagName( 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.getElementsByTagName( elmID ).length; i++) {
			obj = document.getElementsByTagName( elmID )[i];
	  
			if(!obj || !obj.offsetParent) {
				continue;
			}
	
			obj.style.visibility = "";
		}
	}
}

function lw_createLayer(layerName, top_pos, left_pos, width, height, bgcolor, bordercolor, z_index) {
	document.write("<div onClick='event.cancelBubble=true' id='"+layerName+"' style='z-index:" + z_index + ";position:absolute;top:"+top_pos+";left:"+left_pos+";visibility:hidden;'><table bgcolor='"+bgcolor+"' style='border-width:1px;border-style:solid;border-color:" + bordercolor + "' cellpadding=2 cellspacing=0 width=0><tr><td valign=top width='"+width+"' height='"+height+"'><span id='"+layerName+"_content'></span></td></tr></table></div>");
}

function lw_getObj(objName) {
	return (dom)?document.getElementById(objName).style:ie?eval("document.all."+objName) :eval("document."+objName);
}

function lw_showLayer(layerName) {
	found=false;

	for(i=0;i<=layerIndex;i++) {
		if (layerQueue[i]==layerName) {
			found=true;
		}
	}

	if ((lw_getObj(layerName).visibility!="visible")&&(lw_getObj(layerName).visibility!="show")) {
		lw_getObj(layerName).visibility = (dom||ie)?"visible":"show";
		layerQueue[++layerIndex] = layerName;

		hideElement('SELECT', document.getElementById(layerName));
		hideElement('APPLET', document.getElementById(layerName));
	}	
}

function lw_hideLayer() {
	showElement('SELECT', document.getElementById(layerQueue[layerIndex]));
	showElement('APPLET', document.getElementById(layerQueue[layerIndex]));

	lw_getObj(layerQueue[layerIndex--]).visibility = "hidden";
}

function lw_hideLayerName(layerName) {
	var i;
	var tmpQueue=new Array();
	var newIndex=-1;

	showElement('SELECT', document.getElementById(layerName));
	showElement('APPLET', document.getElementById(layerName));

	lw_getObj(layerName).visibility = "hidden";

	for(i=0;i<=layerIndex;i++) {
		if((layerQueue[i]!="")&&(layerQueue[i]!=layerName)) {
			tmpQueue [++newIndex] = layerQueue[i];			
			hideElement('SELECT', document.getElementById(layerQueue[i]));
			hideElement('APPLET', document.getElementById(layerQueue[i]));
		}
		
	}
	layerQueue = tmpQueue;
	layerIndex = newIndex;
}

function lw_closeAllLayers() {
	while(layerIndex >= 0) {
		lw_hideLayer();
	}
}

function lw_closeLastLayer() {
	if(layerIndex >= 0) {
		while ((lw_getObj(layerQueue[layerIndex]).visibility!="visible") && (layerIndex>0)) {
			layerIndex--;
		}
		lw_hideLayer();
	}
}

function lw_escLayer(e) {
	if(navigator.appName=="Netscape") {
		var keyCode = e.keyCode?e.keyCode:e.which?e.which:e.charCode;
		if((keyCode==27)||(keyCode==1)) {
			lw_closeLastLayer();
		}
	} else
	if((event.keyCode==0)||(event.keyCode==27)) {
		lw_closeLastLayer();		
	}
}


var lw_leftpos = 0;
var lw_toppos = 0;
var lw_width = 0;
var lw_height = 0;

function lw_calcpos(obj) {
	lw_leftpos=0;
	lw_toppos=0;
	lw_width = obj.offsetWidth;
	lw_height = obj.offsetHeight;
	var aTag = obj;

	do {
		lw_leftpos += aTag.offsetLeft;
		lw_toppos += aTag.offsetTop;
		aTag = aTag.offsetParent;
	} while(aTag.tagName!="BODY");
}
document.onkeypress = lw_escLayer;
document.onclick = lw_closeAllLayers;

⌨️ 快捷键说明

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