function getXmlHttpRequestObject() {
   if (window.XMLHttpRequest) {
      return new XMLHttpRequest();
   } else if (window.ActiveXObject) {
      return new ActiveXObject("Microsoft.XMLHTTP");
   }
}

var suggestRequest = getXmlHttpRequestObject();
var url = "/byindex?txt=";
var linkIndex = -1;

function searchSuggest() {
   if (suggestRequest.readyState == 4 || suggestRequest.readyState == 0) {
      var str = escape(document.getElementById("txtSearch").value);
      
      suggestRequest.open("GET", url + str, true);
      suggestRequest.onreadystatechange = processSuggestions;
      suggestRequest.send('');
   }
}

function processSuggestions() {
   if (suggestRequest.readyState == 4) {
      if (suggestRequest.status == 200) {
         var s = document.getElementById("search_suggest");
         s.innerHTML = suggestRequest.responseText;
         linkIndex = -1;
      }
   }
}

function validate() {
   var s = document.getElementById("search_suggest");
   if (s.innerHTML.indexOf('findes ikke') > 0) return false;
   else return true;
}

function handleArrowKeys(evt) {
    evt = (evt) ? evt : ((window.event) ? event : null);
    if (evt) {
        var elm = null;
        switch (evt.keyCode) {
            case 38:
                // up arrow
                if (linkIndex > 0) linkIndex--;
                if (linkIndex > -1) elm = document.getElementById(linkIndex);
                break;   
            case 40:
                // down arrow
                if (linkIndex < 29) linkIndex++;
                if (linkIndex < 30) elm = document.getElementById(linkIndex);
                break;
        }
        if (elm) {
            elm.focus();
            return false;
        }
    }
}

document.onkeydown = handleArrowKeys;

