function Pagination(data, table_id, entry_per_page_count) {
    this.data = data;
    this.table_id = table_id;
    this.entry_per_page_count = entry_per_page_count;
    this.page = 0;
    this.max_page = Math.ceil(this.data.length / this.entry_per_page_count);

    this.getData = function(page) {
        var begin_index = page * entry_per_page_count;
        var end_index = begin_index + entry_per_page_count;
        var r_data = new Array();

        end_index = Math.min(end_index, this.data.length);

        var cnt = 0;
        for (var idx = begin_index; idx < end_index; idx++, cnt++) {
            r_data[cnt] = (this.data[idx]);
        }
        return r_data;
    };

    this.getPrevData = function() {
        if (this.page > 0) {
            this.page = this.page - 1;
            return this.getData(this.page);
        }
        return null;
    };

    this.getNextData = function() {
        if (this.page < this.max_page) {
            this.page = this.page + 1;
            return this.getData(this.page);
        }
        return null;
    };

}

