﻿isNeighboringWordSelected = false;
currentNeighboringWordIndex = -1;
firstPrefix = "";

function OnSucceeded(result) {
    var layer = document.getElementById("neighboringWordLayer");
    var list = document.getElementById("neighboringWordList");
    
    if (result == null) {
        list.innerHTML = "";
        layer.style.display = "none";
        return;
    }
    else if (result.length == 0) {
        list.innerHTML = "";
        layer.style.display = "none";
        return;
    }
    else
    {
        var inner = '<table id="neighboringTable" width="330" border="0" cellspacing="0" cellpadding="1" style="font-size:11px">';
        var scrollT = 0;
        var i;
        for(i = 0; i < result.length; i++) {
            var resultType = "";
            if (i == 0) {
                list.innerHTML = "";
                layer.style.display = "none";
            }
            if (isNeighboringWordSelected && i == currentNeighboringWordIndex) {
                inner+= '<tr style="background-color: #e6f3ff;" onclick="SelectNeighboringWord(this);" style="cursor: point;">';
                document.getElementById("totalitySearchValue").value = result[i].Word;
                if (2 < i) {
                    scrollT = (i - 2) * 20;
                }
            }
            else {
                inner+= '<tr onclick="SelectNeighboringWord(this);" style="cursor: hand;">';
            }
            
            inner+= '<td width="156"><div style="width:156px; overflow: hidden; white-space: nowrap; float: left;">&nbsp;<img src="/images/arrow05.gif" width="7" height="9">'+result[i].Word.replace(firstPrefix,'<font color="#FF6600">'+firstPrefix+'</font>')+'</div></td>';
            //Nation, State, City, Tourist, User, Airport
            switch (result[i].Type) {
                case 0 : resultType = "국가명";
                    break;
                case 1 : resultType = "현(주)명";
                    break;
                case 2 : resultType = "도시명";
                    break;
                case 3 : resultType = "관관지명";
                    break;
                case 4 : resultType = "사용자";
                    break;
                case 5 : resultType = "공항";
                    break;
                default : resultType = "";
                    break;
            }
            inner+= '<td width="62" height="20" align="center" style="color:#669900">'+resultType+'</td>';
            inner+= '<td width="38" align="center">'+result[i].Count+'</td>';
            inner+= '<td width="16" align="center"></td>';
            inner+= '</tr>';
        }
        inner+= '</table>';
    }
    list.innerHTML = inner;
    layer.style.display = "block";
    document.getElementById("neighboringWordList").scrollTop = scrollT;
}
        
function ChangeSearchWord(prefix) {
    if (event.keyCode != 38 && event.keyCode != 40 && event.keyCode != 13) {
        firstPrefix = prefix;
        isNeighboringWordSelected = false;
        Skylandtour.WebService.NeighboringWords.GetNeighboringWords(firstPrefix, OnSucceeded);
    }
    else if (event.keyCode == 38 && document.getElementById("neighboringTable") != null) {
        if (0 < currentNeighboringWordIndex) {
            currentNeighboringWordIndex--;
            isNeighboringWordSelected = true;
            Skylandtour.WebService.NeighboringWords.GetNeighboringWords(firstPrefix, OnSucceeded);
        }
    }
    else if (event.keyCode == 40 && document.getElementById("neighboringTable") != null) {
        if ((document.getElementById("neighboringTable").rows.length - 1) > currentNeighboringWordIndex) {
            currentNeighboringWordIndex++;
            isNeighboringWordSelected = true;
            Skylandtour.WebService.NeighboringWords.GetNeighboringWords(firstPrefix, OnSucceeded);
        }
    }
    else if (event.keyCode == 13) {
        document.getElementById("neighboringWordLayer").style.display = "none";
        currentNeighboringWordIndex = -1;
        isNeighboringWordSelected = false;
        document.getElementById("totalitySearchValue").focus();
        return false;
    }
}

function window.document.onclick() {
    document.getElementById("neighboringWordLayer").style.display = "none";
    isNeighboringWordSelected = false;
    currentNeighboringWordIndex = -1;
}

function SelectNeighboringWord(row) {
    firstPrefix = validatorTrim(row.cells[0].innerText);
    document.getElementById("totalitySearchValue").focus();
    document.getElementById("totalitySearchValue").value = firstPrefix;
}

if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
