﻿function createXmlHttpRequest() {
    var xmlhttp = false;
  if( window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
  } else if(window.ActiveXObject) {
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlhttp;
}

var oldquery = "";
var xmlhttp = 0;
var input = 0;

function peekQuery (id) {

  if (! xmlhttp) xmlhttp = createXmlHttpRequest();

  if (! xmlhttp || xmlhttp.readyState == 1 || 
      xmlhttp.readyState == 2 || xmlhttp.readyState == 3){
    return; 
  }

  var textbox = document.getElementById(id);
  var query = encodeURI(textbox.value);

  if (query == "") {
    textbox.clearCompletionItems();
  } else if (oldquery != query) {
    xmlhttp.open("GET", host + file + "?execdiv=address&add=" + query);    
    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200
	  && xmlhttp.responseXML != null && xmlhttp.responseXML.documentElement != null) {
	    var reObj = xmlhttp.responseXML.getElementsByTagName('FindItem');
	    
	    if (reObj!=null && reObj.length!=0){
	    	
	    	var ary = new Array(reObj.length);
	    	
	    	for (var i=0; i<reObj.length; i++) {
	    		ary[i] = reObj[i].getElementsByTagName('Kanji')[0].firstChild.data;
	    	}
	    	textbox.clearCompletionItems();
	    	textbox.showCompletionItems(
					ary,
					function(n) {
	    					textbox.value = ary[n];
	    					textbox.clearCompletionItems();
	    					oldquery = encodeURI(textbox.value);
						searchExec(); } );
	    }
      }
    }
    xmlhttp.send(null)
  }
  
  oldquery = query;
}

function suggestOn(id) {

  var textbox = document.getElementById(id);
  initCompletion(textbox);
  TimerID = setInterval(
		function () { peekQuery(id); },
		500);
}

function suggestOff(iid) {
	clearInterval(TimerID);
	DTimerID = setInterval(
		function () {
			var textbox = document.getElementById(iid);
			textbox.clearCompletionItems();
			clearInterval(DTimerID); },
		200);
}

