var divDrop;
var holdState = false;
var previousItem_Index = 0;
var selectedItem_Index = 0;

function txtSearch_OnKeyUp(me)
{
    
    // See if divDrop exists
    if (!divDrop)
    {
        divDrop = document.getElementById('divDrop');
        var txtSearch = document.getElementById('txtSearch');
        var arrXY = new Array() 
        arrXY = findPos(txtSearch);
        divDrop.style.left=arrXY[0];
        divDrop.style.top=arrXY[1] + txtSearch.offsetHeight;
        divDrop.className = 'suggestions_show';
    }
    
    var sValue = me.value;
    
    // Split up the request into words and only send the last word if it
    // has more than 2 characters in it
    
    if (sValue.length < 3) return false;
    
    if (!holdState)
    {
        ajaxPost(1, location.pathname+'?ajax=1&ts='+sValue);
    }
}

function ajaxResponse(responseType, sResponse)
{
    if (responseType == 1)
    {
        divDrop.innerHTML = sResponse;
    }
}

function txtSearch_OnKeyDown(e) {
    try
    {
        switch (e.keyCode) {
            case 40:
                var tempItem_Index = selectedItem_Index + 1;
                if (document.getElementById('search_' + tempItem_Index)) {
                    previousItem_Index = selectedItem_Index;
                    selectedItem_Index++;
                    selectedItem_Highlight();
                }
                break;

            case 38:
                if (selectedItem_Index > 1) {
                    previousItem_Index = selectedItem_Index;
                    selectedItem_Index--;
                    selectedItem_Highlight();
                }
                break;

            default:
                holdState = false;
                break;
        }
    } 
    catch(err) {
    }
}

function selectedItem_Highlight() {
    var selectedSearchItem = document.getElementById('search_'+selectedItem_Index);            
    if (selectedSearchItem)
    {
        holdState = true;
        try {document.getElementById('search_'+previousItem_Index).style.fontWeight = 'normal';} catch (err) {}
        selectedSearchItem.style.fontWeight = 'bold';
    }
}

function findPos(obj) {
    var curleft = curtop = 0;

    if (obj.offsetParent) {
        do {
		        curleft += obj.offsetLeft;
		        curtop += obj.offsetTop;
	    } while (obj = obj.offsetParent);

    return [curleft,curtop];
    }
}

function divDrop_onFocus() {
    //alert(document.getElementById('cboSearch').tag);
}

function body_onKeyDown(e) {
    try {
        switch (e.keyCode) {
            case 40:
                //document.getElementById('divDrop').focus();
                break;
            case 38:
                break;
            case 9:
                var txtSearch = document.getElementById('txtSearch');
                txtSearch.value = document.getElementById('search_' + selectedItem_Index).innerHTML;
                document.getElementById('divDrop').innerHTML = '';
                previousItem_Index = 0;
                selectedItem_Index = 0;
                break;
            default:
                document.getElementById('divDrop').innerHTML = '';
                previousItem_Index = 0;
                selectedItem_Index = 0;
                break;
        }
    }
    catch (err) {
    }
}

function body_onClick() {
    document.getElementById('divDrop').innerHTML = '';
}

function tblSearch_onMouseOver(me) {
    me.style.fontWeight = 'bold';
    holdState = false;
}

function tblSearch_onMouseOut(me) {
    if (holdState = false) 
    {
        me.style.fontWeight = 'normal'
    }
}

function tblSearch_onClick(me) {
    document.getElementById('txtSearch').value = me.innerHTML
}
