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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? calendar.js

?? 采用jsp+javabean實(shí)現(xiàn)功能
?? JS
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
				if (hasToday && (iday == todayDate)) {
					cell.className += " today";
					cell.ttip += Calendar._TT["PART_TODAY"];
				}
				if (wday == SAT || wday == SUN) {
					cell.className += " weekend";
				}
			}
			++iday;
			((++wday) ^ 7) || (wday = 0);
			cell = cell.nextSibling;
		}
		row = row.nextSibling;
	}
	this.ar_days = ar_days;
	this.title.firstChild.data = Calendar._MN[month] + ", " + year;
	// PROFILE
	// this.tooltips.firstChild.data = "Generated in " + ((new Date()) - today) + " ms";
};

/**
 *  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.mondayFirst, 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.mondayFirst, this.date);
};

/** Modifies the "mondayFirst" parameter (EU/US style). */
Calendar.prototype.setMondayFirst = function (mondayFirst) {
	this._init(mondayFirst, 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.setDisabledHandler = function (unaryFunction) {
	this.checkDisabled = 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;
};

/**
 *  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) {
	if (!window.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.calendar.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.calendar = 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
 *  the calendar element style -- position property -- this might be relative
 *  to the parent's containing rectangle).
 */
Calendar.prototype.showAt = function (x, y) {
	var s = this.element.style;
	s.left = x + "px";
	s.top = y + "px";
	this.show();
};

/** Shows the calendar near a given element. */
Calendar.prototype.showAtElement = function (el, opts) {
	var p = Calendar.getAbsolutePos(el);
	if (!opts || typeof opts != "string") {
		this.showAt(p.x, p.y + el.offsetHeight);
		return true;
	}
	this.show();
	var w = this.element.offsetWidth;
	var h = this.element.offsetHeight;
	this.hide();
	var valign = opts.substr(0, 1);
	var halign = "l";
	if (opts.length > 1) {
		halign = opts.substr(1, 1);
	}
	// vertical alignment
        switch (valign) {
	    case "T": p.y -= h; break;
	    case "B": p.y += el.offsetHeight; break;
	    case "C": p.y += (el.offsetHeight - h) / 2; break;
	    case "t": p.y += el.offsetHeight - h; break;
	    case "b": break; // already there
        }
	// horizontal alignment
	switch (halign) {
	    case "L": p.x -= w; break;
	    case "R": p.x += el.offsetWidth; break;
	    case "C": p.x += (el.offsetWidth - w) / 2; break;
	    case "r": p.x += el.offsetWidth - w; break;
	    case "l": break; // already there
	}
	if(p.x<=0){
		p.x = 3;
	}
	this.showAt(p.x, p.y);
};

/** Customizes the date format. */
Calendar.prototype.setDateFormat = function (str) {
	this.dateFormat = str;
};

/** Customizes the tooltip date format. */
Calendar.prototype.setTtDateFormat = function (str) {
	this.ttDateFormat = str;
};

/**
 *  Tries to identify the date represented in a string.  If successful it also
 *  calls this.setDate which moves the calendar to the given date.
 */
Calendar.prototype.parseDate = function (str, fmt) {
	var y = 0;
	var m = -1;
	var d = 0;
	var a = str.split(/\W+/);
	if (!fmt) {
		fmt = this.dateFormat;
	}
	var b = fmt.split(/\W+/);
	var i = 0, j = 0;
	for (i = 0; i < a.length; ++i) {
		if (b[i] == "D" || b[i] == "DD") {
			continue;
		}
		if (b[i] == "d" || b[i] == "dd") {
			d = parseInt(a[i], 10);
		}
		if (b[i] == "m" || b[i] == "mm") {
			m = parseInt(a[i], 10) - 1;
		}
		if ((b[i] == "y") || (b[i] == "yy")) {
			y = parseInt(a[i], 10);
			(y < 100) && (y += (y > 29) ? 1900 : 2000);
		}
		if (b[i] == "M" || b[i] == "MM") {
			for (j = 0; j < 12; ++j) {
				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
			}
		}
	}
	if (y != 0 && m != -1 && d != 0) {
		this.setDate(new Date(y, m, d));
		return;
	}
	y = 0; m = -1; d = 0;
	for (i = 0; i < a.length; ++i) {
		if (a[i].search(/[a-zA-Z]+/) != -1) {
			var t = -1;
			for (j = 0; j < 12; ++j) {
				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
			}
			if (t != -1) {
				if (m != -1) {
					d = m+1;
				}
				m = t;
			}
		} else if (parseInt(a[i], 10) <= 12 && m == -1) {
			m = a[i]-1;
		} else if (parseInt(a[i], 10) > 31 && y == 0) {
			y = parseInt(a[i], 10);
			(y < 100) && (y += (y > 29) ? 1900 : 2000);
		} else if (d == 0) {
			d = a[i];
		}
	}
	if (y == 0) {
		var today = new Date();
		y = today.getFullYear();
	}
	if (m != -1 && d != 0) {
		this.setDate(new Date(y, m, d));
	}
};

Calendar.prototype.hideShowCovered = function () {
	function getStyleProp(obj, style){
		var value = obj.style[style];
		if (!value) {
			if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
				value = document.defaultView.
					getComputedStyle(obj, "").getPropertyValue(style);
			} else if (obj.currentStyle) { // IE
				value = obj.currentStyle[style];
			} else {
				value = obj.style[style];
			}
		}
		return value;
	};

	var tags = new Array("applet");
	var el = this.element;

	var p = Calendar.getAbsolutePos(el);
	var EX1 = p.x;
	var EX2 = el.offsetWidth + EX1;
	var EY1 = p.y;
	var EY2 = el.offsetHeight + EY1;

	for (var k = tags.length; k > 0; ) {
		var ar = document.getElementsByTagName(tags[--k]);
		var cc = null;

		for (var i = ar.length; i > 0;) {
			cc = ar[--i];

			p = Calendar.getAbsolutePos(cc);
			var CX1 = p.x;
			var CX2 = cc.offsetWidth + CX1;
			var CY1 = p.y;
			var CY2 = cc.offsetHeight + CY1;

			if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
				if (!cc.__msh_save_visibility) {
					cc.__msh_save_visibility = getStyleProp(cc, "visibility");
				}
				cc.style.visibility = cc.__msh_save_visibility;
			} else {
				if (!cc.__msh_save_visibility) {
					cc.__msh_save_visibility = getStyleProp(cc, "visibility");
				}
				cc.style.visibility = "hidden";
			}
		}
	}
};

