jquery-datatables 1.10.19.1 → 1.10.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.gitattributes +1 -0
 - data/README.md +28 -1
 - data/app/assets/javascripts/datatables/dataTables.uikit.js +2 -2
 - data/app/assets/javascripts/datatables/extensions/AutoFill/dataTables.autoFill.js +42 -29
 - data/app/assets/javascripts/datatables/extensions/Buttons/buttons.bootstrap.js +1 -1
 - data/app/assets/javascripts/datatables/extensions/Buttons/buttons.bootstrap4.js +8 -2
 - data/app/assets/javascripts/datatables/extensions/Buttons/buttons.colVis.js +6 -3
 - data/app/assets/javascripts/datatables/extensions/Buttons/buttons.foundation.js +5 -4
 - data/app/assets/javascripts/datatables/extensions/Buttons/buttons.html5.js +58 -6
 - data/app/assets/javascripts/datatables/extensions/Buttons/buttons.print.js +16 -5
 - data/app/assets/javascripts/datatables/extensions/Buttons/buttons.semanticui.js +1 -1
 - data/app/assets/javascripts/datatables/extensions/Buttons/dataTables.buttons.js +267 -152
 - data/app/assets/javascripts/datatables/extensions/ColReorder/colReorder.foundation.js +1 -1
 - data/app/assets/javascripts/datatables/extensions/ColReorder/dataTables.colReorder.js +121 -52
 - data/app/assets/javascripts/datatables/extensions/FixedColumns/dataTables.fixedColumns.js +32 -5
 - data/app/assets/javascripts/datatables/extensions/KeyTable/dataTables.keyTable.js +166 -63
 - data/app/assets/javascripts/datatables/extensions/KeyTable/keyTable.foundation.js +1 -1
 - data/app/assets/javascripts/datatables/extensions/RowGroup/dataTables.rowGroup.js +105 -53
 - data/app/assets/javascripts/datatables/extensions/RowGroup/rowGroup.foundation.js +1 -1
 - data/app/assets/javascripts/datatables/extensions/RowGroup/{rowGroup.semanicui.js → rowGroup.semanticui.js} +0 -0
 - data/app/assets/javascripts/datatables/extensions/RowReorder/dataTables.rowReorder.js +10 -9
 - data/app/assets/javascripts/datatables/extensions/RowReorder/rowReorder.foundation.js +1 -1
 - data/app/assets/javascripts/datatables/extensions/Scroller/dataTables.scroller.js +519 -636
 - data/app/assets/javascripts/datatables/extensions/Scroller/scroller.foundation.js +1 -1
 - data/app/assets/javascripts/datatables/extensions/Select/dataTables.select.js +49 -18
 - data/app/assets/javascripts/datatables/extensions/Select/select.foundation.js +1 -1
 - data/app/assets/javascripts/datatables/jquery.dataTables.js +97 -60
 - data/app/assets/javascripts/datatables/plugins/api/average.js +7 -6
 - data/app/assets/javascripts/datatables/plugins/api/sum.js +7 -6
 - data/app/assets/javascripts/datatables/plugins/pagination/ellipses.js +160 -0
 - data/app/assets/javascripts/datatables/plugins/pagination/extjs.js +137 -0
 - data/app/assets/javascripts/datatables/plugins/pagination/four_button.js +110 -0
 - data/app/assets/javascripts/datatables/plugins/pagination/full_numbers_no_ellipses.js +59 -0
 - data/app/assets/javascripts/datatables/plugins/pagination/input.js +22 -19
 - data/app/assets/javascripts/datatables/plugins/pagination/scrolling.js +130 -0
 - data/app/assets/javascripts/datatables/plugins/pagination/select.js +97 -0
 - data/app/assets/javascripts/datatables/plugins/pagination/simple_incremental_bootstrap.js +154 -0
 - data/app/assets/javascripts/datatables/plugins/pagination/simple_numbers_no_ellipses.js +59 -0
 - data/app/assets/javascripts/datatables/plugins/search/dataTables.alphabetSearch.js +440 -399
 - data/app/assets/javascripts/datatables/plugins/sorting/enum.js +51 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/date-dd-MMM-yyyy.js +63 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/date-de.js +125 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/date-eu.js +64 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/date-euro.js +48 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/date-uk.js +35 -12
 - data/app/assets/javascripts/datatables/plugins/type-detection/datetime-moment.js +74 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/datetime-us.js +86 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/file-size.js +37 -13
 - data/app/assets/javascripts/datatables/plugins/type-detection/ip-address.js +113 -11
 - data/app/assets/javascripts/datatables/plugins/type-detection/numString.js +63 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/percent.js +34 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/time-elapsed-dhms.js +42 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/time.js +56 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/title-numeric.js +40 -0
 - data/app/assets/javascripts/datatables/plugins/type-detection/title-string.js +36 -0
 - data/app/assets/stylesheets/datatables/extensions/AutoFill/autoFill.dataTables.scss +10 -3
 - data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.bootstrap.scss +12 -3
 - data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.bootstrap4.scss +13 -6
 - data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.dataTables.scss +2 -0
 - data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.foundation.scss +5 -1
 - data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.jqueryui.scss +1 -0
 - data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.semanticui.scss +2 -1
 - data/app/assets/stylesheets/datatables/extensions/Buttons/common.scss +10 -0
 - data/app/assets/stylesheets/datatables/extensions/Buttons/mixins.scss +42 -30
 - data/app/assets/stylesheets/datatables/extensions/FixedColumns/fixedColumns.bootstrap.scss +11 -7
 - data/app/assets/stylesheets/datatables/extensions/FixedColumns/fixedColumns.foundation.scss +1 -0
 - data/app/assets/stylesheets/datatables/extensions/KeyTable/keyTable.dataTables.scss +13 -5
 - data/app/assets/stylesheets/datatables/extensions/RowGroup/rowGroup.dataTables.scss +20 -2
 - data/app/assets/stylesheets/datatables/extensions/Scroller/scroller.dataTables.scss +15 -2
 - data/lib/jquery-datatables/version.rb +1 -1
 - metadata +26 -12
 - data/app/assets/javascripts/datatables/dataTables.bootstrap2.js +0 -162
 - data/app/assets/javascripts/datatables/extensions/ColReorder/colReorder.semanicui.js +0 -38
 - data/app/assets/javascripts/datatables/extensions/FixedColumns/fixedColumns.semanicui.js +0 -38
 - data/app/assets/javascripts/datatables/extensions/FixedHeader/fixedHeader.semanicui.js +0 -38
 - data/app/assets/javascripts/datatables/extensions/KeyTable/keyTable.semanicui.js +0 -38
 - data/app/assets/javascripts/datatables/extensions/RowReorder/rowReorder.semanicui.js +0 -38
 - data/app/assets/stylesheets/datatables/dataTables.bootstrap2.scss +0 -178
 
