if (typeof icom == 'undefined') {
	icom = {};
}

icom.suggest = {};
icom.suggests = Array();

icom.suggest.create = function(searchId, suggestId) {	
	var suggestIndex = icom.suggests.length;
	
	icom.suggests[suggestIndex] = {mouseIsOver: true, hasFocus: true, keyupcount: 0};
	
	$('#' + searchId).bind(
		'keyup',		
		{
			searchId: searchId,
			suggestId: suggestId,
			suggestIndex: suggestIndex
		},		
		function(event) {	
			icom.suggests[event.data.suggestIndex].keyupcount++;
			setTimeout(
				"icom.suggest.status('" + searchId + "' , '" + event.data.suggestId + "' , '" + event.data.suggestIndex + "', 'focused')",
				500
			);				
		}					
	);
	
	$('#' + searchId).bind(
		'focus',
		{
			searchId: searchId,
			suggestId: suggestId,
			suggestIndex: suggestIndex
		},
		function(event) {
			if ($('#' + event.data.searchId)[0].value == 'Search') {
				$('#' + event.data.searchId)[0].value = '';
				
				return;
			};
			
			icom.suggests[suggestIndex].hasFocus = true;
			icom.suggest.status(event.data.searchId , event.data.suggestId , event.data.suggestIndex, 'focused');
		}					
	);
	
	$('#' + searchId).bind(
		'blur',
		{
			searchId: searchId,
			suggestId: suggestId,
			suggestIndex: suggestIndex
		},
		function(event) {
			icom.suggests[suggestIndex].hasFocus = false;
			icom.suggest.status(searchId , event.data.suggestId , event.data.suggestIndex, 'blur');
		}
					
	);	
	
	$('#' + suggestId).bind(
		'mouseover',	
		{
			searchId: searchId,
			suggestId: suggestId,
			suggestIndex: suggestIndex
		},
		function(event){
			icom.suggests[suggestIndex].mouseIsOver = true;
		}				
	);

	$('#' + suggestId).bind(
		'mouseout',
		{
			searchId: searchId,
			suggestId: suggestId,
			suggestIndex: suggestIndex
		},
		function(event) {
			icom.suggests[suggestIndex].mouseIsOver = false;
			
			//slight delay as ie loses mouseover on scroll
			setTimeout(
				"icom.suggest.status('" + searchId + "' , '" + event.data.suggestId + "' , '" + event.data.suggestIndex + "', 'blur')",
				10
			);
		}			
	);	
}

icom.suggest.status = function(searchId, suggestId, suggestIndex, event) {
	if (event == 'focused') {
		if (icom.suggests[suggestIndex].keyupcount < 1) {
			icom.suggests[suggestIndex].keyupcount = 1; //FIX
		}
		
		if (icom.suggests[suggestIndex].keyupcount == 1) {
			var searchElement = $('#' + searchId);
			var value = searchElement.val().replace(/ /g, '%20');
			
			var data = $.ajax({
				url: 'search.html?ajax=true&keywords=' + value,
				async: false
			}).responseText;
			
			if (value == searchElement.val().replace(/ /g, '%20')) {
				$('#' + suggestId).css('display', 'block');	
				document.getElementById(suggestId).innerHTML = data;
			}

		}
		icom.suggests[suggestIndex].keyupcount--;
		
	} else if (event == 'blur') {
		if (!icom.suggests[suggestIndex].mouseIsOver && !icom.suggests[suggestIndex].hasFocus) {
			$('#' + suggestId).css('display', 'none');
		}
	}
}