/** Internal function; it displays the bar with the names of the weekday. */
Calendar.prototype._displayWeekdays = function () {
	var MON = this.mondayFirst ? 0 : 1;
	var SUN = this.mondayFirst ? 6 : 0;
	var SAT = this.mondayFirst ? 5 : 6;
	var cell = this.firstdayname;
	for (var i = 0; i < 7; ++i) {
		cell.className = "day name";
		if (!i) {
			cell.ttip = this.mondayFirst ? Calendar._TT["SUN_FIRST"] : Calendar._TT["MON_FIRST"];
			cell.navtype = 100;
			cell.calendar = this;
			Calendar._add_evs(cell);
		}
		if (i == SUN || i == SAT) {
			Calendar.addClass(cell, "weekend");
		}
		cell.firstChild.data = Calendar._DN3[i + 1 - MON];
		cell = cell.nextSibling;
	}
};

/** Internal function.  Hides all combo boxes that might be displayed. */
Calendar.prototype._hideCombos = function () {
	this.monthsCombo.style.display = "none";
	this.yearsCombo.style.display = "none";
};

/** Internal function.  Starts dragging the element. */
Calendar.prototype._dragStart = function (ev) {
	if (this.dragging) {
		return;
	}
	this.dragging = true;
	var posX;
	var posY;
	if (Calendar.is_ie) {
		posY = window.event.clientY + document.body.scrollTop;
		posX = window.event.clientX + document.body.scrollLeft;
	} else {
		posY = ev.clientY + window.scrollY;
		posX = ev.clientX + window.scrollX;
	}
	var st = this.element.style;
	this.xOffs = posX - parseInt(st.left);
	this.yOffs = posY - parseInt(st.top);
	with (Calendar) {
		addEvent(document, "mousemove", calDragIt);
		addEvent(document, "mouseover", stopEvent);
		addEvent(document, "mouseup", calDragEnd);
	}
};

// BEGIN: DATE OBJECT PATCHES

/** Adds the number of days array to the Date object. */
Date._MD = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

/** Constants used for time computations */
Date.SECOND = 1000 /* milliseconds */;
Date.MINUTE = 60 * Date.SECOND;
Date.HOUR   = 60 * Date.MINUTE;
Date.DAY    = 24 * Date.HOUR;
Date.WEEK   =  7 * Date.DAY;

