亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? calendar.js

?? 一個oa系統
?? JS
?? 第 1 頁 / 共 4 頁
字號:
				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);
};

/** keyboard navigation, only for popup calendars */
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);
};

/**
 *  (RE)Initializes the calendar to the given date and firstDayOfWeek
 */
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();

	// calendar voodoo for computing the first day that would actually be
	// displayed in the calendar, even if it's from the previous month.
	// WARNING: this is magic. ;-)
	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
				    && iday == mday && this.hiliteToday) {
					cell.className += " selected";
					this.currentDateEl = cell;
				}
				if (date.getFullYear() == TY &&
				    date.getMonth() == TM &&
				    iday == TD) {
					cell.className += " today";
					cell.ttip += Calendar._TT["PART_TODAY"];
				}
				if (weekend.indexOf(wday.toString()) != -1)
					cell.className += cell.otherMonth ? " oweekend" : " weekend";
			}
		}
		if (!(hasdays || this.showsOtherMonths))
			row.className = "emptyrow";
	}
	this.title.innerHTML = Calendar._MN[month] + ", " + year;
	this.onSetTime();
	this.table.style.visibility = "visible";
	this._initMultipleDates();
	// PROFILE
	// this.tooltips.innerHTML = "Generated in " + ((new Date()) - today) + " ms";
};

Calendar.prototype._initMultipleDates = function() {
	if (this.multiple) {
		for (var i in this.multiple) {
			var cell = this.datesCells[i];
			var d = this.multiple[i];
			if (!d)
				continue;
			if (cell)
				cell.className += " selected";
		}
	}
};

Calendar.prototype._toggleMultipleDate = function(date) {
	if (this.multiple) {
		var ds = date.print("%Y%m%d");
		var cell = this.datesCells[ds];
		if (cell) {
			var d = this.multiple[ds];
			if (!d) {
				Calendar.addClass(cell, "selected");
				this.multiple[ds] = date;
			} else {
				Calendar.removeClass(cell, "selected");
				delete this.multiple[ds];
			}
		}
	}
};

Calendar.prototype.setDateToolTipHandler = function (unaryFunction) {
	this.getDateToolTip = unaryFunction;
};

/**
 *  Calls _init function above for going to a certain date (but only if the
 *  date is different than the currently selected one).
 */
Calendar.prototype.setDate = function (date) {
	if (!date.equalsTo(this.date)) {
		this._init(this.firstDayOfWeek, date);
	}
};

/**
 *  Refreshes the calendar.  Useful if the "disabledHandler" function is
 *  dynamic, meaning that the list of disabled date can change at runtime.
 *  Just * call this function if you think that the list of disabled dates
 *  should * change.
 */
Calendar.prototype.refresh = function () {
	this._init(this.firstDayOfWeek, this.date);
};

/** Modifies the "firstDayOfWeek" parameter (pass 0 for Synday, 1 for Monday, etc.). */
Calendar.prototype.setFirstDayOfWeek = function (firstDayOfWeek) {
	this._init(firstDayOfWeek, this.date);
	this._displayWeekdays();
};

/**
 *  Allows customization of what dates are enabled.  The "unaryFunction"
 *  parameter must be a function object that receives the date (as a JS Date
 *  object) and returns a boolean value.  If the returned value is true then
 *  the passed date will be marked as disabled.
 */
Calendar.prototype.setDateStatusHandler = Calendar.prototype.setDisabledHandler = function (unaryFunction) {
	this.getDateStatus = unaryFunction;
};

/** Customization of allowed year range for the calendar. */
Calendar.prototype.setRange = function (a, z) {
	this.minYear = a;
	this.maxYear = z;
};

/** Calls the first user handler (selectedHandler). */
Calendar.prototype.callHandler = function () {
	if (this.onSelected) {
		this.onSelected(this, this.date.print(this.dateFormat));
	}
};

/** Calls the second user handler (closeHandler). */
Calendar.prototype.callCloseHandler = function () {
	if (this.onClose) {
		this.onClose(this);
	}
	this.hideShowCovered();
};

/** Removes the calendar object from the DOM tree and destroys it. */
Calendar.prototype.destroy = function () {
	var el = this.element.parentNode;
	el.removeChild(this.element);
	Calendar._C = null;
	window._dynarch_popupCalendar = null;
};

/**
 *  Moves the calendar element to a different section in the DOM tree (changes
 *  its parent).
 */
