From 4c4bfb04b88d1f2bf304940157b651d1e936cb79 Mon Sep 17 00:00:00 2001 From: Allan Jardine Date: Sun, 17 Feb 2013 17:59:27 +0000 Subject: [PATCH] Dev: Remove trailing white space - JSHint flagging warnings on trailing whitespace, so tidying up. Boring commit, but these things must be done! --- media/js/jquery.dataTables.js | 852 +++++++++++----------- media/src/api/api.internal.js | 2 +- media/src/api/api.methods.js | 108 +-- media/src/api/api.static.js | 2 +- media/src/core/core.columns.js | 4 +- media/src/core/core.compat.js | 2 +- media/src/core/core.constructor.js | 6 +- media/src/core/core.data.js | 4 +- media/src/core/core.draw.js | 24 +- media/src/core/core.filter.js | 46 +- media/src/core/core.info.js | 2 +- media/src/core/core.length.js | 2 +- media/src/core/core.page.js | 4 +- media/src/core/core.scrolling.js | 22 +- media/src/core/core.sizing.js | 12 +- media/src/core/core.sort.js | 44 +- media/src/core/core.support.js | 2 +- media/src/ext/ext.paging.js | 8 +- media/src/ext/ext.sorting.js | 2 +- media/src/model/model.column.js | 22 +- media/src/model/model.defaults.columns.js | 118 +-- media/src/model/model.defaults.js | 268 +++---- media/src/model/model.ext.js | 84 +-- media/src/model/model.row.js | 8 +- media/src/model/model.settings.js | 56 +- 25 files changed, 852 insertions(+), 852 deletions(-) diff --git a/media/js/jquery.dataTables.js b/media/js/jquery.dataTables.js index 43fc30fc..b04bab44 100644 --- a/media/js/jquery.dataTables.js +++ b/media/js/jquery.dataTables.js @@ -84,7 +84,7 @@ * Create a mapping object that allows camel case parameters to be looked up * for their Hungarian counterparts. The mapping is stored in a private * parameter called `_hungaianMap` which can be accessed on the source object. - * @param {object} o + * @param {object} o * @memberof DataTable#oApi */ function _fnHungarianMap ( o ) @@ -347,7 +347,7 @@ /** - * Adjust the table column widths for new data. Note: you would probably want to + * Adjust the table column widths for new data. Note: you would probably want to * do a redraw after calling this function! * @param {object} oSettings dataTables settings object * @memberof DataTable#oApi @@ -418,7 +418,7 @@ /** * Get an array of column indexes that match a given property * @param {object} oSettings dataTables settings object - * @param {string} sParam Parameter in aoColumns to look for - typically + * @param {string} sParam Parameter in aoColumns to look for - typically * bVisible or bSearchable * @returns {array} Array of indexes with matched properties * @memberof DataTable#oApi @@ -555,7 +555,7 @@ } /** - * Add a data array to the table, creating DOM node etc. This is the parallel to + * 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. * @param {object} oSettings dataTables settings object @@ -1034,7 +1034,7 @@ /** - * Take an array of integers (index array) and remove a target integer (value - not + * Take an array of integers (index array) and remove a target integer (value - not * the key!) * @param {array} a Index array to target * @param {int} iTarget value to find @@ -1205,7 +1205,7 @@ _fnDetectHeader( oSettings.aoHeader, oSettings.nTHead ); } - /* ARIA role for the rows */ + /* ARIA role for the rows */ $(oSettings.nTHead).children('tr').attr('role', 'row'); /* Add the extra markup needed by jQuery UI's themes */ @@ -1270,13 +1270,13 @@ * 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 + * 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. * @param {object} oSettings dataTables settings object * @param array {objects} aoSource Layout array from _fnDetectHeader - * @param {boolean} [bIncludeHidden=false] If true then include the hidden columns in the calc, + * @param {boolean} [bIncludeHidden=false] If true then include the hidden columns in the calc, * @memberof DataTable#oApi */ function _fnDrawHead( oSettings, aoSource, bIncludeHidden ) @@ -1453,7 +1453,7 @@ } /* Row callback functions - might want to manipulate the row */ - _fnCallbackFire( oSettings, 'aoRowCallback', null, + _fnCallbackFire( oSettings, 'aoRowCallback', null, [nRow, oSettings.aoData[ oSettings.aiDisplay[j] ]._aData, iRowCount, j] ); anRows.push( nRow ); @@ -1501,15 +1501,15 @@ } /* Header and footer callbacks */ - _fnCallbackFire( oSettings, 'aoHeaderCallback', 'header', [ $(oSettings.nTHead).children('tr')[0], + _fnCallbackFire( oSettings, 'aoHeaderCallback', 'header', [ $(oSettings.nTHead).children('tr')[0], _fnGetDataMaster( oSettings ), oSettings._iDisplayStart, oSettings.fnDisplayEnd(), oSettings.aiDisplay ] ); - _fnCallbackFire( oSettings, 'aoFooterCallback', 'footer', [ $(oSettings.nTFoot).children('tr')[0], + _fnCallbackFire( oSettings, 'aoFooterCallback', 'footer', [ $(oSettings.nTFoot).children('tr')[0], _fnGetDataMaster( oSettings ), oSettings._iDisplayStart, oSettings.fnDisplayEnd(), oSettings.aiDisplay ] ); - /* + /* * Need to remove any old row from the display - note we can't just empty the tbody using - * $().html('') since this will unbind the jQuery event handlers (even although the node + * $().html('') since this will unbind the jQuery event handlers (even although the node * still exists!) - equally we can't use innerHTML, since IE throws an exception. */ var @@ -1526,7 +1526,7 @@ * up. When not infinite scroll, always do it. */ if ( !oSettings.oScroll.bInfinite || !oSettings._bInitComplete || - oSettings.bSorted || oSettings.bFiltered ) + oSettings.bSorted || oSettings.bFiltered ) { while( (n = oSettings.nTBody.firstChild) ) { @@ -1605,7 +1605,7 @@ var nHolding = $('
')[0]; oSettings.nTable.parentNode.insertBefore( nHolding, oSettings.nTable ); - /* + /* * All DataTables are wrapped in a div */ oSettings.nTableWrapper = $('
')[0]; @@ -1798,7 +1798,7 @@ iColspan = (!iColspan || iColspan===0 || iColspan===1) ? 1 : iColspan; iRowspan = (!iRowspan || iRowspan===0 || iRowspan===1) ? 1 : iRowspan; - /* There might be colspan cells already in this row, so shift our target + /* There might be colspan cells already in this row, so shift our target * accordingly */ iColShifted = fnShiftCol( aLayout, i, iColumn ); @@ -1850,7 +1850,7 @@ { for ( var j=0, jLen=aLayout[i].length ; j sInput.length || iForce == 1 || sInput.indexOf(oPrevSearch.sSearch) !== 0 ) @@ -2369,7 +2369,7 @@ _fnBuildSearchArray( oSettings, 1 ); /* Search through all records to populate the search array - * The the oSettings.aiDisplayMaster and asDataSearch arrays have 1 to 1 + * The the oSettings.aiDisplayMaster and asDataSearch arrays have 1 to 1 * mapping */ for ( i=0 ; i + if ( $(this).scrollTop() + $(this).height() > $(oSettings.nTable).height() - oSettings.oScroll.iLoadGap ) { /* Only do the redraw if we have to - we might be at the end of the data */ @@ -3314,7 +3314,7 @@ * the scrollbar - which is shouldn't. When there is a scrollbar we need to take this * into account. */ - if ( ie67 && ($('tbody', nScrollBody).height() > nScrollBody.offsetHeight || + if ( ie67 && ($('tbody', nScrollBody).height() > nScrollBody.offsetHeight || $(nScrollBody).css('overflow-y') == "scroll") ) { o.nTable.style.width = _fnStringToCss( $(o.nTable).outerWidth() - o.oScroll.iBarWidth); @@ -3355,16 +3355,16 @@ * set the width based on the real headers */ - // Apply all styles in one pass. Invalidates layout only once because we don't read any + // Apply all styles in one pass. Invalidates layout only once because we don't read any // DOM properties. _fnApplyToChildren( zeroOut, anHeadSizers ); - - // Read all widths in next pass. Forces layout only once because we do not change + + // Read all widths in next pass. Forces layout only once because we do not change // any DOM properties. _fnApplyToChildren( function(nSizer) { aApplied.push( _fnStringToCss( $(nSizer).width() ) ); }, anHeadSizers ); - + // Apply all widths in final pass. Invalidates layout only once because we do not // read any DOM properties. _fnApplyToChildren( function(nToSize, i) { @@ -3377,11 +3377,11 @@ if ( o.nTFoot !== null ) { _fnApplyToChildren( zeroOut, anFootSizers ); - + _fnApplyToChildren( function(nSizer) { aAppliedFooter.push( _fnStringToCss( $(nSizer).width() ) ); }, anFootSizers ); - + _fnApplyToChildren( function(nToSize, i) { nToSize.style.width = aAppliedFooter[i]; }, anFootToSize ); @@ -3415,12 +3415,12 @@ if ( $(o.nTable).outerWidth() < iSanityWidth ) { /* The min width depends upon if we have a vertical scrollbar visible or not */ - var iCorrection = ((nScrollBody.scrollHeight > nScrollBody.offsetHeight || + var iCorrection = ((nScrollBody.scrollHeight > nScrollBody.offsetHeight || $(nScrollBody).css('overflow-y') == "scroll")) ? iSanityWidth+o.oScroll.iBarWidth : iSanityWidth; /* IE6/7 are a law unto themselves... */ - if ( ie67 && (nScrollBody.scrollHeight > + if ( ie67 && (nScrollBody.scrollHeight > nScrollBody.offsetHeight || $(nScrollBody).css('overflow-y') == "scroll") ) { o.nTable.style.width = _fnStringToCss( iCorrection-o.oScroll.iBarWidth ); @@ -3611,7 +3611,7 @@ if ( oSettings.aoColumns[i].sWidth !== null ) { - iTmpWidth = _fnConvertToWidth( oSettings.aoColumns[i].sWidthOrig, + iTmpWidth = _fnConvertToWidth( oSettings.aoColumns[i].sWidthOrig, nWrapper ); if ( iTmpWidth !== null ) { @@ -3623,8 +3623,8 @@ } } - /* If the number of columns in the DOM equals the number that we have to process in - * DataTables, then we can use the offsets that are created by the web-browser. No custom + /* If the number of columns in the DOM equals the number that we have to process in + * DataTables, then we can use the offsets that are created by the web-browser. No custom * sizes can be set in order for this to happen, nor scrolling used */ if ( iColums == oHeaders.length && iUserInputs === 0 && iVisibleColumns == iColums && @@ -3753,7 +3753,7 @@ oNodes = _fnGetUniqueThs( oSettings, $('thead', nCalcTmp)[0] ); } - /* Browsers need a bit of a hand when a width is assigned to any columns when + /* Browsers need a bit of a hand when a width is assigned to any columns when * x-scrolling as they tend to collapse the table to the min-width, even if * we sent the column widths. So we need to keep track of what the table width * should be by summing the user given values, and the automatic values @@ -3925,7 +3925,7 @@ * @memberof DataTable#oApi */ function _fnScrollBarWidth () - { + { var inner = document.createElement('p'); var style = inner.style; style.width = "100%"; @@ -3954,7 +3954,7 @@ } document.body.removeChild(outer); - return (w1 - w2); + return (w1 - w2); } /** @@ -3970,7 +3970,7 @@ i, iLen, j, jLen, k, kLen, sDataType, nTh, aSort = [], - aiOrig = [], + aiOrig = [], oExtSort = DataTable.ext.oSort, aoData = oSettings.aoData, aoColumns = oSettings.aoColumns, @@ -4024,7 +4024,7 @@ sDataType = oSettings.aoColumns[ iColumn ].sSortDataType; if ( DataTable.ext.afnSortData[sDataType] ) { - var aData = DataTable.ext.afnSortData[sDataType].call( + var aData = DataTable.ext.afnSortData[sDataType].call( oSettings.oInstance, oSettings, iColumn, iVisColumn ); if ( aData.length === aoData.length ) @@ -4072,17 +4072,17 @@ * and sorting function (from oSort) in a certain direction. It's reasonably complex to * follow on it's own, but this is what we want (example two column sorting): * fnLocalSorting = function(a,b){ - * var iTest; - * iTest = oSort['string-asc']('data11', 'data12'); - * if (iTest !== 0) - * return iTest; + * var iTest; + * iTest = oSort['string-asc']('data11', 'data12'); + * if (iTest !== 0) + * return iTest; * iTest = oSort['numeric-desc']('data21', 'data22'); * if (iTest !== 0) - * return iTest; - * return oSort['numeric-asc']( aiOrig[a], aiOrig[b] ); + * return iTest; + * return oSort['numeric-asc']( aiOrig[a], aiOrig[b] ); * } * Basically we have a test for each sorting column, if the data in that column is equal, - * test the next column. If all columns match, then we use a numeric sort on the row + * test the next column. If all columns match, then we use a numeric sort on the row * positions in the original data array to provide a stable sort. * * Note - I know it seems excessive to have two sorting methods, but the first is around @@ -4169,7 +4169,7 @@ { nTh.setAttribute('aria-sort', aSort[0].dir=="asc" ? "ascending" : "descending" ); - var nextSort = (aoColumns[i].asSorting[ aSort[0].index+1 ]) ? + var nextSort = (aoColumns[i].asSorting[ aSort[0].index+1 ]) ? aoColumns[i].asSorting[ aSort[0].index+1 ] : aoColumns[i].asSorting[0]; nTh.setAttribute('aria-label', sTitle+ (nextSort=="asc" ? oAria.sSortAscending : oAria.sSortDescending) ); @@ -4225,14 +4225,14 @@ /* * This is a little bit odd I admit... I declare a temporary function inside the scope of - * _fnBuildHead and the click handler in order that the code presented here can be used - * twice - once for when bProcessing is enabled, and another time for when it is + * _fnBuildHead and the click handler in order that the code presented here can be used + * twice - once for when bProcessing is enabled, and another time for when it is * disabled, as we need to perform slightly different actions. - * Basically the issue here is that the Javascript engine in modern browsers don't + * Basically the issue here is that the Javascript engine in modern browsers don't * appear to allow the rendering engine to update the display while it is still executing - * it's thread (well - it does but only after long intervals). This means that the + * it's thread (well - it does but only after long intervals). This means that the * 'processing' display doesn't appear for a table sort. To break the js thread up a bit - * I force an execution break by using setTimeout - but this breaks the expected + * I force an execution break by using setTimeout - but this breaks the expected * thread continuation for the end-developer's point of view (their code would execute * too early), so we only do it when we absolutely have to. */ @@ -4270,7 +4270,7 @@ /* No sort yet - add it in */ if ( bFound === false ) { - oSettings.aaSorting.push( [ iDataIndex, + oSettings.aaSorting.push( [ iDataIndex, oSettings.aoColumns[iDataIndex].asSorting[0], 0 ] ); } } @@ -4291,7 +4291,7 @@ else { oSettings.aaSorting.splice( 0, oSettings.aaSorting.length ); - oSettings.aaSorting.push( [ iDataIndex, + oSettings.aaSorting.push( [ iDataIndex, oSettings.aoColumns[iDataIndex].asSorting[0], 0 ] ); } } @@ -4326,7 +4326,7 @@ /** - * Set the sorting classes on the header, Note: it is safe to call this function + * Set the sorting classes on the header, Note: it is safe to call this function * when bSort and bSortClasses are false * @param {object} oSettings dataTables settings object * @memberof DataTable#oApi @@ -4379,13 +4379,13 @@ { /* jQuery UI uses extra markup */ var jqSpan = $("span."+oClasses.sSortIcon, oSettings.aoColumns[i].nTh); - jqSpan.removeClass(oClasses.sSortJUIAsc +" "+ oClasses.sSortJUIDesc +" "+ + jqSpan.removeClass(oClasses.sSortJUIAsc +" "+ oClasses.sSortJUIDesc +" "+ oClasses.sSortJUI +" "+ oClasses.sSortJUIAscAllowed +" "+ oClasses.sSortJUIDescAllowed ); var sSpanClass; if ( iFound == -1 ) { - sSpanClass = oSettings.aoColumns[i].sSortingClassJUI; + sSpanClass = oSettings.aoColumns[i].sSortingClassJUI; } else if ( aaSort[iFound][1] == "asc" ) { @@ -4408,11 +4408,11 @@ } } - /* + /* * Apply the required classes to the table body * Note that this is given as a feature switch since it can significantly slow down a sort * on large data sets (adding and removing of classes is always slow at the best of times..) - * Further to this, note that this code is admittedly fairly ugly. It could be made a lot + * Further to this, note that this code is admittedly fairly ugly. It could be made a lot * simpler using jQuery selectors and add/removeClass, but that is significantly slower * (on the order of 5 times slower) - hence the direct DOM manipulation here. * Note that for deferred drawing we do use jQuery - the reason being that taking the first @@ -4618,7 +4618,7 @@ /** * Return an flat array with all TD nodes for the table, or row * @param {object} oSettings dataTables settings object - * @param {int} [iIndividualRow] aoData index to get the nodes for - optional + * @param {int} [iIndividualRow] aoData index to get the nodes for - optional * if not given then the return array will contain all nodes for the table * @returns {array} TD array * @memberof DataTable#oApi @@ -4860,7 +4860,7 @@ * 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. * @param {string} [oOpts.page=all] Limit the selection to the currently displayed page - * ("current") or not ("all"). If 'current' is given, then order is assumed to be + * ("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 {object} jQuery object, filtered by the given selector. * @dtopt API @@ -4981,7 +4981,7 @@ * 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 + * 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 @@ -4994,10 +4994,10 @@ * 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. * @param {string} [oOpts.page=all] Limit the selection to the currently displayed page - * ("current") or not ("all"). If 'current' is given, then order is assumed to be + * ("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 {array} 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 + * selector, were not TR, TD or TH elements in the DataTable, they will have a null * entry in the array. * @dtopt API * @@ -5016,10 +5016,10 @@ * $(document).ready(function() { * var oTable = $('#example').dataTable(); * - * // Filter to 'Webkit' and get all data for + * // 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" ); * } ); @@ -5041,7 +5041,7 @@ /** * 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 + * 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. * @param {array|object} mData The data to be added to the table. This can be: @@ -5052,19 +5052,19 @@ *
  • array of objects - multiple data objects when using mData
  • * * @param {bool} [bRedraw=true] redraw the table or not - * @returns {array} An array of integers, representing the list of indexes in - * aoData ({@link DataTable.models.oSettings}) that have been added to + * @returns {array} An array of integers, representing the list of indexes in + * aoData ({@link DataTable.models.oSettings}) that have been added to * the table. * @dtopt API * * @example * // Global var for counter * var giCount = 2; - * + * * $(document).ready(function() { * $('#example').dataTable(); * } ); - * + * * function fnClickAddRow() { * $('#example').dataTable().fnAddData( [ * giCount+".1", @@ -5072,7 +5072,7 @@ * giCount+".3", * giCount+".4" ] * ); - * + * * giCount++; * } */ @@ -5123,9 +5123,9 @@ /** - * 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 + * 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). * @param {boolean} [bRedraw=true] Redraw the table or not, you will typically want to * @dtopt API @@ -5136,7 +5136,7 @@ * "sScrollY": "200px", * "bPaginate": false * } ); - * + * * $(window).bind('resize', function () { * oTable.fnAdjustColumnSizing(); * } ); @@ -5167,7 +5167,7 @@ * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); - * + * * // Immediately 'nuke' the current rows (perhaps waiting for an Ajax callback...) * oTable.fnClearTable(); * } ); @@ -5186,7 +5186,7 @@ /** - * The exact opposite of 'opening' a row, this function will close any rows which + * The exact opposite of 'opening' a row, this function will close any rows which * are currently 'open'. * @param {node} nTr the table row to 'close' * @returns {int} 0 on success, or 1 if failed (can't find the row) @@ -5195,7 +5195,7 @@ * @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) ) { @@ -5204,7 +5204,7 @@ * oTable.fnOpen( this, "Temporary row opened", "info_row" ); * } * } ); - * + * * oTable = $('#example').dataTable(); * } ); */ @@ -5243,7 +5243,7 @@ * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); - * + * * // Immediately remove the first row * oTable.fnDeleteRow( 0 ); * } ); @@ -5254,7 +5254,7 @@ var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); var i, iLen, iAODataIndex; - iAODataIndex = (typeof mTarget === 'object') ? + iAODataIndex = (typeof mTarget === 'object') ? _fnNodeToDataIndex(oSettings, mTarget) : mTarget; /* Return the data array from this row */ @@ -5304,7 +5304,7 @@ /** - * Restore the table to it's original state in the DOM by removing all of DataTables + * 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. * @param {boolean} [bRemove=false] Completely remove the table from the DOM * @dtopt API @@ -5452,7 +5452,7 @@ * @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(); * } ); @@ -5485,7 +5485,7 @@ * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); - * + * * // Sometime later - filter... * oTable.fnFilter( 'test string' ); * } ); @@ -5563,7 +5563,7 @@ /** - * Get the data for the whole table, an individual row or an individual cell based on the + * Get the data for the whole table, an individual row or an individual cell based on the * provided parameters. * @param {int|node} [mRow] 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 @@ -5631,8 +5631,8 @@ /** - * 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 + * 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. * @param {int} [iRow] Optional row index for the TR element you want * @returns {array|node} If iRow is undefined, returns an array of all TR elements @@ -5642,7 +5642,7 @@ * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); - * + * * // Get the nodes from the table * var nNodes = oTable.fnGetNodes( ); * } ); @@ -5664,7 +5664,7 @@ * and column index including hidden columns * @param {node} nNode this can either be a TR, TD or TH in the table's body * @returns {int} 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), + * if given as a cell, an array of [row index, column index (visible), * column index (all)] is given. * @dtopt API * @@ -5673,15 +5673,15 @@ * $('#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(); * } ); @@ -5714,7 +5714,7 @@ * @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) ) { @@ -5723,7 +5723,7 @@ * oTable.fnOpen( this, "Temporary row opened", "info_row" ); * } * } ); - * + * * oTable = $('#example').dataTable(); * } ); */ @@ -5744,9 +5744,9 @@ /** - * 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 + * 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. * @param {node} nTr The table row to 'open' * @param {string|node|jQuery} mHtml The HTML to put into the row @@ -5759,7 +5759,7 @@ * @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) ) { @@ -5768,7 +5768,7 @@ * oTable.fnOpen( this, "Temporary row opened", "info_row" ); * } * } ); - * + * * oTable = $('#example').dataTable(); * } ); */ @@ -5819,8 +5819,8 @@ /** - * 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, + * 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. * @param {string|int} mAction Paging action to take: "first", "previous", "next" or "last" * or page number to jump to (integer), note that page 0 is the first page. @@ -5856,7 +5856,7 @@ * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); - * + * * // Hide the second column after initialisation * oTable.fnSetColumnVis( 1, false ); * } ); @@ -5909,14 +5909,14 @@ { if ( bAppend ) { - aoData[i].nTr.appendChild( + aoData[i].nTr.appendChild( aoData[i]._anHidden[iCol] ); } else { aoData[i].nTr.insertBefore( - aoData[i]._anHidden[iCol], + aoData[i]._anHidden[iCol], _fnGetTdNodes( oSettings, i )[iBefore] ); } } @@ -5952,8 +5952,8 @@ oSettings.aoOpenRows[i].nTr.colSpan = _fnVisbleColumns( oSettings ); } - /* Do a redraw incase anything depending on the table columns needs it - * (built-in: scrolling) + /* Do a redraw incase anything depending on the table columns needs it + * (built-in: scrolling) */ if ( bRedraw === undefined || bRedraw ) { @@ -5967,7 +5967,7 @@ /** * Get the settings for a particular table for external manipulation - * @returns {object} DataTables settings object. See + * @returns {object} DataTables settings object. See * {@link DataTable.models.oSettings} * @dtopt API * @@ -5975,7 +5975,7 @@ * $(document).ready(function() { * var oTable = $('#example').dataTable(); * var oSettings = oTable.fnSettings(); - * + * * // Show an example parameter from the settings * alert( oSettings._iDisplayStart ); * } ); @@ -5988,14 +5988,14 @@ /** * Sort the table by a particular column - * @param {int} iCol the data index to sort on. Note that this will not match the + * @param {int} iCol the data index to sort on. Note that this will not match the * 'display index' if you have hidden data entries * @dtopt API * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); - * + * * // Sort immediately with columns 0 and 1 * oTable.fnSort( [ [0,'asc'], [1,'asc'] ] ); * } ); @@ -6018,7 +6018,7 @@ * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); - * + * * // Sort on column 1, when 'sorter' is clicked on * oTable.fnSortListener( document.getElementById('sorter'), 1 ); * } ); @@ -6055,7 +6055,7 @@ { var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); var i, sDisplay; - var iRow = (typeof mRow === 'object') ? + var iRow = (typeof mRow === 'object') ? _fnNodeToDataIndex(oSettings, mRow) : mRow; if ( iColumn === undefined || iColumn === null ) @@ -6087,7 +6087,7 @@ */ var iDisplayIndex = $.inArray( iRow, oSettings.aiDisplay ); oSettings.asDataSearch[iDisplayIndex] = _fnBuildSearchRow( - oSettings, + oSettings, _fnGetRowData( oSettings, iRow, 'filter', _fnGetColumns( oSettings, 'bSearchable' ) ) ); @@ -6140,7 +6140,7 @@ function _fnExternApiFunc (sFunc) { return function() { - var aArgs = [_fnSettingsFromNode(this[DataTable.ext.iApiIndex])].concat( + var aArgs = [_fnSettingsFromNode(this[DataTable.ext.iApiIndex])].concat( Array.prototype.slice.call(arguments) ); return DataTable.ext.oApi[sFunc].apply( this, aArgs ); }; @@ -6428,8 +6428,8 @@ if ( oInit.bJQueryUI ) { - /* Use the JUI classes object for display. You could clone the oStdClasses object if - * you want to have multiple tables with multiple independent classes + /* Use the JUI classes object for display. You could clone the oStdClasses object if + * you want to have multiple tables with multiple independent classes */ $.extend( oSettings.oClasses, DataTable.ext.oJUIClasses ); @@ -6483,7 +6483,7 @@ if ( oInit.oLanguage.sUrl !== "" ) { /* Get the language definitions from a file - because this Ajax call makes the language - * get async to the remainder of this function we use bInitHandedOff to indicate that + * get async to the remainder of this function we use bInitHandedOff to indicate that * _fnInitialise will be fired by the returned Ajax handler, rather than the constructor */ oSettings.oLanguage.sUrl = oInit.oLanguage.sUrl; @@ -6762,7 +6762,7 @@ /** * Get all DataTable tables that have been initialised - optionally you can select to * get only currently visible tables. - * @param {boolean} [bVisible=false] Flag to indicate if you want all (default) or + * @param {boolean} [bVisible=false] Flag to indicate if you want all (default) or * visible tables only. * @returns {array} Array of TABLE nodes (not DataTable instances) which are DataTables * @static @@ -6827,7 +6827,7 @@ * 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. * @namespace @@ -6862,7 +6862,7 @@ * * @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 + * // 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 ) { @@ -6896,7 +6896,7 @@ * 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 + * that is used for the column (if any). This is the corollary of ofnSearch for sort * data. *
      *
    • @@ -6913,10 +6913,10 @@ *
    * * - * + * * 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 + * 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. * @type array * @default [] @@ -6955,8 +6955,8 @@ * 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 + * 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.
    • *
    * @@ -6967,7 +6967,7 @@ * * @type array * @default [] - * + * * @example * // How TableTools initialises itself. * $.fn.dataTableExt.aoFeatures.push( { @@ -6985,9 +6985,9 @@ * 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) + * 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: @@ -6996,7 +6996,7 @@ * * @type array * @default [] - * + * * @example * // Currency type detection plug-in: * jQuery.fn.dataTableExt.aTypes.push( @@ -7005,7 +7005,7 @@ * if ( ! $.isNumeric( data.substring(1) ) ) { * return null; * } - * + * * // Check prefixed by currency * if ( data.charAt(0) == '$' || data.charAt(0) == '£' ) { * return 'currency'; @@ -7018,12 +7018,12 @@ /** - * Provide a common method for plug-ins to check the version of DataTables being used, + * Provide a common method for plug-ins to check the version of DataTables being used, * in order to ensure compatibility. * @type function - * @param {string} sVersion Version string to check for, in the format "X.Y.Z". Note + * @param {string} sVersion Version string to check for, in the format "X.Y.Z". Note * that the formats "X" and "X.Y" are also acceptable. - * @returns {boolean} true if this version of DataTables is greater or equal to the + * @returns {boolean} 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 @@ -7045,10 +7045,10 @@ /** * 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 + * (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 + * 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. *
      @@ -7065,10 +7065,10 @@ *
    * * - * + * * 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 + * 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. * @type object * @default {} @@ -7107,8 +7107,8 @@ /** - * 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 + * 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 @@ -7116,12 +7116,12 @@ * 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 + * 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 *
        *
      • @@ -7143,7 +7143,7 @@ * *
      • * 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 + * typically used to update classes and/or text of the paging controls to reflex the new * status. *
          *
        • @@ -7173,53 +7173,53 @@ * 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
        - * + * * 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 + * 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. * @type object * @default {} @@ -285,8 +285,8 @@ DataTable.models.ext = { /** - * 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 + * 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 @@ -294,12 +294,12 @@ DataTable.models.ext = { * 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 + * 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 *
            *
          • @@ -321,7 +321,7 @@ DataTable.models.ext = { * *
          • * 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 + * typically used to update classes and/or text of the paging controls to reflex the new * status. *
              *
            • @@ -351,53 +351,53 @@ DataTable.models.ext = { * 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
            • 'l' - Length changing
            • @@ -322,7 +322,7 @@ DataTable.models.oSettings = { "asDataSearch": [], /** - * Store the applied global search information in case we want to force a + * 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 {@link DataTable.defaults}. @@ -332,7 +332,7 @@ DataTable.models.oSettings = { "oPreviousSearch": {}, /** - * Store the applied search for each column - see + * Store the applied search for each column - see * {@link DataTable.models.oSearch} for the format that is used for the * filtering information for each column. * @type array @@ -382,7 +382,7 @@ DataTable.models.oSettings = { "asDestroyStripes": [], /** - * If restoring a table - we should restore its width + * If restoring a table - we should restore its width * @type int * @default 0 */ @@ -424,7 +424,7 @@ DataTable.models.oSettings = { "aoRowCreatedCallback": [], /** - * Callback functions for just before the table is redrawn. A return of + * Callback functions for just before the table is redrawn. A return of * false will be used to cancel the draw. * @type array * @default [] @@ -506,7 +506,7 @@ DataTable.models.oSettings = { "nTableWrapper": null, /** - * Indicate if when using server-side processing the loading of data + * 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 {@link DataTable.defaults}. @@ -544,7 +544,7 @@ DataTable.models.oSettings = { * Which type of pagination should be used. * Note that this parameter will be set by the initialisation routine. To * set a default use {@link DataTable.defaults}. - * @type string + * @type string * @default two_button */ "sPaginationType": "two_button", @@ -559,12 +559,12 @@ DataTable.models.oSettings = { "iStateDuration": 0, /** - * Array of callback functions for state saving. Each array element is an + * 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 + * a JSON string to be inserted into a json object * (i.e. '"param": [ 0, 1, 2]')
              • *
              • string:sName - name of callback
              • *
              @@ -574,10 +574,10 @@ DataTable.models.oSettings = { "aoStateSave": [], /** - * Array of callback functions for state loading. Each array element is an + * 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 + *
              • 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
              • *
              @@ -604,7 +604,7 @@ DataTable.models.oSettings = { /** * 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 + * 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 {@link DataTable.defaults}. @@ -620,8 +620,8 @@ DataTable.models.oSettings = { "bAjaxDataGet": true, /** - * 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 + * 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 * @type object * @default null @@ -637,7 +637,7 @@ DataTable.models.oSettings = { "fnServerData": null, /** - * Functions which are called prior to sending an Ajax request so extra + * Functions which are called prior to sending an Ajax request so extra * parameters can easily be sent to the server * @type array * @default [] @@ -645,7 +645,7 @@ DataTable.models.oSettings = { "aoServerParams": [], /** - * Send the XHR HTTP method - GET or POST (could be PUT or DELETE if + * 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 {@link DataTable.defaults}. @@ -753,7 +753,7 @@ DataTable.models.oSettings = { "oClasses": {}, /** - * Flag attached to the settings object so you can check in the draw + * 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. * @type boolean @@ -763,7 +763,7 @@ DataTable.models.oSettings = { "bFiltered": false, /** - * Flag attached to the settings object so you can check in the draw + * 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. * @type boolean @@ -773,8 +773,8 @@ DataTable.models.oSettings = { "bSorted": false, /** - * 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) + * 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 {@link DataTable.defaults}. @@ -835,7 +835,7 @@ DataTable.models.oSettings = { if ( this.oFeatures.bPaginate === false || this._iDisplayLength == -1 ) { return this._iDisplayStart+this.aiDisplay.length; } else { - return Math.min( this._iDisplayStart+this._iDisplayLength, + return Math.min( this._iDisplayStart+this._iDisplayLength, this._iRecordsDisplay ); } } else {