
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;
    };

}