Calendar.prototype.reparent = function (new_parent) {
	var el = this.element;
	el.parentNode.removeChild(el);
	new_parent.appendChild(el);
};

// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
Calendar._checkCalendar = function(ev) {
	var calendar = window._dynarch_popupCalendar;
	if (!calendar) {
		return false;
	}
	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
	for (; el != null && el != calendar.element; el = el.parentNode);
	if (el == null) {
		// calls closeHandler which should hide the calendar.
		window._dynarch_popupCalendar.callCloseHandler();
		return Calendar.stopEvent(ev);
	}
};

/** Shows the calendar. */
Calendar.prototype.show = function () {
	var rows = this.table.getElementsByTagName("tr");
	for (var i = rows.length; i > 0;) {
		var row = rows[--i];
		Calendar.removeClass(row, "rowhilite");
		var cells = row.getElementsByTagName("td");
		for (var j = cells.length; j > 0;) {
			var cell = cells[--j];
			Calendar.removeClass(cell, "hilite");
			Calendar.removeClass(cell, "active");
		}
	}
	this.element.style.display = "block";
	this.hidden = false;
	if (this.isPopup) {
		window._dynarch_popupCalendar = this;
		Calendar.addEvent(document, "keydown", Calendar._keyEvent);
		Calendar.addEvent(document, "keypress", Calendar._keyEvent);
		Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);
	}
	this.hideShowCovered();
};

/**
 *  Hides the calendar.  Also removes any "hilite" from the class of any TD
 *  element.
 */
Calendar.prototype.hide = function () {
	if (this.isPopup) {
		Calendar.removeEvent(document, "keydown", Calendar._keyEvent);
		Calendar.removeEvent(document, "keypress", Calendar._keyEvent);
		Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);
	}
	this.element.style.display = "none";
	this.hidden = true;
	this.hideShowCovered();
};

