
var quick_search_popup_hovered = false;

function quick_search_onload()
{
	if (!$('#navsearch'))
		return;

	$('#navsearch > a').attr('href', 'javascript:void(0);');
	$('#navsearch > a').click(function() { quick_search(); });
}

/*
	Shows popup
*/
function quick_search()
{
	var element = document.getElementById('navsearch').childNodes[0];
	var pos = findPos(element);
	pos[1] += element.offsetHeight + 3;

	var popup = document.createElement('div');
	popup.setAttribute('id', 'quick_search_popup');

	popup.style.left =  pos[0] + 'px';
	popup.style.top =  pos[1] + 'px';
	document.body.appendChild(popup);

	$('#quick_search_popup').mouseover(function () {quick_search_popup_hovered = true});
	$('#quick_search_popup').mouseout(function () {quick_search_popup_hovered = false});

	$('#quick_search_popup').html('<form id="quick_search_form" action="' + url_search + '" method="get"><div>' +
			'<input type="hidden" name="action" value="search" />' + 
			'<input type="text" size="20" id="quick_search" name="keywords" /><input type="submit" value="' + lang_search['Submit search'] + '" name="search" />' +
			'</div><div>' + lang_search['Display results'] + ': ' + 
			'<input type="radio" id="show_as_topics" name="show_as" value="topics" checked="checked" /><label for="show_as_topics">' + lang_search['Show as topics'] + '</label> ' + 
			'<input type="radio" id="show_as_posts" name="show_as" value="posts" /><label for="show_as_posts">' + lang_search['Show as posts'] + '</label>' + 
		'</div></form>' +
		'<a href="' + url_search + '">' + lang_search['Perform new search'] + '</a>');
	
	$('#quick_search').focus();
	$('#quick_search').select();
	
	$('#quick_search_popup').fadeIn('fast');

	quick_search_popup_hovered = true;

	element.click = function() { $('#quick_search_popup').fadeOut('fast', function() {$(this).remove()}) };

	$(document).click(function() {
			if (quick_search_popup_hovered == false)
				$('#quick_search_popup').fadeOut('fast', function() {$(this).remove()});
		});
}

/*
	Returns obj absolute position [x,y]
*/
function findPos(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent)
	{
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return [curleft,curtop];
}
