119 lines
3.6 KiB
JavaScript
Raw Normal View History

2016-04-14 16:14:31 +02:00
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
var instantSearchQueries = [];
$(document).ready(function()
{
if (typeof instantsearch != 'undefined' && instantsearch)
$("#search_query_" + blocksearch_type).keyup(function(){
if($(this).val().length > 4){
stopInstantSearchQueries();
instantSearchQuery = $.ajax({
url: search_url + '?rand=' + new Date().getTime(),
data: {
instantSearch: 1,
id_lang: id_lang,
q: $(this).val()
},
dataType: 'html',
type: 'POST',
headers: { "cache-control": "no-cache" },
async: true,
cache: false,
success: function(data){
if($("#search_query_" + blocksearch_type).val().length > 0)
{
tryToCloseInstantSearch();
$('#center_column').attr('id', 'old_center_column');
$('#old_center_column').after('<div id="center_column" class="' + $('#old_center_column').attr('class') + '">'+data+'</div>');
$('#old_center_column').hide();
// Button override
ajaxCart.overrideButtonsInThePage();
$("#instant_search_results a.close").click(function() {
$("#search_query_" + blocksearch_type).val('');
return tryToCloseInstantSearch();
});
return false;
}
else
tryToCloseInstantSearch();
}
});
instantSearchQueries.push(instantSearchQuery);
}
else
tryToCloseInstantSearch();
});
/* TODO Ids aa blocksearch_type need to be removed*/
var width_ac_results = $("#search_query_" + blocksearch_type).parent('form').width();
if (typeof ajaxsearch != 'undefined' && ajaxsearch && typeof blocksearch_type !== 'undefined' && blocksearch_type)
$("#search_query_" + blocksearch_type).autocomplete(
search_url,
{
minChars: 3,
max: 10,
width: (width_ac_results > 0 ? width_ac_results : 500),
selectFirst: false,
scroll: false,
dataType: "json",
formatItem: function(data, i, max, value, term) {
return value;
},
parse: function(data) {
var mytab = new Array();
for (var i = 0; i < data.length; i++)
mytab[mytab.length] = { data: data[i], value: data[i].cname + ' > ' + data[i].pname };
return mytab;
},
extraParams: {
ajaxSearch: 1,
id_lang: id_lang
}
}
)
.result(function(event, data, formatted) {
$('#search_query_' + blocksearch_type).val(data.pname);
document.location.href = data.product_link;
});
});
function tryToCloseInstantSearch()
{
if ($('#old_center_column').length > 0)
{
$('#center_column').remove();
$('#old_center_column').attr('id', 'center_column');
$('#center_column').show();
return false;
}
}
function stopInstantSearchQueries()
{
for(i=0;i<instantSearchQueries.length;i++)
instantSearchQueries[i].abort();
instantSearchQueries = new Array();
}