function place_cell(html, num_of_columns) {
    if (num_of_columns === undefined) {
        num_of_columns = 4;
    }

    var obj = jQuery(html);
    
    var min_height = 0;
    var min_height_column = null;

    for (var i = num_of_columns; i >= 1; i--) {
        var column = jQuery('.columns .column.column-' + i);
        // console.log(column);
        if (min_height == 0 || column.height() <= min_height) {
            min_height = column.height();
            min_height_column = column;
        }
    }

    obj.appendTo(min_height_column);
}

function should_preload(num_of_columns) {
    if (num_of_columns === undefined) {
        num_of_columns = 4;
    }

    var min_height = 0;

    for (var i = 1; i <= num_of_columns; i++) {
        var column = jQuery('.column.column-' + i);
        var h = column.height();
        if (min_height == 0 || h <= min_height) {
            min_height = h;
        }
    };

    var scroll_height = $(window).scrollTop();
    var window_height = $(window).height();

    if (min_height - window_height  - scroll_height < 0) {
        // console.log('should_preload');
        return true;
    } else {
        // console.log('should_not_preload');
        return false;
    }
}

function start_auto_pagination(retrieve_new) {
    window.setInterval(function () {
        if (should_preload()) {
            retrieve_new();
        }
    }, 300);
}

