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

📄 calendar.js

📁 泛微协同办公系统标准版E-office V5.5的源代码内含泛微办公系统V5.5自动注册文件。
💻 JS
📖 第 1 页 / 共 2 页
字号:
						 
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 + -