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 search_text = 'Search...';
	$('#search-input').val(search_text);
	$('#search-input').bind('click', function()
	{
		if ($(this).val() == search_text) 
		{
			$(this).val('');
		};
	});
	$('#search-input').bind('blur', function()
	{
		if ($(this).val() == '') 
		{
			$(this).val(search_text);
		};
	});
	
	var i = 0;
	$('#search-input').bind('keyup', function(e)
	{
		if ($(this).attr('value') == "") {
			$('#search-dd').hide();
		} else {
			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() + 'blocks_searchresults/view',
					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) 
			{
				e.preventDefault();
				if ($('#search-dd li.selected a, #search-dd li:hover a').size() > 0) 
				{
					$('#search-dd li.selected a, #search-dd li:hover a').first().click();
					return false;
				};
			}
			// 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);

