var searchTimer = null;
var selected = 0;
var inAdmin;

function setLocation(location)
{
	inAdmin = (location == "admin")? true : false;
}

function txtPlaceName_keyup(event)
{			
	if (searchTimer)
		window.clearTimeout(searchTimer);									
		
	var div = document.getElementById("searchResults");
				
	if (div.style.visibility == "visible")
	//if (div.style.display == "block")
	{									
		var keycode = event.which ? event.which : event.keyCode;
		
		if (keycode == 38)
		{
			if (selected > 0)
				selected--;
											
			highlightItem();	
			
			var item = document.getElementById("item" + selected);
			if (item != null)
				item.scrollIntoView(true);											
									
			return;					
		}
		else if (keycode == 40)
		{					
			if (document.getElementById("item" + (selected+1)) != null)
				selected++;
				
			highlightItem();
			
			var item = document.getElementById("item" + selected);
			if (item != null)
				item.scrollIntoView(false);
									
			return;
		}					
	}

	searchTimer = window.setTimeout("search()", 500);
}

function txtPlaceName_keypress(event)
{			
	var div = document.getElementById("searchResults");
				
	if (div.style.visibility == "visible")
	//if (div.style.display == "block")
	{									
		var keycode = event.which ? event.which : event.keyCode;
		
		if (keycode == 13)
		{					
			var item = document.getElementById("item" + selected);
			if (item != null)
				selectItem(item.name, item.innerHTML);
																						
			if (event.preventDefault)
				event.preventDefault();
			else
				event.returnValue = false;
		}
	}
}

function search()
{
	var query = document.getElementById("_ctl0_txtPlaceName").value;
	
	if (query.length >= 3)
	{
		var webMethodUrl = (inAdmin)? 'Locations.asmx/GetPlaceNames' : 'Admin/Locations.asmx/GetPlaceNames';
		Request(webMethodUrl, 'query='+query, search_callback);
	}
	else
		hideResults();
}

function search_callback(response)
{							
	if ((response.value != "") && (response.value != null))
		showResults(response.value);
	else
		hideResults();
}

function showResults(results) 
{
	var div = document.getElementById("searchResults");
					
	div.style.height = "auto";
	div.innerHTML = results;
	if (div.offsetHeight > 200)
		div.style.height = "200px";
	div.style.visibility="visible";
	//div.style.display = "block";
	
	selected=0;
	highlightItem();				
}

function highlightItem()
{
	for(var i=0; i<20; i++)
	{
		var item = document.getElementById("item" + i);
		if (item != null)					
			item.className = (i==selected) ? "selected" : "";																											
	}
}

function hideResults()
{
	var div = document.getElementById("searchResults");
	div.style.visibility="hidden";
	//div.style.display = "none";
}

function selectItem(vendorID, placeName)
{
	document.getElementById("_ctl0_txtPlaceName").value = placeName;
	document.getElementById("_ctl0_hdnSlctdPlaceID").value = vendorID;
	hideResults();
}

