// Written by Neil Coffey.
// Copyright (c) Javamex UK 2008. All rights reserved.

function openDictionaryPopup(docName) {
  var fullUrl = '/popups/glossary/' + docName + ".html?t=p";
  var options = 'left=200,top=200,screenX=200,screenY=200,width=600,height=600,toolbar=no,resizable=yes,location=no,directories=no,menubar=no,scrollbars=yes';
  ref = window.open(fullUrl, 'dictpopup', options);
  ref.focus();
}
var xhr;
function sugg(ev) {
    var textField = document.getElementById("srchtrm");
    var popupField = document.getElementById("popupframe");
    var text = textField.value;
    if (text.length >= 3) {
	if (window.ActiveXObject) {
	  xhr = new ActiveXObject("Microsoft.XMLHttp");
      } else if ((window.XMLHttpRequest) || (typeof XMLHttpRequest) != undefined) {
	  xhr = new XMLHttpRequest();
	} else {
        return;
      }
	runSearch(text);
    } else {
      popupField.innerHTML = '';
      popupField.style.visibility = "hidden";
    }
}
function runSearch(text) {
  xhr.open("GET", "/ajax?t=" + text, true);
  xhr.onreadystatechange = processData;
  xhr.setRequestHeader("X-FrLing-Service", "ss");
  xhr.send(null);
}
function processData() {
  if (xhr.readyState == 4) {
    var respDoc = xhr.responseXML;
    var words = respDoc.getElementsByTagName("word");
    var inputField = document.getElementById("srchtrm");
    var popupField = document.getElementById("popupframe");
    if (words.length > 0) {
      var content = "";
      for (i = 0; i < words.length; i++) {
        if (i >= 12) {
          content += "<br><font size=-1><i>Refine your search</i></font>";
          break;
        }
        var wrd = words.item(i).firstChild.nodeValue;
        if (i > 0) content += "<br>";
        content += "<b><sapn onClick=\"tsg('" + wrd + "')\">" + wrd + "</span></b>";
      }
      popupField.innerHTML = content;
      var xoffset = 0, yoffset = 0;
      var el = inputField;
      while (el) {
        var lt = el.offsetLeft;
        var top = el.offsetTop;
        xoffset += lt;
        yoffset += top;
        el = el.offsetParent;
      }
      popupField.style.left = xoffset;
      popupField.style.top = yoffset  + inputField.offsetHeight;
      popupField.style.width = inputField.offsetWidth;
      popupField.style.visibility = "visible";
    } else {
      popupField.innerHTML = '';
      popupField.style.visibility = "hidden";
    }
  }
}
function tsg(text) {
  var textField = document.getElementById("srchtrm");
  textField.value = text;
  var popupField = document.getElementById("popupframe");
  popupField.innerHTML = '';
  popupField.style.visibility = "hidden";
  textField.focus();
}
