# HG changeset patch # User saskia-hiltemann # Date 1404229343 14400 # Node ID ac5f9272033b955dcf32f6c5f60f550d47f5fe1c first upload diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/Readme.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/Readme.txt Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,11 @@ +This DataTables plugin (v1.9.x) for jQuery was developed out of the desire to allow highly configurable access to HTML tables with advanced access features. + +For detailed installation, usage and API instructions, please refer to the DataTables web-pages: http://www.datatables.net + +Questions, feature requests and bug reports (etc) can all be asked on the DataTables forums: http://www.datatables.net/forums/ + +The DataTables source can be found in the media/js/ directory of this archive. + +DataTables is released with dual licensing, using the GPL v2 (license-gpl2.txt) and an BSD style license (license-bsd.txt). You may select which of the two licenses you wish to use DataTables under. Please see the corresponding license file for details of these licenses. You are free to use, modify and distribute this software, but all copyright information must remain. + +If you discover any bugs in DataTables, have any suggestions for improvements or even if you just like using it, please free to get in touch with me: www.datatables.net/contact \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/component.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/component.json Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,11 @@ +{ + "name": "DataTables", + "version": "1.9.4", + "main": [ + "./media/js/jquery.dataTables.js", + "./media/css/jquery.dataTables.css", + ], + "dependencies": { + "jquery": "~1.8.0" + } +} diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/34cdb56b2c.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/34cdb56b2c.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,1972 @@ + + + + + Namespace: oApi - documentation + + + + + + + + + +
+ + +
+

Namespace: oApi

+

Ancestry: DataTable# ยป oApi

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Reference to internal functions for use by plug-in developers. Note that these +methods are references to internal functions and are considered to be private. +If you use these methods, be aware that they are liable to change between versions +(check the upgrade notes).

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> _fnJsonString

JSON stringify. If JSON.stringify it provided by the browser, json2.js or any other +library, then we use that as it is fast, safe and accurate. If the function isn't +available then we need to built it ourselves - the inspiration for this function comes +from Craig Buckler ( http://www.sitepoint.com/javascript-json-serialization/ ). It is +not perfect and absolutely should not be used as a replacement to json2.js - but it does +do what we need, without requiring a dependency for DataTables.

+

Methods - static

+ +
+
<static> _fnAddColumn(oSettings, nTh)

Add a column to the list used for the table with default values

<static> _fnAddData(oSettings, aData) → {int}

Add a data array to the table, creating DOM node etc. This is the parallel to +_fnGatherData, but for adding rows from a Javascript source, rather than a +DOM source.

<static> _fnAddOptionsHtml(oSettings)

Add the options to the page HTML for the table

<static> _fnAdjustColumnSizing(oSettings)

Adjust the table column widths for new data. Note: you would probably want to +do a redraw after calling this function!

<static> _fnAjaxParameters(oSettings) → {bool}

Build up the parameters in an object needed for a server-side processing request

<static> _fnAjaxUpdate(oSettings) → {boolean}

Update the table using an Ajax call

<static> _fnAjaxUpdateDraw(oSettings, json)

Data the data from the server (nuking the old) and redraw the table

<static> _fnApplyColumnDefs(oSettings, aoColDefs, aoCols, fn)

Take the column definitions and static columns arrays and calculate how +they relate to column indexes. The callback function will then apply the +definition found for a column to a suitable configuration object.

<static> _fnApplyToChildren(fn, array, array)

Apply a given function to the display child nodes of an element array (typically +TD children of TR rows

<static> _fnBindAction(n, oData, fn)

Bind an event handers to allow a click or return key to activate the callback. +This is good for accessibility since a return on the keyboard will have the +same effect as a click, if the element has focus.

<static> _fnBrowserDetect(oSettings)

From some browsers (specifically IE6/7) we need special handling to work around browser +bugs - this function is used to detect when these workarounds are needed.

<static> _fnBuildHead(oSettings)

Create the HTML header for the table

<static> _fnBuildSearchArray(oSettings, iMaster)

Create an array which can be quickly search through

<static> _fnBuildSearchRow(oSettings, aData)

Create a searchable string from a single data row

<static> _fnCalculateColumnWidths(oSettings)

Calculate the width of columns for the table

<static> _fnCalculateEnd(oSettings)

Recalculate the end point based on the start point

<static> _fnCallbackFire(oSettings, sStore, sTrigger, aArgs)

Fire callback functions and trigger events. Note that the loop over the callback +array store is done backwards! Further note that you do not want to fire off triggers +in time sensitive applications (for example cell creation) as its slow.

<static> _fnCallbackReg(oSettings, sStore, fn, sName)

Register a callback function. Easily allows a callback function to be added to +an array store of callback functions that can then all be called together.

<static> _fnClearTable(oSettings)

Nuke the table

<static> _fnColumnIndexToVisible(iMatch, oSettings) → {int}

Covert the index of an index in the data array and convert it to the visible + column index (take account of hidden columns)

<static> _fnColumnOptions(oSettings, iCol, oOptions)

Apply options for a column

<static> _fnColumnOrdering(oSettings) → {string}

Get the column ordering that DataTables expects

<static> _fnConvertToWidth(sWidth, nParent) → {int}

Convert a CSS unit width to pixels (e.g. 2em)

<static> _fnCreateCookie(sName, sValue, iSecs, sBaseName, fnCallback)

Create a new cookie with a value to store the state of a table

<static> _fnCreateTr(oSettings, iRow)

Create a new TR element (and it's TD children) for a row

<static> _fnDataToSearch(sData, sType) → {string}

Convert raw data into something that the user can search on

<static> _fnDeleteIndex(a, iTarget)

Take an array of integers (index array) and remove a target integer (value - not +the key!)

<static> _fnDetectHeader(array, nThead)

Use the DOM source to create up an array of header cells. The idea here is to +create a layout grid (array) of rows x columns, which contains a reference +to the cell that that point in the grid (regardless of col/rowspan), such that +any column / row could be removed and the new grid constructed

<static> _fnDetectType(sData) → {string}

Get the sort type based on an input string

<static> _fnDraw(oSettings)

Insert the required TR nodes into the table for display

<static> _fnDrawHead(oSettings, array, bIncludeHidden)

Draw the header (or footer) element based on the column visibility states. The +methodology here is to use the layout array from _fnDetectHeader, modified for +the instantaneous column visibility, to construct the new layout. The grid is +traversed over cell at a time in a rows x columns grid fashion, although each +cell insert can cover multiple elements in the grid - which is tracks using the +aApplied array. Cell inserts in the grid will only occur where there isn't +already a cell in that position.

<static> _fnEscapeRegex(sVal) → {string}

scape a string such that it can be used in a regular expression

<static> _fnExtend(oOut, oExtender) → {object}

Extend objects - very similar to jQuery.extend, but deep copy objects, and shallow +copy arrays. The reason we need to do this, is that we don't want to deep copy array +init values (such as aaSorting) since the dev wouldn't be able to override them, but +we do want to deep copy arrays.

<static> _fnExternApiFunc(sFunc) → {function}

Create a wrapper function for exporting an internal functions to an external API.

<static> _fnFeatureHtmlFilter(oSettings) → {node}

Generate the node required for filtering text

<static> _fnFeatureHtmlInfo(oSettings) → {node}

Generate the node required for the info display

<static> _fnFeatureHtmlLength(oSettings) → {node}

Generate the node required for user display length changing

<static> _fnFeatureHtmlPaginate(oSettings) → {node}

Generate the node required for default pagination

<static> _fnFeatureHtmlProcessing(oSettings) → {node}

Generate the node required for the processing node

<static> _fnFeatureHtmlTable(oSettings) → {node}

Add any control elements for the table - specifically scrolling

<static> _fnFilter(oSettings, sInput, iForce, bRegex, bSmart, bCaseInsensitive)

Filter the data table based on user input and draw the table

<static> _fnFilterColumn(oSettings, sInput, iColumn, bRegex, bSmart, bCaseInsensitive)

Filter the table on a per-column basis

<static> _fnFilterComplete(oSettings, oSearch, iForce)

Filter the table using both the global filter and column based filtering

<static> _fnFilterCreateSearch(sSearch, bRegex, bSmart, bCaseInsensitive) → {RegExp}

Build a regular expression object suitable for searching a table

<static> _fnFilterCustom(oSettings)

Apply custom filtering functions

<static> _fnGatherData(oSettings)

Read in the data from the target table from the DOM

<static> _fnGetCellData(oSettings, iRow, iCol, sSpecific) → {*}

Get the data for a given cell from the internal cache, taking into account data mapping

<static> _fnGetColumns(oSettings, sParam) → {array}

Get an array of column indexes that match a given property

<static> _fnGetDataMaster(oSettings)

Return an array with the full table data

<static> _fnGetMaxLenString(oSettings, iCol) → {string}

Get the maximum strlen for each data column

<static> _fnGetObjectDataFn(mSource) → {function}

Return a function that can be used to get data from a source object, taking +into account the ability to use nested objects as a source

<static> _fnGetRowData(oSettings, iRow, sSpecific, aiColumns) → {array}

Get an array of data for a given row from the internal data cache

<static> _fnGetTdNodes(oSettings, iIndividualRow) → {array}

Return an flat array with all TD nodes for the table, or row

<static> _fnGetTrNodes(oSettings) → {array}

Return an array with the TR nodes for the table

<static> _fnGetUniqueThs(oSettings, nHeader, aLayout)

Get an array of unique th elements, one for each column

<static> _fnGetWidestNode(oSettings, iCol) → {node}

Get the widest node

<static> _fnInitComplete(oSettings, json)

Draw the table for the first time, adding all required features

<static> _fnInitialise(oSettings)

Draw the table for the first time, adding all required features

<static> _fnLanguageCompat(oSettings)

Language compatibility - when certain options are given, and others aren't, we +need to duplicate the values over, in order to provide backwards compatibility +with older language files.

<static> _fnLoadState(oSettings, oInit)

Attempt to load a saved table state from a cookie

<static> _fnLog(oSettings, iLevel, sMesg)

Log an error message

<static> _fnMap(oRet, oSrc, sName, sMappedName)

See if a property is defined on one object, if so assign it to the other object

<static> _fnNodeToColumnIndex(oSettings, iRow, n) → {int}

Take a TD element and convert it into a column data index (not the visible index)

<static> _fnNodeToDataIndex(oSettings, n) → {int}

Take a TR element and convert it to an index in aoData

<static> _fnPageChange(oSettings, mAction) → {bool}

Alter the display settings to change the page

<static> _fnProcessingDisplay(oSettings, bShow)

Display or hide the processing indicator

<static> _fnReadCookie(sName) → {string}

Read an old cookie to get a cookie with an old table state

<static> _fnReDraw(oSettings)

Redraw the table - taking account of the various features which are enabled

<static> _fnRender(oSettings, iRow, iCol) → {*}

Call the developer defined fnRender function for a given cell (row/column) with +the required parameters and return the result.

<static> _fnReOrderIndex(oSettings)

Figure out how to reorder a display list

<static> _fnSaveState(oSettings)

Save the state of a table in a cookie such that the page can be reloaded

<static> _fnScrollBarWidth() → {int}

Get the width of a scroll bar in this browser being used

<static> _fnScrollDraw(o) → {node}

Update the various tables for resizing. It's a bit of a pig this function, but +basically the idea to: + 1. Re-create the table inside the scrolling div + 2. Take live measurements from the DOM + 3. Apply the measurements + 4. Clean up

<static> _fnScrollingWidthAdjust(oSettings, n)

Adjust a table's width to take account of scrolling

<static> _fnServerParams(oSettings, array)

Add Ajax parameters from plug-ins

<static> _fnSetCellData(oSettings, iRow, iCol, val)

Set the value for a specific cell, into the internal data cache

<static> _fnSetObjectDataFn(mSource) → {function}

Return a function that can be used to set data from a source object, taking +into account the ability to use nested objects as a source

<static> _fnSettingsFromNode(nTable) → {object}

Return the settings object for a particular table

<static> _fnSort(oSettings, bApplyClasses)

Change the order of the table

<static> _fnSortAttachListener(oSettings, nNode, iDataIndex, fnCallback)

Attach a sort handler (click) to a node

<static> _fnSortingClasses(oSettings)

Set the sorting classes on the header, Note: it is safe to call this function +when bSort and bSortClasses are false

<static> _fnStringToCss(aArray1, aArray2) → {int}

Append a CSS unit (only if required) to a string

<static> _fnUpdateInfo(oSettings)

Update the information elements in the display

<static> _fnVisbleColumns(oSettings) → {int}

Get the number of visible columns

<static> _fnVisibleToColumnIndex(oSettings, iMatch) → {int}

Covert the index of a visible column to the index in the data array (take account +of hidden columns)

+
+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> _fnJsonString

JSON stringify. If JSON.stringify it provided by the browser, json2.js or any other +library, then we use that as it is fast, safe and accurate. If the function isn't +available then we need to built it ourselves - the inspiration for this function comes +from Craig Buckler ( http://www.sitepoint.com/javascript-json-serialization/ ). It is +not perfect and absolutely should not be used as a replacement to json2.js - but it does +do what we need, without requiring a dependency for DataTables.

+ +
+
+

Methods - static

+
+
<static> _fnAddColumn(oSettings, nTh)

Add a column to the list used for the table with default values

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
nThnode

The th element for this column

+
<static> _fnAddData(oSettings, aData) → {int}

Add a data array to the table, creating DOM node etc. This is the parallel to +_fnGatherData, but for adding rows from a Javascript source, rather than a +DOM source.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
aDataarray

data array to be added

Returns:

+

=0 if successful (index of new aoData entry), -1 if failed

+

+
<static> _fnAddOptionsHtml(oSettings)

Add the options to the page HTML for the table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnAdjustColumnSizing(oSettings)

Adjust the table column widths for new data. Note: you would probably want to +do a redraw after calling this function!

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnAjaxParameters(oSettings) → {bool}

Build up the parameters in an object needed for a server-side processing request

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

block the table drawing or not

+
<static> _fnAjaxUpdate(oSettings) → {boolean}

Update the table using an Ajax call

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

Block the table drawing or not

+
<static> _fnAjaxUpdateDraw(oSettings, json)

Data the data from the server (nuking the old) and redraw the table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
jsonobject

json data return from the server.

json.sEchostring

Tracking flag for DataTables to match requests

json.iTotalRecordsint

Number of records in the data set, not accounting for filtering

json.iTotalDisplayRecordsint

Number of records in the data set, accounting for filtering

json.aaDataarray

The data to display on this page

json.sColumnsstring<optional>

Column ordering (sName, comma separated)

+
<static> _fnApplyColumnDefs(oSettings, aoColDefs, aoCols, fn)

Take the column definitions and static columns arrays and calculate how +they relate to column indexes. The callback function will then apply the +definition found for a column to a suitable configuration object.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
aoColDefsarray

The aoColumnDefs array that is to be applied

3
aoColsarray

The aoColumns array that defines columns individually

4
fnfunction

Callback function - takes two parameters, the calculated + column index and the definition for that column.

+
<static> _fnApplyToChildren(fn, array, array)

Apply a given function to the display child nodes of an element array (typically +TD children of TR rows

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
fnfunction

Method to apply to the objects

2
array

{nodes} an1 List of elements to look through for display children

3
array

{nodes} an2 Another list (identical structure to the first) - optional

+
<static> _fnBindAction(n, oData, fn)

Bind an event handers to allow a click or return key to activate the callback. +This is good for accessibility since a return on the keyboard will have the +same effect as a click, if the element has focus.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nelement

Element to bind the action to

2
oDataobject

Data object to pass to the triggered function

3
fnfunction

Callback function for when the event is triggered

+
<static> _fnBrowserDetect(oSettings)

From some browsers (specifically IE6/7) we need special handling to work around browser +bugs - this function is used to detect when these workarounds are needed.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnBuildHead(oSettings)

Create the HTML header for the table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnBuildSearchArray(oSettings, iMaster)

Create an array which can be quickly search through

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iMasterint

use the master data array - optional

+
<static> _fnBuildSearchRow(oSettings, aData)

Create a searchable string from a single data row

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
aDataarray

Row data array to use for the data to search

+
<static> _fnCalculateColumnWidths(oSettings)

Calculate the width of columns for the table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnCalculateEnd(oSettings)

Recalculate the end point based on the start point

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnCallbackFire(oSettings, sStore, sTrigger, aArgs)

Fire callback functions and trigger events. Note that the loop over the callback +array store is done backwards! Further note that you do not want to fire off triggers +in time sensitive applications (for example cell creation) as its slow.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
sStorestring

Name of the array storage for the callbacks in oSettings

3
sTriggerstring

Name of the jQuery custom event to trigger. If null no trigger + is fired

4
aArgsarray

Array of arguments to pass to the callback function / trigger

+
<static> _fnCallbackReg(oSettings, sStore, fn, sName)

Register a callback function. Easily allows a callback function to be added to +an array store of callback functions that can then all be called together.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
sStorestring

Name of the array storage for the callbacks in oSettings

3
fnfunction

Function to be called back

4
sNamestring

Identifying name for the callback (i.e. a label)

+
<static> _fnClearTable(oSettings)

Nuke the table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnColumnIndexToVisible(iMatch, oSettings) → {int}

Covert the index of an index in the data array and convert it to the visible + column index (take account of hidden columns)

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
iMatchint

Column index to lookup

2
oSettingsobject

dataTables settings object

Returns:

i the data index

+
<static> _fnColumnOptions(oSettings, iCol, oOptions)

Apply options for a column

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iColint

column index to consider

3
oOptionsobject

object with sType, bVisible and bSearchable etc

+
<static> _fnColumnOrdering(oSettings) → {string}

Get the column ordering that DataTables expects

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

comma separated list of names

+
<static> _fnConvertToWidth(sWidth, nParent) → {int}

Convert a CSS unit width to pixels (e.g. 2em)

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sWidthstring

width to be converted

2
nParentnode

parent to get the with for (required for relative widths) - optional

Returns:

iWidth width in pixels

+
<static> _fnCreateCookie(sName, sValue, iSecs, sBaseName, fnCallback)

Create a new cookie with a value to store the state of a table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sNamestring

name of the cookie to create

2
sValuestring

the value the cookie should take

3
iSecsint

duration of the cookie

4
sBaseNamestring

sName is made up of the base + file name - this is the base

5
fnCallbackfunction

User definable function to modify the cookie

+
<static> _fnCreateTr(oSettings, iRow)

Create a new TR element (and it's TD children) for a row

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iRowint

Row to consider

+
<static> _fnDataToSearch(sData, sType) → {string}

Convert raw data into something that the user can search on

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sDatastring

data to be modified

2
sTypestring

data type

Returns:

search string

+
<static> _fnDeleteIndex(a, iTarget)

Take an array of integers (index array) and remove a target integer (value - not +the key!)

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
aarray

Index array to target

2
iTargetint

value to find

+
<static> _fnDetectHeader(array, nThead)

Use the DOM source to create up an array of header cells. The idea here is to +create a layout grid (array) of rows x columns, which contains a reference +to the cell that that point in the grid (regardless of col/rowspan), such that +any column / row could be removed and the new grid constructed

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
array

{object} aLayout Array to store the calculated layout in

2
nTheadnode

The header/footer element for the table

+
<static> _fnDetectType(sData) → {string}

Get the sort type based on an input string

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sDatastring

data we wish to know the type of

Returns:

type (defaults to 'string' if no type can be detected)

+
<static> _fnDraw(oSettings)

Insert the required TR nodes into the table for display

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnDrawHead(oSettings, array, bIncludeHidden)

Draw the header (or footer) element based on the column visibility states. The +methodology here is to use the layout array from _fnDetectHeader, modified for +the instantaneous column visibility, to construct the new layout. The grid is +traversed over cell at a time in a rows x columns grid fashion, although each +cell insert can cover multiple elements in the grid - which is tracks using the +aApplied array. Cell inserts in the grid will only occur where there isn't +already a cell in that position.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
array

{objects} aoSource Layout array from _fnDetectHeader

3
bIncludeHiddenbooleanOptionalfalse

If true then include the hidden columns in the calc,

+
<static> _fnEscapeRegex(sVal) → {string}

scape a string such that it can be used in a regular expression

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sValstring

string to escape

Returns:

escaped string

+
<static> _fnExtend(oOut, oExtender) → {object}

Extend objects - very similar to jQuery.extend, but deep copy objects, and shallow +copy arrays. The reason we need to do this, is that we don't want to deep copy array +init values (such as aaSorting) since the dev wouldn't be able to override them, but +we do want to deep copy arrays.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oOutobject

Object to extend

2
oExtenderobject

Object from which the properties will be applied to oOut

Returns:

oOut Reference, just for convenience - oOut === the return.

+
<static> _fnExternApiFunc(sFunc) → {function}

Create a wrapper function for exporting an internal functions to an external API.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sFuncstring

API function name

Returns:

wrapped function

+
<static> _fnFeatureHtmlFilter(oSettings) → {node}

Generate the node required for filtering text

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

Filter control element

+
<static> _fnFeatureHtmlInfo(oSettings) → {node}

Generate the node required for the info display

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

Information element

+
<static> _fnFeatureHtmlLength(oSettings) → {node}

Generate the node required for user display length changing

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

Display length feature node

+
<static> _fnFeatureHtmlPaginate(oSettings) → {node}

Generate the node required for default pagination

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

Pagination feature node

+
<static> _fnFeatureHtmlProcessing(oSettings) → {node}

Generate the node required for the processing node

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

Processing element

+
<static> _fnFeatureHtmlTable(oSettings) → {node}

Add any control elements for the table - specifically scrolling

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

Node to add to the DOM

+
<static> _fnFilter(oSettings, sInput, iForce, bRegex, bSmart, bCaseInsensitive)

Filter the data table based on user input and draw the table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
sInputstring

string to filter on

3
iForceint

optional - force a research of the master array (1) or not (undefined or 0)

4
bRegexbool

treat as a regular expression or not

5
bSmartbool

perform smart filtering or not

6
bCaseInsensitivebool

Do case insenstive matching or not

+
<static> _fnFilterColumn(oSettings, sInput, iColumn, bRegex, bSmart, bCaseInsensitive)

Filter the table on a per-column basis

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
sInputstring

string to filter on

3
iColumnint

column to filter

4
bRegexbool

treat search string as a regular expression or not

5
bSmartbool

use smart filtering or not

6
bCaseInsensitivebool

Do case insenstive matching or not

+
<static> _fnFilterComplete(oSettings, oSearch, iForce)

Filter the table using both the global filter and column based filtering

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
oSearchobject

search information

3
iForceintOptional

force a research of the master array (1) or not (undefined or 0)

+
<static> _fnFilterCreateSearch(sSearch, bRegex, bSmart, bCaseInsensitive) → {RegExp}

Build a regular expression object suitable for searching a table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sSearchstring

string to search for

2
bRegexbool

treat as a regular expression or not

3
bSmartbool

perform smart filtering or not

4
bCaseInsensitivebool

Do case insensitive matching or not

Returns:

constructed object

+
<static> _fnFilterCustom(oSettings)

Apply custom filtering functions

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnGatherData(oSettings)

Read in the data from the target table from the DOM

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnGetCellData(oSettings, iRow, iCol, sSpecific) → {*}

Get the data for a given cell from the internal cache, taking into account data mapping

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iRowint

aoData row id

3
iColint

Column index

4
sSpecificstring

data get type ('display', 'type' 'filter' 'sort')

Returns:

Cell data

+
<static> _fnGetColumns(oSettings, sParam) → {array}

Get an array of column indexes that match a given property

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
sParamstring

Parameter in aoColumns to look for - typically + bVisible or bSearchable

Returns:

Array of indexes with matched properties

+
<static> _fnGetDataMaster(oSettings)

Return an array with the full table data

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

array {array} aData Master data array

+
<static> _fnGetMaxLenString(oSettings, iCol) → {string}

Get the maximum strlen for each data column

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iColint

column of interest

Returns:

max string length for each column

+
<static> _fnGetObjectDataFn(mSource) → {function}

Return a function that can be used to get data from a source object, taking +into account the ability to use nested objects as a source

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
mSourcestring | int | function

The data source for the object

Returns:

Data get function

+
<static> _fnGetRowData(oSettings, iRow, sSpecific, aiColumns) → {array}

Get an array of data for a given row from the internal data cache

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iRowint

aoData row id

3
sSpecificstring

data get type ('type' 'filter' 'sort')

4
aiColumnsarray

Array of column indexes to get data from

Returns:

Data array

+
<static> _fnGetTdNodes(oSettings, iIndividualRow) → {array}

Return an flat array with all TD nodes for the table, or row

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iIndividualRowintOptional

aoData index to get the nodes for - optional + if not given then the return array will contain all nodes for the table

Returns:

TD array

+
<static> _fnGetTrNodes(oSettings) → {array}

Return an array with the TR nodes for the table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

TR array

+
<static> _fnGetUniqueThs(oSettings, nHeader, aLayout)

Get an array of unique th elements, one for each column

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
nHeadernode

automatically detect the layout from this node - optional

3
aLayoutarray

thead/tfoot layout from _fnDetectHeader - optional

Returns:

array {node} aReturn list of unique th's

+
<static> _fnGetWidestNode(oSettings, iCol) → {node}

Get the widest node

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iColint

column of interest

Returns:

widest table node

+
<static> _fnInitComplete(oSettings, json)

Draw the table for the first time, adding all required features

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
jsonobjectOptional

JSON from the server that completed the table, if using Ajax source + with client-side processing (optional)

+
<static> _fnInitialise(oSettings)

Draw the table for the first time, adding all required features

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnLanguageCompat(oSettings)

Language compatibility - when certain options are given, and others aren't, we +need to duplicate the values over, in order to provide backwards compatibility +with older language files.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnLoadState(oSettings, oInit)

Attempt to load a saved table state from a cookie

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
oInitobject

DataTables init object so we can override settings

+
<static> _fnLog(oSettings, iLevel, sMesg)

Log an error message

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iLevelint

log error messages, or display them to the user

3
sMesgstring

error message

+
<static> _fnMap(oRet, oSrc, sName, sMappedName)

See if a property is defined on one object, if so assign it to the other object

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oRetobject

target object

2
oSrcobject

source object

3
sNamestring

property

4
sMappedNamestringOptional

name to map too - optional, sName used if not given

+
<static> _fnNodeToColumnIndex(oSettings, iRow, n) → {int}

Take a TD element and convert it into a column data index (not the visible index)

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iRowint

The row number the TD/TH can be found in

3
nnode

The TD/TH element to find

Returns:

index if the node is found, -1 if not

+
<static> _fnNodeToDataIndex(oSettings, n) → {int}

Take a TR element and convert it to an index in aoData

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
nnode

the TR element to find

Returns:

index if the node is found, null if not

+
<static> _fnPageChange(oSettings, mAction) → {bool}

Alter the display settings to change the page

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
mActionstring | int

Paging action to take: "first", "previous", "next" or "last" + or page number to jump to (integer)

Returns:

true page has changed, false - no change (no effect) eg 'first' on page 1

+
<static> _fnProcessingDisplay(oSettings, bShow)

Display or hide the processing indicator

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
bShowbool

Show the processing indicator (true) or not (false)

+
<static> _fnReadCookie(sName) → {string}

Read an old cookie to get a cookie with an old table state

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sNamestring

name of the cookie to read

Returns:

contents of the cookie - or null if no cookie with that name found

+
<static> _fnReDraw(oSettings)

Redraw the table - taking account of the various features which are enabled

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnRender(oSettings, iRow, iCol) → {*}

Call the developer defined fnRender function for a given cell (row/column) with +the required parameters and return the result.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iRowint

aoData index for the row

3
iColint

aoColumns index for the column

Returns:

Return of the developer's fnRender function

+
<static> _fnReOrderIndex(oSettings)

Figure out how to reorder a display list

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

array {int} aiReturn index list for reordering

+
<static> _fnSaveState(oSettings)

Save the state of a table in a cookie such that the page can be reloaded

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnScrollBarWidth() → {int}

Get the width of a scroll bar in this browser being used

+ +
+
Returns:

width in pixels

+
<static> _fnScrollDraw(o) → {node}

Update the various tables for resizing. It's a bit of a pig this function, but +basically the idea to: + 1. Re-create the table inside the scrolling div + 2. Take live measurements from the DOM + 3. Apply the measurements + 4. Clean up

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oobject

dataTables settings object

Returns:

Node to add to the DOM

+
<static> _fnScrollingWidthAdjust(oSettings, n)

Adjust a table's width to take account of scrolling

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
nnode

table node

+
<static> _fnServerParams(oSettings, array)

Add Ajax parameters from plug-ins

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
array

{objects} aoData name/value pairs to send to the server

+
<static> _fnSetCellData(oSettings, iRow, iCol, val)

Set the value for a specific cell, into the internal data cache

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iRowint

aoData row id

3
iColint

Column index

4
val*

Value to set

+
<static> _fnSetObjectDataFn(mSource) → {function}

Return a function that can be used to set data from a source object, taking +into account the ability to use nested objects as a source

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
mSourcestring | int | function

The data source for the object

Returns:

Data set function

+
<static> _fnSettingsFromNode(nTable) → {object}

Return the settings object for a particular table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nTablenode

table we are using as a dataTable

Returns:

Settings object - or null if not found

+
<static> _fnSort(oSettings, bApplyClasses)

Change the order of the table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
bApplyClassesbool

optional - should we apply classes or not

+
<static> _fnSortAttachListener(oSettings, nNode, iDataIndex, fnCallback)

Attach a sort handler (click) to a node

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
nNodenode

node to attach the handler to

3
iDataIndexint

column sorting index

4
fnCallbackfunctionOptional

callback function

+
<static> _fnSortingClasses(oSettings)

Set the sorting classes on the header, Note: it is safe to call this function +when bSort and bSortClasses are false

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnStringToCss(aArray1, aArray2) → {int}

Append a CSS unit (only if required) to a string

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
aArray1array

first array

2
aArray2array

second array

Returns:

0 if match, 1 if length is different, 2 if no match

+
<static> _fnUpdateInfo(oSettings)

Update the information elements in the display

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

+
<static> _fnVisbleColumns(oSettings) → {int}

Get the number of visible columns

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

Returns:

i the number of visible columns

+
<static> _fnVisibleToColumnIndex(oSettings, iMatch) → {int}

Covert the index of a visible column to the index in the data array (take account +of hidden columns)

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

dataTables settings object

2
iMatchint

Visible column index to lookup

Returns:

i the data index

+ +
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.defaults.columns.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.defaults.columns.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,912 @@ + + + + + Namespace: columns - documentation + + + + + + + + + +
+ + +
+

Namespace: columns

+

Ancestry: DataTable ยป .defaults. ยป columns

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Column options that can be given to DataTables at initialisation time.

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> aDataSort :array

Allows a column's sorting to take multiple columns into account when +doing a sort. For example first name / last name columns make sense to +do a multi-column sort over the two columns.

<static> asSorting :array

You can control the default sorting direction, and even alter the behaviour +of the sort handler (i.e. only allow ascending sorting etc) using this +parameter.

<static> bSearchable :boolean

Enable or disable filtering on the data in this column.

<static> bSortable :boolean

Enable or disable sorting on this column.

<static> bUseRendered :boolean

Deprecated When using fnRender() for a column, you may wish +to use the original data (before rendering) for sorting and filtering +(the default is to used the rendered data that the user can see). This +may be useful for dates etc. [...]

<static> bVisible :boolean

Enable or disable the display of this column.

<static> fnCreatedCell :function

Developer definable function that is called whenever a cell is created (Ajax source, +etc) or processed for input (DOM source). This can be used as a compliment to mRender +allowing you to modify the DOM element (add background colour for example) when the +element is available.

<static> fnRender :function

Deprecated Custom display function that will be called for the +display of each cell in this column. [...]

<static> iDataSort :int

The column index (starting from 0!) that you wish a sort to be performed +upon when this column is selected for sorting. This can be used for sorting +on hidden columns for example.

<static> mData :string|int|function|null

This property can be used to read data from any JSON data source property, +including deeply nested objects / properties. mData can be given in a +number of different ways which effect its behaviour: +

    +
  • integer - treated as an array index for the data source. This is the + default that DataTables uses (incrementally increased for each column).
  • +
  • string - read an object property from the data source. Note that you can + use Javascript dotted notation to read deep properties / arrays from the + data source.
  • +
  • null - the sDefaultContent option will be used for the cell (null + by default, so you will need to specify the default content you want - + typically an empty string). This can be useful on generated columns such + as edit / delete action columns.
  • +
  • function - the function given will be executed whenever DataTables + needs to set or get the data for a cell in the column. The function + takes three parameters: +
      +
    • {array|object} The data source for the row
    • +
    • {string} The type call data requested - this will be 'set' when + setting data or 'filter', 'display', 'type', 'sort' or undefined when + gathering data. Note that when undefined is given for the type + DataTables expects to get the raw data for the object back
    • +
    • {*} Data to set when the second parameter is 'set'.
    • +
    + The return value from the function is not required when 'set' is the type + of call, but otherwise the return is what will be used for the data + requested.
  • +
[...]

<static> mDataProp

This parameter has been replaced by mData in DataTables to ensure naming +consistency. mDataProp can still be used, as there is backwards compatibility +in DataTables for this option, but it is strongly recommended that you use +mData in preference to mDataProp.

<static> mRender :string|int|function|null

This property is the rendering partner to mData and it is suggested that +when you want to manipulate data for display (including filtering, sorting etc) +but not altering the underlying data for the table, use this property. mData +can actually do everything this property can and more, but this parameter is +easier to use since there is no 'set' option. Like mData is can be given +in a number of different ways to effect its behaviour, with the addition of +supporting array syntax for easy outputting of arrays (including arrays of +objects): +

    +
  • integer - treated as an array index for the data source. This is the + default that DataTables uses (incrementally increased for each column).
  • +
  • string - read an object property from the data source. Note that you can + use Javascript dotted notation to read deep properties / arrays from the + data source and also array brackets to indicate that the data reader should + loop over the data source array. When characters are given between the array + brackets, these characters are used to join the data source array together. + For example: "accounts[, ].name" would result in a comma separated list with + the 'name' value from the 'accounts' array of objects.
  • +
  • function - the function given will be executed whenever DataTables + needs to set or get the data for a cell in the column. The function + takes three parameters: +
      +
    • {array|object} The data source for the row (based on mData)
    • +
    • {string} The type call data requested - this will be 'filter', 'display', + 'type' or 'sort'.
    • +
    • {array|object} The full data source for the row (not based on mData)
    • +
    + The return value from the function is what will be used for the data + requested.
  • +

<static> sCellType :string

Change the cell type created for the column - either TD cells or TH cells. This +can be useful as TH cells have semantic meaning in the table body, allowing them +to act as a header for a row (you may wish to add scope='row' to the TH elements).

<static> sClass :string

Class to give to each cell in this column.

<static> sContentPadding :string

When DataTables calculates the column widths to assign to each column, +it finds the longest string in each column and then constructs a +temporary table and reads the widths from that. The problem with this +is that "mmm" is much wider then "iiii", but the latter is a longer +string - thus the calculation can go wrong (doing it properly and putting +it into an DOM object and measuring that is horribly(!) slow). Thus as +a "work around" we provide this option. It will append its value to the +text that is found to be the longest string for the column - i.e. padding. +Generally you shouldn't need this, and it is not documented on the +general DataTables.net documentation

<static> sDefaultContent :string

Allows a default value to be given for a column's data, and will be used +whenever a null data source is encountered (this can be because mData +is set to null, or because the data source itself is null).

<static> sName :string

This parameter is only used in DataTables' server-side processing. It can +be exceptionally useful to know what columns are being displayed on the +client side, and to map these to database fields. When defined, the names +also allow DataTables to reorder information from the server if it comes +back in an unexpected order (i.e. if you switch your columns around on the +client-side, your server-side code does not also need updating).

<static> sSortDataType :string

Defines a data source type for the sorting which can be used to read +real-time information from the table (updating the internally cached +version) prior to sorting. This allows sorting to occur on user editable +elements such as form inputs.

<static> sTitle :string

The title of this column.

<static> sType :string

The type allows you to specify how the data for this column will be sorted. +Four types (string, numeric, date and html (which will strip HTML tags +before sorting)) are currently available. Note that only date formats +understood by Javascript's Date() object will be accepted as type date. For +example: "Mar 26, 2008 5:03 PM". May take the values: 'string', 'numeric', +'date' or 'html' (by default). Further types can be adding through +plug-ins.

<static> sWidth :string

Defining the width of the column, this parameter may take any CSS value +(3em, 20px etc). DataTables apples 'smart' widths to columns which have not +been given a specific width through this interface ensuring that the table +remains readable.

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> aDataSort :array

Allows a column's sorting to take multiple columns into account when +doing a sort. For example first name / last name columns make sense to +do a multi-column sort over the two columns.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [
+         { "aDataSort": [ 0, 1 ], "aTargets": [ 0 ] },
+         { "aDataSort": [ 1, 0 ], "aTargets": [ 1 ] },
+         { "aDataSort": [ 2, 3, 4 ], "aTargets": [ 2 ] }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [
+         { "aDataSort": [ 0, 1 ] },
+         { "aDataSort": [ 1, 0 ] },
+         { "aDataSort": [ 2, 3, 4 ] },
+         null,
+         null
+       ]
+     } );
+   } );
+
+
<static> asSorting :array

You can control the default sorting direction, and even alter the behaviour +of the sort handler (i.e. only allow ascending sorting etc) using this +parameter.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [
+         { "asSorting": [ "asc" ], "aTargets": [ 1 ] },
+         { "asSorting": [ "desc", "asc", "asc" ], "aTargets": [ 2 ] },
+         { "asSorting": [ "desc" ], "aTargets": [ 3 ] }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [
+         null,
+         { "asSorting": [ "asc" ] },
+         { "asSorting": [ "desc", "asc", "asc" ] },
+         { "asSorting": [ "desc" ] },
+         null
+       ]
+     } );
+   } );
+
+
<static> bSearchable :boolean

Enable or disable filtering on the data in this column.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ 
+         { "bSearchable": false, "aTargets": [ 0 ] }
+       ] } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         { "bSearchable": false },
+         null,
+         null,
+         null,
+         null
+       ] } );
+   } );
+
+
<static> bSortable :boolean

Enable or disable sorting on this column.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ 
+         { "bSortable": false, "aTargets": [ 0 ] }
+       ] } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         { "bSortable": false },
+         null,
+         null,
+         null,
+         null
+       ] } );
+   } );
+
+
<static> bUseRendered :boolean

Deprecated When using fnRender() for a column, you may wish +to use the original data (before rendering) for sorting and filtering +(the default is to used the rendered data that the user can see). This +may be useful for dates etc.

+ +

Please note that this option has now been deprecated and will be removed +in the next version of DataTables. Please use mRender / mData rather than +fnRender.

+
Deprecated
Yes
+
+
<static> bVisible :boolean

Enable or disable the display of this column.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ 
+         { "bVisible": false, "aTargets": [ 0 ] }
+       ] } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         { "bVisible": false },
+         null,
+         null,
+         null,
+         null
+       ] } );
+   } );
+
+
<static> fnCreatedCell :function

Developer definable function that is called whenever a cell is created (Ajax source, +etc) or processed for input (DOM source). This can be used as a compliment to mRender +allowing you to modify the DOM element (add background colour for example) when the +element is available.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nTdelement

The TD node that has been created

2
sData*

The Data for the cell

3
oDataarray | object

The data for the whole row

4
iRowint

The row index for the aoData data store

5
iColint

The column index for aoColumns

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ {
+         "aTargets": [3],
+         "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
+           if ( sData == "1.7" ) {
+             $(nTd).css('color', 'blue')
+           }
+         }
+       } ]
+     });
+   } );
+
+
+
<static> fnRender :function

Deprecated Custom display function that will be called for the +display of each cell in this column.

+ +

Please note that this option has now been deprecated and will be removed +in the next version of DataTables. Please use mRender / mData rather than +fnRender.

+
Deprecated
Yes
+
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oobject

Object with the following parameters:

o.iDataRowint

The row in aoData

o.iDataColumnint

The column in question

o.aDataarray

The data for the row in question

o.oSettingsobject

The settings object for this DataTables instance

o.mDataPropobject

The data property used for this column

7
val*

The current cell value

Returns:

The string you which to use in the display

+
<static> iDataSort :int

The column index (starting from 0!) that you wish a sort to be performed +upon when this column is selected for sorting. This can be used for sorting +on hidden columns for example.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ 
+         { "iDataSort": 1, "aTargets": [ 0 ] }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         { "iDataSort": 1 },
+         null,
+         null,
+         null,
+         null
+       ]
+     } );
+   } );
+
+
<static> mData :string|int|function|null

This property can be used to read data from any JSON data source property, +including deeply nested objects / properties. mData can be given in a +number of different ways which effect its behaviour: +

    +
  • integer - treated as an array index for the data source. This is the + default that DataTables uses (incrementally increased for each column).
  • +
  • string - read an object property from the data source. Note that you can + use Javascript dotted notation to read deep properties / arrays from the + data source.
  • +
  • null - the sDefaultContent option will be used for the cell (null + by default, so you will need to specify the default content you want - + typically an empty string). This can be useful on generated columns such + as edit / delete action columns.
  • +
  • function - the function given will be executed whenever DataTables + needs to set or get the data for a cell in the column. The function + takes three parameters: +
      +
    • {array|object} The data source for the row
    • +
    • {string} The type call data requested - this will be 'set' when + setting data or 'filter', 'display', 'type', 'sort' or undefined when + gathering data. Note that when undefined is given for the type + DataTables expects to get the raw data for the object back
    • +
    • {*} Data to set when the second parameter is 'set'.
    • +
    + The return value from the function is not required when 'set' is the type + of call, but otherwise the return is what will be used for the data + requested.
  • +

+ +

Note that prior to DataTables 1.9.2 mData was called mDataProp. The name change +reflects the flexibility of this property and is consistent with the naming of +mRender. If 'mDataProp' is given, then it will still be used by DataTables, as +it automatically maps the old name to the new if required.

+ +
+
Examples
+
+
   // Read table data from objects
+   $(document).ready( function() {
+     var oTable = $('#example').dataTable( {
+       "sAjaxSource": "sources/deep.txt",
+       "aoColumns": [
+         { "mData": "engine" },
+         { "mData": "browser" },
+         { "mData": "platform.inner" },
+         { "mData": "platform.details.0" },
+         { "mData": "platform.details.1" }
+       ]
+     } );
+   } );
+
+ 
+
+ +
+
   // Using mData as a function to provide different information for
+   // sorting, filtering and display. In this case, currency (price)
+   $(document).ready( function() {
+     var oTable = $('#example').dataTable( {
+       "aoColumnDefs": [ {
+         "aTargets": [ 0 ],
+         "mData": function ( source, type, val ) {
+           if (type === 'set') {
+             source.price = val;
+             // Store the computed dislay and filter values for efficiency
+             source.price_display = val=="" ? "" : "$"+numberFormat(val);
+             source.price_filter  = val=="" ? "" : "$"+numberFormat(val)+" "+val;
+             return;
+           }
+           else if (type === 'display') {
+             return source.price_display;
+           }
+           else if (type === 'filter') {
+             return source.price_filter;
+           }
+           // 'sort', 'type' and undefined all just use the integer
+           return source.price;
+         }
+       } ]
+     } );
+   } );
+
+
<static> mDataProp

This parameter has been replaced by mData in DataTables to ensure naming +consistency. mDataProp can still be used, as there is backwards compatibility +in DataTables for this option, but it is strongly recommended that you use +mData in preference to mDataProp.

+ +
+
<static> mRender :string|int|function|null

This property is the rendering partner to mData and it is suggested that +when you want to manipulate data for display (including filtering, sorting etc) +but not altering the underlying data for the table, use this property. mData +can actually do everything this property can and more, but this parameter is +easier to use since there is no 'set' option. Like mData is can be given +in a number of different ways to effect its behaviour, with the addition of +supporting array syntax for easy outputting of arrays (including arrays of +objects): +

    +
  • integer - treated as an array index for the data source. This is the + default that DataTables uses (incrementally increased for each column).
  • +
  • string - read an object property from the data source. Note that you can + use Javascript dotted notation to read deep properties / arrays from the + data source and also array brackets to indicate that the data reader should + loop over the data source array. When characters are given between the array + brackets, these characters are used to join the data source array together. + For example: "accounts[, ].name" would result in a comma separated list with + the 'name' value from the 'accounts' array of objects.
  • +
  • function - the function given will be executed whenever DataTables + needs to set or get the data for a cell in the column. The function + takes three parameters: +
      +
    • {array|object} The data source for the row (based on mData)
    • +
    • {string} The type call data requested - this will be 'filter', 'display', + 'type' or 'sort'.
    • +
    • {array|object} The full data source for the row (not based on mData)
    • +
    + The return value from the function is what will be used for the data + requested.
  • +

+ +
+
Examples
+
+
   // Create a comma separated list from an array of objects
+   $(document).ready( function() {
+     var oTable = $('#example').dataTable( {
+       "sAjaxSource": "sources/deep.txt",
+       "aoColumns": [
+         { "mData": "engine" },
+         { "mData": "browser" },
+         {
+           "mData": "platform",
+           "mRender": "[, ].name"
+         }
+       ]
+     } );
+   } );
+
+ 
+
+ +
+
   // Use as a function to create a link from the data source
+   $(document).ready( function() {
+     var oTable = $('#example').dataTable( {
+       "aoColumnDefs": [
+       {
+         "aTargets": [ 0 ],
+         "mData": "download_link",
+         "mRender": function ( data, type, full ) {
+           return 'Download';
+         }
+       ]
+     } );
+   } );
+
+
<static> sCellType :string

Change the cell type created for the column - either TD cells or TH cells. This +can be useful as TH cells have semantic meaning in the table body, allowing them +to act as a header for a row (you may wish to add scope='row' to the TH elements).

+ +
+
Example
+
+
   // Make the first column use TH cells
+   $(document).ready( function() {
+     var oTable = $('#example').dataTable( {
+       "aoColumnDefs": [ {
+         "aTargets": [ 0 ],
+         "sCellType": "th"
+       } ]
+     } );
+   } );
+
+
<static> sClass :string

Class to give to each cell in this column.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ 
+         { "sClass": "my_class", "aTargets": [ 0 ] }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         { "sClass": "my_class" },
+         null,
+         null,
+         null,
+         null
+       ]
+     } );
+   } );
+
+
<static> sContentPadding :string

When DataTables calculates the column widths to assign to each column, +it finds the longest string in each column and then constructs a +temporary table and reads the widths from that. The problem with this +is that "mmm" is much wider then "iiii", but the latter is a longer +string - thus the calculation can go wrong (doing it properly and putting +it into an DOM object and measuring that is horribly(!) slow). Thus as +a "work around" we provide this option. It will append its value to the +text that is found to be the longest string for the column - i.e. padding. +Generally you shouldn't need this, and it is not documented on the +general DataTables.net documentation

+ +
+
Example
+
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         null,
+         null,
+         null,
+         {
+           "sContentPadding": "mmm"
+         }
+       ]
+     } );
+   } );
+
+
<static> sDefaultContent :string

Allows a default value to be given for a column's data, and will be used +whenever a null data source is encountered (this can be because mData +is set to null, or because the data source itself is null).

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ 
+         {
+           "mData": null,
+           "sDefaultContent": "Edit",
+           "aTargets": [ -1 ]
+         }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         null,
+         null,
+         null,
+         {
+           "mData": null,
+           "sDefaultContent": "Edit"
+         }
+       ]
+     } );
+   } );
+
+
<static> sName :string

This parameter is only used in DataTables' server-side processing. It can +be exceptionally useful to know what columns are being displayed on the +client side, and to map these to database fields. When defined, the names +also allow DataTables to reorder information from the server if it comes +back in an unexpected order (i.e. if you switch your columns around on the +client-side, your server-side code does not also need updating).

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ 
+         { "sName": "engine", "aTargets": [ 0 ] },
+         { "sName": "browser", "aTargets": [ 1 ] },
+         { "sName": "platform", "aTargets": [ 2 ] },
+         { "sName": "version", "aTargets": [ 3 ] },
+         { "sName": "grade", "aTargets": [ 4 ] }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         { "sName": "engine" },
+         { "sName": "browser" },
+         { "sName": "platform" },
+         { "sName": "version" },
+         { "sName": "grade" }
+       ]
+     } );
+   } );
+
+
<static> sSortDataType :string

Defines a data source type for the sorting which can be used to read +real-time information from the table (updating the internally cached +version) prior to sorting. This allows sorting to occur on user editable +elements such as form inputs.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [
+         { "sSortDataType": "dom-text", "aTargets": [ 2, 3 ] },
+         { "sType": "numeric", "aTargets": [ 3 ] },
+         { "sSortDataType": "dom-select", "aTargets": [ 4 ] },
+         { "sSortDataType": "dom-checkbox", "aTargets": [ 5 ] }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [
+         null,
+         null,
+         { "sSortDataType": "dom-text" },
+         { "sSortDataType": "dom-text", "sType": "numeric" },
+         { "sSortDataType": "dom-select" },
+         { "sSortDataType": "dom-checkbox" }
+       ]
+     } );
+   } );
+
+
<static> sTitle :string

The title of this column.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ 
+         { "sTitle": "My column title", "aTargets": [ 0 ] }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         { "sTitle": "My column title" },
+         null,
+         null,
+         null,
+         null
+       ]
+     } );
+   } );
+
+
<static> sType :string

The type allows you to specify how the data for this column will be sorted. +Four types (string, numeric, date and html (which will strip HTML tags +before sorting)) are currently available. Note that only date formats +understood by Javascript's Date() object will be accepted as type date. For +example: "Mar 26, 2008 5:03 PM". May take the values: 'string', 'numeric', +'date' or 'html' (by default). Further types can be adding through +plug-ins.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ 
+         { "sType": "html", "aTargets": [ 0 ] }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         { "sType": "html" },
+         null,
+         null,
+         null,
+         null
+       ]
+     } );
+   } );
+
+
<static> sWidth :string

Defining the width of the column, this parameter may take any CSS value +(3em, 20px etc). DataTables apples 'smart' widths to columns which have not +been given a specific width through this interface ensuring that the table +remains readable.

+ +
+
Examples
+
+
   // Using aoColumnDefs
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumnDefs": [ 
+         { "sWidth": "20%", "aTargets": [ 0 ] }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using aoColumns
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoColumns": [ 
+         { "sWidth": "20%" },
+         null,
+         null,
+         null,
+         null
+       ]
+     } );
+   } );
+
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.defaults.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.defaults.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,1752 @@ + + + + + Namespace: defaults - documentation + + + + + + + + + +
+ + +
+

Namespace: defaults

+

Ancestry: DataTable. ยป defaults

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Initialisation options that can be given to DataTables at initialisation +time.

+ +
+ +
+ + +
+ +

Summary

+ +

Namespaces

+
+
columns

Column options that can be given to DataTables at initialisation time.

oLanguage

All strings that DataTables uses in the user interface that it creates +are defined in this object, allowing you to modified them individually or +completely replace them all as required.

oSearch

This parameter allows you to have define the global filtering state at +initialisation time. As an object the "sSearch" parameter must be +defined, but all other parameters are optional. When "bRegex" is true, +the search string will be treated as a regular expression, when false +(default) it will be treated as a straight string. When "bSmart" +DataTables will use it's smart filtering methods (to word match at +any point in the data), when false this will not be done.

+

Properties - static

+ +
+
<static> aaData :array

An array of data to use for the table, passed in at initialisation which +will be used in preference to any data which is already in the DOM. This is +particularly useful for constructing tables purely in Javascript, for +example with a custom Ajax call.

<static> aaSorting :array

If sorting is enabled, then DataTables will perform a first pass sort on +initialisation. You can define which column(s) the sort is performed upon, +and the sorting direction, with this variable. The aaSorting array should +contain an array for each column to be sorted initially containing the +column's index and a direction string ('asc' or 'desc').

<static> aaSortingFixed :array

This parameter is basically identical to the aaSorting parameter, but +cannot be overridden by user interaction with the table. What this means +is that you could have a column (visible or hidden) which the sorting will +always be forced on first - any sorting after that (from the user) will +then be performed as required. This can be useful for grouping rows +together.

<static> aLengthMenu :array

This parameter allows you to readily specify the entries in the length drop +down menu that DataTables shows when pagination is enabled. It can be +either a 1D array of options which will be used for both the displayed +option and the value, or a 2D array which will use the array in the first +position as the value, and the array in the second position as the +displayed options (useful for language strings such as 'All').

<static> aoColumnDefs

Very similar to aoColumns, aoColumnDefs allows you to target a specific +column, multiple columns, or all columns, using the aTargets property of +each object in the array. This allows great flexibility when creating +tables, as the aoColumnDefs arrays can be of any length, targeting the +columns you specifically want. aoColumnDefs may use any of the column +options available: DataTable.defaults.columns, but it must +have aTargets defined in each object in the array. Values in the aTargets +array may be: +

    +
  • a string - class name will be matched on the TH for the column
  • +
  • 0 or a positive integer - column index counting from the left
  • +
  • a negative integer - column index counting from the right
  • +
  • the string "_all" - all columns (i.e. assign a default)
  • +

<static> aoColumns

The aoColumns option in the initialisation parameter allows you to define +details about the way individual columns behave. For a full list of +column options that can be set, please see +DataTable.defaults.columns. Note that if you use aoColumns to +define your columns, you must have an entry in the array for every single +column that you have in your table (these can be null if you don't which +to specify any options).

<static> aoSearchCols :array

Basically the same as oSearch, this parameter defines the individual column +filtering state at initialisation time. The array must be of the same size +as the number of columns, and each element be an object with the parameters +"sSearch" and "bEscapeRegex" (the latter is optional). 'null' is also +accepted and the default will be used.

<static> asStripeClasses :array

An array of CSS classes that should be applied to displayed rows. This +array may be of any length, and DataTables will apply each class +sequentially, looping when required.

<static> bAutoWidth :boolean

Enable or disable automatic column width calculation. This can be disabled +as an optimisation (it takes some time to calculate the widths) if the +tables widths are passed in using aoColumns.

<static> bDeferRender :boolean

Deferred rendering can provide DataTables with a huge speed boost when you +are using an Ajax or JS data source for the table. This option, when set to +true, will cause DataTables to defer the creation of the table elements for +each row until they are needed for a draw - saving a significant amount of +time.

<static> bDestroy :boolean

Replace a DataTable which matches the given selector and replace it with +one which has the properties of the new initialisation object passed. If no +table matches the selector, then the new DataTable will be constructed as +per normal.

<static> bFilter :boolean

Enable or disable filtering of data. Filtering in DataTables is "smart" in +that it allows the end user to input multiple words (space separated) and +will match a row containing those words, even if not in the order that was +specified (this allow matching across multiple columns). Note that if you +wish to use filtering in DataTables this must remain 'true' - to remove the +default filtering input box and retain filtering abilities, please use +DataTable.defaults.sDom.

<static> bInfo :boolean

Enable or disable the table information display. This shows information +about the data that is currently visible on the page, including information +about filtered data if that action is being performed.

<static> bJQueryUI :boolean

Enable jQuery UI ThemeRoller support (required as ThemeRoller requires some +slightly different and additional mark-up from what DataTables has +traditionally used).

<static> bLengthChange :boolean

Allows the end user to select the size of a formatted page from a select +menu (sizes are 10, 25, 50 and 100). Requires pagination (bPaginate).

<static> bPaginate :boolean

Enable or disable pagination.

<static> bProcessing :boolean

Enable or disable the display of a 'processing' indicator when the table is +being processed (e.g. a sort). This is particularly useful for tables with +large amounts of data where it can take a noticeable amount of time to sort +the entries.

<static> bRetrieve :boolean

Retrieve the DataTables object for the given selector. Note that if the +table has already been initialised, this parameter will cause DataTables +to simply return the object that has already been set up - it will not take +account of any changes you might have made to the initialisation object +passed to DataTables (setting this parameter to true is an acknowledgement +that you understand this). bDestroy can be used to reinitialise a table if +you need.

<static> bScrollAutoCss :boolean

Indicate if DataTables should be allowed to set the padding / margin +etc for the scrolling header elements or not. Typically you will want +this.

<static> bScrollCollapse :boolean

When vertical (y) scrolling is enabled, DataTables will force the height of +the table's viewport to the given height at all times (useful for layout). +However, this can look odd when filtering data down to a small data set, +and the footer is left "floating" further down. This parameter (when +enabled) will cause DataTables to collapse the table's viewport down when +the result set will fit within the given Y height.

<static> bScrollInfinite :boolean

Enable infinite scrolling for DataTables (to be used in combination with +sScrollY). Infinite scrolling means that DataTables will continually load +data as a user scrolls through a table, which is very useful for large +dataset. This cannot be used with pagination, which is automatically +disabled. Note - the Scroller extra for DataTables is recommended in +in preference to this option.

<static> bServerSide :boolean

Configure DataTables to use server-side processing. Note that the +sAjaxSource parameter must also be given in order to give DataTables a +source to obtain the required data for each draw.

<static> bSort :boolean

Enable or disable sorting of columns. Sorting of individual columns can be +disabled by the "bSortable" option for each column.

<static> bSortCellsTop :boolean

Allows control over whether DataTables should use the top (true) unique +cell that is found for a single column, or the bottom (false - default). +This is useful when using complex headers.

<static> bSortClasses :boolean

Enable or disable the addition of the classes 'sorting_1', 'sorting_2' and +'sorting_3' to the columns which are currently being sorted on. This is +presented as a feature switch as it can increase processing time (while +classes are removed and added) so for large data sets you might want to +turn this off.

<static> bStateSave :boolean

Enable or disable state saving. When enabled a cookie will be used to save +table display information such as pagination information, display length, +filtering and sorting. As such when the end user reloads the page the +display display will match what thy had previously set up.

<static> fnCookieCallback :function

Customise the cookie and / or the parameters being stored when using +DataTables with state saving enabled. This function is called whenever +the cookie is modified, and it expects a fully formed cookie string to be +returned. Note that the data object passed in is a Javascript object which +must be converted to a string (JSON.stringify for example).

<static> fnCreatedRow :function

This function is called when a TR element is created (and all TD child +elements have been inserted), or registered if using a DOM source, allowing +manipulation of the TR element (adding classes etc).

<static> fnDrawCallback :function

This function is called on every 'draw' event, and allows you to +dynamically modify any aspect you want about the created DOM.

<static> fnFooterCallback :function

Identical to fnHeaderCallback() but for the table footer this function +allows you to modify the table footer on every 'draw' even.

<static> fnFormatNumber :function

When rendering large numbers in the information element for the table +(i.e. "Showing 1 to 10 of 57 entries") DataTables will render large numbers +to have a comma separator for the 'thousands' units (e.g. 1 million is +rendered as "1,000,000") to help readability for the end user. This +function will override the default method DataTables uses.

<static> fnHeaderCallback :function

This function is called on every 'draw' event, and allows you to +dynamically modify the header row. This can be used to calculate and +display useful information about the table.

<static> fnInfoCallback :function

The information element can be used to convey information about the current +state of the table. Although the internationalisation options presented by +DataTables are quite capable of dealing with most customisations, there may +be times where you wish to customise the string further. This callback +allows you to do exactly that.

<static> fnInitComplete :function

Called when the table has been initialised. Normally DataTables will +initialise sequentially and there will be no need for this function, +however, this does not hold true when using external language information +since that is obtained using an async XHR call.

<static> fnPreDrawCallback :function

Called at the very start of each table draw and can be used to cancel the +draw by returning false, any other return (including undefined) results in +the full draw occurring).

<static> fnRowCallback :function

This function allows you to 'post process' each row after it have been +generated for each table draw, but before it is rendered on screen. This +function might be used for setting the row class name etc.

<static> fnServerData :function

This parameter allows you to override the default function which obtains +the data from the server ($.getJSON) so something more suitable for your +application. For example you could use POST data, or pull information from +a Gears or AIR database.

<static> fnServerParams :function

It is often useful to send extra data to the server when making an Ajax +request - for example custom filtering information, and this callback +function makes it trivial to send extra information to the server. The +passed in parameter is the data set that has been constructed by +DataTables, and you can add to this or modify it as you require.

<static> fnStateLoad :function

Load the table state. With this function you can define from where, and how, the +state of a table is loaded. By default DataTables will load from its state saving +cookie, but you might wish to use local storage (HTML5) or a server-side database.

<static> fnStateLoaded :function

Callback that is called when the state has been loaded from the state saving method +and the DataTables settings object has been modified as a result of the loaded state.

<static> fnStateLoadParams :function

Callback which allows modification of the saved state prior to loading that state. +This callback is called when the table is loading state from the stored data, but +prior to the settings object being modified by the saved state. Note that for +plug-in authors, you should use the 'stateLoadParams' event to load parameters for +a plug-in.

<static> fnStateSave :function

Save the table state. This function allows you to define where and how the state +information for the table is stored - by default it will use a cookie, but you +might want to use local storage (HTML5) or a server-side database.

<static> fnStateSaveParams :function

Callback which allows modification of the state to be saved. Called when the table +has changed state a new state save is required. This method allows modification of +the state saving object prior to actually doing the save, including addition or +other state properties or modification. Note that for plug-in authors, you should +use the 'stateSaveParams' event to save parameters for a plug-in.

<static> iCookieDuration :int

Duration of the cookie which is used for storing session information. This +value is given in seconds.

<static> iDeferLoading :int|array

When enabled DataTables will not make a request to the server for the first +page draw - rather it will use the data already on the page (no sorting etc +will be applied to it), thus saving on an XHR at load time. iDeferLoading +is used to indicate that deferred loading is required, but it is also used +to tell DataTables how many records there are in the full table (allowing +the information element and pagination to be displayed correctly). In the case +where a filtering is applied to the table on initial load, this can be +indicated by giving the parameter as an array, where the first element is +the number of records available after filtering and the second element is the +number of records without filtering (allowing the table information element +to be shown correctly).

<static> iDisplayLength :int

Number of rows to display on a single page when using pagination. If +feature enabled (bLengthChange) then the end user will be able to override +this to a custom setting using a pop-up menu.

<static> iDisplayStart :int

Define the starting point for data display when using DataTables with +pagination. Note that this parameter is the number of records, rather than +the page number, so if you have 10 records per page and want to start on +the third page, it should be "20".

<static> iScrollLoadGap :int

The scroll gap is the amount of scrolling that is left to go before +DataTables will load the next 'page' of data automatically. You typically +want a gap which is big enough that the scrolling will be smooth for the +user, while not so large that it will load more data than need.

<static> iTabIndex :int

By default DataTables allows keyboard navigation of the table (sorting, paging, +and filtering) by adding a tabindex attribute to the required elements. This +allows you to tab through the controls and press the enter key to activate them. +The tabindex is default 0, meaning that the tab follows the flow of the document. +You can overrule this using this parameter if you wish. Use a value of -1 to +disable built-in keyboard navigation.

<static> sAjaxDataProp :string

By default DataTables will look for the property 'aaData' when obtaining +data from an Ajax source or for server-side processing - this parameter +allows that property to be changed. You can use Javascript dotted object +notation to get a data source for multiple levels of nesting.

<static> sAjaxSource :string

You can instruct DataTables to load data from an external source using this +parameter (use aData if you want to pass data in you already have). Simply +provide a url a JSON object can be obtained from. This object must include +the parameter 'aaData' which is the data source for the table.

<static> sCookiePrefix :string

This parameter can be used to override the default prefix that DataTables +assigns to a cookie when state saving is enabled.

<static> sDom :string

This initialisation variable allows you to specify exactly where in the +DOM you want DataTables to inject the various controls it adds to the page +(for example you might want the pagination controls at the top of the +table). DIV elements (with or without a custom class) can also be added to +aid styling. The follow syntax is used: +

    +
  • The following options are allowed:
    +
      +
    • 'l' - Length changing
    • 'f' - Filtering input +
    • 't' - The table!
    • +
    • 'i' - Information
    • +
    • 'p' - Pagination
    • +
    • 'r' - pRocessing
    • +
    +
  • +
  • The following constants are allowed: +
      +
    • 'H' - jQueryUI theme "header" classes ('fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix')
    • +
    • 'F' - jQueryUI theme "footer" classes ('fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix')
    • +
    +
  • +
  • The following syntax is expected: +
      +
    • '<' and '>' - div elements
    • +
    • '<"class" and '>' - div with a class
    • +
    • '<"#id" and '>' - div with an ID
    • +
    +
  • +
  • Examples: +
      +
    • '<"wrapper"flipt>'
    • +
    • '<lf<t>ip>'
    • +
    +
  • +

<static> sPaginationType :string

DataTables features two different built-in pagination interaction methods +('two_button' or 'full_numbers') which present different page controls to +the end user. Further methods can be added using the API (see below).

<static> sScrollX :string

Enable horizontal scrolling. When a table is too wide to fit into a certain +layout, or you have a large number of columns in the table, you can enable +x-scrolling to show the table in a viewport, which can be scrolled. This +property can be any CSS unit, or a number (in which case it will be treated +as a pixel measurement).

<static> sScrollXInner :string

This property can be used to force a DataTable to use more width than it +might otherwise do when x-scrolling is enabled. For example if you have a +table which requires to be well spaced, this parameter is useful for +"over-sizing" the table, and thus forcing scrolling. This property can by +any CSS unit, or a number (in which case it will be treated as a pixel +measurement).

<static> sScrollY :string

Enable vertical scrolling. Vertical scrolling will constrain the DataTable +to the given height, and enable scrolling for any data which overflows the +current viewport. This can be used as an alternative to paging to display +a lot of data in a small area (although paging and scrolling can both be +enabled at the same time). This property can be any CSS unit, or a number +(in which case it will be treated as a pixel measurement).

<static> sServerMethod :string

Set the HTTP method that is used to make the Ajax call for server-side +processing or Ajax sourced data.

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> aaData :array

An array of data to use for the table, passed in at initialisation which +will be used in preference to any data which is already in the DOM. This is +particularly useful for constructing tables purely in Javascript, for +example with a custom Ajax call.

+ +
+
Examples
+
+
   // Using a 2D array data source
+   $(document).ready( function () {
+     $('#example').dataTable( {
+       "aaData": [
+         ['Trident', 'Internet Explorer 4.0', 'Win 95+', 4, 'X'],
+         ['Trident', 'Internet Explorer 5.0', 'Win 95+', 5, 'C'],
+       ],
+       "aoColumns": [
+         { "sTitle": "Engine" },
+         { "sTitle": "Browser" },
+         { "sTitle": "Platform" },
+         { "sTitle": "Version" },
+         { "sTitle": "Grade" }
+       ]
+     } );
+   } );
+   
+ 
+
+ +
+
   // Using an array of objects as a data source (mData)
+   $(document).ready( function () {
+     $('#example').dataTable( {
+       "aaData": [
+         {
+           "engine":   "Trident",
+           "browser":  "Internet Explorer 4.0",
+           "platform": "Win 95+",
+           "version":  4,
+           "grade":    "X"
+         },
+         {
+           "engine":   "Trident",
+           "browser":  "Internet Explorer 5.0",
+           "platform": "Win 95+",
+           "version":  5,
+           "grade":    "C"
+         }
+       ],
+       "aoColumns": [
+         { "sTitle": "Engine",   "mData": "engine" },
+         { "sTitle": "Browser",  "mData": "browser" },
+         { "sTitle": "Platform", "mData": "platform" },
+         { "sTitle": "Version",  "mData": "version" },
+         { "sTitle": "Grade",    "mData": "grade" }
+       ]
+     } );
+   } );
+
+
<static> aaSorting :array

If sorting is enabled, then DataTables will perform a first pass sort on +initialisation. You can define which column(s) the sort is performed upon, +and the sorting direction, with this variable. The aaSorting array should +contain an array for each column to be sorted initially containing the +column's index and a direction string ('asc' or 'desc').

+ +
+
Example
+
+
   // Sort by 3rd column first, and then 4th column
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aaSorting": [[2,'asc'], [3,'desc']]
+     } );
+   } );
+   
+   // No initial sorting
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aaSorting": []
+     } );
+   } );
+
+
<static> aaSortingFixed :array

This parameter is basically identical to the aaSorting parameter, but +cannot be overridden by user interaction with the table. What this means +is that you could have a column (visible or hidden) which the sorting will +always be forced on first - any sorting after that (from the user) will +then be performed as required. This can be useful for grouping rows +together.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aaSortingFixed": [[0,'asc']]
+     } );
+   } )
+
+
<static> aLengthMenu :array

This parameter allows you to readily specify the entries in the length drop +down menu that DataTables shows when pagination is enabled. It can be +either a 1D array of options which will be used for both the displayed +option and the value, or a 2D array which will use the array in the first +position as the value, and the array in the second position as the +displayed options (useful for language strings such as 'All').

+ +
+
Examples
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
+     } );
+   } );
+ 
+ 
+
+ +
+
   // Setting the default display length as well as length menu
+   // This is likely to be wanted if you remove the '10' option which
+   // is the iDisplayLength default.
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "iDisplayLength": 25,
+       "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]]
+     } );
+   } );
+
+
<static> aoColumnDefs

Very similar to aoColumns, aoColumnDefs allows you to target a specific +column, multiple columns, or all columns, using the aTargets property of +each object in the array. This allows great flexibility when creating +tables, as the aoColumnDefs arrays can be of any length, targeting the +columns you specifically want. aoColumnDefs may use any of the column +options available: DataTable.defaults.columns, but it must +have aTargets defined in each object in the array. Values in the aTargets +array may be: +

    +
  • a string - class name will be matched on the TH for the column
  • +
  • 0 or a positive integer - column index counting from the left
  • +
  • a negative integer - column index counting from the right
  • +
  • the string "_all" - all columns (i.e. assign a default)
  • +

+ +
+
<static> aoColumns

The aoColumns option in the initialisation parameter allows you to define +details about the way individual columns behave. For a full list of +column options that can be set, please see +DataTable.defaults.columns. Note that if you use aoColumns to +define your columns, you must have an entry in the array for every single +column that you have in your table (these can be null if you don't which +to specify any options).

+ +
+
<static> aoSearchCols :array

Basically the same as oSearch, this parameter defines the individual column +filtering state at initialisation time. The array must be of the same size +as the number of columns, and each element be an object with the parameters +"sSearch" and "bEscapeRegex" (the latter is optional). 'null' is also +accepted and the default will be used.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "aoSearchCols": [
+         null,
+         { "sSearch": "My filter" },
+         null,
+         { "sSearch": "^[0-9]", "bEscapeRegex": false }
+       ]
+     } );
+   } )
+
+
<static> asStripeClasses :array

An array of CSS classes that should be applied to displayed rows. This +array may be of any length, and DataTables will apply each class +sequentially, looping when required.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "asStripeClasses": [ 'strip1', 'strip2', 'strip3' ]
+     } );
+   } )
+
+
<static> bAutoWidth :boolean

Enable or disable automatic column width calculation. This can be disabled +as an optimisation (it takes some time to calculate the widths) if the +tables widths are passed in using aoColumns.

+ +
+
Example
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "bAutoWidth": false
+     } );
+   } );
+
+
<static> bDeferRender :boolean

Deferred rendering can provide DataTables with a huge speed boost when you +are using an Ajax or JS data source for the table. This option, when set to +true, will cause DataTables to defer the creation of the table elements for +each row until they are needed for a draw - saving a significant amount of +time.

+ +
+
Example
+
+
   $(document).ready( function() {
+     var oTable = $('#example').dataTable( {
+       "sAjaxSource": "sources/arrays.txt",
+       "bDeferRender": true
+     } );
+   } );
+
+
<static> bDestroy :boolean

Replace a DataTable which matches the given selector and replace it with +one which has the properties of the new initialisation object passed. If no +table matches the selector, then the new DataTable will be constructed as +per normal.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "sScrollY": "200px",
+       "bPaginate": false
+     } );
+     
+     // Some time later....
+     $('#example').dataTable( {
+       "bFilter": false,
+       "bDestroy": true
+     } );
+   } );
+
+
<static> bFilter :boolean

Enable or disable filtering of data. Filtering in DataTables is "smart" in +that it allows the end user to input multiple words (space separated) and +will match a row containing those words, even if not in the order that was +specified (this allow matching across multiple columns). Note that if you +wish to use filtering in DataTables this must remain 'true' - to remove the +default filtering input box and retain filtering abilities, please use +DataTable.defaults.sDom.

+ +
+
Example
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "bFilter": false
+     } );
+   } );
+
+
<static> bInfo :boolean

Enable or disable the table information display. This shows information +about the data that is currently visible on the page, including information +about filtered data if that action is being performed.

+ +
+
Example
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "bInfo": false
+     } );
+   } );
+
+
<static> bJQueryUI :boolean

Enable jQuery UI ThemeRoller support (required as ThemeRoller requires some +slightly different and additional mark-up from what DataTables has +traditionally used).

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bJQueryUI": true
+     } );
+   } );
+
+
<static> bLengthChange :boolean

Allows the end user to select the size of a formatted page from a select +menu (sizes are 10, 25, 50 and 100). Requires pagination (bPaginate).

+ +
+
Example
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "bLengthChange": false
+     } );
+   } );
+
+
<static> bPaginate :boolean

Enable or disable pagination.

+ +
+
Example
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "bPaginate": false
+     } );
+   } );
+
+
<static> bProcessing :boolean

Enable or disable the display of a 'processing' indicator when the table is +being processed (e.g. a sort). This is particularly useful for tables with +large amounts of data where it can take a noticeable amount of time to sort +the entries.

+ +
+
Example
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "bProcessing": true
+     } );
+   } );
+
+
<static> bRetrieve :boolean

Retrieve the DataTables object for the given selector. Note that if the +table has already been initialised, this parameter will cause DataTables +to simply return the object that has already been set up - it will not take +account of any changes you might have made to the initialisation object +passed to DataTables (setting this parameter to true is an acknowledgement +that you understand this). bDestroy can be used to reinitialise a table if +you need.

+ +
+
Example
+
+
   $(document).ready( function() {
+     initTable();
+     tableActions();
+   } );
+   
+   function initTable ()
+   {
+     return $('#example').dataTable( {
+       "sScrollY": "200px",
+       "bPaginate": false,
+       "bRetrieve": true
+     } );
+   }
+   
+   function tableActions ()
+   {
+     var oTable = initTable();
+     // perform API operations with oTable 
+   }
+
+
<static> bScrollAutoCss :boolean

Indicate if DataTables should be allowed to set the padding / margin +etc for the scrolling header elements or not. Typically you will want +this.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bScrollAutoCss": false,
+       "sScrollY": "200px"
+     } );
+   } );
+
+
<static> bScrollCollapse :boolean

When vertical (y) scrolling is enabled, DataTables will force the height of +the table's viewport to the given height at all times (useful for layout). +However, this can look odd when filtering data down to a small data set, +and the footer is left "floating" further down. This parameter (when +enabled) will cause DataTables to collapse the table's viewport down when +the result set will fit within the given Y height.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "sScrollY": "200",
+       "bScrollCollapse": true
+     } );
+   } );
+
+
<static> bScrollInfinite :boolean

Enable infinite scrolling for DataTables (to be used in combination with +sScrollY). Infinite scrolling means that DataTables will continually load +data as a user scrolls through a table, which is very useful for large +dataset. This cannot be used with pagination, which is automatically +disabled. Note - the Scroller extra for DataTables is recommended in +in preference to this option.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bScrollInfinite": true,
+       "bScrollCollapse": true,
+       "sScrollY": "200px"
+     } );
+   } );
+
+
<static> bServerSide :boolean

Configure DataTables to use server-side processing. Note that the +sAjaxSource parameter must also be given in order to give DataTables a +source to obtain the required data for each draw.

+ +
+
Example
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "bServerSide": true,
+       "sAjaxSource": "xhr.php"
+     } );
+   } );
+
+
<static> bSort :boolean

Enable or disable sorting of columns. Sorting of individual columns can be +disabled by the "bSortable" option for each column.

+ +
+
Example
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "bSort": false
+     } );
+   } );
+
+
<static> bSortCellsTop :boolean

Allows control over whether DataTables should use the top (true) unique +cell that is found for a single column, or the bottom (false - default). +This is useful when using complex headers.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bSortCellsTop": true
+     } );
+   } );
+
+
<static> bSortClasses :boolean

Enable or disable the addition of the classes 'sorting_1', 'sorting_2' and +'sorting_3' to the columns which are currently being sorted on. This is +presented as a feature switch as it can increase processing time (while +classes are removed and added) so for large data sets you might want to +turn this off.

+ +
+
Example
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "bSortClasses": false
+     } );
+   } );
+
+
<static> bStateSave :boolean

Enable or disable state saving. When enabled a cookie will be used to save +table display information such as pagination information, display length, +filtering and sorting. As such when the end user reloads the page the +display display will match what thy had previously set up.

+ +
+
Example
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "bStateSave": true
+     } );
+   } );
+
+
<static> fnCookieCallback :function

Customise the cookie and / or the parameters being stored when using +DataTables with state saving enabled. This function is called whenever +the cookie is modified, and it expects a fully formed cookie string to be +returned. Note that the data object passed in is a Javascript object which +must be converted to a string (JSON.stringify for example).

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sNamestring

Name of the cookie defined by DataTables

2
oDataobject

Data to be stored in the cookie

3
sExpiresstring

Cookie expires string

4
sPathstring

Path of the cookie to set

Returns:

Cookie formatted string (which should be encoded by + using encodeURIComponent())

Example:
+
+
   $(document).ready( function () {
+     $('#example').dataTable( {
+       "fnCookieCallback": function (sName, oData, sExpires, sPath) {
+         // Customise oData or sName or whatever else here
+         return sName + "="+JSON.stringify(oData)+"; expires=" + sExpires +"; path=" + sPath;
+       }
+     } );
+   } );
+
+
+
<static> fnCreatedRow :function

This function is called when a TR element is created (and all TD child +elements have been inserted), or registered if using a DOM source, allowing +manipulation of the TR element (adding classes etc).

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nRownode

"TR" element for the current row

2
aDataarray

Raw data array for this row

3
iDataIndexint

The index of this row in aoData

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "fnCreatedRow": function( nRow, aData, iDataIndex ) {
+         // Bold the grade for all 'A' grade browsers
+         if ( aData[4] == "A" )
+         {
+           $('td:eq(4)', nRow).html( 'A' );
+         }
+       }
+     } );
+   } );
+
+
+
<static> fnDrawCallback :function

This function is called on every 'draw' event, and allows you to +dynamically modify any aspect you want about the created DOM.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

DataTables settings object

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "fnDrawCallback": function( oSettings ) {
+         alert( 'DataTables has redrawn the table' );
+       }
+     } );
+   } );
+
+
+
<static> fnFooterCallback :function

Identical to fnHeaderCallback() but for the table footer this function +allows you to modify the table footer on every 'draw' even.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nFootnode

"TR" element for the footer

2
aDataarray

Full table data (as derived from the original HTML)

3
iStartint

Index for the current display starting point in the + display array

4
iEndint

Index for the current display ending point in the + display array

5
aiDisplayarray int

Index array to translate the visual position + to the full data array

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "fnFooterCallback": function( nFoot, aData, iStart, iEnd, aiDisplay ) {
+         nFoot.getElementsByTagName('th')[0].innerHTML = "Starting index is "+iStart;
+       }
+     } );
+   } )
+
+
+
<static> fnFormatNumber :function

When rendering large numbers in the information element for the table +(i.e. "Showing 1 to 10 of 57 entries") DataTables will render large numbers +to have a comma separator for the 'thousands' units (e.g. 1 million is +rendered as "1,000,000") to help readability for the end user. This +function will override the default method DataTables uses.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
iInint

number to be formatted

Returns:

formatted string for DataTables to show the number

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "fnFormatNumber": function ( iIn ) {
+         if ( iIn < 1000 ) {
+           return iIn;
+         } else {
+           var 
+             s=(iIn+""), 
+             a=s.split(""), out="", 
+             iLen=s.length;
+           
+           for ( var i=0 ; i<iLen ; i++ ) {
+             if ( i%3 === 0 && i !== 0 ) {
+               out = "'"+out;
+             }
+             out = a[iLen-i-1]+out;
+           }
+         }
+         return out;
+       };
+     } );
+   } );
+
+
+
<static> fnHeaderCallback :function

This function is called on every 'draw' event, and allows you to +dynamically modify the header row. This can be used to calculate and +display useful information about the table.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nHeadnode

"TR" element for the header

2
aDataarray

Full table data (as derived from the original HTML)

3
iStartint

Index for the current display starting point in the + display array

4
iEndint

Index for the current display ending point in the + display array

5
aiDisplayarray int

Index array to translate the visual position + to the full data array

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "fnHeaderCallback": function( nHead, aData, iStart, iEnd, aiDisplay ) {
+         nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
+       }
+     } );
+   } )
+
+
+
<static> fnInfoCallback :function

The information element can be used to convey information about the current +state of the table. Although the internationalisation options presented by +DataTables are quite capable of dealing with most customisations, there may +be times where you wish to customise the string further. This callback +allows you to do exactly that.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

DataTables settings object

2
iStartint

Starting position in data for the draw

3
iEndint

End position in data for the draw

4
iMaxint

Total number of rows in the table (regardless of + filtering)

5
iTotalint

Total number of rows in the data set, after filtering

6
sPrestring

The string that DataTables has formatted using it's + own rules

Returns:

The string to be displayed in the information element.

Example:
+
+
   $('#example').dataTable( {
+     "fnInfoCallback": function( oSettings, iStart, iEnd, iMax, iTotal, sPre ) {
+       return iStart +" to "+ iEnd;
+     }
+   } );
+
+
+
<static> fnInitComplete :function

Called when the table has been initialised. Normally DataTables will +initialise sequentially and there will be no need for this function, +however, this does not hold true when using external language information +since that is obtained using an async XHR call.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

DataTables settings object

2
jsonobject

The JSON object request from the server - only + present if client-side Ajax sourced data is used

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "fnInitComplete": function(oSettings, json) {
+         alert( 'DataTables has finished its initialisation.' );
+       }
+     } );
+   } )
+
+
+
<static> fnPreDrawCallback :function

Called at the very start of each table draw and can be used to cancel the +draw by returning false, any other return (including undefined) results in +the full draw occurring).

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

DataTables settings object

Returns:

False will cancel the draw, anything else (including no + return) will allow it to complete.

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "fnPreDrawCallback": function( oSettings ) {
+         if ( $('#test').val() == 1 ) {
+           return false;
+         }
+       }
+     } );
+   } );
+
+
+
<static> fnRowCallback :function

This function allows you to 'post process' each row after it have been +generated for each table draw, but before it is rendered on screen. This +function might be used for setting the row class name etc.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nRownode

"TR" element for the current row

2
aDataarray

Raw data array for this row

3
iDisplayIndexint

The display index for the current table draw

4
iDisplayIndexFullint

The index of the data in the full list of + rows (after filtering)

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
+         // Bold the grade for all 'A' grade browsers
+         if ( aData[4] == "A" )
+         {
+           $('td:eq(4)', nRow).html( 'A' );
+         }
+       }
+     } );
+   } );
+
+
+
<static> fnServerData :function

This parameter allows you to override the default function which obtains +the data from the server ($.getJSON) so something more suitable for your +application. For example you could use POST data, or pull information from +a Gears or AIR database.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sSourcestring

HTTP source to obtain the data from (sAjaxSource)

2
aoDataarray

A key/value pair object containing the data to send + to the server

3
fnCallbackfunction

to be called on completion of the data get + process that will draw the data on the page.

4
oSettingsobject

DataTables settings object

Example:
+
+
   // POST data to server
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bProcessing": true,
+       "bServerSide": true,
+       "sAjaxSource": "xhr.php",
+       "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) {
+         oSettings.jqXHR = $.ajax( {
+           "dataType": 'json', 
+           "type": "POST", 
+           "url": sSource, 
+           "data": aoData, 
+           "success": fnCallback
+         } );
+       }
+     } );
+   } );
+
+
+
<static> fnServerParams :function

It is often useful to send extra data to the server when making an Ajax +request - for example custom filtering information, and this callback +function makes it trivial to send extra information to the server. The +passed in parameter is the data set that has been constructed by +DataTables, and you can add to this or modify it as you require.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
aoDataarray

Data array (array of objects which are name/value + pairs) that has been constructed by DataTables and will be sent to the + server. In the case of Ajax sourced data with server-side processing + this will be an empty array, for server-side processing there will be a + significant number of parameters!

Returns:

Ensure that you modify the aoData array passed in, + as this is passed by reference.

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bProcessing": true,
+       "bServerSide": true,
+       "sAjaxSource": "scripts/server_processing.php",
+       "fnServerParams": function ( aoData ) {
+         aoData.push( { "name": "more_data", "value": "my_value" } );
+       }
+     } );
+   } );
+
+
+
<static> fnStateLoad :function

Load the table state. With this function you can define from where, and how, the +state of a table is loaded. By default DataTables will load from its state saving +cookie, but you might wish to use local storage (HTML5) or a server-side database.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

DataTables settings object

Returns:

The DataTables state object to be loaded

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bStateSave": true,
+       "fnStateLoad": function (oSettings) {
+         var o;
+         
+         // Send an Ajax request to the server to get the data. Note that
+         // this is a synchronous request.
+         $.ajax( {
+           "url": "/state_load",
+           "async": false,
+           "dataType": "json",
+           "success": function (json) {
+             o = json;
+           }
+         } );
+         
+         return o;
+       }
+     } );
+   } );
+
+
+
<static> fnStateLoaded :function

Callback that is called when the state has been loaded from the state saving method +and the DataTables settings object has been modified as a result of the loaded state.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

DataTables settings object

2
oDataobject

The state object that was loaded

Example:
+
+
   // Show an alert with the filtering value that was saved
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bStateSave": true,
+       "fnStateLoaded": function (oSettings, oData) {
+         alert( 'Saved filter was: '+oData.oSearch.sSearch );
+       }
+     } );
+   } );
+
+
+
<static> fnStateLoadParams :function

Callback which allows modification of the saved state prior to loading that state. +This callback is called when the table is loading state from the stored data, but +prior to the settings object being modified by the saved state. Note that for +plug-in authors, you should use the 'stateLoadParams' event to load parameters for +a plug-in.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

DataTables settings object

2
oDataobject

The state object that is to be loaded

Examples:
+
+
   // Remove a saved filter, so filtering is never loaded
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bStateSave": true,
+       "fnStateLoadParams": function (oSettings, oData) {
+         oData.oSearch.sSearch = "";
+       }
+     } );
+   } );
+
+ 
+
+ +
+
   // Disallow state loading by returning false
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bStateSave": true,
+       "fnStateLoadParams": function (oSettings, oData) {
+         return false;
+       }
+     } );
+   } );
+
+
+
<static> fnStateSave :function

Save the table state. This function allows you to define where and how the state +information for the table is stored - by default it will use a cookie, but you +might want to use local storage (HTML5) or a server-side database.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

DataTables settings object

2
oDataobject

The state object to be saved

Example:
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bStateSave": true,
+       "fnStateSave": function (oSettings, oData) {
+         // Send an Ajax request to the server with the state object
+         $.ajax( {
+           "url": "/state_save",
+           "data": oData,
+           "dataType": "json",
+           "method": "POST"
+           "success": function () {}
+         } );
+       }
+     } );
+   } );
+
+
+
<static> fnStateSaveParams :function

Callback which allows modification of the state to be saved. Called when the table +has changed state a new state save is required. This method allows modification of +the state saving object prior to actually doing the save, including addition or +other state properties or modification. Note that for plug-in authors, you should +use the 'stateSaveParams' event to save parameters for a plug-in.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oSettingsobject

DataTables settings object

2
oDataobject

The state object to be saved

Example:
+
+
   // Remove a saved filter, so filtering is never saved
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bStateSave": true,
+       "fnStateSaveParams": function (oSettings, oData) {
+         oData.oSearch.sSearch = "";
+       }
+     } );
+   } );
+
+
+
<static> iCookieDuration :int

Duration of the cookie which is used for storing session information. This +value is given in seconds.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "iCookieDuration": 60*60*24; // 1 day
+     } );
+   } )
+
+
<static> iDeferLoading :int|array

When enabled DataTables will not make a request to the server for the first +page draw - rather it will use the data already on the page (no sorting etc +will be applied to it), thus saving on an XHR at load time. iDeferLoading +is used to indicate that deferred loading is required, but it is also used +to tell DataTables how many records there are in the full table (allowing +the information element and pagination to be displayed correctly). In the case +where a filtering is applied to the table on initial load, this can be +indicated by giving the parameter as an array, where the first element is +the number of records available after filtering and the second element is the +number of records without filtering (allowing the table information element +to be shown correctly).

+ +
+
Examples
+
+
   // 57 records available in the table, no filtering applied
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bServerSide": true,
+       "sAjaxSource": "scripts/server_processing.php",
+       "iDeferLoading": 57
+     } );
+   } );
+
+ 
+
+ +
+
   // 57 records after filtering, 100 without filtering (an initial filter applied)
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bServerSide": true,
+       "sAjaxSource": "scripts/server_processing.php",
+       "iDeferLoading": [ 57, 100 ],
+       "oSearch": {
+         "sSearch": "my_filter"
+       }
+     } );
+   } );
+
+
<static> iDisplayLength :int

Number of rows to display on a single page when using pagination. If +feature enabled (bLengthChange) then the end user will be able to override +this to a custom setting using a pop-up menu.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "iDisplayLength": 50
+     } );
+   } )
+
+
<static> iDisplayStart :int

Define the starting point for data display when using DataTables with +pagination. Note that this parameter is the number of records, rather than +the page number, so if you have 10 records per page and want to start on +the third page, it should be "20".

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "iDisplayStart": 20
+     } );
+   } )
+
+
<static> iScrollLoadGap :int

The scroll gap is the amount of scrolling that is left to go before +DataTables will load the next 'page' of data automatically. You typically +want a gap which is big enough that the scrolling will be smooth for the +user, while not so large that it will load more data than need.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bScrollInfinite": true,
+       "bScrollCollapse": true,
+       "sScrollY": "200px",
+       "iScrollLoadGap": 50
+     } );
+   } );
+
+
<static> iTabIndex :int

By default DataTables allows keyboard navigation of the table (sorting, paging, +and filtering) by adding a tabindex attribute to the required elements. This +allows you to tab through the controls and press the enter key to activate them. +The tabindex is default 0, meaning that the tab follows the flow of the document. +You can overrule this using this parameter if you wish. Use a value of -1 to +disable built-in keyboard navigation.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "iTabIndex": 1
+     } );
+   } );
+
+
<static> sAjaxDataProp :string

By default DataTables will look for the property 'aaData' when obtaining +data from an Ajax source or for server-side processing - this parameter +allows that property to be changed. You can use Javascript dotted object +notation to get a data source for multiple levels of nesting.

+ +
+
Examples
+
+
   // Get data from { "data": [...] }
+   $(document).ready( function() {
+     var oTable = $('#example').dataTable( {
+       "sAjaxSource": "sources/data.txt",
+       "sAjaxDataProp": "data"
+     } );
+   } );
+   
+ 
+
+ +
+
   // Get data from { "data": { "inner": [...] } }
+   $(document).ready( function() {
+     var oTable = $('#example').dataTable( {
+       "sAjaxSource": "sources/data.txt",
+       "sAjaxDataProp": "data.inner"
+     } );
+   } );
+
+
<static> sAjaxSource :string

You can instruct DataTables to load data from an external source using this +parameter (use aData if you want to pass data in you already have). Simply +provide a url a JSON object can be obtained from. This object must include +the parameter 'aaData' which is the data source for the table.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "sAjaxSource": "http://www.sprymedia.co.uk/dataTables/json.php"
+     } );
+   } )
+
+
<static> sCookiePrefix :string

This parameter can be used to override the default prefix that DataTables +assigns to a cookie when state saving is enabled.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "sCookiePrefix": "my_datatable_",
+     } );
+   } );
+
+
<static> sDom :string

This initialisation variable allows you to specify exactly where in the +DOM you want DataTables to inject the various controls it adds to the page +(for example you might want the pagination controls at the top of the +table). DIV elements (with or without a custom class) can also be added to +aid styling. The follow syntax is used: +

    +
  • The following options are allowed:
    +
      +
    • 'l' - Length changing
    • 'f' - Filtering input +
    • 't' - The table!
    • +
    • 'i' - Information
    • +
    • 'p' - Pagination
    • +
    • 'r' - pRocessing
    • +
    +
  • +
  • The following constants are allowed: +
      +
    • 'H' - jQueryUI theme "header" classes ('fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix')
    • +
    • 'F' - jQueryUI theme "footer" classes ('fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix')
    • +
    +
  • +
  • The following syntax is expected: +
      +
    • '<' and '>' - div elements
    • +
    • '<"class" and '>' - div with a class
    • +
    • '<"#id" and '>' - div with an ID
    • +
    +
  • +
  • Examples: +
      +
    • '<"wrapper"flipt>'
    • +
    • '<lf<t>ip>'
    • +
    +
  • +

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "sDom": '<"top"i>rt<"bottom"flp><"clear">'
+     } );
+   } );
+
+
<static> sPaginationType :string

DataTables features two different built-in pagination interaction methods +('two_button' or 'full_numbers') which present different page controls to +the end user. Further methods can be added using the API (see below).

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "sPaginationType": "full_numbers"
+     } );
+   } )
+
+
<static> sScrollX :string

Enable horizontal scrolling. When a table is too wide to fit into a certain +layout, or you have a large number of columns in the table, you can enable +x-scrolling to show the table in a viewport, which can be scrolled. This +property can be any CSS unit, or a number (in which case it will be treated +as a pixel measurement).

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "sScrollX": "100%",
+       "bScrollCollapse": true
+     } );
+   } );
+
+
<static> sScrollXInner :string

This property can be used to force a DataTable to use more width than it +might otherwise do when x-scrolling is enabled. For example if you have a +table which requires to be well spaced, this parameter is useful for +"over-sizing" the table, and thus forcing scrolling. This property can by +any CSS unit, or a number (in which case it will be treated as a pixel +measurement).

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "sScrollX": "100%",
+       "sScrollXInner": "110%"
+     } );
+   } );
+
+
<static> sScrollY :string

Enable vertical scrolling. Vertical scrolling will constrain the DataTable +to the given height, and enable scrolling for any data which overflows the +current viewport. This can be used as an alternative to paging to display +a lot of data in a small area (although paging and scrolling can both be +enabled at the same time). This property can be any CSS unit, or a number +(in which case it will be treated as a pixel measurement).

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "sScrollY": "200px",
+       "bPaginate": false
+     } );
+   } );
+
+
<static> sServerMethod :string

Set the HTTP method that is used to make the Ajax call for server-side +processing or Ajax sourced data.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "bServerSide": true,
+       "sAjaxSource": "scripts/post.php",
+       "sServerMethod": "POST"
+     } );
+   } );
+
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.defaults.oLanguage.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.defaults.oLanguage.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,362 @@ + + + + + Namespace: oLanguage - documentation + + + + + + + + + +
+ + +
+

Namespace: oLanguage

+

Ancestry: DataTable ยป .defaults. ยป oLanguage

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

All strings that DataTables uses in the user interface that it creates +are defined in this object, allowing you to modified them individually or +completely replace them all as required.

+ +
+ +
+ + +
+ +

Summary

+ +

Namespaces

+
+
oAria

Strings that are used for WAI-ARIA labels and controls only (these are not +actually visible on the page, but will be read by screenreaders, and thus +must be internationalised as well).

oPaginate

Pagination string used by DataTables for the two built-in pagination +control types ("two_button" and "full_numbers")

+

Properties - static

+ +
+
<static> sEmptyTable :string

This string is shown in preference to sZeroRecords when the table is +empty of data (regardless of filtering). Note that this is an optional +parameter - if it is not given, the value of sZeroRecords will be used +instead (either the default or given value).

<static> sInfo :string

This string gives information to the end user about the information that +is current on display on the page. The START, END and TOTAL +variables are all dynamically replaced as the table display updates, and +can be freely moved or removed as the language requirements change.

<static> sInfoEmpty :string

Display information string for when the table is empty. Typically the +format of this string should match sInfo.

<static> sInfoFiltered :string

When a user filters the information in a table, this string is appended +to the information (sInfo) to give an idea of how strong the filtering +is. The variable MAX is dynamically updated.

<static> sInfoPostFix :string

If can be useful to append extra information to the info string at times, +and this variable does exactly that. This information will be appended to +the sInfo (sInfoEmpty and sInfoFiltered in whatever combination they are +being used) at all times.

<static> sInfoThousands :string

DataTables has a build in number formatter (fnFormatNumber) which is used +to format large numbers that are used in the table information. By +default a comma is used, but this can be trivially changed to any +character you wish with this parameter.

<static> sLengthMenu :string

Detail the action that will be taken when the drop down menu for the +pagination length option is changed. The 'MENU' variable is replaced +with a default select list of 10, 25, 50 and 100, and can be replaced +with a custom select box if required.

<static> sLoadingRecords :string

When using Ajax sourced data and during the first draw when DataTables is +gathering the data, this message is shown in an empty row in the table to +indicate to the end user the the data is being loaded. Note that this +parameter is not used when loading data by server-side processing, just +Ajax sourced data with client-side processing.

<static> sProcessing :string

Text which is displayed when the table is processing a user action +(usually a sort command or similar).

<static> sSearch :string

Details the actions that will be taken when the user types into the +filtering input text box. The variable "INPUT", if used in the string, +is replaced with the HTML text box for the filtering input allowing +control over where it appears in the string. If "INPUT" is not given +then the input box is appended to the string automatically.

<static> sUrl :string

All of the language information can be stored in a file on the +server-side, which DataTables will look up if this parameter is passed. +It must store the URL of the language file, which is in a JSON format, +and the object has the same properties as the oLanguage object in the +initialiser object (i.e. the above parameters). Please refer to one of +the example language files to see how this works in action.

<static> sZeroRecords :string

Text shown inside the table records when the is no information to be +displayed after filtering. sEmptyTable is shown when there is simply no +information in the table at all (regardless of filtering).

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> sEmptyTable :string

This string is shown in preference to sZeroRecords when the table is +empty of data (regardless of filtering). Note that this is an optional +parameter - if it is not given, the value of sZeroRecords will be used +instead (either the default or given value).

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sEmptyTable": "No data available in table"
+       }
+     } );
+   } );
+
+
<static> sInfo :string

This string gives information to the end user about the information that +is current on display on the page. The START, END and TOTAL +variables are all dynamically replaced as the table display updates, and +can be freely moved or removed as the language requirements change.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sInfo": "Got a total of _TOTAL_ entries to show (_START_ to _END_)"
+       }
+     } );
+   } );
+
+
<static> sInfoEmpty :string

Display information string for when the table is empty. Typically the +format of this string should match sInfo.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sInfoEmpty": "No entries to show"
+       }
+     } );
+   } );
+
+
<static> sInfoFiltered :string

When a user filters the information in a table, this string is appended +to the information (sInfo) to give an idea of how strong the filtering +is. The variable MAX is dynamically updated.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sInfoFiltered": " - filtering from _MAX_ records"
+       }
+     } );
+   } );
+
+
<static> sInfoPostFix :string

If can be useful to append extra information to the info string at times, +and this variable does exactly that. This information will be appended to +the sInfo (sInfoEmpty and sInfoFiltered in whatever combination they are +being used) at all times.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sInfoPostFix": "All records shown are derived from real information."
+       }
+     } );
+   } );
+
+
<static> sInfoThousands :string

DataTables has a build in number formatter (fnFormatNumber) which is used +to format large numbers that are used in the table information. By +default a comma is used, but this can be trivially changed to any +character you wish with this parameter.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sInfoThousands": "'"
+       }
+     } );
+   } );
+
+
<static> sLengthMenu :string

Detail the action that will be taken when the drop down menu for the +pagination length option is changed. The 'MENU' variable is replaced +with a default select list of 10, 25, 50 and 100, and can be replaced +with a custom select box if required.

+ +
+
Examples
+
+
   // Language change only
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sLengthMenu": "Display _MENU_ records"
+       }
+     } );
+   } );
+   
+ 
+
+ +
+
   // Language and options change
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sLengthMenu": 'Display  records'
+       }
+     } );
+   } );
+
+
<static> sLoadingRecords :string

When using Ajax sourced data and during the first draw when DataTables is +gathering the data, this message is shown in an empty row in the table to +indicate to the end user the the data is being loaded. Note that this +parameter is not used when loading data by server-side processing, just +Ajax sourced data with client-side processing.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sLoadingRecords": "Please wait - loading..."
+       }
+     } );
+   } );
+
+
<static> sProcessing :string

Text which is displayed when the table is processing a user action +(usually a sort command or similar).

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sProcessing": "DataTables is currently busy"
+       }
+     } );
+   } );
+
+
<static> sSearch :string

Details the actions that will be taken when the user types into the +filtering input text box. The variable "INPUT", if used in the string, +is replaced with the HTML text box for the filtering input allowing +control over where it appears in the string. If "INPUT" is not given +then the input box is appended to the string automatically.

+ +
+
Examples
+
+
   // Input text box will be appended at the end automatically
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sSearch": "Filter records:"
+       }
+     } );
+   } );
+   
+ 
+
+ +
+
   // Specify where the filter should appear
+   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sSearch": "Apply filter _INPUT_ to table"
+       }
+     } );
+   } );
+
+
<static> sUrl :string

All of the language information can be stored in a file on the +server-side, which DataTables will look up if this parameter is passed. +It must store the URL of the language file, which is in a JSON format, +and the object has the same properties as the oLanguage object in the +initialiser object (i.e. the above parameters). Please refer to one of +the example language files to see how this works in action.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sUrl": "http://www.sprymedia.co.uk/dataTables/lang.txt"
+       }
+     } );
+   } );
+
+
<static> sZeroRecords :string

Text shown inside the table records when the is no information to be +displayed after filtering. sEmptyTable is shown when there is simply no +information in the table at all (regardless of filtering).

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "sZeroRecords": "No records to display"
+       }
+     } );
+   } );
+
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.defaults.oLanguage.oAria.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.defaults.oLanguage.oAria.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,135 @@ + + + + + Namespace: oAria - documentation + + + + + + + + + +
+ + +
+

Namespace: oAria

+

Ancestry: DataTable ยป .defaults ยป .oLanguage. ยป oAria

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Strings that are used for WAI-ARIA labels and controls only (these are not +actually visible on the page, but will be read by screenreaders, and thus +must be internationalised as well).

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> sSortAscending :string

ARIA label that is added to the table headers when the column may be +sorted ascending by activing the column (click or return when focused). +Note that the column header is prefixed to this string.

<static> sSortDescending :string

ARIA label that is added to the table headers when the column may be +sorted descending by activing the column (click or return when focused). +Note that the column header is prefixed to this string.

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> sSortAscending :string

ARIA label that is added to the table headers when the column may be +sorted ascending by activing the column (click or return when focused). +Note that the column header is prefixed to this string.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "oAria": {
+           "sSortAscending": " - click/return to sort ascending"
+         }
+       }
+     } );
+   } );
+
+
<static> sSortDescending :string

ARIA label that is added to the table headers when the column may be +sorted descending by activing the column (click or return when focused). +Note that the column header is prefixed to this string.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "oAria": {
+           "sSortDescending": " - click/return to sort descending"
+         }
+       }
+     } );
+   } );
+
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.defaults.oLanguage.oPaginate.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.defaults.oLanguage.oPaginate.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,164 @@ + + + + + Namespace: oPaginate - documentation + + + + + + + + + +
+ + +
+

Namespace: oPaginate

+

Ancestry: DataTable ยป .defaults ยป .oLanguage. ยป oPaginate

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Pagination string used by DataTables for the two built-in pagination +control types ("two_button" and "full_numbers")

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> sFirst :string

Text to use when using the 'full_numbers' type of pagination for the +button to take the user to the first page.

<static> sLast :string

Text to use when using the 'full_numbers' type of pagination for the +button to take the user to the last page.

<static> sNext :string

Text to use for the 'next' pagination button (to take the user to the +next page).

<static> sPrevious :string

Text to use for the 'previous' pagination button (to take the user to
+the previous page).

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> sFirst :string

Text to use when using the 'full_numbers' type of pagination for the +button to take the user to the first page.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "oPaginate": {
+           "sFirst": "First page"
+         }
+       }
+     } );
+   } );
+
+
<static> sLast :string

Text to use when using the 'full_numbers' type of pagination for the +button to take the user to the last page.

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "oPaginate": {
+           "sLast": "Last page"
+         }
+       }
+     } );
+   } );
+
+
<static> sNext :string

Text to use for the 'next' pagination button (to take the user to the +next page).

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "oPaginate": {
+           "sNext": "Next page"
+         }
+       }
+     } );
+   } );
+
+
<static> sPrevious :string

Text to use for the 'previous' pagination button (to take the user to
+the previous page).

+ +
+
Example
+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oLanguage": {
+         "oPaginate": {
+           "sPrevious": "Previous page"
+         }
+       }
+     } );
+   } );
+
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.defaults.oSearch.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.defaults.oSearch.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,93 @@ + + + + + Namespace: oSearch - documentation + + + + + + + + + +
+ + +
+

Namespace: oSearch

+

Ancestry: DataTable ยป .defaults. ยป oSearch

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+
    +
  • Overview
  • +
  • Summary
    Classes (0)Namespaces (0)
    Properties (0)Static properties (0)
    Methods (0)Static methods (0)
    Events (0)
  • Details
    Properties (0)Static properties (0)
    Methods (0)Static methods (0)
    Events (0)
+
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

This parameter allows you to have define the global filtering state at +initialisation time. As an object the "sSearch" parameter must be +defined, but all other parameters are optional. When "bRegex" is true, +the search string will be treated as a regular expression, when false +(default) it will be treated as a straight string. When "bSmart" +DataTables will use it's smart filtering methods (to word match at +any point in the data), when false this will not be done.

+ +
+

Example

+
+
   $(document).ready( function() {
+     $('#example').dataTable( {
+       "oSearch": {"sSearch": "Initial search"}
+     } );
+   } )
+
+

Extends

+ + +
+ + + + + +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.ext.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.ext.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,83 @@ + + + + + Namespace: ext - documentation + + + + + + + + + +
+ + +
+

Namespace: ext

+

Ancestry: DataTable. ยป ext

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+
    +
  • Overview
  • +
  • Summary
    Classes (0)Namespaces (0)
    Properties (0)Static properties (0)
    Methods (0)Static methods (0)
    Events (0)
  • Details
    Properties (0)Static properties (0)
    Methods (0)Static methods (0)
    Events (0)
+
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Extension object for DataTables that is used to provide all extension options.

+ +

Note that the DataTable.ext object is available through +jQuery.fn.dataTable.ext where it may be accessed and manipulated. It is +also aliased to jQuery.fn.dataTableExt for historic reasons.

+ +
+

Extends

+ + +
+ + + + + +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,1371 @@ + + + + + Class: DataTable - documentation + + + + + + + + + +
+ + +
+

Class: DataTable

+ +
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +
new DataTable(oInit)

DataTables is a plug-in for the jQuery Javascript library. It is a +highly flexible tool, based upon the foundations of progressive +enhancement, which will add advanced interaction controls to any +HTML table. For a full list of features please refer to +DataTables.net.

+ +

Note that the DataTable object is not a global variable but is +aliased to jQuery.fn.DataTable and jQuery.fn.dataTable through which +it may be accessed.

Constructor

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oInitobjectOptional{}

Configuration object for DataTables. Options + are defined by DataTable.defaults

Examples:
+
+
   // Basic initialisation
+   $(document).ready( function {
+     $('#example').dataTable();
+   } );
+ 
+ 
+
+ +
+
   // Initialisation with configuration options - in this case, disable
+   // pagination and sorting.
+   $(document).ready( function {
+     $('#example').dataTable( {
+       "bPaginate": false,
+       "bSort": false 
+     } );
+   } );
+
+
+

Requires

+
    +
  • module:jQuery
  • +
+ +
+ + +
+ +

Summary

+ +

Namespaces

+
+
defaults

Initialisation options that can be given to DataTables at initialisation +time.

ext

Extension object for DataTables that is used to provide all extension options. [...]

models

Object models container, for the various models that DataTables has available +to it. These models define the objects that are used to hold the active state +and configuration of the table.

oApi

Reference to internal functions for use by plug-in developers. Note that these +methods are references to internal functions and are considered to be private. +If you use these methods, be aware that they are liable to change between versions +(check the upgrade notes).

+

Properties - static

+ +
+
<static> version :string

Version string for plug-ins to check compatibility. Allowed format is +a.b.c.d.e where: a:int, b:int, c:int, d:string(dev|beta), e:int. d and +e are optional

+

Methods - instance

+ +
+
$(sSelector, oOpts) → {object}

Perform a jQuery selector action on the table's TR elements (from the tbody) and +return the resulting jQuery object.

_(sSelector, oOpts) → {array}

Almost identical to $ in operation, but in this case returns the data for the matched +rows - as such, the jQuery selector used should match TR row nodes or TD/TH cell nodes +rather than any descendants, so the data can be obtained for the row/cell. If matching +rows are found, the data returned is the original data array/object that was used to
+create the row (or a generated array if from a DOM source). [...]

fnAddData(mData, bRedraw) → {array}

Add a single new row or multiple rows of data to the table. Please note +that this is suitable for client-side processing only - if you are using +server-side processing (i.e. "bServerSide": true), then to add data, you +must add it to the data source, i.e. the server-side, through an Ajax call.

fnAdjustColumnSizing(bRedraw)

This function will make DataTables recalculate the column sizes, based on the data +contained in the table and the sizes applied to the columns (in the DOM, CSS or +through the sWidth parameter). This can be useful when the width of the table's +parent element changes (for example a window resize).

fnClearTable(bRedraw)

Quickly and simply clear a table

fnClose(nTr) → {int}

The exact opposite of 'opening' a row, this function will close any rows which +are currently 'open'.

fnDeleteRow(mTarget, fnCallBack, bRedraw) → {array}

Remove a row for the table

fnDestroy(bRemove)

Restore the table to it's original state in the DOM by removing all of DataTables +enhancements, alterations to the DOM structure of the table and event listeners.

fnDraw(bComplete)

Redraw the table

fnFilter(sInput, iColumn, bRegex, bSmart, bShowGlobal, bCaseInsensitive)

Filter the input based on data

fnGetData(mRow, iCol) → {array|object|string}

Get the data for the whole table, an individual row or an individual cell based on the +provided parameters.

fnGetNodes(iRow) → {array|node}

Get an array of the TR nodes that are used in the table's body. Note that you will +typically want to use the '$' API method in preference to this as it is more +flexible.

fnGetPosition(nNode) → {int}

Get the array indexes of a particular cell from it's DOM element +and column index including hidden columns

fnIsOpen(nTr) → {boolean}

Check to see if a row is 'open' or not.

fnOpen(nTr, mHtml, sClass) → {node}

This function will place a new row directly after a row which is currently +on display on the page, with the HTML contents that is passed into the +function. This can be used, for example, to ask for confirmation that a +particular record should be deleted.

fnPageChange(mAction, bRedraw)

Change the pagination - provides the internal logic for pagination in a simple API +function. With this function you can have a DataTables table go to the next, +previous, first or last pages.

fnSetColumnVis(iCol, bShow, bRedraw)

Show a particular column

fnSettings() → {object}

Get the settings for a particular table for external manipulation

fnSort(iCol)

Sort the table by a particular column

fnSortListener(nNode, iColumn, fnCallback)

Attach a sort listener to an element for a given column

fnUpdate(mData, mRow, iColumn, bRedraw, bAction) → {int}

Update a table cell or row - this method will accept either a single value to +update the cell with, an array of values with one element for each column or +an object in the same format as the original data source. The function is +self-referencing in order to make the multi column updates easier.

fnVersionCheck(sVersion) → {boolean}

Provide a common method for plug-ins to check the version of DataTables being used, in order +to ensure compatibility.

+
+

Methods - static

+ +
+
<static> fnIsDataTable(nTable) → {boolean}

Check if a TABLE node is a DataTable table already or not.

<static> fnTables(bVisible) → {array}

Get all DataTable tables that have been initialised - optionally you can select to +get only currently visible tables.

<static> fnVersionCheck(sVersion) → {boolean}

Provide a common method for plug-ins to check the version of DataTables being used, in order +to ensure compatibility.

+
+

Events

+
+
destroy

Destroy event, fired when the DataTable is destroyed by calling fnDestroy or passing +the bDestroy:true parameter in the initialisation object. This can be used to remove +bound events, added DOM nodes, etc.

draw

Draw event, fired whenever the table is redrawn on the page, at the same point as +fnDrawCallback. This may be useful for binding events or performing calculations when +the table is altered at all.

filter

Filter event, fired when the filtering applied to the table (using the build in global +global filter, or column filters) is altered.

init

DataTables initialisation complete event, fired when the table is fully drawn, +including Ajax data loaded, if Ajax data is required.

page

Page change event, fired when the paging of the table is altered.

processing

Processing event, fired when DataTables is doing some kind of processing (be it, +sort, filter or anything else). Can be used to indicate to the end user that +there is something happening, or that something has finished.

sort

Sort event, fired when the sorting applied to the table is altered.

stateLoaded

State loaded event, fired when state has been loaded from stored data and the settings +object has been modified by the loaded data.

stateLoadParams

State load event, fired when the table is loading state from the stored data, but +prior to the settings object being modified by the saved state - allowing modification +of the saved state is required or loading of state for a plug-in.

stateSaveParams

State save event, fired when the table has changed state a new state save is required. +This method allows modification of the state saving object prior to actually doing the +save, including addition or other state properties (for plug-ins) or modification +of a DataTables core property.

xhr

Ajax (XHR) event, fired whenever an Ajax request is completed from a request to +made to the server for new data (note that this trigger is called in fnServerData, +if you override fnServerData and which to use this event, you need to trigger it in +you success function).

+ +
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> version :string

Version string for plug-ins to check compatibility. Allowed format is +a.b.c.d.e where: a:int, b:int, c:int, d:string(dev|beta), e:int. d and +e are optional

+ +
+
+

Methods - instance

+
+
$(sSelector, oOpts) → {object}

Perform a jQuery selector action on the table's TR elements (from the tbody) and +return the resulting jQuery object.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sSelectorstring | node | jQuery

jQuery selector or node collection to act on

2
oOptsobjectOptional

Optional parameters for modifying the rows to be included

oOpts.filterstring<optional>
none

Select TR elements that meet the current filter + criterion ("applied") or all TR elements (i.e. no filter).

oOpts.orderstring<optional>
current

Order of the TR elements in the processed array. + Can be either 'current', whereby the current sorting of the table is used, or + 'original' whereby the original order the data was read into the table is used.

oOpts.pagestring<optional>
all

Limit the selection to the currently displayed page + ("current") or not ("all"). If 'current' is given, then order is assumed to be + 'current' and filter is 'applied', regardless of what they might be given as.

Returns:

jQuery object, filtered by the given selector.

Examples:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+
+     // Highlight every second row
+     oTable.$('tr:odd').css('backgroundColor', 'blue');
+   } );
+
+ 
+
+ +
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+
+     // Filter to rows with 'Webkit' in them, add a background colour and then
+     // remove the filter, thus highlighting the 'Webkit' rows only.
+     oTable.fnFilter('Webkit');
+     oTable.$('tr', {"filter": "applied"}).css('backgroundColor', 'blue');
+     oTable.fnFilter('');
+   } );
+
+
+
_(sSelector, oOpts) → {array}

Almost identical to $ in operation, but in this case returns the data for the matched +rows - as such, the jQuery selector used should match TR row nodes or TD/TH cell nodes +rather than any descendants, so the data can be obtained for the row/cell. If matching +rows are found, the data returned is the original data array/object that was used to
+create the row (or a generated array if from a DOM source).

+ +

This method is often useful in-combination with $ where both functions are given the +same parameters and the array indexes will match identically.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sSelectorstring | node | jQuery

jQuery selector or node collection to act on

2
oOptsobjectOptional

Optional parameters for modifying the rows to be included

oOpts.filterstring<optional>
none

Select elements that meet the current filter + criterion ("applied") or all elements (i.e. no filter).

oOpts.orderstring<optional>
current

Order of the data in the processed array. + Can be either 'current', whereby the current sorting of the table is used, or + 'original' whereby the original order the data was read into the table is used.

oOpts.pagestring<optional>
all

Limit the selection to the currently displayed page + ("current") or not ("all"). If 'current' is given, then order is assumed to be + 'current' and filter is 'applied', regardless of what they might be given as.

Returns:

Data for the matched elements. If any elements, as a result of the + selector, were not TR, TD or TH elements in the DataTable, they will have a null + entry in the array.

Examples:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+
+     // Get the data from the first row in the table
+     var data = oTable._('tr:first');
+
+     // Do something useful with the data
+     alert( "First cell is: "+data[0] );
+   } );
+
+ 
+
+ +
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+
+     // Filter to 'Webkit' and get all data for 
+     oTable.fnFilter('Webkit');
+     var data = oTable._('tr', {"filter": "applied"});
+     
+     // Do something with the data
+     alert( data.length+" rows matched the filter" );
+   } );
+
+
+
fnAddData(mData, bRedraw) → {array}

Add a single new row or multiple rows of data to the table. Please note +that this is suitable for client-side processing only - if you are using +server-side processing (i.e. "bServerSide": true), then to add data, you +must add it to the data source, i.e. the server-side, through an Ajax call.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
mDataarray | object

The data to be added to the table. This can be: +

    +
  • 1D array of data - add a single row with the data provided
  • +
  • 2D array of arrays - add multiple rows in a single call
  • +
  • object - data object when using mData
  • +
  • array of objects - multiple data objects when using mData
  • +

2
bRedrawboolOptionaltrue

redraw the table or not

Returns:

An array of integers, representing the list of indexes in + aoData (DataTable.models.oSettings) that have been added to + the table.

Example:
+
+
   // Global var for counter
+   var giCount = 2;
+   
+   $(document).ready(function() {
+     $('#example').dataTable();
+   } );
+   
+   function fnClickAddRow() {
+     $('#example').dataTable().fnAddData( [
+       giCount+".1",
+       giCount+".2",
+       giCount+".3",
+       giCount+".4" ]
+     );
+       
+     giCount++;
+   }
+
+
+
fnAdjustColumnSizing(bRedraw)

This function will make DataTables recalculate the column sizes, based on the data +contained in the table and the sizes applied to the columns (in the DOM, CSS or +through the sWidth parameter). This can be useful when the width of the table's +parent element changes (for example a window resize).

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
bRedrawbooleanOptionaltrue

Redraw the table or not, you will typically want to

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable( {
+       "sScrollY": "200px",
+       "bPaginate": false
+     } );
+     
+     $(window).bind('resize', function () {
+       oTable.fnAdjustColumnSizing();
+     } );
+   } );
+
+
+
fnClearTable(bRedraw)

Quickly and simply clear a table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
bRedrawboolOptionaltrue

redraw the table or not

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     
+     // Immediately 'nuke' the current rows (perhaps waiting for an Ajax callback...)
+     oTable.fnClearTable();
+   } );
+
+
+
fnClose(nTr) → {int}

The exact opposite of 'opening' a row, this function will close any rows which +are currently 'open'.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nTrnode

the table row to 'close'

Returns:

0 on success, or 1 if failed (can't find the row)

Example:
+
+
   $(document).ready(function() {
+     var oTable;
+     
+     // 'open' an information row when a row is clicked on
+     $('#example tbody tr').click( function () {
+       if ( oTable.fnIsOpen(this) ) {
+         oTable.fnClose( this );
+       } else {
+         oTable.fnOpen( this, "Temporary row opened", "info_row" );
+       }
+     } );
+     
+     oTable = $('#example').dataTable();
+   } );
+
+
+
fnDeleteRow(mTarget, fnCallBack, bRedraw) → {array}

Remove a row for the table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
mTargetmixed

The index of the row from aoData to be deleted, or + the TR element you want to delete

2
fnCallBackfunction | nullOptional

Callback function

3
bRedrawboolOptionaltrue

Redraw the table or not

Returns:

The row that was deleted

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     
+     // Immediately remove the first row
+     oTable.fnDeleteRow( 0 );
+   } );
+
+
+
fnDestroy(bRemove)

Restore the table to it's original state in the DOM by removing all of DataTables +enhancements, alterations to the DOM structure of the table and event listeners.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
bRemovebooleanOptionalfalse

Completely remove the table from the DOM

Example:
+
+
   $(document).ready(function() {
+     // This example is fairly pointless in reality, but shows how fnDestroy can be used
+     var oTable = $('#example').dataTable();
+     oTable.fnDestroy();
+   } );
+
+
+
fnDraw(bComplete)

Redraw the table

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
bCompleteboolOptionaltrue

Re-filter and resort (if enabled) the table before the draw.

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     
+     // Re-draw the table - you wouldn't want to do it here, but it's an example :-)
+     oTable.fnDraw();
+   } );
+
+
+
fnFilter(sInput, iColumn, bRegex, bSmart, bShowGlobal, bCaseInsensitive)

Filter the input based on data

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sInputstring

String to filter the table on

2
iColumnint | nullOptional

Column to limit filtering to

3
bRegexboolOptionalfalse

Treat as regular expression or not

4
bSmartboolOptionaltrue

Perform smart filtering or not

5
bShowGlobalboolOptionaltrue

Show the input global filter in it's input box(es)

6
bCaseInsensitiveboolOptionaltrue

Do case-insensitive matching (true) or not (false)

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     
+     // Sometime later - filter...
+     oTable.fnFilter( 'test string' );
+   } );
+
+
+
fnGetData(mRow, iCol) → {array|object|string}

Get the data for the whole table, an individual row or an individual cell based on the +provided parameters.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
mRowint | nodeOptional

A TR row node, TD/TH cell node or an integer. If given as + a TR node then the data source for the whole row will be returned. If given as a + TD/TH cell node then iCol will be automatically calculated and the data for the + cell returned. If given as an integer, then this is treated as the aoData internal + data index for the row (see fnGetPosition) and the data for that row used.

2
iColintOptional

Optional column index that you want the data of.

Returns:

If mRow is undefined, then the data for all rows is + returned. If mRow is defined, just data for that row, and is iCol is + defined, only data for the designated cell is returned.

Examples:
+
+
   // Row data
+   $(document).ready(function() {
+     oTable = $('#example').dataTable();
+
+     oTable.$('tr').click( function () {
+       var data = oTable.fnGetData( this );
+       // ... do something with the array / object of data for the row
+     } );
+   } );
+
+ 
+
+ +
+
   // Individual cell data
+   $(document).ready(function() {
+     oTable = $('#example').dataTable();
+
+     oTable.$('td').click( function () {
+       var sData = oTable.fnGetData( this );
+       alert( 'The cell clicked on had the value of '+sData );
+     } );
+   } );
+
+
+
fnGetNodes(iRow) → {array|node}

Get an array of the TR nodes that are used in the table's body. Note that you will +typically want to use the '$' API method in preference to this as it is more +flexible.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
iRowintOptional

Optional row index for the TR element you want

Returns:

If iRow is undefined, returns an array of all TR elements + in the table's body, or iRow is defined, just the TR element requested.

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     
+     // Get the nodes from the table
+     var nNodes = oTable.fnGetNodes( );
+   } );
+
+
+
fnGetPosition(nNode) → {int}

Get the array indexes of a particular cell from it's DOM element +and column index including hidden columns

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nNodenode

this can either be a TR, TD or TH in the table's body

Returns:

If nNode is given as a TR, then a single index is returned, or + if given as a cell, an array of [row index, column index (visible), + column index (all)] is given.

Example:
+
+
   $(document).ready(function() {
+     $('#example tbody td').click( function () {
+       // Get the position of the current data from the node
+       var aPos = oTable.fnGetPosition( this );
+       
+       // Get the data array for this row
+       var aData = oTable.fnGetData( aPos[0] );
+       
+       // Update the data array and return the value
+       aData[ aPos[1] ] = 'clicked';
+       this.innerHTML = 'clicked';
+     } );
+     
+     // Init DataTables
+     oTable = $('#example').dataTable();
+   } );
+
+
+
fnIsOpen(nTr) → {boolean}

Check to see if a row is 'open' or not.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nTrnode

the table row to check

Returns:

true if the row is currently open, false otherwise

Example:
+
+
   $(document).ready(function() {
+     var oTable;
+     
+     // 'open' an information row when a row is clicked on
+     $('#example tbody tr').click( function () {
+       if ( oTable.fnIsOpen(this) ) {
+         oTable.fnClose( this );
+       } else {
+         oTable.fnOpen( this, "Temporary row opened", "info_row" );
+       }
+     } );
+     
+     oTable = $('#example').dataTable();
+   } );
+
+
+
fnOpen(nTr, mHtml, sClass) → {node}

This function will place a new row directly after a row which is currently +on display on the page, with the HTML contents that is passed into the +function. This can be used, for example, to ask for confirmation that a +particular record should be deleted.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nTrnode

The table row to 'open'

2
mHtmlstring | node | jQuery

The HTML to put into the row

3
sClassstring

Class to give the new TD cell

Returns:

The row opened. Note that if the table row passed in as the + first parameter, is not found in the table, this method will silently + return.

Example:
+
+
   $(document).ready(function() {
+     var oTable;
+     
+     // 'open' an information row when a row is clicked on
+     $('#example tbody tr').click( function () {
+       if ( oTable.fnIsOpen(this) ) {
+         oTable.fnClose( this );
+       } else {
+         oTable.fnOpen( this, "Temporary row opened", "info_row" );
+       }
+     } );
+     
+     oTable = $('#example').dataTable();
+   } );
+
+
+
fnPageChange(mAction, bRedraw)

Change the pagination - provides the internal logic for pagination in a simple API +function. With this function you can have a DataTables table go to the next, +previous, first or last pages.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
mActionstring | int

Paging action to take: "first", "previous", "next" or "last" + or page number to jump to (integer), note that page 0 is the first page.

2
bRedrawboolOptionaltrue

Redraw the table or not

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     oTable.fnPageChange( 'next' );
+   } );
+
+
+
fnSetColumnVis(iCol, bShow, bRedraw)

Show a particular column

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
iColint

The column whose display should be changed

2
bShowbool

Show (true) or hide (false) the column

3
bRedrawboolOptionaltrue

Redraw the table or not

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     
+     // Hide the second column after initialisation
+     oTable.fnSetColumnVis( 1, false );
+   } );
+
+
+
fnSettings() → {object}

Get the settings for a particular table for external manipulation

+ +
+
Returns:

DataTables settings object. See + DataTable.models.oSettings

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     var oSettings = oTable.fnSettings();
+     
+     // Show an example parameter from the settings
+     alert( oSettings._iDisplayStart );
+   } );
+
+
+
fnSort(iCol)

Sort the table by a particular column

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
iColint

the data index to sort on. Note that this will not match the + 'display index' if you have hidden data entries

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     
+     // Sort immediately with columns 0 and 1
+     oTable.fnSort( [ [0,'asc'], [1,'asc'] ] );
+   } );
+
+
+
fnSortListener(nNode, iColumn, fnCallback)

Attach a sort listener to an element for a given column

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nNodenode

the element to attach the sort listener to

2
iColumnint

the column that a click on this node will sort on

3
fnCallbackfunctionOptional

callback function when sort is run

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     
+     // Sort on column 1, when 'sorter' is clicked on
+     oTable.fnSortListener( document.getElementById('sorter'), 1 );
+   } );
+
+
+
fnUpdate(mData, mRow, iColumn, bRedraw, bAction) → {int}

Update a table cell or row - this method will accept either a single value to +update the cell with, an array of values with one element for each column or +an object in the same format as the original data source. The function is +self-referencing in order to make the multi column updates easier.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
mDataobject | array | string

Data to update the cell/row with

2
mRownode | int

TR element you want to update or the aoData index

3
iColumnintOptional

The column to update (not used of mData is an array or object)

4
bRedrawboolOptionaltrue

Redraw the table or not

5
bActionboolOptionaltrue

Perform pre-draw actions or not

Returns:

0 on success, 1 on error

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     oTable.fnUpdate( 'Example update', 0, 0 ); // Single cell
+     oTable.fnUpdate( ['a', 'b', 'c', 'd', 'e'], 1, 0 ); // Row
+   } );
+
+
+
fnVersionCheck(sVersion) → {boolean}

Provide a common method for plug-ins to check the version of DataTables being used, in order +to ensure compatibility.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sVersionstring

Version string to check for, in the format "X.Y.Z". Note that the + formats "X" and "X.Y" are also acceptable.

Returns:

true if this version of DataTables is greater or equal to the required + version, or false if this version of DataTales is not suitable

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     alert( oTable.fnVersionCheck( '1.9.0' ) );
+   } );
+
+
+ +
+

Methods - static

+
+
<static> fnIsDataTable(nTable) → {boolean}

Check if a TABLE node is a DataTable table already or not.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nTablenode

The TABLE node to check if it is a DataTable or not (note that other + node types can be passed in, but will always return false).

Returns:

true the table given is a DataTable, or false otherwise

Example:
+
+
   var ex = document.getElementById('example');
+   if ( ! $.fn.DataTable.fnIsDataTable( ex ) ) {
+     $(ex).dataTable();
+   }
+
+
+
<static> fnTables(bVisible) → {array}

Get all DataTable tables that have been initialised - optionally you can select to +get only currently visible tables.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
bVisiblebooleanOptionalfalse

Flag to indicate if you want all (default) or + visible tables only.

Returns:

Array of TABLE nodes (not DataTable instances) which are DataTables

Example:
+
+
   var table = $.fn.dataTable.fnTables(true);
+   if ( table.length > 0 ) {
+     $(table).dataTable().fnAdjustColumnSizing();
+   }
+
+
+
<static> fnVersionCheck(sVersion) → {boolean}

Provide a common method for plug-ins to check the version of DataTables being used, in order +to ensure compatibility.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sVersionstring

Version string to check for, in the format "X.Y.Z". Note that the + formats "X" and "X.Y" are also acceptable.

Returns:

true if this version of DataTables is greater or equal to the required + version, or false if this version of DataTales is not suitable

Example:
+
+
   alert( $.fn.dataTable.fnVersionCheck( '1.9.0' ) );
+
+
+ +
+

Events

+
+
destroy

Destroy event, fired when the DataTable is destroyed by calling fnDestroy or passing +the bDestroy:true parameter in the initialisation object. This can be used to remove +bound events, added DOM nodes, etc.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oobject

DataTables settings object DataTable.models.oSettings

+
draw

Draw event, fired whenever the table is redrawn on the page, at the same point as +fnDrawCallback. This may be useful for binding events or performing calculations when +the table is altered at all.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oobject

DataTables settings object DataTable.models.oSettings

+
filter

Filter event, fired when the filtering applied to the table (using the build in global +global filter, or column filters) is altered.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oobject

DataTables settings object DataTable.models.oSettings

+
init

DataTables initialisation complete event, fired when the table is fully drawn, +including Ajax data loaded, if Ajax data is required.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oSettingsobject

DataTables settings object

3
jsonobject

The JSON object request from the server - only + present if client-side Ajax sourced data is used

+
page

Page change event, fired when the paging of the table is altered.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oobject

DataTables settings object DataTable.models.oSettings

+
processing

Processing event, fired when DataTables is doing some kind of processing (be it, +sort, filter or anything else). Can be used to indicate to the end user that +there is something happening, or that something has finished.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oSettingsobject

DataTables settings object

3
bShowboolean

Flag for if DataTables is doing processing or not

+
sort

Sort event, fired when the sorting applied to the table is altered.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oobject

DataTables settings object DataTable.models.oSettings

+
stateLoaded

State loaded event, fired when state has been loaded from stored data and the settings +object has been modified by the loaded data.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oSettingsobject

DataTables settings object

3
jsonobject

The saved state information

+
stateLoadParams

State load event, fired when the table is loading state from the stored data, but +prior to the settings object being modified by the saved state - allowing modification +of the saved state is required or loading of state for a plug-in.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oSettingsobject

DataTables settings object

3
jsonobject

The saved state information

+
stateSaveParams

State save event, fired when the table has changed state a new state save is required. +This method allows modification of the state saving object prior to actually doing the +save, including addition or other state properties (for plug-ins) or modification +of a DataTables core property.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oSettingsobject

DataTables settings object

3
jsonobject

The state information to be saved

+
xhr

Ajax (XHR) event, fired whenever an Ajax request is completed from a request to +made to the server for new data (note that this trigger is called in fnServerData, +if you override fnServerData and which to use this event, you need to trigger it in +you success function).

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
eevent

jQuery event object

2
oobject

DataTables settings object DataTable.models.oSettings

3
jsonobject

JSON returned from the server

+ +
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.ext.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.ext.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,754 @@ + + + + + Namespace: ext - documentation + + + + + + + + + +
+ + +
+

Namespace: ext

+

Ancestry: DataTable ยป .models. ยป ext

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

DataTables extension options and plug-ins. This namespace acts as a collection "area" +for plug-ins that can be used to extend the default DataTables behaviour - indeed many +of the build in methods use this method to provide their own capabilities (sorting methods +for example).

+ +

Note that this namespace is aliased to jQuery.fn.dataTableExt so it can be readily accessed +and modified by plug-ins.

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> afnFiltering :array

Plug-in filtering functions - this method of filtering is complimentary to the default +type based filtering, and a lot more comprehensive as it allows you complete control +over the filtering logic. Each element in this array is a function (parameters +described below) that is called for every row in the table, and your logic decides if +it should be included in the filtered data set or not. +

    +
  • + Function input parameters: +
      +
    • {object} DataTables settings object: see DataTable.models.oSettings.
    • +
    • {array|object} Data for the row to be processed (same as the original format + that was passed in as the data source, or an array from a DOM data source
    • +
    • {int} Row index in aoData (DataTable.models.oSettings.aoData), which can + be useful to retrieve the TR element if you need DOM interaction.
    • +
    +
  • +
  • + Function return: +
      +
    • {boolean} Include the row in the filtered result set (true) or not (false)
    • +
    + +

<static> afnSortData :array

Plug-in sorting functions - this method of sorting is complimentary to the default type +based sorting that DataTables does automatically, allowing much greater control over the +the data that is being used to sort a column. This is useful if you want to do sorting +based on live data (for example the contents of an 'input' element) rather than just the +static string that DataTables knows of. The way these plug-ins work is that you create +an array of the values you wish to be sorted for the column in question and then return +that array. Which pre-sorting function is run here depends on the sSortDataType parameter +that is used for the column (if any). This is the corollary of ofnSearch for sort +data. +

    +
  • + Function input parameters: + +
  • +
  • + Function return: +
      +
    • {array} Data for the column to be sorted upon
    • +
    + +
[...]

<static> aoFeatures :array

Feature plug-ins - This is an array of objects which describe the feature plug-ins that are +available to DataTables. These feature plug-ins are accessible through the sDom initialisation +option. As such, each feature plug-in must describe a function that is used to initialise +itself (fnInit), a character so the feature can be enabled by sDom (cFeature) and the name +of the feature (sFeature). Thus the objects attached to this method must provide: +

    +
  • {function} fnInit Initialisation of the plug-in +
      +
    • + Function input parameters: + +
    • +
    • + Function return: +
        +
      • {node|null} The element which contains your feature. Note that the return + may also be void if your plug-in does not require to inject any DOM elements + into DataTables control (sDom) - for example this might be useful when + developing a plug-in which allows table control via keyboard entry.
      • +
      + +
    +
  • +
  • {character} cFeature Character that will be matched in sDom - case sensitive
  • +
  • {string} sFeature Feature name
  • +

<static> aTypes :array

Type detection plug-in functions - DataTables utilises types to define how sorting and +filtering behave, and types can be either be defined by the developer (sType for the +column) or they can be automatically detected by the methods in this array. The functions +defined in the array are quite simple, taking a single parameter (the data to analyse) +and returning the type if it is a known type, or null otherwise. +

    +
  • + Function input parameters: +
      +
    • {*} Data from the column cell to be analysed
    • +
    +
  • +
  • + Function return: +
      +
    • {string|null} Data type detected, or null if unknown (and thus pass it + on to the other type detection functions.
    • +
    + +

<static> fnVersionCheck :function

Provide a common method for plug-ins to check the version of DataTables being used, +in order to ensure compatibility.

<static> iApiIndex :int

Index for what 'this' index API functions should use

<static> oApi :object

Container for all private functions in DataTables so they can be exposed externally

<static> ofnSearch :object

Pre-processing of filtering data plug-ins - When you assign the sType for a column +(or have it automatically detected for you by DataTables or a type detection plug-in), +you will typically be using this for custom sorting, but it can also be used to provide +custom filtering by allowing you to pre-processing the data and returning the data in +the format that should be filtered upon. This is done by adding functions this object +with a parameter name which matches the sType for that target column. This is the +corollary of afnSortData for filtering data. +

    +
  • + Function input parameters: +
      +
    • {*} Data from the column cell to be prepared for filtering
    • +
    +
  • +
  • + Function return: +
      +
    • {string|null} Formatted string that will be used for the filtering.
    • +
    + +
[...]

<static> oJUIClasses :object

Storage for the various classes that DataTables uses - jQuery UI suitable

<static> oPagination :object

Pagination plug-in methods - The style and controls of the pagination can significantly +impact on how the end user interacts with the data in your table, and DataTables allows +the addition of pagination controls by extending this object, which can then be enabled +through the sPaginationType initialisation parameter. Each pagination type that +is added is an object (the property name of which is what sPaginationType refers +to) that has two properties, both methods that are used by DataTables to update the +control's state. +

    +
  • + fnInit - Initialisation of the paging controls. Called only during initialisation + of the table. It is expected that this function will add the required DOM elements + to the page for the paging controls to work. The element pointer + 'oSettings.aanFeatures.p' array is provided by DataTables to contain the paging + controls (note that this is a 2D array to allow for multiple instances of each + DataTables DOM element). It is suggested that you add the controls to this element + as children +
      +
    • + Function input parameters: +
        +
      • {object} DataTables settings object: see DataTable.models.oSettings.
      • +
      • {node} Container into which the pagination controls must be inserted
      • +
      • {function} Draw callback function - whenever the controls cause a page + change, this method must be called to redraw the table.
      • +
      +
    • +
    • + Function return: +
        +
      • No return required
      • +
      + +
    + +
  • + fnInit - This function is called whenever the paging status of the table changes and is + typically used to update classes and/or text of the paging controls to reflex the new + status. +
      +
    • + Function input parameters: +
        +
      • {object} DataTables settings object: see DataTable.models.oSettings.
      • +
      • {function} Draw callback function - in case you need to redraw the table again + or attach new event listeners
      • +
      +
    • +
    • + Function return: +
        +
      • No return required
      • +
      + +
    + +

<static> oSort :object

Sorting plug-in methods - Sorting in DataTables is based on the detected type of the +data column (you can add your own type detection functions, or override automatic +detection using sType). With this specific type given to the column, DataTables will +apply the required sort from the functions in the object. Each sort type must provide +two mandatory methods, one each for ascending and descending sorting, and can optionally +provide a pre-formatting method that will help speed up sorting by allowing DataTables +to pre-format the sort data only once (rather than every time the actual sort functions +are run). The two sorting functions are typical Javascript sort methods: +

    +
  • + Function input parameters: +
      +
    • {} Data to compare to the second parameter
    • +
    • {} Data to compare to the first parameter
    • +
    +
  • +
  • + Function return: +
      +
    • {int} Sorting match: <0 if first parameter should be sorted lower than + the second parameter, ===0 if the two parameters are equal and >0 if + the first parameter should be sorted height than the second parameter.
    • +
    + +

<static> oStdClasses :object

Storage for the various classes that DataTables uses

<static> sErrMode :string

How should DataTables report an error. Can take the value 'alert' or 'throw'

<static> sVersion :string

Version string for plug-ins to check compatibility. Allowed format is +a.b.c.d.e where: a:int, b:int, c:int, d:string(dev|beta), e:int. d and +e are optional

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> afnFiltering :array

Plug-in filtering functions - this method of filtering is complimentary to the default +type based filtering, and a lot more comprehensive as it allows you complete control +over the filtering logic. Each element in this array is a function (parameters +described below) that is called for every row in the table, and your logic decides if +it should be included in the filtered data set or not. +

    +
  • + Function input parameters: +
      +
    • {object} DataTables settings object: see DataTable.models.oSettings.
    • +
    • {array|object} Data for the row to be processed (same as the original format + that was passed in as the data source, or an array from a DOM data source
    • +
    • {int} Row index in aoData (DataTable.models.oSettings.aoData), which can + be useful to retrieve the TR element if you need DOM interaction.
    • +
    +
  • +
  • + Function return: +
      +
    • {boolean} Include the row in the filtered result set (true) or not (false)
    • +
    + +

+ +
+
Example
+
+
   // The following example shows custom filtering being applied to the fourth column (i.e.
+   // the aData[3] index) based on two input values from the end-user, matching the data in 
+   // a certain range.
+   $.fn.dataTableExt.afnFiltering.push(
+     function( oSettings, aData, iDataIndex ) {
+       var iMin = document.getElementById('min').value * 1;
+       var iMax = document.getElementById('max').value * 1;
+       var iVersion = aData[3] == "-" ? 0 : aData[3]*1;
+       if ( iMin == "" && iMax == "" ) {
+         return true;
+       }
+       else if ( iMin == "" && iVersion < iMax ) {
+         return true;
+       }
+       else if ( iMin < iVersion && "" == iMax ) {
+         return true;
+       }
+       else if ( iMin < iVersion && iVersion < iMax ) {
+         return true;
+       }
+       return false;
+     }
+   );
+
+
<static> afnSortData :array

Plug-in sorting functions - this method of sorting is complimentary to the default type +based sorting that DataTables does automatically, allowing much greater control over the +the data that is being used to sort a column. This is useful if you want to do sorting +based on live data (for example the contents of an 'input' element) rather than just the +static string that DataTables knows of. The way these plug-ins work is that you create +an array of the values you wish to be sorted for the column in question and then return +that array. Which pre-sorting function is run here depends on the sSortDataType parameter +that is used for the column (if any). This is the corollary of ofnSearch for sort +data. +

    +
  • + Function input parameters: + +
  • +
  • + Function return: +
      +
    • {array} Data for the column to be sorted upon
    • +
    + +

+ +

Note that as of v1.9, it is typically preferable to use mData to prepare data for +the different uses that DataTables can put the data to. Specifically mData when +used as a function will give you a 'type' (sorting, filtering etc) that you can use to +prepare the data as required for the different types. As such, this method is deprecated.

+
Deprecated
Yes
+
+
Example
+
+
   // Updating the cached sorting information with user entered values in HTML input elements
+   jQuery.fn.dataTableExt.afnSortData['dom-text'] = function ( oSettings, iColumn )
+   {
+     var aData = [];
+     $( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
+       aData.push( this.value );
+     } );
+     return aData;
+   }
+
+
<static> aoFeatures :array

Feature plug-ins - This is an array of objects which describe the feature plug-ins that are +available to DataTables. These feature plug-ins are accessible through the sDom initialisation +option. As such, each feature plug-in must describe a function that is used to initialise +itself (fnInit), a character so the feature can be enabled by sDom (cFeature) and the name +of the feature (sFeature). Thus the objects attached to this method must provide: +

    +
  • {function} fnInit Initialisation of the plug-in +
      +
    • + Function input parameters: + +
    • +
    • + Function return: +
        +
      • {node|null} The element which contains your feature. Note that the return + may also be void if your plug-in does not require to inject any DOM elements + into DataTables control (sDom) - for example this might be useful when + developing a plug-in which allows table control via keyboard entry.
      • +
      + +
    +
  • +
  • {character} cFeature Character that will be matched in sDom - case sensitive
  • +
  • {string} sFeature Feature name
  • +

+ +
+
Example
+
+
   // How TableTools initialises itself.
+   $.fn.dataTableExt.aoFeatures.push( {
+     "fnInit": function( oSettings ) {
+       return new TableTools( { "oDTSettings": oSettings } );
+     },
+     "cFeature": "T",
+     "sFeature": "TableTools"
+   } );
+
+
<static> aTypes :array

Type detection plug-in functions - DataTables utilises types to define how sorting and +filtering behave, and types can be either be defined by the developer (sType for the +column) or they can be automatically detected by the methods in this array. The functions +defined in the array are quite simple, taking a single parameter (the data to analyse) +and returning the type if it is a known type, or null otherwise. +

    +
  • + Function input parameters: +
      +
    • {*} Data from the column cell to be analysed
    • +
    +
  • +
  • + Function return: +
      +
    • {string|null} Data type detected, or null if unknown (and thus pass it + on to the other type detection functions.
    • +
    + +

+ +
+
Example
+
+
   // Currency type detection plug-in:
+   jQuery.fn.dataTableExt.aTypes.push(
+     function ( sData ) {
+       var sValidChars = "0123456789.-";
+       var Char;
+       
+       // Check the numeric part
+       for ( i=1 ; i
+    
+
<static> fnVersionCheck :function

Provide a common method for plug-ins to check the version of DataTables being used, +in order to ensure compatibility.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
sVersionstring

Version string to check for, in the format "X.Y.Z". Note + that the formats "X" and "X.Y" are also acceptable.

Returns:

true if this version of DataTables is greater or equal to the + required version, or false if this version of DataTales is not suitable

Example:
+
+
   $(document).ready(function() {
+     var oTable = $('#example').dataTable();
+     alert( oTable.fnVersionCheck( '1.9.0' ) );
+   } );
+
+
+
<static> iApiIndex :int

Index for what 'this' index API functions should use

+ +
+
<static> oApi :object

Container for all private functions in DataTables so they can be exposed externally

+ +
+
<static> ofnSearch :object

Pre-processing of filtering data plug-ins - When you assign the sType for a column +(or have it automatically detected for you by DataTables or a type detection plug-in), +you will typically be using this for custom sorting, but it can also be used to provide +custom filtering by allowing you to pre-processing the data and returning the data in +the format that should be filtered upon. This is done by adding functions this object +with a parameter name which matches the sType for that target column. This is the +corollary of afnSortData for filtering data. +

    +
  • + Function input parameters: +
      +
    • {*} Data from the column cell to be prepared for filtering
    • +
    +
  • +
  • + Function return: +
      +
    • {string|null} Formatted string that will be used for the filtering.
    • +
    + +

+ +

Note that as of v1.9, it is typically preferable to use mData to prepare data for +the different uses that DataTables can put the data to. Specifically mData when +used as a function will give you a 'type' (sorting, filtering etc) that you can use to +prepare the data as required for the different types. As such, this method is deprecated.

+
Deprecated
Yes
+
+
Example
+
+
   $.fn.dataTableExt.ofnSearch['title-numeric'] = function ( sData ) {
+     return sData.replace(/\n/g," ").replace( /<.*?>/g, "" );
+   }
+
+
<static> oJUIClasses :object

Storage for the various classes that DataTables uses - jQuery UI suitable

+ +
+
<static> oPagination :object

Pagination plug-in methods - The style and controls of the pagination can significantly +impact on how the end user interacts with the data in your table, and DataTables allows +the addition of pagination controls by extending this object, which can then be enabled +through the sPaginationType initialisation parameter. Each pagination type that +is added is an object (the property name of which is what sPaginationType refers +to) that has two properties, both methods that are used by DataTables to update the +control's state. +

    +
  • + fnInit - Initialisation of the paging controls. Called only during initialisation + of the table. It is expected that this function will add the required DOM elements + to the page for the paging controls to work. The element pointer + 'oSettings.aanFeatures.p' array is provided by DataTables to contain the paging + controls (note that this is a 2D array to allow for multiple instances of each + DataTables DOM element). It is suggested that you add the controls to this element + as children +
      +
    • + Function input parameters: +
        +
      • {object} DataTables settings object: see DataTable.models.oSettings.
      • +
      • {node} Container into which the pagination controls must be inserted
      • +
      • {function} Draw callback function - whenever the controls cause a page + change, this method must be called to redraw the table.
      • +
      +
    • +
    • + Function return: +
        +
      • No return required
      • +
      + +
    + +
  • + fnInit - This function is called whenever the paging status of the table changes and is + typically used to update classes and/or text of the paging controls to reflex the new + status. +
      +
    • + Function input parameters: +
        +
      • {object} DataTables settings object: see DataTable.models.oSettings.
      • +
      • {function} Draw callback function - in case you need to redraw the table again + or attach new event listeners
      • +
      +
    • +
    • + Function return: +
        +
      • No return required
      • +
      + +
    + +

+ +
+
Example
+
+
   $.fn.dataTableExt.oPagination.four_button = {
+     "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) {
+       nFirst = document.createElement( 'span' );
+       nPrevious = document.createElement( 'span' );
+       nNext = document.createElement( 'span' );
+       nLast = document.createElement( 'span' );
+       
+       nFirst.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sFirst ) );
+       nPrevious.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sPrevious ) );
+       nNext.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sNext ) );
+       nLast.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sLast ) );
+       
+       nFirst.className = "paginate_button first";
+       nPrevious.className = "paginate_button previous";
+       nNext.className="paginate_button next";
+       nLast.className = "paginate_button last";
+       
+       nPaging.appendChild( nFirst );
+       nPaging.appendChild( nPrevious );
+       nPaging.appendChild( nNext );
+       nPaging.appendChild( nLast );
+       
+       $(nFirst).click( function () {
+         oSettings.oApi._fnPageChange( oSettings, "first" );
+         fnCallbackDraw( oSettings );
+       } );
+       
+       $(nPrevious).click( function() {
+         oSettings.oApi._fnPageChange( oSettings, "previous" );
+         fnCallbackDraw( oSettings );
+       } );
+       
+       $(nNext).click( function() {
+         oSettings.oApi._fnPageChange( oSettings, "next" );
+         fnCallbackDraw( oSettings );
+       } );
+       
+       $(nLast).click( function() {
+         oSettings.oApi._fnPageChange( oSettings, "last" );
+         fnCallbackDraw( oSettings );
+       } );
+       
+       $(nFirst).bind( 'selectstart', function () { return false; } );
+       $(nPrevious).bind( 'selectstart', function () { return false; } );
+       $(nNext).bind( 'selectstart', function () { return false; } );
+       $(nLast).bind( 'selectstart', function () { return false; } );
+     },
+     
+     "fnUpdate": function ( oSettings, fnCallbackDraw ) {
+       if ( !oSettings.aanFeatures.p ) {
+         return;
+       }
+       
+       // Loop over each instance of the pager
+       var an = oSettings.aanFeatures.p;
+       for ( var i=0, iLen=an.length ; i
+    
+
<static> oSort :object

Sorting plug-in methods - Sorting in DataTables is based on the detected type of the +data column (you can add your own type detection functions, or override automatic +detection using sType). With this specific type given to the column, DataTables will +apply the required sort from the functions in the object. Each sort type must provide +two mandatory methods, one each for ascending and descending sorting, and can optionally +provide a pre-formatting method that will help speed up sorting by allowing DataTables +to pre-format the sort data only once (rather than every time the actual sort functions +are run). The two sorting functions are typical Javascript sort methods: +

    +
  • + Function input parameters: +
      +
    • {} Data to compare to the second parameter
    • +
    • {} Data to compare to the first parameter
    • +
    +
  • +
  • + Function return: +
      +
    • {int} Sorting match: <0 if first parameter should be sorted lower than + the second parameter, ===0 if the two parameters are equal and >0 if + the first parameter should be sorted height than the second parameter.
    • +
    + +

+ +
+
Examples
+
+
   // Case-sensitive string sorting, with no pre-formatting method
+   $.extend( $.fn.dataTableExt.oSort, {
+     "string-case-asc": function(x,y) {
+       return ((x < y) ? -1 : ((x > y) ? 1 : 0));
+     },
+     "string-case-desc": function(x,y) {
+       return ((x < y) ? 1 : ((x > y) ? -1 : 0));
+     }
+   } );
+
+ 
+
+ +
+
   // Case-insensitive string sorting, with pre-formatting
+   $.extend( $.fn.dataTableExt.oSort, {
+     "string-pre": function(x) {
+       return x.toLowerCase();
+     },
+     "string-asc": function(x,y) {
+       return ((x < y) ? -1 : ((x > y) ? 1 : 0));
+     },
+     "string-desc": function(x,y) {
+       return ((x < y) ? 1 : ((x > y) ? -1 : 0));
+     }
+   } );
+
+
<static> oStdClasses :object

Storage for the various classes that DataTables uses

+ +
+
<static> sErrMode :string

How should DataTables report an error. Can take the value 'alert' or 'throw'

+ +
+
<static> sVersion :string

Version string for plug-ins to check compatibility. Allowed format is +a.b.c.d.e where: a:int, b:int, c:int, d:string(dev|beta), e:int. d and +e are optional

+ +
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,101 @@ + + + + + Namespace: models - documentation + + + + + + + + + +
+ + +
+

Namespace: models

+

Ancestry: DataTable. ยป models

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+
    +
  • Overview
  • +
  • Summary
    Classes (0)Namespaces (5)
    Properties (0)Static properties (0)
    Methods (0)Static methods (0)
    Events (0)
  • Details
    Properties (0)Static properties (0)
    Methods (0)Static methods (0)
    Events (0)
+
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Object models container, for the various models that DataTables has available +to it. These models define the objects that are used to hold the active state +and configuration of the table.

+ +
+ +
+ + +
+ +

Summary

+ +

Namespaces

+
+
ext

DataTables extension options and plug-ins. This namespace acts as a collection "area" +for plug-ins that can be used to extend the default DataTables behaviour - indeed many +of the build in methods use this method to provide their own capabilities (sorting methods +for example). [...]

oColumn

Template object for the column information object in DataTables. This object +is held in the settings aoColumns array and contains all the information that +DataTables needs about each individual column. [...]

oRow

Template object for the way in which DataTables holds information about +each individual row. This is the object format used for the settings +aoData array.

oSearch

Template object for the way in which DataTables holds information about +search information for the global filter and individual column filters.

oSettings

DataTables settings object - this holds all the information needed for a +given table, including configuration, data and current application of the +table options. DataTables does not have a single instance for each DataTable +with the settings attached to that instance, but rather instances of the +DataTable "class" are created on-the-fly as needed (typically by a +$().dataTable() call) and the settings object is then applied to that +instance. [...]

+
+
+ + + + +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.oColumn.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.oColumn.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,348 @@ + + + + + Namespace: oColumn - documentation + + + + + + + + + +
+ + +
+

Namespace: oColumn

+

Ancestry: DataTable ยป .models. ยป oColumn

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Template object for the column information object in DataTables. This object +is held in the settings aoColumns array and contains all the information that +DataTables needs about each individual column.

+ +

Note that this object is related to DataTable.defaults.columns +but this one is the internal data store for DataTables's cache of columns. +It should NOT be manipulated outside of DataTables. Any configuration should +be done through the initialisation options.

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> aDataSort :array

A list of the columns that sorting should occur on when this column +is sorted. That this property is an array allows multi-column sorting +to be defined for a column (for example first name / last name columns +would benefit from this). The values are integers pointing to the +columns to be sorted on (typically it will be a single integer pointing +at itself, but that doesn't need to be the case).

<static> asSorting :array

Define the sorting directions that are applied to the column, in sequence +as the column is repeatedly sorted upon - i.e. the first value is used +as the sorting direction when the column if first sorted (clicked on). +Sort it again (click again) and it will move on to the next index. +Repeat until loop.

<static> bSearchable :boolean

Flag to indicate if the column is searchable, and thus should be included +in the filtering or not.

<static> bSortable :boolean

Flag to indicate if the column is sortable or not.

<static> bUseRendered :boolean

Deprecated When using fnRender, you have two options for what +to do with the data, and this property serves as the switch. Firstly, you +can have the sorting and filtering use the rendered value (true - default), +or you can have the sorting and filtering us the original value (false). [...]

<static> bVisible :boolean

Flag to indicate if the column is currently visible in the table or not

<static> fnCreatedCell :function

Developer definable function that is called whenever a cell is created (Ajax source, +etc) or processed for input (DOM source). This can be used as a compliment to mRender +allowing you to modify the DOM element (add background colour for example) when the +element is available.

<static> fnGetData :function

Function to get data from a cell in a column. You should never +access data directly through _aData internally in DataTables - always use +the method attached to this property. It allows mData to function as +required. This function is automatically assigned by the column +initialisation method

<static> fnRender :function

Deprecated Custom display function that will be called for the +display of each cell in this column. [...]

<static> fnSetData :function

Function to set data for a cell in the column. You should never +set the data directly to _aData internally in DataTables - always use +this method. It allows mData to function as required. This function +is automatically assigned by the column initialisation method

<static> mData :function|int|string|null

Property to read the value for the cells in the column from the data +source array / object. If null, then the default content is used, if a +function is given then the return from the function is used.

<static> mRender :function|int|string|null

Partner property to mData which is used (only when defined) to get +the data - i.e. it is basically the same as mData, but without the +'set' option, and also the data fed to it is the result from mData. +This is the rendering method to match the data method of mData.

<static> nTf :node

Unique footer TH/TD element for this column (if there is one). Not used +in DataTables as such, but can be used for plug-ins to reference the +footer for each column.

<static> nTh :node

Unique header TH/TD element for this column - this is what the sorting +listener is attached to (if sorting is enabled.)

<static> sClass :string

The class to apply to all TD elements in the table's TBODY for the column

<static> sContentPadding :string

When DataTables calculates the column widths to assign to each column, +it finds the longest string in each column and then constructs a +temporary table and reads the widths from that. The problem with this +is that "mmm" is much wider then "iiii", but the latter is a longer +string - thus the calculation can go wrong (doing it properly and putting +it into an DOM object and measuring that is horribly(!) slow). Thus as +a "work around" we provide this option. It will append its value to the +text that is found to be the longest string for the column - i.e. padding.

<static> sDefaultContent :string

Allows a default value to be given for a column's data, and will be used +whenever a null data source is encountered (this can be because mData +is set to null, or because the data source itself is null).

<static> sName :string

Name for the column, allowing reference to the column by name as well as +by index (needs a lookup to work by name).

<static> sSortDataType :string

Custom sorting data type - defines which of the available plug-ins in +afnSortData the custom sorting will use - if any is defined.

<static> sSortingClass :string

Class to be applied to the header element when sorting on this column

<static> sSortingClassJUI :string

Class to be applied to the header element when sorting on this column - +when jQuery UI theming is used.

<static> sTitle :string

Title of the column - what is seen in the TH element (nTh).

<static> sType :string

Column sorting and filtering type

<static> sWidth :string

Width of the column

<static> sWidthOrig :string

Width of the column when it was first "encountered"

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> aDataSort :array

A list of the columns that sorting should occur on when this column +is sorted. That this property is an array allows multi-column sorting +to be defined for a column (for example first name / last name columns +would benefit from this). The values are integers pointing to the +columns to be sorted on (typically it will be a single integer pointing +at itself, but that doesn't need to be the case).

+ +
+
<static> asSorting :array

Define the sorting directions that are applied to the column, in sequence +as the column is repeatedly sorted upon - i.e. the first value is used +as the sorting direction when the column if first sorted (clicked on). +Sort it again (click again) and it will move on to the next index. +Repeat until loop.

+ +
+
<static> bSearchable :boolean

Flag to indicate if the column is searchable, and thus should be included +in the filtering or not.

+ +
+
<static> bSortable :boolean

Flag to indicate if the column is sortable or not.

+ +
+
<static> bUseRendered :boolean

Deprecated When using fnRender, you have two options for what +to do with the data, and this property serves as the switch. Firstly, you +can have the sorting and filtering use the rendered value (true - default), +or you can have the sorting and filtering us the original value (false).

+ +

Please note that this option has now been deprecated and will be removed +in the next version of DataTables. Please use mRender / mData rather than +fnRender.

+
Deprecated
Yes
+
+
<static> bVisible :boolean

Flag to indicate if the column is currently visible in the table or not

+ +
+
<static> fnCreatedCell :function

Developer definable function that is called whenever a cell is created (Ajax source, +etc) or processed for input (DOM source). This can be used as a compliment to mRender +allowing you to modify the DOM element (add background colour for example) when the +element is available.

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
nTdelement

The TD node that has been created

2
sData*

The Data for the cell

3
oDataarray | object

The data for the whole row

4
iRowint

The row index for the aoData data store

+
<static> fnGetData :function

Function to get data from a cell in a column. You should never +access data directly through _aData internally in DataTables - always use +the method attached to this property. It allows mData to function as +required. This function is automatically assigned by the column +initialisation method

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oDataarray | object

The data array/object for the array + (i.e. aoData[]._aData)

2
sSpecificstring

The specific data type you want to get - + 'display', 'type' 'filter' 'sort'

Returns:

The data for the cell from the given row's data

+
<static> fnRender :function

Deprecated Custom display function that will be called for the +display of each cell in this column.

+ +

Please note that this option has now been deprecated and will be removed +in the next version of DataTables. Please use mRender / mData rather than +fnRender.

+
Deprecated
Yes
+
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oobject

Object with the following parameters:

o.iDataRowint

The row in aoData

o.iDataColumnint

The column in question

o.aDataarray

The data for the row in question

o.oSettingsobject

The settings object for this DataTables instance

Returns:

The string you which to use in the display

+
<static> fnSetData :function

Function to set data for a cell in the column. You should never +set the data directly to _aData internally in DataTables - always use +this method. It allows mData to function as required. This function +is automatically assigned by the column initialisation method

+ +
+
Parameters:
+ + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
1
oDataarray | object

The data array/object for the array + (i.e. aoData[]._aData)

2
sValue*

Value to set

+
<static> mData :function|int|string|null

Property to read the value for the cells in the column from the data +source array / object. If null, then the default content is used, if a +function is given then the return from the function is used.

+ +
+
<static> mRender :function|int|string|null

Partner property to mData which is used (only when defined) to get +the data - i.e. it is basically the same as mData, but without the +'set' option, and also the data fed to it is the result from mData. +This is the rendering method to match the data method of mData.

+ +
+
<static> nTf :node

Unique footer TH/TD element for this column (if there is one). Not used +in DataTables as such, but can be used for plug-ins to reference the +footer for each column.

+ +
+
<static> nTh :node

Unique header TH/TD element for this column - this is what the sorting +listener is attached to (if sorting is enabled.)

+ +
+
<static> sClass :string

The class to apply to all TD elements in the table's TBODY for the column

+ +
+
<static> sContentPadding :string

When DataTables calculates the column widths to assign to each column, +it finds the longest string in each column and then constructs a +temporary table and reads the widths from that. The problem with this +is that "mmm" is much wider then "iiii", but the latter is a longer +string - thus the calculation can go wrong (doing it properly and putting +it into an DOM object and measuring that is horribly(!) slow). Thus as +a "work around" we provide this option. It will append its value to the +text that is found to be the longest string for the column - i.e. padding.

+ +
+
<static> sDefaultContent :string

Allows a default value to be given for a column's data, and will be used +whenever a null data source is encountered (this can be because mData +is set to null, or because the data source itself is null).

+ +
+
<static> sName :string

Name for the column, allowing reference to the column by name as well as +by index (needs a lookup to work by name).

+ +
+
<static> sSortDataType :string

Custom sorting data type - defines which of the available plug-ins in +afnSortData the custom sorting will use - if any is defined.

+ +
+
<static> sSortingClass :string

Class to be applied to the header element when sorting on this column

+ +
+
<static> sSortingClassJUI :string

Class to be applied to the header element when sorting on this column - +when jQuery UI theming is used.

+ +
+
<static> sTitle :string

Title of the column - what is seen in the TH element (nTh).

+ +
+
<static> sType :string

Column sorting and filtering type

+ +
+
<static> sWidth :string

Width of the column

+ +
+
<static> sWidthOrig :string

Width of the column when it was first "encountered"

+ +
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.oRow.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.oRow.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,111 @@ + + + + + Namespace: oRow - documentation + + + + + + + + + +
+ + +
+

Namespace: oRow

+

Ancestry: DataTable ยป .models. ยป oRow

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Template object for the way in which DataTables holds information about +each individual row. This is the object format used for the settings +aoData array.

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> nTr :node

TR element for the row

<static> _aData :array|object

Data object from the original data source for the row. This is either +an array if using the traditional form of DataTables, or an object if +using mData options. The exact type will depend on the passed in +data from the data source, or will be an array if using DOM a data +source.

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> nTr :node

TR element for the row

+ +
+
<static> _aData :array|object

Data object from the original data source for the row. This is either +an array if using the traditional form of DataTables, or an object if +using mData options. The exact type will depend on the passed in +data from the data source, or will be an array if using DOM a data +source.

+ +
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.oSearch.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.oSearch.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,112 @@ + + + + + Namespace: oSearch - documentation + + + + + + + + + +
+ + +
+

Namespace: oSearch

+

Ancestry: DataTable ยป .models. ยป oSearch

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Template object for the way in which DataTables holds information about +search information for the global filter and individual column filters.

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> bCaseInsensitive :boolean

Flag to indicate if the filtering should be case insensitive or not

<static> bRegex :boolean

Flag to indicate if the search term should be interpreted as a +regular expression (true) or not (false) and therefore and special +regex characters escaped.

<static> bSmart :boolean

Flag to indicate if DataTables is to use its smart filtering or not.

<static> sSearch :string

Applied search term

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> bCaseInsensitive :boolean

Flag to indicate if the filtering should be case insensitive or not

+ +
+
<static> bRegex :boolean

Flag to indicate if the search term should be interpreted as a +regular expression (true) or not (false) and therefore and special +regex characters escaped.

+ +
+
<static> bSmart :boolean

Flag to indicate if DataTables is to use its smart filtering or not.

+ +
+
<static> sSearch :string

Applied search term

+ +
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.oSettings.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.oSettings.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,514 @@ + + + + + Namespace: oSettings - documentation + + + + + + + + + +
+ + +
+

Namespace: oSettings

+

Ancestry: DataTable ยป .models. ยป oSettings

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

DataTables settings object - this holds all the information needed for a +given table, including configuration, data and current application of the +table options. DataTables does not have a single instance for each DataTable +with the settings attached to that instance, but rather instances of the +DataTable "class" are created on-the-fly as needed (typically by a +$().dataTable() call) and the settings object is then applied to that +instance.

+ +

Note that this object is related to DataTable.defaults but this +one is the internal data store for DataTables's cache of columns. It should +NOT be manipulated outside of DataTables. Any configuration should be done +through the initialisation options.

+ +
+ +
+ + +
+ +

Summary

+ +

Namespaces

+
+
oBrowser

Browser support parameters

oFeatures

Primary features of DataTables and their enablement state.

oLanguage

Language information for the table.

oPreviousSearch

Store the applied global search information in case we want to force a +research or compare the old search to a new one. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

oScroll

Scrolling settings for a table.

+

Properties - static

+ +
+
<static> aanFeatures :array

Array referencing the nodes which are used for the features. The +parameters of this object match what is allowed by sDom - i.e. +

    +
  • 'l' - Length changing
  • +
  • 'f' - Filtering input
  • +
  • 't' - The table!
  • +
  • 'i' - Information
  • +
  • 'p' - Pagination
  • +
  • 'r' - pRocessing
  • +

<static> aaSorting :array

Sorting that is applied to the table. Note that the inner arrays are +used in the following manner: [...]

<static> aaSortingFixed :array|null

Sorting that is always applied to the table (i.e. prefixed in front of +aaSorting). +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> aiDisplay :array

Array of indexes which are in the current display (after filtering etc)

<static> aiDisplayMaster :array

Array of indexes for display - no filtering

<static> aLengthMenu :array

List of options that can be used for the user selectable length menu. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> aoColumns :array

Store information about each column that is in use

<static> aoData :array

Store data information - see DataTable.models.oRow for detailed +information.

<static> aoDestroyCallback :array

Destroy callback functions - for plug-ins to attach themselves to the +destroy so they can clean up markup and events.

<static> aoDrawCallback :array

Array of callback functions for draw callback functions

<static> aoFooter :array

Store information about the table's footer

<static> aoFooterCallback :array

Callback function for the footer on each draw.

<static> aoHeader :array

Store information about the table's header

<static> aoHeaderCallback :array

Callback functions for the header on each draw.

<static> aoInitComplete :array

Callback functions for when the table has been initialised.

<static> aoOpenRows :array

Information about open rows. Each object in the array has the parameters +'nTr' and 'nParent'

<static> aoPreDrawCallback :array

Callback functions for just before the table is redrawn. A return of +false will be used to cancel the draw.

<static> aoPreSearchCols :array

Store the applied search for each column - see +DataTable.models.oSearch for the format that is used for the +filtering information for each column.

<static> aoRowCallback :array

Callback functions array for every time a row is inserted (i.e. on a draw).

<static> aoRowCreatedCallback :array

Array of callback functions for row created function

<static> aoServerParams :array

Functions which are called prior to sending an Ajax request so extra +parameters can easily be sent to the server

<static> aoStateLoad :array

Array of callback functions for state loading. Each array element is an +object with the following parameters: +

    +
  • function:fn - function to call. Takes two parameters, oSettings + and the object stored. May return false to cancel state loading
  • +
  • string:sName - name of callback
  • +

<static> aoStateLoaded :array

Callbacks for operating on the settings object once the saved state has been +loaded

<static> aoStateLoadParams :array

Callbacks for modifying the settings that have been stored for state saving +prior to using the stored values to restore the state.

<static> aoStateSave :array

Array of callback functions for state saving. Each array element is an +object with the following parameters: +

    +
  • function:fn - function to call. Takes two parameters, oSettings + and the JSON string to save that has been thus far created. Returns + a JSON string to be inserted into a json object + (i.e. '"param": [ 0, 1, 2]')
  • +
  • string:sName - name of callback
  • +

<static> aoStateSaveParams :array

Callbacks for modifying the settings to be stored for state saving, prior to +saving state.

<static> asDataSearch :array

Search data array for regular expression searching

<static> asDestroyStripes :array

If restoring a table - we should restore its striping classes as well

<static> asStripeClasses :array

Classes to use for the striping of a table. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bAjaxDataGet :boolean

Note if draw should be blocked while getting data

<static> bDeferLoading :boolean

Indicate if when using server-side processing the loading of data +should be deferred until the second draw. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bDrawing :boolean

Indicate if a redraw is being done - useful for Ajax

<static> bFiltered :boolean

Flag attached to the settings object so you can check in the draw +callback if filtering has been done in the draw. Deprecated in favour of +events.

<static> bInitialised :boolean

Indicate if all required information has been read in

<static> bJUI :boolean

Flag to indicate if jQuery UI marking and classes should be used. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bSortCellsTop :boolean

Indicate that if multiple rows are in the header and there is more than +one unique cell per column, if the top one (true) or bottom one (false) +should be used for sorting / title by DataTables. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bSorted :boolean

Flag attached to the settings object so you can check in the draw +callback if sorting has been done in the draw. Deprecated in favour of +events.

<static> fnCookieCallback :function

Callback function for cookie creation. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> fnFormatNumber :function

Format numbers for display. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> fnServerData :function

Function to get the server-side data. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> iCookieDuration :int

The cookie duration (for bStateSave) in seconds. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> iDraw :int

Counter for the draws that the table does. Also used as a tracker for +server-side processing

<static> iDrawError :int

Draw index (iDraw) of the last error when parsing the returned data

<static> iTabIndex

tabindex attribute value that is added to DataTables control elements, allowing +keyboard navigation of the table and its controls.

<static> jqXHR :object

The last jQuery XHR object that was used for server-side data gathering. +This can be used for working with the XHR information in one of the +callbacks

<static> nScrollFoot

DIV container for the footer scrolling table if scrolling

<static> nScrollHead

DIV container for the footer scrolling table if scrolling

<static> nTable :node

The TABLE node for the main table

<static> nTableWrapper :node

Cache the wrapper node (contains all DataTables controlled elements)

<static> nTBody :node

Permanent ref to the tbody element

<static> nTFoot :node

Permanent ref to the tfoot element - if it exists

<static> nTHead :node

Permanent ref to the thead element

<static> oClasses :object

The classes to use for the table

<static> oInit :object

Initialisation object that is used for the table

<static> oInstance :object

The DataTables object for this table

<static> oLoadedState :object

State that was loaded from the cookie. Useful for back reference

<static> sAjaxDataProp :string

Property from a given object from which to read the table data from. This +can be an empty string (when not server-side processing), in which case +it is assumed an an array is given directly. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> sAjaxSource :string

Source url for AJAX data for the table. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> sCookiePrefix :string

The cookie name prefix. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> sDestroyWidth :int

If restoring a table - we should restore its width

<static> sDom :string

Dictate the positioning of DataTables' control elements - see +DataTable.model.oInit.sDom. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> sInstance :string

Unique identifier for each instance of the DataTables object. If there +is an ID on the table node, then it takes that value, otherwise an +incrementing internal counter is used.

<static> sPaginationType :string

Which type of pagination should be used. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> sServerMethod :string

Send the XHR HTTP method - GET or POST (could be PUT or DELETE if +required). +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> sTableId :string

Cache the table ID for quick access

<static> _iDisplayLength :int

Paging display length

<static> _iDisplayStart :int

Paging start point - aiDisplay index

+

Methods - static

+ +
+
<static> fnDisplayEnd()

Set the display end point - aiDisplay index

<static> fnRecordsDisplay()

Get the number of records in the current record set, after filtering

<static> fnRecordsTotal()

Get the number of records in the current record set, before filtering

+
+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> aanFeatures :array

Array referencing the nodes which are used for the features. The +parameters of this object match what is allowed by sDom - i.e. +

    +
  • 'l' - Length changing
  • +
  • 'f' - Filtering input
  • +
  • 't' - The table!
  • +
  • 'i' - Information
  • +
  • 'p' - Pagination
  • +
  • 'r' - pRocessing
  • +

+ +
+
<static> aaSorting :array

Sorting that is applied to the table. Note that the inner arrays are +used in the following manner:

+ +
    +
  • Index 0 - column number
  • +
  • Index 1 - current sorting direction
  • +
  • Index 2 - index of asSorting for this column
  • +
+ +

Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> aaSortingFixed :array|null

Sorting that is always applied to the table (i.e. prefixed in front of +aaSorting). +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> aiDisplay :array

Array of indexes which are in the current display (after filtering etc)

+ +
+
<static> aiDisplayMaster :array

Array of indexes for display - no filtering

+ +
+
<static> aLengthMenu :array

List of options that can be used for the user selectable length menu. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> aoColumns :array

Store information about each column that is in use

+ +
+
<static> aoData :array

Store data information - see DataTable.models.oRow for detailed +information.

+ +
+
<static> aoDestroyCallback :array

Destroy callback functions - for plug-ins to attach themselves to the +destroy so they can clean up markup and events.

+ +
+
<static> aoDrawCallback :array

Array of callback functions for draw callback functions

+ +
+
<static> aoFooter :array

Store information about the table's footer

+ +
+
<static> aoFooterCallback :array

Callback function for the footer on each draw.

+ +
+
<static> aoHeader :array

Store information about the table's header

+ +
+
<static> aoHeaderCallback :array

Callback functions for the header on each draw.

+ +
+
<static> aoInitComplete :array

Callback functions for when the table has been initialised.

+ +
+
<static> aoOpenRows :array

Information about open rows. Each object in the array has the parameters +'nTr' and 'nParent'

+ +
+
<static> aoPreDrawCallback :array

Callback functions for just before the table is redrawn. A return of +false will be used to cancel the draw.

+ +
+
<static> aoPreSearchCols :array

Store the applied search for each column - see +DataTable.models.oSearch for the format that is used for the +filtering information for each column.

+ +
+
<static> aoRowCallback :array

Callback functions array for every time a row is inserted (i.e. on a draw).

+ +
+
<static> aoRowCreatedCallback :array

Array of callback functions for row created function

+ +
+
<static> aoServerParams :array

Functions which are called prior to sending an Ajax request so extra +parameters can easily be sent to the server

+ +
+
<static> aoStateLoad :array

Array of callback functions for state loading. Each array element is an +object with the following parameters: +

    +
  • function:fn - function to call. Takes two parameters, oSettings + and the object stored. May return false to cancel state loading
  • +
  • string:sName - name of callback
  • +

+ +
+
<static> aoStateLoaded :array

Callbacks for operating on the settings object once the saved state has been +loaded

+ +
+
<static> aoStateLoadParams :array

Callbacks for modifying the settings that have been stored for state saving +prior to using the stored values to restore the state.

+ +
+
<static> aoStateSave :array

Array of callback functions for state saving. Each array element is an +object with the following parameters: +

    +
  • function:fn - function to call. Takes two parameters, oSettings + and the JSON string to save that has been thus far created. Returns + a JSON string to be inserted into a json object + (i.e. '"param": [ 0, 1, 2]')
  • +
  • string:sName - name of callback
  • +

+ +
+
<static> aoStateSaveParams :array

Callbacks for modifying the settings to be stored for state saving, prior to +saving state.

+ +
+
<static> asDataSearch :array

Search data array for regular expression searching

+ +
+
<static> asDestroyStripes :array

If restoring a table - we should restore its striping classes as well

+ +
+
<static> asStripeClasses :array

Classes to use for the striping of a table. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bAjaxDataGet :boolean

Note if draw should be blocked while getting data

+ +
+
<static> bDeferLoading :boolean

Indicate if when using server-side processing the loading of data +should be deferred until the second draw. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bDrawing :boolean

Indicate if a redraw is being done - useful for Ajax

+ +
+
<static> bFiltered :boolean

Flag attached to the settings object so you can check in the draw +callback if filtering has been done in the draw. Deprecated in favour of +events.

+
Deprecated
Yes
+
+
<static> bInitialised :boolean

Indicate if all required information has been read in

+ +
+
<static> bJUI :boolean

Flag to indicate if jQuery UI marking and classes should be used. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bSortCellsTop :boolean

Indicate that if multiple rows are in the header and there is more than +one unique cell per column, if the top one (true) or bottom one (false) +should be used for sorting / title by DataTables. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bSorted :boolean

Flag attached to the settings object so you can check in the draw +callback if sorting has been done in the draw. Deprecated in favour of +events.

+
Deprecated
Yes
+
+
<static> fnCookieCallback :function

Callback function for cookie creation. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
+
<static> fnFormatNumber :function

Format numbers for display. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
+
<static> fnServerData :function

Function to get the server-side data. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
+
<static> iCookieDuration :int

The cookie duration (for bStateSave) in seconds. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> iDraw :int

Counter for the draws that the table does. Also used as a tracker for +server-side processing

+ +
+
<static> iDrawError :int

Draw index (iDraw) of the last error when parsing the returned data

+ +
+
<static> iTabIndex

tabindex attribute value that is added to DataTables control elements, allowing +keyboard navigation of the table and its controls.

+ +
+
<static> jqXHR :object

The last jQuery XHR object that was used for server-side data gathering. +This can be used for working with the XHR information in one of the +callbacks

+ +
+
<static> nScrollFoot

DIV container for the footer scrolling table if scrolling

+ +
+
<static> nScrollHead

DIV container for the footer scrolling table if scrolling

+ +
+
<static> nTable :node

The TABLE node for the main table

+ +
+
<static> nTableWrapper :node

Cache the wrapper node (contains all DataTables controlled elements)

+ +
+
<static> nTBody :node

Permanent ref to the tbody element

+ +
+
<static> nTFoot :node

Permanent ref to the tfoot element - if it exists

+ +
+
<static> nTHead :node

Permanent ref to the thead element

+ +
+
<static> oClasses :object

The classes to use for the table

+ +
+
<static> oInit :object

Initialisation object that is used for the table

+ +
+
<static> oInstance :object

The DataTables object for this table

+ +
+
<static> oLoadedState :object

State that was loaded from the cookie. Useful for back reference

+ +
+
<static> sAjaxDataProp :string

Property from a given object from which to read the table data from. This +can be an empty string (when not server-side processing), in which case +it is assumed an an array is given directly. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> sAjaxSource :string

Source url for AJAX data for the table. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> sCookiePrefix :string

The cookie name prefix. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> sDestroyWidth :int

If restoring a table - we should restore its width

+ +
+
<static> sDom :string

Dictate the positioning of DataTables' control elements - see +DataTable.model.oInit.sDom. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> sInstance :string

Unique identifier for each instance of the DataTables object. If there +is an ID on the table node, then it takes that value, otherwise an +incrementing internal counter is used.

+ +
+
<static> sPaginationType :string

Which type of pagination should be used. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> sServerMethod :string

Send the XHR HTTP method - GET or POST (could be PUT or DELETE if +required). +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> sTableId :string

Cache the table ID for quick access

+ +
+
<static> _iDisplayLength :int

Paging display length

+ +
+
<static> _iDisplayStart :int

Paging start point - aiDisplay index

+ +
+
+

Methods - static

+
+
<static> fnDisplayEnd()

Set the display end point - aiDisplay index

+ +
+
+
<static> fnRecordsDisplay()

Get the number of records in the current record set, after filtering

+ +
+
+
<static> fnRecordsTotal()

Get the number of records in the current record set, before filtering

+ +
+
+ +
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.oSettings.oBrowser.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.oSettings.oBrowser.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,100 @@ + + + + + Namespace: oBrowser - documentation + + + + + + + + + +
+ + +
+

Namespace: oBrowser

+

Ancestry: DataTable ยป .models ยป .oSettings. ยป oBrowser

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Browser support parameters

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> bScrollOversize :boolean

Indicate if the browser incorrectly calculates width:100% inside a +scrolling element (IE6/7)

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> bScrollOversize :boolean

Indicate if the browser incorrectly calculates width:100% inside a +scrolling element (IE6/7)

+ +
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.oSettings.oFeatures.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.oSettings.oFeatures.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,200 @@ + + + + + Namespace: oFeatures - documentation + + + + + + + + + +
+ + +
+

Namespace: oFeatures

+

Ancestry: DataTable ยป .models ยป .oSettings. ยป oFeatures

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Primary features of DataTables and their enablement state.

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> bAutoWidth :boolean

Flag to say if DataTables should automatically try to calculate the +optimum table and columns widths (true) or not (false). +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bDeferRender :boolean

Delay the creation of TR and TD elements until they are actually +needed by a driven page draw. This can give a significant speed +increase for Ajax source and Javascript source data, but makes no +difference at all fro DOM and server-side processing tables. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bFilter :boolean

Enable filtering on the table or not. Note that if this is disabled +then there is no filtering at all on the table, including fnFilter. +To just remove the filtering input use sDom and remove the 'f' option. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bInfo :boolean

Table information element (the 'Showing x of y records' div) enable +flag. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bLengthChange :boolean

Present a user control allowing the end user to change the page size +when pagination is enabled. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bPaginate :boolean

Pagination enabled or not. Note that if this is disabled then length +changing must also be disabled. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bProcessing :boolean

Processing indicator enable flag whenever DataTables is enacting a +user request - typically an Ajax request for server-side processing. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bServerSide :boolean

Server-side processing enabled flag - when enabled DataTables will +get all data from the server for every draw - there is no filtering, +sorting or paging done on the client-side. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bSort :boolean

Sorting enablement flag. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bSortClasses :boolean

Apply a class to the columns which are being sorted to provide a +visual highlight or not. This can slow things down when enabled since +there is a lot of DOM interaction. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bStateSave :boolean

State saving enablement flag. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> bAutoWidth :boolean

Flag to say if DataTables should automatically try to calculate the +optimum table and columns widths (true) or not (false). +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bDeferRender :boolean

Delay the creation of TR and TD elements until they are actually +needed by a driven page draw. This can give a significant speed +increase for Ajax source and Javascript source data, but makes no +difference at all fro DOM and server-side processing tables. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bFilter :boolean

Enable filtering on the table or not. Note that if this is disabled +then there is no filtering at all on the table, including fnFilter. +To just remove the filtering input use sDom and remove the 'f' option. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bInfo :boolean

Table information element (the 'Showing x of y records' div) enable +flag. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bLengthChange :boolean

Present a user control allowing the end user to change the page size +when pagination is enabled. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bPaginate :boolean

Pagination enabled or not. Note that if this is disabled then length +changing must also be disabled. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bProcessing :boolean

Processing indicator enable flag whenever DataTables is enacting a +user request - typically an Ajax request for server-side processing. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bServerSide :boolean

Server-side processing enabled flag - when enabled DataTables will +get all data from the server for every draw - there is no filtering, +sorting or paging done on the client-side. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bSort :boolean

Sorting enablement flag. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bSortClasses :boolean

Apply a class to the columns which are being sorted to provide a +visual highlight or not. This can slow things down when enabled since +there is a lot of DOM interaction. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bStateSave :boolean

State saving enablement flag. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.oSettings.oLanguage.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.oSettings.oLanguage.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,105 @@ + + + + + Namespace: oLanguage - documentation + + + + + + + + + +
+ + +
+

Namespace: oLanguage

+

Ancestry: DataTable ยป .models ยป .oSettings. ยป oLanguage

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Language information for the table.

+ +
+

Extends

+ + +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> fnInfoCallback :function

Information callback function. See +DataTable.defaults.fnInfoCallback

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> fnInfoCallback :function

Information callback function. See +DataTable.defaults.fnInfoCallback

+ +
+
+ +
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.oSettings.oPreviousSearch.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.oSettings.oPreviousSearch.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,82 @@ + + + + + Namespace: oPreviousSearch - documentation + + + + + + + + + +
+ + +
+

Namespace: oPreviousSearch

+

Ancestry: DataTable ยป .models ยป .oSettings. ยป oPreviousSearch

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+
    +
  • Overview
  • +
  • Summary
    Classes (0)Namespaces (0)
    Properties (0)Static properties (0)
    Methods (0)Static methods (0)
    Events (0)
  • Details
    Properties (0)Static properties (0)
    Methods (0)Static methods (0)
    Events (0)
+
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Store the applied global search information in case we want to force a +research or compare the old search to a new one. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+

Extends

+ + +
+ + + + + +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/DataTable.models.oSettings.oScroll.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/DataTable.models.oSettings.oScroll.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,167 @@ + + + + + Namespace: oScroll - documentation + + + + + + + + + +
+ + +
+

Namespace: oScroll

+

Ancestry: DataTable ยป .models ยป .oSettings. ยป oScroll

+
+ DataTables v1.9.4 documentation +
+
+ + + +
+

Navigation

+ +
+ + Hiding private elements + (toggle) + +
+
+ + Showing extended elements + (toggle) + +
+
+ +
+ +
+ +

Scrolling settings for a table.

+ +
+ +
+ + +
+ +

Summary

+ +

Properties - static

+ +
+
<static> bAutoCss :boolean

Indicate if DataTables should be allowed to set the padding / margin +etc for the scrolling header elements or not. Typically you will want +this. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bCollapse :boolean

When the table is shorter in height than sScrollY, collapse the +table container down to the height of the table (when true). +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> bInfinite :boolean

Infinite scrolling enablement flag. Now deprecated in favour of +using the Scroller plug-in. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> iBarWidth :int

Width of the scrollbar for the web-browser's platform. Calculated +during table initialisation.

<static> iLoadGap :int

Space (in pixels) between the bottom of the scrolling container and +the bottom of the scrolling viewport before the next page is loaded +when using infinite scrolling. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> sX :string

Viewport width for horizontal scrolling. Horizontal scrolling is +disabled if an empty string. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> sXInner :string

Width to expand the table to when using x-scrolling. Typically you +should not need to use this. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

<static> sY :string

Viewport height for vertical scrolling. Vertical scrolling is disabled +if an empty string. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+
+
+ + + + +
+ +

Details

+

Properties - static

+
+
<static> bAutoCss :boolean

Indicate if DataTables should be allowed to set the padding / margin +etc for the scrolling header elements or not. Typically you will want +this. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bCollapse :boolean

When the table is shorter in height than sScrollY, collapse the +table container down to the height of the table (when true). +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> bInfinite :boolean

Infinite scrolling enablement flag. Now deprecated in favour of +using the Scroller plug-in. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> iBarWidth :int

Width of the scrollbar for the web-browser's platform. Calculated +during table initialisation.

+ +
+
<static> iLoadGap :int

Space (in pixels) between the bottom of the scrolling container and +the bottom of the scrolling viewport before the next page is loaded +when using infinite scrolling. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> sX :string

Viewport width for horizontal scrolling. Horizontal scrolling is +disabled if an empty string. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
<static> sXInner :string

Width to expand the table to when using x-scrolling. Typically you +should not need to use this. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+
Deprecated
Yes
+
+
<static> sY :string

Viewport height for vertical scrolling. Vertical scrolling is disabled +if an empty string. +Note that this parameter will be set by the initialisation routine. To +set a default use DataTable.defaults.

+ +
+
+
+
+ +
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/index.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,48 @@ + + + + + Table of Contents - documentation + + + + + + + + + +
+ +
+
+ +
+

Table of Contents

+
+
DataTable

DataTables is a plug-in for the jQuery Javascript library. It is a +highly flexible tool, based upon the foundations of progressive +enhancement, which will add advanced interaction controls to any +HTML table. For a full list of features please refer to +DataTables.net.

+ +

Note that the DataTable object is not a global variable but is +aliased to jQuery.fn.DataTable and jQuery.fn.dataTable through which +it may be accessed.

+
+
+
+ + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/media/css/doc.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/media/css/doc.css Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,393 @@ +/* +Copyright (c) 2006, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 0.12.0 +*/ +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;} +table{border-collapse:collapse;border-spacing:0;} +fieldset,img{border:0;} +address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;} +ol,ul {list-style:none;} +caption,th {text-align:left;} +h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;} +q:before,q:after{content:'';} +abbr,acronym {border:0;} + + +html, body { + margin: 0; + padding: 0; + width: 100%; + font: 14px/1.45em "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; + color: #111; +} + +div.fw_container { + width: 980px; + padding-top: 2em; + margin: 0 auto; +} + +div.fw_header { + position: relative; +} + +div.fw_content { + padding-top: 2em; +} + +div.fw_footer { + padding-top: 4em; + font-size: 75%; + text-align: center; +} + + + + +.type-attr .type-signature { + background-color: #ccc; + color: white; + border-radius: 3px; + display: inline-block; + padding: 0 3px; + font-size: 0.9em; +} + +.type-attr { + float: right; + color: #999; +} + +.type-name { + font-weight: bold; +} + +.type-sig { + color: #999; +} + +.type-param { + color: #D32929; +} + +.type-return { + color: #FF8080; +} + +.type-brace { + color: #111; +} + +.example-code { + margin-left: 30px; +} +.example-code td.code { + border-top: 1px solid #4E6CA3 !important; +} + +.type-augmented { + position: absolute; + left: 8px; + top: 0; +} + +dt, dd { + padding: 0.4em 10px; +} + +dt { + padding-bottom: 0 !important; +} + +dd { + position: relative; + padding-top: 0 !important; + padding-left: 3em; +} + +dt.even, dd.even { + background-color: white; +} + +dt.odd, dd.odd { + background-color: #F2F2F2; +} + +div.doc_overview dd, div.doc_overview dt { + padding-left: 0 !important; +} + + + +.right_border div { + width: 20px; + padding: 2px 0.5em 2px 1em; + text-align: right; +} +.right_border { + border-right: 3px solid #4E6CA3; +} +.bottom_border { + border-bottom: 1px solid #4E6CA3; +} + + +a { + text-decoration: none; + color: #4E6CA3; +} + +a:hover { + text-decoration: underline; + cursor: pointer; + *cursor: hand; +} + +div.fw_content ul { + list-style-image: url('../images/arrow.png'); + padding: 0 0 0 2em; +} + +/* +h2 { + font-size: 1.4em; + margin-top: 2em; + border-bottom: 3px solid #829ac6; + padding-left: 5px; +} + +h3 { + font-size: 1.2em; + margin-top: 1em; + border-bottom: 1px solid #A4B5D5; + padding-left: 5px; +} +*/ + +h1 { + font-size: 2em; +} + +h2 { + font-size: 1.6em; + padding-top: 5px; +} + +h2.ancestors { + font-size: 14px; + margin: 0; +} + +h3 { + font-size: 1.3em; + padding-top: 5px; + margin-bottom: 5px; +} + +h5 { + padding-top: 6px; + font-weight: bold; + font-size: 0.9em; + border-bottom: 1px solid #cad4e6; + margin-bottom: 1em; +} + +div.doc_summary, div.doc_details { + margin-top: 2em; + clear: both; +} + +div.doc_group { + margin-top: 1em; + border-top: 1px solid #A4B5D5; + border-left: 1px solid #A4B5D5; + padding-left: 10px; +} + +div.extended { + margin-left: 30px; +} + +table.params { + margin-left: 30px; + width: 97%; +} + +table.params th, +table.params td { + padding: 3px; +} + +tr.odd { + background-color: white; +} + +tr.even { + background-color: #F8F8F8; +} + +th.name, +td.name { + padding-left: 13px; +} + +td.number { + background-color: white; + color: #5C5C5C; +} + +dd.odd td.number { + background-color: #F2F2F2; +} + +p { + margin: 1em 0; +} + +p:first-child { + margin-top: 0; +} + +p:last-child { + margin-bottom: 0; +} + +p.returns { + margin-left: 5%; +} + +div.page-info { + position: absolute; + top: 0; + right: 0; +} + + +.private { + display: none; +} + + +code { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 2px 4px !important; + white-space: pre; + font-size: 0.9em; + + color: #D14; + background-color: #F7F7F9; + + border: 1px solid #E1E1E8; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +pre { + background-color: #f8f8f8; + border: 1px solid #ccc; + border-radius: 3px; + padding: 6px 10px; +} + +pre>code { + background-color: transparent; + border: none; + color: #111; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +ol { + list-style-type: decimal; + list-style-position: outside; + padding-left: 30px; +} + + + +div.fw_nav { + position: fixed; + top: 25px; + right: 30px; + width: 250px; + border: 1px solid #A4B5D5; + background-color: white; + padding: 10px; + z-index: 1001; + font-size: 12px; + overflow: hidden; +} + +div.fw_nav h2 { + margin: -10px 0 10px -10px; + width: 250px; + padding: 5px 10px; + background-color: #A4B5D5; + font-size: 12px; + cursor: pointer; + *cursor: hand; +} + +div.fw_nav ul>li>div { + padding: 0 0 0 1em; +} + +div.nav_blocker { + float: right; +} + +div.fw_nav td { + color: #999; +} + +div.fw_nav li { + margin-bottom: 5px; +} + +div.fw_nav li>a { + font-weight: bold; +} + + + + + + + +.css_clear { + clear: both; + height: 0; + line-height: 0; + visibility: hidden; +} + +.css_right { + text-align: right; +} + +.css_center { + text-align: center; +} + +.css_spacing { + margin-top: 1.5em; +} + +.css_small { + font-size: 75%; + line-height: 1.45em; +} + +.css_vsmall { + font-size: 65%; + line-height: 1.45em; +} diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/media/css/shCore.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/media/css/shCore.css Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,226 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas","Monaco","Bitstream Vera Sans Mono","Courier New",Courier,monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 2px 0.5em 2px 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 2px 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/media/css/shThemeDataTables.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/media/css/shThemeDataTables.css Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,128 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: white !important; + font-size: 14px !important; + overflow: visible !important; +} +.syntaxhighlighter .line.alt1 { + background-color: white !important; +} +.syntaxhighlighter .line.alt2 { + background-color: #F8F8F8 !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #e0e0e0 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: black !important; +} +.syntaxhighlighter table caption { + color: black !important; +} +.syntaxhighlighter .gutter { +} +.syntaxhighlighter .gutter div { + color: #5C5C5C !important; + width: 20px !important; +} +.syntaxhighlighter .gutter .line.alt1, .syntaxhighlighter .gutter .line.alt2 { + background-color: white !important; +} +.odd .syntaxhighlighter .gutter .line.alt1, .odd .syntaxhighlighter .gutter .line.alt2 { + background-color: #F2F2F2 !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #4E6CA3 !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #4E6CA3 !important; + color: white !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: blue !important; + background: white !important; + border: 1px solid #4E6CA3 !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: blue !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: red !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #4E6CA3 !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: black !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: black !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #008200 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: blue !important; +} +.syntaxhighlighter .keyword { + color: #006699 !important; +} +.syntaxhighlighter .preprocessor { + color: gray !important; +} +.syntaxhighlighter .variable { + color: #aa7700 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ff1493 !important; +} +.syntaxhighlighter .constants { + color: #0066cc !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #006699 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: gray !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: red !important; +} + +.syntaxhighlighter .keyword { + font-weight: bold !important; +} diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/media/images/arrow.jpg Binary file DataTables-1.9.4/docs/media/images/arrow.jpg has changed diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/media/images/arrow.png Binary file DataTables-1.9.4/docs/media/images/arrow.png has changed diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/media/images/extended.png Binary file DataTables-1.9.4/docs/media/images/extended.png has changed diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/docs/media/js/doc.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/docs/media/js/doc.js Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,121 @@ + +(function() { + +var showingNav = true; + +$(document).ready( function () { + var jqNav = $('div.fw_nav'); + jqNav.css('right', ($(window).width() - $('div.fw_container').width()) /2); + + var n = $('div.nav_blocker')[0]; + n.style.height = $(jqNav).outerHeight()+"px"; + n.style.width = ($(jqNav).outerWidth()+20)+"px"; + + SyntaxHighlighter.highlight(); + + $('#private_toggle').click( function () { + if ( $('input[name=show_private]').val() == 0 ) { + $('input[name=show_private]').val( 1 ); + $('#private_label').html('Showing'); + $('.private').css('display', 'block'); + } else { + $('input[name=show_private]').val( 0 ); + $('#private_label').html('Hiding'); + $('.private').css('display', 'none'); + } + fnWriteCookie(); + return false; + } ); + + $('#extended_toggle').click( function () { + if ( $('input[name=show_extended]').val() == 0 ) { + $('input[name=show_extended]').val( 1 ); + $('#extended_label').html('Showing'); + $('.augmented').css('display', 'block'); + } else { + $('input[name=show_extended]').val( 0 ); + $('#extended_label').html('Hiding'); + $('.augmented').css('display', 'none'); + } + fnWriteCookie(); + return false; + } ); + + var savedHeight = $(jqNav).height(); + $('div.fw_nav h2').click( function () { + if ( showingNav ) { + $('div.fw_nav').animate( { + "height": 10, + "opacity": 0.3 + } ); + showingNav = false; + } else { + $('div.fw_nav').animate( { + "height": savedHeight, + "opacity": 1 + } ); + showingNav = true; + } + fnWriteCookie(); + } ); + + var cookie = fnReadCookie( 'SpryMedia_JSDoc' ); + if ( cookie != null ) { + var a = cookie.split('-'); + if ( a[0] == 1 ) { + $('#private_toggle').click(); + } + if ( a[1] == 0 ) { + $('#extended_toggle').click(); + } + if ( a[2] == 'false' ) { + $('div.fw_nav').css('height', 10).css('opacity', 0.3); + showingNav = false; + } + } +} ); + + +function fnWriteCookie() +{ + var sVal = + $('input[name=show_private]').val()+'-'+ + $('input[name=show_extended]').val()+'-'+ + showingNav; + + fnCreateCookie( 'SpryMedia_JSDoc', sVal ); +} + + +function fnCreateCookie( sName, sValue ) +{ + var iDays = 365; + var date = new Date(); + date.setTime( date.getTime()+(iDays*24*60*60*1000) ); + var sExpires = "; expires="+date.toGMTString(); + + document.cookie = sName+"="+sValue+sExpires+"; path=/"; +} + + +function fnReadCookie( sName ) +{ + var sNameEQ = sName + "="; + var sCookieContents = document.cookie.split(';'); + + for( var i=0 ; i)[^>]*$|#([\w\-]+)$)/, + + // Check if a string has a non-whitespace character in it + rnotwhite = /\S/, + + // Used for trimming whitespace + trimLeft = /^\s+/, + trimRight = /\s+$/, + + // Check for digits + rdigit = /\d/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, + rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + + // Useragent RegExp + rwebkit = /(webkit)[ \/]([\w.]+)/, + ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, + rmsie = /(msie) ([\w.]+)/, + rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, + + // Keep a UserAgent string for use with jQuery.browser + userAgent = navigator.userAgent, + + // For matching the engine and version of the browser + browserMatch, + + // Has the ready events already been bound? + readyBound = false, + + // The deferred used on DOM ready + readyList, + + // Promise methods + promiseMethods = "then done fail isResolved isRejected promise".split( " " ), + + // The ready event handler + DOMContentLoaded, + + // Save a reference to some core methods + toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty, + push = Array.prototype.push, + slice = Array.prototype.slice, + trim = String.prototype.trim, + indexOf = Array.prototype.indexOf, + + // [[Class]] -> type pairs + class2type = {}; + +jQuery.fn = jQuery.prototype = { + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem, ret, doc; + + // Handle $(""), $(null), or $(undefined) + if ( !selector ) { + return this; + } + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + } + + // The body element only exists once, optimize finding it + if ( selector === "body" && !context && document.body ) { + this.context = document; + this[0] = document.body; + this.selector = "body"; + this.length = 1; + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + match = quickExpr.exec( selector ); + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + doc = (context ? context.ownerDocument || context : document); + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + ret = rsingleTag.exec( selector ); + + if ( ret ) { + if ( jQuery.isPlainObject( context ) ) { + selector = [ document.createElement( ret[1] ) ]; + jQuery.fn.attr.call( selector, context, true ); + + } else { + selector = [ doc.createElement( ret[1] ) ]; + } + + } else { + ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); + selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; + } + + return jQuery.merge( this, selector ); + + // HANDLE: $("#id") + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return (context || rootjQuery).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if (selector.selector !== undefined) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.5.1", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return slice.call( this, 0 ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = this.constructor(); + + if ( jQuery.isArray( elems ) ) { + push.apply( ret, elems ); + + } else { + jQuery.merge( ret, elems ); + } + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) { + ret.selector = this.selector + (this.selector ? " " : "") + selector; + } else if ( name ) { + ret.selector = this.selector + "." + name + "(" + selector + ")"; + } + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Attach the listeners + jQuery.bindReady(); + + // Add the callback + readyList.done( fn ); + + return this; + }, + + eq: function( i ) { + return i === -1 ? + this.slice( i ) : + this.slice( i, +i + 1 ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ), + "slice", slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + window.$ = _$; + + if ( deep ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + // A third-party is pushing the ready event forwards + if ( wait === true ) { + jQuery.readyWait--; + } + + // Make sure that the DOM is not already loaded + if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) ) { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 1 ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger( "ready" ).unbind( "ready" ); + } + } + }, + + bindReady: function() { + if ( readyBound ) { + return; + } + + readyBound = true; + + // Catch cases where $(document).ready() is called after the + // browser event has already occurred. + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + return setTimeout( jQuery.ready, 1 ); + } + + // Mozilla, Opera and webkit nightlies currently support this event + if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); + + // If IE event model is used + } else if ( document.attachEvent ) { + // ensure firing before onload, + // maybe late but safe also for iframes + document.attachEvent("onreadystatechange", DOMContentLoaded); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); + + // If IE and not a frame + // continually check to see if the document is ready + var toplevel = false; + + try { + toplevel = window.frameElement == null; + } catch(e) {} + + if ( document.documentElement.doScroll && toplevel ) { + doScrollCheck(); + } + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + // A crude way of determining if an object is a window + isWindow: function( obj ) { + return obj && typeof obj === "object" && "setInterval" in obj; + }, + + isNaN: function( obj ) { + return obj == null || !rdigit.test( obj ) || isNaN( obj ); + }, + + type: function( obj ) { + return obj == null ? + String( obj ) : + class2type[ toString.call(obj) ] || "object"; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + for ( var name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw msg; + }, + + parseJSON: function( data ) { + if ( typeof data !== "string" || !data ) { + return null; + } + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test(data.replace(rvalidescape, "@") + .replace(rvalidtokens, "]") + .replace(rvalidbraces, "")) ) { + + // Try to use the native JSON parser first + return window.JSON && window.JSON.parse ? + window.JSON.parse( data ) : + (new Function("return " + data))(); + + } else { + jQuery.error( "Invalid JSON: " + data ); + } + }, + + // Cross-browser xml parsing + // (xml & tmp used internally) + parseXML: function( data , xml , tmp ) { + + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + + tmp = xml.documentElement; + + if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { + jQuery.error( "Invalid XML: " + data ); + } + + return xml; + }, + + noop: function() {}, + + // Evalulates a script in a global context + globalEval: function( data ) { + if ( data && rnotwhite.test(data) ) { + // Inspired by code by Andrea Giammarchi + // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html + var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement, + script = document.createElement( "script" ); + + if ( jQuery.support.scriptEval() ) { + script.appendChild( document.createTextNode( data ) ); + } else { + script.text = data; + } + + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709). + head.insertBefore( script, head.firstChild ); + head.removeChild( script ); + } + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, + length = object.length, + isObj = length === undefined || jQuery.isFunction(object); + + if ( args ) { + if ( isObj ) { + for ( name in object ) { + if ( callback.apply( object[ name ], args ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.apply( object[ i++ ], args ) === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in object ) { + if ( callback.call( object[ name ], name, object[ name ] ) === false ) { + break; + } + } + } else { + for ( var value = object[0]; + i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {} + } + } + + return object; + }, + + // Use native String.trim function wherever possible + trim: trim ? + function( text ) { + return text == null ? + "" : + trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); + }, + + // results is for internal usage only + makeArray: function( array, results ) { + var ret = results || []; + + if ( array != null ) { + // The window, strings (and functions) also have 'length' + // The extra typeof function check is to prevent crashes + // in Safari 2 (See: #3039) + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + var type = jQuery.type(array); + + if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { + push.call( ret, array ); + } else { + jQuery.merge( ret, array ); + } + } + + return ret; + }, + + inArray: function( elem, array ) { + if ( array.indexOf ) { + return array.indexOf( elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; + }, + + merge: function( first, second ) { + var i = first.length, + j = 0; + + if ( typeof second.length === "number" ) { + for ( var l = second.length; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var ret = [], retVal; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( var i = 0, length = elems.length; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var ret = [], value; + + // Go through the array, translating each of the items to their + // new value (or values). + for ( var i = 0, length = elems.length; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Flatten any nested arrays + return ret.concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + proxy: function( fn, proxy, thisObject ) { + if ( arguments.length === 2 ) { + if ( typeof proxy === "string" ) { + thisObject = fn; + fn = thisObject[ proxy ]; + proxy = undefined; + + } else if ( proxy && !jQuery.isFunction( proxy ) ) { + thisObject = proxy; + proxy = undefined; + } + } + + if ( !proxy && fn ) { + proxy = function() { + return fn.apply( thisObject || this, arguments ); + }; + } + + // Set the guid of unique handler to the same of original handler, so it can be removed + if ( fn ) { + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + } + + // So proxy can be declared as an argument + return proxy; + }, + + // Mutifunctional method to get and set values to a collection + // The value/s can be optionally by executed if its a function + access: function( elems, key, value, exec, fn, pass ) { + var length = elems.length; + + // Setting many attributes + if ( typeof key === "object" ) { + for ( var k in key ) { + jQuery.access( elems, k, key[k], exec, fn, value ); + } + return elems; + } + + // Setting one attribute + if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = !pass && exec && jQuery.isFunction(value); + + for ( var i = 0; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + + return elems; + } + + // Getting an attribute + return length ? fn( elems[0], key ) : undefined; + }, + + now: function() { + return (new Date()).getTime(); + }, + + // Create a simple deferred (one callbacks list) + _Deferred: function() { + var // callbacks list + callbacks = [], + // stored [ context , args ] + fired, + // to avoid firing when already doing so + firing, + // flag to know if the deferred has been cancelled + cancelled, + // the deferred itself + deferred = { + + // done( f1, f2, ...) + done: function() { + if ( !cancelled ) { + var args = arguments, + i, + length, + elem, + type, + _fired; + if ( fired ) { + _fired = fired; + fired = 0; + } + for ( i = 0, length = args.length; i < length; i++ ) { + elem = args[ i ]; + type = jQuery.type( elem ); + if ( type === "array" ) { + deferred.done.apply( deferred, elem ); + } else if ( type === "function" ) { + callbacks.push( elem ); + } + } + if ( _fired ) { + deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); + } + } + return this; + }, + + // resolve with given context and args + resolveWith: function( context, args ) { + if ( !cancelled && !fired && !firing ) { + firing = 1; + try { + while( callbacks[ 0 ] ) { + callbacks.shift().apply( context, args ); + } + } + // We have to add a catch block for + // IE prior to 8 or else the finally + // block will never get executed + catch (e) { + throw e; + } + finally { + fired = [ context, args ]; + firing = 0; + } + } + return this; + }, + + // resolve with this as context and given arguments + resolve: function() { + deferred.resolveWith( jQuery.isFunction( this.promise ) ? this.promise() : this, arguments ); + return this; + }, + + // Has this deferred been resolved? + isResolved: function() { + return !!( firing || fired ); + }, + + // Cancel + cancel: function() { + cancelled = 1; + callbacks = []; + return this; + } + }; + + return deferred; + }, + + // Full fledged deferred (two callbacks list) + Deferred: function( func ) { + var deferred = jQuery._Deferred(), + failDeferred = jQuery._Deferred(), + promise; + // Add errorDeferred methods, then and promise + jQuery.extend( deferred, { + then: function( doneCallbacks, failCallbacks ) { + deferred.done( doneCallbacks ).fail( failCallbacks ); + return this; + }, + fail: failDeferred.done, + rejectWith: failDeferred.resolveWith, + reject: failDeferred.resolve, + isRejected: failDeferred.isResolved, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + if ( obj == null ) { + if ( promise ) { + return promise; + } + promise = obj = {}; + } + var i = promiseMethods.length; + while( i-- ) { + obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; + } + return obj; + } + } ); + // Make sure only one callback list will be used + deferred.done( failDeferred.cancel ).fail( deferred.cancel ); + // Unexpose cancel + delete deferred.cancel; + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + return deferred; + }, + + // Deferred helper + when: function( object ) { + var lastIndex = arguments.length, + deferred = lastIndex <= 1 && object && jQuery.isFunction( object.promise ) ? + object : + jQuery.Deferred(), + promise = deferred.promise(); + + if ( lastIndex > 1 ) { + var array = slice.call( arguments, 0 ), + count = lastIndex, + iCallback = function( index ) { + return function( value ) { + array[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value; + if ( !( --count ) ) { + deferred.resolveWith( promise, array ); + } + }; + }; + while( ( lastIndex-- ) ) { + object = array[ lastIndex ]; + if ( object && jQuery.isFunction( object.promise ) ) { + object.promise().then( iCallback(lastIndex), deferred.reject ); + } else { + --count; + } + } + if ( !count ) { + deferred.resolveWith( promise, array ); + } + } else if ( deferred !== object ) { + deferred.resolve( object ); + } + return promise; + }, + + // Use of jQuery.browser is frowned upon. + // More details: http://docs.jquery.com/Utilities/jQuery.browser + uaMatch: function( ua ) { + ua = ua.toLowerCase(); + + var match = rwebkit.exec( ua ) || + ropera.exec( ua ) || + rmsie.exec( ua ) || + ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || + []; + + return { browser: match[1] || "", version: match[2] || "0" }; + }, + + sub: function() { + function jQuerySubclass( selector, context ) { + return new jQuerySubclass.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySubclass, this ); + jQuerySubclass.superclass = this; + jQuerySubclass.fn = jQuerySubclass.prototype = this(); + jQuerySubclass.fn.constructor = jQuerySubclass; + jQuerySubclass.subclass = this.subclass; + jQuerySubclass.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySubclass) ) { + context = jQuerySubclass(context); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass ); + }; + jQuerySubclass.fn.init.prototype = jQuerySubclass.fn; + var rootjQuerySubclass = jQuerySubclass(document); + return jQuerySubclass; + }, + + browser: {} +}); + +// Create readyList deferred +readyList = jQuery._Deferred(); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +browserMatch = jQuery.uaMatch( userAgent ); +if ( browserMatch.browser ) { + jQuery.browser[ browserMatch.browser ] = true; + jQuery.browser.version = browserMatch.version; +} + +// Deprecated, use jQuery.browser.webkit instead +if ( jQuery.browser.webkit ) { + jQuery.browser.safari = true; +} + +if ( indexOf ) { + jQuery.inArray = function( elem, array ) { + return indexOf.call( array, elem ); + }; +} + +// IE doesn't match non-breaking spaces with \s +if ( rnotwhite.test( "\xA0" ) ) { + trimLeft = /^[\s\xA0]+/; + trimRight = /[\s\xA0]+$/; +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); + +// Cleanup functions for the document ready method +if ( document.addEventListener ) { + DOMContentLoaded = function() { + document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + jQuery.ready(); + }; + +} else if ( document.attachEvent ) { + DOMContentLoaded = function() { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( document.readyState === "complete" ) { + document.detachEvent( "onreadystatechange", DOMContentLoaded ); + jQuery.ready(); + } + }; +} + +// The DOM ready check for Internet Explorer +function doScrollCheck() { + if ( jQuery.isReady ) { + return; + } + + try { + // If IE is used, use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + document.documentElement.doScroll("left"); + } catch(e) { + setTimeout( doScrollCheck, 1 ); + return; + } + + // and execute any waiting functions + jQuery.ready(); +} + +// Expose jQuery to the global object +return jQuery; + +})(); + + +(function() { + + jQuery.support = {}; + + var div = document.createElement("div"); + + div.style.display = "none"; + div.innerHTML = "
a"; + + var all = div.getElementsByTagName("*"), + a = div.getElementsByTagName("a")[0], + select = document.createElement("select"), + opt = select.appendChild( document.createElement("option") ), + input = div.getElementsByTagName("input")[0]; + + // Can't get basic test support + if ( !all || !all.length || !a ) { + return; + } + + jQuery.support = { + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: div.firstChild.nodeType === 3, + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText insted) + style: /red/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: a.getAttribute("href") === "/a", + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.55$/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Make sure that if no value is specified for a checkbox + // that it defaults to "on". + // (WebKit defaults to "" instead) + checkOn: input.value === "on", + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Will be defined later + deleteExpando: true, + optDisabled: false, + checkClone: false, + noCloneEvent: true, + noCloneChecked: true, + boxModel: null, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableHiddenOffsets: true + }; + + input.checked = true; + jQuery.support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as diabled) + select.disabled = true; + jQuery.support.optDisabled = !opt.disabled; + + var _scriptEval = null; + jQuery.support.scriptEval = function() { + if ( _scriptEval === null ) { + var root = document.documentElement, + script = document.createElement("script"), + id = "script" + jQuery.now(); + + try { + script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); + } catch(e) {} + + root.insertBefore( script, root.firstChild ); + + // Make sure that the execution of code works by injecting a script + // tag with appendChild/createTextNode + // (IE doesn't support this, fails, and uses .text instead) + if ( window[ id ] ) { + _scriptEval = true; + delete window[ id ]; + } else { + _scriptEval = false; + } + + root.removeChild( script ); + // release memory in IE + root = script = id = null; + } + + return _scriptEval; + }; + + // Test to see if it's possible to delete an expando from an element + // Fails in Internet Explorer + try { + delete div.test; + + } catch(e) { + jQuery.support.deleteExpando = false; + } + + if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { + div.attachEvent("onclick", function click() { + // Cloning a node shouldn't copy over any + // bound event handlers (IE does this) + jQuery.support.noCloneEvent = false; + div.detachEvent("onclick", click); + }); + div.cloneNode(true).fireEvent("onclick"); + } + + div = document.createElement("div"); + div.innerHTML = ""; + + var fragment = document.createDocumentFragment(); + fragment.appendChild( div.firstChild ); + + // WebKit doesn't clone checked state correctly in fragments + jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked; + + // Figure out if the W3C box model works as expected + // document.body must exist before we can do this + jQuery(function() { + var div = document.createElement("div"), + body = document.getElementsByTagName("body")[0]; + + // Frameset documents with no body should not run this code + if ( !body ) { + return; + } + + div.style.width = div.style.paddingLeft = "1px"; + body.appendChild( div ); + jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; + + if ( "zoom" in div.style ) { + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + // (IE < 8 does this) + div.style.display = "inline"; + div.style.zoom = 1; + jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2; + + // Check if elements with layout shrink-wrap their children + // (IE 6 does this) + div.style.display = ""; + div.innerHTML = "
"; + jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2; + } + + div.innerHTML = "
t
"; + var tds = div.getElementsByTagName("td"); + + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + // (only IE 8 fails this test) + jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0; + + tds[0].style.display = ""; + tds[1].style.display = "none"; + + // Check if empty table cells still have offsetWidth/Height + // (IE < 8 fail this test) + jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0; + div.innerHTML = ""; + + body.removeChild( div ).style.display = "none"; + div = tds = null; + }); + + // Technique from Juriy Zaytsev + // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ + var eventSupported = function( eventName ) { + var el = document.createElement("div"); + eventName = "on" + eventName; + + // We only care about the case where non-standard event systems + // are used, namely in IE. Short-circuiting here helps us to + // avoid an eval call (in setAttribute) which can cause CSP + // to go haywire. See: https://developer.mozilla.org/en/Security/CSP + if ( !el.attachEvent ) { + return true; + } + + var isSupported = (eventName in el); + if ( !isSupported ) { + el.setAttribute(eventName, "return;"); + isSupported = typeof el[eventName] === "function"; + } + el = null; + + return isSupported; + }; + + jQuery.support.submitBubbles = eventSupported("submit"); + jQuery.support.changeBubbles = eventSupported("change"); + + // release memory in IE + div = all = a = null; +})(); + + + +var rbrace = /^(?:\{.*\}|\[.*\])$/; + +jQuery.extend({ + cache: {}, + + // Please use with caution + uuid: 0, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ jQuery.expando ] = id = ++jQuery.uuid; + } else { + id = jQuery.expando; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); + } else { + cache[ id ] = jQuery.extend(cache[ id ], name); + } + } + + thisCache = cache[ id ]; + + // Internal jQuery data is stored in a separate object inside the object's data + // cache in order to avoid key collisions between internal data and user-defined + // data + if ( pvt ) { + if ( !thisCache[ internalKey ] ) { + thisCache[ internalKey ] = {}; + } + + thisCache = thisCache[ internalKey ]; + } + + if ( data !== undefined ) { + thisCache[ name ] = data; + } + + // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should + // not attempt to inspect the internal events object using jQuery.data, as this + // internal data object is undocumented and subject to change. + if ( name === "events" && !thisCache[name] ) { + return thisCache[ internalKey ] && thisCache[ internalKey ].events; + } + + return getByName ? thisCache[ name ] : thisCache; + }, + + removeData: function( elem, name, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var internalKey = jQuery.expando, isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + + // See jQuery.data for more information + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; + + if ( thisCache ) { + delete thisCache[ name ]; + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !isEmptyDataObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( pvt ) { + delete cache[ id ][ internalKey ]; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject(cache[ id ]) ) { + return; + } + } + + var internalCache = cache[ id ][ internalKey ]; + + // Browsers that fail expando deletion also refuse to delete expandos on + // the window, but it will allow it on all other JS objects; other browsers + // don't care + if ( jQuery.support.deleteExpando || cache != window ) { + delete cache[ id ]; + } else { + cache[ id ] = null; + } + + // We destroyed the entire user cache at once because it's faster than + // iterating through each key, but we need to continue to persist internal + // data if it existed + if ( internalCache ) { + cache[ id ] = {}; + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + + cache[ id ][ internalKey ] = internalCache; + + // Otherwise, we need to eliminate the expando on the node to avoid + // false lookups in the cache for entries that no longer exist + } else if ( isNode ) { + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( jQuery.support.deleteExpando ) { + delete elem[ jQuery.expando ]; + } else if ( elem.removeAttribute ) { + elem.removeAttribute( jQuery.expando ); + } else { + elem[ jQuery.expando ] = null; + } + } + }, + + // For internal use only. + _data: function( elem, name, data ) { + return jQuery.data( elem, name, data, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + if ( elem.nodeName ) { + var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; + + if ( match ) { + return !(match === true || elem.getAttribute("classid") !== match); + } + } + + return true; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var data = null; + + if ( typeof key === "undefined" ) { + if ( this.length ) { + data = jQuery.data( this[0] ); + + if ( this[0].nodeType === 1 ) { + var attr = this[0].attributes, name; + for ( var i = 0, l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = name.substr( 5 ); + dataAttr( this[0], name, data[ name ] ); + } + } + } + } + + return data; + + } else if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + var parts = key.split("."); + parts[1] = parts[1] ? "." + parts[1] : ""; + + if ( value === undefined ) { + data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + + // Try to fetch any internally stored data first + if ( data === undefined && this.length ) { + data = jQuery.data( this[0], key ); + data = dataAttr( this[0], key, data ); + } + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + + } else { + return this.each(function() { + var $this = jQuery( this ), + args = [ parts[0], value ]; + + $this.triggerHandler( "setData" + parts[1] + "!", args ); + jQuery.data( this, key, value ); + $this.triggerHandler( "changeData" + parts[1] + "!", args ); + }); + } + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + data = elem.getAttribute( "data-" + key ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + !jQuery.isNaN( data ) ? parseFloat( data ) : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON +// property to be considered empty objects; this property always exists in +// order to make sure JSON.stringify does not expose internal metadata +function isEmptyDataObject( obj ) { + for ( var name in obj ) { + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} + + + + +jQuery.extend({ + queue: function( elem, type, data ) { + if ( !elem ) { + return; + } + + type = (type || "fx") + "queue"; + var q = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( !data ) { + return q || []; + } + + if ( !q || jQuery.isArray(data) ) { + q = jQuery._data( elem, type, jQuery.makeArray(data) ); + + } else { + q.push( data ); + } + + return q; + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + fn = queue.shift(); + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + } + + if ( fn ) { + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift("inprogress"); + } + + fn.call(elem, function() { + jQuery.dequeue(elem, type); + }); + } + + if ( !queue.length ) { + jQuery.removeData( elem, type + "queue", true ); + } + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + } + + if ( data === undefined ) { + return jQuery.queue( this[0], type ); + } + return this.each(function( i ) { + var queue = jQuery.queue( this, type, data ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; + type = type || "fx"; + + return this.queue( type, function() { + var elem = this; + setTimeout(function() { + jQuery.dequeue( elem, type ); + }, time ); + }); + }, + + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + } +}); + + + + +var rclass = /[\n\t\r]/g, + rspaces = /\s+/, + rreturn = /\r/g, + rspecialurl = /^(?:href|src|style)$/, + rtype = /^(?:button|input)$/i, + rfocusable = /^(?:button|input|object|select|textarea)$/i, + rclickable = /^a(?:rea)?$/i, + rradiocheck = /^(?:radio|checkbox)$/i; + +jQuery.props = { + "for": "htmlFor", + "class": "className", + readonly: "readOnly", + maxlength: "maxLength", + cellspacing: "cellSpacing", + rowspan: "rowSpan", + colspan: "colSpan", + tabindex: "tabIndex", + usemap: "useMap", + frameborder: "frameBorder" +}; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, name, value, true, jQuery.attr ); + }, + + removeAttr: function( name, fn ) { + return this.each(function(){ + jQuery.attr( this, name, "" ); + if ( this.nodeType === 1 ) { + this.removeAttribute( name ); + } + }); + }, + + addClass: function( value ) { + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + self.addClass( value.call(this, i, self.attr("class")) ); + }); + } + + if ( value && typeof value === "string" ) { + var classNames = (value || "").split( rspaces ); + + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; + + if ( elem.nodeType === 1 ) { + if ( !elem.className ) { + elem.className = value; + + } else { + var className = " " + elem.className + " ", + setClass = elem.className; + + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { + setClass += " " + classNames[c]; + } + } + elem.className = jQuery.trim( setClass ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + self.removeClass( value.call(this, i, self.attr("class")) ); + }); + } + + if ( (value && typeof value === "string") || value === undefined ) { + var classNames = (value || "").split( rspaces ); + + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; + + if ( elem.nodeType === 1 && elem.className ) { + if ( value ) { + var className = (" " + elem.className + " ").replace(rclass, " "); + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + className = className.replace(" " + classNames[c] + " ", " "); + } + elem.className = jQuery.trim( className ); + + } else { + elem.className = ""; + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this); + self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.split( rspaces ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space seperated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // toggle whole className + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " "; + for ( var i = 0, l = this.length; i < l; i++ ) { + if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + if ( !arguments.length ) { + var elem = this[0]; + + if ( elem ) { + if ( jQuery.nodeName( elem, "option" ) ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + + // We need to handle select boxes special + if ( jQuery.nodeName( elem, "select" ) ) { + var index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type === "select-one"; + + // Nothing was selected + if ( index < 0 ) { + return null; + } + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + // Don't return options that are disabled or in a disabled optgroup + if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && + (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { + + // Get the specific value for the option + value = jQuery(option).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + // Fixes Bug #2551 -- select.val() broken in IE after form.reset() + if ( one && !values.length && options.length ) { + return jQuery( options[ index ] ).val(); + } + + return values; + } + + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) { + return elem.getAttribute("value") === null ? "on" : elem.value; + } + + // Everything else, we just grab the value + return (elem.value || "").replace(rreturn, ""); + + } + + return undefined; + } + + var isFunction = jQuery.isFunction(value); + + return this.each(function(i) { + var self = jQuery(this), val = value; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call(this, i, self.val()); + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray(val) ) { + val = jQuery.map(val, function (value) { + return value == null ? "" : value + ""; + }); + } + + if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { + this.checked = jQuery.inArray( self.val(), val ) >= 0; + + } else if ( jQuery.nodeName( this, "select" ) ) { + var values = jQuery.makeArray(val); + + jQuery( "option", this ).each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + this.selectedIndex = -1; + } + + } else { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + attrFn: { + val: true, + css: true, + html: true, + text: true, + data: true, + width: true, + height: true, + offset: true + }, + + attr: function( elem, name, value, pass ) { + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || elem.nodeType === 2 ) { + return undefined; + } + + if ( pass && name in jQuery.attrFn ) { + return jQuery(elem)[name](value); + } + + var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ), + // Whether we are setting (or getting) + set = value !== undefined; + + // Try to normalize/fix the name + name = notxml && jQuery.props[ name ] || name; + + // Only do all the following if this is a node (faster for style) + if ( elem.nodeType === 1 ) { + // These attributes require special treatment + var special = rspecialurl.test( name ); + + // Safari mis-reports the default selected property of an option + // Accessing the parent's selectedIndex property fixes it + if ( name === "selected" && !jQuery.support.optSelected ) { + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + + // If applicable, access the attribute via the DOM 0 way + // 'in' checks fail in Blackberry 4.7 #6931 + if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) { + if ( set ) { + // We can't allow the type property to be changed (since it causes problems in IE) + if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } + + if ( value === null ) { + if ( elem.nodeType === 1 ) { + elem.removeAttribute( name ); + } + + } else { + elem[ name ] = value; + } + } + + // browsers index elements by id/name on forms, give priority to attributes. + if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { + return elem.getAttributeNode( name ).nodeValue; + } + + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + if ( name === "tabIndex" ) { + var attributeNode = elem.getAttributeNode( "tabIndex" ); + + return attributeNode && attributeNode.specified ? + attributeNode.value : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + + return elem[ name ]; + } + + if ( !jQuery.support.style && notxml && name === "style" ) { + if ( set ) { + elem.style.cssText = "" + value; + } + + return elem.style.cssText; + } + + if ( set ) { + // convert the value to a string (all browsers do this but IE) see #1070 + elem.setAttribute( name, "" + value ); + } + + // Ensure that missing attributes return undefined + // Blackberry 4.7 returns "" from getAttribute #6938 + if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) { + return undefined; + } + + var attr = !jQuery.support.hrefNormalized && notxml && special ? + // Some attributes require a special call on IE + elem.getAttribute( name, 2 ) : + elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return attr === null ? undefined : attr; + } + // Handle everything which isn't a DOM element node + if ( set ) { + elem[ name ] = value; + } + return elem[ name ]; + } +}); + + + + +var rnamespaces = /\.(.*)$/, + rformElems = /^(?:textarea|input|select)$/i, + rperiod = /\./g, + rspace = / /g, + rescape = /[^\w\s.|`]/g, + fcleanup = function( nm ) { + return nm.replace(rescape, "\\$&"); + }; + +/* + * A number of helper functions used for managing events. + * Many of the ideas behind this code originated from + * Dean Edwards' addEvent library. + */ +jQuery.event = { + + // Bind an event to an element + // Original by Dean Edwards + add: function( elem, types, handler, data ) { + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // TODO :: Use a try/catch until it's safe to pull this out (likely 1.6) + // Minor release fix for bug #8018 + try { + // For whatever reason, IE has trouble passing the window object + // around, causing it to be cloned in the process + if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) { + elem = window; + } + } + catch ( e ) {} + + if ( handler === false ) { + handler = returnFalse; + } else if ( !handler ) { + // Fixes bug #7229. Fix recommended by jdalton + return; + } + + var handleObjIn, handleObj; + + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + } + + // Make sure that the function being executed has a unique ID + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure + var elemData = jQuery._data( elem ); + + // If no elemData is found then we must be trying to bind to one of the + // banned noData elements + if ( !elemData ) { + return; + } + + var events = elemData.events, + eventHandle = elemData.handle; + + if ( !events ) { + elemData.events = events = {}; + } + + if ( !eventHandle ) { + elemData.handle = eventHandle = function() { + // Handle the second event of a trigger and when + // an event is called after a page has unloaded + return typeof jQuery !== "undefined" && !jQuery.event.triggered ? + jQuery.event.handle.apply( eventHandle.elem, arguments ) : + undefined; + }; + } + + // Add elem as a property of the handle function + // This is to prevent a memory leak with non-native events in IE. + eventHandle.elem = elem; + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = types.split(" "); + + var type, i = 0, namespaces; + + while ( (type = types[ i++ ]) ) { + handleObj = handleObjIn ? + jQuery.extend({}, handleObjIn) : + { handler: handler, data: data }; + + // Namespaced event handlers + if ( type.indexOf(".") > -1 ) { + namespaces = type.split("."); + type = namespaces.shift(); + handleObj.namespace = namespaces.slice(0).sort().join("."); + + } else { + namespaces = []; + handleObj.namespace = ""; + } + + handleObj.type = type; + if ( !handleObj.guid ) { + handleObj.guid = handler.guid; + } + + // Get the current list of functions bound to this event + var handlers = events[ type ], + special = jQuery.event.special[ type ] || {}; + + // Init the event handler queue + if ( !handlers ) { + handlers = events[ type ] = []; + + // Check for a special event handler + // Only use addEventListener/attachEvent if the special + // events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add the function to the element's handler list + handlers.push( handleObj ); + + // Keep track of which events have been used, for global triggering + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + global: {}, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, pos ) { + // don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + if ( handler === false ) { + handler = returnFalse; + } + + var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ), + events = elemData && elemData.events; + + if ( !elemData || !events ) { + return; + } + + // types is actually an event object here + if ( types && types.type ) { + handler = types.handler; + types = types.type; + } + + // Unbind all events for the element + if ( !types || typeof types === "string" && types.charAt(0) === "." ) { + types = types || ""; + + for ( type in events ) { + jQuery.event.remove( elem, type + types ); + } + + return; + } + + // Handle multiple events separated by a space + // jQuery(...).unbind("mouseover mouseout", fn); + types = types.split(" "); + + while ( (type = types[ i++ ]) ) { + origType = type; + handleObj = null; + all = type.indexOf(".") < 0; + namespaces = []; + + if ( !all ) { + // Namespaced event handlers + namespaces = type.split("."); + type = namespaces.shift(); + + namespace = new RegExp("(^|\\.)" + + jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + eventType = events[ type ]; + + if ( !eventType ) { + continue; + } + + if ( !handler ) { + for ( j = 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( all || namespace.test( handleObj.namespace ) ) { + jQuery.event.remove( elem, origType, handleObj.handler, j ); + eventType.splice( j--, 1 ); + } + } + + continue; + } + + special = jQuery.event.special[ type ] || {}; + + for ( j = pos || 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( handler.guid === handleObj.guid ) { + // remove the given handler for the given type + if ( all || namespace.test( handleObj.namespace ) ) { + if ( pos == null ) { + eventType.splice( j--, 1 ); + } + + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + + if ( pos != null ) { + break; + } + } + } + + // remove generic event handler if no more handlers exist + if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { + if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + ret = null; + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + var handle = elemData.handle; + if ( handle ) { + handle.elem = null; + } + + delete elemData.events; + delete elemData.handle; + + if ( jQuery.isEmptyObject( elemData ) ) { + jQuery.removeData( elem, undefined, true ); + } + } + }, + + // bubbling is internal + trigger: function( event, data, elem /*, bubbling */ ) { + // Event object or event type + var type = event.type || event, + bubbling = arguments[3]; + + if ( !bubbling ) { + event = typeof event === "object" ? + // jQuery.Event object + event[ jQuery.expando ] ? event : + // Object literal + jQuery.extend( jQuery.Event(type), event ) : + // Just the event type (string) + jQuery.Event(type); + + if ( type.indexOf("!") >= 0 ) { + event.type = type = type.slice(0, -1); + event.exclusive = true; + } + + // Handle a global trigger + if ( !elem ) { + // Don't bubble custom events when global (to avoid too much overhead) + event.stopPropagation(); + + // Only trigger if we've ever bound an event for it + if ( jQuery.event.global[ type ] ) { + // XXX This code smells terrible. event.js should not be directly + // inspecting the data cache + jQuery.each( jQuery.cache, function() { + // internalKey variable is just used to make it easier to find + // and potentially change this stuff later; currently it just + // points to jQuery.expando + var internalKey = jQuery.expando, + internalCache = this[ internalKey ]; + if ( internalCache && internalCache.events && internalCache.events[ type ] ) { + jQuery.event.trigger( event, data, internalCache.handle.elem ); + } + }); + } + } + + // Handle triggering a single element + + // don't do events on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { + return undefined; + } + + // Clean up in case it is reused + event.result = undefined; + event.target = elem; + + // Clone the incoming data, if any + data = jQuery.makeArray( data ); + data.unshift( event ); + } + + event.currentTarget = elem; + + // Trigger the event, it is assumed that "handle" is a function + var handle = jQuery._data( elem, "handle" ); + + if ( handle ) { + handle.apply( elem, data ); + } + + var parent = elem.parentNode || elem.ownerDocument; + + // Trigger an inline bound script + try { + if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) { + if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) { + event.result = false; + event.preventDefault(); + } + } + + // prevent IE from throwing an error for some elements with some event types, see #3533 + } catch (inlineError) {} + + if ( !event.isPropagationStopped() && parent ) { + jQuery.event.trigger( event, data, parent, true ); + + } else if ( !event.isDefaultPrevented() ) { + var old, + target = event.target, + targetType = type.replace( rnamespaces, "" ), + isClick = jQuery.nodeName( target, "a" ) && targetType === "click", + special = jQuery.event.special[ targetType ] || {}; + + if ( (!special._default || special._default.call( elem, event ) === false) && + !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) { + + try { + if ( target[ targetType ] ) { + // Make sure that we don't accidentally re-trigger the onFOO events + old = target[ "on" + targetType ]; + + if ( old ) { + target[ "on" + targetType ] = null; + } + + jQuery.event.triggered = true; + target[ targetType ](); + } + + // prevent IE from throwing an error for some elements with some event types, see #3533 + } catch (triggerError) {} + + if ( old ) { + target[ "on" + targetType ] = old; + } + + jQuery.event.triggered = false; + } + } + }, + + handle: function( event ) { + var all, handlers, namespaces, namespace_re, events, + namespace_sort = [], + args = jQuery.makeArray( arguments ); + + event = args[0] = jQuery.event.fix( event || window.event ); + event.currentTarget = this; + + // Namespaced event handlers + all = event.type.indexOf(".") < 0 && !event.exclusive; + + if ( !all ) { + namespaces = event.type.split("."); + event.type = namespaces.shift(); + namespace_sort = namespaces.slice(0).sort(); + namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + event.namespace = event.namespace || namespace_sort.join("."); + + events = jQuery._data(this, "events"); + + handlers = (events || {})[ event.type ]; + + if ( events && handlers ) { + // Clone the handlers to prevent manipulation + handlers = handlers.slice(0); + + for ( var j = 0, l = handlers.length; j < l; j++ ) { + var handleObj = handlers[ j ]; + + // Filter the functions by class + if ( all || namespace_re.test( handleObj.namespace ) ) { + // Pass in a reference to the handler function itself + // So that we can later remove it + event.handler = handleObj.handler; + event.data = handleObj.data; + event.handleObj = handleObj; + + var ret = handleObj.handler.apply( this, args ); + + if ( ret !== undefined ) { + event.result = ret; + if ( ret === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + + if ( event.isImmediatePropagationStopped() ) { + break; + } + } + } + } + + return event.result; + }, + + props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // store a copy of the original event object + // and "clone" to set read-only properties + var originalEvent = event; + event = jQuery.Event( originalEvent ); + + for ( var i = this.props.length, prop; i; ) { + prop = this.props[ --i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Fix target property, if necessary + if ( !event.target ) { + // Fixes #1925 where srcElement might not be defined either + event.target = event.srcElement || document; + } + + // check if target is a textnode (safari) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && event.fromElement ) { + event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; + } + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && event.clientX != null ) { + var doc = document.documentElement, + body = document.body; + + event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); + event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); + } + + // Add which for key events + if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { + event.which = event.charCode != null ? event.charCode : event.keyCode; + } + + // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) + if ( !event.metaKey && event.ctrlKey ) { + event.metaKey = event.ctrlKey; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && event.button !== undefined ) { + event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); + } + + return event; + }, + + // Deprecated, use jQuery.guid instead + guid: 1E8, + + // Deprecated, use jQuery.proxy instead + proxy: jQuery.proxy, + + special: { + ready: { + // Make sure the ready event is setup + setup: jQuery.bindReady, + teardown: jQuery.noop + }, + + live: { + add: function( handleObj ) { + jQuery.event.add( this, + liveConvert( handleObj.origType, handleObj.selector ), + jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); + }, + + remove: function( handleObj ) { + jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); + } + }, + + beforeunload: { + setup: function( data, namespaces, eventHandle ) { + // We only want to do this special case on windows + if ( jQuery.isWindow( this ) ) { + this.onbeforeunload = eventHandle; + } + }, + + teardown: function( namespaces, eventHandle ) { + if ( this.onbeforeunload === eventHandle ) { + this.onbeforeunload = null; + } + } + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + if ( elem.detachEvent ) { + elem.detachEvent( "on" + type, handle ); + } + }; + +jQuery.Event = function( src ) { + // Allow instantiation without the 'new' keyword + if ( !this.preventDefault ) { + return new jQuery.Event( src ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // timeStamp is buggy for some events on Firefox(#3843) + // So we won't rely on the native value + this.timeStamp = jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +function returnFalse() { + return false; +} +function returnTrue() { + return true; +} + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + preventDefault: function() { + this.isDefaultPrevented = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // otherwise set the returnValue property of the original event to false (IE) + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + this.isPropagationStopped = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse +}; + +// Checks if an event happened on an element within another element +// Used in jQuery.event.special.mouseenter and mouseleave handlers +var withinElement = function( event ) { + // Check if mouse(over|out) are still within the same parent element + var parent = event.relatedTarget; + + // Firefox sometimes assigns relatedTarget a XUL element + // which we cannot access the parentNode property of + try { + + // Chrome does something similar, the parentNode property + // can be accessed but is null. + if ( parent !== document && !parent.parentNode ) { + return; + } + // Traverse up the tree + while ( parent && parent !== this ) { + parent = parent.parentNode; + } + + if ( parent !== this ) { + // set the correct event type + event.type = event.data; + + // handle event if we actually just moused on to a non sub-element + jQuery.event.handle.apply( this, arguments ); + } + + // assuming we've left the element since we most likely mousedover a xul element + } catch(e) { } +}, + +// In case of event delegation, we only need to rename the event.type, +// liveHandler will take care of the rest. +delegate = function( event ) { + event.type = event.data; + jQuery.event.handle.apply( this, arguments ); +}; + +// Create mouseenter and mouseleave events +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + setup: function( data ) { + jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); + }, + teardown: function( data ) { + jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); + } + }; +}); + +// submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function( data, namespaces ) { + if ( this.nodeName && this.nodeName.toLowerCase() !== "form" ) { + jQuery.event.add(this, "click.specialSubmit", function( e ) { + var elem = e.target, + type = elem.type; + + if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { + trigger( "submit", this, arguments ); + } + }); + + jQuery.event.add(this, "keypress.specialSubmit", function( e ) { + var elem = e.target, + type = elem.type; + + if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { + trigger( "submit", this, arguments ); + } + }); + + } else { + return false; + } + }, + + teardown: function( namespaces ) { + jQuery.event.remove( this, ".specialSubmit" ); + } + }; + +} + +// change delegation, happens here so we have bind. +if ( !jQuery.support.changeBubbles ) { + + var changeFilters, + + getVal = function( elem ) { + var type = elem.type, val = elem.value; + + if ( type === "radio" || type === "checkbox" ) { + val = elem.checked; + + } else if ( type === "select-multiple" ) { + val = elem.selectedIndex > -1 ? + jQuery.map( elem.options, function( elem ) { + return elem.selected; + }).join("-") : + ""; + + } else if ( elem.nodeName.toLowerCase() === "select" ) { + val = elem.selectedIndex; + } + + return val; + }, + + testChange = function testChange( e ) { + var elem = e.target, data, val; + + if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { + return; + } + + data = jQuery._data( elem, "_change_data" ); + val = getVal(elem); + + // the current data will be also retrieved by beforeactivate + if ( e.type !== "focusout" || elem.type !== "radio" ) { + jQuery._data( elem, "_change_data", val ); + } + + if ( data === undefined || val === data ) { + return; + } + + if ( data != null || val ) { + e.type = "change"; + e.liveFired = undefined; + jQuery.event.trigger( e, arguments[1], elem ); + } + }; + + jQuery.event.special.change = { + filters: { + focusout: testChange, + + beforedeactivate: testChange, + + click: function( e ) { + var elem = e.target, type = elem.type; + + if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) { + testChange.call( this, e ); + } + }, + + // Change has to be called before submit + // Keydown will be called before keypress, which is used in submit-event delegation + keydown: function( e ) { + var elem = e.target, type = elem.type; + + if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") || + (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || + type === "select-multiple" ) { + testChange.call( this, e ); + } + }, + + // Beforeactivate happens also before the previous element is blurred + // with this event you can't trigger a change event, but you can store + // information + beforeactivate: function( e ) { + var elem = e.target; + jQuery._data( elem, "_change_data", getVal(elem) ); + } + }, + + setup: function( data, namespaces ) { + if ( this.type === "file" ) { + return false; + } + + for ( var type in changeFilters ) { + jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); + } + + return rformElems.test( this.nodeName ); + }, + + teardown: function( namespaces ) { + jQuery.event.remove( this, ".specialChange" ); + + return rformElems.test( this.nodeName ); + } + }; + + changeFilters = jQuery.event.special.change.filters; + + // Handle when the input is .focus()'d + changeFilters.focus = changeFilters.beforeactivate; +} + +function trigger( type, elem, args ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + // Don't pass args or remember liveFired; they apply to the donor event. + var event = jQuery.extend( {}, args[ 0 ] ); + event.type = type; + event.originalEvent = {}; + event.liveFired = undefined; + jQuery.event.handle.call( elem, event ); + if ( event.isDefaultPrevented() ) { + args[ 0 ].preventDefault(); + } +} + +// Create "bubbling" focus and blur events +if ( document.addEventListener ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + jQuery.event.special[ fix ] = { + setup: function() { + this.addEventListener( orig, handler, true ); + }, + teardown: function() { + this.removeEventListener( orig, handler, true ); + } + }; + + function handler( e ) { + e = jQuery.event.fix( e ); + e.type = fix; + return jQuery.event.handle.call( this, e ); + } + }); +} + +jQuery.each(["bind", "one"], function( i, name ) { + jQuery.fn[ name ] = function( type, data, fn ) { + // Handle object literals + if ( typeof type === "object" ) { + for ( var key in type ) { + this[ name ](key, data, type[key], fn); + } + return this; + } + + if ( jQuery.isFunction( data ) || data === false ) { + fn = data; + data = undefined; + } + + var handler = name === "one" ? jQuery.proxy( fn, function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }) : fn; + + if ( type === "unload" && name !== "one" ) { + this.one( type, data, fn ); + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.add( this[i], type, handler, data ); + } + } + + return this; + }; +}); + +jQuery.fn.extend({ + unbind: function( type, fn ) { + // Handle object literals + if ( typeof type === "object" && !type.preventDefault ) { + for ( var key in type ) { + this.unbind(key, type[key]); + } + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.remove( this[i], type, fn ); + } + } + + return this; + }, + + delegate: function( selector, types, data, fn ) { + return this.live( types, data, fn, selector ); + }, + + undelegate: function( selector, types, fn ) { + if ( arguments.length === 0 ) { + return this.unbind( "live" ); + + } else { + return this.die( types, null, fn, selector ); + } + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + + triggerHandler: function( type, data ) { + if ( this[0] ) { + var event = jQuery.Event( type ); + event.preventDefault(); + event.stopPropagation(); + jQuery.event.trigger( event, data, this[0] ); + return event.result; + } + }, + + toggle: function( fn ) { + // Save reference to arguments for access in closure + var args = arguments, + i = 1; + + // link all the functions, so any of them can unbind this click handler + while ( i < args.length ) { + jQuery.proxy( fn, args[ i++ ] ); + } + + return this.click( jQuery.proxy( fn, function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + })); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +}); + +var liveMap = { + focus: "focusin", + blur: "focusout", + mouseenter: "mouseover", + mouseleave: "mouseout" +}; + +jQuery.each(["live", "die"], function( i, name ) { + jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { + var type, i = 0, match, namespaces, preType, + selector = origSelector || this.selector, + context = origSelector ? this : jQuery( this.context ); + + if ( typeof types === "object" && !types.preventDefault ) { + for ( var key in types ) { + context[ name ]( key, data, types[key], selector ); + } + + return this; + } + + if ( jQuery.isFunction( data ) ) { + fn = data; + data = undefined; + } + + types = (types || "").split(" "); + + while ( (type = types[ i++ ]) != null ) { + match = rnamespaces.exec( type ); + namespaces = ""; + + if ( match ) { + namespaces = match[0]; + type = type.replace( rnamespaces, "" ); + } + + if ( type === "hover" ) { + types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); + continue; + } + + preType = type; + + if ( type === "focus" || type === "blur" ) { + types.push( liveMap[ type ] + namespaces ); + type = type + namespaces; + + } else { + type = (liveMap[ type ] || type) + namespaces; + } + + if ( name === "live" ) { + // bind live handler + for ( var j = 0, l = context.length; j < l; j++ ) { + jQuery.event.add( context[j], "live." + liveConvert( type, selector ), + { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); + } + + } else { + // unbind live handler + context.unbind( "live." + liveConvert( type, selector ), fn ); + } + } + + return this; + }; +}); + +function liveHandler( event ) { + var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, + elems = [], + selectors = [], + events = jQuery._data( this, "events" ); + + // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) + if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { + return; + } + + if ( event.namespace ) { + namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + event.liveFired = this; + + var live = events.live.slice(0); + + for ( j = 0; j < live.length; j++ ) { + handleObj = live[j]; + + if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { + selectors.push( handleObj.selector ); + + } else { + live.splice( j--, 1 ); + } + } + + match = jQuery( event.target ).closest( selectors, event.currentTarget ); + + for ( i = 0, l = match.length; i < l; i++ ) { + close = match[i]; + + for ( j = 0; j < live.length; j++ ) { + handleObj = live[j]; + + if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) { + elem = close.elem; + related = null; + + // Those two events require additional checking + if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { + event.type = handleObj.preType; + related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; + } + + if ( !related || related !== elem ) { + elems.push({ elem: elem, handleObj: handleObj, level: close.level }); + } + } + } + } + + for ( i = 0, l = elems.length; i < l; i++ ) { + match = elems[i]; + + if ( maxLevel && match.level > maxLevel ) { + break; + } + + event.currentTarget = match.elem; + event.data = match.handleObj.data; + event.handleObj = match.handleObj; + + ret = match.handleObj.origHandler.apply( match.elem, arguments ); + + if ( ret === false || event.isPropagationStopped() ) { + maxLevel = match.level; + + if ( ret === false ) { + stop = false; + } + if ( event.isImmediatePropagationStopped() ) { + break; + } + } + } + + return stop; +} + +function liveConvert( type, selector ) { + return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace, "&"); +} + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; + + if ( jQuery.attrFn ) { + jQuery.attrFn[ name ] = true; + } +}); + + +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){ + +var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, + done = 0, + toString = Object.prototype.toString, + hasDuplicate = false, + baseHasDuplicate = true, + rBackslash = /\\/g, + rNonWord = /\W/; + +// Here we check if the JavaScript engine is using some sort of +// optimization where it does not always call our comparision +// function. If that is the case, discard the hasDuplicate value. +// Thus far that includes Google Chrome. +[0, 0].sort(function() { + baseHasDuplicate = false; + return 0; +}); + +var Sizzle = function( selector, context, results, seed ) { + results = results || []; + context = context || document; + + var origContext = context; + + if ( context.nodeType !== 1 && context.nodeType !== 9 ) { + return []; + } + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + var m, set, checkSet, extra, ret, cur, pop, i, + prune = true, + contextXML = Sizzle.isXML( context ), + parts = [], + soFar = selector; + + // Reset the position of the chunker regexp (start from head) + do { + chunker.exec( "" ); + m = chunker.exec( soFar ); + + if ( m ) { + soFar = m[3]; + + parts.push( m[1] ); + + if ( m[2] ) { + extra = m[3]; + break; + } + } + } while ( m ); + + if ( parts.length > 1 && origPOS.exec( selector ) ) { + + if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { + set = posProcess( parts[0] + parts[1], context ); + + } else { + set = Expr.relative[ parts[0] ] ? + [ context ] : + Sizzle( parts.shift(), context ); + + while ( parts.length ) { + selector = parts.shift(); + + if ( Expr.relative[ selector ] ) { + selector += parts.shift(); + } + + set = posProcess( selector, set ); + } + } + + } else { + // Take a shortcut and set the context if the root selector is an ID + // (but not if it'll be faster if the inner selector is an ID) + if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && + Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { + + ret = Sizzle.find( parts.shift(), context, contextXML ); + context = ret.expr ? + Sizzle.filter( ret.expr, ret.set )[0] : + ret.set[0]; + } + + if ( context ) { + ret = seed ? + { expr: parts.pop(), set: makeArray(seed) } : + Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); + + set = ret.expr ? + Sizzle.filter( ret.expr, ret.set ) : + ret.set; + + if ( parts.length > 0 ) { + checkSet = makeArray( set ); + + } else { + prune = false; + } + + while ( parts.length ) { + cur = parts.pop(); + pop = cur; + + if ( !Expr.relative[ cur ] ) { + cur = ""; + } else { + pop = parts.pop(); + } + + if ( pop == null ) { + pop = context; + } + + Expr.relative[ cur ]( checkSet, pop, contextXML ); + } + + } else { + checkSet = parts = []; + } + } + + if ( !checkSet ) { + checkSet = set; + } + + if ( !checkSet ) { + Sizzle.error( cur || selector ); + } + + if ( toString.call(checkSet) === "[object Array]" ) { + if ( !prune ) { + results.push.apply( results, checkSet ); + + } else if ( context && context.nodeType === 1 ) { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { + results.push( set[i] ); + } + } + + } else { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && checkSet[i].nodeType === 1 ) { + results.push( set[i] ); + } + } + } + + } else { + makeArray( checkSet, results ); + } + + if ( extra ) { + Sizzle( extra, origContext, results, seed ); + Sizzle.uniqueSort( results ); + } + + return results; +}; + +Sizzle.uniqueSort = function( results ) { + if ( sortOrder ) { + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( var i = 1; i < results.length; i++ ) { + if ( results[i] === results[ i - 1 ] ) { + results.splice( i--, 1 ); + } + } + } + } + + return results; +}; + +Sizzle.matches = function( expr, set ) { + return Sizzle( expr, null, null, set ); +}; + +Sizzle.matchesSelector = function( node, expr ) { + return Sizzle( expr, null, null, [node] ).length > 0; +}; + +Sizzle.find = function( expr, context, isXML ) { + var set; + + if ( !expr ) { + return []; + } + + for ( var i = 0, l = Expr.order.length; i < l; i++ ) { + var match, + type = Expr.order[i]; + + if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { + var left = match[1]; + match.splice( 1, 1 ); + + if ( left.substr( left.length - 1 ) !== "\\" ) { + match[1] = (match[1] || "").replace( rBackslash, "" ); + set = Expr.find[ type ]( match, context, isXML ); + + if ( set != null ) { + expr = expr.replace( Expr.match[ type ], "" ); + break; + } + } + } + } + + if ( !set ) { + set = typeof context.getElementsByTagName !== "undefined" ? + context.getElementsByTagName( "*" ) : + []; + } + + return { set: set, expr: expr }; +}; + +Sizzle.filter = function( expr, set, inplace, not ) { + var match, anyFound, + old = expr, + result = [], + curLoop = set, + isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); + + while ( expr && set.length ) { + for ( var type in Expr.filter ) { + if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { + var found, item, + filter = Expr.filter[ type ], + left = match[1]; + + anyFound = false; + + match.splice(1,1); + + if ( left.substr( left.length - 1 ) === "\\" ) { + continue; + } + + if ( curLoop === result ) { + result = []; + } + + if ( Expr.preFilter[ type ] ) { + match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); + + if ( !match ) { + anyFound = found = true; + + } else if ( match === true ) { + continue; + } + } + + if ( match ) { + for ( var i = 0; (item = curLoop[i]) != null; i++ ) { + if ( item ) { + found = filter( item, match, i, curLoop ); + var pass = not ^ !!found; + + if ( inplace && found != null ) { + if ( pass ) { + anyFound = true; + + } else { + curLoop[i] = false; + } + + } else if ( pass ) { + result.push( item ); + anyFound = true; + } + } + } + } + + if ( found !== undefined ) { + if ( !inplace ) { + curLoop = result; + } + + expr = expr.replace( Expr.match[ type ], "" ); + + if ( !anyFound ) { + return []; + } + + break; + } + } + } + + // Improper expression + if ( expr === old ) { + if ( anyFound == null ) { + Sizzle.error( expr ); + + } else { + break; + } + } + + old = expr; + } + + return curLoop; +}; + +Sizzle.error = function( msg ) { + throw "Syntax error, unrecognized expression: " + msg; +}; + +var Expr = Sizzle.selectors = { + order: [ "ID", "NAME", "TAG" ], + + match: { + ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, + ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, + TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, + CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, + POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, + PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ + }, + + leftMatch: {}, + + attrMap: { + "class": "className", + "for": "htmlFor" + }, + + attrHandle: { + href: function( elem ) { + return elem.getAttribute( "href" ); + }, + type: function( elem ) { + return elem.getAttribute( "type" ); + } + }, + + relative: { + "+": function(checkSet, part){ + var isPartStr = typeof part === "string", + isTag = isPartStr && !rNonWord.test( part ), + isPartStrNotTag = isPartStr && !isTag; + + if ( isTag ) { + part = part.toLowerCase(); + } + + for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { + if ( (elem = checkSet[i]) ) { + while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} + + checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? + elem || false : + elem === part; + } + } + + if ( isPartStrNotTag ) { + Sizzle.filter( part, checkSet, true ); + } + }, + + ">": function( checkSet, part ) { + var elem, + isPartStr = typeof part === "string", + i = 0, + l = checkSet.length; + + if ( isPartStr && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + var parent = elem.parentNode; + checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; + } + } + + } else { + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + checkSet[i] = isPartStr ? + elem.parentNode : + elem.parentNode === part; + } + } + + if ( isPartStr ) { + Sizzle.filter( part, checkSet, true ); + } + } + }, + + "": function(checkSet, part, isXML){ + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); + }, + + "~": function( checkSet, part, isXML ) { + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); + } + }, + + find: { + ID: function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }, + + NAME: function( match, context ) { + if ( typeof context.getElementsByName !== "undefined" ) { + var ret = [], + results = context.getElementsByName( match[1] ); + + for ( var i = 0, l = results.length; i < l; i++ ) { + if ( results[i].getAttribute("name") === match[1] ) { + ret.push( results[i] ); + } + } + + return ret.length === 0 ? null : ret; + } + }, + + TAG: function( match, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( match[1] ); + } + } + }, + preFilter: { + CLASS: function( match, curLoop, inplace, result, not, isXML ) { + match = " " + match[1].replace( rBackslash, "" ) + " "; + + if ( isXML ) { + return match; + } + + for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { + if ( elem ) { + if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { + if ( !inplace ) { + result.push( elem ); + } + + } else if ( inplace ) { + curLoop[i] = false; + } + } + } + + return false; + }, + + ID: function( match ) { + return match[1].replace( rBackslash, "" ); + }, + + TAG: function( match, curLoop ) { + return match[1].replace( rBackslash, "" ).toLowerCase(); + }, + + CHILD: function( match ) { + if ( match[1] === "nth" ) { + if ( !match[2] ) { + Sizzle.error( match[0] ); + } + + match[2] = match[2].replace(/^\+|\s*/g, ''); + + // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' + var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( + match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || + !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); + + // calculate the numbers (first)n+(last) including if they are negative + match[2] = (test[1] + (test[2] || 1)) - 0; + match[3] = test[3] - 0; + } + else if ( match[2] ) { + Sizzle.error( match[0] ); + } + + // TODO: Move to normal caching system + match[0] = done++; + + return match; + }, + + ATTR: function( match, curLoop, inplace, result, not, isXML ) { + var name = match[1] = match[1].replace( rBackslash, "" ); + + if ( !isXML && Expr.attrMap[name] ) { + match[1] = Expr.attrMap[name]; + } + + // Handle if an un-quoted value was used + match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); + + if ( match[2] === "~=" ) { + match[4] = " " + match[4] + " "; + } + + return match; + }, + + PSEUDO: function( match, curLoop, inplace, result, not ) { + if ( match[1] === "not" ) { + // If we're dealing with a complex expression, or a simple one + if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { + match[3] = Sizzle(match[3], null, null, curLoop); + + } else { + var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); + + if ( !inplace ) { + result.push.apply( result, ret ); + } + + return false; + } + + } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { + return true; + } + + return match; + }, + + POS: function( match ) { + match.unshift( true ); + + return match; + } + }, + + filters: { + enabled: function( elem ) { + return elem.disabled === false && elem.type !== "hidden"; + }, + + disabled: function( elem ) { + return elem.disabled === true; + }, + + checked: function( elem ) { + return elem.checked === true; + }, + + selected: function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + parent: function( elem ) { + return !!elem.firstChild; + }, + + empty: function( elem ) { + return !elem.firstChild; + }, + + has: function( elem, i, match ) { + return !!Sizzle( match[3], elem ).length; + }, + + header: function( elem ) { + return (/h\d/i).test( elem.nodeName ); + }, + + text: function( elem ) { + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return "text" === elem.getAttribute( 'type' ); + }, + radio: function( elem ) { + return "radio" === elem.type; + }, + + checkbox: function( elem ) { + return "checkbox" === elem.type; + }, + + file: function( elem ) { + return "file" === elem.type; + }, + password: function( elem ) { + return "password" === elem.type; + }, + + submit: function( elem ) { + return "submit" === elem.type; + }, + + image: function( elem ) { + return "image" === elem.type; + }, + + reset: function( elem ) { + return "reset" === elem.type; + }, + + button: function( elem ) { + return "button" === elem.type || elem.nodeName.toLowerCase() === "button"; + }, + + input: function( elem ) { + return (/input|select|textarea|button/i).test( elem.nodeName ); + } + }, + setFilters: { + first: function( elem, i ) { + return i === 0; + }, + + last: function( elem, i, match, array ) { + return i === array.length - 1; + }, + + even: function( elem, i ) { + return i % 2 === 0; + }, + + odd: function( elem, i ) { + return i % 2 === 1; + }, + + lt: function( elem, i, match ) { + return i < match[3] - 0; + }, + + gt: function( elem, i, match ) { + return i > match[3] - 0; + }, + + nth: function( elem, i, match ) { + return match[3] - 0 === i; + }, + + eq: function( elem, i, match ) { + return match[3] - 0 === i; + } + }, + filter: { + PSEUDO: function( elem, match, i, array ) { + var name = match[1], + filter = Expr.filters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + + } else if ( name === "contains" ) { + return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0; + + } else if ( name === "not" ) { + var not = match[3]; + + for ( var j = 0, l = not.length; j < l; j++ ) { + if ( not[j] === elem ) { + return false; + } + } + + return true; + + } else { + Sizzle.error( name ); + } + }, + + CHILD: function( elem, match ) { + var type = match[1], + node = elem; + + switch ( type ) { + case "only": + case "first": + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + if ( type === "first" ) { + return true; + } + + node = elem; + + case "last": + while ( (node = node.nextSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + return true; + + case "nth": + var first = match[2], + last = match[3]; + + if ( first === 1 && last === 0 ) { + return true; + } + + var doneName = match[0], + parent = elem.parentNode; + + if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { + var count = 0; + + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + node.nodeIndex = ++count; + } + } + + parent.sizcache = doneName; + } + + var diff = elem.nodeIndex - last; + + if ( first === 0 ) { + return diff === 0; + + } else { + return ( diff % first === 0 && diff / first >= 0 ); + } + } + }, + + ID: function( elem, match ) { + return elem.nodeType === 1 && elem.getAttribute("id") === match; + }, + + TAG: function( elem, match ) { + return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; + }, + + CLASS: function( elem, match ) { + return (" " + (elem.className || elem.getAttribute("class")) + " ") + .indexOf( match ) > -1; + }, + + ATTR: function( elem, match ) { + var name = match[1], + result = Expr.attrHandle[ name ] ? + Expr.attrHandle[ name ]( elem ) : + elem[ name ] != null ? + elem[ name ] : + elem.getAttribute( name ), + value = result + "", + type = match[2], + check = match[4]; + + return result == null ? + type === "!=" : + type === "=" ? + value === check : + type === "*=" ? + value.indexOf(check) >= 0 : + type === "~=" ? + (" " + value + " ").indexOf(check) >= 0 : + !check ? + value && result !== false : + type === "!=" ? + value !== check : + type === "^=" ? + value.indexOf(check) === 0 : + type === "$=" ? + value.substr(value.length - check.length) === check : + type === "|=" ? + value === check || value.substr(0, check.length + 1) === check + "-" : + false; + }, + + POS: function( elem, match, i, array ) { + var name = match[2], + filter = Expr.setFilters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + } + } + } +}; + +var origPOS = Expr.match.POS, + fescape = function(all, num){ + return "\\" + (num - 0 + 1); + }; + +for ( var type in Expr.match ) { + Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); + Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); +} + +var makeArray = function( array, results ) { + array = Array.prototype.slice.call( array, 0 ); + + if ( results ) { + results.push.apply( results, array ); + return results; + } + + return array; +}; + +// Perform a simple check to determine if the browser is capable of +// converting a NodeList to an array using builtin methods. +// Also verifies that the returned array holds DOM nodes +// (which is not the case in the Blackberry browser) +try { + Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; + +// Provide a fallback method if it does not work +} catch( e ) { + makeArray = function( array, results ) { + var i = 0, + ret = results || []; + + if ( toString.call(array) === "[object Array]" ) { + Array.prototype.push.apply( ret, array ); + + } else { + if ( typeof array.length === "number" ) { + for ( var l = array.length; i < l; i++ ) { + ret.push( array[i] ); + } + + } else { + for ( ; array[i]; i++ ) { + ret.push( array[i] ); + } + } + } + + return ret; + }; +} + +var sortOrder, siblingCheck; + +if ( document.documentElement.compareDocumentPosition ) { + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { + return a.compareDocumentPosition ? -1 : 1; + } + + return a.compareDocumentPosition(b) & 4 ? -1 : 1; + }; + +} else { + sortOrder = function( a, b ) { + var al, bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; + + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // If the nodes are siblings (or identical) we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + + // If no parents were found then the nodes are disconnected + } else if ( !aup ) { + return -1; + + } else if ( !bup ) { + return 1; + } + + // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + while ( cur ) { + ap.unshift( cur ); + cur = cur.parentNode; + } + + cur = bup; + + while ( cur ) { + bp.unshift( cur ); + cur = cur.parentNode; + } + + al = ap.length; + bl = bp.length; + + // Start walking down the tree looking for a discrepancy + for ( var i = 0; i < al && i < bl; i++ ) { + if ( ap[i] !== bp[i] ) { + return siblingCheck( ap[i], bp[i] ); + } + } + + // We ended someplace up the tree so do a sibling check + return i === al ? + siblingCheck( a, bp[i], -1 ) : + siblingCheck( ap[i], b, 1 ); + }; + + siblingCheck = function( a, b, ret ) { + if ( a === b ) { + return ret; + } + + var cur = a.nextSibling; + + while ( cur ) { + if ( cur === b ) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; + }; +} + +// Utility function for retreiving the text value of an array of DOM nodes +Sizzle.getText = function( elems ) { + var ret = "", elem; + + for ( var i = 0; elems[i]; i++ ) { + elem = elems[i]; + + // Get the text from text nodes and CDATA nodes + if ( elem.nodeType === 3 || elem.nodeType === 4 ) { + ret += elem.nodeValue; + + // Traverse everything else, except comment nodes + } else if ( elem.nodeType !== 8 ) { + ret += Sizzle.getText( elem.childNodes ); + } + } + + return ret; +}; + +// Check to see if the browser returns elements by name when +// querying by getElementById (and provide a workaround) +(function(){ + // We're going to inject a fake input element with a specified name + var form = document.createElement("div"), + id = "script" + (new Date()).getTime(), + root = document.documentElement; + + form.innerHTML = ""; + + // Inject it into the root element, check its status, and remove it quickly + root.insertBefore( form, root.firstChild ); + + // The workaround has to do additional checks after a getElementById + // Which slows things down for other browsers (hence the branching) + if ( document.getElementById( id ) ) { + Expr.find.ID = function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + + return m ? + m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? + [m] : + undefined : + []; + } + }; + + Expr.filter.ID = function( elem, match ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + + return elem.nodeType === 1 && node && node.nodeValue === match; + }; + } + + root.removeChild( form ); + + // release memory in IE + root = form = null; +})(); + +(function(){ + // Check to see if the browser returns only elements + // when doing getElementsByTagName("*") + + // Create a fake element + var div = document.createElement("div"); + div.appendChild( document.createComment("") ); + + // Make sure no comments are found + if ( div.getElementsByTagName("*").length > 0 ) { + Expr.find.TAG = function( match, context ) { + var results = context.getElementsByTagName( match[1] ); + + // Filter out possible comments + if ( match[1] === "*" ) { + var tmp = []; + + for ( var i = 0; results[i]; i++ ) { + if ( results[i].nodeType === 1 ) { + tmp.push( results[i] ); + } + } + + results = tmp; + } + + return results; + }; + } + + // Check to see if an attribute returns normalized href attributes + div.innerHTML = ""; + + if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && + div.firstChild.getAttribute("href") !== "#" ) { + + Expr.attrHandle.href = function( elem ) { + return elem.getAttribute( "href", 2 ); + }; + } + + // release memory in IE + div = null; +})(); + +if ( document.querySelectorAll ) { + (function(){ + var oldSizzle = Sizzle, + div = document.createElement("div"), + id = "__sizzle__"; + + div.innerHTML = "

"; + + // Safari can't handle uppercase or unicode characters when + // in quirks mode. + if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { + return; + } + + Sizzle = function( query, context, extra, seed ) { + context = context || document; + + // Only use querySelectorAll on non-XML documents + // (ID selectors don't work in non-HTML documents) + if ( !seed && !Sizzle.isXML(context) ) { + // See if we find a selector to speed up + var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); + + if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { + // Speed-up: Sizzle("TAG") + if ( match[1] ) { + return makeArray( context.getElementsByTagName( query ), extra ); + + // Speed-up: Sizzle(".CLASS") + } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { + return makeArray( context.getElementsByClassName( match[2] ), extra ); + } + } + + if ( context.nodeType === 9 ) { + // Speed-up: Sizzle("body") + // The body element only exists once, optimize finding it + if ( query === "body" && context.body ) { + return makeArray( [ context.body ], extra ); + + // Speed-up: Sizzle("#ID") + } else if ( match && match[3] ) { + var elem = context.getElementById( match[3] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id === match[3] ) { + return makeArray( [ elem ], extra ); + } + + } else { + return makeArray( [], extra ); + } + } + + try { + return makeArray( context.querySelectorAll(query), extra ); + } catch(qsaError) {} + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + var oldContext = context, + old = context.getAttribute( "id" ), + nid = old || id, + hasParent = context.parentNode, + relativeHierarchySelector = /^\s*[+~]/.test( query ); + + if ( !old ) { + context.setAttribute( "id", nid ); + } else { + nid = nid.replace( /'/g, "\\$&" ); + } + if ( relativeHierarchySelector && hasParent ) { + context = context.parentNode; + } + + try { + if ( !relativeHierarchySelector || hasParent ) { + return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); + } + + } catch(pseudoError) { + } finally { + if ( !old ) { + oldContext.removeAttribute( "id" ); + } + } + } + } + + return oldSizzle(query, context, extra, seed); + }; + + for ( var prop in oldSizzle ) { + Sizzle[ prop ] = oldSizzle[ prop ]; + } + + // release memory in IE + div = null; + })(); +} + +(function(){ + var html = document.documentElement, + matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector, + pseudoWorks = false; + + try { + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( document.documentElement, "[test!='']:sizzle" ); + + } catch( pseudoError ) { + pseudoWorks = true; + } + + if ( matches ) { + Sizzle.matchesSelector = function( node, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); + + if ( !Sizzle.isXML( node ) ) { + try { + if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { + return matches.call( node, expr ); + } + } catch(e) {} + } + + return Sizzle(expr, null, null, [node]).length > 0; + }; + } +})(); + +(function(){ + var div = document.createElement("div"); + + div.innerHTML = "
"; + + // Opera can't find a second classname (in 9.6) + // Also, make sure that getElementsByClassName actually exists + if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { + return; + } + + // Safari caches class attributes, doesn't catch changes (in 3.2) + div.lastChild.className = "e"; + + if ( div.getElementsByClassName("e").length === 1 ) { + return; + } + + Expr.order.splice(1, 0, "CLASS"); + Expr.find.CLASS = function( match, context, isXML ) { + if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { + return context.getElementsByClassName(match[1]); + } + }; + + // release memory in IE + div = null; +})(); + +function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 && !isXML ){ + elem.sizcache = doneName; + elem.sizset = i; + } + + if ( elem.nodeName.toLowerCase() === cur ) { + match = elem; + break; + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 ) { + if ( !isXML ) { + elem.sizcache = doneName; + elem.sizset = i; + } + + if ( typeof cur !== "string" ) { + if ( elem === cur ) { + match = true; + break; + } + + } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { + match = elem; + break; + } + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +if ( document.documentElement.contains ) { + Sizzle.contains = function( a, b ) { + return a !== b && (a.contains ? a.contains(b) : true); + }; + +} else if ( document.documentElement.compareDocumentPosition ) { + Sizzle.contains = function( a, b ) { + return !!(a.compareDocumentPosition(b) & 16); + }; + +} else { + Sizzle.contains = function() { + return false; + }; +} + +Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +var posProcess = function( selector, context ) { + var match, + tmpSet = [], + later = "", + root = context.nodeType ? [context] : context; + + // Position selectors must be done after the filter + // And so must :not(positional) so we move all PSEUDOs to the end + while ( (match = Expr.match.PSEUDO.exec( selector )) ) { + later += match[0]; + selector = selector.replace( Expr.match.PSEUDO, "" ); + } + + selector = Expr.relative[selector] ? selector + "*" : selector; + + for ( var i = 0, l = root.length; i < l; i++ ) { + Sizzle( selector, root[i], tmpSet ); + } + + return Sizzle.filter( later, tmpSet ); +}; + +// EXPOSE +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.filters; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})(); + + +var runtil = /Until$/, + rparentsprev = /^(?:parents|prevUntil|prevAll)/, + // Note: This RegExp should be improved, or likely pulled from Sizzle + rmultiselector = /,/, + isSimple = /^.[^:#\[\.,]*$/, + slice = Array.prototype.slice, + POS = jQuery.expr.match.POS, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var ret = this.pushStack( "", "find", selector ), + length = 0; + + for ( var i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( var n = length; n < ret.length; n++ ) { + for ( var r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }, + + has: function( target ) { + var targets = jQuery( target ); + return this.filter(function() { + for ( var i = 0, l = targets.length; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false), "not", selector); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }, + + is: function( selector ) { + return !!selector && jQuery.filter( selector, this ).length > 0; + }, + + closest: function( selectors, context ) { + var ret = [], i, l, cur = this[0]; + + if ( jQuery.isArray( selectors ) ) { + var match, selector, + matches = {}, + level = 1; + + if ( cur && selectors.length ) { + for ( i = 0, l = selectors.length; i < l; i++ ) { + selector = selectors[i]; + + if ( !matches[selector] ) { + matches[selector] = jQuery.expr.match.POS.test( selector ) ? + jQuery( selector, context || this.context ) : + selector; + } + } + + while ( cur && cur.ownerDocument && cur !== context ) { + for ( selector in matches ) { + match = matches[selector]; + + if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) { + ret.push({ selector: selector, elem: cur, level: level }); + } + } + + cur = cur.parentNode; + level++; + } + } + + return ret; + } + + var pos = POS.test( selectors ) ? + jQuery( selectors, context || this.context ) : null; + + for ( i = 0, l = this.length; i < l; i++ ) { + cur = this[i]; + + while ( cur ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + + } else { + cur = cur.parentNode; + if ( !cur || !cur.ownerDocument || cur === context ) { + break; + } + } + } + } + + ret = ret.length > 1 ? jQuery.unique(ret) : ret; + + return this.pushStack( ret, "closest", selectors ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + if ( !elem || typeof elem === "string" ) { + return jQuery.inArray( this[0], + // If it receives a string, the selector is used + // If it receives nothing, the siblings are used + elem ? jQuery( elem ) : this.parent().children() ); + } + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }, + + andSelf: function() { + return this.add( this.prevObject ); + } +}); + +// A painfully simple check to see if an element is disconnected +// from a document (should be improved, where feasible). +function isDisconnected( node ) { + return !node || !node.parentNode || node.parentNode.nodeType === 11; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return jQuery.nth( elem, 2, "nextSibling" ); + }, + prev: function( elem ) { + return jQuery.nth( elem, 2, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( elem.parentNode.firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.makeArray( elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + nth: function( cur, result, dir, elem ) { + result = result || 1; + var num = 0; + + for ( ; cur; cur = cur[dir] ) { + if ( cur.nodeType === 1 && ++num === result ) { + break; + } + } + + return cur; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem, i ) { + return (elem === qualifier) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem, i ) { + return (jQuery.inArray( elem, qualifier ) >= 0) === keep; + }); +} + + + + +var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + rtagName = /<([\w:]+)/, + rtbody = /", "" ], + legend: [ 1, "
", "
" ], + thead: [ 1, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + col: [ 2, "", "
" ], + area: [ 1, "", "" ], + _default: [ 0, "", "" ] + }; + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// IE can't serialize and + + + + +
+
+ DataTables with column rendering +
+ +

Preamble

+

Each column has an optional rendering control called mRender which can be used to process the content of each cell before the data is used. mRender has a wide array of options available to it for rendering different types of data (sorting, filtering, display etc), but it can be used very simply to manipulate the content of a cell, as shown here.

+

This example shows the rendering engine version combined with the rendering engine name in the first column, hiding the version column. This technique can be useful for adding links, assigning colours based on content rules and any other form of text manipulation you require.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet Explorer 4.0Win 95+4X
TridentInternet Explorer 5.0Win 95+5C
TridentInternet Explorer 5.5Win 95+5.5A
TridentInternet Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"aoColumnDefs": [ 
+			{
+				// `data` refers to the data for the cell (defined by `mData`, which
+				// defaults to the column being worked with, in this case is the first
+				// Using `row[0]` is equivalent.
+				"mRender": function ( data, type, row ) {
+					return data +' '+ row[3];
+				},
+				"aTargets": [ 0 ]
+			},
+			{ "bVisible": false,  "aTargets": [ 3 ] },
+			{ "sClass": "center", "aTargets": [ 4 ] }
+		]
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/complex_header.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/complex_header.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,615 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables complex header example (rowspan and colspan) +
+ +

Preamble

+

Complex headers (using colspan / rowspan) can be used to group columns of similar information in DataTables, creating a very powerful visual effect. In addition to the basic behaviour, DataTables can also take colspan and rowspans into account when working with hidden columns. The colspan and rowspan attributes for each cell are automatically calculated and rendered on the page for you. This also allows the ColVis extra for DataTables to work great with hidden columns.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserDetails
Platform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Details
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"aoColumnDefs": [
+			{ "bVisible": false, "aTargets": [2] }
+		]
+	} );
+} );
+ + + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/defaults.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/defaults.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,612 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables - setting defaults example +
+ +

Preamble

+

When working with DataTables over multiple pages it is often useful to set the initialisation defaults to common values (for example you might want to set sDom to a common value so all tables get the same layout). This can be done using the $.fn.dataTable.defaults object. This object will take all the same parameters as the DataTables initialisation object, but in this case you are setting the default for all future initialisations of DataTables.

+ +

This example shows the filtering and sorting features of DataTables being disabled by default, which is reflected in the table when it is initialised, as can be seen below.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+ 4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$.extend( $.fn.dataTable.defaults, {
+		"bFilter": false,
+		"bSort": false
+	} );
+
+	$('#example').dataTable();
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/dom_multiple_elements.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/dom_multiple_elements.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,611 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables DOM positioning - multiple instances example +
+ +

Preamble

+

As is described by the basic DOM positioning example you can use the sDom initialisation parameter to move DataTables features around the table to where you want them. However you can also use sDom to create multiple instances of these table controls. Simply include the feature's identification letter where you want it to appear, as many times as you wish, and the controls will all sync up.

+

This is shown in the demo below where for four key build-in features are duplicated above and below the table. Note that obviously the table ('t') should be included only once.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Trident + Internet + Explorer + 4.0 + Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"sDom": '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>'
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/dom_toolbar.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/dom_toolbar.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,616 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables Custom DOM additions +
+ +

Preamble

+

DataTables inserts DOM elements around the table to control DataTables features, and you can make use of this mechanism as well to insert your own custom elements. In this example a DIV with a class of 'toolbar' is created using sDom, and then HTML is inserted into the created DIV once the table has been initialised. You could put whatever HTML you want into the toolbar and add event handlers etc.

+

For more complex DOM manipulation around the table, you might want to consider making use of DataTables feature plug-in API, which is used for TableTools and other DataTables plug-ins.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Trident + Internet + Explorer + 4.0 + Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"sDom": '<"toolbar">frtip'
+	} );
+	$("div.toolbar").html('Custom tool bar! Text/images etc.');
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/dt_events.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/dt_events.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,622 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables | events example +
+ +

Preamble

+

DataTables can fire a number of custom events which you can bind to, allowing your code to perform custom actions when the events occured. This example shows the use of the sort, filter and page events and will add a nitofication that the event fired to an element on the page to show that they have indeed fired.

+ +

Live example

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+ 4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
function eventFired( type ) {
+	var n = document.getElementById('demo_info');
+	n.innerHTML += '<:div>:'+type+' event - '+new Date().getTime()+'<:/div>:';
+	n.scrollTop = n.scrollHeight;		
+}
+
+$(document).ready(function() {
+	$('#example')
+		.bind('sort',   function () { eventFired( 'Sort' ); })
+		.bind('filter', function () { eventFired( 'Filter' ); })
+		.bind('page',   function () { eventFired( 'Page' ); })
+		.dataTable();
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/events_live.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/events_live.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,644 @@ + + + + + + + DataTables example + + + + + + + +
+
+ DataTables - live events example +
+ +

Preamble

+

Events assigned to the table can be exceptionally useful for user interaction, however you must be aware that DataTables will add and remove rows from the DOM as they are needed (i.e. when paging only the visible elements are actually available in the DOM). As such, this can lead to the odd hiccup when working with events. One of the best ways of dealing with this is through the use of live events, as shown in this example.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer + 4.0 + Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	/* Init DataTables */
+	$('#example').dataTable();
+	
+	/* Add events */
+	$('#example tbody tr').live('click', function () {
+		var sTitle;
+		var nTds = $('td', this);
+		var sBrowser = $(nTds[1]).text();
+		var sGrade = $(nTds[4]).text();
+		
+		if ( sGrade == "A" )
+			sTitle =  sBrowser+' will provide a first class (A) level of CSS support.';
+		else if ( sGrade == "C" )
+			sTitle = sBrowser+' will provide a core (C) level of CSS support.';
+		else if ( sGrade == "X" )
+			sTitle = sBrowser+' does not provide CSS support or has a broken implementation. Block CSS.';
+		else
+			sTitle = sBrowser+' will provide an undefined level of CSS support.';
+		
+		alert( sTitle )
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/events_post_init.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/events_post_init.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,667 @@ + + + + + + + DataTables example + + + + + + + +
+
+ DataTables events (post-initialisation) example +
+ +

Preamble

+

Events which are assigned to the table elements are retained by DataTables such that they will still work as you would expect, even after changing the sort order etc. (no need to reapply the event handlers). You can do this at any time, although if you apply the handlers after the table has been initialised there is an extra set. Rather then querying the DOM to get all rows (since they aren't there) you can use the '$' API method that DataTables provides which does a jQuery selector on the whole table and returns a jQuery object.

+

This example shows the tooltip plug-in being applied to the table after initialisation.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer + 4.0 + Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	/*
+	 * First step is to create title attributes for the rows in the table
+	 * This isn't needed if the required 'title' attribute is already set in the HTML in the
+	 * DOM 
+	 */
+	$('#example tbody tr').each( function() {
+		var sTitle;
+		var nTds = $('td', this);
+		var sBrowser = $(nTds[1]).text();
+		var sGrade = $(nTds[4]).text();
+		
+		if ( sGrade == "A" )
+			sTitle =  sBrowser+' will provide a first class (A) level of CSS support.';
+		else if ( sGrade == "C" )
+			sTitle = sBrowser+' will provide a core (C) level of CSS support.';
+		else if ( sGrade == "X" )
+			sTitle = sBrowser+' does not provide CSS support or has a broken implementation. Block CSS.';
+		else
+			sTitle = sBrowser+' will provide an undefined level of CSS support.';
+		
+		this.setAttribute( 'title', sTitle );
+	} );
+	
+	/* Init DataTables */
+	var oTable = $('#example').dataTable();
+	
+	/* Apply the tooltips */
+	oTable.$('tr').tooltip( {
+		"delay": 0,
+		"track": true,
+		"fade": 250
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/events_pre_init.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/events_pre_init.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,666 @@ + + + + + + + DataTables example + + + + + + + +
+
+ DataTables events (pre-initialisation) example +
+ +

Preamble

+

Events which are assigned to the table elements are retained by DataTables such that they will still work as you would expect, even after changing the sort order etc. (no need to reapply the event handlers). If you apply the event handlers before you initialise DataTables, you just do this in the normal way. This is shown in this example where the call $('#example tbody tr[title]').tooltip(); is made before the table is initialised.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer + 4.0 + Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	/*
+	 * First step is to create title attributes for the rows in the table
+	 * This isn't needed if the required 'title' attribute is already set in the HTML in the
+	 * DOM 
+	 */
+	$('#example tbody tr').each( function() {
+		var sTitle;
+		var nTds = $('td', this);
+		var sBrowser = $(nTds[1]).text();
+		var sGrade = $(nTds[4]).text();
+		
+		if ( sGrade == "A" )
+			sTitle =  sBrowser+' will provide a first class (A) level of CSS support.';
+		else if ( sGrade == "C" )
+			sTitle = sBrowser+' will provide a core (C) level of CSS support.';
+		else if ( sGrade == "X" )
+			sTitle = sBrowser+' does not provide CSS support or has a broken implementation. Block CSS.';
+		else
+			sTitle = sBrowser+' will provide an undefined level of CSS support.';
+		
+		this.setAttribute( 'title', sTitle );
+	} );
+	
+	/* Apply the tooltips */
+	$('#example tbody tr[title]').tooltip( {
+		"delay": 0,
+		"track": true,
+		"fade": 250
+	} );
+	
+	/* Init DataTables */
+	$('#example').dataTable();
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/footer_callback.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/footer_callback.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,650 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables footer callback example +
+ +

Preamble

+

DataTables using the header and footer callback manipulation functions (fnHeaderCallback() and fnFooterCallback()) you can perform some powerful and useful data manipulation. The example given below shows how a callback function can be used to total up visible (and hidden) data, taking into account all of DataTable's features (pagination, filtering etc).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserEngine versionCSS gradeMarket share (%)
Trident + Internet + Explorer + 4.0 + 4X0.01
TridentInternet + Explorer 5.05C0.1
TridentInternet + Explorer 5.55.5A0.5
TridentInternet + Explorer 66A36
TridentInternet Explorer 77A41
TridentAOL browser (AOL desktop)6A1
GeckoFirefox 1.01.7A0.1
GeckoFirefox 1.51.8A0.5
GeckoFirefox 2.01.8A7
GeckoFirefox 3.01.9A9
GeckoCamino 1.01.8A0.01
GeckoCamino 1.51.8A0.01
GeckoNetscape 7.21.7A0.01
GeckoNetscape Browser 81.7A0.01
GeckoNetscape Navigator 91.8A0.01
GeckoMozilla 1.01A0.01
GeckoMozilla 1.11.1A0.01
GeckoMozilla 1.21.2A0.01
GeckoMozilla 1.31.3A0.01
GeckoMozilla 1.41.4A0.01
GeckoMozilla 1.51.5A0.01
GeckoMozilla 1.61.6A0.01
GeckoMozilla 1.71.7A0.01
GeckoMozilla 1.81.8A0.01
GeckoSeamonkey 1.11.8A0.01
GeckoEpiphany 2.201.8A0.01
WebkitSafari 1.2125.5A0.01
WebkitSafari 1.3312.8A0.01
WebkitSafari 2.0419.3A1
WebkitSafari 3.0522.1A2.2
WebkitOmniWeb 5.5420A0.01
WebkitiPod Touch / iPhone420.1A0.05
WebkitS60413A0.01
PrestoOpera 7.0-A0.01
PrestoOpera 7.5-A0.01
PrestoOpera 8.0-A0.01
PrestoOpera 8.5-A0.01
PrestoOpera 9.0-A0.1
PrestoOpera 9.2-A0.2
PrestoOpera 9.5-A0.8
PrestoOpera for Wii-A0.01
PrestoNokia N800-A0.01
PrestoNintendo DS browser8.5C/A10.01
KHTMLKonqureror 3.13.1C0.01
KHTMLKonqureror 3.33.3A0.01
KHTMLKonqureror 3.53.5A0.01
TasmanInternet Explorer 4.5-X0.01
TasmanInternet Explorer 5.11C0.01
TasmanInternet Explorer 5.21C0.01
MiscNetFront 3.1-C0.01
MiscNetFront 3.4-A0.01
MiscDillo 0.8-X0.01
MiscLinks-X0.01
MiscLynx-X0.01
MiscIE Mobile-C0.01
MiscPSP browser-C0.01
Other browsersAll others-U0.04
Total:
+
+
+ +

Warning! The market share information given in this table is fabricated using a combination of (mild) judgement, the BBC Browser Statistics information and statistics from TheCounter.com. THe lowest usage given to anyone browser is 0.01 for reasons of this example.

+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {
+			/*
+			 * Calculate the total market share for all browsers in this table (ie inc. outside
+			 * the pagination)
+			 */
+			var iTotalMarket = 0;
+			for ( var i=0 ; i<aaData.length ; i++ )
+			{
+				iTotalMarket += aaData[i][4]*1;
+			}
+			
+			/* Calculate the market share for browsers on this page */
+			var iPageMarket = 0;
+			for ( var i=iStart ; i<iEnd ; i++ )
+			{
+				iPageMarket += aaData[ aiDisplay[i] ][4]*1;
+			}
+			
+			/* Modify the footer row to match what we want */
+			var nCells = nRow.getElementsByTagName('th');
+			nCells[1].innerHTML = parseInt(iPageMarket * 100)/100 +
+				'% ('+ parseInt(iTotalMarket * 100)/100 +'% total)';
+		}
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/highlight.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/highlight.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,643 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables highlighting via CSS example +
+ +

Preamble

+

When highlighting rows using CSS :hover, you need to be aware of the sorting class which is applied to elements in the column currently being sorted (assuming it is enabled - it is by default). This example shows how to consider this in CSS, with highlighting for each row, and a little tint for the sorting column to maintain it's visibility as the column currently being sorted upon.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+

Javascript:

+
$(document).ready(function() {
+	$('#example').dataTable();
+} );
+ + + +

CSS (note that for this example the selector ".ex_highlight" is used to limit the CSS here to just this example.

+
.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted {
+	background-color: #ECFFB3;
+}
+
+.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted {
+	background-color: #E6FF99;
+}
+
+.ex_highlight_row #example tr.even:hover {
+	background-color: #ECFFB3;
+}
+
+.ex_highlight_row #example tr.even:hover td.sorting_1 {
+	background-color: #DDFF75;
+}
+
+.ex_highlight_row #example tr.even:hover td.sorting_2 {
+	background-color: #E7FF9E;
+}
+
+.ex_highlight_row #example tr.even:hover td.sorting_3 {
+	background-color: #E2FF89;
+}
+
+.ex_highlight_row #example tr.odd:hover {
+	background-color: #E6FF99;
+}
+
+.ex_highlight_row #example tr.odd:hover td.sorting_1 {
+	background-color: #D6FF5C;
+}
+
+.ex_highlight_row #example tr.odd:hover td.sorting_2 {
+	background-color: #E0FF84;
+}
+
+.ex_highlight_row #example tr.odd:hover td.sorting_3 {
+	background-color: #DBFF70;
+}
+
+ + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/html_sort.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/html_sort.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,197 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables HTML sorting example +
+ +

Preamble

+

DataTables will attempt to automatically detect the data types that your table contains, allowing it to accurately sort and filter this data. This example shows automatic type detection of HTML information - note that the sorting is correct on the second column for the visible information. Additional data types can be added through plug-ins. +

Note that prior to DataTables 1.7 the HTML type was not automatically detected, and it was necessary to specify the sType for the column - this is now not needed as seen in this example. If you do want to be able to sort and filter on the HTML information you can specify the sType for the column as 'string'.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + +
ReflectionLink
DataTablesDataTables
IntegrityA link to Integrity
IntegrityIntegrity
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable();
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/language_file.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/language_file.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,608 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables language file example +
+ +

Preamble

+

As well as being able to pass language information to DataTables through the initialisation object, you can also store the language information in a file, which DataTables will then read. Useful if you are using server-side processes to switch language. The following example shows DataTables reading a German language file.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"oLanguage": {
+			"sUrl": "media/language/de_DE.txt"
+		}
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/length_menu.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/length_menu.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,604 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables defining the length menu example +
+ +

Preamble

+

It is possible to easily customise the options shown in the length menu (by default at the top left of the table) using the aLengthMenu initialisation option. This parameter is either a 1D array of options which will be used for both the displayed option and the value, or a 2D array (shown in this example) which will use the array in the first position as the value, and the array in the second position as the displayed options (useful for language strings such as 'All').

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/localstorage.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/localstorage.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,612 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables - state saving with localStorage +
+ +

Preamble

+

The state saving storage method that is built into DataTables makes use of cookies for compatibility with all browsers. However, cookies have a number of disadvantagies such as requiring increased HTTP bandwidth and a 4K limit. The W3C Web Storage specification defines localStorage as a local storage method which we can use in DataTables to store state without the inherent issues in using cookies.

+

This example shows the use of fnStateSave and fnStateLoad to very simply store the table state in localStorage and then load it back again when needed.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"bStateSave": true
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/row_callback.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/row_callback.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,624 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables example with row callback +
+ +

Preamble

+

The following example shows how a callback function can be used to format a particular row at draw time. For each row that is generated for display, the fnRowCallback() function is called. It is passed the row node which can then be modified. In this case a trivial example of making the 'grade' column bold if the grade is 'A' is shown (note that this could also be performed using mData as a function, but this is just for example of fnRowCallback!).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
+			/* Append the grade to the default row class name */
+			if ( aData[4] == "A" )
+			{
+				$('td:eq(4)', nRow).html( '<b>A</b>' );
+			}
+		},
+		"aoColumnDefs": [ {
+				"sClass": "center",
+				"aTargets": [ -1, -2 ]
+		} ]
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/row_grouping.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/row_grouping.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,661 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables row grouping example +
+ +

Preamble

+

Although DataTables doesn't have row grouping built-in (picking one of the many methods available would overly limit the plug-in it was felt), it is most certainly possible to give the look and feel of row grouping. In the example below the 'group' is the browser engine, which is based on the information in the first column (set to hidden). The grouping indicator is added by the fnDrawCallback function, which will parse through the rows which are displayed, and enter a TR element where a new group is found.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	oTable = $('#example').dataTable({
+		"fnDrawCallback": function ( oSettings ) {
+			if ( oSettings.aiDisplay.length == 0 )
+			{
+				return;
+			}
+			
+			var nTrs = $('#example tbody tr');
+			var iColspan = nTrs[0].getElementsByTagName('td').length;
+			var sLastGroup = "";
+			for ( var i=0 ; i<nTrs.length ; i++ )
+			{
+				var iDisplayIndex = oSettings._iDisplayStart + i;
+				var sGroup = oSettings.aoData[ oSettings.aiDisplay[iDisplayIndex] ]._aData[0];
+				if ( sGroup != sLastGroup )
+				{
+					var nGroup = document.createElement( 'tr' );
+					var nCell = document.createElement( 'td' );
+					nCell.colSpan = iColspan;
+					nCell.className = "group";
+					nCell.innerHTML = sGroup;
+					nGroup.appendChild( nCell );
+					nTrs[i].parentNode.insertBefore( nGroup, nTrs[i] );
+					sLastGroup = sGroup;
+				}
+			}
+		},
+		"aoColumnDefs": [
+			{ "bVisible": false, "aTargets": [ 0 ] }
+		],
+		"aaSortingFixed": [[ 0, 'asc' ]],
+		"aaSorting": [[ 1, 'asc' ]],
+		"sDom": 'lfr<"giveHeight"t>ip'
+	});
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/advanced_init/sorting_control.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/advanced_init/sorting_control.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,625 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables sorting direction control example +
+ +

Preamble

+

At times you may wish to change the default sorting direction for columns (all or some of them) to be 'descending' rather than DataTables' default ascending. This can be done through the use of the aoColumns[].asSorting initialisation parameter. This parameter also allows you to limit the sorting to a single direction, or you could add complex behaviour to the sorting interaction.

+

The example below shows:

+
    +
  • Column 1 - default sorting
  • +
  • Column 2 - ascending sorting only
  • +
  • Column 3 - descending sorting, followed by ascending and then ascending again
  • +
  • Column 4 - descending sorting only
  • +
  • Column 5 - default sorting
  • +
+

It's worth noting that I don't have a good use case for when you might what to use the complex behaviour that is possible with this, but it is there should you want to use it!

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"aoColumns": [
+			null,
+			{ "asSorting": [ "asc" ] },
+			{ "asSorting": [ "desc", "asc", "asc" ] },
+			{ "asSorting": [ "desc" ] },
+			null
+		]
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/ajax.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/ajax.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,208 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables AJAX source example +
+ +

Preamble

+

Although DataTables is built from the principle of progressive enhancement, it is often useful to be able to construct a table from an AJAX source. This can be done in one of two ways - either using the aData initialisation parameter which takes an array of data, or using the sAjaxSource initialisation parameter which will have DataTables go to that source with an XHR call and load data from there. This example shows the latter method in action. DataTables expects an object with an array called "aaData" with the data source.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"bProcessing": true,
+		"sAjaxSource": "sources/arrays.txt"
+	} );
+} );
+ + + +

Server response

+

The code below shows the latest JSON data that has been returned from the server in response to the Ajax request made by DataTables. This will update as further requests are made.

+

+			
+			
+			

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/custom_data_property.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/custom_data_property.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,210 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables AJAX source example - reading an arbitrary data source property +
+ +

Preamble

+

By default DataTables will read the data to show in the table from the aaData property of the object returned from the server. By using the initialisation option sAjaxDataProp you can customise this to whatever you wish. This examples shows it being set to 'demo'. Note that this option will also work with server-side processing. Additionally, it is possible to set sAjaxDataProp to be an empty string, which results in DataTables treating the given data source as the table data array (rather than as property of an object).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"bProcessing": true,
+		"sAjaxSource": "sources/custom_prop.txt",
+		"sAjaxDataProp": "demo"
+	} );
+} );
+ + + +

Server response

+

The code below shows the latest JSON data that has been returned from the server in response to the Ajax request made by DataTables. This will update as further requests are made.

+

+			
+			
+			

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/deep.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/deep.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,222 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables AJAX source example - deep property reading for a data source +
+ +

Preamble

+

The ability of DataTables to read arbitrary object properties as a column data source is extended to n levels of objects, through the use of standard Javascript dotted object notation. For example in this example "platform.details.0" refers to the first element of the array "details", of the object "platform", for each column. Any level of 'dots' can be used.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	var oTable = $('#example').dataTable( {
+		"bProcessing": true,
+		"sAjaxSource": "sources/deep.txt",
+		"aoColumns": [
+			{ "mData": "engine" },
+			{ "mData": "browser" },
+			{ "mData": "platform.inner" },
+			{ "mData": "platform.details.0" },
+			{ "mData": "platform.details.1" }
+		]
+	} );
+} );
+ + + +

Server response

+

The code below shows the latest JSON data that has been returned from the server in response to the Ajax request made by DataTables. This will update as further requests are made.

+

+			
+			
+			

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/defer_render.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/defer_render.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,210 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables AJAX source example - with deferred rendering +
+ +

Preamble

+

When working with large data sources, you might seek to improve the speed at which DataTables runs. One method to do this is to make use of the build in deferred rendering. Rather than have DataTables create all TR and TD nodes required for the table when the data is loaded, when deferred rendering is enabled, DataTables will only create the nodes required for each individual display - these nodes are then retained incase they are needed again. This can give a significant performance increase, since a lot less work is done at initialisation time.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"bProcessing": true,
+		"sAjaxSource": "sources/arrays.txt",
+		"bDeferRender": true
+	} );
+} );
+ + + +

Server response

+

The code below shows the latest JSON data that has been returned from the server in response to the Ajax request made by DataTables. This will update as further requests are made.

+

+			
+			
+			

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/null_data_source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/null_data_source.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,214 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables AJAX source example - null data source for a column +
+ +

Preamble

+

In some tables it can be useful to not need to specify any data source for a column, as it's content is automatically generated (for example using fnRender). This is fairly common with add, edit and delete columns for a CRUD interface. You can now use the mData set to null to specify that the column has no data source. DataTables will render this column as empty.

+ +

Live example

+
+ + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS gradeEmpty!
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	var oTable = $('#example').dataTable( {
+		"bProcessing": true,
+		"sAjaxSource": "sources/arrays.txt",
+		"aoColumns": [
+			null,
+			null,
+			null,
+			null,
+			null,
+			{ "mData": null }
+		]
+	} );
+} );
+ + + +

Server response

+

The code below shows the latest JSON data that has been returned from the server in response to the Ajax request made by DataTables. This will update as further requests are made.

+

+			
+			
+			

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/objects.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/objects.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,222 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables AJAX source example - array of objects as a data source +
+ +

Preamble

+

By default, DataTables will expect an array of arrays for its data source, with each cell in the table being exactly described in the data source. However, this can often be quite limiting, or not suitable for a particular data source, so it is possible to specify which property of a source object that DataTables should read for each column. In this example the Ajax source returns an array of objects (one object for each row), and will then read the required property for each column.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	var oTable = $('#example').dataTable( {
+		"bProcessing": true,
+		"sAjaxSource": "sources/objects.txt",
+		"aoColumns": [
+			{ "mData": "engine" },
+			{ "mData": "browser" },
+			{ "mData": "platform" },
+			{ "mData": "version" },
+			{ "mData": "grade" }
+		]
+	} );
+} );
+ + + +

Server response

+

The code below shows the latest JSON data that has been returned from the server in response to the Ajax request made by DataTables. This will update as further requests are made.

+

+			
+			
+			

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/objects_subarrays.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/objects_subarrays.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,222 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables AJAX source example - array of objects with sub-arrays as a data source +
+ +

Preamble

+

While the ability of DataTables to read arbitrary objects properties as a data source for any column is very powerful, it actually goes further than single level object properties; it is possible to read a data source for a column from a deeply nested array or property. This is specified in typical Javascript dotted object notation. For example "details.0" (used in this example) refers to the first property in an array called "details". "details.1" refers to the second property, etc. Object properties can also be used - for example "details.version" is perfectly valid, if that property is available in your data source.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	var oTable = $('#example').dataTable( {
+		"bProcessing": true,
+		"sAjaxSource": "sources/objects_subarrays.txt",
+		"aoColumns": [
+			{ "mData": "engine" },
+			{ "mData": "browser" },
+			{ "mData": "platform" },
+			{ "mData": "details.0" },
+			{ "mData": "details.1" }
+		]
+	} );
+} );
+ + + +

Server response

+

The code below shows the latest JSON data that has been returned from the server in response to the Ajax request made by DataTables. This will update as further requests are made.

+

+			
+			
+			

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/sources/array_only.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/sources/array_only.txt Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,59 @@ +[ + ["Trident","Internet Explorer 4.0","Win 95+","4","X"], + ["Trident","Internet Explorer 5.0","Win 95+","5","C"], + ["Trident","Internet Explorer 5.5","Win 95+","5.5","A"], + ["Trident","Internet Explorer 6","Win 98+","6","A"], + ["Trident","Internet Explorer 7","Win XP SP2+","7","A"], + ["Trident","AOL browser (AOL desktop)","Win XP","6","A"], + ["Gecko","Firefox 1.0","Win 98+ / OSX.2+","1.7","A"], + ["Gecko","Firefox 1.5","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Firefox 2.0","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Firefox 3.0","Win 2k+ / OSX.3+","1.9","A"], + ["Gecko","Camino 1.0","OSX.2+","1.8","A"], + ["Gecko","Camino 1.5","OSX.3+","1.8","A"], + ["Gecko","Netscape 7.2","Win 95+ / Mac OS 8.6-9.2","1.7","A"], + ["Gecko","Netscape Browser 8","Win 98SE+","1.7","A"], + ["Gecko","Netscape Navigator 9","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Mozilla 1.0","Win 95+ / OSX.1+",1,"A"], + ["Gecko","Mozilla 1.1","Win 95+ / OSX.1+",1.1,"A"], + ["Gecko","Mozilla 1.2","Win 95+ / OSX.1+",1.2,"A"], + ["Gecko","Mozilla 1.3","Win 95+ / OSX.1+",1.3,"A"], + ["Gecko","Mozilla 1.4","Win 95+ / OSX.1+",1.4,"A"], + ["Gecko","Mozilla 1.5","Win 95+ / OSX.1+",1.5,"A"], + ["Gecko","Mozilla 1.6","Win 95+ / OSX.1+",1.6,"A"], + ["Gecko","Mozilla 1.7","Win 98+ / OSX.1+",1.7,"A"], + ["Gecko","Mozilla 1.8","Win 98+ / OSX.1+",1.8,"A"], + ["Gecko","Seamonkey 1.1","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Epiphany 2.20","Gnome","1.8","A"], + ["Webkit","Safari 1.2","OSX.3","125.5","A"], + ["Webkit","Safari 1.3","OSX.3","312.8","A"], + ["Webkit","Safari 2.0","OSX.4+","419.3","A"], + ["Webkit","Safari 3.0","OSX.4+","522.1","A"], + ["Webkit","OmniWeb 5.5","OSX.4+","420","A"], + ["Webkit","iPod Touch / iPhone","iPod","420.1","A"], + ["Webkit","S60","S60","413","A"], + ["Presto","Opera 7.0","Win 95+ / OSX.1+","-","A"], + ["Presto","Opera 7.5","Win 95+ / OSX.2+","-","A"], + ["Presto","Opera 8.0","Win 95+ / OSX.2+","-","A"], + ["Presto","Opera 8.5","Win 95+ / OSX.2+","-","A"], + ["Presto","Opera 9.0","Win 95+ / OSX.3+","-","A"], + ["Presto","Opera 9.2","Win 88+ / OSX.3+","-","A"], + ["Presto","Opera 9.5","Win 88+ / OSX.3+","-","A"], + ["Presto","Opera for Wii","Wii","-","A"], + ["Presto","Nokia N800","N800","-","A"], + ["Presto","Nintendo DS browser","Nintendo DS","8.5","C/A1"], + ["KHTML","Konqureror 3.1","KDE 3.1","3.1","C"], + ["KHTML","Konqureror 3.3","KDE 3.3","3.3","A"], + ["KHTML","Konqureror 3.5","KDE 3.5","3.5","A"], + ["Tasman","Internet Explorer 4.5","Mac OS 8-9","-","X"], + ["Tasman","Internet Explorer 5.1","Mac OS 7.6-9","1","C"], + ["Tasman","Internet Explorer 5.2","Mac OS 8-X","1","C"], + ["Misc","NetFront 3.1","Embedded devices","-","C"], + ["Misc","NetFront 3.4","Embedded devices","-","A"], + ["Misc","Dillo 0.8","Embedded devices","-","X"], + ["Misc","Links","Text only","-","X"], + ["Misc","Lynx","Text only","-","X"], + ["Misc","IE Mobile","Windows Mobile 6","-","C"], + ["Misc","PSP browser","PSP","-","C"], + ["Other browsers","All others","-","-","U"] +] \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/sources/arrays.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/sources/arrays.txt Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,59 @@ +{ "aaData": [ + ["Trident","Internet Explorer 4.0","Win 95+","4","X"], + ["Trident","Internet Explorer 5.0","Win 95+","5","C"], + ["Trident","Internet Explorer 5.5","Win 95+","5.5","A"], + ["Trident","Internet Explorer 6","Win 98+","6","A"], + ["Trident","Internet Explorer 7","Win XP SP2+","7","A"], + ["Trident","AOL browser (AOL desktop)","Win XP","6","A"], + ["Gecko","Firefox 1.0","Win 98+ / OSX.2+","1.7","A"], + ["Gecko","Firefox 1.5","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Firefox 2.0","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Firefox 3.0","Win 2k+ / OSX.3+","1.9","A"], + ["Gecko","Camino 1.0","OSX.2+","1.8","A"], + ["Gecko","Camino 1.5","OSX.3+","1.8","A"], + ["Gecko","Netscape 7.2","Win 95+ / Mac OS 8.6-9.2","1.7","A"], + ["Gecko","Netscape Browser 8","Win 98SE+","1.7","A"], + ["Gecko","Netscape Navigator 9","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Mozilla 1.0","Win 95+ / OSX.1+",1,"A"], + ["Gecko","Mozilla 1.1","Win 95+ / OSX.1+",1.1,"A"], + ["Gecko","Mozilla 1.2","Win 95+ / OSX.1+",1.2,"A"], + ["Gecko","Mozilla 1.3","Win 95+ / OSX.1+",1.3,"A"], + ["Gecko","Mozilla 1.4","Win 95+ / OSX.1+",1.4,"A"], + ["Gecko","Mozilla 1.5","Win 95+ / OSX.1+",1.5,"A"], + ["Gecko","Mozilla 1.6","Win 95+ / OSX.1+",1.6,"A"], + ["Gecko","Mozilla 1.7","Win 98+ / OSX.1+",1.7,"A"], + ["Gecko","Mozilla 1.8","Win 98+ / OSX.1+",1.8,"A"], + ["Gecko","Seamonkey 1.1","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Epiphany 2.20","Gnome","1.8","A"], + ["Webkit","Safari 1.2","OSX.3","125.5","A"], + ["Webkit","Safari 1.3","OSX.3","312.8","A"], + ["Webkit","Safari 2.0","OSX.4+","419.3","A"], + ["Webkit","Safari 3.0","OSX.4+","522.1","A"], + ["Webkit","OmniWeb 5.5","OSX.4+","420","A"], + ["Webkit","iPod Touch / iPhone","iPod","420.1","A"], + ["Webkit","S60","S60","413","A"], + ["Presto","Opera 7.0","Win 95+ / OSX.1+","-","A"], + ["Presto","Opera 7.5","Win 95+ / OSX.2+","-","A"], + ["Presto","Opera 8.0","Win 95+ / OSX.2+","-","A"], + ["Presto","Opera 8.5","Win 95+ / OSX.2+","-","A"], + ["Presto","Opera 9.0","Win 95+ / OSX.3+","-","A"], + ["Presto","Opera 9.2","Win 88+ / OSX.3+","-","A"], + ["Presto","Opera 9.5","Win 88+ / OSX.3+","-","A"], + ["Presto","Opera for Wii","Wii","-","A"], + ["Presto","Nokia N800","N800","-","A"], + ["Presto","Nintendo DS browser","Nintendo DS","8.5","C/A1"], + ["KHTML","Konqureror 3.1","KDE 3.1","3.1","C"], + ["KHTML","Konqureror 3.3","KDE 3.3","3.3","A"], + ["KHTML","Konqureror 3.5","KDE 3.5","3.5","A"], + ["Tasman","Internet Explorer 4.5","Mac OS 8-9","-","X"], + ["Tasman","Internet Explorer 5.1","Mac OS 7.6-9","1","C"], + ["Tasman","Internet Explorer 5.2","Mac OS 8-X","1","C"], + ["Misc","NetFront 3.1","Embedded devices","-","C"], + ["Misc","NetFront 3.4","Embedded devices","-","A"], + ["Misc","Dillo 0.8","Embedded devices","-","X"], + ["Misc","Links","Text only","-","X"], + ["Misc","Lynx","Text only","-","X"], + ["Misc","IE Mobile","Windows Mobile 6","-","C"], + ["Misc","PSP browser","PSP","-","C"], + ["Other browsers","All others","-","-","U"] +] } \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/sources/arrays_subobjects.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/sources/arrays_subobjects.txt Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,515 @@ +{ "aaData": [ + [ + "Trident", + "Internet Explorer 4.0", + "Win 95+", + { + "version": "4", + "grade": "X" + } + ], + [ + "Trident", + "Internet Explorer 5.0", + "Win 95+", + { + "version": "5", + "grade": "C" + } + ], + [ + "Trident", + "Internet Explorer 5.5", + "Win 95+", + { + "version": "5.5", + "grade": "A" + } + ], + [ + "Trident", + "Internet Explorer 6", + "Win 98+", + { + "version": "6", + "grade": "A" + } + ], + [ + "Trident", + "Internet Explorer 7", + "Win XP SP2+", + { + "version": "7", + "grade": "A" + } + ], + [ + "Trident", + "AOL browser (AOL desktop)", + "Win XP", + { + "version": "6", + "grade": "A" + } + ], + [ + "Gecko", + "Firefox 1.0", + "Win 98+ / OSX.2+", + { + "version": "1.7", + "grade": "A" + } + ], + [ + "Gecko", + "Firefox 1.5", + "Win 98+ / OSX.2+", + { + "version": "1.8", + "grade": "A" + } + ], + [ + "Gecko", + "Firefox 2.0", + "Win 98+ / OSX.2+", + { + "version": "1.8", + "grade": "A" + } + ], + [ + "Gecko", + "Firefox 3.0", + "Win 2k+ / OSX.3+", + { + "version": "1.9", + "grade": "A" + } + ], + [ + "Gecko", + "Camino 1.0", + "OSX.2+", + { + "version": "1.8", + "grade": "A" + } + ], + [ + "Gecko", + "Camino 1.5", + "OSX.3+", + { + "version": "1.8", + "grade": "A" + } + ], + [ + "Gecko", + "Netscape 7.2", + "Win 95+ / Mac OS 8.6-9.2", + { + "version": "1.7", + "grade": "A" + } + ], + [ + "Gecko", + "Netscape Browser 8", + "Win 98SE+", + { + "version": "1.7", + "grade": "A" + } + ], + [ + "Gecko", + "Netscape Navigator 9", + "Win 98+ / OSX.2+", + { + "version": "1.8", + "grade": "A" + } + ], + [ + "Gecko", + "Mozilla 1.0", + "Win 95+ / OSX.1+", + { + "version": "1", + "grade": "A" + } + ], + [ + "Gecko", + "Mozilla 1.1", + "Win 95+ / OSX.1+", + { + "version": "1.1", + "grade": "A" + } + ], + [ + "Gecko", + "Mozilla 1.2", + "Win 95+ / OSX.1+", + { + "version": "1.2", + "grade": "A" + } + ], + [ + "Gecko", + "Mozilla 1.3", + "Win 95+ / OSX.1+", + { + "version": "1.3", + "grade": "A" + } + ], + [ + "Gecko", + "Mozilla 1.4", + "Win 95+ / OSX.1+", + { + "version": "1.4", + "grade": "A" + } + ], + [ + "Gecko", + "Mozilla 1.5", + "Win 95+ / OSX.1+", + { + "version": "1.5", + "grade": "A" + } + ], + [ + "Gecko", + "Mozilla 1.6", + "Win 95+ / OSX.1+", + { + "version": "1.6", + "grade": "A" + } + ], + [ + "Gecko", + "Mozilla 1.7", + "Win 98+ / OSX.1+", + { + "version": "1.7", + "grade": "A" + } + ], + [ + "Gecko", + "Mozilla 1.8", + "Win 98+ / OSX.1+", + { + "version": "1.8", + "grade": "A" + } + ], + [ + "Gecko", + "Seamonkey 1.1", + "Win 98+ / OSX.2+", + { + "version": "1.8", + "grade": "A" + } + ], + [ + "Gecko", + "Epiphany 2.20", + "Gnome", + { + "version": "1.8", + "grade": "A" + } + ], + [ + "Webkit", + "Safari 1.2", + "OSX.3", + { + "version": "125.5", + "grade": "A" + } + ], + [ + "Webkit", + "Safari 1.3", + "OSX.3", + { + "version": "312.8", + "grade": "A" + } + ], + [ + "Webkit", + "Safari 2.0", + "OSX.4+", + { + "version": "419.3", + "grade": "A" + } + ], + [ + "Webkit", + "Safari 3.0", + "OSX.4+", + { + "version": "522.1", + "grade": "A" + } + ], + [ + "Webkit", + "OmniWeb 5.5", + "OSX.4+", + { + "version": "420", + "grade": "A" + } + ], + [ + "Webkit", + "iPod Touch / iPhone", + "iPod", + { + "version": "420.1", + "grade": "A" + } + ], + [ + "Webkit", + "S60", + "S60", + { + "version": "413", + "grade": "A" + } + ], + [ + "Presto", + "Opera 7.0", + "Win 95+ / OSX.1+", + { + "version": "-", + "grade": "A" + } + ], + [ + "Presto", + "Opera 7.5", + "Win 95+ / OSX.2+", + { + "version": "-", + "grade": "A" + } + ], + [ + "Presto", + "Opera 8.0", + "Win 95+ / OSX.2+", + { + "version": "-", + "grade": "A" + } + ], + [ + "Presto", + "Opera 8.5", + "Win 95+ / OSX.2+", + { + "version": "-", + "grade": "A" + } + ], + [ + "Presto", + "Opera 9.0", + "Win 95+ / OSX.3+", + { + "version": "-", + "grade": "A" + } + ], + [ + "Presto", + "Opera 9.2", + "Win 88+ / OSX.3+", + { + "version": "-", + "grade": "A" + } + ], + [ + "Presto", + "Opera 9.5", + "Win 88+ / OSX.3+", + { + "version": "-", + "grade": "A" + } + ], + [ + "Presto", + "Opera for Wii", + "Wii", + { + "version": "-", + "grade": "A" + } + ], + [ + "Presto", + "Nokia N800", + "N800", + { + "version": "-", + "grade": "A" + } + ], + [ + "Presto", + "Nintendo DS browser", + "Nintendo DS", + { + "version": "8.5", + "grade": "C/A1" + } + ], + [ + "KHTML", + "Konqureror 3.1", + "KDE 3.1", + { + "version": "3.1", + "grade": "C" + } + ], + [ + "KHTML", + "Konqureror 3.3", + "KDE 3.3", + { + "version": "3.3", + "grade": "A" + } + ], + [ + "KHTML", + "Konqureror 3.5", + "KDE 3.5", + { + "version": "3.5", + "grade": "A" + } + ], + [ + "Tasman", + "Internet Explorer 4.5", + "Mac OS 8-9", + { + "version": "-", + "grade": "X" + } + ], + [ + "Tasman", + "Internet Explorer 5.1", + "Mac OS 7.6-9", + { + "version": "1", + "grade": "C" + } + ], + [ + "Tasman", + "Internet Explorer 5.2", + "Mac OS 8-X", + { + "version": "1", + "grade": "C" + } + ], + [ + "Misc", + "NetFront 3.1", + "Embedded devices", + { + "version": "-", + "grade": "C" + } + ], + [ + "Misc", + "NetFront 3.4", + "Embedded devices", + { + "version": "-", + "grade": "A" + } + ], + [ + "Misc", + "Dillo 0.8", + "Embedded devices", + { + "version": "-", + "grade": "X" + } + ], + [ + "Misc", + "Links", + "Text only", + { + "version": "-", + "grade": "X" + } + ], + [ + "Misc", + "Lynx", + "Text only", + { + "version": "-", + "grade": "X" + } + ], + [ + "Misc", + "IE Mobile", + "Windows Mobile 6", + { + "version": "-", + "grade": "C" + } + ], + [ + "Misc", + "PSP browser", + "PSP", + { + "version": "-", + "grade": "C" + } + ], + [ + "Other browsers", + "All others", + "-", + { + "version": "-", + "grade": "U" + } + ] +] } \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/sources/custom_prop.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/sources/custom_prop.txt Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,59 @@ +{ "demo": [ + ["Trident","Internet Explorer 4.0","Win 95+","4","X"], + ["Trident","Internet Explorer 5.0","Win 95+","5","C"], + ["Trident","Internet Explorer 5.5","Win 95+","5.5","A"], + ["Trident","Internet Explorer 6","Win 98+","6","A"], + ["Trident","Internet Explorer 7","Win XP SP2+","7","A"], + ["Trident","AOL browser (AOL desktop)","Win XP","6","A"], + ["Gecko","Firefox 1.0","Win 98+ / OSX.2+","1.7","A"], + ["Gecko","Firefox 1.5","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Firefox 2.0","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Firefox 3.0","Win 2k+ / OSX.3+","1.9","A"], + ["Gecko","Camino 1.0","OSX.2+","1.8","A"], + ["Gecko","Camino 1.5","OSX.3+","1.8","A"], + ["Gecko","Netscape 7.2","Win 95+ / Mac OS 8.6-9.2","1.7","A"], + ["Gecko","Netscape Browser 8","Win 98SE+","1.7","A"], + ["Gecko","Netscape Navigator 9","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Mozilla 1.0","Win 95+ / OSX.1+",1,"A"], + ["Gecko","Mozilla 1.1","Win 95+ / OSX.1+",1.1,"A"], + ["Gecko","Mozilla 1.2","Win 95+ / OSX.1+",1.2,"A"], + ["Gecko","Mozilla 1.3","Win 95+ / OSX.1+",1.3,"A"], + ["Gecko","Mozilla 1.4","Win 95+ / OSX.1+",1.4,"A"], + ["Gecko","Mozilla 1.5","Win 95+ / OSX.1+",1.5,"A"], + ["Gecko","Mozilla 1.6","Win 95+ / OSX.1+",1.6,"A"], + ["Gecko","Mozilla 1.7","Win 98+ / OSX.1+",1.7,"A"], + ["Gecko","Mozilla 1.8","Win 98+ / OSX.1+",1.8,"A"], + ["Gecko","Seamonkey 1.1","Win 98+ / OSX.2+","1.8","A"], + ["Gecko","Epiphany 2.20","Gnome","1.8","A"], + ["Webkit","Safari 1.2","OSX.3","125.5","A"], + ["Webkit","Safari 1.3","OSX.3","312.8","A"], + ["Webkit","Safari 2.0","OSX.4+","419.3","A"], + ["Webkit","Safari 3.0","OSX.4+","522.1","A"], + ["Webkit","OmniWeb 5.5","OSX.4+","420","A"], + ["Webkit","iPod Touch / iPhone","iPod","420.1","A"], + ["Webkit","S60","S60","413","A"], + ["Presto","Opera 7.0","Win 95+ / OSX.1+","-","A"], + ["Presto","Opera 7.5","Win 95+ / OSX.2+","-","A"], + ["Presto","Opera 8.0","Win 95+ / OSX.2+","-","A"], + ["Presto","Opera 8.5","Win 95+ / OSX.2+","-","A"], + ["Presto","Opera 9.0","Win 95+ / OSX.3+","-","A"], + ["Presto","Opera 9.2","Win 88+ / OSX.3+","-","A"], + ["Presto","Opera 9.5","Win 88+ / OSX.3+","-","A"], + ["Presto","Opera for Wii","Wii","-","A"], + ["Presto","Nokia N800","N800","-","A"], + ["Presto","Nintendo DS browser","Nintendo DS","8.5","C/A1"], + ["KHTML","Konqureror 3.1","KDE 3.1","3.1","C"], + ["KHTML","Konqureror 3.3","KDE 3.3","3.3","A"], + ["KHTML","Konqureror 3.5","KDE 3.5","3.5","A"], + ["Tasman","Internet Explorer 4.5","Mac OS 8-9","-","X"], + ["Tasman","Internet Explorer 5.1","Mac OS 7.6-9","1","C"], + ["Tasman","Internet Explorer 5.2","Mac OS 8-X","1","C"], + ["Misc","NetFront 3.1","Embedded devices","-","C"], + ["Misc","NetFront 3.4","Embedded devices","-","A"], + ["Misc","Dillo 0.8","Embedded devices","-","X"], + ["Misc","Links","Text only","-","X"], + ["Misc","Lynx","Text only","-","X"], + ["Misc","IE Mobile","Windows Mobile 6","-","C"], + ["Misc","PSP browser","PSP","-","C"], + ["Other browsers","All others","-","-","U"] +] } \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/sources/deep.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/sources/deep.txt Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,629 @@ +{ "aaData": [ + { + "engine": "Trident", + "browser": "Internet Explorer 4.0", + "platform": { + "inner": "Win 95+", + "details": [ + "4", + "X" + ] + } + }, + { + "engine": "Trident", + "browser": "Internet Explorer 5.0", + "platform": { + "inner": "Win 95+", + "details": [ + "5", + "C" + ] + } + }, + { + "engine": "Trident", + "browser": "Internet Explorer 5.5", + "platform": { + "inner": "Win 95+", + "details": [ + "5.5", + "A" + ] + } + }, + { + "engine": "Trident", + "browser": "Internet Explorer 6", + "platform": { + "inner": "Win 98+", + "details": [ + "6", + "A" + ] + } + }, + { + "engine": "Trident", + "browser": "Internet Explorer 7", + "platform": { + "inner": "Win XP SP2+", + "details": [ + "7", + "A" + ] + } + }, + { + "engine": "Trident", + "browser": "AOL browser (AOL desktop)", + "platform": { + "inner": "Win XP", + "details": [ + "6", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Firefox 1.0", + "platform": { + "inner": "Win 98+ / OSX.2+", + "details": [ + "1.7", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Firefox 1.5", + "platform": { + "inner": "Win 98+ / OSX.2+", + "details": [ + "1.8", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Firefox 2.0", + "platform": { + "inner": "Win 98+ / OSX.2+", + "details": [ + "1.8", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Firefox 3.0", + "platform": { + "inner": "Win 2k+ / OSX.3+", + "details": [ + "1.9", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Camino 1.0", + "platform": { + "inner": "OSX.2+", + "details": [ + "1.8", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Camino 1.5", + "platform": { + "inner": "OSX.3+", + "details": [ + "1.8", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Netscape 7.2", + "platform": { + "inner": "Win 95+ / Mac OS 8.6-9.2", + "details": [ + "1.7", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Netscape Browser 8", + "platform": { + "inner": "Win 98SE+", + "details": [ + "1.7", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Netscape Navigator 9", + "platform": { + "inner": "Win 98+ / OSX.2+", + "details": [ + "1.8", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.0", + "platform": { + "inner": "Win 95+ / OSX.1+", + "details": [ + 1, + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.1", + "platform": { + "inner": "Win 95+ / OSX.1+", + "details": [ + 1.1, + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.2", + "platform": { + "inner": "Win 95+ / OSX.1+", + "details": [ + 1.2, + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.3", + "platform": { + "inner": "Win 95+ / OSX.1+", + "details": [ + 1.3, + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.4", + "platform": { + "inner": "Win 95+ / OSX.1+", + "details": [ + 1.4, + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.5", + "platform": { + "inner": "Win 95+ / OSX.1+", + "details": [ + 1.5, + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.6", + "platform": { + "inner": "Win 95+ / OSX.1+", + "details": [ + 1.6, + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.7", + "platform": { + "inner": "Win 98+ / OSX.1+", + "details": [ + 1.7, + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.8", + "platform": { + "inner": "Win 98+ / OSX.1+", + "details": [ + 1.8, + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Seamonkey 1.1", + "platform": { + "inner": "Win 98+ / OSX.2+", + "details": [ + "1.8", + "A" + ] + } + }, + { + "engine": "Gecko", + "browser": "Epiphany 2.20", + "platform": { + "inner": "Gnome", + "details": [ + "1.8", + "A" + ] + } + }, + { + "engine": "Webkit", + "browser": "Safari 1.2", + "platform": { + "inner": "OSX.3", + "details": [ + "125.5", + "A" + ] + } + }, + { + "engine": "Webkit", + "browser": "Safari 1.3", + "platform": { + "inner": "OSX.3", + "details": [ + "312.8", + "A" + ] + } + }, + { + "engine": "Webkit", + "browser": "Safari 2.0", + "platform": { + "inner": "OSX.4+", + "details": [ + "419.3", + "A" + ] + } + }, + { + "engine": "Webkit", + "browser": "Safari 3.0", + "platform": { + "inner": "OSX.4+", + "details": [ + "522.1", + "A" + ] + } + }, + { + "engine": "Webkit", + "browser": "OmniWeb 5.5", + "platform": { + "inner": "OSX.4+", + "details": [ + "420", + "A" + ] + } + }, + { + "engine": "Webkit", + "browser": "iPod Touch / iPhone", + "platform": { + "inner": "iPod", + "details": [ + "420.1", + "A" + ] + } + }, + { + "engine": "Webkit", + "browser": "S60", + "platform": { + "inner": "S60", + "details": [ + "413", + "A" + ] + } + }, + { + "engine": "Presto", + "browser": "Opera 7.0", + "platform": { + "inner": "Win 95+ / OSX.1+", + "details": [ + "-", + "A" + ] + } + }, + { + "engine": "Presto", + "browser": "Opera 7.5", + "platform": { + "inner": "Win 95+ / OSX.2+", + "details": [ + "-", + "A" + ] + } + }, + { + "engine": "Presto", + "browser": "Opera 8.0", + "platform": { + "inner": "Win 95+ / OSX.2+", + "details": [ + "-", + "A" + ] + } + }, + { + "engine": "Presto", + "browser": "Opera 8.5", + "platform": { + "inner": "Win 95+ / OSX.2+", + "details": [ + "-", + "A" + ] + } + }, + { + "engine": "Presto", + "browser": "Opera 9.0", + "platform": { + "inner": "Win 95+ / OSX.3+", + "details": [ + "-", + "A" + ] + } + }, + { + "engine": "Presto", + "browser": "Opera 9.2", + "platform": { + "inner": "Win 88+ / OSX.3+", + "details": [ + "-", + "A" + ] + } + }, + { + "engine": "Presto", + "browser": "Opera 9.5", + "platform": { + "inner": "Win 88+ / OSX.3+", + "details": [ + "-", + "A" + ] + } + }, + { + "engine": "Presto", + "browser": "Opera for Wii", + "platform": { + "inner": "Wii", + "details": [ + "-", + "A" + ] + } + }, + { + "engine": "Presto", + "browser": "Nokia N800", + "platform": { + "inner": "N800", + "details": [ + "-", + "A" + ] + } + }, + { + "engine": "Presto", + "browser": "Nintendo DS browser", + "platform": { + "inner": "Nintendo DS", + "details": [ + "8.5", + "C/A1" + ] + } + }, + { + "engine": "KHTML", + "browser": "Konqureror 3.1", + "platform": { + "inner": "KDE 3.1", + "details": [ + "3.1", + "C" + ] + } + }, + { + "engine": "KHTML", + "browser": "Konqureror 3.3", + "platform": { + "inner": "KDE 3.3", + "details": [ + "3.3", + "A" + ] + } + }, + { + "engine": "KHTML", + "browser": "Konqureror 3.5", + "platform": { + "inner": "KDE 3.5", + "details": [ + "3.5", + "A" + ] + } + }, + { + "engine": "Tasman", + "browser": "Internet Explorer 4.5", + "platform": { + "inner": "Mac OS 8-9", + "details": [ + "-", + "X" + ] + } + }, + { + "engine": "Tasman", + "browser": "Internet Explorer 5.1", + "platform": { + "inner": "Mac OS 7.6-9", + "details": [ + "1", + "C" + ] + } + }, + { + "engine": "Tasman", + "browser": "Internet Explorer 5.2", + "platform": { + "inner": "Mac OS 8-X", + "details": [ + "1", + "C" + ] + } + }, + { + "engine": "Misc", + "browser": "NetFront 3.1", + "platform": { + "inner": "Embedded devices", + "details": [ + "-", + "C" + ] + } + }, + { + "engine": "Misc", + "browser": "NetFront 3.4", + "platform": { + "inner": "Embedded devices", + "details": [ + "-", + "A" + ] + } + }, + { + "engine": "Misc", + "browser": "Dillo 0.8", + "platform": { + "inner": "Embedded devices", + "details": [ + "-", + "X" + ] + } + }, + { + "engine": "Misc", + "browser": "Links", + "platform": { + "inner": "Text only", + "details": [ + "-", + "X" + ] + } + }, + { + "engine": "Misc", + "browser": "Lynx", + "platform": { + "inner": "Text only", + "details": [ + "-", + "X" + ] + } + }, + { + "engine": "Misc", + "browser": "IE Mobile", + "platform": { + "inner": "Windows Mobile 6", + "details": [ + "-", + "C" + ] + } + }, + { + "engine": "Misc", + "browser": "PSP browser", + "platform": { + "inner": "PSP", + "details": [ + "-", + "C" + ] + } + }, + { + "engine": "Other browsers", + "browser": "All others", + "platform": { + "inner": "-", + "details": [ + "-", + "U" + ] + } + } +] } \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/sources/objects.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/sources/objects.txt Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,401 @@ +{ "aaData": [ + { + "engine": "Trident", + "browser": "Internet Explorer 4.0", + "platform": "Win 95+", + "version": "4", + "grade": "X" + }, + { + "engine": "Trident", + "browser": "Internet Explorer 5.0", + "platform": "Win 95+", + "version": "5", + "grade": "C" + }, + { + "engine": "Trident", + "browser": "Internet Explorer 5.5", + "platform": "Win 95+", + "version": "5.5", + "grade": "A" + }, + { + "engine": "Trident", + "browser": "Internet Explorer 6", + "platform": "Win 98+", + "version": "6", + "grade": "A" + }, + { + "engine": "Trident", + "browser": "Internet Explorer 7", + "platform": "Win XP SP2+", + "version": "7", + "grade": "A" + }, + { + "engine": "Trident", + "browser": "AOL browser (AOL desktop)", + "platform": "Win XP", + "version": "6", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Firefox 1.0", + "platform": "Win 98+ / OSX.2+", + "version": "1.7", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Firefox 1.5", + "platform": "Win 98+ / OSX.2+", + "version": "1.8", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Firefox 2.0", + "platform": "Win 98+ / OSX.2+", + "version": "1.8", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Firefox 3.0", + "platform": "Win 2k+ / OSX.3+", + "version": "1.9", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Camino 1.0", + "platform": "OSX.2+", + "version": "1.8", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Camino 1.5", + "platform": "OSX.3+", + "version": "1.8", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Netscape 7.2", + "platform": "Win 95+ / Mac OS 8.6-9.2", + "version": "1.7", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Netscape Browser 8", + "platform": "Win 98SE+", + "version": "1.7", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Netscape Navigator 9", + "platform": "Win 98+ / OSX.2+", + "version": "1.8", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.0", + "platform": "Win 95+ / OSX.1+", + "version": "1", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.1", + "platform": "Win 95+ / OSX.1+", + "version": "1.1", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.2", + "platform": "Win 95+ / OSX.1+", + "version": "1.2", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.3", + "platform": "Win 95+ / OSX.1+", + "version": "1.3", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.4", + "platform": "Win 95+ / OSX.1+", + "version": "1.4", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.5", + "platform": "Win 95+ / OSX.1+", + "version": "1.5", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.6", + "platform": "Win 95+ / OSX.1+", + "version": "1.6", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.7", + "platform": "Win 98+ / OSX.1+", + "version": "1.7", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.8", + "platform": "Win 98+ / OSX.1+", + "version": "1.8", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Seamonkey 1.1", + "platform": "Win 98+ / OSX.2+", + "version": "1.8", + "grade": "A" + }, + { + "engine": "Gecko", + "browser": "Epiphany 2.20", + "platform": "Gnome", + "version": "1.8", + "grade": "A" + }, + { + "engine": "Webkit", + "browser": "Safari 1.2", + "platform": "OSX.3", + "version": "125.5", + "grade": "A" + }, + { + "engine": "Webkit", + "browser": "Safari 1.3", + "platform": "OSX.3", + "version": "312.8", + "grade": "A" + }, + { + "engine": "Webkit", + "browser": "Safari 2.0", + "platform": "OSX.4+", + "version": "419.3", + "grade": "A" + }, + { + "engine": "Webkit", + "browser": "Safari 3.0", + "platform": "OSX.4+", + "version": "522.1", + "grade": "A" + }, + { + "engine": "Webkit", + "browser": "OmniWeb 5.5", + "platform": "OSX.4+", + "version": "420", + "grade": "A" + }, + { + "engine": "Webkit", + "browser": "iPod Touch / iPhone", + "platform": "iPod", + "version": "420.1", + "grade": "A" + }, + { + "engine": "Webkit", + "browser": "S60", + "platform": "S60", + "version": "413", + "grade": "A" + }, + { + "engine": "Presto", + "browser": "Opera 7.0", + "platform": "Win 95+ / OSX.1+", + "version": "-", + "grade": "A" + }, + { + "engine": "Presto", + "browser": "Opera 7.5", + "platform": "Win 95+ / OSX.2+", + "version": "-", + "grade": "A" + }, + { + "engine": "Presto", + "browser": "Opera 8.0", + "platform": "Win 95+ / OSX.2+", + "version": "-", + "grade": "A" + }, + { + "engine": "Presto", + "browser": "Opera 8.5", + "platform": "Win 95+ / OSX.2+", + "version": "-", + "grade": "A" + }, + { + "engine": "Presto", + "browser": "Opera 9.0", + "platform": "Win 95+ / OSX.3+", + "version": "-", + "grade": "A" + }, + { + "engine": "Presto", + "browser": "Opera 9.2", + "platform": "Win 88+ / OSX.3+", + "version": "-", + "grade": "A" + }, + { + "engine": "Presto", + "browser": "Opera 9.5", + "platform": "Win 88+ / OSX.3+", + "version": "-", + "grade": "A" + }, + { + "engine": "Presto", + "browser": "Opera for Wii", + "platform": "Wii", + "version": "-", + "grade": "A" + }, + { + "engine": "Presto", + "browser": "Nokia N800", + "platform": "N800", + "version": "-", + "grade": "A" + }, + { + "engine": "Presto", + "browser": "Nintendo DS browser", + "platform": "Nintendo DS", + "version": "8.5", + "grade": "C/A1" + }, + { + "engine": "KHTML", + "browser": "Konqureror 3.1", + "platform": "KDE 3.1", + "version": "3.1", + "grade": "C" + }, + { + "engine": "KHTML", + "browser": "Konqureror 3.3", + "platform": "KDE 3.3", + "version": "3.3", + "grade": "A" + }, + { + "engine": "KHTML", + "browser": "Konqureror 3.5", + "platform": "KDE 3.5", + "version": "3.5", + "grade": "A" + }, + { + "engine": "Tasman", + "browser": "Internet Explorer 4.5", + "platform": "Mac OS 8-9", + "version": "-", + "grade": "X" + }, + { + "engine": "Tasman", + "browser": "Internet Explorer 5.1", + "platform": "Mac OS 7.6-9", + "version": "1", + "grade": "C" + }, + { + "engine": "Tasman", + "browser": "Internet Explorer 5.2", + "platform": "Mac OS 8-X", + "version": "1", + "grade": "C" + }, + { + "engine": "Misc", + "browser": "NetFront 3.1", + "platform": "Embedded devices", + "version": "-", + "grade": "C" + }, + { + "engine": "Misc", + "browser": "NetFront 3.4", + "platform": "Embedded devices", + "version": "-", + "grade": "A" + }, + { + "engine": "Misc", + "browser": "Dillo 0.8", + "platform": "Embedded devices", + "version": "-", + "grade": "X" + }, + { + "engine": "Misc", + "browser": "Links", + "platform": "Text only", + "version": "-", + "grade": "X" + }, + { + "engine": "Misc", + "browser": "Lynx", + "platform": "Text only", + "version": "-", + "grade": "X" + }, + { + "engine": "Misc", + "browser": "IE Mobile", + "platform": "Windows Mobile 6", + "version": "-", + "grade": "C" + }, + { + "engine": "Misc", + "browser": "PSP browser", + "platform": "PSP", + "version": "-", + "grade": "C" + }, + { + "engine": "Other browsers", + "browser": "All others", + "platform": "-", + "version": "-", + "grade": "U" + } +] } \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/ajax/sources/objects_subarrays.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/ajax/sources/objects_subarrays.txt Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,515 @@ +{ "aaData": [ + { + "engine": "Trident", + "browser": "Internet Explorer 4.0", + "platform": "Win 95+", + "details": [ + "4", + "X" + ] + }, + { + "engine": "Trident", + "browser": "Internet Explorer 5.0", + "platform": "Win 95+", + "details": [ + "5", + "C" + ] + }, + { + "engine": "Trident", + "browser": "Internet Explorer 5.5", + "platform": "Win 95+", + "details": [ + "5.5", + "A" + ] + }, + { + "engine": "Trident", + "browser": "Internet Explorer 6", + "platform": "Win 98+", + "details": [ + "6", + "A" + ] + }, + { + "engine": "Trident", + "browser": "Internet Explorer 7", + "platform": "Win XP SP2+", + "details": [ + "7", + "A" + ] + }, + { + "engine": "Trident", + "browser": "AOL browser (AOL desktop)", + "platform": "Win XP", + "details": [ + "6", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Firefox 1.0", + "platform": "Win 98+ / OSX.2+", + "details": [ + "1.7", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Firefox 1.5", + "platform": "Win 98+ / OSX.2+", + "details": [ + "1.8", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Firefox 2.0", + "platform": "Win 98+ / OSX.2+", + "details": [ + "1.8", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Firefox 3.0", + "platform": "Win 2k+ / OSX.3+", + "details": [ + "1.9", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Camino 1.0", + "platform": "OSX.2+", + "details": [ + "1.8", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Camino 1.5", + "platform": "OSX.3+", + "details": [ + "1.8", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Netscape 7.2", + "platform": "Win 95+ / Mac OS 8.6-9.2", + "details": [ + "1.7", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Netscape Browser 8", + "platform": "Win 98SE+", + "details": [ + "1.7", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Netscape Navigator 9", + "platform": "Win 98+ / OSX.2+", + "details": [ + "1.8", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.0", + "platform": "Win 95+ / OSX.1+", + "details": [ + 1, + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.1", + "platform": "Win 95+ / OSX.1+", + "details": [ + 1.1, + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.2", + "platform": "Win 95+ / OSX.1+", + "details": [ + 1.2, + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.3", + "platform": "Win 95+ / OSX.1+", + "details": [ + 1.3, + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.4", + "platform": "Win 95+ / OSX.1+", + "details": [ + 1.4, + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.5", + "platform": "Win 95+ / OSX.1+", + "details": [ + 1.5, + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.6", + "platform": "Win 95+ / OSX.1+", + "details": [ + 1.6, + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.7", + "platform": "Win 98+ / OSX.1+", + "details": [ + 1.7, + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Mozilla 1.8", + "platform": "Win 98+ / OSX.1+", + "details": [ + 1.8, + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Seamonkey 1.1", + "platform": "Win 98+ / OSX.2+", + "details": [ + "1.8", + "A" + ] + }, + { + "engine": "Gecko", + "browser": "Epiphany 2.20", + "platform": "Gnome", + "details": [ + "1.8", + "A" + ] + }, + { + "engine": "Webkit", + "browser": "Safari 1.2", + "platform": "OSX.3", + "details": [ + "125.5", + "A" + ] + }, + { + "engine": "Webkit", + "browser": "Safari 1.3", + "platform": "OSX.3", + "details": [ + "312.8", + "A" + ] + }, + { + "engine": "Webkit", + "browser": "Safari 2.0", + "platform": "OSX.4+", + "details": [ + "419.3", + "A" + ] + }, + { + "engine": "Webkit", + "browser": "Safari 3.0", + "platform": "OSX.4+", + "details": [ + "522.1", + "A" + ] + }, + { + "engine": "Webkit", + "browser": "OmniWeb 5.5", + "platform": "OSX.4+", + "details": [ + "420", + "A" + ] + }, + { + "engine": "Webkit", + "browser": "iPod Touch / iPhone", + "platform": "iPod", + "details": [ + "420.1", + "A" + ] + }, + { + "engine": "Webkit", + "browser": "S60", + "platform": "S60", + "details": [ + "413", + "A" + ] + }, + { + "engine": "Presto", + "browser": "Opera 7.0", + "platform": "Win 95+ / OSX.1+", + "details": [ + "-", + "A" + ] + }, + { + "engine": "Presto", + "browser": "Opera 7.5", + "platform": "Win 95+ / OSX.2+", + "details": [ + "-", + "A" + ] + }, + { + "engine": "Presto", + "browser": "Opera 8.0", + "platform": "Win 95+ / OSX.2+", + "details": [ + "-", + "A" + ] + }, + { + "engine": "Presto", + "browser": "Opera 8.5", + "platform": "Win 95+ / OSX.2+", + "details": [ + "-", + "A" + ] + }, + { + "engine": "Presto", + "browser": "Opera 9.0", + "platform": "Win 95+ / OSX.3+", + "details": [ + "-", + "A" + ] + }, + { + "engine": "Presto", + "browser": "Opera 9.2", + "platform": "Win 88+ / OSX.3+", + "details": [ + "-", + "A" + ] + }, + { + "engine": "Presto", + "browser": "Opera 9.5", + "platform": "Win 88+ / OSX.3+", + "details": [ + "-", + "A" + ] + }, + { + "engine": "Presto", + "browser": "Opera for Wii", + "platform": "Wii", + "details": [ + "-", + "A" + ] + }, + { + "engine": "Presto", + "browser": "Nokia N800", + "platform": "N800", + "details": [ + "-", + "A" + ] + }, + { + "engine": "Presto", + "browser": "Nintendo DS browser", + "platform": "Nintendo DS", + "details": [ + "8.5", + "C/A1" + ] + }, + { + "engine": "KHTML", + "browser": "Konqureror 3.1", + "platform": "KDE 3.1", + "details": [ + "3.1", + "C" + ] + }, + { + "engine": "KHTML", + "browser": "Konqureror 3.3", + "platform": "KDE 3.3", + "details": [ + "3.3", + "A" + ] + }, + { + "engine": "KHTML", + "browser": "Konqureror 3.5", + "platform": "KDE 3.5", + "details": [ + "3.5", + "A" + ] + }, + { + "engine": "Tasman", + "browser": "Internet Explorer 4.5", + "platform": "Mac OS 8-9", + "details": [ + "-", + "X" + ] + }, + { + "engine": "Tasman", + "browser": "Internet Explorer 5.1", + "platform": "Mac OS 7.6-9", + "details": [ + "1", + "C" + ] + }, + { + "engine": "Tasman", + "browser": "Internet Explorer 5.2", + "platform": "Mac OS 8-X", + "details": [ + "1", + "C" + ] + }, + { + "engine": "Misc", + "browser": "NetFront 3.1", + "platform": "Embedded devices", + "details": [ + "-", + "C" + ] + }, + { + "engine": "Misc", + "browser": "NetFront 3.4", + "platform": "Embedded devices", + "details": [ + "-", + "A" + ] + }, + { + "engine": "Misc", + "browser": "Dillo 0.8", + "platform": "Embedded devices", + "details": [ + "-", + "X" + ] + }, + { + "engine": "Misc", + "browser": "Links", + "platform": "Text only", + "details": [ + "-", + "X" + ] + }, + { + "engine": "Misc", + "browser": "Lynx", + "platform": "Text only", + "details": [ + "-", + "X" + ] + }, + { + "engine": "Misc", + "browser": "IE Mobile", + "platform": "Windows Mobile 6", + "details": [ + "-", + "C" + ] + }, + { + "engine": "Misc", + "browser": "PSP browser", + "platform": "PSP", + "details": [ + "-", + "C" + ] + }, + { + "engine": "Other browsers", + "browser": "All others", + "platform": "-", + "details": [ + "-", + "U" + ] + } +] } \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/add_row.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/add_row.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,221 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables add row example +
+ +

Preamble

+

DataTables adding rows in DataTables is done by assigning the DataTables jQuery object to a variable when initialising it, and then using it's API methods to add a new row. Deleting rows can be done in a similar manner.

+ +

Live example

+

Click to add a new row

+ +
+ + + + + + + + + + + + + + + + + +
Column 1Column 2Column 3Column 4
allanallanallanallan
+
+
+ + +

Initialisation code

+
/* Global var for counter */
+var giCount = 1;
+
+$(document).ready(function() {
+	$('#example').dataTable();
+} );
+
+function fnClickAddRow() {
+	$('#example').dataTable().fnAddData( [
+		giCount+".1",
+		giCount+".2",
+		giCount+".3",
+		giCount+".4" ] );
+	
+	giCount++;
+}
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/api_in_init.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/api_in_init.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,615 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables using the DataTables object in the initialiser example +
+ +

Preamble

+

There are times when you may wish to call API functions inside the DataTables callback functions (for example fnInitComplete, fnRowCallback etc). The complicating issue with this is that the object hasn't fully initialised, so you can't assign the result to something like oTable and then use oTable in the callback. However, this is catered for by the execution scope of the callback function. Here this is the DataTables object that is created for the table.

+

In this example you will be able to see that this.$() is used to get all nodes in the table's body and then act on them (in this case added a click event). Note also the value of this stored in the variable that so it can be used inside the jQuery click function, where the execution scope has been changed to the td element!). The action here is to apply the filter with the value of what is in each cell.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"fnInitComplete": function () {
+			var that = this;
+			this.$('td').click( function () {
+				that.fnFilter( this.innerHTML );
+			} );
+		}
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/counter_column.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/counter_column.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,690 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables row numbers example +
+ +

Preamble

+

A fairly common requirement for highly interactive tables which are displayed on the web is to have a column which with a 'counter' for the row number. This column should not be sortable, and change dynamically as the sorting and filtering applied to the table is altered by the end user.

+

This example shows how this can be achieved with DataTables, where the first column is the counter column, and is updated when sorting or filtering occurs. Also the first column is marked as un-sortable and initial sorting is applied only on the second column.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IndexRendering engineBrowserPlatform(s)Engine versionCSS grade
1TridentInternet + Explorer 4.0Win 95+4X
2TridentInternet + Explorer 5.0Win 95+5C
3TridentInternet + Explorer 5.5Win 95+5.5A
4TridentInternet + Explorer 6Win 98+6A
5TridentInternet Explorer 7Win XP SP2+7A
6TridentAOL browser (AOL desktop)Win XP6A
7GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
8GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
9GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
10GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
11GeckoCamino 1.0OSX.2+1.8A
12GeckoCamino 1.5OSX.3+1.8A
13GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
14GeckoNetscape Browser 8Win 98SE+1.7A
15GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
16GeckoMozilla 1.0Win 95+ / OSX.1+1A
17GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
18GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
19GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
20GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
21GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
22GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
23GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
24GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
25GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
26GeckoEpiphany 2.20Gnome1.8A
27WebkitSafari 1.2OSX.3125.5A
28WebkitSafari 1.3OSX.3312.8A
29WebkitSafari 2.0OSX.4+419.3A
30WebkitSafari 3.0OSX.4+522.1A
31WebkitOmniWeb 5.5OSX.4+420A
32WebkitiPod Touch / iPhoneiPod420.1A
33WebkitS60S60413A
34PrestoOpera 7.0Win 95+ / OSX.1+-A
35PrestoOpera 7.5Win 95+ / OSX.2+-A
36PrestoOpera 8.0Win 95+ / OSX.2+-A
37PrestoOpera 8.5Win 95+ / OSX.2+-A
38PrestoOpera 9.0Win 95+ / OSX.3+-A
39PrestoOpera 9.2Win 88+ / OSX.3+-A
40PrestoOpera 9.5Win 88+ / OSX.3+-A
41PrestoOpera for WiiWii-A
42PrestoNokia N800N800-A
43PrestoNintendo DS browserNintendo DS8.5C/A1
44KHTMLKonqureror 3.1KDE 3.13.1C
45KHTMLKonqureror 3.3KDE 3.33.3A
46KHTMLKonqureror 3.5KDE 3.53.5A
47TasmanInternet Explorer 4.5Mac OS 8-9-X
48TasmanInternet Explorer 5.1Mac OS 7.6-91C
49TasmanInternet Explorer 5.2Mac OS 8-X1C
50MiscNetFront 3.1Embedded devices-C
51MiscNetFront 3.4Embedded devices-A
52MiscDillo 0.8Embedded devices-X
53MiscLinksText only-X
54MiscLynxText only-X
55MiscIE MobileWindows Mobile 6-C
56MiscPSP browserPSP-C
57Other browsersAll others--U
IndexRendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"fnDrawCallback": function ( oSettings ) {
+			/* Need to redo the counters if filtered or sorted */
+			if ( oSettings.bSorted || oSettings.bFiltered )
+			{
+				this.$('td:first-child', {"filter":"applied"}).each( function (i) {
+					that.fnUpdate( i+1, this.parentNode, 0, false, false );
+				} );
+			}
+		},
+		"aoColumnDefs": [
+			{ "bSortable": false, "aTargets": [ 0 ] }
+		],
+		"aaSorting": [[ 1, 'asc' ]]
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/editable.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/editable.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,640 @@ + + + + + + + DataTables example + + + + + + + +
+
+ DataTables editing example +
+ +

Preamble

+

Using DataTables in-combination with the excellent jEditable plugin for jQuery allows you to produce a table which can have individual cells edited. The table can then be updated such that filtering, sorting etc. will all work as expected. This is showing in the demo below.

+

The example shows how a table element can be edited (you could limit to a particular column if you wish using the selector), posted to the server (for saving in a database or whatever) and then placed back into the DataTable. The server's processing in this example simply appends the string '(server updated)' to indicate that something has happened on the server.

+

Note also that this example makes use of the information in the 'ID' attribute of the TR element. This is useful in order to tell the server what row is being updated - this can readily be expended to include column information as required. Further to this, it is worth noting that to use this type of example with DataTables' server-side processing option, you must use fnDrawCallback to apply the event listeners on each draw.

+

Finally, if you are interested in a full CRUD implementation for DataTables, check out the Editor plug-in for DataTables, which provides a flexible and easy to use create, edit and delete environment for DataTables controlled tables with full server interaction.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer + 4.0 + Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	/* Init DataTables */
+	var oTable = $('#example').dataTable();
+	
+	/* Apply the jEditable handlers to the table */
+	oTable.$('td').editable( '../examples_support/editable_ajax.php', {
+		"callback": function( sValue, y ) {
+			var aPos = oTable.fnGetPosition( this );
+			oTable.fnUpdate( sValue, aPos[0], aPos[1] );
+		},
+		"submitdata": function ( value, settings ) {
+			return {
+				"row_id": this.parentNode.getAttribute('id'),
+				"column": oTable.fnGetPosition( this )[2]
+			};
+		},
+		"height": "14px",
+		"width": "100%"
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/form.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/form.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,680 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables with form elements example +
+ +

Preamble

+

The following example shows how form elements can be used within a DataTables enhanced table. The trick here is that DataTables does not include the DOM elements which are not currently being displayed, therefore you need to add a submit event handler to gather together all of the input elements from the table, and then use the handy jQuery serialize() function to string together the data. It can then be posted to the server as you wish.

+ +

Live example

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS gradeCheck
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS gradeCheck
+
+
+
+ + +

Initialisation code

+
var oTable;
+
+$(document).ready(function() {
+	$('#form').submit( function() {
+		var sData = oTable.$('input').serialize();
+		alert( "The following data would have been submitted to the server: \n\n"+sData );
+		return false;
+	} );
+	
+	oTable = $('#example').dataTable();
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/highlight.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/highlight.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,618 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables highlighting example +
+ +

Preamble

+

The highlighting of rows and columns have be quite useful for attracting attention to where the user's cursor is in the data array. Of course the highlighting of a row is easy enough using CSS, but for column highlighting, you need to use a little bit of Javascript. This example shows that in action on a DataTables enhanced table - this type of effect would be particularly effective on tables with dense information.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	var oTable = $('#example').dataTable( {
+		"bSortClasses": false
+	} );
+	
+	oTable.$('td').hover( function() {
+		var iCol = $('td', this.parentNode).index(this) % 5;
+		$('td:nth-child('+(iCol+1)+')', oTable.$('tr')).addClass( 'highlighted' );
+	}, function() {
+		oTable.$('td.highlighted').removeClass('highlighted');
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/multi_filter.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/multi_filter.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,676 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables individual column filtering example +
+ +

Preamble

+

The filtering functionality that is provided by DataTables is very useful for quickly search through the information in the table - however the search is global, and you (or the end user) may wish to filter only on a particular column of data. To met this need the DataTables fnFilter() API function allow you to specify a column to limit to search to. Note that this works in-combination with the global search filter. Further note that because the input elements are outside of the control of DataTables, with state saving enabled, stored values are not automatically restored - please see this post in the forum for how to do this.

+

The example below shows a table which has a text input box for each column in the footer element of the table. This allows the data in each column to be quickly filtered upon by the end user.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
var asInitVals = new Array();
+
+$(document).ready(function() {
+	var oTable = $('#example').dataTable( {
+		"oLanguage": {
+			"sSearch": "Search all columns:"
+		}
+	} );
+	
+	$("tfoot input").keyup( function () {
+		/* Filter on the column (the index) of this element */
+		oTable.fnFilter( this.value, $("tfoot input").index(this) );
+	} );
+	
+	
+	
+	/*
+	 * Support functions to provide a little bit of 'user friendlyness' to the textboxes in 
+	 * the footer
+	 */
+	$("tfoot input").each( function (i) {
+		asInitVals[i] = this.value;
+	} );
+	
+	$("tfoot input").focus( function () {
+		if ( this.className == "search_init" )
+		{
+			this.className = "";
+			this.value = "";
+		}
+	} );
+	
+	$("tfoot input").blur( function (i) {
+		if ( this.value == "" )
+		{
+			this.className = "search_init";
+			this.value = asInitVals[$("tfoot input").index(this)];
+		}
+	} );
+} );
+ + +

Note that in the above code, the support functions are provided to ensure that the end user knows what data is being filtered upon. fnFilter() is the function of primary import here.

+ + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/multi_filter_select.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/multi_filter_select.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,759 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables individual column filtering example (using select menus) +
+ +

Preamble

+

This example is almost identical to individual column example and provides the same functionality, but using <select> menus rather than input elements. The API plug-in function fnGetColumnData from Benedikt Forchhammer provides much of the logic processing required, and integration with a table is almost trivial.

+

One possible interaction chance would be to make use of fnGetColumnData's ability to get filtered data, so you could have the possible filtering values in the select menus to update to only those in the table, rather than all values.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
(function($) {
+/*
+ * Function: fnGetColumnData
+ * Purpose:  Return an array of table values from a particular column.
+ * Returns:  array string: 1d data array 
+ * Inputs:   object:oSettings - dataTable settings object. This is always the last argument past to the function
+ *           int:iColumn - the id of the column to extract the data from
+ *           bool:bUnique - optional - if set to false duplicated values are not filtered out
+ *           bool:bFiltered - optional - if set to false all the table data is used (not only the filtered)
+ *           bool:bIgnoreEmpty - optional - if set to false empty values are not filtered from the result array
+ * Author:   Benedikt Forchhammer <b.forchhammer /AT\ mind2.de>
+ */
+$.fn.dataTableExt.oApi.fnGetColumnData = function ( oSettings, iColumn, bUnique, bFiltered, bIgnoreEmpty ) {
+	// check that we have a column id
+	if ( typeof iColumn == "undefined" ) return new Array();
+	
+	// by default we only want unique data
+	if ( typeof bUnique == "undefined" ) bUnique = true;
+	
+	// by default we do want to only look at filtered data
+	if ( typeof bFiltered == "undefined" ) bFiltered = true;
+	
+	// by default we do not want to include empty values
+	if ( typeof bIgnoreEmpty == "undefined" ) bIgnoreEmpty = true;
+	
+	// list of rows which we're going to loop through
+	var aiRows;
+	
+	// use only filtered rows
+	if (bFiltered == true) aiRows = oSettings.aiDisplay; 
+	// use all rows
+	else aiRows = oSettings.aiDisplayMaster; // all row numbers
+
+	// set up data array	
+	var asResultData = new Array();
+	
+	for (var i=0,c=aiRows.length; i<c; i++) {
+		iRow = aiRows[i];
+		var aData = this.fnGetData(iRow);
+		var sValue = aData[iColumn];
+		
+		// ignore empty values?
+		if (bIgnoreEmpty == true && sValue.length == 0) continue;
+
+		// ignore unique values?
+		else if (bUnique == true && jQuery.inArray(sValue, asResultData) > -1) continue;
+		
+		// else push the value onto the result data array
+		else asResultData.push(sValue);
+	}
+	
+	return asResultData;
+}}(jQuery));
+
+
+function fnCreateSelect( aData )
+{
+	var r='<select><option value=""></option>', i, iLen=aData.length;
+	for ( i=0 ; i<iLen ; i++ )
+	{
+		r += '<option value="'+aData[i]+'">'+aData[i]+'</option>';
+	}
+	return r+'</select>';
+}
+
+
+$(document).ready(function() {
+	/* Initialise the DataTable */
+	var oTable = $('#example').dataTable( {
+		"oLanguage": {
+			"sSearch": "Search all columns:"
+		}
+	} );
+	
+	/* Add a select menu for each TH element in the table footer */
+	$("tfoot th").each( function ( i ) {
+		this.innerHTML = fnCreateSelect( oTable.fnGetColumnData(i) );
+		$('select', this).change( function () {
+			oTable.fnFilter( $(this).val(), i );
+		} );
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/regex.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/regex.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,726 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables filtering API example +
+ +

Preamble

+

Filtering a table is one of the most common user interactions with a DataTables table, and DataTables provides a number of methods for you to control this interaction. There is a global filter, and a filter for each individual column. The global filter acts on each column.

+

Each filter (global or column) can be marked as a regular expression (allowing you to create very complex interactions) and as a smart filter or not. When smart filtering is enabled on a particular filter, DataTables will modify the user input string to a complex regular expression which can make filtering more intuitive.

+

This example allows you to "play" with the various filtering options that DataTables provides.

+ +

Live example

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TargetFilter textTreat as regexUse smart filter
Global filtering
Column 1
Column 2
Column 3
Column 4
Column 5
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5,5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1,7A
GeckoFirefox 1.5Win 98+ / OSX.2+1,8A
GeckoFirefox 2.0Win 98+ / OSX.2+1,8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1,9A
GeckoCamino 1.0OSX.2+1,8A
GeckoCamino 1.5OSX.3+1,8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1,7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1,8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1,1A
GeckoMozilla 1.2Win 95+ / OSX.1+1,2A
GeckoMozilla 1.3Win 95+ / OSX.1+1,3A
GeckoMozilla 1.4Win 95+ / OSX.1+1,4A
GeckoMozilla 1.5Win 95+ / OSX.1+1,5A
GeckoMozilla 1.6Win 95+ / OSX.1+1,6A
GeckoMozilla 1.7Win 98+ / OSX.1+1,7A
GeckoMozilla 1.8Win 98+ / OSX.1+1,8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1,8A
GeckoEpiphany 2.20Gnome1,8A
WebkitSafari 1.2OSX.3125,5A
WebkitSafari 1.3OSX.3312,8A
WebkitSafari 2.0OSX.4+419,3A
WebkitSafari 3.0OSX.4+522,1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420,1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8,5C/A1
KHTMLKonqureror 3.1KDE 3.13,1C
KHTMLKonqureror 3.3KDE 3.33,3A
KHTMLKonqureror 3.5KDE 3.53,5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
function fnFilterGlobal ()
+{
+	$('#example').dataTable().fnFilter( 
+		$("#global_filter").val(),
+		null, 
+		$("#global_regex")[0].checked, 
+		$("#global_smart")[0].checked
+	);
+}
+
+function fnFilterColumn ( i )
+{
+	$('#example').dataTable().fnFilter( 
+		$("#col"+(i+1)+"_filter").val(),
+		i, 
+		$("#col"+(i+1)+"_regex")[0].checked, 
+		$("#col"+(i+1)+"_smart")[0].checked
+	);
+}
+
+$(document).ready(function() {
+	$('#example').dataTable();
+	
+	$("#global_filter").keyup( fnFilterGlobal );
+	$("#global_regex").click( fnFilterGlobal );
+	$("#global_smart").click( fnFilterGlobal );
+	
+	$("#col1_filter").keyup( function() { fnFilterColumn( 0 ); } );
+	$("#col1_regex").click(  function() { fnFilterColumn( 0 ); } );
+	$("#col1_smart").click(  function() { fnFilterColumn( 0 ); } );
+	
+	// ... etc for the other four columns
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/row_details.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/row_details.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,705 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables hidden row details example +
+ +

Preamble

+

DataTables has most features enabled by default, so all you need to do to use it with one of your own tables is to call the construction function (as shown below).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
/* Formating function for row details */
+function fnFormatDetails ( oTable, nTr )
+{
+	var aData = oTable.fnGetData( nTr );
+	var sOut = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">';
+	sOut += '<tr><td>Rendering engine:</td><td>'+aData[1]+' '+aData[4]+'</td></tr>';
+	sOut += '<tr><td>Link to source:</td><td>Could provide a link here</td></tr>';
+	sOut += '<tr><td>Extra info:</td><td>And any further details here (images etc)</td></tr>';
+	sOut += '</table>';
+	
+	return sOut;
+}
+
+$(document).ready(function() {
+	/*
+	 * Insert a 'details' column to the table
+	 */
+	var nCloneTh = document.createElement( 'th' );
+	var nCloneTd = document.createElement( 'td' );
+	nCloneTd.innerHTML = '<img src="../examples_support/details_open.png">';
+	nCloneTd.className = "center";
+	
+	$('#example thead tr').each( function () {
+		this.insertBefore( nCloneTh, this.childNodes[0] );
+	} );
+	
+	$('#example tbody tr').each( function () {
+		this.insertBefore(  nCloneTd.cloneNode( true ), this.childNodes[0] );
+	} );
+	
+	/*
+	 * Initialse DataTables, with no sorting on the 'details' column
+	 */
+	var oTable = $('#example').dataTable( {
+		"aoColumnDefs": [
+			{ "bSortable": false, "aTargets": [ 0 ] }
+		],
+		"aaSorting": [[1, 'asc']]
+	});
+	
+	/* Add event listener for opening and closing details
+	 * Note that the indicator for showing which row is open is not controlled by DataTables,
+	 * rather it is done here
+	 */
+	$('#example tbody td img').live('click', function () {
+		var nTr = $(this).parents('tr')[0];
+		if ( oTable.fnIsOpen(nTr) )
+		{
+			/* This row is already open - close it */
+			this.src = "../examples_support/details_open.png";
+			oTable.fnClose( nTr );
+		}
+		else
+		{
+			/* Open this row */
+			this.src = "../examples_support/details_close.png";
+			oTable.fnOpen( nTr, fnFormatDetails(oTable, nTr), 'details' );
+		}
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/select_row.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/select_row.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,630 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables row select example +
+ +

Preamble

+

It can be quite useful at times to provide the user with the option to select rows in a DataTable. This can be done by simply using a click event to add/remove a class on the table rows. The the selected rows are then provided through the custom function fnGetSelected() for later processing.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	/* Add/remove class to a row when clicked on */
+	$('#example tr').click( function() {
+		$(this).toggleClass('row_selected');
+	} );
+	
+	/* Init the table */
+	var oTable = $('#example').dataTable( );
+} );
+
+/*
+ * I don't actually use this here, but it is provided as it might be useful and demonstrates
+ * getting the TR nodes from DataTables
+ */
+function fnGetSelected( oTableLocal )
+{
+	return oTableLocal.$('tr.row_selected');
+}
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/select_single_row.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/select_single_row.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,659 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables row select example +
+ +

Preamble

+

It can be quite useful at times to provide the user with the option to select rows in a DataTable. In this example we use standard jQuery 'click' events to add a class to table rows to indicate that they have been selected. Note that we use oTable.$() when working with rows in the table to ensure that all rows are considered, regardless of paging and filtering.

+ +

Live example

+

Delete selected row

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
var oTable;
+
+$(document).ready(function() {
+	/* Add a click handler to the rows - this could be used as a callback */
+	$("#example tbody tr").click( function( e ) {
+		if ( $(this).hasClass('row_selected') ) {
+			$(this).removeClass('row_selected');
+		}
+		else {
+			oTable.$('tr.row_selected').removeClass('row_selected');
+			$(this).addClass('row_selected');
+		}
+	});
+	
+	/* Add a click handler for the delete row */
+	$('#delete').click( function() {
+		var anSelected = fnGetSelected( oTable );
+		if ( anSelected.length !== 0 ) {
+			oTable.fnDeleteRow( anSelected[0] );
+		}
+	} );
+	
+	/* Init the table */
+	oTable = $('#example').dataTable( );
+} );
+
+
+/* Get the rows which are currently selected */
+function fnGetSelected( oTableLocal )
+{
+	return oTableLocal.$('tr.row_selected');
+}
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/show_hide.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/show_hide.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,630 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables show and hide columns dynamically example +
+ +

Preamble

+

This example shows how you can make use of the fnSetColumnVis() API function to show and hide columns in a table dynamically, after the table has been initialised (we've also got scrolling enabled here, although that is not required for the API function to work).

+ + Toggle column 1
+ Toggle column 2
+ Toggle column 3
+ Toggle column 4
+ Toggle column 5
+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"sScrollY": "200px",
+		"bPaginate": false
+	} );
+} );
+
+function fnShowHide( iCol )
+{
+	/* Get the DataTables object again - this is not a recreation, just a get of the object */
+	var oTable = $('#example').dataTable();
+	
+	var bVis = oTable.fnSettings().aoColumns[iCol].bVisible;
+	oTable.fnSetColumnVis( iCol, bVis ? false : true );
+}
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/api/tabs_and_scrolling.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/api/tabs_and_scrolling.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,456 @@ + + + + + + + DataTables example + + + + + + + +
+
+ DataTables scrolling and jQuery UI tabs +
+ +

Preamble

+

This example shows how DataTables with scrolling can be used together with jQuery UI tabs (or indeed any other method whereby the table is in a hidden (display:none) element when it is initialised). The reason this requires special consideration, is that when DataTables is initialised and it is in a hidden element, the browser doesn't have any measurements with which to give DataTables, and this will require in the misalignment of columns when scrolling is enabled.

+

The method to get around this is to call the fnAdjustColumnSizing API function. This function will calculate the column widths that are needed based on the current data and then redraw the table - which is exactly what is needed when the table becomes visible for the first time. For this we use the 'show' method provided by jQuery UI tables. We check to see if the DataTable has been created or not (note the extra selector for 'div.dataTables_scrollBody', this is added when the DataTable is initialised). If the table has been initialised, we re-size it. An optimisation could be added to re-size only of the first showing of the table.

+ +

Live example

+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionGrade
Rendering engineBrowserPlatform(s)Engine versionGrade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionGrade
Rendering engineBrowserPlatform(s)Engine versionGrade
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
+
+
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$("#tabs").tabs( {
+		"show": function(event, ui) {
+			var table = $.fn.dataTable.fnTables(true);
+			if ( table.length > 0 ) {
+				$(table).dataTable().fnAdjustColumnSizing();
+			}
+		}
+	} );
+	
+	$('table.display').dataTable( {
+		"sScrollY": "200px",
+		"bScrollCollapse": true,
+		"bPaginate": false,
+		"bJQueryUI": true,
+		"aoColumnDefs": [
+			{ "sWidth": "10%", "aTargets": [ -1 ] }
+		]
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/alt_pagination.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/alt_pagination.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,609 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables alternative pagination example +
+ +

Preamble

+

The page controls which are used by default in DataTables (forward and backward buttons only) are great for most situations, but there are cases where you may wish to customise the controls presented to the end user. This is made simple by DataTables through its extensible pagination mechanism. There are two types of pagination controls built into DataTables: two_button (default) and full_numbers. To switch between these two types, use the sPaginationType initialisation parameter. You can add additional types of pagination control by extending the $.fn.dataTableExt.oPagination object.

+

Note also that the number of pages which are shown with direct links (the 1, 2, 3...) can be changed by setting the variable jQuery.fn.dataTableExt.oPagination.iFullNumbersShowPages (default 5). Odd numbers are best to keep the display even.

+

The example below shows the full_numbers type of pagination, where 'first', 'previous', 'next' and 'last' buttons are presented, as well as the five pages around the current page.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Trident + Internet + Explorer + 4.0 + Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"sPaginationType": "full_numbers"
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/base.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/base.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,596 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables base example (CDN CSS) +
+ +

Preamble

+

DataTables has most features enabled by default, so all you need to do to use it with one of your own tables is to call the construction function (as shown below).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+ 4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable();
+} );
+ + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/base_themeroller.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/base_themeroller.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,592 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables base example (CDN CSS) +
+ +

Preamble

+

DataTables has most features enabled by default, so all you need to do to use it with one of your own tables is to call the construction function (as shown below).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+ 4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable();
+} );
+ + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/complex_header.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/complex_header.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,606 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables complex header example (row and colspans) +
+ +

Preamble

+

When using tables to display data, you will often wish to display column information in groups. DataTables fully supports colspan and rowspans in the header, assigning the required sorting listeners to the TH element suitable for that column. Each column must have one TH cell (and only one) which is unique to it for the listeners to be added. The example shown below has the core browser information grouped together.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserDetails
Platform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Details
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable();
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/dom.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/dom.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,619 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables DOM positioning example +
+ +

Preamble

+

When customising DataTables for your own usage, you might find that the default position of the feature elements (filter input etc) is not quite to your liking. To address this issue DataTables takes inspiration from the CSS 3 Advanced Layout Module and provides the sDom initialisation parameter which can be set to indicate where you which particular features to appear in the DOM. You can also specify div wrapping containers (with classes) to provide complete layout flexibility. The syntax available is:

+
    +
  • l - Length changing
  • +
  • f - Filtering input
  • +
  • t - The table!
  • +
  • i - Information
  • +
  • p - Pagination
  • +
  • r - pRocessing
  • +
  • < and > - div elements
  • +
  • <"class" and > - div with a class
  • +
  • Examples: <"wrapper"flipt>, <lf<t>ip>
  • +
+

In the example below I've moved the table information to the top of the table, and all the interaction elements to the bottom, each wrapper in a container div.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Trident + Internet + Explorer + 4.0 + Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"sDom": '<"top"i>rt<"bottom"flp><"clear">'
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/filter_only.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/filter_only.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,609 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables with only the filter feature +
+ +

Preamble

+

Disabling features that you don't wish to use for a particular table is easily done by setting a variable in the initialisation object. In the following example only the filter feature is left enabled (although I've explicitly declared it as enabled).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet Explorer 4.0Win 95+4X
TridentInternet Explorer 5.0Win 95+5C
TridentInternet Explorer 5.5Win 95+5.5A
TridentInternet Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"bPaginate": false,
+		"bLengthChange": false,
+		"bFilter": true,
+		"bSort": false,
+		"bInfo": false,
+		"bAutoWidth": false
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/flexible_width.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/flexible_width.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,602 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables - flexible width example +
+ +

Preamble

+

Often you may want to have your table resize dynamically with the page. Typically this is done by assigning width:100% in your CSS, but this presents a problem for Javascript since it can be very hard to get that relative size, rather than the absolute pixels. As such, if you apply the width attribute to the HTML table + tag, this will be used as the width for the table (overruling any CSS styles).

+

This example shows a table width width="100%" and the container is also flexible width, so as the window is resized, the table will also resize dynamically.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+ 4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable();
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/hidden_columns.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/hidden_columns.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,604 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables with hidden columns +
+ +

Preamble

+

There are times when you might find it useful to display only a sub-set of the information that was available in the original table. For example you might want to reduce the amount of data shown on screen to make it clearer for the user. This hidden data can still be filtered upon allowing the user access to that data (for example 'tag' information for a row entry), or this can be disabled. In the table below both the platform and engine version columns have been hidden, the former is searchable, the latter is not.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet Explorer 4.0Win 95+4X
TridentInternet Explorer 5.0Win 95+5C
TridentInternet Explorer 5.5Win 95+5.5A
TridentInternet Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+				$('#example').dataTable( {
+					"aoColumnDefs": [ 
+						{ "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
+						{ "bVisible": false, "aTargets": [ 3 ] }
+					] } );
+			} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/language.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/language.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,612 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables dynamic language +
+ +

Preamble

+

Changing the language information displayed by DataTables is as simple as passing in a language object to the dataTable constructor. The example above shows a different set of English language definitions to be used, rather than the defaults.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet Explorer 4.0Win 95+4X
TridentInternet Explorer 5.0Win 95+5C
TridentInternet Explorer 5.5Win 95+5.5A
TridentInternet Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+$('#example').dataTable( {
+		"oLanguage": {
+			"sLengthMenu": "Display _MENU_ records per page",
+			"sZeroRecords": "Nothing found - sorry",
+			"sInfo": "Showing _START_ to _END_ of _TOTAL_ records",
+			"sInfoEmpty": "Showing 0 to 0 of 0 records",
+			"sInfoFiltered": "(filtered from _MAX_ total records)"
+		}
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/multi_col_sort.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/multi_col_sort.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,635 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables multi column and custom sort example +
+ +

Preamble

+

As you would expect with a desktop application, DataTables allows you to sort by multiple columns at the same time. This multiple sorting mechanism is always active if the bSort initialiser is true (it is by default) and the end user can activate it by 'shift' clicking on the column they want to add to the sort. You can also pass in an array of information using the aaSorting initialiser, as I have done in the example below there the first column is sorted as the primary column and the second one then used if the elements in the first column match. As many columns as you wish can be added to the sort.

+

DataTables also provides a method to add your own sorting functions, to extend those built into DataTables. This can be very useful if you wish to sort on data formats such as currency and non-Javascript standard date formats (this natural sort algorithm is a popular useage). This is achieved by extending the jQuery.fn.dataTableExt object with ascending and descending sort functions. In the example below I've added case sensitive sorting functions.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
/* Define two custom functions (asc and desc) for string sorting */
+jQuery.fn.dataTableExt.oSort['string-case-asc']  = function(x,y) {
+	return ((x < y) ? -1 : ((x > y) ?  1 : 0));
+};
+
+jQuery.fn.dataTableExt.oSort['string-case-desc'] = function(x,y) {
+	return ((x < y) ?  1 : ((x > y) ? -1 : 0));
+};
+
+$(document).ready(function() {
+	/* Build the DataTable with third column using our custom sort functions */
+	$('#example').dataTable( {
+		"aaSorting": [ [0,'asc'], [1,'asc'] ],
+		"aoColumns": [
+			null,
+			null,
+			{ "sType": 'string-case' },
+			null,
+			null
+		]
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/multiple_tables.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/multiple_tables.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,416 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables multiple tables example +
+ +

Preamble

+

Using standard jQuery selector syntax with DataTables it is trivial to initialise multiple tables with a single line of Javascript, as shown below. All tables are completely independent, but share the parameters passed thought the initialiser object (for example if you specific the Spanish language file, all tables will be shown in Spanish).

+ +

Live example

+ +

Trident based browsers

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BrowserPlatform(s)Engine versionCSS grade
Internet + Explorer 4.0Win 95+4X
Internet + Explorer 5.0Win 95+5C
Internet + Explorer 5.5Win 95+5.5A
Internet + Explorer 6Win 98+6A
Internet Explorer 7Win XP SP2+7A
AOL browser (AOL desktop)Win XP6A
+
+
+ + +

Gecko based browsers

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BrowserPlatform(s)Engine versionCSS grade
Firefox 1.0Win 98+ / OSX.2+1.7A
Firefox 1.5Win 98+ / OSX.2+1.8A
Firefox 2.0Win 98+ / OSX.2+1.8A
Firefox 3.0Win 2k+ / OSX.3+1.9A
Camino 1.0OSX.2+1.8A
Camino 1.5OSX.3+1.8A
Netscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
Netscape Browser 8Win 98SE+1.7A
Netscape Navigator 9Win 98+ / OSX.2+1.8A
Mozilla 1.0Win 95+ / OSX.1+1A
Mozilla 1.1Win 95+ / OSX.1+1.1A
Mozilla 1.2Win 95+ / OSX.1+1.2A
Mozilla 1.3Win 95+ / OSX.1+1.3A
Mozilla 1.4Win 95+ / OSX.1+1.4A
Mozilla 1.5Win 95+ / OSX.1+1.5A
Mozilla 1.6Win 95+ / OSX.1+1.6A
Mozilla 1.7Win 98+ / OSX.1+1.7A
Mozilla 1.8Win 98+ / OSX.1+1.8A
Seamonkey 1.1Win 98+ / OSX.2+1.8A
Epiphany 2.20Gnome1.8A
+
+
+ + +

WebKit based browsers (note no platform)

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BrowserEngine versionCSS grade
Safari 1.2125.5A
Safari 1.3312.8A
Safari 2.0419.3A
Safari 3.0522.1A
OmniWeb 5.5420A
iPod Touch / iPhone420.1A
S60413A
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('.dataTable').dataTable();
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/scroll_x.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/scroll_x.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,610 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables horizontal scrolling example +
+ +

Preamble

+

This DataTables horizontal scrolling example shows horizontal scrolling on a DataTable, which is very useful for when you have a wide table, with a large number of columns to display, but want to constrain it to a limited horizontal display area. To enable x scrolling simply set the sScrollX parameter to be whatever you want the container wrapper's width to be (any CSS measurement is acceptable, or just a number which is treated as pixels). Note also that sScrollXInner is used here to force the table to be wider than is strictly needed. You may or may not want to include this parameter depending on your application.

+

Also shown in this example is the use of a 'collapsing scroll table' by using bScrollCollapse. When this parameter is set to true, the table size will 'collapse' down to match the number of rows, if the table height is smaller than the scrollable area.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"sScrollX": "100%",
+		"sScrollXInner": "110%",
+		"bScrollCollapse": true
+	} );
+} );
+ + + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/scroll_xy.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/scroll_xy.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,600 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables horizontal and vertical scrolling example +
+ +

Preamble

+

In this example you can see DataTables doing horizontal and vertical scrolling at the same time. Note also that pagination is enabled, and the scrolling accounts for this.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"sScrollY": 200,
+		"sScrollX": "100%",
+		"sScrollXInner": "110%"
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/scroll_y.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/scroll_y.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,609 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables vertical scrolling example +
+ +

Preamble

+

This example shows the DataTables table body scrolling in the vertical direction. This can generally be seen as an alternative method to pagination for displaying a large table in a fairly small vertical area, and as such pagination has been disabled here (note that this is not mandatory, it will work just fine with pagination enabled as well!). The example is set up to show grid lines using CSS, which is useful for alignment, both for testing and end user usability. To enable y scrolling simply set the sScrollY parameter to be whatever you want the container wrapper's height to be (any CSS measurement is acceptable, or just a number which is treated as pixels).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"sScrollY": "200px",
+		"bPaginate": false,
+		"bScrollCollapse": true
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/scroll_y_infinite.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/scroll_y_infinite.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,610 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables infinite vertical scrolling example +
+ +

Preamble

+

This example shows the DataTables table body scrolling in the vertical direction with infinite scrolling. The idea of infinite scrolling means that data will be added to the table dynamically, as and when needed by the user scrolling the table. A sub-set of the data is loaded initially, and more added as needed (technically of course, it is not "infinite" since it will stop loading data at the end of the data set!). Note that pagination much be enabled for infinite scrolling to work, but the pagination controls will not be shown (they could be, but can cause very confusing user interaction).

+

DataTables' infinite scroll can be used with any of the four data sources supported, and they do not require any modification to work (including server-side scripts).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"bScrollInfinite": true,
+		"bScrollCollapse": true,
+		"sScrollY": "200px"
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/scroll_y_theme.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/scroll_y_theme.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,609 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables vertical scrolling with jQuery UI ThemeRoller example +
+ +

Preamble

+

This example is an extension of the vertical scrolling example, showing DataTables ability to be themed by jQuery UI's ThemeRoller.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"sScrollY": 200,
+		"bJQueryUI": true,
+		"sPaginationType": "full_numbers"
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/state_save.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/state_save.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,604 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables state saving example +
+ +

Preamble

+

DataTables can use cookies in the end user's web-browser in order to store it's state after each change in drawing. What this means is that if the user were to reload the page, the table should remain exactly as it was (length, filtering, pagination and sorting). This feature is disabled by default, but can be easily enabled using the bStateSave initialisation parameter as shown in this example. Note also that the duration of the cookie can be set using the iCookieDuration initialisation parameter (which is in seconds).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"bStateSave": true
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/table_sorting.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/table_sorting.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,604 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables table sorting example +
+ +

Preamble

+

With DataTables you can alter the sorting characteristics of the table at initialisation time. Using the aaSorting initialisation parameter, you can get the table exactly how you want to present the information. The aaSorting parameter is an array of arrays where the first value is the column to sort on, and the second is 'asc' or 'desc' as required (it is a double array for multi-column sorting). The table below is sorted (descending) by the CSS grade. Note also that the 'Engine version' column is automatically detected as a numeric column and sorted accordingly. Finally, also note that "asSorting" has been defined for the column in question for this example. The reason for this is that DataTables uses ["asc","desc"] for sorting order by default, but we would in this case prefer "desc" to be given first priority.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"aaSorting": [[ 4, "desc" ]]
+	} );
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/themes.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/themes.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,598 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables with jQuery UI themes example +
+ +

Preamble

+

Styling widgets such as DataTables can often take a considerable amount of time to fully integrate it into your site/application, with the demo styles as a base. This holds true for all widgets, and the jQuery UI team have addressed this issue by introducing themes through their excellent ThemeRoller. DataTables has full support for ThemeRoller created themes, all you need to do is enable the bJQueryUI flag in the initialisation object, and the required mark-up and classes will be added by DataTables.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	oTable = $('#example').dataTable({
+		"bJQueryUI": true,
+		"sPaginationType": "full_numbers"
+	});
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/basic_init/zero_config.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/basic_init/zero_config.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,600 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables zero configuration example +
+ +

Preamble

+

DataTables has most features enabled by default, so all you need to do to use it with one of your own tables is to call the construction function (as shown below).

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+ 4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable();
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/data_sources/ajax.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/data_sources/ajax.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,208 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables AJAX source example +
+ +

Preamble

+

Although DataTables is built from the principle of progressive enhancement, it is often useful to be able to construct a table from an AJAX source. This can be done in one of two ways - either using the aaData initialisation parameter which takes an array of data, or using the sAjaxSource initialisation parameter which will have DataTables go to that source with an XHR call and load data from there. This example shows the latter method in action. DataTables expects an object with an array called "aaData" with the data source.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"bProcessing": true,
+		"sAjaxSource": '../ajax/sources/arrays.txt'
+	} );
+} );
+ + + +

Server response

+

The code below shows the latest JSON data that has been returned from the server in response to the Ajax request made by DataTables. This will update as further requests are made.

+

+			
+			
+			

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/data_sources/dom.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/data_sources/dom.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,600 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables zero configuration example +
+ +

Preamble

+

The foundation for DataTables is progressive enhancement, so it is very adept at reading table information directly from the DOM. Therefore, if your user's browser is capable the user will get a DataTables enhanced experience. Otherwise they get the plain HTML.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0Win 95+4X
TridentInternet + Explorer 5.0Win 95+5C
TridentInternet + Explorer 5.5Win 95+5.5A
TridentInternet + Explorer 6Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable();
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/data_sources/js_array.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/data_sources/js_array.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,269 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables dynamic creation example +
+ +

Preamble

+

At times you will wish to be able to create a table from dynamic information passed directly to DataTables, rather than having it read from the document. This is achieved using the "aaData" array in the initialisation object. A table node must first be created before the initialiser is called (as shown in the code below). This is also useful for optimisation - if you are able to format the data as required, this method can save a lot of DOM parsing to create a table.

+ +

Live example

+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#demo').html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>' );
+	$('#example').dataTable( {
+		"aaData": [
+			/* Reduced data set */
+			[ "Trident", "Internet Explorer 4.0", "Win 95+", 4, "X" ],
+			[ "Trident", "Internet Explorer 5.0", "Win 95+", 5, "C" ],
+			[ "Trident", "Internet Explorer 5.5", "Win 95+", 5.5, "A" ],
+			[ "Trident", "Internet Explorer 6.0", "Win 98+", 6, "A" ],
+			[ "Trident", "Internet Explorer 7.0", "Win XP SP2+", 7, "A" ],
+			[ "Gecko", "Firefox 1.5", "Win 98+ / OSX.2+", 1.8, "A" ],
+			[ "Gecko", "Firefox 2", "Win 98+ / OSX.2+", 1.8, "A" ],
+			[ "Gecko", "Firefox 3", "Win 2k+ / OSX.3+", 1.9, "A" ],
+			[ "Webkit", "Safari 1.2", "OSX.3", 125.5, "A" ],
+			[ "Webkit", "Safari 1.3", "OSX.3", 312.8, "A" ],
+			[ "Webkit", "Safari 2.0", "OSX.4+", 419.3, "A" ],
+			[ "Webkit", "Safari 3.0", "OSX.4+", 522.1, "A" ]
+		],
+		"aoColumns": [
+			{ "sTitle": "Engine" },
+			{ "sTitle": "Browser" },
+			{ "sTitle": "Platform" },
+			{ "sTitle": "Version", "sClass": "center" },
+			{ "sTitle": "Grade", "sClass": "center" }
+		]
+	} );	
+} );
+ + + + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/data_sources/server_side.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/data_sources/server_side.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,390 @@ + + + + + + + DataTables example + + + + + + +
+
+ DataTables server-side processing example +
+ +

Preamble

+

There are many ways to get your data into DataTables, and if you are working with seriously large databases, you might want to consider using the server-side options that DataTables provides. Basically all of the paging, filtering, sorting etc that DataTables does can be handed off to a server (or any other data source - Google Gears or Adobe Air for example!) and DataTables is just an events and display module.

+

The example here shows a very simple display of the CSS data (used in all my other examples), but in this instance coming from the server on each draw. Filtering, multi-column sorting etc all work as you would expect.

+ +

Live example

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
Loading data from server
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+
+ + +

Initialisation code

+
$(document).ready(function() {
+	$('#example').dataTable( {
+		"bProcessing": true,
+		"bServerSide": true,
+		"sAjaxSource": "../server_side/scripts/server_processing.php"
+	} );
+} );
+ + + +

Server response

+

The code below shows the latest JSON data that has been returned from the server in response to the Ajax request made by DataTables. This will update as further requests are made.

+

+			
+			
+			

Server side (PHP) code

+
<?php
+	/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+	 * Easy set variables
+	 */
+	
+	/* Array of database columns which should be read and sent back to DataTables. Use a space where
+	 * you want to insert a non-database field (for example a counter or static image)
+	 */
+	$aColumns = array( 'engine', 'browser', 'platform', 'version', 'grade' );
+	
+	/* Indexed column (used for fast and accurate table cardinality) */
+	$sIndexColumn = "id";
+	
+	/* DB table to use */
+	$sTable = "ajax";
+	
+	/* Database connection information */
+	$gaSql['user']       = "";
+	$gaSql['password']   = "";
+	$gaSql['db']         = "";
+	$gaSql['server']     = "localhost";
+	
+	/* REMOVE THIS LINE (it just includes my SQL connection user/pass) */
+	include( $_SERVER['DOCUMENT_ROOT']."/datatables/mysql.php" );
+	
+	
+	/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+	 * If you just want to use the basic configuration for DataTables with PHP server-side, there is
+	 * no need to edit below this line
+	 */
+	
+	/* 
+	 * MySQL connection
+	 */
+	$gaSql['link'] =  mysql_pconnect( $gaSql['server'], $gaSql['user'], $gaSql['password']  ) or
+		die( 'Could not open connection to server' );
+	
+	mysql_select_db( $gaSql['db'], $gaSql['link'] ) or 
+		die( 'Could not select database '. $gaSql['db'] );
+	
+	
+	/* 
+	 * Paging
+	 */
+	$sLimit = "";
+	if ( isset( $_GET['iDisplayStart'] ) && $_GET['iDisplayLength'] != '-1' )
+	{
+		$sLimit = "LIMIT ".intval( $_GET['iDisplayStart'] ).", ".
+			intval( $_GET['iDisplayLength'] );
+	}
+	
+	
+	/*
+	 * Ordering
+	 */
+	$sOrder = "";
+	if ( isset( $_GET['iSortCol_0'] ) )
+	{
+		$sOrder = "ORDER BY  ";
+		for ( $i=0 ; $i<intval( $_GET['iSortingCols'] ) ; $i++ )
+		{
+			if ( $_GET[ 'bSortable_'.intval($_GET['iSortCol_'.$i]) ] == "true" )
+			{
+				$sOrder .= "`".$aColumns[ intval( $_GET['iSortCol_'.$i] ) ]."` ".
+					($_GET['sSortDir_'.$i]==='asc' ? 'asc' : 'desc') .", ";
+			}
+		}
+		
+		$sOrder = substr_replace( $sOrder, "", -2 );
+		if ( $sOrder == "ORDER BY" )
+		{
+			$sOrder = "";
+		}
+	}
+	
+	
+	/* 
+	 * Filtering
+	 * NOTE this does not match the built-in DataTables filtering which does it
+	 * word by word on any field. It's possible to do here, but concerned about efficiency
+	 * on very large tables, and MySQL's regex functionality is very limited
+	 */
+	$sWhere = "";
+	if ( isset($_GET['sSearch']) && $_GET['sSearch'] != "" )
+	{
+		$sWhere = "WHERE (";
+		for ( $i=0 ; $i<count($aColumns) ; $i++ )
+		{
+			$sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%' OR ";
+		}
+		$sWhere = substr_replace( $sWhere, "", -3 );
+		$sWhere .= ')';
+	}
+	
+	/* Individual column filtering */
+	for ( $i=0 ; $i<count($aColumns) ; $i++ )
+	{
+		if ( isset($_GET['bSearchable_'.$i]) && $_GET['bSearchable_'.$i] == "true" && $_GET['sSearch_'.$i] != '' )
+		{
+			if ( $sWhere == "" )
+			{
+				$sWhere = "WHERE ";
+			}
+			else
+			{
+				$sWhere .= " AND ";
+			}
+			$sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string($_GET['sSearch_'.$i])."%' ";
+		}
+	}
+	
+	
+	/*
+	 * SQL queries
+	 * Get data to display
+	 */
+	$sQuery = "
+		SELECT SQL_CALC_FOUND_ROWS `".str_replace(" , ", " ", implode("`, `", $aColumns))."`
+		FROM   $sTable
+		$sWhere
+		$sOrder
+		$sLimit
+		";
+	$rResult = mysql_query( $sQuery, $gaSql['link'] ) or die(mysql_error());
+	
+	/* Data set length after filtering */
+	$sQuery = "
+		SELECT FOUND_ROWS()
+	";
+	$rResultFilterTotal = mysql_query( $sQuery, $gaSql['link'] ) or die(mysql_error());
+	$aResultFilterTotal = mysql_fetch_array($rResultFilterTotal);
+	$iFilteredTotal = $aResultFilterTotal[0];
+	
+	/* Total data set length */
+	$sQuery = "
+		SELECT COUNT(`".$sIndexColumn."`)
+		FROM   $sTable
+	";
+	$rResultTotal = mysql_query( $sQuery, $gaSql['link'] ) or die(mysql_error());
+	$aResultTotal = mysql_fetch_array($rResultTotal);
+	$iTotal = $aResultTotal[0];
+	
+	
+	/*
+	 * Output
+	 */
+	$output = array(
+		"sEcho" => intval($_GET['sEcho']),
+		"iTotalRecords" => $iTotal,
+		"iTotalDisplayRecords" => $iFilteredTotal,
+		"aaData" => array()
+	);
+	
+	while ( $aRow = mysql_fetch_array( $rResult ) )
+	{
+		$row = array();
+		for ( $i=0 ; $i<count($aColumns) ; $i++ )
+		{
+			if ( $aColumns[$i] == "version" )
+			{
+				/* Special output formatting for 'version' column */
+				$row[] = ($aRow[ $aColumns[$i] ]=="0") ? '-' : $aRow[ $aColumns[$i] ];
+			}
+			else if ( $aColumns[$i] != ' ' )
+			{
+				/* General output */
+				$row[] = $aRow[ $aColumns[$i] ];
+			}
+		}
+		$output['aaData'][] = $row;
+	}
+	
+	echo json_encode( $output );
+?>
+ + +

Other examples

+ + + + + + +
+ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/examples_support/data.sql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/examples_support/data.sql Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,67 @@ +CREATE TABLE IF NOT EXISTS `ajax` ( + `id` int(10) NOT NULL auto_increment, + `engine` varchar(255) NOT NULL default '', + `browser` varchar(255) NOT NULL default '', + `platform` varchar(255) NOT NULL default '', + `version` float NOT NULL default '0', + `grade` varchar(20) NOT NULL default '', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; + +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Trident', 'Internet Explorer 4.0', 'Win 95+', '4', 'X' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Trident', 'Internet Explorer 5.0', 'Win 95+', '5', 'C' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Trident', 'Internet Explorer 5.5', 'Win 95+', '5.5', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Trident', 'Internet Explorer 6', 'Win 98+', '6', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Trident', 'Internet Explorer 7', 'Win XP SP2+', '7', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Trident', 'AOL browser (AOL desktop)', 'Win XP', '6', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Firefox 1.0', 'Win 98+ / OSX.2+', '1.7', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Firefox 1.5', 'Win 98+ / OSX.2+', '1.8', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Firefox 2.0', 'Win 98+ / OSX.2+', '1.8', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Firefox 3.0', 'Win 2k+ / OSX.3+', '1.9', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Camino 1.0', 'OSX.2+', '1.8', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Camino 1.5', 'OSX.3+', '1.8', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Netscape 7.2', 'Win 95+ / Mac OS 8.6-9.2', '1.7', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Netscape Browser 8', 'Win 98SE+', '1.7', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Netscape Navigator 9', 'Win 98+ / OSX.2+', '1.8', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Mozilla 1.0', 'Win 95+ / OSX.1+', '1', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Mozilla 1.1', 'Win 95+ / OSX.1+', '1.1', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Mozilla 1.2', 'Win 95+ / OSX.1+', '1.2', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Mozilla 1.3', 'Win 95+ / OSX.1+', '1.3', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Mozilla 1.4', 'Win 95+ / OSX.1+', '1.4', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Mozilla 1.5', 'Win 95+ / OSX.1+', '1.5', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Mozilla 1.6', 'Win 95+ / OSX.1+', '1.6', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Mozilla 1.7', 'Win 98+ / OSX.1+', '1.7', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Mozilla 1.8', 'Win 98+ / OSX.1+', '1.8', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Seamonkey 1.1', 'Win 98+ / OSX.2+', '1.8', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Gecko', 'Epiphany 2.20', 'Gnome', '1.8', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Webkit', 'Safari 1.2', 'OSX.3', '125.5', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Webkit', 'Safari 1.3', 'OSX.3', '312.8', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Webkit', 'Safari 2.0', 'OSX.4+', '419.3', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Webkit', 'Safari 3.0', 'OSX.4+', '522.1', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Webkit', 'OmniWeb 5.5', 'OSX.4+', '420', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Webkit', 'iPod Touch / iPhone', 'iPod', '420.1', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Webkit', 'S60', 'S60', '413', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Presto', 'Opera 7.0', 'Win 95+ / OSX.1+', '-', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Presto', 'Opera 7.5', 'Win 95+ / OSX.2+', '-', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Presto', 'Opera 8.0', 'Win 95+ / OSX.2+', '-', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Presto', 'Opera 8.5', 'Win 95+ / OSX.2+', '-', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Presto', 'Opera 9.0', 'Win 95+ / OSX.3+', '-', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Presto', 'Opera 9.2', 'Win 88+ / OSX.3+', '-', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Presto', 'Opera 9.5', 'Win 88+ / OSX.3+', '-', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Presto', 'Opera for Wii', 'Wii', '-', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Presto', 'Nokia N800', 'N800', '-', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Presto', 'Nintendo DS browser', 'Nintendo DS', '8.5', 'C/A1' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'KHTML', 'Konqureror 3.1', 'KDE 3.1', '3.1', 'C' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'KHTML', 'Konqureror 3.3', 'KDE 3.3', '3.3', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'KHTML', 'Konqureror 3.5', 'KDE 3.5', '3.5', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Tasman', 'Internet Explorer 4.5', 'Mac OS 8-9', '-', 'X' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Tasman', 'Internet Explorer 5.1', 'Mac OS 7.6-9', '1', 'C' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Tasman', 'Internet Explorer 5.2', 'Mac OS 8-X', '1', 'C' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Misc', 'NetFront 3.1', 'Embedded devices', '-', 'C' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Misc', 'NetFront 3.4', 'Embedded devices', '-', 'A' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Misc', 'Dillo 0.8', 'Embedded devices', '-', 'X' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Misc', 'Links', 'Text only', '-', 'X' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Misc', 'Lynx', 'Text only', '-', 'X' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Misc', 'IE Mobile', 'Windows Mobile 6', '-', 'C' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Misc', 'PSP browser', 'PSP', '-', 'C' ); +INSERT INTO ajax ( engine, browser, platform, version, grade ) VALUES ( 'Other browsers', 'All others', '-', '-', 'U' ); \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/examples_support/de_DE.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/examples_support/de_DE.txt Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,17 @@ +{ + "sProcessing": "Bitte warten...", + "sLengthMenu": "_MENU_ Eintrรคge anzeigen", + "sZeroRecords": "Keine Eintrรคge vorhanden.", + "sInfo": "_START_ bis _END_ von _TOTAL_ Eintrรคgen", + "sInfoEmpty": "0 bis 0 von 0 Eintrรคgen", + "sInfoFiltered": "(gefiltert von _MAX_ Eintrรคgen)", + "sInfoPostFix": "", + "sSearch": "Suchen", + "sUrl": "", + "oPaginate": { + "sFirst": "Erster", + "sPrevious": "Zurรผck", + "sNext": "Nรคchster", + "sLast": "Letzter" + } +} \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/examples_support/details_close.png Binary file DataTables-1.9.4/examples/examples_support/details_close.png has changed diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/examples_support/details_open.png Binary file DataTables-1.9.4/examples/examples_support/details_open.png has changed diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/examples_support/editable_ajax.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/examples_support/editable_ajax.php Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,3 @@ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/examples_support/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/examples_support/index.html Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/examples_support/infiniteScroll.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/examples_support/infiniteScroll.php Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,97 @@ + \ No newline at end of file diff -r 000000000000 -r ac5f9272033b DataTables-1.9.4/examples/examples_support/jquery-ui-tabs.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataTables-1.9.4/examples/examples_support/jquery-ui-tabs.js Tue Jul 01 11:42:23 2014 -0400 @@ -0,0 +1,65 @@ +/*! + * jQuery UI 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +(function(c){c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.2",plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=0)&&c(a).is(":focusable")}})}})(jQuery); +;/*! + * jQuery UI Widget 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Widget + */ +(function(b){var j=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add(this).each(function(){b(this).triggerHandler("remove")});return j.call(b(this),a,c)})};b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend({},c.options);b[e][a].prototype= +b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.substring(0,1)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==undefined){h=i;return false}}):this.each(function(){var g= +b.data(this,a);if(g){d&&g.option(d);g._init()}else b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){this.element=b(c).data(this.widgetName,this);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(c)[this.widgetName],a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create(); +this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a,e=this;if(arguments.length===0)return b.extend({},e.options);if(typeof a==="string"){if(c===undefined)return this.options[a];d={};d[a]=c}b.each(d,function(f, +h){e._setOption(f,h)});return e},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a= +b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery); +;/* + * jQuery UI Tabs 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(d){function s(){return++u}function v(){return++w}var u=0,w=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:'
  • #{label}
  • '},_create:function(){this._tabify(true)},_setOption:function(c,e){if(c=="selected")this.options.collapsible&& +e==this.options.selected||this.select(e);else{this.options[c]=e;this._tabify()}},_tabId:function(c){return c.title&&c.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+s()},_sanitizeSelector:function(c){return c.replace(/:/g,"\\:")},_cookie:function(){var c=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+v());return d.cookie.apply(null,[c].concat(d.makeArray(arguments)))},_ui:function(c,e){return{tab:c,panel:e,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var c= +d(this);c.html(c.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function e(g,f){g.css({display:""});!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}this.list=this.element.find("ol,ul").eq(0);this.lis=d("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);var a=this,b=this.options,h=/^#.+/;this.anchors.each(function(g,f){var j=d(f).attr("href"),l=j.split("#")[0],p;if(l&&(l===location.toString().split("#")[0]|| +(p=d("base")[0])&&l===p.href)){j=f.hash;f.href=j}if(h.test(j))a.panels=a.panels.add(a._sanitizeSelector(j));else if(j!="#"){d.data(f,"href.tabs",j);d.data(f,"load.tabs",j.replace(/#.*$/,""));j=a._tabId(f);f.href="#"+j;f=d("#"+j);if(!f.length){f=d(b.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else b.disabled.push(g)});if(c){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(b.selected===undefined){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){b.selected=g;return false}});if(typeof b.selected!="number"&&b.cookie)b.selected=parseInt(a._cookie(),10);if(typeof b.selected!="number"&&this.lis.filter(".ui-tabs-selected").length)b.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));b.selected=b.selected||(this.lis.length?0:-1)}else if(b.selected===null)b.selected=-1;b.selected=b.selected>=0&&this.anchors[b.selected]||b.selected<0?b.selected:0;b.disabled=d.unique(b.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(b.selected,b.disabled)!=-1&&b.disabled.splice(d.inArray(b.selected,b.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(b.selected>=0&&this.anchors.length){this.panels.eq(b.selected).removeClass("ui-tabs-hide");this.lis.eq(b.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[b.selected],a.panels[b.selected]))});this.load(b.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else b.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));this.element[b.collapsible?"addClass": +"removeClass"]("ui-tabs-collapsible");b.cookie&&this._cookie(b.selected,b.cookie);c=0;for(var i;i=this.lis[c];c++)d(i)[d.inArray(c,b.disabled)!=-1&&!d(i).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");b.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(b.event!="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+g)};this.lis.bind("mouseover.tabs", +function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(b.fx)if(d.isArray(b.fx)){m=b.fx[0];o=b.fx[1]}else m=o=b.fx;var q=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",function(){e(f,o);a._trigger("show", +null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},r=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};this.anchors.bind(b.event+".tabs", +function(){var g=this,f=d(this).closest("li"),j=a.panels.filter(":not(.ui-tabs-hide)"),l=d(a._sanitizeSelector(this.hash));if(f.hasClass("ui-tabs-selected")&&!b.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}b.selected=a.anchors.index(this);a.abort();if(b.collapsible)if(f.hasClass("ui-tabs-selected")){b.selected=-1;b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){r(g, +j)}).dequeue("tabs");this.blur();return false}else if(!j.length){b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this));this.blur();return false}b.cookie&&a._cookie(b.selected,b.cookie);if(l.length){j.length&&a.element.queue("tabs",function(){r(g,j)});a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";d.browser.msie&&this.blur()});this.anchors.bind("click.tabs", +function(){return false})},destroy:function(){var c=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(b,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this, +"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});c.cookie&&this._cookie(null,c.cookie);return this},add:function(c,e,a){if(a===undefined)a=this.anchors.length;var b=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,e));c=!c.indexOf("#")?c.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs", +true);var i=d("#"+c);i.length||(i=d(h.panelTemplate).attr("id",c).data("destroy.tabs",true));i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);i.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);i.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");i.removeClass("ui-tabs-hide"); +this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(c){var e=this.options,a=this.lis.eq(c).remove(),b=this.panels.eq(c).remove();if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(c+(c+1=c?--h:h});this._tabify();this._trigger("remove", +null,this._ui(a.find("a")[0],b[0]));return this},enable:function(c){var e=this.options;if(d.inArray(c,e.disabled)!=-1){this.lis.eq(c).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=c});this._trigger("enable",null,this._ui(this.anchors[c],this.panels[c]));return this}},disable:function(c){var e=this.options;if(c!=e.selected){this.lis.eq(c).addClass("ui-state-disabled");e.disabled.push(c);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}return this}, +select:function(c){if(typeof c=="string")c=this.anchors.index(this.anchors.filter("[href$="+c+"]"));else if(c===null)c=-1;if(c==-1&&this.options.collapsible)c=this.options.selected;this.anchors.eq(c).trigger(this.options.event+".tabs");return this},load:function(c){var e=this,a=this.options,b=this.anchors.eq(c)[0],h=d.data(b,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(b,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(c).addClass("ui-state-processing"); +if(a.spinner){var i=d("span",b);i.data("label.tabs",i.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(b.hash)).html(k);e._cleanup();a.cache&&d.data(b,"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.error(k,n,c,b)}catch(m){}}}));e.element.dequeue("tabs");return this}}, +abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(c,e){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.2"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(c,e){var a=this,b=this.options,h=a._rotate||(a._rotate= +function(i){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=b.selected;a.select(++k: + * http://www.dyve.net/jquery/?editable + * + */ + +/** + * Version 1.7.1 + * + * ** means there is basic unit tests for this parameter. + * + * @name Jeditable + * @type jQuery + * @param String target (POST) URL or function to send edited content to ** + * @param Hash options additional options + * @param String options[method] method to use to send edited content (POST or PUT) ** + * @param Function options[callback] Function to run after submitting edited content ** + * @param String options[name] POST parameter name of edited content + * @param String options[id] POST parameter name of edited div id + * @param Hash options[submitdata] Extra parameters to send when submitting edited content. + * @param String options[type] text, textarea or select (or any 3rd party input type) ** + * @param Integer options[rows] number of rows if using textarea ** + * @param Integer options[cols] number of columns if using textarea ** + * @param Mixed options[height] 'auto', 'none' or height in pixels ** + * @param Mixed options[width] 'auto', 'none' or width in pixels ** + * @param String options[loadurl] URL to fetch input content before editing ** + * @param String options[loadtype] Request type for load url. Should be GET or POST. + * @param String options[loadtext] Text to display while loading external content. + * @param Mixed options[loaddata] Extra parameters to pass when fetching content before editing. + * @param Mixed options[data] Or content given as paramameter. String or function.** + * @param String options[indicator] indicator html to show when saving + * @param String options[tooltip] optional tooltip text via title attribute ** + * @param String options[event] jQuery event such as 'click' of 'dblclick' ** + * @param String options[submit] submit button value, empty means no button ** + * @param String options[cancel] cancel button value, empty means no button ** + * @param String options[cssclass] CSS class to apply to input form. 'inherit' to copy from parent. ** + * @param String options[style] Style to apply to input form 'inherit' to copy from parent. ** + * @param String options[select] true or false, when true text is highlighted ?? + * @param String options[placeholder] Placeholder text or html to insert when element is empty. ** + * @param String options[onblur] 'cancel', 'submit', 'ignore' or function ?? + * + * @param Function options[onsubmit] function(settings, original) { ... } called before submit + * @param Function options[onreset] function(settings, original) { ... } called before reset + * @param Function options[onerror] function(settings, original, xhr) { ... } called on error + * + * @param Hash options[ajaxoptions] jQuery Ajax options. See docs.jquery.com. + * + */ + +(function($) { + + $.fn.editable = function(target, options) { + + if ('disable' == target) { + $(this).data('disabled.editable', true); + return; + } + if ('enable' == target) { + $(this).data('disabled.editable', false); + return; + } + if ('destroy' == target) { + $(this) + .unbind($(this).data('event.editable')) + .removeData('disabled.editable') + .removeData('event.editable'); + return; + } + + var settings = $.extend({}, $.fn.editable.defaults, {target:target}, options); + + /* setup some functions */ + var plugin = $.editable.types[settings.type].plugin || function() { }; + var submit = $.editable.types[settings.type].submit || function() { }; + var buttons = $.editable.types[settings.type].buttons + || $.editable.types['defaults'].buttons; + var content = $.editable.types[settings.type].content + || $.editable.types['defaults'].content; + var element = $.editable.types[settings.type].element + || $.editable.types['defaults'].element; + var reset = $.editable.types[settings.type].reset + || $.editable.types['defaults'].reset; + var callback = settings.callback || function() { }; + var onedit = settings.onedit || function() { }; + var onsubmit = settings.onsubmit || function() { }; + var onreset = settings.onreset || function() { }; + var onerror = settings.onerror || reset; + + /* show tooltip */ + if (settings.tooltip) { + $(this).attr('title', settings.tooltip); + } + + settings.autowidth = 'auto' == settings.width; + settings.autoheight = 'auto' == settings.height; + + return this.each(function() { + + /* save this to self because this changes when scope changes */ + var self = this; + + /* inlined block elements lose their width and height after first edit */ + /* save them for later use as workaround */ + var savedwidth = $(self).width(); + var savedheight = $(self).height(); + + /* save so it can be later used by $.editable('destroy') */ + $(this).data('event.editable', settings.event); + + /* if element is empty add something clickable (if requested) */ + if (!$.trim($(this).html())) { + $(this).html(settings.placeholder); + } + + $(this).bind(settings.event, function(e) { + + /* abort if disabled for this element */ + if (true === $(this).data('disabled.editable')) { + return; + } + + /* prevent throwing an exeption if edit field is clicked again */ + if (self.editing) { + return; + } + + /* abort if onedit hook returns false */ + if (false === onedit.apply(this, [settings, self])) { + return; + } + + /* prevent default action and bubbling */ + e.preventDefault(); + e.stopPropagation(); + + /* remove tooltip */ + if (settings.tooltip) { + $(self).removeAttr('title'); + } + + /* figure out how wide and tall we are, saved width and height */ + /* are workaround for http://dev.jquery.com/ticket/2190 */ + if (0 == $(self).width()) { + //$(self).css('visibility', 'hidden'); + settings.width = savedwidth; + settings.height = savedheight; + } else { + if (settings.width != 'none') { + settings.width = + settings.autowidth ? $(self).width() : settings.width; + } + if (settings.height != 'none') { + settings.height = + settings.autoheight ? $(self).height() : settings.height; + } + } + //$(this).css('visibility', ''); + + /* remove placeholder text, replace is here because of IE */ + if ($(this).html().toLowerCase().replace(/(;|")/g, '') == + settings.placeholder.toLowerCase().replace(/(;|")/g, '')) { + $(this).html(''); + } + + self.editing = true; + self.revert = $(self).html(); + $(self).html(''); + + /* create the form object */ + var form = $('
    '); + + /* apply css or style or both */ + if (settings.cssclass) { + if ('inherit' == settings.cssclass) { + form.attr('class', $(self).attr('class')); + } else { + form.attr('class', settings.cssclass); + } + } + + if (settings.style) { + if ('inherit' == settings.style) { + form.attr('style', $(self).attr('style')); + /* IE needs the second line or display wont be inherited */ + form.css('display', $(self).css('display')); + } else { + form.attr('style', settings.style); + } + } + + /* add main input element to form and store it in input */ + var input = element.apply(form, [settings, self]); + + /* set input content via POST, GET, given data or existing value */ + var input_content; + + if (settings.loadurl) { + var t = setTimeout(function() { + input.disabled = true; + content.apply(form, [settings.loadtext, settings, self]); + }, 100); + + var loaddata = {}; + loaddata[settings.id] = self.id; + if ($.isFunction(settings.loaddata)) { + $.extend(loaddata, settings.loaddata.apply(self, [self.revert, settings])); + } else { + $.extend(loaddata, settings.loaddata); + } + $.ajax({ + type : settings.loadtype, + url : settings.loadurl, + data : loaddata, + async : false, + success: function(result) { + window.clearTimeout(t); + input_content = result; + input.disabled = false; + } + }); + } else if (settings.data) { + input_content = settings.data; + if ($.isFunction(settings.data)) { + input_content = settings.data.apply(self, [self.revert, settings]); + } + } else { + input_content = self.revert; + } + content.apply(form, [input_content, settings, self]); + + input.attr('name', settings.name); + + /* add buttons to the form */ + buttons.apply(form, [settings, self]); + + /* add created form to self */ + $(self).append(form); + + /* attach 3rd party plugin if requested */ + plugin.apply(form, [settings, self]); + + /* focus to first visible form element */ + $(':input:visible:enabled:first', form).focus(); + + /* highlight input contents when requested */ + if (settings.select) { + input.select(); + } + + /* discard changes if pressing esc */ + input.keydown(function(e) { + if (e.keyCode == 27) { + e.preventDefault(); + //self.reset(); + reset.apply(form, [settings, self]); + } + }); + + /* discard, submit or nothing with changes when clicking outside */ + /* do nothing is usable when navigating with tab */ + var t; + if ('cancel' == settings.onblur) { + input.blur(function(e) { + /* prevent canceling if submit was clicked */ + t = setTimeout(function() { + reset.apply(form, [settings, self]); + }, 500); + }); + } else if ('submit' == settings.onblur) { + input.blur(function(e) { + /* prevent double submit if submit was clicked */ + t = setTimeout(function() { + form.submit(); + }, 200); + }); + } else if ($.isFunction(settings.onblur)) { + input.blur(function(e) { + settings.onblur.apply(self, [input.val(), settings]); + }); + } else { + input.blur(function(e) { + /* TODO: maybe something here */ + }); + } + + form.submit(function(e) { + + if (t) { + clearTimeout(t); + } + + /* do no submit */ + e.preventDefault(); + + /* call before submit hook. */ + /* if it returns false abort submitting */ + if (false !== onsubmit.apply(form, [settings, self])) { + /* custom inputs call before submit hook. */ + /* if it returns false abort submitting */ + if (false !== submit.apply(form, [settings, self])) { + + /* check if given target is function */ + if ($.isFunction(settings.target)) { + var str = settings.target.apply(self, [input.val(), settings]); + $(self).html(str); + self.editing = false; + callback.apply(self, [self.innerHTML, settings]); + /* TODO: this is not dry */ + if (!$.trim($(self).html())) { + $(self).html(settings.placeholder); + } + } else { + /* add edited content and id of edited element to POST */ + var submitdata = {}; + submitdata[settings.name] = input.val(); + submitdata[settings.id] = self.id; + /* add extra data to be POST:ed */ + if ($.isFunction(settings.submitdata)) { + $.extend(submitdata, settings.submitdata.apply(self, [self.revert, settings])); + } else { + $.extend(submitdata, settings.submitdata); + } + + /* quick and dirty PUT support */ + if ('PUT' == settings.method) { + submitdata['_method'] = 'put'; + } + + /* show the saving indicator */ + $(self).html(settings.indicator); + + /* defaults for ajaxoptions */ + var ajaxoptions = { + type : 'POST', + data : submitdata, + dataType: 'html', + url : settings.target, + success : function(result, status) { + if (ajaxoptions.dataType == 'html') { + $(self).html(result); + } + self.editing = false; + callback.apply(self, [result, settings]); + if (!$.trim($(self).html())) { + $(self).html(settings.placeholder); + } + }, + error : function(xhr, status, error) { + onerror.apply(form, [settings, self, xhr]); + } + }; + + /* override with what is given in settings.ajaxoptions */ + $.extend(ajaxoptions, settings.ajaxoptions); + $.ajax(ajaxoptions); + + } + } + } + + /* show tooltip again */ + $(self).attr('title', settings.tooltip); + + return false; + }); + }); + + /* privileged methods */ + this.reset = function(form) { + /* prevent calling reset twice when blurring */ + if (this.editing) { + /* before reset hook, if it returns false abort reseting */ + if (false !== onreset.apply(form, [settings, self])) { + $(self).html(self.revert); + self.editing = false; + if (!$.trim($(self).html())) { + $(self).html(settings.placeholder); + } + /* show tooltip again */ + if (settings.tooltip) { + $(self).attr('title', settings.tooltip); + } + } + } + }; + }); + + }; + + + $.editable = { + types: { + defaults: { + element : function(settings, original) { + var input = $(''); + $(this).append(input); + return(input); + }, + content : function(string, settings, original) { + $(':input:first', this).val(string); + }, + reset : function(settings, original) { + original.reset(this); + }, + buttons : function(settings, original) { + var form = this; + if (settings.submit) { + /* if given html string use that */ + if (settings.submit.match(/>$/)) { + var submit = $(settings.submit).click(function() { + if (submit.attr("type") != "submit") { + form.submit(); + } + }); + /* otherwise use button with given string as text */ + } else { + var submit = $('