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')",
					200
				);				
		}
					
	);
	
	$('#'+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?searchType=ajax&search="+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');
				}
			}
}