    jQuery.initSuggest = function(myOfferType, filter) {
		jQuery('input#autoSuggestResult').val(0);
		jQuery('div#ajaxQueue').data('JSONAutoSuggest', 0);
		jQuery('input#autoSuggestResult').data('noResult', 1);
		
		jQuery('div#suggestInit').data('myOfferType', myOfferType);
		jQuery('div#suggestInit').data('filter', filter);
    }

    jQuery.clickFunctionAutoSuggest = function() {
        if (jQuery('input#autoSuggestResult').data('noResult') == 0) {
        	var idx = jQuery('div#as_input_search_all').data('selectedIdx');
    		jQuery('input#searchInput').val(jQuery('div#dummy li:nth-child(' + idx + ')').data('name'));
    		jQuery('div#as_input_search_all').remove();
    		
    		jQuery('input#autoSuggestResult').val(1);
    		jQuery('input#autoSuggestResult_id').val(jQuery('div#dummy li:nth-child(' + idx + ')').data('id'));
    		jQuery('input#autoSuggestResult_id').data('name', jQuery('div#dummy li:nth-child(' + idx + ')').data('name'));
    		jQuery('input#autoSuggestResult_type').val(jQuery('div#dummy li:nth-child(' + idx + ')').data('typ'));
        }
	}

	jQuery.createListItem = function(json) {
       	jQuery('div#dummy').html('');
       	var counter = 0;
       	
       	jQuery.each(json, function(i, jsonCategory){
           	counter = counter+1;
			var categoryHeader = jQuery.template(headerTemplate);
           	jQuery('div#dummy').append(categoryHeader,
				{
				NAME: jsonCategory.name
               	}
           	);

           	jQuery.each(jsonCategory.lst, function(j, jsonItems){
               	counter = counter+1;
   				var item = jQuery.template(itemTemplate);
               	jQuery('div#dummy').append(item,
       					{
       					NAME: jsonItems.res,
       					PARENT: jsonItems.par
                       	}
                   	);
               	jQuery('div#dummy li:nth-child(' + counter + ')').data('id', jsonItems.id);
               	jQuery('div#dummy li:nth-child(' + counter + ')').data('typ', jsonItems.typ);
               	jQuery('div#dummy li:nth-child(' + counter + ')').data('name', jsonItems.res);
               	jQuery('div#dummy li:nth-child(' + counter + ')').data('parent', jsonItems.par);
               	
           	});
           	
       	});
       	
       	return jQuery('div#dummy').html();
	}

	jQuery('input#searchInput').livequery('keydown', function(keyEvent) {
		
		jQuery('input#autoSuggestResult').val(0);
		var code = keyEvent.keyCode ? keyEvent.keyCode : keyEvent.which;
		if (code == 38 || code == 40) {
			if (jQuery('div#as_input_search_all').length > 0) {
				var idx = jQuery('div#as_input_search_all').data('selectedIdx');
				var orig = -1;
				if (code == 38 && idx > 2) {
					if ( jQuery('ul#as_ul li:nth-child(' + (idx-1) + ')').attr("class") == "as_header" ) { orig = idx; idx = idx-2; }
					else { orig = idx; idx = idx-1; }
				}
				else if (code == 40 && jQuery('ul#as_ul li:nth-child(' + (idx+1) + ')').length > 0) {
					if ( jQuery('ul#as_ul li:nth-child(' + (idx+1) + ')').attr("class") == "as_header" ) { orig = idx; idx = idx+2; }
					else { orig = idx; idx = idx+1; }
				}
				jQuery('div#as_input_search_all').data('selectedIdx', idx); 

				if ( orig != -1 ) {
					jQuery('ul#as_ul li:nth-child(' + orig + ')').removeClass("as_highlight");
					jQuery('ul#as_ul li:nth-child(' + idx + ')').addClass("as_highlight");
				}
				
			}
			
		} else if (code == 13) { // enter
			if (jQuery('div#as_input_search_all').length > 0) {
				jQuery('ul#as_ul li.as_highlight').click();
			}
			return false;
			
		} else if (code == 27) { // escape
			if (jQuery('div#as_input_search_all').length > 0) {
				jQuery('div#as_input_search_all').remove();
			} 
			jQuery('input#autoSuggestResult').val(1);
			jQuery('input#searchInput').val(jQuery('input#autoSuggestResult_id').data('name'));
			
		}
	});
	
	jQuery('input#searchInput').livequery('keyup', function(keyEvent) {
		
		var code = keyEvent.keyCode ? keyEvent.keyCode : keyEvent.which;
		if (code != 38 && code != 40 && code != 13 && code != 27) {
			var myOfferType = jQuery('div#suggestInit').data('myOfferType');
			var filter = jQuery('div#suggestInit').data('filter');
			
			if (jQuery('div#as_input_search_all').length > 0) {
				jQuery('div#as_input_search_all').remove();
			}
			jQuery('div#input_search_all_response').html('');
	
			var searchString = jQuery(this).val();
	
			if (searchString.length > 0) {
	
				var counter = jQuery('div#ajaxQueue').data('JSONAutoSuggest') + 1;
				jQuery('div#ajaxQueue').data('JSONAutoSuggest', counter);
				
				jQuery.ajaxSetup({
					contentType: 'application/x-www-form-urlencoded; charset=' + requestCharset
			  	});
			  	
				jQuery.ajax({
					url: CONTEXT_PATH + '/autoSuggest', 
					type: 'post', 
					dataType: 'json', 
					data: { val: searchString,
							flt: filter,
							offerType: myOfferType },
					success: function(json) {
						
								// biztonsagi szamlalo, ha sokat gepelnenk 1xre..
								counter = jQuery('div#ajaxQueue').data('JSONAutoSuggest') - 1;
								jQuery('div#ajaxQueue').data('JSONAutoSuggest', counter);
	
								if (counter == 0) {
									if (typeof(json.noResult) == "undefined") {
										jQuery('input#autoSuggestResult').data('noResult', 0);
										
										var frame = jQuery.template(suggestFrameTemplate);
	
										jQuery('div#input_search_all_response').append(frame,
											{
											LIST: jQuery.createListItem(json)
											}
										);
	
										jQuery('div#as_input_search_all').css({top: jQuery('input#searchInput').offset().top + jQuery('input#searchInput').outerHeight(), left: jQuery('input#searchInput').offset().left});
										jQuery('div#jimgMenu').after(jQuery('div#input_search_all_response').html());
										jQuery('div#as_input_search_all').data('selectedIdx', 2);
										jQuery('ul#as_ul li:nth-child(2)').addClass("as_highlight");
	
										
										
									} else {
										jQuery('input#autoSuggestResult').data('noResult', 1);
									}
								}
								
							}
				});
				
			} else {
				jQuery('input#autoSuggestResult').data('noResult', 1);
			}
			
			return false;
		}
		
	});

	jQuery('ul#as_ul li.as_highlight').livequery('click', function(){
		jQuery.clickFunctionAutoSuggest();
	});
	
	jQuery('ul#as_ul li').livequery('mouseover', function(){ 
		if ( jQuery(this).attr("class") != "as_header" ) {
			jQuery('ul#as_ul li.as_highlight').removeClass("as_highlight");
			jQuery(this).addClass("as_highlight"); 
			jQuery('div#as_input_search_all').data('selectedIdx', jQuery('ul#as_ul li').index(jQuery(this)) - jQuery(this).siblings().length);
		}
	});

	
	// ha ra-click-elunk az input mezore, jelenjen meg a popup
	jQuery('input#searchInput').live("click", function() { jQuery('input#searchInput').keypress(); });