/** Returns the number of days in the current month */
Date.prototype.getMonthDays = function(month) {
	var year = this.getFullYear();
	if (typeof month == "undefined") {
		month = this.getMonth();
	}
	if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
		return 29;
	} else {
		return Date._MD[month];
	}
};

/** Returns the number of the week.  The algorithm was "stolen" from PPK's
 * website, hope it's correct :) http://www.xs4all.nl/~ppk/js/week.html */
Date.prototype.getWeekNumber = function() {
	var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
	var then = new Date(this.getFullYear(), 0, 1, 0, 0, 0);
	var time = now - then;
	var day = then.getDay();
	(day > 3) && (day -= 4) || (day += 3);
	return Math.round(((time / Date.DAY) + day) / 7);
};

/** Checks dates equality (ignores time) */
Date.prototype.equalsTo = function(date) {
	return ((this.getFullYear() == date.getFullYear()) &&
		(this.getMonth() == date.getMonth()) &&
		(this.getDate() == date.getDate()));
};

/** Prints the date in a string according to the given format. */
Date.prototype.print = function (frm) {
	var str = new String(frm);
	var m = this.getMonth();
	var d = this.getDate();
	var y = this.getFullYear();
	var wn = this.getWeekNumber();
	var w = this.getDay();
	var s = new Array();
	//s["d"] = d;
	s["d"] = (d < 10) ? ("0" + d) : d;
	s["dd"] = (d < 10) ? ("0" + d) : d;
	//s["m"] = 1+m;
	s["m"] = (m < 9) ? ("0" + (1+m)) : (1+m);
	s["mm"] = (m < 9) ? ("0" + (1+m)) : (1+m);
	s["y"] = y;
	s["yy"] = new String(y).substr(2, 2);
	s["w"] = wn;
	s["ww"] = (wn < 10) ? ("0" + wn) : wn;
	with (Calendar) {
		s["D"] = _DN3[w];
		s["DD"] = _DN[w];
		s["M"] = _MN3[m];
		s["MM"] = _MN[m];
	}
	var re = /(.*)(\W|^)(d|dd|m|mm|y|yy|MM|M|DD|D|w|ww)(\W|$)(.*)/;
	while (re.exec(str) != null) {
		str = RegExp.$1 + RegExp.$2 + s[RegExp.$3] + RegExp.$4 + RegExp.$5;
	}
	return str;
};

// END: DATE OBJECT PATCHES

