/* Ajax functies voor zoeken van cursussen (c) 9/2006 12/2007 S.Sanders	*/

var XMLHttpRequestObject = false;
var path_php = "php/zoekrecept_groente.php"; 	/* pad met php file	*/

if (window.XMLHttpRequest){
	XMLHttpRequestObject = new XMLHttpRequest();
}
else if (window.ActiveXObject){
	XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function getData(dataSource){
	/* simpeler: maar soms problemen agv. get-string caching	*/
	if(XMLHttpRequestObject){
		XMLHttpRequestObject.open("GET",dataSource);
		XMLHttpRequestObject.onreadystatechange = function(){ 
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
				//alert(XMLHttpRequestObject.responseText);
				eval(XMLHttpRequestObject.responseText);
			} 
		} 
		XMLHttpRequestObject.send(null); 
	}
}

function postData(url,data){
	/* ingewikkelder, maar post wordt niet gecached	*/
	if(XMLHttpRequestObject){
		XMLHttpRequestObject.open("POST",url,true);
		XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		XMLHttpRequestObject.setRequestHeader("Content-length", data.length);
		XMLHttpRequestObject.setRequestHeader("Connection", "close");
		XMLHttpRequestObject.onreadystatechange = function(){ 
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
				//alert(XMLHttpRequestObject.responseText);
				eval(XMLHttpRequestObject.responseText);
			} 
		}
		/* Remote Procedure Call:	*/
		XMLHttpRequestObject.send(data); 
	}
}

function getSuggest(keyEvent){
	var keyEvent = (keyEvent) ? keyEvent: window.event;
	var input = (keyEvent.target) ? keyEvent.target : keyEvent.srcElement;
	var url = path_php;

	if(keyEvent.type == "keyup") {
		if (input.value) {
			//getData(url + "?woord=" + input.value);	/* alles in n string	*/
			postData(url, "woord=" + input.value);	/* url en params apart	*/
		} 
		else {
			var resultsDiv = document.getElementById("resultsDiv");
			resultsDiv.innerHTML = "";
		}
	}
}

function mySort(a,b){
	/* sorteert Result objecten	*/
	return(a.name > b.name)? 0:-1;
}

function Result(name,url){
	/* een resultaat-object	*/
	this.name = name;
	this.url = url;
}

Array.prototype.swap=function(a, b){
	/* creeer een swap functie voor array elementen	*/
	var tmp = this[a];
	this[a] = this[b];
	this[b] = tmp;
}

function sendRPCDone(arrayTerms,arrayLinks){
	var error = false;
	/* Remote Procedure Call done!	*/
	var results = new Array();
	for(var i=0;i<arrayTerms.length;i++){
		/* maak er een array van objecten van	*/
		results[i] = new Result(arrayTerms[i],arrayLinks[i]);
	}
	/* nu sorteren	*/
	results.sort(mySort);
	/* komt begin van n van de elementen precies overeen: dan die bovenaan	*/
	var myWord = document.getElementById("search").value;
	for(var i=0,j=0;i<results.length;i++){
		if(results[i].name.indexOf(myWord) == 0){
			results.swap(i,j++);
		}
	}
	var data = "";
	if(results.length && results[0].name.length){
		var path = "";
		data = "<table>";
		data += "<tr><th>Suggesties:</th></tr>";
		for(var i=0;i<results.length;i++) {
			data += "<tr><td>" + "<a href='";
			if(results[i].url.length == 0){
				path = "javascript:;";	/* leeg pad	*/
				error = true;
			}
			else{
				path = "javascript:submitResult(\"" + results[i].url + "\");";
			}
			data += path + "'>&gt;&gt;&nbsp;" + results[i].name + "</a></td></tr>";
		}
		data += "</table>";
	}
	else{
		/* niets gevonden	*/
		data = "<strong>Geen suggesties...</strong>";
	}
	var myDiv = document.getElementById("resultsDiv");
	myDiv.innerHTML = data;
}