/**
 *  Shows the calendar at a given absolute position (beware that, depending on

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情免费电影网址| 久久成人免费日本黄色| 国产网红主播福利一区二区| 欧美一区二区三区公司| 欧美日韩免费观看一区二区三区| 99久久精品免费观看| 91麻豆文化传媒在线观看| 色婷婷综合久久久中文一区二区| 色婷婷av一区| 91麻豆精品国产无毒不卡在线观看| 欧美亚洲一区三区| 欧美精品v国产精品v日韩精品 | 国产精品视频你懂的| 国产日本欧洲亚洲| 中文字幕一区日韩精品欧美| 亚洲男同1069视频| 三级精品在线观看| 久久av老司机精品网站导航| 国产白丝网站精品污在线入口| 大胆欧美人体老妇| 色呦呦网站一区| 4438x成人网最大色成网站| 精品国产区一区| 中文字幕在线不卡一区二区三区| 婷婷夜色潮精品综合在线| 美女视频黄 久久| 风间由美中文字幕在线看视频国产欧美 | 亚洲一区二区三区中文字幕 | 欧美性淫爽ww久久久久无| 欧美日韩一区二区三区四区五区| 日韩视频免费观看高清完整版在线观看 | 成人午夜电影小说| 欧美午夜精品理论片a级按摩| 日韩你懂的在线播放| 国产午夜久久久久| 午夜精品久久久久| 成人福利电影精品一区二区在线观看| 91国产成人在线| 久久久久九九视频| 日韩精品乱码av一区二区| 国产成人免费在线观看不卡| 欧美写真视频网站| 欧美激情一区二区三区全黄| 视频一区在线视频| av亚洲精华国产精华精| 日韩欧美久久一区| 一区二区三区国产精华| 国产乱淫av一区二区三区| 欧美精品自拍偷拍| 亚洲欧美激情视频在线观看一区二区三区| 日韩主播视频在线| 在线观看免费成人| 日本一区二区三区在线观看| 美美哒免费高清在线观看视频一区二区 | 欧美日韩夫妻久久| 亚洲午夜免费福利视频| 成人av在线资源网站| 精品国产免费一区二区三区香蕉| 亚洲高清在线精品| 一本久久精品一区二区| 中文字幕一区二区三区在线观看| 国产一区亚洲一区| 欧美电视剧免费观看| 日韩电影网1区2区| 7777女厕盗摄久久久| 丝袜美腿亚洲一区| 欧美乱妇15p| 午夜电影一区二区三区| 欧美日韩性生活| 亚洲愉拍自拍另类高清精品| 色婷婷综合久久久久中文| 综合久久给合久久狠狠狠97色| 大桥未久av一区二区三区中文| xf在线a精品一区二区视频网站| 日韩成人dvd| 日韩情涩欧美日韩视频| 久久精品72免费观看| 欧美成人国产一区二区| 黄页网站大全一区二区| 久久亚洲精品小早川怜子| 国产精品资源站在线| 久久人人爽爽爽人久久久| 国产一区在线观看视频| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲美女偷拍久久| 在线免费不卡电影| 亚洲高清在线视频| 91精品国产综合久久久久久久| 天天亚洲美女在线视频| 欧美一卡2卡3卡4卡| 国产在线麻豆精品观看| 国产视频在线观看一区二区三区 | 高清成人在线观看| 中文字幕五月欧美| 欧美午夜影院一区| 精品一区二区影视| 一区二区中文视频| 欧美日韩一区二区三区免费看| 日本成人在线不卡视频| 久久人人爽爽爽人久久久| 处破女av一区二区| 亚洲国产日日夜夜| 精品国产三级a在线观看| 91片黄在线观看| 蜜臀久久99精品久久久久宅男| 久久亚洲精品国产精品紫薇| 一本大道久久a久久精二百| 日产精品久久久久久久性色| 久久一区二区视频| 欧美在线|欧美| 国产一区二区伦理片| 亚洲制服丝袜av| 国产日韩v精品一区二区| 日韩免费视频线观看| 99久久婷婷国产综合精品电影| 午夜av一区二区三区| 国产精品欧美极品| 这里是久久伊人| 91美女片黄在线| 国产精品资源在线观看| 五月天丁香久久| 国产精品久久久久久久久免费相片 | 99久久国产综合精品麻豆| 日韩精品国产欧美| 国产精品人人做人人爽人人添| 91精品免费观看| 色偷偷成人一区二区三区91| 极品少妇一区二区三区精品视频| 亚洲美腿欧美偷拍| 国产精品欧美久久久久一区二区| 日韩一区二区不卡| 欧美日韩精品欧美日韩精品| 97久久超碰国产精品电影| 国产福利一区在线| 国内成+人亚洲+欧美+综合在线 | 欧美成va人片在线观看| 91美女片黄在线观看91美女| 国产91综合网| 国产高清久久久| 韩国三级在线一区| 人人超碰91尤物精品国产| 亚洲一区二区欧美| 日韩理论在线观看| 日本一区二区久久| 欧美韩国日本一区| 久久蜜桃av一区精品变态类天堂| 91精品国产91综合久久蜜臀| 欧美喷潮久久久xxxxx| 欧美日韩高清一区| 在线91免费看| 日韩三级在线观看| 日韩欧美中文一区| 精品国产在天天线2019| 精品国内片67194| 26uuu久久天堂性欧美| 久久久久九九视频| 国产精品久久久久一区二区三区 | 在线播放91灌醉迷j高跟美女| 色激情天天射综合网| 欧美在线不卡视频| 欧美久久久久久久久中文字幕| 欧美色综合影院| 91精品国模一区二区三区| 91精品欧美一区二区三区综合在 | 捆绑变态av一区二区三区| 精品无码三级在线观看视频| 蜜臀av一区二区在线免费观看| 美日韩一区二区| 国产精品一区二区你懂的| 成人av综合在线| 欧洲国内综合视频| 91精品婷婷国产综合久久性色| 精品国产91久久久久久久妲己| 国产亚洲一区字幕| 1000部国产精品成人观看| 亚洲精品成人少妇| 亚洲午夜羞羞片| 精品一二三四区| hitomi一区二区三区精品| 91国偷自产一区二区使用方法| 欧美裸体bbwbbwbbw| 久久综合九色欧美综合狠狠| 亚洲欧洲美洲综合色网| 天堂精品中文字幕在线| 国产毛片精品国产一区二区三区| 成av人片一区二区| 91精品国产一区二区三区香蕉| 国产亚洲福利社区一区| 夜夜夜精品看看| 国产在线播精品第三| 一本到一区二区三区| 日韩欧美三级在线| 亚洲女人****多毛耸耸8| 麻豆中文一区二区| 91亚洲精品久久久蜜桃| 日韩一卡二卡三卡国产欧美| 亚洲丝袜美腿综合| 国产一区二区三区免费在线观看| 91久久精品国产91性色tv| 久久老女人爱爱|