summaryrefslogtreecommitdiff
path: root/searx/static/plugins/js/infinite_scroll.js
blob: 9930880e3f5690de57bcd8bdc09e73e74f7954ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function hasScrollbar() {
    var root = document.compatMode=='BackCompat'? document.body : document.documentElement;
    return root.scrollHeight>root.clientHeight;
}

function loadNextPage() {
    var formData = $('#pagination form:last').serialize();
    if (formData) {
        $('#pagination').html('<div class="loading-spinner"></div>');
        $.ajax({
            type: "POST",
            url: './',
            data: formData,
            dataType: 'html',
            success: function(data) {
                var body = $(data);
                $('#pagination').remove();
                $('#main_results').append('<hr/>');
                $('#main_results').append(body.find('.result'));
                $('#main_results').append(body.find('#pagination'));
                if(!hasScrollbar()) {
                    loadNextPage();
                }
            }
        });
    }
}

$(document).ready(function() {
    var win = $(window);
    if(!hasScrollbar()) {
        loadNextPage();
    }
    win.scroll(function() {
        $("#pagination button").css("visibility", "hidden");
        if ($(document).height() - win.height() - win.scrollTop() < 150) {
            loadNextPage();
        }
    });
});