| 
         @@ -21,11 +21,12 @@ 
     | 
|
| 
       21 
21 
     | 
    
         
             
             *    table.cells( 0, [3,4] ).data().average();
         
     | 
| 
       22 
22 
     | 
    
         
             
             */
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
            jQuery.fn.dataTable.Api.register( 
     | 
| 
      
 24 
     | 
    
         
            +
            jQuery.fn.dataTable.Api.register('average()', function () {
         
     | 
| 
       25 
25 
     | 
    
         
             
                var data = this.flatten();
         
     | 
| 
       26 
     | 
    
         
            -
                var sum = data.reduce( 
     | 
| 
       27 
     | 
    
         
            -
                    return (a*1) + (b*1); // cast values in-case they are strings
         
     | 
| 
       28 
     | 
    
         
            -
                }, 0 
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 26 
     | 
    
         
            +
                var sum = data.reduce(function (a, b) {
         
     | 
| 
      
 27 
     | 
    
         
            +
                    return (a * 1) + (b * 1); // cast values in-case they are strings
         
     | 
| 
      
 28 
     | 
    
         
            +
                }, 0);
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       30 
30 
     | 
    
         
             
                return sum / data.length;
         
     | 
| 
       31 
     | 
    
         
            -
            } 
     | 
| 
      
 31 
     | 
    
         
            +
            });
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
         @@ -36,15 +36,16 @@ 
     | 
|
| 
       36 
36 
     | 
    
         
             
             *    } );
         
     | 
| 
       37 
