护符小贩(Cha this.show = function () {
var element = arguments.callee.element;
if (!element.booleanScan) {
return;
}
if (element.stringLastValue != element.value && element.value != "代码/名称/拼音") {
element.line = null;
element.stringLastValue = element.value;
var arrayResult = element.suggest.load(element.value);
if (arrayResult.length > 0) {
element.divHint.style.display = "block";
var arrayPosition = element.suggest.getOffsetPos(element);
element.divHint.style.left = arrayPosition[0] + "px";
element.divHint.style.top = arrayPosition[1] + "px";
element.divHint.style.marginTop = element.clientHeight + 1 + "px";
element.divHint.style.width = element.clientWidth > 200 ? element.clientWidth : 200 + "px";
var tableContainer = document.createElement("table");
tableContainer.className = "tableSuggest";
tableContainer.cellPadding = 0;
tableContainer.cellSpacing = 0;
var trHeader = tableContainer.insertRow(0);
trHeader.className = "trHeader";
var tdKey = trHeader.insertCell(0);
tdKey.innerHTML = "选项";
var tdCode = trHeader.insertCell(1);
tdCode.innerHTML = "代码";
var tdName = trHeader.insertCell(2);
tdName.innerHTML = "名称";
for (var i = 0; i < arrayResult.length; i++) {
if (isNaN(parseInt(i))) {
continue;
};
var arrayRecord = arrayResult[i].replace("|", "").split(":");
var arrayCodeAndName = arrayRecord[1].split("-");
var trRecord = tableContainer.insertRow(parseInt(i) + 1);
var tdKey = trRecord.insertCell(0);
tdKey.innerHTML = arrayRecord[0];
var tdCode = trRecord.insertCell(1);
tdCode.innerHTML = arrayCodeAndName[0] + arrayCodeAndName[1];
var tdName = trRecord.insertCell(2);
tdName.innerHTML = arrayCodeAndName[2];
trRecord.stringFullCode = arrayCodeAndName[0] + arrayCodeAndName[1];
trRecord.inputTarget = element;
trRecord.onmouseover = function () {
this.inputTarget.overLine = this;
this.className = this.inputTarget.line == this ? "overSelectedLine" : "overLine";
};
trRecord.onmouseout = function () {
this.inputTarget.overLine = null;
this.className = this.inputTarget.line == this ? "selectedLine" : "";
};
trRecord.onmousedown = function () {
this.inputTarget.booleanScan = true;
this.inputTarget.setLine(this);
};
}
element.divHint.innerHTML = "";
element.divHint.appendChild(tableContainer);
element.tableHint = tableContainer;
}
else {
element.divHint.style.display = "none";
element.divHint.innerHTML = "";
element.tableHint = null;
}
}
};
this.bind = function (element) {
element.suggest = this;
element.show = this.show;
element.show.element = element;
element.intThread = -1;
element.arrayData = new Array();
element.value = "代码/名称/拼音";
element.style.color = "#999999";
element.booleanScan = true;
element.autocomplete = "off";
var divDataTable = document.createElement("div");
divDataTable.style.display = "none";
element.parentNode.insertBefore(divDataTable, element);
element.divHint = divDataTable;
element.tableHint = null;
element.line = null;
element.overLine = null;
divDataTable.className = "suggest";
element.onfocus = function () {
if (this.value == "代码/名称/拼音" || this.value == "代码输入错误") {
this.value = "";
this.style.color = "";
};
this.stringLastValue = this.value;
if (this.divHint.innerHTML != "") {
this.divHint.style.display = "block";
var arrayPosition = this.suggest.getOffsetPos(this);
this.divHint.style.left = arrayPosition[0] + "px";
this.divHint.style.top = arrayPosition[1] + "px";
this.divHint.style.marginTop = this.clientHeight + 1 + "px";
this.divHint.style.width = this.clientWidth > 200 ? this.clientWidth : 200 + "px";
}
this.intThread = setInterval(this.show, 10);
};
element.onblur = function () {
if (this.value == "") {
this.value = "代码/名称/拼音";
this.style.color = "#999999";
};
this.divHint.style.display = "none";
clearInterval(this.intThread);
this.intThread = -1;
};
element.setLine = function (line) {
var stringKeyFore = "";
if (this.value.indexOf(",") != -1 && this.value.indexOf(",") != 0 && this.value.indexOf(",") != this.value.length - 1) {
var arrayStringKeyFore = this.value.split(",");
arrayStringKeyFore[arrayStringKeyFore.length - 1] = "";
stringKeyFore = arrayStringKeyFore.join(",");
}
if (this.line != null) {
this.line.className = this.overLine == this.line ? "overLine" : "";
}
this.line = line;
line.className = this.overLine == li