var xlfqs = window.xlfqs || {};

xlfqs.global = this;

(function(xlfqvar) {
	function $() {
		var xlfqvar = [],$;
		for (var A = 0; A < arguments.length; A++) {
			$ = arguments[A];
			if (typeof $ == "string") $ = document.getElementById($);
			xlfqvar.push($)
		}
		return xlfqvar.length < 2 ? xlfqvar[0] : xlfqvar
	}
	xlfqvar.mixin = function(xlfqret, xlfqvar) {
		for (var A in xlfqvar) xlfqret[A] = xlfqvar[A]
	};
	xlfqvar.bind = function(B, A) {
		var $ = A || xlfqvar.global;
		if (arguments.length > 2) {
			var C = Array.prototype.slice.call(arguments, 2);
			return function() {
				var xlfqvar = Array.prototype.slice.call(arguments);
				Array.prototype.unshift.apply(xlfqvar, C);
				return B.apply($, xlfqvar)
			}
		} else return function() {
			return B.apply($, arguments)
		}
	};
	xlfqvar.events = {
		element: function($) {
			return $.target || $.srcElement
		},
		map: {},
		listen: function(xlfqvar, A, B, C) {
			if (A == "keypress" && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || xlfqvar.attachEvent)) A = "keydown";
			if (xlfqvar.addEventListener) xlfqvar.addEventListener(A, B, C);
			else if (xlfqvar.attachEvent) {
				xlfqvar["e" + A + B] = B;
				xlfqvar[A + B] = function() {
					return xlfqvar["e" + A + B](window.event)
				};
				xlfqvar.attachEvent("on" + A, xlfqvar[A + B])
			}
			var $ = this.map;
			if (!$[xlfqvar]) $[xlfqvar] = [{
				type: A,
				fn: B,
				mode: C
			}];
			else $[xlfqvar].push({
				type: A,
				fn: B,
				mode: C
			})
		},
		unlisten: function(B, C, D, F) {
			if (C == "keypress" && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || B.attachEvent)) C = "keydown";
			if (B.addEventListener) B.addEventListener(C, D, F);
			else if (B.attachEvent) {
				B["e" + C + D] = D;
				B[C + D] = function() {
					return B["e" + C + D](window.event)
				};
				B.attachEvent("on" + C, B[C + D])
			}
			var xlfqvar = this.map;
			if (xlfqvar[B] && (toString.call(xlfqvar[B]) === "[object Array]")) for (var E = 0,
			A = xlfqvar[B].length; E < A; E++) {
				var $ = xlfqvar[B][E];
				if ($.type == C && $.fn == D) xlfqvar[B].splict(E, 1)
			}
		},
		unlistenAll: function(A) {
			var xlfqvar = this.map;
			if (xlfqvar[A]) for (var B = 0; B < xlfqvar[A].length; B++) {
				var $ = xlfqvar[A][B];
				this.unlisten(A, $.type, $.fn, $.mode)
			}
		}
	};
	xlfqvar.dom = {
		visible: function(xlfqvar) {
			return $(xlfqvar).style.display != "none"
		},
		hide: function() {
			for (var A = 0; A < arguments.length; A++) {
				var xlfqvar = $(arguments[A]);
				xlfqvar.style.display = "none"
			}
		},
		show: function() {
			for (var A = 0; A < arguments.length; A++) {
				var xlfqvar = $(arguments[A]);
				xlfqvar.style.display = ""
			}
		},
		getHeight: function(xlfqvar) {
			xlfqvar = $(xlfqvar);
			return xlfqvar.offsetHeight
		},
		addClassName: function(xlfqvar, A) {
			if (! (xlfqvar = $(xlfqvar))) return;
			xlfqvar.className = ("" == xlfqvar.className) ? A: (xlfqvar.className + " " + A)
		},
		removeClassName: function(xlfqvar, A) {
			if (! (xlfqvar = $(xlfqvar))) return;
			var B = new RegExp("(^| )" + A + "( |$)");
			xlfqvar.className = xlfqvar.className.replace(B, "$1").replace(/ $/, "")
		},
		attr: function($, xlfqvar, A, B) {
			var D = xlfqvar;
			if (typeof xlfqvar === "string") if (A === undefined) return $ && $.getAttribute(xlfqvar);
			else {
				D = {};
				D[xlfqvar] = A
			}
			for (var C in D) $.setAttribute(C, D[C])
		}
	};
	xlfqvar.dimension = {
		cumOffset: function(xlfqvar) {
			var $ = 0,
			A = 0;
			do {
				$ += xlfqvar.offsetTop || 0;
				A += xlfqvar.offsetLeft || 0;
				xlfqvar = xlfqvar.offsetParent
			} while ( xlfqvar );
			return [A, $]
		}
	};
	xlfqvar.SK = {
		BACKSPACE: 8,
		TAB: 9,
		RETURN: 13,
		ESC: 27,
		LEFT: 37,
		UP: 38,
		RIGHT: 39,
		DOWN: 40,
		DELETE: 46,
		PAGE_UP: 33,
		PAGE_DOWN: 34,
		END: 35,
		HOME: 36,
		INSERT: 45,
		SHIFT: 16,
		CTRL: 17,
		ALT: 18
	};
	xlfqvar.Autocomplete = function(E, A, $, C, F) {
		xlfqvar.events.listen(document, "click", xlfqvar.bind(this.hideOnDoc, this));
		xlfqvar.events.listen(document, "blur", xlfqvar.bind(this.hideOnDoc, this));
		this._dataCache = {};
		this.blurOptions = F || {};
		this.objName = this.defSugName;
		if (A) this.objName = A;
		this.isIE = (navigator && navigator.userAgent.toLowerCase().indexOf("msie") != -1);
		this.cookieDomain = document.domain;
		this.hideClose = false;
		if ($) this.hideClose = true;
		this.box = document.getElementById(E);
		xlfqvar.events.listen(this.box, "keypress", xlfqvar.bind(this.onkeydown, this));
		var B = this;
		this.box.onblur = function($) {
			B.hide($);
			if (B.blurOptions.onblur) B.blurOptions.onblur()
		};
		xlfqvar.events.listen(this.box, "dblclick", xlfqvar.bind(this.dbClick, this));
		this.sugServUrlPost = this.S_QUERY_URL_POST;
		this.searchParamName = this.defSearchParamName;
		this.searchServ = location.pathname + '?';
		this.openInNewWindow = false;
		this.sugFlag = this.getSugStatus();
		this.clickEnabled = true;
		this.sptDiv = document.createElement("div");
		document.body.appendChild(this.sptDiv);
		this.sdiv = document.createElement("div");
		this.sdiv.style.position = "absolute";
		this.sdiv.style.zIndex = 10000;
		xlfqvar.dom.hide(this.sdiv);
		document.body.appendChild(this.sdiv);
		this.bdiv = document.createElement("div");
		this.vis = false;
		this.lastUserQuery = "";
		this.initVal = "";
		if (this.box && this.box.value != "") this.initVal = this.box.value;
		this.curUserQuery = this.initVal;
		this.upDownTag = false;
		window.onresize = xlfqvar.bind(this.winResize, this);
		this.clean();
		if (!C && this.box) this.timeoutId = setTimeout(xlfqvar.bind(this.sugReq, this), this.REQUEST_TIMEOUT)
	};
	xlfqvar.mixin(xlfqvar.Autocomplete.prototype, {
		start: function() {
			if (this.timeoutId != 0) clearTimeout(this.timeoutId);
			this.timeoutId = setTimeout(xlfqvar.bind(this.sugReq, this), this.REQUEST_TIMEOUT);
			if (this.box && this.box.value != "") {
				this.initVal = this.box.value;
				this.curUserQuery = this.initVal
			}
		},
		setObjectName: function($) {
			this.objName = $
		},
		setSearchServer: function(url) {
			this.searchServ = url + (url.indexOf('?') > -1 ? '&' : '?');
		},
		setSearchParamName: function($) {
			this.searchParamName = $
		},
		setOpenInNewWindow: function() {
			this.openInNewWindow = true
		},
		setCookieDomain: function($) {
			this.cookieDomain = $
		},
		getSearchUrl: function(data) {
			return encodeURI(this.searchServ + this.searchParamName + "=" + data + "&coding=UTF-8")
		},
		getSugQueryUrl: function(xlfqvar) {
			return encodeURI(this.sugServUrlPost + xlfqvar + "&o=" + this.objName + this.hour())
		},
		dbClick: function() {
			if (this.box.createTextRange) {
				var $ = this.box.createTextRange();
				$.moveStart("character", 0);
				$.select()
			} else if (this.box.setSelectionRange) this.box.setSelectionRange(0, this.box.value.length);
			if (this.sugFlag) {
				if (this.box.value != "") if (this.lastUserQuery == this.box.value) {
					if (this.sdiv.childNodes.length > 0) if (!this.vis) this.show();
					else this.hide();
					return
				} else this.doReq()
			} else if (this.box.value != "") this.insertSugHint()
		},
		winResize: function() {
			if (this.vis) this.show()
		},
		onkeydown: function(A) {
			if (A.ctrlKey) return true;
			var $ = xlfqvar.SK;
			switch (A.keyCode) {
			case $.PAGE_UP:
			case $.PAGE_DOWN:
			case $.END:
			case $.HOME:
			case $.INSERT:
			case $.CTRL:
			case $.ALT:
			case $.LEFT:
			case $.RIGHT:
			case $.SHIFT:
			case $.TAB:
				return true;
			case $.ESC:
				this.hide();
				return false;
			case $.UP:
				if (this.vis && this.sugFlag) {
					this.upDownTag = true;
					this.up()
				} else {
					if (this.sdiv.childNodes.length > 1) if (this.lastUserQuery == this.box.value) if (this.sugFlag) {
						this.show();
						return false
					}
					if (this.box.value != "") this.doReq()
				}
				if (this.isIE) A.returnValue = false;
				else A.preventDefault();
				return false;
			case $.DOWN:
				if (this.vis && this.sugFlag) {
					this.upDownTag = true;
					this.down()
				} else {
					if (this.sdiv.childNodes.length > 1) if (this.lastUserQuery == this.box.value) if (this.sugFlag) {
						this.show();
						return false
					}
					if (this.box.value != "") this.doReq()
				}
				if (this.isIE) A.returnValue = false;
				else A.preventDefault();
				return false;
			case $.RETURN:
				if (this.vis && this.curNodeIdx > -1) if (!this.select()) {
					if (this.isIE) A.returnValue = false;
					else A.preventDefault();
					return false
				}
				return true;
			case $.BACKSPACE:
				if (this.box.value.length == 1) this.curUserQuery = "";
			default:
				this.upDownTag = false;
				return true
			}
		},
		sugReq: function() {
			if (document.activeElement && document.activeElement != this.box);
			else if (this.box.value != "" && this.box.value != this.initVal) {
				if (this.lastUserQuery != this.box.value) if (!this.upDownTag) this.doReq()
			} else if (this.lastUserQuery != "") {
				this.lastUserQuery = "";
				if (this.vis) {
					this.hide();
					this.clean()
				}
			}
			if (this.timeoutId != 0) clearTimeout(this.timeoutId);
			this.timeoutId = setTimeout(xlfqvar.bind(this.sugReq, this), this.REQUEST_TIMEOUT)
		},
		select: function($) {
			if (this.getCurNode()) {
				this.setCookie("sbt", (new Date()).getTime(), 365);
				var B = this.getCurNode().getAttribute(this.ITEM_TYPE),
				xlfqvar = this.getElemAttr(this.getCurNode(), this.ITEM_QUERY);
				if (B == "1") {
					xlfqvar = this.getElemAttr(this.getCurNode(), this.ITEM_LINK);
					if(xlfqvar.indexOf("&coding=") < 0){
						xlfqvar += (xlfqvar.indexOf('?')<0?'?':'&') + "coding=UTF-8";
					}
					this.hide();
					if (this.openInNewWindow) window.open(xlfqvar, "_blank");
					else document.location = xlfqvar
				} else {
					try {
						if ($) {
							this.curUserQuery = xlfqvar;
							if (!this.openInNewWindow) this.box.value = xlfqvar
						} else {
							if (this.box.value != xlfqvar) return true;
							this.curUserQuery = xlfqvar;
							xlfqvar = this.box.value
						}
						this.hide();
						var A = this.getSearchUrl(xlfqvar);
						if (this.openInNewWindow) window.open(A, "_blank");
						else document.location = A
					} catch($) {}
				}
			}
			return false
		},
		doReq: function() {
			if (!this.sugFlag) return;
			this.initVal = "";
			this.curUserQuery = this.box.value;
			var boxval = this.box.value;
			this.lastUserQuery = this.box.value;
			if (this._dataCache[boxval]) {
				this.updateCall(this._dataCache[boxval]);
				return
			}
			var xlfqvar = this.getSugQueryUrl(boxval);
			this.excuteCall(xlfqvar)
		},
		clean: function() {
			this.size = 0;
			this.curNodeIdx = -1;
			this.sdiv.innerHTML = "";
			this.bdiv.innerHTML = ""
		},
		onComplete: function() {
			setTimeout(xlfqvar.bind(this.updateContent, this), 5)
		},
		cleanScript: function() {
			while (this.sptDiv.childNodes.length > 0) this.sptDiv.removeChild(this.sptDiv.firstChild)
		},
		isValidNode: function($) {
			return ($.nodeType == 1)
		},
		getReqStr: function($) {
			if ($ && $.getElementsByTagName("div").length > 0) return this.getElemAttr($.getElementsByTagName("div")[0], this.QUERY_ATTR);
			return null
		},
		getElemAttr: function($, xlfqvar) {
			return this.unescape($.getAttribute(xlfqvar))
		},
		updateContent: function() {
			this.cleanScript();
			var B = this.box.value;
			if (this.bdiv.innerHTML == "") if (this.sdiv.innerHTML != "" && this.getReqStr(this.sdiv) == B) return;
			else {
				this.hide();
				this.clean();
				return
			}
			if (this.getReqStr(this.bdiv) != B) if (this.sdiv.innerHTML != "" && this.getReqStr(this.sdiv) == B) return;
			else {
				this.hide();
				return
			}
			var C, A = false,
			D = (((this.bdiv.getElementsByTagName("table"))[1]).getElementsByTagName("tr"));
			for (var E = 0; E < D.length; E++) {
				C = D[E];
				if (this.isValidNode(C)) {
					A = true;
					break
				}
			}
			if (A) {
				this.sdiv.innerHTML = this.bdiv.innerHTML;
				var $ = this.sdiv.getElementsByTagName("table");
				D = $[1].getElementsByTagName("tr");
				this.size = 0;
				this.childs = new Array();
				for (E = 0; E < D.length; E++) {
					C = D[E];
					if (this.isValidNode(C)) {
						C.setAttribute(this.ITEM_INDEX, this.size);
						xlfqvar.events.listen(C, "mousemove", xlfqvar.bind(this.mouseMoveItem, this));
						xlfqvar.events.listen(C, "mouseover", xlfqvar.bind(this.mouseOverItem, this));
						xlfqvar.events.listen(C, "mouseout", xlfqvar.bind(this.mouseOutItem, this));
						xlfqvar.events.listen(C, "click", xlfqvar.bind(this.select, this));
						this.childs.push(C);
						this.size++
					}
				}
				if (Number($.length) >= 3) this.bindATagWithMouseEvent($[2], false);
				this.show();
				this.canMouseOver = false
			} else {
				this.hide();
				this.clean()
			}
		},
		showContent: function() {
			var b = document.getElementById('query'),
			c = xlfqs.dimension.cumOffset(b);
			this.sdiv.className = "xlfqsw";
			this.sdiv.style.top = (c[1] + b.offsetHeight) + "px";
			this.sdiv.style.left = c[0] + "px";
			this.sdiv.style.cursor = "default";
			this.sdiv.style.width = b.offsetWidth - 2 + "px";
			xlfqs.dom.show(this.sdiv);
			this.vis = true;
			this.curNodeIdx = -1
		},
		show: function() {
			if (this.sdiv.childNodes.length < 1) return;
			if (this.sugFlag) if (this.getReqStr(this.sdiv) != this.box.value) return;
			this.showContent()
		},
		hide: function() {
			this.hlOff();
			xlfqvar.dom.hide(this.sdiv);
			this.curNodeIdx = -1;
			this.vis = false
		},
		hideOnDoc: function() {
			if (this.clickEnabled) {
				this.hide();
				this.clickEnabled = false;
				setTimeout(xlfqvar.bind(this.enableClick, this), 60)
			}
		},
		enableClick: function() {
			this.clickEnabled = true
		},
		mouseMoveItem: function($) {
			this.canMouseOver = true;
			this.mouseOverItem($)
		},
		mouseOverItem: function(A) {
			this.removeBoxBlur();
			if (!this.canMouseOver) {
				this.canMouseOver = true;
				return
			}
			var B = xlfqvar.events.element(A);
			while (B.parentNode && (!B.tagName || (B.getAttribute(this.ITEM_INDEX) == null))) B = B.parentNode;
			var $ = (B.tagName) ? B.getAttribute(this.ITEM_INDEX) : -1;
			if ($ == -1 || $ == this.curNodeIdx) return;
			this.hlOff();
			this.curNodeIdx = Number($);
			this.hlOn(false)
		},
		mouseOutItem: function() {
			this.hlOff();
			this.curNodeIdx = -1;
			this.revertBoxBlur()
		},
		getNode: function($) {
			if (this.childs && ($ >= 0 && $ < this.childs.length)) return this.childs[$];
			else return undefined
		},
		getCurNode: function() {
			return this.getNode(this.curNodeIdx)
		},
		hover: function($, xlfqvar) {
			if (!$) this.box.value = xlfqvar
		},
		hlOn: function(B) {
			if (this.getCurNode()) {
				var C = this.getCurNode().getElementsByTagName("td");
				this.procInstantResult();
				for (var D = 0; D < C.length; ++D) xlfqvar.dom.addClassName(C[D], this.ITEM_HIGHLIGHT_STYLE);
				try {
					var A = this.getElemAttr(this.getCurNode(), this.ITEM_QUERY);
					this.hover(!B, A)
				} catch($) {}
			}
		},
		hlOff: function() {
			if (this.getCurNode()) {
				var $ = this.getCurNode().getElementsByTagName("td");
				for (var A = 0; A < $.length; ++A) xlfqvar.dom.removeClassName($[A], this.ITEM_HIGHLIGHT_STYLE);
				this.procInstantResultBack()
			}
		},
		procInstantResult: function() {
			var xlfqvar = this.getCurNode().innerHTML;
			if (xlfqvar.indexOf("is_red") == -1) return;
			var $ = document.getElementById("is_red");
			if ($) $.style.color = "#fff";
			$ = document.getElementById("is_green");
			if ($) $.style.color = "#fff"
		},
		procInstantResultBack: function() {
			var xlfqvar = this.getCurNode().innerHTML;
			if (xlfqvar.indexOf("is_red") == -1) return;
			var $ = document.getElementById("is_red");
			if ($) $.style.color = "#c60a00";
			$ = document.getElementById("is_green");
			if ($) $.style.color = "#008000"
		},
		up: function() {
			var $ = this.curNodeIdx;
			if (this.curNodeIdx > 0) {
				this.hlOff();
				this.curNodeIdx = $ - 1;
				this.hlOn(true)
			} else if (this.curNodeIdx == 0) {
				this.hlOff();
				this.curNodeIdx = $ - 1;
				this.box.value = this.curUserQuery
			} else {
				this.curNodeIdx = this.size - 1;
				this.hlOn(true)
			}
		},
		down: function() {
			var $ = this.curNodeIdx;
			if (this.curNodeIdx < 0) {
				this.curNodeIdx = $ + 1;
				this.hlOn(true)
			} else if (this.curNodeIdx < (this.size - 1)) {
				this.hlOff();
				this.curNodeIdx = $ + 1;
				this.hlOn(true)
			} else {
				this.hlOff();
				this.curNodeIdx = -1;
				this.box.value = this.curUserQuery
			}
		},
		excuteCall: function(xlfqvar) {
			var $ = document.createElement("script");
			$.src = xlfqvar;
			this.sptDiv.appendChild($)
		},
		unescape: function($) {
			if(!$) return "";
			return $.replace(new RegExp("&quot;", "gm"), "\"").replace(new RegExp("&gt;", "gm"), ">").replace(new RegExp("&lt;", "gm"), "<").replace(new RegExp("&amp;", "gm"), "&")
		},
		escape: function(str) {
			return str.replace(new RegExp("&", "gm"), "&amp;").replace(new RegExp("<", "gm"), "&lt;").replace(new RegExp(">", "gm"), "&gt;").replace(new RegExp("\"", "gm"), "&quot;")
		},
		subLink: function($) {
			if ($.length <= 43) return $;
			return $.substr($, 40) + "..."
		},
		updateCall: function(M) {
			this.bdiv.innerHTML = "";
			if (!M || !(typeof M === "object")) {
				this.onComplete();
				return
			}
			this._dataCache[M.wd] = M;
			var Q = M.r;
			if (!Q || !Q.length) {
				this.onComplete();
				return
			}
			var C = document.createElement("div");
			C.setAttribute(this.QUERY_ATTR, this.escape(M.wd));
			C.style.display = "none";
			this.bdiv.appendChild(C);
			var V = document.createElement("div"),
			N = document.createElement("table"),
			G = document.createElement("tr"),
			R = document.createElement("td");
			xlfqvar.dom.attr(N, {
				"cellpadding": "0",
				"cellspacing": "1",
				"border": "0",
				"width": "100%",
				"bgcolor": "#979797",
				"align": "center"
			});
			xlfqvar.dom.attr(R, {
				"valign": "top"
			});
			V.appendChild(N);
			N.appendChild(G);
			G.appendChild(R);
			this.bdiv.appendChild(V);
			var A = document.createElement("table");
			R.appendChild(A);
			xlfqvar.dom.attr(A, {
				"cellpadding": "0",
				"cellspacing": "0",
				"border": "0",
				"width": "100%",
				"align": "center"
			});
			for (var L = 0,
			H = Q.length; L < H; L++) {
				var B = Q[L],
				D = document.createElement("tr"),
				I = document.createElement("td"),
				T = B.c,
				J = 0;
				if (B.t) J = B.t;
				if (J == 0) {
					I.innerHTML = this.escape(T);
					xlfqvar.dom.attr(I, {
						"class": "remindtt75",
						"bgcolor": "white",
						"align": "left"
					});
					D.appendChild(I);
					D.setAttribute(this.ITEM_QUERY, this.escape(T))
				} else if (J == 1) {
					var F = B.l,
					S = B.d,
					U = "<span id='is_red' style='color:#c60a00;font-size:16px'><u>" + this.escape(T) + "</u></span><br>";
					if (S.length > 1) U += this.escape(S) + "<br>";
					U += "<span id='is_green' style='color:#008000'>" + this.escape(this.subLink(F)) + "</span>";
					I.innerHTML = U;
					xlfqvar.dom.attr(I, {
						"class": "remindtt75",
						"bgcolor": "#ecf4f9",
						"align": "left",
						"colspan": "2"
					});
					D.appendChild(I);
					D.setAttribute(this.ITEM_QUERY, this.escape(T));
					D.setAttribute(this.ITEM_LINK, this.escape(F))
				}
				D.setAttribute(this.ITEM_TYPE, J);
				A.appendChild(D)
			}
			var E = document.createElement("table");
			R.appendChild(E);
			xlfqvar.dom.attr(E, {
				"cellpadding": "0",
				"cellspacing": "0",
				"border": "0",
				"width": "100%",
				"align": "center"
			});
			var O = document.createElement("tr"),
			$ = document.createElement("td"),
			P = document.createElement("tr"),
			K = document.createElement("td");
			E.appendChild(O);
			O.appendChild($);
			xlfqvar.dom.attr($, {
				"height": "1px",
				"bgcolor": "#dddddd",
				"colspan": "2"
			});
			E.appendChild(P);
			P.appendChild(K);
			xlfqvar.dom.attr(K, {
				"class": "jstxhuitiaoyou",
				"height": "17px",
				"bgcolor": "#ecf0ef",
				"align": "right"
			});
			K.innerHTML = "<a class=\"jstxlan\">\u5173\u95ed\u63d0\u793a\u529f\u80fd</a>";
			if (this.bdiv.childNodes.length < 2) this.bdiv.innerHTML = "";
			this.onComplete()
		},
		focusBox: function() {
			this.box.focus();
			if (this.box.createTextRange) {
				var $ = this.box.createTextRange();
				$.moveStart("character", this.box.value.length);
				$.select()
			} else if (this.box.setSelectionRange) this.box.setSelectionRange(this.box.value.length, this.box.value.length)
		},
		pressPoint: function($) {
			if (this.clickEnabled) {
				this.clickEnabled = false;
				setTimeout(xlfqvar.bind(this.enableClick, this), 20);
				this.focusBox();
				if (!this.vis) {
					if (this.sugFlag) {
						if (this.box.value == "") this.insertInputHint();
						else if (this.lastUserQuery != this.box.value) {
							this.doReq();
							setTimeout(xlfqvar.bind(this.showNoSug, this), 200)
						} else if (this.sdiv.innerHTML == "") {
							this.doReq();
							setTimeout(xlfqvar.bind(this.showNoSug, this), 200)
						} else if (this.sdiv.childNodes.length < 2) this.insertNoSugHint();
						else this.show()
					} else this.insertSugHint()
				} else this.hide()
			}
		},
		showNoSug: function() {
			if (this.sdiv.childNodes.length < 1) this.insertNoSugHint()
		},
		removeBoxBlur: function() {
			this.box.onblur = null
		},
		revertBoxBlur: function() {
			this.box.onblur = xlfqvar.bind(this.hide, this)
		},
		bindATagWithMouseEvent: function(D, A) {
			try {
				if (this.hideClose) if (D.parentNode) {
					D.parentNode.removeChild(D);
					return
				}
			} catch(B) {}
			var $ = D.getElementsByTagName("A");
			if ($.length == 0) $ = D.getElementsByTagName("a");
			var C = $[0];
			if (A) xlfqvar.events.listen(C, "click", xlfqvar.bind(this.turnOnSuggest, this));
			else xlfqvar.events.listen(C, "click", xlfqvar.bind(this.turnOffSuggest, this));
			xlfqvar.events.listen(C, "mouseover", xlfqvar.bind(this.removeBoxBlur, this));
			xlfqvar.events.listen(C, "mouseout", xlfqvar.bind(this.revertBoxBlur, this))
		},
		insertSugHint: function() {
			this.insertHint("\u63d0\u793a\u529f\u80fd\u5df2\u5173\u95ed", "\u6253\u5f00\u63d0\u793a\u529f\u80fd", true)
		},
		insertInputHint: function() {
			this.insertHint("\u5728\u641c\u7d22\u6846\u4e2d\u8f93\u5165\u5173\u952e\u5b57\uff0c\u5373\u4f1a\u5728\u8fd9\u91cc\u51fa\u73b0\u63d0\u793a", "\u5173\u95ed\u63d0\u793a\u529f\u80fd", false)
		},
		insertNoSugHint: function() {
			this.insertHint("\u6ca1\u6709\u53ef\u7528\u7684\u63d0\u793a", "\u5173\u95ed\u63d0\u793a\u529f\u80fd", false)
		},
		insertHint: function(xlfqvar, A, $) {
			this.sdiv.innerHTML = "<div>" + [this.hintCode1, xlfqvar, this.hintCode2, this.hintCode3, A, this.hintCode4].join("") + "</div>";
			var B = this.sdiv.getElementsByTagName("table")[2];
			this.bindATagWithMouseEvent(B, $);
			this.onCompleteHint()
		},
		onCompleteHint: function() {
			setTimeout(xlfqvar.bind(this.showSugHint, this, arguments[0]), 5)
		},
		showSugHint: function() {
			if (this.sdiv.childNodes.length < 1) return;
			this.showContent()
		},
		getSugStatus: function() {
			var $ = this.getCookie(this.sugCookieName);
			if ($ == "") return true;
			else return false
		},
		turnOnSuggest: function() {
			this.setCookie(this.sugCookieName, "", -1);
			this.sugFlag = true;
			this.lastUserQuery = "";
			this.initVal = this.box.value;
			this.curUserQuery = this.initVal;
			this.upDownTag = false;
			if (this.vis) this.hide();
			this.clean();
			return false
		},
		turnOffSuggest: function() {
			this.setCookie(this.sugCookieName, "1", 365);
			if (this.vis) this.hide();
			this.clean();
			this.sugFlag = false;
			return false
		},
		getCookieVal: function(xlfqvar) {
			var $ = document.cookie.indexOf(";", xlfqvar);
			if ($ == -1) $ = document.cookie.length;
			return unescape(document.cookie.substring(xlfqvar, $))
		},
		getCookie: function(A) {
			var xlfqvar = A + "=",
			$ = xlfqvar.length,
			B = document.cookie.length,
			D = 0;
			while (D < B) {
				var C = D + $;
				if (document.cookie.substring(D, C) == xlfqvar) return this.getCookieVal(C);
				D = document.cookie.indexOf(" ", D) + 1;
				if (D == 0) break
			}
			return ""
		},
		setCookie: function(C, xlfqvar, A) {
			var B = new Date(),
			$ = new Date();
			if (A == null || A == 0) A = 1;
			$.setTime(B.getTime() + 3600000 * 24 * A);
			document.cookie = C + "=" + escape(xlfqvar) + ";path=/;domain=" + this.cookieDomain + ";expires=" + $.toGMTString()
		},
		time: function() {
			return "&time=" + new Date()
		},
		hour: function() {
			return "&h=" + (new Date()).getHours()
		},
		hintCode1: "<table cellpadding=0 cellspacing=1 border=0 width=100% bgcolor=#979797 align=center><tr><td valign=top><table cellpadding=0 cellspacing=0 border=0 width=100% align=center><tr><td align=left bgcolor=white class='remindtt752'>",
		hintCode2: "</td></tr></table>",
		hintCode3: "<table cellpadding=0 cellspacing=0 border=0 width=100% align=center><tr><td height=1px bgcolor=#dddddd></td></tr><tr><td align=right height=17px bgcolor=#ecf0ef class='jstxhuitiaoyou'><a class='jstxlan' onclick='javascript:return false;'>",
		hintCode4: "</a></td></tr></table></td></tr></table>",
		REQUEST_TIMEOUT: 50,
		ITEM_INDEX: "s_index",
		ITEM_HIGHLIGHT_STYLE: "aa_highlight",
		ITEM_TYPE: "hitt",
		ITEM_QUERY: "hitq",
		ITEM_LINK: "hitl",
		QUERY_ATTR: "squery",
		S_QUERY_URL_POST: "/suggest?wd=",
		defSearchParamName: "wd",
		defSugName: "aa",
		sugCookieName: "SUG_STATUS"
	})
})(xlfqs);