37 
     | 
    
         
             
             */
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
            jQuery.fn.dataTable.Api.register( 
     | 
| 
       40 
     | 
    
         
            -
              return this.flatten().reduce( 
     | 
| 
       41 
     | 
    
         
            -
                if ( 
     | 
| 
      
 39 
     | 
    
         
            +
            jQuery.fn.dataTable.Api.register('sum()', function () {
         
     | 
| 
      
 40 
     | 
    
         
            +
              return this.flatten().reduce(function (a, b) {
         
     | 
| 
      
 41 
     | 
    
         
            +
                if (typeof a === 'string') {
         
     | 
| 
       42 
42 
     | 
    
         
             
                  a = a.replace(/[^\d.-]/g, '') * 1;
         
     | 
| 
       43 
43 
     | 
    
         
             
                }
         
     | 
| 
       44 
     | 
    
         
            -
                if ( 
     | 
| 
      
 44 
     | 
    
         
            +
                if (typeof b === 'string') {
         
     | 
| 
       45 
45 
     | 
    
         
             
                  b = b.replace(/[^\d.-]/g, '') * 1;
         
     | 
| 
       46 
46 
     | 
    
         
             
                }
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
       48 
48 
     | 
    
         
             
                return a + b;
         
     | 
| 
       49 
     | 
    
         
            -
              }, 0 
     | 
| 
       50 
     | 
    
         
            -
            } 
     | 
| 
      
 49 
     | 
    
         
            +
              }, 0);
         
     | 
| 
      
 50 
     | 
    
         
            +
            });
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,160 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /*
         
     | 
| 
      
 2 
     | 
    
         
            +
             * This plug-in adds another pagination option similar to `full_numbers`, except
         
     | 
| 
      
 3 
     | 
    
         
            +
             * it adds ellipses around the page numbers when applicable. You can set how
         
     | 
| 
      
 4 
     | 
    
         
            +
             * many page numbers should be displayed with the iShowPages option.
         
     | 
| 
      
 5 
     | 
    
         
            +
             * 
         
     | 
| 
      
 6 
     | 
    
         
            +
             * This plug- in extends the oStdClasses object with the following properties:
         
     | 
| 
      
 7 
     | 
    
         
            +
             * sPageEllipsis, sPageNumber and sPageNumbers.
         
     | 
| 
      
 8 
     | 
    
         
            +
             * 
         
     | 
| 
      
 9 
     | 
    
         
            +
             * It also extends the oSettings object with the following properties:
         
     | 
| 
      
 10 
     | 
    
         
            +
             * _iShowPages, _iShowPagesHalf, _iCurrentPage, _iTotalPages, _iFirstPage and
         
     | 
| 
      
 11 
     | 
    
         
            +
             * _iLastPage.
         
     | 
| 
      
 12 
     | 
    
         
            +
             *
         
     | 
| 
      
 13 
     | 
    
         
            +
             * Note that DataTables 1.10 has this ability built in. As such, this plug-ins
         
     | 
| 
      
 14 
     | 
    
         
            +
             * has been marked as deprecated, but may still be useful for if you are using
         
     | 
| 
      
 15 
     | 
    
         
            +
             * an old version of DataTables.
         
     | 
| 
      
 16 
     | 
    
         
            +
             *
         
     | 
| 
      
 17 
     | 
    
         
            +
             * @name Ellipses
         
     | 
| 
      
 18 
     | 
    
         
            +
             * @summary Show ellipses in the pagination control where there is a gap in numbers
         
     | 
| 
      
 19 
     | 
    
         
            +
             * @deprecated
         
     | 
| 
      
 20 
     | 
    
         
            +
             * @author [Dave Kennedy](http://daveden.wordpress.com/)
         
     | 
| 
      
 21 
     | 
    
         
            +
             * @example
         
     | 
| 
      
 22 
     | 
    
         
            +
             *     $(document).ready(function() {
         
     | 
| 
      
 23 
     | 
    
         
            +
             *         $('#example').dataTable({
         
     | 
| 
      
 24 
     | 
    
         
            +
             *             'sPaginationType': 'ellipses'
         
     | 
| 
      
 25 
     | 
    
         
            +
             *         });
         
     | 
| 
      
 26 
     | 
    
         
            +
             *     });
         
     | 
| 
      
 27 
     | 
    
         
            +
             */
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            $.extend($.fn.dataTableExt.oStdClasses, {
         
     | 
| 
      
 30 
     | 
    
         
            +
                'sPageEllipsis': 'paginate_ellipsis',
         
     | 
| 
      
 31 
     | 
    
         
            +
                'sPageNumber': 'paginate_number',
         
     | 
| 
      
 32 
     | 
    
         
            +
                'sPageNumbers': 'paginate_numbers'
         
     | 
| 
      
 33 
     | 
    
         
            +
            });
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            $.fn.dataTableExt.oPagination.ellipses = {
         
     | 
| 
      
 36 
     | 
    
         
            +
                'oDefaults': {
         
     | 
| 
      
 37 
     | 
    
         
            +
                    'iShowPages': 5
         
     | 
| 
      
 38 
     | 
    
         
            +
                },
         
     | 
| 
      
 39 
     | 
    
         
            +
                'fnClickHandler': function(e) {
         
     | 
| 
      
 40 
     | 
    
         
            +
                    var fnCallbackDraw = e.data.fnCallbackDraw,
         
     | 
| 
      
 41 
     | 
    
         
            +
                        oSettings = e.data.oSettings,
         
     | 
| 
      
 42 
     | 
    
         
            +
                        sPage = e.data.sPage;
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                    if ($(this).is('[disabled]')) {
         
     | 
| 
      
 45 
     | 
    
         
            +
                        return false;
         
     | 
| 
      
 46 
     | 
    
         
            +
                    }
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                    oSettings.oApi._fnPageChange(oSettings, sPage);
         
     | 
| 
      
 49 
     | 
    
         
            +
                    fnCallbackDraw(oSettings);
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                    return true;
         
     | 
| 
      
 52 
     | 
    
         
            +
                },
         
     | 
| 
      
 53 
     | 
    
         
            +
                // fnInit is called once for each instance of pager
         
     | 
| 
      
 54 
     | 
    
         
            +
                'fnInit': function(oSettings, nPager, fnCallbackDraw) {
         
     | 
| 
      
 55 
     | 
    
         
            +
                    var oClasses = oSettings.oClasses,
         
     | 
| 
      
 56 
     | 
    
         
            +
                        oLang = oSettings.oLanguage.oPaginate,
         
     | 
| 
      
 57 
     | 
    
         
            +
                        that = this;
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                    var iShowPages = oSettings.oInit.iShowPages || this.oDefaults.iShowPages,
         
     | 
| 
      
 60 
     | 
    
         
            +
                        iShowPagesHalf = Math.floor(iShowPages / 2);
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                    $.extend(oSettings, {
         
     | 
| 
      
 63 
     | 
    
         
            +
                        _iShowPages: iShowPages,
         
     | 
| 
      
 64 
     | 
    
         
            +
                        _iShowPagesHalf: iShowPagesHalf,
         
     | 
| 
      
 65 
     | 
    
         
            +
                    });
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                    var oFirst = $('<a class="' + oClasses.sPageButton + ' ' + oClasses.sPageFirst + '">' + oLang.sFirst + '</a>'),
         
     | 
| 
      
 68 
     | 
    
         
            +
                        oPrevious = $('<a class="' + oClasses.sPageButton + ' ' + oClasses.sPagePrevious + '">' + oLang.sPrevious + '</a>'),
         
     | 
| 
      
 69 
     | 
    
         
            +
                        oNumbers = $('<span class="' + oClasses.sPageNumbers + '"></span>'),
         
     | 
| 
      
 70 
     | 
    
         
            +
                        oNext = $('<a class="' + oClasses.sPageButton + ' ' + oClasses.sPageNext + '">' + oLang.sNext + '</a>'),
         
     | 
| 
      
 71 
     | 
    
         
            +
                        oLast = $('<a class="' + oClasses.sPageButton + ' ' + oClasses.sPageLast + '">' + oLang.sLast + '</a>');
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                    oFirst.click({ 'fnCallbackDraw': fnCallbackDraw, 'oSettings': oSettings, 'sPage': 'first' }, that.fnClickHandler);
         
     | 
| 
      
 74 
     | 
    
         
            +
                    oPrevious.click({ 'fnCallbackDraw': fnCallbackDraw, 'oSettings': oSettings, 'sPage': 'previous' }, that.fnClickHandler);
         
     | 
| 
      
 75 
     | 
    
         
            +
                    oNext.click({ 'fnCallbackDraw': fnCallbackDraw, 'oSettings': oSettings, 'sPage': 'next' }, that.fnClickHandler);
         
     | 
| 
      
 76 
     | 
    
         
            +
                    oLast.click({ 'fnCallbackDraw': fnCallbackDraw, 'oSettings': oSettings, 'sPage': 'last' }, that.fnClickHandler);
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                    // Draw
         
     | 
| 
      
 79 
     | 
    
         
            +
                    $(nPager).append(oFirst, oPrevious, oNumbers, oNext, oLast);
         
     | 
| 
      
 80 
     | 
    
         
            +
                },
         
     | 
| 
      
 81 
     | 
    
         
            +
                // fnUpdate is only called once while table is rendered
         
     | 
| 
      
 82 
     | 
    
         
            +
                'fnUpdate': function(oSettings, fnCallbackDraw) {
         
     | 
| 
      
 83 
     | 
    
         
            +
                    var oClasses = oSettings.oClasses,
         
     | 
| 
      
 84 
     | 
    
         
            +
                        that = this;
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                    var tableWrapper = oSettings.nTableWrapper;
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                    // Update stateful properties
         
     | 
| 
      
 89 
     | 
    
         
            +
                    this.fnUpdateState(oSettings);
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
                    if (oSettings._iCurrentPage === 1) {
         
     | 
| 
      
 92 
     | 
    
         
            +
                        $('.' + oClasses.sPageFirst, tableWrapper).attr('disabled', true);
         
     | 
| 
      
 93 
     | 
    
         
            +
                        $('.' + oClasses.sPagePrevious, tableWrapper).attr('disabled', true);
         
     | 
| 
      
 94 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 95 
     | 
    
         
            +
                        $('.' + oClasses.sPageFirst, tableWrapper).removeAttr('disabled');
         
     | 
| 
      
 96 
     | 
    
         
            +
                        $('.' + oClasses.sPagePrevious, tableWrapper).removeAttr('disabled');
         
     | 
| 
      
 97 
     | 
    
         
            +
                    }
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
                    if (oSettings._iTotalPages === 0 || oSettings._iCurrentPage === oSettings._iTotalPages) {
         
     | 
| 
      
 100 
     | 
    
         
            +
                        $('.' + oClasses.sPageNext, tableWrapper).attr('disabled', true);
         
     | 
| 
      
 101 
     | 
    
         
            +
                        $('.' + oClasses.sPageLast, tableWrapper).attr('disabled', true);
         
     | 
| 
      
 102 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 103 
     | 
    
         
            +
                        $('.' + oClasses.sPageNext, tableWrapper).removeAttr('disabled');
         
     | 
| 
      
 104 
     | 
    
         
            +
                        $('.' + oClasses.sPageLast, tableWrapper).removeAttr('disabled');
         
     | 
| 
      
 105 
     | 
    
         
            +
                    }
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
                    var i, oNumber, oNumbers = $('.' + oClasses.sPageNumbers, tableWrapper);
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
                    // Erase
         
     | 
| 
      
 110 
     | 
    
         
            +
                    oNumbers.html('');
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
                    for (i = oSettings._iFirstPage; i <= oSettings._iLastPage; i++) {
         
     | 
| 
      
 113 
     | 
    
         
            +
                        oNumber = $('<a class="' + oClasses.sPageButton + ' ' + oClasses.sPageNumber + '">' + oSettings.fnFormatNumber(i) + '</a>');
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                        if (oSettings._iCurrentPage === i) {
         
     | 
| 
      
 116 
     | 
    
         
            +
                            oNumber.attr('active', true).attr('disabled', true);
         
     | 
| 
      
 117 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 118 
     | 
    
         
            +
                            oNumber.click({ 'fnCallbackDraw': fnCallbackDraw, 'oSettings': oSettings, 'sPage': i - 1 }, that.fnClickHandler);
         
     | 
| 
      
 119 
     | 
    
         
            +
                        }
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                        // Draw
         
     | 
| 
      
 122 
     | 
    
         
            +
                        oNumbers.append(oNumber);
         
     | 
| 
      
 123 
     | 
    
         
            +
                    }
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
                    // Add ellipses
         
     | 
| 
      
 126 
     | 
    
         
            +
                    if (1 < oSettings._iFirstPage) {
         
     | 
| 
      
 127 
     | 
    
         
            +
                        oNumbers.prepend('<span class="' + oClasses.sPageEllipsis + '">...</span>');
         
     | 
| 
      
 128 
     | 
    
         
            +
                    }
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
      
 130 
     | 
    
         
            +
                    if (oSettings._iLastPage < oSettings._iTotalPages) {
         
     | 
| 
      
 131 
     | 
    
         
            +
                        oNumbers.append('<span class="' + oClasses.sPageEllipsis + '">...</span>');
         
     | 
| 
      
 132 
     | 
    
         
            +
                    }
         
     | 
| 
      
 133 
     | 
    
         
            +
                },
         
     | 
| 
      
 134 
     | 
    
         
            +
                // fnUpdateState used to be part of fnUpdate
         
     | 
| 
      
 135 
     | 
    
         
            +
                // The reason for moving is so we can access current state info before fnUpdate is called
         
     | 
| 
      
 136 
     | 
    
         
            +
                'fnUpdateState': function(oSettings) {
         
     | 
| 
      
 137 
     | 
    
         
            +
                    var iCurrentPage = Math.ceil((oSettings._iDisplayStart + 1) / oSettings._iDisplayLength),
         
     | 
| 
      
 138 
     | 
    
         
            +
                        iTotalPages = Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength),
         
     | 
| 
      
 139 
     | 
    
         
            +
                        iFirstPage = iCurrentPage - oSettings._iShowPagesHalf,
         
     | 
| 
      
 140 
     | 
    
         
            +
                        iLastPage = iCurrentPage + oSettings._iShowPagesHalf;
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
                    if (iTotalPages < oSettings._iShowPages) {
         
     | 
| 
      
 143 
     | 
    
         
            +
                        iFirstPage = 1;
         
     | 
| 
      
 144 
     | 
    
         
            +
                        iLastPage = iTotalPages;
         
     | 
| 
      
 145 
     | 
    
         
            +
                    } else if (iFirstPage < 1) {
         
     | 
| 
      
 146 
     | 
    
         
            +
                        iFirstPage = 1;
         
     | 
| 
      
 147 
     | 
    
         
            +
                        iLastPage = oSettings._iShowPages;
         
     | 
| 
      
 148 
     | 
    
         
            +
                    } else if (iLastPage > iTotalPages) {
         
     | 
| 
      
 149 
     | 
    
         
            +
                        iFirstPage = (iTotalPages - oSettings._iShowPages) + 1;
         
     | 
| 
      
 150 
     | 
    
         
            +
                        iLastPage = iTotalPages;
         
     | 
| 
      
 151 
     | 
    
         
            +
                    }
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
                    $.extend(oSettings, {
         
     | 
| 
      
 154 
     | 
    
         
            +
                        _iCurrentPage: iCurrentPage,
         
     | 
| 
      
 155 
     | 
    
         
            +
                        _iTotalPages: iTotalPages,
         
     | 
| 
      
 156 
     | 
    
         
            +
                        _iFirstPage: iFirstPage,
         
     | 
| 
      
 157 
     | 
    
         
            +
                        _iLastPage: iLastPage
         
     | 
| 
      
 158 
     | 
    
         
            +
                    });
         
     | 
| 
      
 159 
     | 
    
         
            +
                }
         
     | 
| 
      
 160 
     | 
    
         
            +
            };
         
     | 
| 
         @@ -0,0 +1,137 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /**
         
     | 
| 
      
 2 
     | 
    
         
            +
             * This pagination plug-in provides pagination controls for DataTables which
         
     | 
| 
      
 3 
     | 
    
         
            +
             * match the style and interaction of the ExtJS library's grid component.
         
     | 
| 
      
 4 
     | 
    
         
            +
             *
         
     | 
| 
      
 5 
     | 
    
         
            +
             *  @name ExtJS style
         
     | 
| 
      
 6 
     | 
    
         
            +
             *  @summary Pagination in the styling of ExtJS
         
     | 
| 
      
 7 
     | 
    
         
            +
             *  @author [Zach Curtis](http://zachariahtimothy.wordpress.com/)
         
     | 
| 
      
 8 
     | 
    
         
            +
             *
         
     | 
| 
      
 9 
     | 
    
         
            +
             *  @example
         
     | 
| 
      
 10 
     | 
    
         
            +
             *    $(document).ready(function() {
         
     | 
| 
      
 11 
     | 
    
         
            +
             *        $('#example').dataTable( {
         
     | 
| 
      
 12 
     | 
    
         
            +
             *            "sPaginationType": "extStyle"
         
     | 
| 
      
 13 
     | 
    
         
            +
             *        } );
         
     | 
| 
      
 14 
     | 
    
         
            +
             *    } );
         
     | 
| 
      
 15 
     | 
    
         
            +
             */
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            $.fn.dataTableExt.oApi.fnExtStylePagingInfo = function ( oSettings )
         
     | 
| 
      
 18 
     | 
    
         
            +
            {
         
     | 
| 
      
 19 
     | 
    
         
            +
            	return {
         
     | 
| 
      
 20 
     | 
    
         
            +
            		"iStart":         oSettings._iDisplayStart,
         
     | 
| 
      
 21 
     | 
    
         
            +
            		"iEnd":           oSettings.fnDisplayEnd(),
         
     | 
| 
      
 22 
     | 
    
         
            +
            		"iLength":        oSettings._iDisplayLength,
         
     | 
| 
      
 23 
     | 
    
         
            +
            		"iTotal":         oSettings.fnRecordsTotal(),
         
     | 
| 
      
 24 
     | 
    
         
            +
            		"iFilteredTotal": oSettings.fnRecordsDisplay(),
         
     | 
| 
      
 25 
     | 
    
         
            +
            		"iPage":          oSettings._iDisplayLength === -1 ?
         
     | 
| 
      
 26 
     | 
    
         
            +
            			0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
         
     | 
| 
      
 27 
     | 
    
         
            +
            		"iTotalPages":    oSettings._iDisplayLength === -1 ?
         
     | 
| 
      
 28 
     | 
    
         
            +
            			0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
         
     | 
| 
      
 29 
     | 
    
         
            +
            	};
         
     | 
| 
      
 30 
     | 
    
         
            +
            };
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            $.fn.dataTableExt.oPagination.extStyle = {
         
     | 
| 
      
 33 
     | 
    
         
            +
                
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                "fnInit": function (oSettings, nPaging, fnCallbackDraw) {
         
     | 
| 
      
 36 
     | 
    
         
            +
                    
         
     | 
| 
      
 37 
     | 
    
         
            +
                    var oPaging = oSettings.oInstance.fnExtStylePagingInfo();
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                    nFirst = $('<span/>', { 'class': 'paginate_button first' , text : "<<" });
         
     | 
| 
      
 40 
     | 
    
         
            +
                    nPrevious = $('<span/>', { 'class': 'paginate_button previous' , text : "<" });
         
     | 
| 
      
 41 
     | 
    
         
            +
                    nNext = $('<span/>', { 'class': 'paginate_button next' , text : ">" });
         
     | 
| 
      
 42 
     | 
    
         
            +
                    nLast = $('<span/>', { 'class': 'paginate_button last' , text : ">>" });
         
     | 
| 
      
 43 
     | 
    
         
            +
                    nPageTxt = $("<span />", { text: 'Page' });
         
     | 
| 
      
 44 
     | 
    
         
            +
                    nPageNumBox = $('<input />', { type: 'text', val: 1, 'class': 'pageinate_input_box' });
         
     | 
| 
      
 45 
     | 
    
         
            +
                    nPageOf = $('<span />', { text: '/' });
         
     | 
| 
      
 46 
     | 
    
         
            +
                    nTotalPages = $('<span />', { class :  "paginate_total" , text : oPaging.iTotalPages });
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                    
         
     | 
| 
      
 49 
     | 
    
         
            +
                    $(nPaging)
         
     | 
| 
      
 50 
     | 
    
         
            +
                        .append(nFirst)
         
     | 
| 
      
 51 
     | 
    
         
            +
                        .append(nPrevious)
         
     | 
| 
      
 52 
     | 
    
         
            +
                        .append(nPageTxt)
         
     | 
| 
      
 53 
     | 
    
         
            +
                        .append(nPageNumBox)
         
     | 
| 
      
 54 
     | 
    
         
            +
                        .append(nPageOf)
         
     | 
| 
      
 55 
     | 
    
         
            +
                        .append(nTotalPages)
         
     | 
| 
      
 56 
     | 
    
         
            +
                        .append(nNext)
         
     | 
| 
      
 57 
     | 
    
         
            +
                        .append(nLast);
         
     | 
| 
      
 58 
     | 
    
         
            +
              
         
     | 
| 
      
 59 
     | 
    
         
            +
                    nFirst.click(function () {
         
     | 
| 
      
 60 
     | 
    
         
            +
                        if( $(this).hasClass("disabled") )
         
     | 
| 
      
 61 
     | 
    
         
            +
                            return;
         
     | 
| 
      
 62 
     | 
    
         
            +
                        oSettings.oApi._fnPageChange(oSettings, "first");
         
     | 
| 
      
 63 
     | 
    
         
            +
                        fnCallbackDraw(oSettings);
         
     | 
| 
      
 64 
     | 
    
         
            +
                    }).bind('selectstart', function () { return false; });
         
     | 
| 
      
 65 
     | 
    
         
            +
              
         
     | 
| 
      
 66 
     | 
    
         
            +
                    nPrevious.click(function () {
         
     | 
| 
      
 67 
     | 
    
         
            +
                        if( $(this).hasClass("disabled") )
         
     | 
| 
      
 68 
     | 
    
         
            +
                            return;
         
     | 
| 
      
 69 
     | 
    
         
            +
                        oSettings.oApi._fnPageChange(oSettings, "previous");
         
     | 
| 
      
 70 
     | 
    
         
            +
                        fnCallbackDraw(oSettings);
         
     | 
| 
      
 71 
     | 
    
         
            +
                    }).bind('selectstart', function () { return false; });
         
     | 
| 
      
 72 
     | 
    
         
            +
              
         
     | 
| 
      
 73 
     | 
    
         
            +
                    nNext.click(function () {
         
     | 
| 
      
 74 
     | 
    
         
            +
                        if( $(this).hasClass("disabled") )
         
     | 
| 
      
 75 
     | 
    
         
            +
                            return;
         
     | 
| 
      
 76 
     | 
    
         
            +
                        oSettings.oApi._fnPageChange(oSettings, "next");
         
     | 
| 
      
 77 
     | 
    
         
            +
                        fnCallbackDraw(oSettings);
         
     | 
| 
      
 78 
     | 
    
         
            +
                    }).bind('selectstart', function () { return false; });
         
     | 
| 
      
 79 
     | 
    
         
            +
              
         
     | 
| 
      
 80 
     | 
    
         
            +
                    nLast.click(function () {
         
     | 
| 
      
 81 
     | 
    
         
            +
                        if( $(this).hasClass("disabled") )
         
     | 
| 
      
 82 
     | 
    
         
            +
                            return;
         
     | 
| 
      
 83 
     | 
    
         
            +
                        oSettings.oApi._fnPageChange(oSettings, "last");
         
     | 
| 
      
 84 
     | 
    
         
            +
                        fnCallbackDraw(oSettings);
         
     | 
| 
      
 85 
     | 
    
         
            +
                    }).bind('selectstart', function () { return false; });
         
     | 
| 
      
 86 
     | 
    
         
            +
              
         
     | 
| 
      
 87 
     | 
    
         
            +
                    nPageNumBox.change(function () {
         
     | 
| 
      
 88 
     | 
    
         
            +
                        var pageValue = parseInt($(this).val(), 10) - 1 ; // -1 because pages are 0 indexed, but the UI is 1
         
     | 
| 
      
 89 
     | 
    
         
            +
                        var oPaging = oSettings.oInstance.fnPagingInfo();
         
     | 
| 
      
 90 
     | 
    
         
            +
                        
         
     | 
| 
      
 91 
     | 
    
         
            +
                        if(pageValue === NaN || pageValue<0 ){
         
     | 
| 
      
 92 
     | 
    
         
            +
                            pageValue = 0;
         
     | 
| 
      
 93 
     | 
    
         
            +
                        }else if(pageValue >= oPaging.iTotalPages ){
         
     | 
| 
      
 94 
     | 
    
         
            +
                            pageValue = oPaging.iTotalPages -1;
         
     | 
| 
      
 95 
     | 
    
         
            +
                        }
         
     | 
| 
      
 96 
     | 
    
         
            +
                        oSettings.oApi._fnPageChange(oSettings, pageValue);
         
     | 
| 
      
 97 
     | 
    
         
            +
                        fnCallbackDraw(oSettings);
         
     | 
| 
      
 98 
     | 
    
         
            +
                    });
         
     | 
| 
      
 99 
     | 
    
         
            +
              
         
     | 
| 
      
 100 
     | 
    
         
            +
                },
         
     | 
| 
      
 101 
     | 
    
         
            +
              
         
     | 
| 
      
 102 
     | 
    
         
            +
              
         
     | 
| 
      
 103 
     | 
    
         
            +
                "fnUpdate": function (oSettings, fnCallbackDraw) {
         
     | 
| 
      
 104 
     | 
    
         
            +
                    if (!oSettings.aanFeatures.p) {
         
     | 
| 
      
 105 
     | 
    
         
            +
                        return;
         
     | 
| 
      
 106 
     | 
    
         
            +
                    }
         
     | 
| 
      
 107 
     | 
    
         
            +
                    
         
     | 
| 
      
 108 
     | 
    
         
            +
                    var oPaging = oSettings.oInstance.fnExtStylePagingInfo();
         
     | 
| 
      
 109 
     | 
    
         
            +
              
         
     | 
| 
      
 110 
     | 
    
         
            +
                    /* Loop over each instance of the pager */
         
     | 
| 
      
 111 
     | 
    
         
            +
                    var an = oSettings.aanFeatures.p;
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
                    $(an).find('span.paginate_total').html(oPaging.iTotalPages);
         
     | 
| 
      
 114 
     | 
    
         
            +
                    $(an).find('.pageinate_input_box').val(oPaging.iPage+1);
         
     | 
| 
      
 115 
     | 
    
         
            +
                            
         
     | 
| 
      
 116 
     | 
    
         
            +
                    $(an).each(function(index,item) {
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
                        var $item = $(item);
         
     | 
| 
      
 119 
     | 
    
         
            +
                       
         
     | 
| 
      
 120 
     | 
    
         
            +
                        if (oPaging.iPage == 0) {
         
     | 
| 
      
 121 
     | 
    
         
            +
                            var prev = $item.find('span.paginate_button.first').add($item.find('span.paginate_button.previous'));
         
     | 
| 
      
 122 
     | 
    
         
            +
                            prev.addClass("disabled");
         
     | 
| 
      
 123 
     | 
    
         
            +
                        }else {
         
     | 
| 
      
 124 
     | 
    
         
            +
                            var prev = $item.find('span.paginate_button.first').add($item.find('span.paginate_button.previous'));
         
     | 
| 
      
 125 
     | 
    
         
            +
                            prev.removeClass("disabled");
         
     | 
| 
      
 126 
     | 
    
         
            +
                        }
         
     | 
| 
      
 127 
     | 
    
         
            +
              
         
     | 
| 
      
 128 
     | 
    
         
            +
                        if (oPaging.iPage+1 == oPaging.iTotalPages) {
         
     | 
| 
      
 129 
     | 
    
         
            +
                            var next = $item.find('span.paginate_button.last').add($item.find('span.paginate_button.next'));
         
     | 
| 
      
 130 
     | 
    
         
            +
                            next.addClass("disabled");
         
     | 
| 
      
 131 
     | 
    
         
            +
                        }else {
         
     | 
| 
      
 132 
     | 
    
         
            +
                            var next = $item.find('span.paginate_button.last').add($item.find('span.paginate_button.next'));
         
     | 
| 
      
 133 
     | 
    
         
            +
                            next.removeClass("disabled");
         
     | 
| 
      
 134 
     | 
    
         
            +
                        }
         
     | 
| 
      
 135 
     | 
    
         
            +
                    });
         
     | 
| 
      
 136 
     | 
    
         
            +
                }
         
     | 
| 
      
 137 
     | 
    
         
            +
            };
         
     | 
| 
         @@ -0,0 +1,110 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /**
         
     | 
| 
      
 2 
     | 
    
         
            +
             * The built-in pagination functions provide either two buttons (forward / back)
         
     | 
| 
      
 3 
     | 
    
         
            +
             * or lots of buttons (forward, back, first, last and individual pages). This
         
     | 
| 
      
 4 
     | 
    
         
            +
             * plug-in meets the two in the middle providing navigation controls for
         
     | 
| 
      
 5 
     | 
    
         
            +
             * forward, back, first and last.
         
     | 
| 
      
 6 
     | 
    
         
            +
             *
         
     | 
| 
      
 7 
     | 
    
         
            +
             * DataTables has this ability built in using the `dt-string full` option of
         
     | 
| 
      
 8 
     | 
    
         
            +
             * the `dt-init pagingType` initialisation option. As such, this plug-in is
         
     | 
| 
      
 9 
     | 
    
         
            +
             * marked as deprecated.
         
     | 
| 
      
 10 
     | 
    
         
            +
             *
         
     | 
| 
      
 11 
     | 
    
         
            +
             *  @name Four button navigation
         
     | 
| 
      
 12 
     | 
    
         
            +
             *  @summary Display forward, back, first and last buttons.
         
     | 
| 
      
 13 
     | 
    
         
            +
             *  @deprecated
         
     | 
| 
      
 14 
     | 
    
         
            +
             *  @author [Allan Jardine](http://sprymedia.co.uk)
         
     | 
| 
      
 15 
     | 
    
         
            +
             *
         
     | 
| 
      
 16 
     | 
    
         
            +
             *  @example
         
     | 
| 
      
 17 
     | 
    
         
            +
             *    $(document).ready(function() {
         
     | 
| 
      
 18 
     | 
    
         
            +
             *        $('#example').dataTable( {
         
     | 
| 
      
 19 
     | 
    
         
            +
             *            "sPaginationType": "four_button"
         
     | 
| 
      
 20 
     | 
    
         
            +
             *        } );
         
     | 
| 
      
 21 
     | 
    
         
            +
             *    } );
         
     | 
| 
      
 22 
     | 
    
         
            +
             */
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            $.fn.dataTableExt.oPagination.four_button = {
         
     | 
| 
      
 25 
     | 
    
         
            +
            	"fnInit": function ( oSettings, nPaging, fnCallbackDraw )
         
     | 
| 
      
 26 
     | 
    
         
            +
            	{
         
     | 
| 
      
 27 
     | 
    
         
            +
            		var nFirst = document.createElement( 'span' );
         
     | 
| 
      
 28 
     | 
    
         
            +
            		var nPrevious = document.createElement( 'span' );
         
     | 
| 
      
 29 
     | 
    
         
            +
            		var nNext = document.createElement( 'span' );
         
     | 
| 
      
 30 
     | 
    
         
            +
            		var nLast = document.createElement( 'span' );
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            		nFirst.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sFirst ) );
         
     | 
| 
      
 33 
     | 
    
         
            +
            		nPrevious.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sPrevious ) );
         
     | 
