
function hideSuggestionList(objId)
{
	div = new Element('_suggestionlistdiv_'+objId);
	div.hide();
} 

function showSuggestionList(objId)
{
	field = new Element('_suggestionfield_'+objId);
	div = new Element('_suggestionlistdiv_'+objId);
	
	fieldPos = field.getPosition();
	div.setPosition(fieldPos.x, fieldPos.y+22);
	div.show();
}

function selectSuggestionListValue(objId)
{
	list = new Element('_suggestionlistselect_'+objId);
	field = new Element('_suggestionfield_'+objId);
	
	if (list.getValue() != '')
	{
		field.setValue(list.getValue());
		list.getElement().blur();
	}
	
}


var __suggestionVars = new Array();
__suggestionVars['selectunfocustimers'] = new Array();
__suggestionVars['fieldunfocustimers'] = new Array();

function initSuggestionField(objId, size, maxoptions, pajaxFunction)
{
	__suggestionVars[objId] = new Array();
	__suggestionVars[objId]['inputval'] = '*!&<>';
	__suggestionVars[objId]['suggestions'] = new Array();
	__suggestionVars[objId]['prevfieldvalue'] = '*!&<>';
	__suggestionVars[objId]['size'] = size;
	__suggestionVars[objId]['maxoptions'] = maxoptions;
	__suggestionVars[objId]['pajaxFunction'] = pajaxFunction;
}

function suggestionStartsWith(strString, strStart)
{
	strString = strString.toLowerCase();
	strStart = strStart.toLowerCase();
	
	if (strString.length < strStart.length)
		return false;
	
	return (strString.substring(0, strStart.length) == strStart);
} 

function cbSuggestionField(objId, inputval, suggestions)
{
	field = new Element('_suggestionfield_'+objId);
	
	
	if (suggestionStartsWith(field.getValue(), inputval))
	{
		__suggestionVars[objId]['inputval'] = inputval;
		__suggestionVars[objId]['suggestions'] = suggestions;
		
		suggenstionFieldDoSuggestion(objId, true);
	}
} 

function suggestionFieldKeyUp(objId)
{
	field = new Element('_suggestionfield_'+objId);
	fieldvalue = field.getValue();
	
	
	if (fieldvalue == __suggestionVars[objId]['prevfieldvalue'])
		return;
	__suggestionVars[objId]['prevfieldvalue'] = fieldvalue;
	
	suggenstionFieldDoSuggestion(objId);
} 

function suggenstionFieldDoSuggestion(objId, ajaxDelayed)
{
	
	field = new Element('_suggestionfield_'+objId);
	fieldvalue = field.getValue();
	
	if (   fieldvalue == __suggestionVars[objId]['inputval'] ||
				(suggestionStartsWith(fieldvalue, __suggestionVars[objId]['inputval']) && __suggestionVars[objId]['suggestions'].length <= __suggestionVars[objId]['maxoptions']) )
	{
		
		suggestions = __suggestionVars[objId]['suggestions'];
		selectList = getElem('_suggestionlistselect_'+objId);
		selectList.options.length = 0;
		nrOfSuggestions = suggestions.length;
		
		j=0;
		if (nrOfSuggestions > __suggestionVars[objId]['maxoptions'])
		{
			selectList.options[j] = new Option('--te veel opties om te tonen', '');
			j++;
			nrOfSuggestions = __suggestionVars[objId]['maxoptions'];
		}
	
		for (i=0; i<nrOfSuggestions; i++)
		{
			if (suggestionStartsWith(suggestions[i], fieldvalue))
			{
				selectList.options[j] = new Option(suggestions[i], suggestions[i]);
				j++;
			}
		}
		
		if (j >=__suggestionVars[objId]['size'])
			selectList.size = __suggestionVars[objId]['size'];
		else if (j <= 1)
			selectList.size = 2;
		else
			selectList.size = j;
		
		
		if (!ajaxDelayed)
		{
			if (j > 0)
				showSuggestionList(objId);
			else
				hideSuggestionList(objId);
		}
	}
	else if (!ajaxDelayed)
	{
		showSuggestionList(objId);
		pajax_call(__suggestionVars[objId]['pajaxFunction'], fieldvalue, objId, __suggestionVars[objId]['maxoptions']);
	}
	
	
} 


function suggestionFieldUnfocus(objId)
{
	__suggestionVars['fieldunfocustimers'][objId] = self.setTimeout('hideSuggestionList(\''+objId+'\')', 300);
} 

function suggestionListSelectFocus(objId)
{
	if(__suggestionVars['fieldunfocustimers'][objId] != undefined)
	{
		clearTimeout(__suggestionVars['fieldunfocustimers'][objId]);
	}
} 

function suggestionListSelectUnfocus(objId)
{
	__suggestionVars['selectunfocustimers'][objId] = self.setTimeout('hideSuggestionList(\''+objId+'\')', 300);
} 

function suggestionFieldFocus(objId)
{
	suggenstionFieldDoSuggestion(objId);
	showSuggestionList(objId);
	if(__suggestionVars['selectunfocustimers'][objId] != undefined)
		clearTimeout(__suggestionVars['selectunfocustimers'][objId]);
} 	