(function(){
var xhr_is_sent = false, //флаг отправки
page_counter = 1,
total_node,
total = 0,
last_page = false,
url = '/assets/components/msearch2/action.php',
param_1 = 'tv|area',
param_2 = 'tv|price',
param_3 = 'tv|metro',
area_min,
area_max,
price_min,
price_max,
loader,
items_per_page = 10,
anim_time = 100;
// оборачиваем в jQ для DOM ready
$(function(){
area_min = $('#area_0');
area_max = $('#area_1');
price_min = $('#price_0');
price_max = $('#price_1');
total_node = $('#mse2_total')
loader = $('.loader-content').css({opacity: '0', height: '0px', overflow: 'hidden'});
$('#mse2_results').on('resultsLoaded', function(){
page_counter = 1;
total = total_node.text()|0;
last_page = total > items_per_page ? false : true;
});
total = total_node.text()|0;
last_page = total > items_per_page ? false : true;
});
function showLoader(){
loader.stop(true).css({height: 'auto'}).animate({opacity: '1'}, anim_time, 'linear');
}
function hideLoader(){
loader.stop(true).animate({opacity: '0'}, anim_time, 'linear', function(){
loader.css({height: '0px'});
});
}
$(window).scroll(function() {
var data = {},
url_params = window.location.search.slice(1),
i, max;
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
//отправляем запрос только если завершился предыдущий
if (!xhr_is_sent && !last_page) {
data.action = 'filter';
data.pageId = window.mse2Config.pageId;
data.key = window.mse2Config.key;
data.page = ++page_counter;
xhr_is_sent = true;
last_page = total > items_per_page * page_counter ? false : true;
if (url_params.length > 0) {
url_params = url_params.split('&');
for(i = 0, max = url_params.length; i < max; i++) {
url_params[i] = url_params[i].split('=');
if (url_params[i][0] === param_1) {
data[param_1] = decodeURIComponent(url_params[i][1]);
}
if (url_params[i][0] === param_2) {
data[param_2] = decodeURIComponent(url_params[i][1]);
}
if (url_params[i][0] === param_3) {
data[param_3] = decodeURIComponent(url_params[i][1]);
}
}
}
showLoader();
$.post(url, data, function(data){
$('#mse2_results').append($.parseJSON(data).data.results);
xhr_is_sent = false;
hideLoader();
$(window).trigger('ajax_loaded');
});
}
}
});
})();
function arraysInCommon(arrays){
var i, common,
L= arrays.length, min= Infinity;
while(L){
if(arrays[--L].length<min){
min= arrays[L].length;
i= L;
}
}
common= arrays.splice(i, 1)[0];
return common.filter(function(itm, indx){
if(common.indexOf(itm)== indx){
return arrays.every(function(arr){
return arr.indexOf(itm)!= -1;
});
}
});
}
var arr = ["Улица Академика Янгеля", "Петровско-Разумовская", "Авиамоторная", " "] ;
var massiv = ["Улица Академика Янгеля", "Петровско-Разумовская", "Петровско-Разумовская", "Авиамоторная"];
var allArrays = [ arr, massiv];
console.log(allArrays);
var matches = arraysInCommon(allArrays).sort();
console.log(matches.toString());
// собираем и танции метро из строки и преобразовываем в массив
var metro_stations = "[[*svod_metro]]" ;
var metro_massive = metro_stations.split(',');
console.log(metro_massive);
// собираем значения всех инпутов станций метро и преобразовываем в массив
var input_metro = $('.metro_title').text();
var input_metro_massive = input_metro.split(',');
console.log(input_metro_massive);
// сравниваем массивы
function arraysInCommon(arrays){
var i, common,
L= arrays.length, min= Infinity;
while(L){
if(arrays[--L].length<min){
min= arrays[L].length;
i= L;
}
}
common= arrays.splice(i, 1)[0];
return common.filter(function(itm, indx){
if(common.indexOf(itm)== indx){
return arrays.every(function(arr){
return arr.indexOf(itm)!= -1;
});
}
});
}
var arr = ["Улица Академика Янгеля", "Петровско-Разумовская", "Авиамоторная", " "] ;
var massiv = ["Улица Академика Янгеля", "Петровско-Разумовская", "Петровско-Разумовская", "Авиамоторная"];
var allArrays = [ metro_massive, input_metro_massive];
console.log(allArrays);
var matches = arraysInCommon(allArrays).sort();
console.log(matches.toString());