| 
      
 34 
     | 
    
         
            +
            		nNext.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sNext ) );
         
     | 
| 
      
 35 
     | 
    
         
            +
            		nLast.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sLast ) );
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            		nFirst.className = "paginate_button first";
         
     | 
| 
      
 38 
     | 
    
         
            +
            		nPrevious.className = "paginate_button previous";
         
     | 
| 
      
 39 
     | 
    
         
            +
            		nNext.className="paginate_button next";
         
     | 
| 
      
 40 
     | 
    
         
            +
            		nLast.className = "paginate_button last";
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            		nPaging.appendChild( nFirst );
         
     | 
| 
      
 43 
     | 
    
         
            +
            		nPaging.appendChild( nPrevious );
         
     | 
| 
      
 44 
     | 
    
         
            +
            		nPaging.appendChild( nNext );
         
     | 
| 
      
 45 
     | 
    
         
            +
            		nPaging.appendChild( nLast );
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            		$(nFirst).click( function () {
         
     | 
| 
      
 48 
     | 
    
         
            +
            			oSettings.oApi._fnPageChange( oSettings, "first" );
         
     | 
| 
      
 49 
     | 
    
         
            +
            			fnCallbackDraw( oSettings );
         
     | 
| 
      
 50 
     | 
    
         
            +
            		} );
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            		$(nPrevious).click( function() {
         
     | 
| 
      
 53 
     | 
    
         
            +
            			oSettings.oApi._fnPageChange( oSettings, "previous" );
         
     | 
| 
      
 54 
     | 
    
         
            +
            			fnCallbackDraw( oSettings );
         
     | 
| 
      
 55 
     | 
    
         
            +
            		} );
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            		$(nNext).click( function() {
         
     | 
| 
      
 58 
     | 
    
         
            +
            			oSettings.oApi._fnPageChange( oSettings, "next" );
         
     | 
| 
      
 59 
     | 
    
         
            +
            			fnCallbackDraw( oSettings );
         
     | 
| 
      
 60 
     | 
    
         
            +
            		} );
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
            		$(nLast).click( function() {
         
     | 
| 
      
 63 
     | 
    
         
            +
            			oSettings.oApi._fnPageChange( oSettings, "last" );
         
     | 
| 
      
 64 
     | 
    
         
            +
            			fnCallbackDraw( oSettings );
         
     | 
| 
      
 65 
     | 
    
         
            +
            		} );
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            		/* Disallow text selection */
         
     | 
