// JavaScript Document
var xmlconn = null;
var stout = null;
var GlossaryPlugin = function (ref){
	this.refname = ref;
	if (window.XMLHttpRequest) {
		this.isIE = false;
		xmlconn = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		this.isIE = true;
		xmlconn = new ActiveXObject("Microsoft.XMLHTTP");
	}
} 
GlossaryPlugin.prototype.TrySearch = function (query){
	if (this.stout)
		clearTimeout (this.stout);
	
	this.stout = setTimeout (this.refname+".Search ('"+query+"')", 1000);
}

GlossaryPlugin.prototype.CancelSearch = function (){
	if (this.stout)
		clearTimeout (this.stout);
	var ptr = document.getElementById ("GlossaryResult");
	ptr.className = 'Hidden';
}

GlossaryPlugin.prototype.Search = function (query) {
	xmlconn.open("GET", "glossaryAPI.cfm?query="+query+"&specific=true", 1);
	xmlconn.onreadystatechange = this.Done;
	xmlconn.send(null);	
}

GlossaryPlugin.prototype.Done = function (){

	var ptr = document.getElementById ("GlossaryResult");
	if (xmlconn.readyState == 4){
		
		ptr.className = '';
		status.className = 'Hidden';
		var response = xmlconn.responseXML;

		var i=0;
		if (response != null){
			var newtext = ""; 
			while (term = response.getElementsByTagName ('termname')[i]){
			
				var termname = term.firstChild.data;
				var termbody = response.getElementsByTagName ('termbody')[i].firstChild.data;
				newtext += "<strong>"+unescape(termname)+"</strong>";
				newtext += "<div id='gBody'>"+unescape(termbody);
				//newtext += "<div id='gBody'>"+(unescape(termbody)).substr (0,100);
				//if (unescape(termbody).length > 100)
				//	newtext +="...";
				newtext += "</div>";
				i++;
			}
		}
		if (i>0){
			ptr.innerHTML = newtext;
			var htmlOutput = document.getElementById ("gBody");
		}
	}else{
		ptr.className = 'Hidden';
	}
	return;
}