// global object that remembers the calendar
window.calendar = null;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区在线| 欧美v日韩v国产v| 亚洲国产日韩在线一区模特| 日韩精品中文字幕一区二区三区| 另类小说综合欧美亚洲| 中文字幕一区二区5566日韩| 精品久久国产字幕高潮| 色综合天天综合在线视频| 精品一区二区三区不卡| 中文字幕亚洲精品在线观看 | 91麻豆精品国产综合久久久久久| 国产精品一级黄| 青青草视频一区| 婷婷开心久久网| 亚洲午夜视频在线| 亚洲精品欧美在线| 成人免费在线视频| 亚洲国产精品成人综合| 久久久国际精品| 欧美一级片在线| 在线成人高清不卡| 欧美日韩www| 在线观看亚洲a| 成人av一区二区三区| 久久精品国产99| 毛片av中文字幕一区二区| 午夜精品成人在线| 天堂久久一区二区三区| 亚洲v中文字幕| 日韩不卡一区二区| 久久国产尿小便嘘嘘| 久久99国产精品免费网站| 麻豆精品在线看| 精品一区在线看| 成人在线视频一区| 一本大道久久a久久综合婷婷| 色久优优欧美色久优优| 色婷婷av一区二区| 欧美一级二级三级蜜桃| 亚洲国产一区视频| 国内精品国产成人| 高清不卡一二三区| 91成人在线精品| 欧美精品自拍偷拍动漫精品| 精品精品国产高清一毛片一天堂| 久久亚洲一级片| 亚洲日本一区二区三区| 免费av成人在线| 国产成人精品一区二区三区四区| 在线免费观看成人短视频| 日韩一级大片在线| 日本一区二区三区高清不卡| 亚洲国产欧美在线人成| 国产在线播放一区| 成人妖精视频yjsp地址| 欧美顶级少妇做爰| 国产精品久久午夜| 日韩影院免费视频| 色老汉一区二区三区| 中文字幕亚洲在| 96av麻豆蜜桃一区二区| 亚洲人成伊人成综合网小说| av在线综合网| 日韩伦理电影网| 91性感美女视频| 亚洲精品国产视频| 欧美日韩中文一区| 亚洲小说欧美激情另类| 欧美中文字幕一区二区三区亚洲| 亚洲男女毛片无遮挡| 色婷婷综合久久久中文一区二区 | 久久精品亚洲乱码伦伦中文| 国产精品1区二区.| 自拍偷拍欧美激情| 欧美专区亚洲专区| 免费高清在线一区| 26uuu精品一区二区三区四区在线| 久久精品999| 国产精品成人免费精品自在线观看| 欧美亚日韩国产aⅴ精品中极品| 一区二区三区欧美在线观看| 日韩欧美国产wwwww| 国产一区二区三区av电影 | 亚洲视频在线一区| 欧美一区二区成人| 国产精品一区二区91| 一区二区在线免费| 亚洲精品一区二区三区香蕉| 成人在线一区二区三区| 男女性色大片免费观看一区二区| 久久久蜜臀国产一区二区| 色av综合在线| 大陆成人av片| 久久se精品一区精品二区| 一片黄亚洲嫩模| 国产日韩亚洲欧美综合| 欧美日韩精品一二三区| 风间由美一区二区三区在线观看 | www.亚洲精品| 国产一区二区免费视频| 亚洲成人一区二区在线观看| 国产精品黄色在线观看| 精品国精品国产| 欧美一区二区三区喷汁尤物| 99麻豆久久久国产精品免费优播| 免费观看30秒视频久久| 亚洲国产精品久久人人爱| 亚洲欧美一区二区视频| 国产网站一区二区三区| 日韩免费性生活视频播放| 欧美优质美女网站| bt欧美亚洲午夜电影天堂| 国产精品一区二区免费不卡| 九色porny丨国产精品| 日本美女一区二区| 午夜精品爽啪视频| 亚洲综合色婷婷| 亚洲伊人伊色伊影伊综合网| 一区二区在线观看视频| 亚洲一区二区三区四区五区黄| 一区二区免费在线| 一区二区在线观看不卡| 一区二区三区日韩精品| 五月综合激情日本mⅴ| 日韩电影一区二区三区| 韩国女主播成人在线观看| 国产激情一区二区三区桃花岛亚洲| 国产酒店精品激情| 99精品一区二区三区| 欧美日韩国产小视频在线观看| 欧美日韩性生活| 久久影院电视剧免费观看| 最新久久zyz资源站| 天堂一区二区在线免费观看| 九九精品视频在线看| av电影一区二区| 91麻豆精品国产| 国产亚洲欧美在线| 亚洲摸摸操操av| 久久国产视频网| 91美女福利视频| 国产亚洲美州欧州综合国| 一区二区三区色| 成人综合在线视频| 91精品国产入口| 一区二区三区欧美| 成人深夜视频在线观看| 欧美岛国在线观看| 亚洲一区在线播放| 不卡av免费在线观看| 欧美一卡二卡三卡四卡| 亚洲男人的天堂一区二区| 国产成人综合在线| 欧美一区二区精品| 亚洲欧美日韩综合aⅴ视频| 国精品**一区二区三区在线蜜桃 | 欧美性猛交xxxx黑人交| 日本一区二区不卡视频| 精品中文字幕一区二区小辣椒| 激情欧美一区二区三区在线观看| 91麻豆国产福利在线观看| 中文字幕成人av| 午夜影院久久久| 97se亚洲国产综合自在线不卡| 国产亚洲欧美日韩俺去了| 日本成人超碰在线观看| 欧美图区在线视频| 国产午夜精品福利| 久久99国产精品成人| 7777女厕盗摄久久久| 国产精品久久久久久亚洲毛片| 日韩高清欧美激情| 在线成人av影院| 日本欧美一区二区在线观看| 51午夜精品国产| 激情综合网av| 国产亚洲精品福利| 久久www免费人成看片高清| 日韩三级视频中文字幕| 毛片一区二区三区| 国产人成亚洲第一网站在线播放 | 亚洲欧美乱综合| 91美女在线看| 午夜激情综合网| 日韩欧美的一区二区| eeuss鲁一区二区三区| 一区二区国产盗摄色噜噜| 欧美日韩专区在线| 蜜桃一区二区三区四区| 欧美韩国日本不卡| 欧美精品一二三四| 9久草视频在线视频精品| 亚洲综合色区另类av| 国产欧美日韩视频一区二区| 91日韩在线专区| 国产一区二区精品久久| 午夜精品久久久久久久久久久| 久久久久久黄色| 91精品国产一区二区人妖| 成人高清视频在线观看|