| 
      
 68 
     | 
    
         
            +
            		$(nFirst).bind( 'selectstart', function () { return false; } );
         
     | 
| 
      
 69 
     | 
    
         
            +
            		$(nPrevious).bind( 'selectstart', function () { return false; } );
         
     | 
| 
      
 70 
     | 
    
         
            +
            		$(nNext).bind( 'selectstart', function () { return false; } );
         
     | 
| 
      
 71 
     | 
    
         
            +
            		$(nLast).bind( 'selectstart', function () { return false; } );
         
     | 
| 
      
 72 
     | 
    
         
            +
            	},
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            	"fnUpdate": function ( oSettings, fnCallbackDraw )
         
     | 
| 
      
 76 
     | 
    
         
            +
            	{
         
     | 
| 
      
 77 
     | 
    
         
            +
            		if ( !oSettings.aanFeatures.p )
         
     | 
| 
      
 78 
     | 
    
         
            +
            		{
         
     | 
| 
      
 79 
     | 
    
         
            +
            			return;
         
     | 
| 
      
 80 
     | 
    
         
            +
            		}
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
            		/* Loop over each instance of the pager */
         
     | 
| 
      
 83 
     | 
    
         
            +
            		var an = oSettings.aanFeatures.p;
         
     | 
| 
      
 84 
     | 
    
         
            +
            		for ( var i=0, iLen=an.length ; i<iLen ; i++ )
         
     | 
| 
      
 85 
     | 
    
         
            +
            		{
         
     | 
| 
      
 86 
     | 
    
         
            +
            			var buttons = an[i].getElementsByTagName('span');
         
     | 
| 
      
 87 
     | 
    
         
            +
            			if ( oSettings._iDisplayStart === 0 )
         
     | 
| 
      
 88 
     | 
    
         
            +
            			{
         
     | 
| 
      
 89 
     | 
    
         
            +
            				buttons[0].className = "paginate_disabled_previous";
         
     | 
| 
      
 90 
     | 
    
         
            +
            				buttons[1].className = "paginate_disabled_previous";
         
     | 
| 
      
 91 
     | 
    
         
            +
            			}
         
     | 
| 
      
 92 
     | 
    
         
            +
            			else
         
     | 
| 
      
 93 
     | 
    
         
            +
            			{
         
     | 
| 
      
 94 
     | 
    
         
            +
            				buttons[0].className = "paginate_enabled_previous";
         
     | 
| 
      
 95 
     | 
    
         
            +
            				buttons[1].className = "paginate_enabled_previous";
         
     | 
| 
      
 96 
     | 
    
         
            +
            			}
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
            			if ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() )
         
     | 
| 
      
 99 
     | 
    
         
            +
            			{
         
     | 
| 
      
 100 
     | 
    
         
            +
            				buttons[2].className = "paginate_disabled_next";
         
     | 
| 
      
 101 
     | 
    
         
            +
            				buttons[3].className = "paginate_disabled_next";
         
     | 
| 
      
 102 
     | 
    
         
            +
            			}
         
     | 
| 
      
 103 
     | 
    
         
            +
            			else
         
     | 
| 
      
 104 
     | 
    
         
            +
            			{
         
     | 
| 
      
 105 
     | 
    
         
            +
            				buttons[2].className = "paginate_enabled_next";
         
     | 
| 
      
 106 
     | 
    
         
            +
            				buttons[3].className = "paginate_enabled_next";
         
     | 
| 
      
 107 
     | 
    
         
            +
            			}
         
     | 
| 
      
 108 
     | 
    
         
            +
            		}
         
     | 
| 
      
 109 
     | 
    
         
            +
            	}
         
     | 
| 
      
 110 
     | 
    
         
            +
            };
         
     |