var v_oldValues = new Array
var v_selectListContainers = new Array();
var v_appItemTable = new Array();
var v_appItemColumn = new Array();
var v_matchcolor = new Array();
var v_nomatchcolor = new Array();
var c_SelectListSize = 8;
function register(p_TextFieldName, p_TableName, p_ColumnName, p_matchColor, p_noMatchColor) {
v_oldValues[p_TextFieldName] = html_GetElement(p_TextFieldName).value;
v_selectListContainers[p_TextFieldName] = document.createElement("div");
v_selectListContainers[p_TextFieldName].setAttribute("id", "_"+p_TextFieldName+"_CONTAINER");
v_selectListContainers[p_TextFieldName].style.position = "relative";
v_selectListContainers[p_TextFieldName].style.left = "0px";
v_selectListContainers[p_TextFieldName].style.top = "0px";
html_GetElement(p_TextFieldName).parentNode.appendChild(v_selectListContainers[p_TextFieldName]);
if (document.all) {
html_GetElement(p_TextFieldName).onkeyup = function () {return showSelectList(event);};
} else {
html_GetElement(p_TextFieldName).onkeyup = function (e) {return showSelectList(e);};
}
v_appItemTable[p_TextFieldName] = p_TableName;
v_appItemColumn[p_TextFieldName] = p_ColumnName;
v_matchcolor[p_TextFieldName] = p_matchColor;
v_nomatchcolor[p_TextFieldName] = p_noMatchColor;
}
function showSelectList(e) {
var keynum;
var p_TextFieldName;
if(document.all) {
keynum = e.keyCode
p_TextFieldName = e.srcElement.getAttribute("id");
} else {
keynum = e.which
p_TextFieldName = e.target.getAttribute("id");
}
if (v_oldValues[p_TextFieldName] != html_GetElement(p_TextFieldName).value) {
v_oldValues[p_TextFieldName] = html_GetElement(p_TextFieldName).value;
if (html_GetElement(p_TextFieldName).value != "") {
do_showSelectList(p_TextFieldName);
} else {
removeSelectList(p_TextFieldName);
}
} else {
if (keynum == 40 || keynum == 38 || keynum == 9) {
if (!e.shiftKey) {
if (html_GetElement("_"+p_TextFieldName+"SELECTLIST")) {
html_GetElement("_"+p_TextFieldName+"SELECTLIST").focus();
}
}
}
if (keynum == 13) {
do_pushBackValue(p_TextFieldName);
}
}
}
function do_showSelectList(p_TextFieldName) {
var l_Return = null;
var l_SelectList = html_GetElement("_"+p_TextFieldName+"SELECTLIST");
if (!l_SelectList) {
l_SelectList = createSelectList(p_TextFieldName);
} else {
l_SelectList.style.visibility="visible";
}
var get = new htmldb_Get(
null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=getSearchList',0
);
get.add('TF_SL_SEARCH', html_GetElement(p_TextFieldName).value);
get.add('TF_SL_TABLE', v_appItemTable[p_TextFieldName]);
get.add('TF_SL_COLUMN', v_appItemColumn[p_TextFieldName]);
gReturn = get.get('XML');
if(gReturn && l_SelectList){
var l_Count = gReturn.getElementsByTagName("row").length;
l_SelectList.length = 0;
if (l_Count > 0) {
if (l_Count < c_SelectListSize) {
l_SelectList.size = l_Count;
} else {
l_SelectList.size = c_SelectListSize;
}
for(var i=0;i<l_Count;i++){
var l_ReturnedItem = gReturn.getElementsByTagName("row")[i];
appendToSelect(
l_SelectList, l_ReturnedItem.firstChild.nodeValue, l_ReturnedItem.firstChild.nodeValue
);
setFieldColor(p_TextFieldName, v_matchcolor[p_TextFieldName]);
l_SelectList.options[0].selected=true;
}
} else if (l_Count == 0) {
removeSelectList(p_TextFieldName);
setFieldColor(p_TextFieldName, v_nomatchcolor[p_TextFieldName]);
}
}
}
function setFieldColor(pField, pColor) {
html_GetElement(pField).style.color = pColor;
}
function createSelectList(p_TextFieldName) {
var v_SelectList = document.createElement("select");
v_SelectList.setAttribute("id", "_" + p_TextFieldName + "SELECTLIST");
v_SelectList.style.position = "absolute";
v_SelectList.style.left = "0px";
v_SelectList.style.top = "0px";
v_SelectList.size = c_SelectListSize;
if (document.all) {
v_SelectList.onclick = function () {return pushBackValue(event);};
v_SelectList.onkeyup = function () {return pushBackValueReturn(event);};
} else {
v_SelectList.onclick = function (e) {return pushBackValue(e);};
v_SelectList.onkeyup = function (e) {return pushBackValueReturn(e);};
}
v_selectListContainers[p_TextFieldName].appendChild(v_SelectList);
return v_SelectList;
}
function removeSelectList(p_TextFieldName) {
html_GetElement("_" + p_TextFieldName + "SELECTLIST").style.visibility="hidden";
}
function do_pushBackValue(p_TextFieldName) {
html_GetElement(p_TextFieldName).value = html_GetElement("_" + p_TextFieldName + "SELECTLIST").value;
setFieldColor(p_TextFieldName, v_matchcolor[p_TextFieldName]);
removeSelectList(p_TextFieldName);
html_GetElement(p_TextFieldName).focus();
}
function pushBackValue(e) {
var p_TextFieldName;
if(document.all) {
p_TextFieldName = e.srcElement.getAttribute("id");
} else {
p_TextFieldName = e.target.parentNode.getAttribute("id");
}
if (p_TextFieldName) {
do_pushBackValue(p_TextFieldName.substring(1, p_TextFieldName.indexOf("SELECTLIST")));
}
}
function pushBackValueReturn(e) {
var keynum;
var p_TextFieldName;
if(document.all) {
keynum = e.keyCode
p_TextFieldName = e.srcElement.getAttribute("id");
} else {
keynum = e.which
p_TextFieldName = e.target.getAttribute("id");
}
if (keynum == 13 ) {
do_pushBackValue(p_TextFieldName.substring(1, p_TextFieldName.indexOf("SELECTLIST")));
}
}
function appendToSelect(pSelect, pValue, pContent) {
var l_Item = document.createElement("option");
l_Item.value = pValue;
if(document.all){
pSelect.options.add(l_Item);
l_Item.innerText = pContent;
} else {
l_Item.appendChild(document.createTextNode(pContent));
pSelect.appendChild(l_Item);
}
}