Add datatables-1.9.4 and jquery-1.10.2 libraries
[proteocache.git] / webapp / resources / datatables-1.9.4 / examples / plug-ins / paging_plugin.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3         <head>
4                 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
5                 <link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/media/images/favicon.ico" />
6                 
7                 <title>DataTables example</title>
8                 <style type="text/css" title="currentStyle">
9                         @import "../../media/css/demo_page.css";
10                         @import "../../media/css/demo_table.css";
11                 </style>
12                 <script type="text/javascript" language="javascript" src="../../media/js/jquery.js"></script>
13                 <script type="text/javascript" language="javascript" src="../../media/js/jquery.dataTables.js"></script>
14                 <script type="text/javascript" charset="utf-8">
15 /* Time between each scrolling frame */
16 $.fn.dataTableExt.oPagination.iTweenTime = 100;
17
18 $.fn.dataTableExt.oPagination.scrolling = {
19         "fnInit": function ( oSettings, nPaging, fnCallbackDraw )
20         {
21                 var oLang = oSettings.oLanguage.oPaginate;
22                 var oClasses = oSettings.oClasses;
23                 var fnClickHandler = function ( e ) {
24                         if ( oSettings.oApi._fnPageChange( oSettings, e.data.action ) )
25                         {
26                                 fnCallbackDraw( oSettings );
27                         }
28                 };
29
30                 var sAppend = (!oSettings.bJUI) ?
31                         '<a class="'+oSettings.oClasses.sPagePrevDisabled+'" tabindex="'+oSettings.iTabIndex+'" role="button">'+oLang.sPrevious+'</a>'+
32                         '<a class="'+oSettings.oClasses.sPageNextDisabled+'" tabindex="'+oSettings.iTabIndex+'" role="button">'+oLang.sNext+'</a>'
33                         :
34                         '<a class="'+oSettings.oClasses.sPagePrevDisabled+'" tabindex="'+oSettings.iTabIndex+'" role="button"><span class="'+oSettings.oClasses.sPageJUIPrev+'"></span></a>'+
35                         '<a class="'+oSettings.oClasses.sPageNextDisabled+'" tabindex="'+oSettings.iTabIndex+'" role="button"><span class="'+oSettings.oClasses.sPageJUINext+'"></span></a>';
36                 $(nPaging).append( sAppend );
37                 
38                 var els = $('a', nPaging);
39                 var nPrevious = els[0],
40                         nNext = els[1];
41                 
42                 oSettings.oApi._fnBindAction( nPrevious, {action: "previous"}, function() {
43                         /* Disallow paging event during a current paging event */
44                         if ( typeof oSettings.iPagingLoopStart != 'undefined' && oSettings.iPagingLoopStart != -1 )
45                         {
46                                 return;
47                         }
48                         
49                         oSettings.iPagingLoopStart = oSettings._iDisplayStart;
50                         oSettings.iPagingEnd = oSettings._iDisplayStart - oSettings._iDisplayLength;
51                         
52                         /* Correct for underrun */
53                         if ( oSettings.iPagingEnd < 0 )
54                         {
55                           oSettings.iPagingEnd = 0;
56                         }
57                         
58                         var iTween = $.fn.dataTableExt.oPagination.iTweenTime;
59                         var innerLoop = function () {
60                                 if ( oSettings.iPagingLoopStart > oSettings.iPagingEnd ) {
61                                         oSettings.iPagingLoopStart--;
62                                         oSettings._iDisplayStart = oSettings.iPagingLoopStart;
63                                         fnCallbackDraw( oSettings );
64                                         setTimeout( function() { innerLoop(); }, iTween );
65                                 } else {
66                                         oSettings.iPagingLoopStart = -1;
67                                 }
68                         };
69                         innerLoop();
70                 } );
71
72                 oSettings.oApi._fnBindAction( nNext, {action: "next"}, function() {
73                         /* Disallow paging event during a current paging event */
74                         if ( typeof oSettings.iPagingLoopStart != 'undefined' && oSettings.iPagingLoopStart != -1 )
75                         {
76                                 return;
77                         }
78                         
79                         oSettings.iPagingLoopStart = oSettings._iDisplayStart;
80                         
81                         /* Make sure we are not over running the display array */
82                         if ( oSettings._iDisplayStart + oSettings._iDisplayLength < oSettings.fnRecordsDisplay() )
83                         {
84                                 oSettings.iPagingEnd = oSettings._iDisplayStart + oSettings._iDisplayLength;
85                         }
86                         
87                         var iTween = $.fn.dataTableExt.oPagination.iTweenTime;
88                         var innerLoop = function () {
89                                 if ( oSettings.iPagingLoopStart < oSettings.iPagingEnd ) {
90                                         oSettings.iPagingLoopStart++;
91                                         oSettings._iDisplayStart = oSettings.iPagingLoopStart;
92                                         fnCallbackDraw( oSettings );
93                                         setTimeout( function() { innerLoop(); }, iTween );
94                                 } else {
95                                         oSettings.iPagingLoopStart = -1;
96                                 }
97                         };
98                         innerLoop();
99                 } );
100         },
101         
102         "fnUpdate": function ( oSettings, fnCallbackDraw )
103         {
104                 if ( !oSettings.aanFeatures.p )
105                 {
106                         return;
107                 }
108                 
109                 /* Loop over each instance of the pager */
110                 var an = oSettings.aanFeatures.p;
111                 for ( var i=0, iLen=an.length ; i<iLen ; i++ )
112                 {
113                         if ( an[i].childNodes.length !== 0 )
114                         {
115                                 an[i].childNodes[0].className = 
116                                         ( oSettings._iDisplayStart === 0 ) ? 
117                                         oSettings.oClasses.sPagePrevDisabled : oSettings.oClasses.sPagePrevEnabled;
118                                 
119                                 an[i].childNodes[1].className = 
120                                         ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ? 
121                                         oSettings.oClasses.sPageNextDisabled : oSettings.oClasses.sPageNextEnabled;
122                         }
123                 }
124         }
125 }
126                         
127                         $(document).ready(function() {
128                                 $('#example').dataTable( {
129                                         "sPaginationType": "scrolling"
130                                 } );
131                         } );
132                 </script>
133         </head>
134         <body id="dt_example">
135                 <div id="container">
136                         <div class="full_width big">
137                                 DataTables custom pagination plug-in example
138                         </div>
139                         
140                         <h1>Preamble</h1>
141                         <p>The two default pagination styles that DataTables comes with are great for basic tables, but you might which to add extra customisation or a bit of 'glitz'. This plug-in will scroll the table in an animated style.</p>
142                         
143                         <h1>Live example</h1>
144                         <div id="demo">
145 <table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
146         <thead>
147                 <tr>
148                         <th>Rendering engine</th>
149                         <th>Browser</th>
150                         <th>Platform(s)</th>
151                         <th>Engine version</th>
152                         <th>CSS grade</th>
153                 </tr>
154         </thead>
155         <tbody>
156                 <tr class="gradeX">
157                         <td>Trident</td>
158                         <td>Internet
159                                  Explorer 4.0</td>
160                         <td>Win 95+</td>
161                         <td class="center">4</td>
162                         <td class="center">X</td>
163                 </tr>
164                 <tr class="gradeC">
165                         <td>Trident</td>
166                         <td>Internet
167                                  Explorer 5.0</td>
168                         <td>Win 95+</td>
169                         <td class="center">5</td>
170                         <td class="center">C</td>
171                 </tr>
172                 <tr class="gradeA">
173                         <td>Trident</td>
174                         <td>Internet
175                                  Explorer 5.5</td>
176                         <td>Win 95+</td>
177                         <td class="center">5.5</td>
178                         <td class="center">A</td>
179                 </tr>
180                 <tr class="gradeA">
181                         <td>Trident</td>
182                         <td>Internet
183                                  Explorer 6</td>
184                         <td>Win 98+</td>
185                         <td class="center">6</td>
186                         <td class="center">A</td>
187                 </tr>
188                 <tr class="gradeA">
189                         <td>Trident</td>
190                         <td>Internet Explorer 7</td>
191                         <td>Win XP SP2+</td>
192                         <td class="center">7</td>
193                         <td class="center">A</td>
194                 </tr>
195                 <tr class="gradeA">
196                         <td>Trident</td>
197                         <td>AOL browser (AOL desktop)</td>
198                         <td>Win XP</td>
199                         <td class="center">6</td>
200                         <td class="center">A</td>
201                 </tr>
202                 <tr class="gradeA">
203                         <td>Gecko</td>
204                         <td>Firefox 1.0</td>
205                         <td>Win 98+ / OSX.2+</td>
206                         <td class="center">1.7</td>
207                         <td class="center">A</td>
208                 </tr>
209                 <tr class="gradeA">
210                         <td>Gecko</td>
211                         <td>Firefox 1.5</td>
212                         <td>Win 98+ / OSX.2+</td>
213                         <td class="center">1.8</td>
214                         <td class="center">A</td>
215                 </tr>
216                 <tr class="gradeA">
217                         <td>Gecko</td>
218                         <td>Firefox 2.0</td>
219                         <td>Win 98+ / OSX.2+</td>
220                         <td class="center">1.8</td>
221                         <td class="center">A</td>
222                 </tr>
223                 <tr class="gradeA">
224                         <td>Gecko</td>
225                         <td>Firefox 3.0</td>
226                         <td>Win 2k+ / OSX.3+</td>
227                         <td class="center">1.9</td>
228                         <td class="center">A</td>
229                 </tr>
230                 <tr class="gradeA">
231                         <td>Gecko</td>
232                         <td>Camino 1.0</td>
233                         <td>OSX.2+</td>
234                         <td class="center">1.8</td>
235                         <td class="center">A</td>
236                 </tr>
237                 <tr class="gradeA">
238                         <td>Gecko</td>
239                         <td>Camino 1.5</td>
240                         <td>OSX.3+</td>
241                         <td class="center">1.8</td>
242                         <td class="center">A</td>
243                 </tr>
244                 <tr class="gradeA">
245                         <td>Gecko</td>
246                         <td>Netscape 7.2</td>
247                         <td>Win 95+ / Mac OS 8.6-9.2</td>
248                         <td class="center">1.7</td>
249                         <td class="center">A</td>
250                 </tr>
251                 <tr class="gradeA">
252                         <td>Gecko</td>
253                         <td>Netscape Browser 8</td>
254                         <td>Win 98SE+</td>
255                         <td class="center">1.7</td>
256                         <td class="center">A</td>
257                 </tr>
258                 <tr class="gradeA">
259                         <td>Gecko</td>
260                         <td>Netscape Navigator 9</td>
261                         <td>Win 98+ / OSX.2+</td>
262                         <td class="center">1.8</td>
263                         <td class="center">A</td>
264                 </tr>
265                 <tr class="gradeA">
266                         <td>Gecko</td>
267                         <td>Mozilla 1.0</td>
268                         <td>Win 95+ / OSX.1+</td>
269                         <td class="center">1</td>
270                         <td class="center">A</td>
271                 </tr>
272                 <tr class="gradeA">
273                         <td>Gecko</td>
274                         <td>Mozilla 1.1</td>
275                         <td>Win 95+ / OSX.1+</td>
276                         <td class="center">1.1</td>
277                         <td class="center">A</td>
278                 </tr>
279                 <tr class="gradeA">
280                         <td>Gecko</td>
281                         <td>Mozilla 1.2</td>
282                         <td>Win 95+ / OSX.1+</td>
283                         <td class="center">1.2</td>
284                         <td class="center">A</td>
285                 </tr>
286                 <tr class="gradeA">
287                         <td>Gecko</td>
288                         <td>Mozilla 1.3</td>
289                         <td>Win 95+ / OSX.1+</td>
290                         <td class="center">1.3</td>
291                         <td class="center">A</td>
292                 </tr>
293                 <tr class="gradeA">
294                         <td>Gecko</td>
295                         <td>Mozilla 1.4</td>
296                         <td>Win 95+ / OSX.1+</td>
297                         <td class="center">1.4</td>
298                         <td class="center">A</td>
299                 </tr>
300                 <tr class="gradeA">
301                         <td>Gecko</td>
302                         <td>Mozilla 1.5</td>
303                         <td>Win 95+ / OSX.1+</td>
304                         <td class="center">1.5</td>
305                         <td class="center">A</td>
306                 </tr>
307                 <tr class="gradeA">
308                         <td>Gecko</td>
309                         <td>Mozilla 1.6</td>
310                         <td>Win 95+ / OSX.1+</td>
311                         <td class="center">1.6</td>
312                         <td class="center">A</td>
313                 </tr>
314                 <tr class="gradeA">
315                         <td>Gecko</td>
316                         <td>Mozilla 1.7</td>
317                         <td>Win 98+ / OSX.1+</td>
318                         <td class="center">1.7</td>
319                         <td class="center">A</td>
320                 </tr>
321                 <tr class="gradeA">
322                         <td>Gecko</td>
323                         <td>Mozilla 1.8</td>
324                         <td>Win 98+ / OSX.1+</td>
325                         <td class="center">1.8</td>
326                         <td class="center">A</td>
327                 </tr>
328                 <tr class="gradeA">
329                         <td>Gecko</td>
330                         <td>Seamonkey 1.1</td>
331                         <td>Win 98+ / OSX.2+</td>
332                         <td class="center">1.8</td>
333                         <td class="center">A</td>
334                 </tr>
335                 <tr class="gradeA">
336                         <td>Gecko</td>
337                         <td>Epiphany 2.20</td>
338                         <td>Gnome</td>
339                         <td class="center">1.8</td>
340                         <td class="center">A</td>
341                 </tr>
342                 <tr class="gradeA">
343                         <td>Webkit</td>
344                         <td>Safari 1.2</td>
345                         <td>OSX.3</td>
346                         <td class="center">125.5</td>
347                         <td class="center">A</td>
348                 </tr>
349                 <tr class="gradeA">
350                         <td>Webkit</td>
351                         <td>Safari 1.3</td>
352                         <td>OSX.3</td>
353                         <td class="center">312.8</td>
354                         <td class="center">A</td>
355                 </tr>
356                 <tr class="gradeA">
357                         <td>Webkit</td>
358                         <td>Safari 2.0</td>
359                         <td>OSX.4+</td>
360                         <td class="center">419.3</td>
361                         <td class="center">A</td>
362                 </tr>
363                 <tr class="gradeA">
364                         <td>Webkit</td>
365                         <td>Safari 3.0</td>
366                         <td>OSX.4+</td>
367                         <td class="center">522.1</td>
368                         <td class="center">A</td>
369                 </tr>
370                 <tr class="gradeA">
371                         <td>Webkit</td>
372                         <td>OmniWeb 5.5</td>
373                         <td>OSX.4+</td>
374                         <td class="center">420</td>
375                         <td class="center">A</td>
376                 </tr>
377                 <tr class="gradeA">
378                         <td>Webkit</td>
379                         <td>iPod Touch / iPhone</td>
380                         <td>iPod</td>
381                         <td class="center">420.1</td>
382                         <td class="center">A</td>
383                 </tr>
384                 <tr class="gradeA">
385                         <td>Webkit</td>
386                         <td>S60</td>
387                         <td>S60</td>
388                         <td class="center">413</td>
389                         <td class="center">A</td>
390                 </tr>
391                 <tr class="gradeA">
392                         <td>Presto</td>
393                         <td>Opera 7.0</td>
394                         <td>Win 95+ / OSX.1+</td>
395                         <td class="center">-</td>
396                         <td class="center">A</td>
397                 </tr>
398                 <tr class="gradeA">
399                         <td>Presto</td>
400                         <td>Opera 7.5</td>
401                         <td>Win 95+ / OSX.2+</td>
402                         <td class="center">-</td>
403                         <td class="center">A</td>
404                 </tr>
405                 <tr class="gradeA">
406                         <td>Presto</td>
407                         <td>Opera 8.0</td>
408                         <td>Win 95+ / OSX.2+</td>
409                         <td class="center">-</td>
410                         <td class="center">A</td>
411                 </tr>
412                 <tr class="gradeA">
413                         <td>Presto</td>
414                         <td>Opera 8.5</td>
415                         <td>Win 95+ / OSX.2+</td>
416                         <td class="center">-</td>
417                         <td class="center">A</td>
418                 </tr>
419                 <tr class="gradeA">
420                         <td>Presto</td>
421                         <td>Opera 9.0</td>
422                         <td>Win 95+ / OSX.3+</td>
423                         <td class="center">-</td>
424                         <td class="center">A</td>
425                 </tr>
426                 <tr class="gradeA">
427                         <td>Presto</td>
428                         <td>Opera 9.2</td>
429                         <td>Win 88+ / OSX.3+</td>
430                         <td class="center">-</td>
431                         <td class="center">A</td>
432                 </tr>
433                 <tr class="gradeA">
434                         <td>Presto</td>
435                         <td>Opera 9.5</td>
436                         <td>Win 88+ / OSX.3+</td>
437                         <td class="center">-</td>
438                         <td class="center">A</td>
439                 </tr>
440                 <tr class="gradeA">
441                         <td>Presto</td>
442                         <td>Opera for Wii</td>
443                         <td>Wii</td>
444                         <td class="center">-</td>
445                         <td class="center">A</td>
446                 </tr>
447                 <tr class="gradeA">
448                         <td>Presto</td>
449                         <td>Nokia N800</td>
450                         <td>N800</td>
451                         <td class="center">-</td>
452                         <td class="center">A</td>
453                 </tr>
454                 <tr class="gradeA">
455                         <td>Presto</td>
456                         <td>Nintendo DS browser</td>
457                         <td>Nintendo DS</td>
458                         <td class="center">8.5</td>
459                         <td class="center">C/A<sup>1</sup></td>
460                 </tr>
461                 <tr class="gradeC">
462                         <td>KHTML</td>
463                         <td>Konqureror 3.1</td>
464                         <td>KDE 3.1</td>
465                         <td class="center">3.1</td>
466                         <td class="center">C</td>
467                 </tr>
468                 <tr class="gradeA">
469                         <td>KHTML</td>
470                         <td>Konqureror 3.3</td>
471                         <td>KDE 3.3</td>
472                         <td class="center">3.3</td>
473                         <td class="center">A</td>
474                 </tr>
475                 <tr class="gradeA">
476                         <td>KHTML</td>
477                         <td>Konqureror 3.5</td>
478                         <td>KDE 3.5</td>
479                         <td class="center">3.5</td>
480                         <td class="center">A</td>
481                 </tr>
482                 <tr class="gradeX">
483                         <td>Tasman</td>
484                         <td>Internet Explorer 4.5</td>
485                         <td>Mac OS 8-9</td>
486                         <td class="center">-</td>
487                         <td class="center">X</td>
488                 </tr>
489                 <tr class="gradeC">
490                         <td>Tasman</td>
491                         <td>Internet Explorer 5.1</td>
492                         <td>Mac OS 7.6-9</td>
493                         <td class="center">1</td>
494                         <td class="center">C</td>
495                 </tr>
496                 <tr class="gradeC">
497                         <td>Tasman</td>
498                         <td>Internet Explorer 5.2</td>
499                         <td>Mac OS 8-X</td>
500                         <td class="center">1</td>
501                         <td class="center">C</td>
502                 </tr>
503                 <tr class="gradeA">
504                         <td>Misc</td>
505                         <td>NetFront 3.1</td>
506                         <td>Embedded devices</td>
507                         <td class="center">-</td>
508                         <td class="center">C</td>
509                 </tr>
510                 <tr class="gradeA">
511                         <td>Misc</td>
512                         <td>NetFront 3.4</td>
513                         <td>Embedded devices</td>
514                         <td class="center">-</td>
515                         <td class="center">A</td>
516                 </tr>
517                 <tr class="gradeX">
518                         <td>Misc</td>
519                         <td>Dillo 0.8</td>
520                         <td>Embedded devices</td>
521                         <td class="center">-</td>
522                         <td class="center">X</td>
523                 </tr>
524                 <tr class="gradeX">
525                         <td>Misc</td>
526                         <td>Links</td>
527                         <td>Text only</td>
528                         <td class="center">-</td>
529                         <td class="center">X</td>
530                 </tr>
531                 <tr class="gradeX">
532                         <td>Misc</td>
533                         <td>Lynx</td>
534                         <td>Text only</td>
535                         <td class="center">-</td>
536                         <td class="center">X</td>
537                 </tr>
538                 <tr class="gradeC">
539                         <td>Misc</td>
540                         <td>IE Mobile</td>
541                         <td>Windows Mobile 6</td>
542                         <td class="center">-</td>
543                         <td class="center">C</td>
544                 </tr>
545                 <tr class="gradeC">
546                         <td>Misc</td>
547                         <td>PSP browser</td>
548                         <td>PSP</td>
549                         <td class="center">-</td>
550                         <td class="center">C</td>
551                 </tr>
552                 <tr class="gradeU">
553                         <td>Other browsers</td>
554                         <td>All others</td>
555                         <td>-</td>
556                         <td class="center">-</td>
557                         <td class="center">U</td>
558                 </tr>
559         </tbody>
560         <tfoot>
561                 <tr>
562                         <th>Rendering engine</th>
563                         <th>Browser</th>
564                         <th>Platform(s)</th>
565                         <th>Engine version</th>
566                         <th>CSS grade</th>
567                 </tr>
568         </tfoot>
569 </table>
570                         </div>
571                         <div class="spacer"></div>
572                         
573                         
574                         <h1>Initialisation code</h1>
575                         <pre class="brush: js;">/* Time between each scrolling frame */
576 $.fn.dataTableExt.oPagination.iTweenTime = 100;
577
578 $.fn.dataTableExt.oPagination.scrolling = {
579         "fnInit": function ( oSettings, nPaging, fnCallbackDraw )
580         {
581                 /* Store the next and previous elements in the oSettings object as they can be very
582                  * usful for automation - particularly testing
583                  */
584                 var nPrevious = document.createElement( 'div' );
585                 var nNext = document.createElement( 'div' );
586                 
587                 if ( oSettings.sTableId !== '' )
588                 {
589                         nPaging.setAttribute( 'id', oSettings.sTableId+'_paginate' );
590                         nPrevious.setAttribute( 'id', oSettings.sTableId+'_previous' );
591                         nNext.setAttribute( 'id', oSettings.sTableId+'_next' );
592                 }
593                 
594                 nPrevious.className = "paginate_disabled_previous";
595                 nNext.className = "paginate_disabled_next";
596                 
597                 nPrevious.title = oSettings.oLanguage.oPaginate.sPrevious;
598                 nNext.title = oSettings.oLanguage.oPaginate.sNext;
599                 
600                 nPaging.appendChild( nPrevious );
601                 nPaging.appendChild( nNext );
602                 
603                 $(nPrevious).click( function() {
604                         /* Disallow paging event during a current paging event */
605                         if ( typeof oSettings.iPagingLoopStart != 'undefined' &amp;&amp; oSettings.iPagingLoopStart != -1 )
606                         {
607                                 return;
608                         }
609                         
610                         oSettings.iPagingLoopStart = oSettings._iDisplayStart;
611                         oSettings.iPagingEnd = oSettings._iDisplayStart - oSettings._iDisplayLength;
612                         
613                         /* Correct for underrun */
614                         if ( oSettings.iPagingEnd &lt; 0 )
615                         {
616                           oSettings.iPagingEnd = 0;
617                         }
618                         
619                         var iTween = $.fn.dataTableExt.oPagination.iTweenTime;
620                         var innerLoop = function () {
621                                 if ( oSettings.iPagingLoopStart &gt; oSettings.iPagingEnd ) {
622                                         oSettings.iPagingLoopStart--;
623                                         oSettings._iDisplayStart = oSettings.iPagingLoopStart;
624                                         fnCallbackDraw( oSettings );
625                                         setTimeout( function() { innerLoop(); }, iTween );
626                                 } else {
627                                         oSettings.iPagingLoopStart = -1;
628                                 }
629                         };
630                         innerLoop();
631                 } );
632                 
633                 $(nNext).click( function() {
634                         /* Disallow paging event during a current paging event */
635                         if ( typeof oSettings.iPagingLoopStart != 'undefined' &amp;&amp; oSettings.iPagingLoopStart != -1 )
636                         {
637                                 return;
638                         }
639                         
640                         oSettings.iPagingLoopStart = oSettings._iDisplayStart;
641                         
642                         /* Make sure we are not over running the display array */
643                         if ( oSettings._iDisplayStart + oSettings._iDisplayLength &lt; oSettings.fnRecordsDisplay() )
644                         {
645                                 oSettings.iPagingEnd = oSettings._iDisplayStart + oSettings._iDisplayLength;
646                         }
647                         
648                         var iTween = $.fn.dataTableExt.oPagination.iTweenTime;
649                         var innerLoop = function () {
650                                 if ( oSettings.iPagingLoopStart &lt; oSettings.iPagingEnd ) {
651                                         oSettings.iPagingLoopStart++;
652                                         oSettings._iDisplayStart = oSettings.iPagingLoopStart;
653                                         fnCallbackDraw( oSettings );
654                                         setTimeout( function() { innerLoop(); }, iTween );
655                                 } else {
656                                         oSettings.iPagingLoopStart = -1;
657                                 }
658                         };
659                         innerLoop();
660                 } );
661                 
662                 /* Take the brutal approach to cancelling text selection */
663                 $(nPrevious).bind( 'selectstart', function () { return false; } );
664                 $(nNext).bind( 'selectstart', function () { return false; } );
665         },
666         
667         "fnUpdate": function ( oSettings, fnCallbackDraw )
668         {
669                 if ( !oSettings.aanFeatures.p )
670                 {
671                         return;
672                 }
673                 
674                 /* Loop over each instance of the pager */
675                 var an = oSettings.aanFeatures.p;
676                 for ( var i=0, iLen=an.length ; i&lt;iLen ; i++ )
677                 {
678                         if ( an[i].childNodes.length !== 0 )
679                         {
680                                 an[i].childNodes[0].className = 
681                                         ( oSettings._iDisplayStart === 0 ) ? 
682                                         oSettings.oClasses.sPagePrevDisabled : oSettings.oClasses.sPagePrevEnabled;
683                                 
684                                 an[i].childNodes[1].className = 
685                                         ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ? 
686                                         oSettings.oClasses.sPageNextDisabled : oSettings.oClasses.sPageNextEnabled;
687                         }
688                 }
689         }
690 }
691
692 $(document).ready(function() {
693         $('#example').dataTable( {
694                 "sPaginationType": "scrolling"
695         } );
696 } );</pre>
697                         <style type="text/css">
698                                 @import "../examples_support/syntax/css/shCore.css";
699                         </style>
700                         <script type="text/javascript" language="javascript" src="../examples_support/syntax/js/shCore.js"></script>
701                         
702                         
703                         <h1>Other examples</h1>
704                         <div class="demo_links">
705                                 <h2>Basic initialisation</h2>
706                                 <ul>
707                                         <li><a href="../basic_init/zero_config.html">Zero configuration</a></li>
708                                         <li><a href="../basic_init/filter_only.html">Feature enablement</a></li>
709                                         <li><a href="../basic_init/table_sorting.html">Sorting data</a></li>
710                                         <li><a href="../basic_init/multi_col_sort.html">Multi-column sorting</a></li>
711                                         <li><a href="../basic_init/multiple_tables.html">Multiple tables</a></li>
712                                         <li><a href="../basic_init/hidden_columns.html">Hidden columns</a></li>
713                                         <li><a href="../basic_init/complex_header.html">Complex headers - grouping with colspan</a></li>
714                                         <li><a href="../basic_init/dom.html">DOM positioning</a></li>
715                                         <li><a href="../basic_init/flexible_width.html">Flexible table width</a></li>
716                                         <li><a href="../basic_init/state_save.html">State saving</a></li>
717                                         <li><a href="../basic_init/alt_pagination.html">Alternative pagination styles</a></li>
718                                         <li>Scrolling: <br>
719                                                 <a href="../basic_init/scroll_x.html">Horizontal</a> / 
720                                                 <a href="../basic_init/scroll_y.html">Vertical</a> / 
721                                                 <a href="../basic_init/scroll_xy.html">Both</a> / 
722                                                 <a href="../basic_init/scroll_y_theme.html">Themed</a> / 
723                                                 <a href="../basic_init/scroll_y_infinite.html">Infinite</a>
724                                         </li>
725                                         <li><a href="../basic_init/language.html">Change language information (internationalisation)</a></li>
726                                         <li><a href="../basic_init/themes.html">ThemeRoller themes (Smoothness)</a></li>
727                                 </ul>
728                                 
729                                 <h2>Advanced initialisation</h2>
730                                 <ul>
731                                         <li>Events: <br>
732                                                 <a href="../advanced_init/events_live.html">Live events</a> / 
733                                                 <a href="../advanced_init/events_pre_init.html">Pre-init</a> / 
734                                                 <a href="../advanced_init/events_post_init.html">Post-init</a>
735                                         </li>
736                                         <li><a href="../advanced_init/column_render.html">Column rendering</a></li>
737                                         <li><a href="../advanced_init/html_sort.html">Sorting without HTML tags</a></li>
738                                         <li><a href="../advanced_init/dom_multiple_elements.html">Multiple table controls (sDom)</a></li>
739                                         <li><a href="../advanced_init/length_menu.html">Defining length menu options</a></li>
740                                         <li><a href="../advanced_init/complex_header.html">Complex headers and hidden columns</a></li>
741                                         <li><a href="../advanced_init/dom_toolbar.html">Custom toolbar (element) around table</a></li>
742                                         <li><a href="../advanced_init/highlight.html">Row highlighting with CSS</a></li>
743                                         <li><a href="../advanced_init/row_grouping.html">Row grouping</a></li>
744                                         <li><a href="../advanced_init/row_callback.html">Row callback</a></li>
745                                         <li><a href="../advanced_init/footer_callback.html">Footer callback</a></li>
746                                         <li><a href="../advanced_init/sorting_control.html">Control sorting direction of columns</a></li>
747                                         <li><a href="../advanced_init/language_file.html">Change language information from a file (internationalisation)</a></li>
748                                         <li><a href="../advanced_init/defaults.html">Setting defaults</a></li>
749                                         <li><a href="../advanced_init/localstorage.html">State saving with localStorage</a></li>
750                                         <li><a href="../advanced_init/dt_events.html">Custom events</a></li>
751                                 </ul>
752                                 
753                                 <h2>API</h2>
754                                 <ul>
755                                         <li><a href="../api/add_row.html">Dynamically add a new row</a></li>
756                                         <li><a href="../api/multi_filter.html">Individual column filtering (using "input" elements)</a></li>
757                                         <li><a href="../api/multi_filter_select.html">Individual column filtering (using "select" elements)</a></li>
758                                         <li><a href="../api/highlight.html">Highlight rows and columns</a></li>
759                                         <li><a href="../api/row_details.html">Show and hide details about a particular record</a></li>
760                                         <li><a href="../api/select_row.html">User selectable rows (multiple rows)</a></li>
761                                         <li><a href="../api/select_single_row.html">User selectable rows (single row) and delete rows</a></li>
762                                         <li><a href="../api/editable.html">Editable rows (with jEditable)</a></li>
763                                         <li><a href="../api/form.html">Submit form with elements in table</a></li>
764                                         <li><a href="../api/counter_column.html">Index column (static number column)</a></li>
765                                         <li><a href="../api/show_hide.html">Show and hide columns dynamically</a></li>
766                                         <li><a href="../api/api_in_init.html">API function use in initialisation object (callback)</a></li>
767                                         <li><a href="../api/tabs_and_scrolling.html">DataTables scrolling and tabs</a></li>
768                                         <li><a href="../api/regex.html">Regular expression filtering</a></li>
769                                 </ul>
770                         </div>
771                         
772                         <div class="demo_links">
773                                 <h2>Data sources</h2>
774                                 <ul>
775                                         <li><a href="../data_sources/dom.html">DOM</a></li>
776                                         <li><a href="../data_sources/js_array.html">Javascript array</a></li>
777                                         <li><a href="../data_sources/ajax.html">Ajax source</a></li>
778                                         <li><a href="../data_sources/server_side.html">Server side processing</a></li>
779                                 </ul>
780                                 
781                                 <h2>Server-side processing</h2>
782                                 <ul>
783                                         <li><a href="../server_side/server_side.html">Obtain server-side data</a></li>
784                                         <li><a href="../server_side/custom_vars.html">Add extra HTTP variables</a></li>
785                                         <li><a href="../server_side/post.html">Use HTTP POST</a></li>
786                                         <li><a href="../server_side/ids.html">Automatic addition of IDs and classes to rows</a></li>
787                                         <li><a href="../server_side/object_data.html">Reading table data from objects</a></li>
788                                         <li><a href="../server_side/row_details.html">Show and hide details about a particular record</a></li>
789                                         <li><a href="../server_side/select_rows.html">User selectable rows (multiple rows)</a></li>
790                                         <li><a href="../server_side/jsonp.html">JSONP for a cross domain data source</a></li>
791                                         <li><a href="../server_side/editable.html">jEditable integration with DataTables</a></li>
792                                         <li><a href="../server_side/defer_loading.html">Deferred loading of Ajax data</a></li>
793                                         <li><a href="../server_side/pipeline.html">Pipelining data (reduce Ajax calls for paging)</a></li>
794                                 </ul>
795                                 
796                                 <h2>Ajax data source</h2>
797                                 <ul>
798                                         <li><a href="../ajax/ajax.html">Ajax sourced data (array of arrays)</a></li>
799                                         <li><a href="../ajax/objects.html">Ajax sourced data (array of objects)</a></li>
800                                         <li><a href="../ajax/defer_render.html">Deferred DOM creation for extra speed</a></li>
801                                         <li><a href="../ajax/null_data_source.html">Empty data source columns</a></li>
802                                         <li><a href="../ajax/custom_data_property.html">Use a data source other than aaData (the default)</a></li>
803                                         <li><a href="../ajax/objects_subarrays.html">Read column data from sub-arrays</a></li>
804                                         <li><a href="../ajax/deep.html">Read column data from deeply nested properties</a></li>
805                                 </ul>
806                                 
807                                 <h2>Plug-ins</h2>
808                                 <ul>
809                                         <li><a href="../plug-ins/plugin_api.html">Add custom API functions</a></li>
810                                         <li><a href="../plug-ins/sorting_plugin.html">Sorting and automatic type detection</a></li>
811                                         <li><a href="../plug-ins/sorting_sType.html">Sorting without automatic type detection</a></li>
812                                         <li><a href="../plug-ins/paging_plugin.html">Custom pagination controls</a></li>
813                                         <li><a href="../plug-ins/range_filtering.html">Range filtering / custom filtering</a></li>
814                                         <li><a href="../plug-ins/dom_sort.html">Live DOM sorting</a></li>
815                                         <li><a href="../plug-ins/html_sort.html">Automatic HTML type detection</a></li>
816                                 </ul>
817                         </div>
818                         
819                         
820                         <div id="footer" class="clear" style="text-align:center;">
821                                 <p>
822                                         Please refer to the <a href="http://www.datatables.net/usage">DataTables documentation</a> for full information about its API properties and methods.<br>
823                                         Additionally, there are a wide range of <a href="http://www.datatables.net/extras">extras</a> and <a href="http://www.datatables.net/plug-ins">plug-ins</a> which extend the capabilities of DataTables.
824                                 </p>
825                                 
826                                 <span style="font-size:10px;">
827                                         DataTables designed and created by <a href="http://www.sprymedia.co.uk">Allan Jardine</a> &copy; 2007-2011<br>
828                                         DataTables is dual licensed under the <a href="http://www.datatables.net/license_gpl2">GPL v2 license</a> or a <a href="http://www.datatables.net/license_bsd">BSD (3-point) license</a>.
829                                 </span>
830                         </div>
831                 </div>
832         </body>
833 </html>