Project

General

Profile

Download (22.7 KB) Statistics
| Branch: | Tag: | Revision:
1

    
2

    
3
/**
4
 * DataTables settings object - this holds all the information needed for a
5
 * given table, including configuration, data and current application of the
6
 * table options. DataTables does not have a single instance for each DataTable
7
 * with the settings attached to that instance, but rather instances of the
8
 * DataTable "class" are created on-the-fly as needed (typically by a 
9
 * $().dataTable() call) and the settings object is then applied to that
10
 * instance.
11
 * 
12
 * Note that this object is related to {@link DataTable.defaults} but this 
13
 * one is the internal data store for DataTables's cache of columns. It should
14
 * NOT be manipulated outside of DataTables. Any configuration should be done
15
 * through the initialisation options.
16
 *  @namespace
17
 *  @todo Really should attach the settings object to individual instances so we
18
 *    don't need to create new instances on each $().dataTable() call (if the
19
 *    table already exists). It would also save passing oSettings around and
20
 *    into every single function. However, this is a very significant 
21
 *    architecture change for DataTables and will almost certainly break
22
 *    backwards compatibility with older installations. This is something that
23
 *    will be done in 2.0.
24
 */
25
DataTable.models.oSettings = {
26
	/**
27
	 * Primary features of DataTables and their enablement state.
28
	 *  @namespace
29
	 */
30
	"oFeatures": {
31
		
32
		/**
33
		 * Flag to say if DataTables should automatically try to calculate the
34
		 * optimum table and columns widths (true) or not (false).
35
		 * Note that this parameter will be set by the initialisation routine. To
36
		 * set a default use {@link DataTable.defaults}.
37
		 *  @type boolean
38
		 */
39
		"bAutoWidth": null,
40

    
41
		/**
42
		 * Delay the creation of TR and TD elements until they are actually
43
		 * needed by a driven page draw. This can give a significant speed
44
		 * increase for Ajax source and Javascript source data, but makes no
45
		 * difference at all fro DOM and server-side processing tables.
46
		 * Note that this parameter will be set by the initialisation routine. To
47
		 * set a default use {@link DataTable.defaults}.
48
		 *  @type boolean
49
		 */
50
		"bDeferRender": null,
51
		
52
		/**
53
		 * Enable filtering on the table or not. Note that if this is disabled
54
		 * then there is no filtering at all on the table, including fnFilter.
55
		 * To just remove the filtering input use sDom and remove the 'f' option.
56
		 * Note that this parameter will be set by the initialisation routine. To
57
		 * set a default use {@link DataTable.defaults}.
58
		 *  @type boolean
59
		 */
60
		"bFilter": null,
61
		
62
		/**
63
		 * Table information element (the 'Showing x of y records' div) enable
64
		 * flag.
65
		 * Note that this parameter will be set by the initialisation routine. To
66
		 * set a default use {@link DataTable.defaults}.
67
		 *  @type boolean
68
		 */
69
		"bInfo": null,
70
		
71
		/**
72
		 * Present a user control allowing the end user to change the page size
73
		 * when pagination is enabled.
74
		 * Note that this parameter will be set by the initialisation routine. To
75
		 * set a default use {@link DataTable.defaults}.
76
		 *  @type boolean
77
		 */
78
		"bLengthChange": null,
79

    
80
		/**
81
		 * Pagination enabled or not. Note that if this is disabled then length
82
		 * changing must also be disabled.
83
		 * Note that this parameter will be set by the initialisation routine. To
84
		 * set a default use {@link DataTable.defaults}.
85
		 *  @type boolean
86
		 */
87
		"bPaginate": null,
88
		
89
		/**
90
		 * Processing indicator enable flag whenever DataTables is enacting a
91
		 * user request - typically an Ajax request for server-side processing.
92
		 * Note that this parameter will be set by the initialisation routine. To
93
		 * set a default use {@link DataTable.defaults}.
94
		 *  @type boolean
95
		 */
96
		"bProcessing": null,
97
		
98
		/**
99
		 * Server-side processing enabled flag - when enabled DataTables will
100
		 * get all data from the server for every draw - there is no filtering,
101
		 * sorting or paging done on the client-side.
102
		 * Note that this parameter will be set by the initialisation routine. To
103
		 * set a default use {@link DataTable.defaults}.
104
		 *  @type boolean
105
		 */
106
		"bServerSide": null,
107
		
108
		/**
109
		 * Sorting enablement flag.
110
		 * Note that this parameter will be set by the initialisation routine. To
111
		 * set a default use {@link DataTable.defaults}.
112
		 *  @type boolean
113
		 */
114
		"bSort": null,
115
		
116
		/**
117
		 * Apply a class to the columns which are being sorted to provide a
118
		 * visual highlight or not. This can slow things down when enabled since
119
		 * there is a lot of DOM interaction.
120
		 * Note that this parameter will be set by the initialisation routine. To
121
		 * set a default use {@link DataTable.defaults}.
122
		 *  @type boolean
123
		 */
124
		"bSortClasses": null,
125
		
126
		/**
127
		 * State saving enablement flag.
128
		 * Note that this parameter will be set by the initialisation routine. To
129
		 * set a default use {@link DataTable.defaults}.
130
		 *  @type boolean
131
		 */
132
		"bStateSave": null
133
	},
134
	
135

    
136
	/**
137
	 * Scrolling settings for a table.
138
	 *  @namespace
139
	 */
140
	"oScroll": {
141
		/**
142
		 * Indicate if DataTables should be allowed to set the padding / margin
143
		 * etc for the scrolling header elements or not. Typically you will want
144
		 * this.
145
		 * Note that this parameter will be set by the initialisation routine. To
146
		 * set a default use {@link DataTable.defaults}.
147
		 *  @type boolean
148
		 */
149
		"bAutoCss": null,
150
		
151
		/**
152
		 * When the table is shorter in height than sScrollY, collapse the
153
		 * table container down to the height of the table (when true).
154
		 * Note that this parameter will be set by the initialisation routine. To
155
		 * set a default use {@link DataTable.defaults}.
156
		 *  @type boolean
157
		 */
158
		"bCollapse": null,
159
		
160
		/**
161
		 * Infinite scrolling enablement flag. Now deprecated in favour of
162
		 * using the Scroller plug-in.
163
		 * Note that this parameter will be set by the initialisation routine. To
164
		 * set a default use {@link DataTable.defaults}.
165
		 *  @type boolean
166
		 */
167
		"bInfinite": null,
168
		
169
		/**
170
		 * Width of the scrollbar for the web-browser's platform. Calculated
171
		 * during table initialisation.
172
		 *  @type int
173
		 *  @default 0
174
		 */
175
		"iBarWidth": 0,
176
		
177
		/**
178
		 * Space (in pixels) between the bottom of the scrolling container and 
179
		 * the bottom of the scrolling viewport before the next page is loaded
180
		 * when using infinite scrolling.
181
		 * Note that this parameter will be set by the initialisation routine. To
182
		 * set a default use {@link DataTable.defaults}.
183
		 *  @type int
184
		 */
185
		"iLoadGap": null,
186
		
187
		/**
188
		 * Viewport width for horizontal scrolling. Horizontal scrolling is 
189
		 * disabled if an empty string.
190
		 * Note that this parameter will be set by the initialisation routine. To
191
		 * set a default use {@link DataTable.defaults}.
192
		 *  @type string
193
		 */
194
		"sX": null,
195
		
196
		/**
197
		 * Width to expand the table to when using x-scrolling. Typically you
198
		 * should not need to use this.
199
		 * Note that this parameter will be set by the initialisation routine. To
200
		 * set a default use {@link DataTable.defaults}.
201
		 *  @type string
202
		 *  @deprecated
203
		 */
204
		"sXInner": null,
205
		
206
		/**
207
		 * Viewport height for vertical scrolling. Vertical scrolling is disabled
208
		 * if an empty string.
209
		 * Note that this parameter will be set by the initialisation routine. To
210
		 * set a default use {@link DataTable.defaults}.
211
		 *  @type string
212
		 */
213
		"sY": null
214
	},
215
	
216
	/**
217
	 * Language information for the table.
218
	 *  @namespace
219
	 *  @extends DataTable.defaults.oLanguage
220
	 */
221
	"oLanguage": {
222
		/**
223
		 * Information callback function. See 
224
		 * {@link DataTable.defaults.fnInfoCallback}
225
		 *  @type function
226
		 *  @default null
227
		 */
228
		"fnInfoCallback": null
229
	},
230
	
231
	/**
232
	 * Browser support parameters
233
	 *  @namespace
234
	 */
235
	"oBrowser": {
236
		/**
237
		 * Indicate if the browser incorrectly calculates width:100% inside a
238
		 * scrolling element (IE6/7)
239
		 *  @type boolean
240
		 *  @default false
241
		 */
242
		"bScrollOversize": false
243
	},
244
	
245
	/**
246
	 * Array referencing the nodes which are used for the features. The 
247
	 * parameters of this object match what is allowed by sDom - i.e.
248
	 *   <ul>
249
	 *     <li>'l' - Length changing</li>
250
	 *     <li>'f' - Filtering input</li>
251
	 *     <li>'t' - The table!</li>
252
	 *     <li>'i' - Information</li>
253
	 *     <li>'p' - Pagination</li>
254
	 *     <li>'r' - pRocessing</li>
255
	 *   </ul>
256
	 *  @type array
257
	 *  @default []
258
	 */
259
	"aanFeatures": [],
260
	
261
	/**
262
	 * Store data information - see {@link DataTable.models.oRow} for detailed
263
	 * information.
264
	 *  @type array
265
	 *  @default []
266
	 */
267
	"aoData": [],
268
	
269
	/**
270
	 * Array of indexes which are in the current display (after filtering etc)
271
	 *  @type array
272
	 *  @default []
273
	 */
274
	"aiDisplay": [],
275
	
276
	/**
277
	 * Array of indexes for display - no filtering
278
	 *  @type array
279
	 *  @default []
280
	 */
281
	"aiDisplayMaster": [],
282
	
283
	/**
284
	 * Store information about each column that is in use
285
	 *  @type array
286
	 *  @default []
287
	 */
288
	"aoColumns": [],
289
	
290
	/**
291
	 * Store information about the table's header
292
	 *  @type array
293
	 *  @default []
294
	 */
295
	"aoHeader": [],
296
	
297
	/**
298
	 * Store information about the table's footer
299
	 *  @type array
300
	 *  @default []
301
	 */
302
	"aoFooter": [],
303
	
304
	/**
305
	 * Search data array for regular expression searching
306
	 *  @type array
307
	 *  @default []
308
	 */
309
	"asDataSearch": [],
310
	
311
	/**
312
	 * Store the applied global search information in case we want to force a 
313
	 * research or compare the old search to a new one.
314
	 * Note that this parameter will be set by the initialisation routine. To
315
	 * set a default use {@link DataTable.defaults}.
316
	 *  @namespace
317
	 *  @extends DataTable.models.oSearch
318
	 */
319
	"oPreviousSearch": {},
320
	
321
	/**
322
	 * Store the applied search for each column - see 
323
	 * {@link DataTable.models.oSearch} for the format that is used for the
324
	 * filtering information for each column.
325
	 *  @type array
326
	 *  @default []
327
	 */
328
	"aoPreSearchCols": [],
329
	
330
	/**
331
	 * Sorting that is applied to the table. Note that the inner arrays are
332
	 * used in the following manner:
333
	 * <ul>
334
	 *   <li>Index 0 - column number</li>
335
	 *   <li>Index 1 - current sorting direction</li>
336
	 *   <li>Index 2 - index of asSorting for this column</li>
337
	 * </ul>
338
	 * Note that this parameter will be set by the initialisation routine. To
339
	 * set a default use {@link DataTable.defaults}.
340
	 *  @type array
341
	 *  @todo These inner arrays should really be objects
342
	 */
343
	"aaSorting": null,
344
	
345
	/**
346
	 * Sorting that is always applied to the table (i.e. prefixed in front of
347
	 * aaSorting).
348
	 * Note that this parameter will be set by the initialisation routine. To
349
	 * set a default use {@link DataTable.defaults}.
350
	 *  @type array|null
351
	 *  @default null
352
	 */
353
	"aaSortingFixed": null,
354
	
355
	/**
356
	 * Classes to use for the striping of a table.
357
	 * Note that this parameter will be set by the initialisation routine. To
358
	 * set a default use {@link DataTable.defaults}.
359
	 *  @type array
360
	 *  @default []
361
	 */
362
	"asStripeClasses": null,
363
	
364
	/**
365
	 * If restoring a table - we should restore its striping classes as well
366
	 *  @type array
367
	 *  @default []
368
	 */
369
	"asDestroyStripes": [],
370
	
371
	/**
372
	 * If restoring a table - we should restore its width 
373
	 *  @type int
374
	 *  @default 0
375
	 */
376
	"sDestroyWidth": 0,
377
	
378
	/**
379
	 * Callback functions array for every time a row is inserted (i.e. on a draw).
380
	 *  @type array
381
	 *  @default []
382
	 */
383
	"aoRowCallback": [],
384
	
385
	/**
386
	 * Callback functions for the header on each draw.
387
	 *  @type array
388
	 *  @default []
389
	 */
390
	"aoHeaderCallback": [],
391
	
392
	/**
393
	 * Callback function for the footer on each draw.
394
	 *  @type array
395
	 *  @default []
396
	 */
397
	"aoFooterCallback": [],
398
	
399
	/**
400
	 * Array of callback functions for draw callback functions
401
	 *  @type array
402
	 *  @default []
403
	 */
404
	"aoDrawCallback": [],
405
	
406
	/**
407
	 * Array of callback functions for row created function
408
	 *  @type array
409
	 *  @default []
410
	 */
411
	"aoRowCreatedCallback": [],
412
	
413
	/**
414
	 * Callback functions for just before the table is redrawn. A return of 
415
	 * false will be used to cancel the draw.
416
	 *  @type array
417
	 *  @default []
418
	 */
419
	"aoPreDrawCallback": [],
420
	
421
	/**
422
	 * Callback functions for when the table has been initialised.
423
	 *  @type array
424
	 *  @default []
425
	 */
426
	"aoInitComplete": [],
427

    
428
	
429
	/**
430
	 * Callbacks for modifying the settings to be stored for state saving, prior to
431
	 * saving state.
432
	 *  @type array
433
	 *  @default []
434
	 */
435
	"aoStateSaveParams": [],
436
	
437
	/**
438
	 * Callbacks for modifying the settings that have been stored for state saving
439
	 * prior to using the stored values to restore the state.
440
	 *  @type array
441
	 *  @default []
442
	 */
443
	"aoStateLoadParams": [],
444
	
445
	/**
446
	 * Callbacks for operating on the settings object once the saved state has been
447
	 * loaded
448
	 *  @type array
449
	 *  @default []
450
	 */
451
	"aoStateLoaded": [],
452
	
453
	/**
454
	 * Cache the table ID for quick access
455
	 *  @type string
456
	 *  @default <i>Empty string</i>
457
	 */
458
	"sTableId": "",
459
	
460
	/**
461
	 * The TABLE node for the main table
462
	 *  @type node
463
	 *  @default null
464
	 */
465
	"nTable": null,
466
	
467
	/**
468
	 * Permanent ref to the thead element
469
	 *  @type node
470
	 *  @default null
471
	 */
472
	"nTHead": null,
473
	
474
	/**
475
	 * Permanent ref to the tfoot element - if it exists
476
	 *  @type node
477
	 *  @default null
478
	 */
479
	"nTFoot": null,
480
	
481
	/**
482
	 * Permanent ref to the tbody element
483
	 *  @type node
484
	 *  @default null
485
	 */
486
	"nTBody": null,
487
	
488
	/**
489
	 * Cache the wrapper node (contains all DataTables controlled elements)
490
	 *  @type node
491
	 *  @default null
492
	 */
493
	"nTableWrapper": null,
494
	
495
	/**
496
	 * Indicate if when using server-side processing the loading of data 
497
	 * should be deferred until the second draw.
498
	 * Note that this parameter will be set by the initialisation routine. To
499
	 * set a default use {@link DataTable.defaults}.
500
	 *  @type boolean
501
	 *  @default false
502
	 */
503
	"bDeferLoading": false,
504
	
505
	/**
506
	 * Indicate if all required information has been read in
507
	 *  @type boolean
508
	 *  @default false
509
	 */
510
	"bInitialised": false,
511
	
512
	/**
513
	 * Information about open rows. Each object in the array has the parameters
514
	 * 'nTr' and 'nParent'
515
	 *  @type array
516
	 *  @default []
517
	 */
518
	"aoOpenRows": [],
519
	
520
	/**
521
	 * Dictate the positioning of DataTables' control elements - see
522
	 * {@link DataTable.model.oInit.sDom}.
523
	 * Note that this parameter will be set by the initialisation routine. To
524
	 * set a default use {@link DataTable.defaults}.
525
	 *  @type string
526
	 *  @default null
527
	 */
528
	"sDom": null,
529
	
530
	/**
531
	 * Which type of pagination should be used.
532
	 * Note that this parameter will be set by the initialisation routine. To
533
	 * set a default use {@link DataTable.defaults}.
534
	 *  @type string 
535
	 *  @default two_button
536
	 */
537
	"sPaginationType": "two_button",
538
	
539
	/**
540
	 * The cookie duration (for bStateSave) in seconds.
541
	 * Note that this parameter will be set by the initialisation routine. To
542
	 * set a default use {@link DataTable.defaults}.
543
	 *  @type int
544
	 *  @default 0
545
	 */
546
	"iCookieDuration": 0,
547
	
548
	/**
549
	 * The cookie name prefix.
550
	 * Note that this parameter will be set by the initialisation routine. To
551
	 * set a default use {@link DataTable.defaults}.
552
	 *  @type string
553
	 *  @default <i>Empty string</i>
554
	 */
555
	"sCookiePrefix": "",
556
	
557
	/**
558
	 * Callback function for cookie creation.
559
	 * Note that this parameter will be set by the initialisation routine. To
560
	 * set a default use {@link DataTable.defaults}.
561
	 *  @type function
562
	 *  @default null
563
	 */
564
	"fnCookieCallback": null,
565
	
566
	/**
567
	 * Array of callback functions for state saving. Each array element is an 
568
	 * object with the following parameters:
569
	 *   <ul>
570
	 *     <li>function:fn - function to call. Takes two parameters, oSettings
571
	 *       and the JSON string to save that has been thus far created. Returns
572
	 *       a JSON string to be inserted into a json object 
573
	 *       (i.e. '"param": [ 0, 1, 2]')</li>
574
	 *     <li>string:sName - name of callback</li>
575
	 *   </ul>
576
	 *  @type array
577
	 *  @default []
578
	 */
579
	"aoStateSave": [],
580
	
581
	/**
582
	 * Array of callback functions for state loading. Each array element is an 
583
	 * object with the following parameters:
584
	 *   <ul>
585
	 *     <li>function:fn - function to call. Takes two parameters, oSettings 
586
	 *       and the object stored. May return false to cancel state loading</li>
587
	 *     <li>string:sName - name of callback</li>
588
	 *   </ul>
589
	 *  @type array
590
	 *  @default []
591
	 */
592
	"aoStateLoad": [],
593
	
594
	/**
595
	 * State that was loaded from the cookie. Useful for back reference
596
	 *  @type object
597
	 *  @default null
598
	 */
599
	"oLoadedState": null,
600
	
601
	/**
602
	 * Source url for AJAX data for the table.
603
	 * Note that this parameter will be set by the initialisation routine. To
604
	 * set a default use {@link DataTable.defaults}.
605
	 *  @type string
606
	 *  @default null
607
	 */
608
	"sAjaxSource": null,
609
	
610
	/**
611
	 * Property from a given object from which to read the table data from. This
612
	 * can be an empty string (when not server-side processing), in which case 
613
	 * it is  assumed an an array is given directly.
614
	 * Note that this parameter will be set by the initialisation routine. To
615
	 * set a default use {@link DataTable.defaults}.
616
	 *  @type string
617
	 */
618
	"sAjaxDataProp": null,
619
	
620
	/**
621
	 * Note if draw should be blocked while getting data
622
	 *  @type boolean
623
	 *  @default true
624
	 */
625
	"bAjaxDataGet": true,
626
	
627
	/**
628
	 * The last jQuery XHR object that was used for server-side data gathering. 
629
	 * This can be used for working with the XHR information in one of the 
630
	 * callbacks
631
	 *  @type object
632
	 *  @default null
633
	 */
634
	"jqXHR": null,
635
	
636
	/**
637
	 * Function to get the server-side data.
638
	 * Note that this parameter will be set by the initialisation routine. To
639
	 * set a default use {@link DataTable.defaults}.
640
	 *  @type function
641
	 */
642
	"fnServerData": null,
643
	
644
	/**
645
	 * Functions which are called prior to sending an Ajax request so extra 
646
	 * parameters can easily be sent to the server
647
	 *  @type array
648
	 *  @default []
649
	 */
650
	"aoServerParams": [],
651
	
652
	/**
653
	 * Send the XHR HTTP method - GET or POST (could be PUT or DELETE if 
654
	 * required).
655
	 * Note that this parameter will be set by the initialisation routine. To
656
	 * set a default use {@link DataTable.defaults}.
657
	 *  @type string
658
	 */
659
	"sServerMethod": null,
660
	
661
	/**
662
	 * Format numbers for display.
663
	 * Note that this parameter will be set by the initialisation routine. To
664
	 * set a default use {@link DataTable.defaults}.
665
	 *  @type function
666
	 */
667
	"fnFormatNumber": null,
668
	
669
	/**
670
	 * List of options that can be used for the user selectable length menu.
671
	 * Note that this parameter will be set by the initialisation routine. To
672
	 * set a default use {@link DataTable.defaults}.
673
	 *  @type array
674
	 *  @default []
675
	 */
676
	"aLengthMenu": null,
677
	
678
	/**
679
	 * Counter for the draws that the table does. Also used as a tracker for
680
	 * server-side processing
681
	 *  @type int
682
	 *  @default 0
683
	 */
684
	"iDraw": 0,
685
	
686
	/**
687
	 * Indicate if a redraw is being done - useful for Ajax
688
	 *  @type boolean
689
	 *  @default false
690
	 */
691
	"bDrawing": false,
692
	
693
	/**
694
	 * Draw index (iDraw) of the last error when parsing the returned data
695
	 *  @type int
696
	 *  @default -1
697
	 */
698
	"iDrawError": -1,
699
	
700
	/**
701
	 * Paging display length
702
	 *  @type int
703
	 *  @default 10
704
	 */
705
	"_iDisplayLength": 10,
706

    
707
	/**
708
	 * Paging start point - aiDisplay index
709
	 *  @type int
710
	 *  @default 0
711
	 */
712
	"_iDisplayStart": 0,
713

    
714
	/**
715
	 * Paging end point - aiDisplay index. Use fnDisplayEnd rather than
716
	 * this property to get the end point
717
	 *  @type int
718
	 *  @default 10
719
	 *  @private
720
	 */
721
	"_iDisplayEnd": 10,
722
	
723
	/**
724
	 * Server-side processing - number of records in the result set
725
	 * (i.e. before filtering), Use fnRecordsTotal rather than
726
	 * this property to get the value of the number of records, regardless of
727
	 * the server-side processing setting.
728
	 *  @type int
729
	 *  @default 0
730
	 *  @private
731
	 */
732
	"_iRecordsTotal": 0,
733

    
734
	/**
735
	 * Server-side processing - number of records in the current display set
736
	 * (i.e. after filtering). Use fnRecordsDisplay rather than
737
	 * this property to get the value of the number of records, regardless of
738
	 * the server-side processing setting.
739
	 *  @type boolean
740
	 *  @default 0
741
	 *  @private
742
	 */
743
	"_iRecordsDisplay": 0,
744
	
745
	/**
746
	 * Flag to indicate if jQuery UI marking and classes should be used.
747
	 * Note that this parameter will be set by the initialisation routine. To
748
	 * set a default use {@link DataTable.defaults}.
749
	 *  @type boolean
750
	 */
751
	"bJUI": null,
752
	
753
	/**
754
	 * The classes to use for the table
755
	 *  @type object
756
	 *  @default {}
757
	 */
758
	"oClasses": {},
759
	
760
	/**
761
	 * Flag attached to the settings object so you can check in the draw 
762
	 * callback if filtering has been done in the draw. Deprecated in favour of
763
	 * events.
764
	 *  @type boolean
765
	 *  @default false
766
	 *  @deprecated
767
	 */
768
	"bFiltered": false,
769
	
770
	/**
771
	 * Flag attached to the settings object so you can check in the draw 
772
	 * callback if sorting has been done in the draw. Deprecated in favour of
773
	 * events.
774
	 *  @type boolean
775
	 *  @default false
776
	 *  @deprecated
777
	 */
778
	"bSorted": false,
779
	
780
	/**
781
	 * Indicate that if multiple rows are in the header and there is more than 
782
	 * one unique cell per column, if the top one (true) or bottom one (false) 
783
	 * should be used for sorting / title by DataTables.
784
	 * Note that this parameter will be set by the initialisation routine. To
785
	 * set a default use {@link DataTable.defaults}.
786
	 *  @type boolean
787
	 */
788
	"bSortCellsTop": null,
789
	
790
	/**
791
	 * Initialisation object that is used for the table
792
	 *  @type object
793
	 *  @default null
794
	 */
795
	"oInit": null,
796
	
797
	/**
798
	 * Destroy callback functions - for plug-ins to attach themselves to the
799
	 * destroy so they can clean up markup and events.
800
	 *  @type array
801
	 *  @default []
802
	 */
803
	"aoDestroyCallback": [],
804

    
805
	
806
	/**
807
	 * Get the number of records in the current record set, before filtering
808
	 *  @type function
809
	 */
810
	"fnRecordsTotal": function ()
811
	{
812
		if ( this.oFeatures.bServerSide ) {
813
			return parseInt(this._iRecordsTotal, 10);
814
		} else {
815
			return this.aiDisplayMaster.length;
816
		}
817
	},
818
	
819
	/**
820
	 * Get the number of records in the current record set, after filtering
821
	 *  @type function
822
	 */
823
	"fnRecordsDisplay": function ()
824
	{
825
		if ( this.oFeatures.bServerSide ) {
826
			return parseInt(this._iRecordsDisplay, 10);
827
		} else {
828
			return this.aiDisplay.length;
829
		}
830
	},
831
	
832
	/**
833
	 * Set the display end point - aiDisplay index
834
	 *  @type function
835
	 *  @todo Should do away with _iDisplayEnd and calculate it on-the-fly here
836
	 */
837
	"fnDisplayEnd": function ()
838
	{
839
		if ( this.oFeatures.bServerSide ) {
840
			if ( this.oFeatures.bPaginate === false || this._iDisplayLength == -1 ) {
841
				return this._iDisplayStart+this.aiDisplay.length;
842
			} else {
843
				return Math.min( this._iDisplayStart+this._iDisplayLength, 
844
					this._iRecordsDisplay );
845
			}
846
		} else {
847
			return this._iDisplayEnd;
848
		}
849
	},
850
	
851
	/**
852
	 * The DataTables object for this table
853
	 *  @type object
854
	 *  @default null
855
	 */
856
	"oInstance": null,
857
	
858
	/**
859
	 * Unique identifier for each instance of the DataTables object. If there
860
	 * is an ID on the table node, then it takes that value, otherwise an
861
	 * incrementing internal counter is used.
862
	 *  @type string
863
	 *  @default null
864
	 */
865
	"sInstance": null,
866

    
867
	/**
868
	 * tabindex attribute value that is added to DataTables control elements, allowing
869
	 * keyboard navigation of the table and its controls.
870
	 */
871
	"iTabIndex": 0,
872

    
873
	/**
874
	 * DIV container for the footer scrolling table if scrolling
875
	 */
876
	"nScrollHead": null,
877

    
878
	/**
879
	 * DIV container for the footer scrolling table if scrolling
880
	 */
881
	"nScrollFoot": null
882
};
(7-7/7)