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

📄 calendar.js

📁 开源的 库存管理系统 www.minierp.cn php+ mysql
💻 JS
📖 第 1 页 / 共 3 页
字号:
		}		date = new Date(cal.date);		if (el.navtype == 0)			date.setDateOnly(new Date()); // TODAY		cal.dateClicked = false;		var year = date.getFullYear();		var mon = date.getMonth();		function setMonth(m) {			var day = date.getDate();			var max = date.getMonthDays(m);			if (day > max) {				date.setDate(max);			}			date.setMonth(m);		};		switch (el.navtype) {		    case 400:			Calendar.removeClass(el, "hilite");			var text = Calendar._TT["ABOUT"];			if (typeof text != "undefined") {				text += cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";			} else {				text = "Help and about box text is not translated into this language.\n" +					"If you know this language and you feel generous please update\n" +					"the corresponding file in \"lang\" subdir to match calendar-en.js\n" +					"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n" +					"Thank you!\n" +					"http://dynarch.com/mishoo/calendar.epl\n";			}			alert(text);			return;		    case -2:			if (year > cal.minYear) {				date.setFullYear(year - 1);			}			break;		    case -1:			if (mon > 0) {				setMonth(mon - 1);			} else if (year-- > cal.minYear) {				date.setFullYear(year);				setMonth(11);			}			break;		    case 1:			if (mon < 11) {				setMonth(mon + 1);			} else if (year < cal.maxYear) {				date.setFullYear(year + 1);				setMonth(0);			}			break;		    case 2:			if (year < cal.maxYear) {				date.setFullYear(year + 1);			}			break;		    case 100:			cal.setFirstDayOfWeek(el.fdow);			return;		    case 50:			var range = el._range;			var current = el.innerHTML;			for (var i = range.length; --i >= 0;)				if (range[i] == current)					break;			if (ev && ev.shiftKey) {				if (--i < 0)					i = range.length - 1;			} else if ( ++i >= range.length )				i = 0;			var newval = range[i];			el.innerHTML = newval;			cal.onUpdateTime();			return;		    case 0:			if ((typeof cal.getDateStatus == "function") &&			    cal.getDateStatus(date, date.getFullYear(), date.getMonth(), date.getDate())) {				return false;			}			break;		}		if (!date.equalsTo(cal.date)) {			cal.setDate(date);			newdate = true;		} else if (el.navtype == 0)			newdate = closing = true;	}	if (newdate) {		ev && cal.callHandler();	}	if (closing) {		Calendar.removeClass(el, "hilite");		ev && cal.callCloseHandler();	}};Calendar.prototype.create = function (_par) {	var parent = null;	if (! _par) {		parent = document.getElementsByTagName("body")[0];		this.isPopup = true;	} else {		parent = _par;		this.isPopup = false;	}	this.date = this.dateStr ? new Date(this.dateStr) : new Date();	var table = Calendar.createElement("table");	this.table = table;	table.cellSpacing = 0;	table.cellPadding = 0;	table.calendar = this;	Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);	var div = Calendar.createElement("div");	this.element = div;	div.className = "calendar";	if (this.isPopup) {		div.style.position = "absolute";		div.style.display = "none";	}	div.appendChild(table);	var thead = Calendar.createElement("thead", table);	var cell = null;	var row = null;	var cal = this;	var hh = function (text, cs, navtype) {		cell = Calendar.createElement("td", row);		cell.colSpan = cs;		cell.className = "button";		if (navtype != 0 && Math.abs(navtype) <= 2)			cell.className += " nav";		Calendar._add_evs(cell);		cell.calendar = cal;		cell.navtype = navtype;		cell.innerHTML = "<div unselectable='on'>" + text + "</div>";		return cell;	};	row = Calendar.createElement("tr", thead);	var title_length = 6;	(this.isPopup) && --title_length;	(this.weekNumbers) && ++title_length;	hh("?", 1, 400).ttip = Calendar._TT["INFO"];	this.title = hh("", title_length, 300);	this.title.className = "title";	if (this.isPopup) {		this.title.ttip = Calendar._TT["DRAG_TO_MOVE"];		this.title.style.cursor = "move";		hh("&#x00d7;", 1, 200).ttip = Calendar._TT["CLOSE"];	}	row = Calendar.createElement("tr", thead);	row.className = "headrow";	this._nav_py = hh("&#x00ab;", 1, -2);	this._nav_py.ttip = Calendar._TT["PREV_YEAR"];	this._nav_pm = hh("&#x2039;", 1, -1);	this._nav_pm.ttip = Calendar._TT["PREV_MONTH"];	this._nav_now = hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, 0);	this._nav_now.ttip = Calendar._TT["GO_TODAY"];	this._nav_nm = hh("&#x203a;", 1, 1);	this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];	this._nav_ny = hh("&#x00bb;", 1, 2);	this._nav_ny.ttip = Calendar._TT["NEXT_YEAR"];	row = Calendar.createElement("tr", thead);	row.className = "daynames";	if (this.weekNumbers) {		cell = Calendar.createElement("td", row);		cell.className = "name wn";		cell.innerHTML = Calendar._TT["WK"];	}	for (var i = 7; i > 0; --i) {		cell = Calendar.createElement("td", row);		if (!i) {			cell.navtype = 100;			cell.calendar = this;			Calendar._add_evs(cell);		}	}	this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild;	this._displayWeekdays();	var tbody = Calendar.createElement("tbody", table);	this.tbody = tbody;	for (i = 6; i > 0; --i) {		row = Calendar.createElement("tr", tbody);		if (this.weekNumbers) {			cell = Calendar.createElement("td", row);		}		for (var j = 7; j > 0; --j) {			cell = Calendar.createElement("td", row);			cell.calendar = this;			Calendar._add_evs(cell);		}	}	if (this.showsTime) {		row = Calendar.createElement("tr", tbody);		row.className = "time";		cell = Calendar.createElement("td", row);		cell.className = "time";		cell.colSpan = 2;		cell.innerHTML = Calendar._TT["TIME"] || "&nbsp;";		cell = Calendar.createElement("td", row);		cell.className = "time";		cell.colSpan = this.weekNumbers ? 4 : 3;		(function(){			function makeTimePart(className, init, range_start, range_end) {				var part = Calendar.createElement("span", cell);				part.className = className;				part.innerHTML = init;				part.calendar = cal;				part.ttip = Calendar._TT["TIME_PART"];				part.navtype = 50;				part._range = [];				if (typeof range_start != "number")					part._range = range_start;				else {					for (var i = range_start; i <= range_end; ++i) {						var txt;						if (i < 10 && range_end >= 10) txt = '0' + i;						else txt = '' + i;						part._range[part._range.length] = txt;					}				}				Calendar._add_evs(part);				return part;			};			var hrs = cal.date.getHours();			var mins = cal.date.getMinutes();			var t12 = !cal.time24;			var pm = (hrs > 12);			if (t12 && pm) hrs -= 12;			var H = makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23);			var span = Calendar.createElement("span", cell);			span.innerHTML = ":";			span.className = "colon";			var M = makeTimePart("minute", mins, 0, 59);			var AP = null;			cell = Calendar.createElement("td", row);			cell.className = "time";			cell.colSpan = 2;			if (t12)				AP = makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]);			else				cell.innerHTML = "&nbsp;";			cal.onSetTime = function() {				var pm, hrs = this.date.getHours(),					mins = this.date.getMinutes();				if (t12) {					pm = (hrs >= 12);					if (pm) hrs -= 12;					if (hrs == 0) hrs = 12;					AP.innerHTML = pm ? "pm" : "am";				}				H.innerHTML = (hrs < 10) ? ("0" + hrs) : hrs;				M.innerHTML = (mins < 10) ? ("0" + mins) : mins;			};			cal.onUpdateTime = function() {				var date = this.date;				var h = parseInt(H.innerHTML, 10);				if (t12) {					if (/pm/i.test(AP.innerHTML) && h < 12)						h += 12;					else if (/am/i.test(AP.innerHTML) && h == 12)						h = 0;				}				var d = date.getDate();				var m = date.getMonth();				var y = date.getFullYear();				date.setHours(h);				date.setMinutes(parseInt(M.innerHTML, 10));				date.setFullYear(y);				date.setMonth(m);				date.setDate(d);				this.dateClicked = false;				this.callHandler();			};		})();	} else {		this.onSetTime = this.onUpdateTime = function() {};	}	var tfoot = Calendar.createElement("tfoot", table);	row = Calendar.createElement("tr", tfoot);	row.className = "footrow";	cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);	cell.className = "ttip";	if (this.isPopup) {		cell.ttip = Calendar._TT["DRAG_TO_MOVE"];		cell.style.cursor = "move";	}	this.tooltips = cell;	div = Calendar.createElement("div", this.element);	this.monthsCombo = div;	div.className = "combo";	for (i = 0; i < Calendar._MN.length; ++i) {		var mn = Calendar.createElement("div");		mn.className = Calendar.is_ie ? "label-IEfix" : "label";		mn.month = i;		mn.innerHTML = Calendar._SMN[i];		div.appendChild(mn);	}	div = Calendar.createElement("div", this.element);	this.yearsCombo = div;	div.className = "combo";	for (i = 12; i > 0; --i) {		var yr = Calendar.createElement("div");		yr.className = Calendar.is_ie ? "label-IEfix" : "label";		div.appendChild(yr);	}	this._init(this.firstDayOfWeek, this.date);	parent.appendChild(this.element);};Calendar._keyEvent = function(ev) {	var cal = window._dynarch_popupCalendar;	if (!cal || cal.multiple)		return false;	(Calendar.is_ie) && (ev = window.event);	var act = (Calendar.is_ie || ev.type == "keypress"),		K = ev.keyCode;	if (ev.ctrlKey) {		switch (K) {		    case 37: // KEY left			act && Calendar.cellClick(cal._nav_pm);			break;		    case 38: // KEY up			act && Calendar.cellClick(cal._nav_py);			break;		    case 39: // KEY right			act && Calendar.cellClick(cal._nav_nm);			break;		    case 40: // KEY down			act && Calendar.cellClick(cal._nav_ny);			break;		    default:			return false;		}	} else switch (K) {	    case 32: // KEY space (now)		Calendar.cellClick(cal._nav_now);		break;	    case 27: // KEY esc		act && cal.callCloseHandler();		break;	    case 37: // KEY left	    case 38: // KEY up	    case 39: // KEY right	    case 40: // KEY down		if (act) {			var prev, x, y, ne, el, step;			prev = K == 37 || K == 38;			step = (K == 37 || K == 39) ? 1 : 7;			function setVars() {				el = cal.currentDateEl;				var p = el.pos;				x = p & 15;				y = p >> 4;				ne = cal.ar_days[y][x];			};setVars();			function prevMonth() {				var date = new Date(cal.date);				date.setDate(date.getDate() - step);				cal.setDate(date);			};			function nextMonth() {				var date = new Date(cal.date);				date.setDate(date.getDate() + step);				cal.setDate(date);			};			while (1) {				switch (K) {				    case 37: // KEY left					if (--x >= 0)						ne = cal.ar_days[y][x];					else {						x = 6;						K = 38;						continue;					}					break;				    case 38: // KEY up					if (--y >= 0)						ne = cal.ar_days[y][x];					else {						prevMonth();						setVars();					}					break;				    case 39: // KEY right					if (++x < 7)						ne = cal.ar_days[y][x];					else {						x = 0;						K = 40;						continue;					}					break;				    case 40: // KEY down					if (++y < cal.ar_days.length)						ne = cal.ar_days[y][x];					else {						nextMonth();						setVars();					}					break;				}				break;			}			if (ne) {				if (!ne.disabled)					Calendar.cellClick(ne);				else if (prev)					prevMonth();				else					nextMonth();			}		}		break;	    case 13: // KEY enter		if (act)			Calendar.cellClick(cal.currentDateEl, ev);		break;	    default:		return false;	}	return Calendar.stopEvent(ev);};Calendar.prototype._init = function (firstDayOfWeek, date) {	var today = new Date(),		TY = today.getFullYear(),		TM = today.getMonth(),		TD = today.getDate();	this.table.style.visibility = "hidden";	var year = date.getFullYear();	if (year < this.minYear) {		year = this.minYear;		date.setFullYear(year);	} else if (year > this.maxYear) {		year = this.maxYear;		date.setFullYear(year);	}	this.firstDayOfWeek = firstDayOfWeek;	this.date = new Date(date);	var month = date.getMonth();	var mday = date.getDate();	var no_days = date.getMonthDays();	date.setDate(1);	var day1 = (date.getDay() - this.firstDayOfWeek) % 7;	if (day1 < 0)		day1 += 7;	date.setDate(-day1);	date.setDate(date.getDate() + 1);	var row = this.tbody.firstChild;	var MN = Calendar._SMN[month];	var ar_days = this.ar_days = new Array();	var weekend = Calendar._TT["WEEKEND"];	var dates = this.multiple ? (this.datesCells = {}) : null;	for (var i = 0; i < 6; ++i, row = row.nextSibling) {		var cell = row.firstChild;		if (this.weekNumbers) {			cell.className = "day wn";			cell.innerHTML = date.getWeekNumber();			cell = cell.nextSibling;		}		row.className = "daysrow";		var hasdays = false, iday, dpos = ar_days[i] = [];		for (var j = 0; j < 7; ++j, cell = cell.nextSibling, date.setDate(iday + 1)) {			iday = date.getDate();			var wday = date.getDay();			cell.className = "day";			cell.pos = i << 4 | j;			dpos[j] = cell;			var current_month = (date.getMonth() == month);			if (!current_month) {				if (this.showsOtherMonths) {					cell.className += " othermonth";					cell.otherMonth = true;				} else {					cell.className = "emptycell";					cell.innerHTML = "&nbsp;";					cell.disabled = true;					continue;				}			} else {				cell.otherMonth = false;				hasdays = true;			}			cell.disabled = false;			cell.innerHTML = this.getDateText ? this.getDateText(date, iday) : iday;			if (dates)				dates[date.print("%Y%m%d")] = cell;			if (this.getDateStatus) {				var status = this.getDateStatus(date, year, month, iday);				if (this.getDateToolTip) {					var toolTip = this.getDateToolTip(date, year, month, iday);					if (toolTip)						cell.title = toolTip;				}				if (status === true) {					cell.className += " disabled";					cell.disabled = true;				} else {					if (/disabled/i.test(status))						cell.disabled = true;					cell.className += " " + status;				}			}			if (!cell.disabled) {				cell.caldate = new Date(date);				cell.ttip = "_";				if (!this.multiple && current_month

⌨️ 快捷键说明

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