 
      
    JavaScript
    2
    Вклад в тег
    
      
      
    
  
  
(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());