// initialize a new suggest component
var searchkeywordLookup = new Suggest()
searchkeywordLookup.minCharToStartSearch = 2
var oldAlert = window.alert

function getSuggestData(str) {	
	// which method to use
	var theMethod = "select"
	// saves the string inside the suggest object
	window[selectedSuggestObject.name].setSearchString(str)
	// init data to send so CF
	var criteria
	criteria = window[selectedSuggestObject.name].searchString
	// set loading image
	//DWRUtil.useLoadingImage(_webfolder + "gfx/ajax/loading5.gif")
	
	// send data to CF
	var theMethod = "select"
	window.alert = function(){return null;}; // disable alerts
	DWREngine._execute(_webfolder + "impls/" + _impl_name + "/framework/ajax/suggest.cfc", null, theMethod, criteria, _websiteId, getSuggestDataResult)
}

// call back function
function getSuggestDataResult(r) {
	// show query div
	window[selectedSuggestObject.name].showQueryDiv(r, "id", "title", "type")
	//sDumper(selectedSuggestObject.cache)
	window.alert = oldAlert
}

function searchkeywordSelectionListener(result) {
	// if type is pakket, then send to pakket detail page
	if (result.TYPE == "pakket") {
		document.location.href = _pakketDetailUrl + result.KEY
	} else {
		//this function to sets the hidden field with key value.
		document.forms["searchForm"].type.value = result.TYPE
		document.forms["searchForm"].criteria_id.value = result.KEY
		if (checkSearchForm()) {
			document.forms["searchForm"].submit()
		}
	}
}

function submitOnEnter(e) { //e is event object passed from function invocation
	var characterCode; //literal character code will be stored in this variable
	
	if(e && e.which){ //if which property of event object is supported (NN4)
		e = e
		characterCode = e.which //character code is contained in NN4's which property
	}
	else{
		e = event
		characterCode = e.keyCode //character code is contained in IE's keyCode property
	}
	
	if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
		if (checkSearchForm()) {
			document.forms["searchForm"].submit() //submit the form
		}
	}
}

function initSearchSuggest() {
	// initialize lookup
	searchkeywordLookup.InitQueryCode("searchkeywordLookup", "searchkeyword")
	searchkeywordLookup.setSelectionListener(searchkeywordSelectionListener)
}

// validate searchForm
var checkedWithAJAX = false
function checkSearchForm() {
	 var frm = document.forms["searchForm"]
 	if(frm.searchkeyword.value == "") {
	 	frm.criteria_id.value = '';
		alert("voer eerst een trefwoord in");	
		return false;
	} else if (!checkedWithAJAX) {
		// check of er een pakket is ingevuld
		DWREngine._execute(_webfolder + "impls/" + _impl_name + "/framework/ajax/suggest.cfc", null, "correctSearch", frm.searchkeyword.value, getCheckDataResult);
		return false;
	} else {
		return true;
	}
}

// call back function
function getCheckDataResult(r) {
	myResult = new Object();
	myResult.TYPE = r["type"];
	myResult.TITLE = r["title"];
	myResult.KEY = r["key"]; 

	checkedWithAJAX = true;
	searchkeywordSelectionListener(myResult);
}