var req = null;

var runScroll = function(el)
{
	var elof = el.offset();
	var bxof = $('#search-dd ul').offset();
	var amnt = parseInt(elof.top) - parseInt(bxof.top);

	$('#search-dd ul').animate({scrollTop:amnt + 'px'}, 'slow');	
}
var search_init = function()
{
	var i = 0;
	$('#search-input').bind('keyup', function(e)
	{
		var inp = $('#search-input');
		if(e.keyCode  != 27 && e.keyCode != 13 && e.keyCode != 37 && e.keyCode != 38 && e.keyCode != 39 && e.keyCode != 40 && inp.val().length > 1)
		{
			if (req !== null) 
			{
				req.abort();
			}
			
			req = $.ajax({
				type: 'POST',
				url: get_url() + 'search',
				data: inp.parents('form').serialize(),
				success: function(resp)
				{
					i = 0;
					$('#search-dd').remove();
					var v = $('<div id="search-dd">' + resp + '</div>');
					
					v.insertAfter(inp);
					$('#search-dd').css('position', 'absolute');
				
				}
			});
		}
		// Escape
		if (e.keyCode == 27)
		{
			$('#search-dd').remove();
		} 
		// Return
		if (e.keyCode == 13) 
		{
			$('#search-dd li.selected a, #search-dd li:hover a').find().click();
		}
		// UP key (or left)
		if (e.keyCode == 38 || e.keyCode == 37) 
		{
			$('#search-dd li#search_item_' + i).removeClass('selected');
			if(i > 0)
			{
				i--;
				sel = $('#search-dd li#search_item_' + i)
				sel.addClass('selected');	
				
				runScroll(sel);				
			}

		}			
		// Down key (or right)
		if (e.keyCode == 39 || e.keyCode == 40) 
		{
			$('#search-dd li#search_item_' + i).removeClass('selected');
			if(i < $('#search-dd li').size())
			{
				i++;
			}
			var sel = $('#search-dd li#search_item_' + i);
			sel.addClass('selected');
			runScroll(sel);
		}
			
	});
}

$(document).ready(search_init);
