/* $Id$ */

/**
 * @link	http://shippingkit.com/
 * @copyright	2010 ShippingKit Group. All Rights Reserved.
 */

jQuery.extend({
	autoSuggestMinString: 2,
	autoSuggestSearchTimer: '',
	autoSuggestSearchTimeout: 500,
	autoSuggestFadeOutTimeout: 500
});

jQuery(document).ready(function($){
	var input = $('.top-search input[name="q"]');
	var dispatch = $('.top-search input[name="dispatch"]');
	if (!input)
		return;

	$('div.top-search').append('<ul id="autosuggest"></ul>');
	input.attr('autocomplete', 'off');
	input.keyup(function(){
		if ($.autoSuggestSearchTimer)
			clearTimeout($.autoSuggestSearchTimer);

		if ($(this).val().length < $.autoSuggestMinString) {
			$('#autosuggest').fadeOut();
			return;
		}

		$.autoSuggestSearchTimer = setTimeout(function(){
				var frm = $('.top-search form[name="search_form"]');
				if (!frm)
					return;

				var params = {};
				frm.find("input[@checked], input[@type='text'], input[@type='hidden'], option[@selected]").filter(":enabled").each(function() { params[this.name || this.parentNode.name ] = this.value; });
				params['caller'] = 'autosuggest';

				$.post(frm.attr("action"), params, function(data){
					if (data.length == 0) {
						$('#autosuggest').fadeOut();
						return;
					}
					$('#autosuggest').html(data).fadeIn();
				});
			}, 
			$.autoSuggestSearchTimeout
		);
	});
	input.blur(function(){
		setTimeout(function(){ $('#autosuggest').fadeOut(); }, $.autoSuggestFadeOutTimeout);
	});
}); 
