/* global $ */
$(document).ready(function () {
var $searchWidget = $('#search_widget');
var $searchBox = $searchWidget.find('input[type=text]');
var searchURL = $searchWidget.attr('data-search-controller-url');
var $clearButton = $searchWidget.find('i.clear');
$.widget('prestashop.psBlockSearchAutocomplete', $.ui.autocomplete, {
_renderItem: function (ul, product) {
var image = (product.cover) ? product.cover : prestashop.urls.no_picture_image;
var $img = $('');
return $("
")
.append($("")
.append($img)
.append($("").html(product.name).addClass("product"))
).appendTo(ul)
;
}
});
var isMobile = function() {
return $(window).width() < 768;
};
var autocompletePosition = function() {
return {
my: 'right top',
at: 'right bottom',
of: isMobile() ? '.header-top' : '#search_widget',
};
};
$searchBox.psBlockSearchAutocomplete({
position: autocompletePosition(),
source: function (query, response) {
$.post(searchURL, {
s: query.term,
resultsPerPage: 10
}, null, 'json')
.then(function (resp) {
response(resp.products);
})
.fail(response);
},
select: function (event, ui) {
var url = ui.item.url;
window.location.href = url;
},
}).psBlockSearchAutocomplete("widget").addClass('searchbar-autocomplete');
$(window).resize(function() {
$searchBox.psBlockSearchAutocomplete({
position: autocompletePosition(),
});
$searchBox.keyup();
});
$clearButton.click(function() {
$searchBox.val("");
$clearButton.hide();
});
$searchBox.keyup(function() {
$clearButton.toggle($searchBox.val() !== "" && isMobile());
});
});