$(document).ready( function() {

	var base_path = "/";
    var $ac_form = $("form#vyhledavani");
    var $ac_form_input = $("#vyhledat");

    var ajaxCache = {};

    $ac_form_input.autocomplete({
        source: function(request, response) {

            var query_type = $(this).attr('element').attr('id');

            var cachedTerm = (request.term + '' + query_type);

            if (ajaxCache[cachedTerm] != undefined && ajaxCache[cachedTerm].length < 13) {

                response($.map(ajaxCache[cachedTerm], function(item) {
                    return {
                        label: item.value,
                        value: item.value
                    }
                }));
            } else {
                $.ajax({
                    url: base_path + "katalog/vyhledavani/ajax",
                    dataType: "json",
                    type: 'POST',
                    data: {
                        query_type: query_type,
                        q: request.term
                    },
                    success: function(data) {
                        ajaxCache[cachedTerm] = data;

                        response($.map(data, function(item) {
                            return {
                                label: item.label,
                                value: item.value,
                                pid: item.pid
                            }
                        }));
                    }
                });
            }
        },
        minLength: 2,

        select: function(event, ui) {
            $ac_form.append('<input id="autocomplete_id" name="autocomplete_id" type="hidden" value="'+ui.item.pid+'" />');
            this.close
            $ac_form.submit();
        }
    });

});
