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 ajaxrun = 1;
var xmlhttp = 0;
var input = 0;
var inq1initf = 0;
var inq1focusf = 0;
var inq1foutcnt = 0;
var iteminqf = 0;
var searchprc = getdirpath()+'ajaxdic-search.php';
var Tmid;

function peekQuery () {
  if (! xmlhttp) xmlhttp = createXmlHttpRequest();

  if (! xmlhttp || xmlhttp.readyState == 1 || xmlhttp.readyState == 2 ||
    xmlhttp.readyState == 3)
  {
    return; 
  }

  if (!inq1focusf) {
    inq1foutcnt++;
    if (inq1foutcnt > 1) {
      clearInterval(Tmid);
      var textbox = document.getElementById('query1');
      textbox.clearCompletionItems();
      selectDisponof('visible');
      inq1initf = 0;
    }
    return;
  }
  inq1foutcnt = 0;

  var textbox = document.getElementById('query1');
  var query   = encodeURI(textbox.value);
  var qary    = query.split("\s|　", 2);
  
  if (query == "" || qary.length > 1 || textbox.value.length > 8) {
    textbox.clearCompletionItems();
    selectDisponof('visible');
  } else if (oldquery != query) {
    var javaid  = encodeURI(getjavaid());
    xmlhttp.open("GET",
      searchprc+"?ikey="+query+"&javaid="+javaid, true);    
    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        if (xmlhttp.responseText != "") {
          selectDisponof('hidden');
          var ary = xmlhttp.responseText.split(/\n/);
	  textbox.showCompletionItems(ary, function(n) {
	    textbox.value = ary[n];					
	    textbox.clearCompletionItems();
            var tmp = ary[n].split(/\t/);
            document.getElementById('query1').value = tmp[0];
	    oldquery = encodeURI(textbox.value); });
        } else {
          textbox.clearCompletionItems();
          selectDisponof('visible');
        }
      }
    }
    xmlhttp.send(null)
  }
  oldquery = query;
}

function selectDisponof (display) {
  var UA = navigator.userAgent;
  if (UA.indexOf('MSIE') > -1) {
    layObj = document.getElementsByTagName('select');
    for (i=0; i<layObj.length; i++) {
      layObj[i].style.visibility = display;
    }
  }
}

function Inq1onfocus () {
  if (!ajaxrun) { return; }  // 候補表示オフ
  if (!inq1initf) {
    var textbox = document.getElementById('query1');
    initCompletion(textbox);
    inq1initf = 1;
  }
  oldquery = "";
  Tmid = setInterval("peekQuery()", 200); 
  inq1focusf = 1;
}

function Inq1onblur () {
  inq1focusf = 0;
}
function chkboxchg () {
    var chkbox = document.getElementById('ajaxchg');
    //alert('chkbox.checked='+chkbox.checked);
    var textbox = document.getElementById('query1');
    if (chkbox.checked) {
        textbox.autocomplete='off';
        ajaxrun = 1;
    } else {
        if (inq1initf) { inq1initf = 0; }
        textbox.autocomplete='on';
        ajaxrun = 0;
    }
}
