/* www.liamski.co.uk/gmtoolbox */

var http = createAJAXRequest();
var database = new Array();

function createAJAXRequest(){
	var xmlHttp;
	try{
    	xmlHttp = new XMLHttpRequest();
    }
	catch (e){
    	try{
		 	xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
			try{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){
				return false;
			}
		}
	}
	return xmlHttp;
}

function initautosearch() {									 
	document.getElementById("search").onkeyup = autoSearch;
	http.open("get","autosearch.txt");
	http.onreadystatechange = makeResultsArray;
	http.send(null);
}

function makeResultsArray(){
	if (http.readyState == 4){
		database = http.responseText.split(",");
	}
}

function autoSearch(){
	var querey = document.getElementById("search").value;
	var resultbox = document.getElementById("searchresults");
	
	if (querey == ""){
		resultbox.innerHTML = "";
	}else{
		var output = "";
		var didyoumean = "";
		var qlength = querey.length;
		var querey = querey.toLowerCase();
		
		for(i=0;i<database.length;i+=1){
			var result = database[i];
			var lowresult = result.toLowerCase();
			if (lowresult.substr(0,qlength) == querey){
				resultlink = '"'+result+'"';
				if (!usingIE){
					output += "<a href='#' onclick='resultclick(" + resultlink + ")'><strong>" + result.substr(0,qlength) + "</strong><em>" + result.substr(qlength) + "</em></a><br />";
				}else{
					output += "<a href='#" + result.replace(/ /g,"") + "' onclick='resultclick(" + resultlink + ")'><strong>" + result.substr(0,qlength) + "</strong><em>" + result.substr(qlength) + "</em></a><br />";
				}
			}else if(lowresult.match(querey) && querey.length > 2){
				pos = lowresult.indexOf(querey);
				resultlink = '"'+result+'"';
				if (!usingIE){
					didyoumean += "<a href='#' onclick='resultclick(" + resultlink + ")'><em>" + result.substr(0,pos) + "</em><strong>" + result.substr(pos,qlength) + "</strong><em>" + result.substr(pos+qlength) + "</em></a><br />";
				}else{
					didyoumean += "<a href='#" + result.replace(/ /g,"") + "' onclick='resultclick(" + resultlink + ")'><em>" + result.substr(0,pos) + "</em><strong>" + result.substr(pos,qlength) + "</strong><em>" + result.substr(pos+qlength) + "</em></a><br />";
				}
			}
		}
		
		resultbox.innerHTML = "";
		if (output == "" && didyoumean == ""){
			resultbox.innerHTML = "<br />No Results!";
		}else{
			if (output !== ""){
				resultbox.innerHTML = "<br />Results:<br /><br />" + output;
			}
			if (didyoumean !== ""){
				resultbox.innerHTML += "<br />Did you mean:<br /><br />" + didyoumean;
			}
		}

	}
}

function resultclick(result){
	var elements = document.getElementsByTagName("a");
	var theelement;
	for (var i=0; i < elements.length; i++) {
		if(elements[i].title.match(result)){
			var elementY = elements[i].offsetTop;
			theelement = elements[i];
		}
	}
	theelement.style.fontSize = "2em";
	theelement.style.background = "#fffec7";
	divobject = theelement.parentNode.parentNode;
	var normalheight = divGetFullHeight(divobject);
	if (!usingIE){
		expandBox(0,normalheight,0);
		scrollDown(elementY-30);
	}else{
		collapseAll();
		expandBox(normalheight+20,normalheight+20,0);
	}
}