// suggestionlist

var zoe_geenterm = "Helaas, geen afbeeldingen gevonden die aan de zoekopdracht voldoen.";
var selectObject = null;
var selColor = "#769d70";

function checkLocalForm(form) {
	switch (form.id) {
		case "formSearchSpecies":
			return true;
			break;
		case "formFreeSearch":
			if (form.elements["searchString"].value == "") {
				alert(zoe_geenterm);
				return false;
			} 
			else {
				return true;
			}
			break;
		default:
	}	
}

var prevSearch = "";
var activeList;
var activeInput;
var itsFormId = "";

function updateWordList(obj, formId, indexAlias, fields, list, operator, aspLink, siteAlias, viewAlias) {
	var objSuggestList = document.getElementById(list);
	if (obj.value.length < 2) {//according to the user
		objSuggestList.style.display = "none";
		prevSearch = obj.value;
		return(true);
	}

	if ((window.event.keyCode == 40) || (window.event.keyCode == 38)){ 
		selectSuggestionItem(objSuggestList);
		return(true);
	}

	if (prevSearch == obj.value) {
		return(true);
	}

	itsFormId = formId;
	activeInput = obj;
	activeList = list;
	
	prevSearch = obj.value;
	
	var preSuggest = obj.value;

	if (document.getElementById(operator) != null) {
		var operand = document.getElementById(operator).value;
			
		switch (operand) {
			case "is": 
				preSuggest += "*";
				break;
			case "contains": 
				preSuggest = "*" + preSuggest + "*";
				break;
			case "startsWith": 
				preSuggest += "*";
				break;
			case "endsWith": 
				preSuggest = "*" + preSuggest;
				break;
			default: 
				preSuggest += "*";
		}
	}
	else {
		preSuggest += "*";
	}	
	
	//document.write(aspLink + "?alias=" + siteAlias + "&view=" + viewAlias + "&id=i000097" + "&indexAlias=" + indexAlias + "&word=" + preSuggest + "&fields=" + fields)
	getServerData(aspLink + "?alias=" + siteAlias + "&view=" + viewAlias + "&id=i000097" + "&indexAlias=" + indexAlias + "&word=" + preSuggest + "&fields=" + fields, updateSuggestList);
	//frames["suggest"].document.location = aspLink + "?alias=" + siteAlias + "&view=" + viewAlias + "&id=i000097&word=" + obj.value;//

	selectObject = null;
	return(true);
}


function setSearchWord(obj, value) {
	if (selectObject != null) {
		selectObject.style.backgroundColor = "transparent";
		selectObject.style.color = "#000";
		
	}
	activeInput.value = value;
	selectObject = obj;
	selectObject.style.backgroundColor = selColor;
	selectObject.style.color = "#fff";
}

function updateSuggestList(html) {
  var objSuggestList = document.getElementById(activeList);
	objSuggestList.style.display = "block";
  objSuggestList.innerHTML = html;

	selectObject = null;
}

function eventMouseMove(obj, value){
	if (selectObject != null) {
		selectObject.style.backgroundColor = "transparent";
		selectObject.style.color = "#000";
	}
	activeInput.value = value;
	selectObject = obj;
	selectObject.style.backgroundColor = selColor;
	selectObject.style.color = "#fff";
}

function eventMouseClick(obj, value){
	activeInput.value = value;
	document.forms(itsFormId).submit();
}
/*
function selectFirstItem(objSuggestList){
	var nextSelectObject = objSuggestList.firstChild;
	if (nextSelectObject == null) return;

	selectObject = nextSelectObject;
	selectObject.style.backgroundColor = selColor;
	selectObject.style.color = "#fff";
	selectObject.scrollIntoView(false);
	return;
}
*/

function selectSuggestionItem(objSuggestList){
	if (selectObject == null){
		var objFirstChild = objSuggestList.firstChild;
		if ((objFirstChild != null) && (objFirstChild.id != "geenSuggesties")){
//			alert("selectObject == null");
			
			selectObject = objFirstChild;
			activeInput.value = getSpanSearchString(selectObject);
			
			selectObject.style.backgroundColor = selColor;
			selectObject.style.color = "#fff";
			selectObject.scrollIntoView(false);
		}
		return;
	}
	
	if (window.event.keyCode == 40) {//arrow down
		if (selectObject.nextSibling != null){
			selectObject.style.backgroundColor = "transparent";
			selectObject.style.color = "#000";
			
			selectObject = selectObject.nextSibling;
			activeInput.value = getSpanSearchString(selectObject);
			
			selectObject.style.backgroundColor = selColor;
			selectObject.style.color = "#fff";
			selectObject.scrollIntoView(false);
			return;
		}
	}

	if (window.event.keyCode == 38) {//arrow up
		if (selectObject.previousSibling != null){
			selectObject.style.backgroundColor = "transparent";
			selectObject.style.color = "#000";
			
			selectObject = selectObject.previousSibling;
			activeInput.value = getSpanSearchString(selectObject);

			selectObject.style.backgroundColor = selColor;
			selectObject.style.color = "#fff";
			selectObject.scrollIntoView(false);
			return;
		}
	}
}

function getSpanSearchString(selectObject){
	var objFirstChild = selectObject.firstChild;
	return(objFirstChild.innerText);
}
