
var xmlHttp;
var inputFocus = false;
var selectFocus = false;

//------------------------------------------------------------------------------
function callInputAction (e, path, field_name)
{
    if (field_name == "" || field_name == " ") return;

    e = (!e) ? window.event : e;
    code = (e.charCode) ? e.charCode : ((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));
    if (e.type == "keyup")
    {
        if (code == 38 || code == 40)
        {
            document.getElementById (field_name + "Select").focus();
            objSel = document.getElementById (field_name + "Select");

            varSelect = objSel.options[objSel.selectedIndex].value;
            document.getElementById (field_name + "Input").value = varSelect;
        }
        else {
            open_list (path, field_name);
        }
    }
}

//------------------------------------------------------------------------------
function callSelectAction (e, path, field_name)
{
    if (field_name == "" || field_name == " ") return;

    e = (!e) ? window.event : e;
    code = (e.charCode) ? e.charCode : ((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));
    if (e.type == "keyup")
    {
        if (code == 38 || code == 40)
        {
            document.getElementById (field_name + "Select").focus();
            objSel = document.getElementById (field_name + "Select");

            varSelect = objSel.options[objSel.selectedIndex].value;
            document.getElementById (field_name + "Input").value = varSelect;
        }
        else if (code == 13) 
        {
            document.getElementById (field_name + "Result").innerHTML = "";
            document.getElementById (field_name + "Input").focus ();
        }
    }
}

//------------------------------------------------------------------------------
function callActionMouse (field_name)
{
    if (field_name == "" || field_name == " ") return;

    var obj = document.getElementById (field_name + "Select");
    var selected = obj.options[obj.selectedIndex].text;
    var res_id = document.getElementById (field_name + "ResultID");
    document.getElementById (field_name + "Input").value = selected;

    document.getElementById (field_name + "Result").innerHTML = "";
    if (res_id) res_id.value = obj.options[obj.selectedIndex].value;
    document.getElementById (field_name + "Input").focus ();
}

//------------------------------------------------------------------------------
function open_list (path, field_name)
{
    xmlHttp = GetXmlHttpObject ();
    if (xmlHttp == null)
    {
        alert ("Browser does not support HTTP Request");
        return;
    }
    
    var url = path + "&id=" + document.getElementById (field_name + "Input").value;
    url = url + "&field_name=" + field_name;
    url = url + "&sid=" + Math.random ();
    
    xmlHttp.onreadystatechange = stateChangedDF;
    xmlHttp.open ("GET", url, true);
    xmlHttp.send (null);
}

//------------------------------------------------------------------------------
function stateChangedDF ()
{
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
    {
        var id = "";
        var xmldoc = xmlHttp.responseXML;

        if (xmldoc.getElementsByTagName ('field_name').item (0).firstChild.data.length != 0) {
            id = xmldoc.getElementsByTagName ('field_name').item (0).firstChild.data;
        }

        if (id.length != 0) {
            document.getElementById (id + "Result").innerHTML = xmldoc.getElementsByTagName ('content').item (0).firstChild.data;
        }
    }
}

//------------------------------------------------------------------------------
function getData (field_name)
{
    var objSel = document.getElementById (field_name + "Select");
    varSelect = objSel.options[objSel.selectedIndex].value;
    document.getElementById (field_name + "Input").value = varSelect;
}

//------------------------------------------------------------------------------
function focusLost (field_name, var_name)
{
    eval (var_name + " = false;");
    window.setTimeout ("closeSelect ('" + field_name + "')", 1000);
}

//------------------------------------------------------------------------------
function closeSelect (field_name)
{
    if (!inputFocus && !selectFocus) {
        document.getElementById (field_name + "Result").innerHTML = "";
    }
}
