﻿/*
* Function: fnPageChange
* Purpose:  Go forwards or backwards in the paging display
* Returns:  array:
* Inputs:   object:oSettings - DataTables settings object
*           bool:bForward - Page forwards (true), or backwards (false). Optional - default true
*           bool:bRedraw - Redraw the table for the new page display. Optional - default true
*/
$.fn.dataTableExt.oApi.fnPageChange = function(oSettings, bForward, bRedraw) {
    /* Set defaults */
    if (typeof bForward == 'undefined') { bForward = true; }
    if (typeof bRedraw == 'undefined') { bRedraw = true; }

    if (!bForward) {
        /* Page to previous page */
        oSettings._iDisplayStart -= oSettings._iDisplayLength;
        if (oSettings._iDisplayStart < 0) {
            oSettings._iDisplayStart = 0;
        }
    }
    else {
        /* Page to next page */
        if (oSettings._iDisplayStart + oSettings._iDisplayLength < oSettings.fnRecordsDisplay()) {
            oSettings._iDisplayStart += oSettings._iDisplayLength;
        }
    }

    if (bRedraw) {
        oSettings.oApi._fnCalculateEnd(oSettings);
        oSettings.oApi._fnDraw(oSettings);
    }
}