Lines Matching refs:oSettings

287 			"fnInit": function ( oSettings, nPaging, fnCallbackDraw )  argument
294 if ( !oSettings.bJUI )
305 nNextInner.className = oSettings.oClasses.sPageJUINext;
309 nPreviousInner.className = oSettings.oClasses.sPageJUIPrev;
313 nPrevious.className = oSettings.oClasses.sPagePrevDisabled;
314 nNext.className = oSettings.oClasses.sPageNextDisabled;
316 nPrevious.title = oSettings.oLanguage.oPaginate.sPrevious;
317 nNext.title = oSettings.oLanguage.oPaginate.sNext;
323 if ( oSettings.oApi._fnPageChange( oSettings, "previous" ) )
326 fnCallbackDraw( oSettings );
331 if ( oSettings.oApi._fnPageChange( oSettings, "next" ) )
333 fnCallbackDraw( oSettings );
342 if ( oSettings.sTableId !== '' && typeof oSettings.aanFeatures.p == "undefined" )
344 nPaging.setAttribute( 'id', oSettings.sTableId+'_paginate' );
345 nPrevious.setAttribute( 'id', oSettings.sTableId+'_previous' );
346 nNext.setAttribute( 'id', oSettings.sTableId+'_next' );
357 "fnUpdate": function ( oSettings, fnCallbackDraw ) argument
359 if ( !oSettings.aanFeatures.p )
365 var an = oSettings.aanFeatures.p;
371 ( oSettings._iDisplayStart === 0 ) ?
372 oSettings.oClasses.sPagePrevDisabled : oSettings.oClasses.sPagePrevEnabled;
375 ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ?
376 oSettings.oClasses.sPageNextDisabled : oSettings.oClasses.sPageNextEnabled;
404 "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) argument
412 nFirst.innerHTML = oSettings.oLanguage.oPaginate.sFirst;
413 nPrevious.innerHTML = oSettings.oLanguage.oPaginate.sPrevious;
414 nNext.innerHTML = oSettings.oLanguage.oPaginate.sNext;
415 nLast.innerHTML = oSettings.oLanguage.oPaginate.sLast;
417 var oClasses = oSettings.oClasses;
430 if ( oSettings.oApi._fnPageChange( oSettings, "first" ) )
432 fnCallbackDraw( oSettings );
437 if ( oSettings.oApi._fnPageChange( oSettings, "previous" ) )
439 fnCallbackDraw( oSettings );
444 if ( oSettings.oApi._fnPageChange( oSettings, "next" ) )
446 fnCallbackDraw( oSettings );
451 if ( oSettings.oApi._fnPageChange( oSettings, "last" ) )
453 fnCallbackDraw( oSettings );
463 if ( oSettings.sTableId !== '' && typeof oSettings.aanFeatures.p == "undefined" )
465 nPaging.setAttribute( 'id', oSettings.sTableId+'_paginate' );
466 nFirst.setAttribute( 'id', oSettings.sTableId+'_first' );
467 nPrevious.setAttribute( 'id', oSettings.sTableId+'_previous' );
468 nNext.setAttribute( 'id', oSettings.sTableId+'_next' );
469 nLast.setAttribute( 'id', oSettings.sTableId+'_last' );
480 "fnUpdate": function ( oSettings, fnCallbackDraw ) argument
482 if ( !oSettings.aanFeatures.p )
489 var iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength);
490 var iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1;
493 var oClasses = oSettings.oClasses;
537 var an = oSettings.aanFeatures.p;
542 oSettings._iDisplayStart = iTarget * oSettings._iDisplayLength;
543 fnCallbackDraw( oSettings );
579 if ( iPages === 0 || iCurrentPage == iPages || oSettings._iDisplayLength == -1 )
1515 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1518 _fnCalculateEnd( oSettings );
1519 _fnDraw( oSettings );
1523 _fnReDraw( oSettings );
1540 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1542 if ( !oSettings.oFeatures.bFilter )
1565 _fnFilterComplete( oSettings, {
1571 if ( bShowGlobal && typeof oSettings.aanFeatures.f != 'undefined' )
1573 var n = oSettings.aanFeatures.f;
1583 oSettings.aoPreSearchCols[ iColumn ].sSearch = sInput;
1584 oSettings.aoPreSearchCols[ iColumn ].bRegex = bRegex;
1585 oSettings.aoPreSearchCols[ iColumn ].bSmart = bSmart;
1586 _fnFilterComplete( oSettings, oSettings.oPreviousSearch, 1 );
1616 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1617 oSettings.aaSorting = aaSort;
1618 _fnSort( oSettings );
1659 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1666 iTest = _fnAddData( oSettings, mData[i] );
1676 iTest = _fnAddData( oSettings, mData );
1684 oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
1688 _fnReDraw( oSettings );
1706 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1710 _fnNodeToDataIndex(oSettings, mTarget) : mTarget;
1713 var oData = oSettings.aoData.splice( iAODataIndex, 1 );
1716 var iDisplayIndex = $.inArray( iAODataIndex, oSettings.aiDisplay );
1717 oSettings.asDataSearch.splice( iDisplayIndex, 1 );
1720 _fnDeleteIndex( oSettings.aiDisplayMaster, iAODataIndex );
1721 _fnDeleteIndex( oSettings.aiDisplay, iAODataIndex );
1726 fnCallBack.call( this, oSettings, oData );
1730 if ( oSettings._iDisplayStart >= oSettings.aiDisplay.length )
1732 oSettings._iDisplayStart -= oSettings._iDisplayLength;
1733 if ( oSettings._iDisplayStart < 0 )
1735 oSettings._iDisplayStart = 0;
1741 _fnCalculateEnd( oSettings );
1742 _fnDraw( oSettings );
1758 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1759 _fnClearTable( oSettings );
1763 _fnDraw( oSettings );
1778 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1787 nNewCell.colSpan = _fnVisbleColumns( oSettings );
1799 var nTrs = $('tr', oSettings.nTBody);
1805 oSettings.aoOpenRows.push( {
1822 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1824 for ( var i=0 ; i<oSettings.aoOpenRows.length ; i++ )
1826 if ( oSettings.aoOpenRows[i].nParent == nTr )
1828 var nTrParent = oSettings.aoOpenRows[i].nTr.parentNode;
1832 nTrParent.removeChild( oSettings.aoOpenRows[i].nTr );
1834 oSettings.aoOpenRows.splice( i, 1 );
1855 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1860 _fnNodeToDataIndex(oSettings, mRow) : mRow;
1864 return _fnGetCellData( oSettings, iRow, iCol, '' );
1866 return (typeof oSettings.aoData[iRow] != 'undefined') ?
1867 oSettings.aoData[iRow]._aData : null;
1869 return _fnGetDataMaster( oSettings );
1883 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1887 return (typeof oSettings.aoData[iRow] != 'undefined') ? oSettings.aoData[iRow].nTr : null;
1889 return _fnGetTrNodes( oSettings );
1902 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1907 return _fnNodeToDataIndex(oSettings, nNode);
1911 var iDataIndex = _fnNodeToDataIndex(oSettings, nNode.parentNode);
1912 var anCells = _fnGetTdNodes( oSettings, iDataIndex );
1914 for ( var i=0 ; i<oSettings.aoColumns.length ; i++ )
1918 return [ iDataIndex, _fnColumnIndexToVisible(oSettings, i ), i ];
1943 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
1946 _fnNodeToDataIndex(oSettings, mRow) : mRow;
1951 oSettings.aoData[iRow]._aData = mData.slice();
1953 for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
1955 this.fnUpdate( _fnGetCellData( oSettings, iRow, i ), iRow, i, false, false );
1961 oSettings.aoData[iRow]._aData = $.extend( true, {}, mData );
1963 for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
1965 this.fnUpdate( _fnGetCellData( oSettings, iRow, i ), iRow, i, false, false );
1972 _fnSetCellData( oSettings, iRow, iColumn, sDisplay );
1974 if ( oSettings.aoColumns[iColumn].fnRender !== null )
1976 sDisplay = oSettings.aoColumns[iColumn].fnRender( {
1979 "aData": oSettings.aoData[iRow]._aData,
1980 "oSettings": oSettings
1983 if ( oSettings.aoColumns[iColumn].bUseRendered )
1985 _fnSetCellData( oSettings, iRow, iColumn, sDisplay );
1989 if ( oSettings.aoData[iRow].nTr !== null )
1992 _fnGetTdNodes( oSettings, iRow )[iColumn].innerHTML = sDisplay;
1999 var iDisplayIndex = $.inArray( iRow, oSettings.aiDisplay );
2000 oSettings.asDataSearch[iDisplayIndex] = _fnBuildSearchRow( oSettings,
2001 _fnGetRowData( oSettings, iRow, 'filter' ) );
2006 _fnAdjustColumnSizing( oSettings );
2012 _fnReDraw( oSettings );
2028 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
2030 var iColumns = oSettings.aoColumns.length;
2034 if ( oSettings.aoColumns[iCol].bVisible == bShow )
2045 if ( oSettings.aoColumns[i].bVisible )
2052 bAppend = (iInsert >= _fnVisbleColumns( oSettings ));
2059 if ( oSettings.aoColumns[i].bVisible )
2067 for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
2069 if ( oSettings.aoData[i].nTr !== null )
2073 oSettings.aoData[i].nTr.appendChild(
2074 oSettings.aoData[i]._anHidden[iCol]
2079 oSettings.aoData[i].nTr.insertBefore(
2080 oSettings.aoData[i]._anHidden[iCol],
2081 _fnGetTdNodes( oSettings, i )[iBefore] );
2089 for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
2091 if ( oSettings.aoData[i].nTr !== null )
2093 nTd = _fnGetTdNodes( oSettings, i )[iCol];
2094 oSettings.aoData[i]._anHidden[iCol] = nTd;
2101 oSettings.aoColumns[iCol].bVisible = bShow;
2104 _fnDrawHead( oSettings, oSettings.aoHeader );
2105 if ( oSettings.nTFoot )
2107 _fnDrawHead( oSettings, oSettings.aoFooter );
2111 for ( i=0, iLen=oSettings.aoOpenRows.length ; i<iLen ; i++ )
2113 oSettings.aoOpenRows[i].nTr.colSpan = _fnVisbleColumns( oSettings );
2121 _fnAdjustColumnSizing( oSettings );
2122 _fnDraw( oSettings );
2125 _fnSaveState( oSettings );
2137 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
2138 _fnPageChange( oSettings, sAction );
2139 _fnCalculateEnd( oSettings );
2143 _fnDraw( oSettings );
2155 var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
2156 var nOrig = oSettings.nTableWrapper.parentNode;
2157 var nBody = oSettings.nTBody;
2161 oSettings.bDestroying = true;
2164 for ( i=0, iLen=oSettings.aoDestroyCallback.length ; i<iLen ; i++ ) {
2165 oSettings.aoDestroyCallback[i].fn();
2169 for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
2171 if ( oSettings.aoColumns[i].bVisible === false )
2178 $(oSettings.nTableWrapper).find('*').andSelf().unbind('.DT');
2181 $('tbody>tr>td.'+oSettings.oClasses.sRowEmpty, oSettings.nTable).parent().remove();
2184 if ( oSettings.nTable != oSettings.nTHead.parentNode )
2186 $(oSettings.nTable).children('thead').remove();
2187 oSettings.nTable.appendChild( oSettings.nTHead );
2190 if ( oSettings.nTFoot && oSettings.nTable != oSettings.nTFoot.parentNode )
2192 $(oSettings.nTable).children('tfoot').remove();
2193 oSettings.nTable.appendChild( oSettings.nTFoot );
2197 oSettings.nTable.parentNode.removeChild( oSettings.nTable );
2198 $(oSettings.nTableWrapper).remove();
2200 oSettings.aaSorting = [];
2201 oSettings.aaSortingFixed = [];
2202 _fnSortingClasses( oSettings );
2204 $(_fnGetTrNodes( oSettings )).removeClass( oSettings.asStripeClasses.join(' ') );
2206 if ( !oSettings.bJUI )
2208 $('th', oSettings.nTHead).removeClass( [ _oExt.oStdClasses.sSortable,
2216 $('th', oSettings.nTHead).removeClass( [ _oExt.oStdClasses.sSortable,
2221 $('th span.'+_oExt.oJUIClasses.sSortIcon, oSettings.nTHead).remove();
2223 $('th', oSettings.nTHead).each( function () {
2232 if ( oSettings.nTableReinsertBefore )
2234 nOrig.insertBefore( oSettings.nTable, oSettings.nTableReinsertBefore );
2238 nOrig.appendChild( oSettings.nTable );
2241 for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
2243 if ( oSettings.aoData[i].nTr !== null )
2245 nBody.appendChild( oSettings.aoData[i].nTr );
2250 if ( oSettings.oFeatures.bAutoWidth === true )
2252 oSettings.nTable.style.width = _fnStringToCss(oSettings.sDestroyWidth);
2259 $(nBody).children('tr:even').addClass( oSettings.asDestroyStripes[0] );
2260 $(nBody).children('tr:odd').addClass( oSettings.asDestroyStripes[1] );
2265 if ( _aoSettings[i] == oSettings )
2272 oSettings = null;
2284 var oSettings = _fnSettingsFromNode(this[_oExt.iApiIndex]);
2285 _fnAdjustColumnSizing( oSettings );
2291 else if ( oSettings.oScroll.sX !== "" || oSettings.oScroll.sY !== "" )
2294 this.oApi._fnScrollDraw(oSettings);
2353 function _fnInitialise ( oSettings ) argument
2355 var i, iLen, iAjaxStart=oSettings.iInitDisplayStart;
2358 if ( oSettings.bInitialised === false )
2360 setTimeout( function(){ _fnInitialise( oSettings ); }, 200 );
2365 _fnAddOptionsHtml( oSettings );
2368 _fnBuildHead( oSettings );
2369 _fnDrawHead( oSettings, oSettings.aoHeader );
2370 if ( oSettings.nTFoot )
2372 _fnDrawHead( oSettings, oSettings.aoFooter );
2376 _fnProcessingDisplay( oSettings, true );
2379 if ( oSettings.oFeatures.bAutoWidth )
2381 _fnCalculateColumnWidths( oSettings );
2384 for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
2386 if ( oSettings.aoColumns[i].sWidth !== null )
2388 oSettings.aoColumns[i].nTh.style.width = _fnStringToCss( oSettings.aoColumns[i].sWidth );
2396 if ( oSettings.oFeatures.bSort )
2398 _fnSort( oSettings );
2400 else if ( oSettings.oFeatures.bFilter )
2402 _fnFilterComplete( oSettings, oSettings.oPreviousSearch );
2406 oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
2407 _fnCalculateEnd( oSettings );
2408 _fnDraw( oSettings );
2412 if ( oSettings.sAjaxSource !== null && !oSettings.oFeatures.bServerSide )
2415 _fnServerParams( oSettings, aoData );
2416oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, aoData, function(json) {
2418 if ( oSettings.sAjaxDataProp !== "" )
2420 var fnDataSrc = _fnGetObjectDataFn( oSettings.sAjaxDataProp );
2427 _fnAddData( oSettings, aData[i] );
2433 oSettings.iInitDisplayStart = iAjaxStart;
2435 if ( oSettings.oFeatures.bSort )
2437 _fnSort( oSettings );
2441 oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
2442 _fnCalculateEnd( oSettings );
2443 _fnDraw( oSettings );
2446 _fnProcessingDisplay( oSettings, false );
2447 _fnInitComplete( oSettings, json );
2448 }, oSettings );
2453 if ( !oSettings.oFeatures.bServerSide )
2455 _fnProcessingDisplay( oSettings, false );
2456 _fnInitComplete( oSettings );
2466 function _fnInitComplete ( oSettings, json ) argument
2468 oSettings._bInitComplete = true;
2469 if ( typeof oSettings.fnInitComplete == 'function' )
2473 oSettings.fnInitComplete.call( oSettings.oInstance, oSettings, json );
2477 oSettings.fnInitComplete.call( oSettings.oInstance, oSettings );
2490 function _fnLanguageProcess( oSettings, oLanguage, bInit ) argument
2492 oSettings.oLanguage = $.extend( true, oSettings.oLanguage, oLanguage );
2500 _fnMap( oSettings.oLanguage, oLanguage, 'sZeroRecords', 'sEmptyTable' );
2507 _fnMap( oSettings.oLanguage, oLanguage, 'sZeroRecords', 'sLoadingRecords' );
2512 _fnInitialise( oSettings );
2523 function _fnAddColumn( oSettings, nTh ) argument
2525 var iCol = oSettings.aoColumns.length;
2533 "sSortingClass": oSettings.oClasses.sSortable,
2534 "sSortingClassJUI": oSettings.oClasses.sSortJUI,
2552 oSettings.aoColumns.push( oCol );
2555 if ( typeof oSettings.aoPreSearchCols[ iCol ] == 'undefined' ||
2556 oSettings.aoPreSearchCols[ iCol ] === null )
2558 oSettings.aoPreSearchCols[ iCol ] = {
2567 if ( typeof oSettings.aoPreSearchCols[ iCol ].bRegex == 'undefined' )
2569 oSettings.aoPreSearchCols[ iCol ].bRegex = true;
2572 if ( typeof oSettings.aoPreSearchCols[ iCol ].bSmart == 'undefined' )
2574 oSettings.aoPreSearchCols[ iCol ].bSmart = true;
2579 _fnColumnOptions( oSettings, iCol, null );
2590 function _fnColumnOptions( oSettings, iCol, oOptions ) argument
2592 var oCol = oSettings.aoColumns[ iCol ];
2626 if ( !oSettings.oFeatures.bSort )
2635 oCol.sSortingClass = oSettings.oClasses.sSortableNone;
2641 oCol.sSortingClass = oSettings.oClasses.sSortable;
2642 oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI;
2646 oCol.sSortingClass = oSettings.oClasses.sSortableAsc;
2647 oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIAscAllowed;
2651 oCol.sSortingClass = oSettings.oClasses.sSortableDesc;
2652 oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIDescAllowed;
2666 function _fnAddData ( oSettings, aDataSupplied ) argument
2676 var iRow = oSettings.aoData.length;
2679 "_iId": oSettings.iNextId++,
2684 oSettings.aoData.push( oData );
2688 for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
2690 oCol = oSettings.aoColumns[i];
2695 _fnSetCellData( oSettings, iRow, i, oCol.fnRender( {
2699 "oSettings": oSettings
2707 var sVarType = _fnGetCellData( oSettings, iRow, i, 'type' );
2725 oSettings.aiDisplayMaster.push( iRow );
2728 if ( !oSettings.oFeatures.bDeferRender )
2730 _fnCreateTr( oSettings, iRow );
2743 function _fnCreateTr ( oSettings, iRow ) argument
2745 var oData = oSettings.aoData[iRow];
2764 for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
2766 var oCol = oSettings.aoColumns[i];
2778 "oSettings": oSettings
2783 nTd.innerHTML = _fnGetCellData( oSettings, iRow, i, 'display' );
2813 function _fnGatherData( oSettings ) argument
2824 if ( oSettings.bDeferLoading || oSettings.sAjaxSource === null )
2826 nTrs = oSettings.nTBody.childNodes;
2831 iThisIndex = oSettings.aoData.length;
2832 oSettings.aoData.push( {
2834 "_iId": oSettings.iNextId++,
2840 oSettings.aiDisplayMaster.push( iThisIndex );
2849 _fnSetCellData( oSettings, iThisIndex, jInner, $.trim(nTds[j].innerHTML) );
2861 nTrs = _fnGetTrNodes( oSettings );
2877 if ( nTds.length != nTrs.length * oSettings.aoColumns.length )
2879 _fnLog( oSettings, 1, "Unexpected number of TD elements. Expected "+
2880 (nTrs.length * oSettings.aoColumns.length)+" and got "+nTds.length+". DataTables does "+
2886 for ( iColumn=0, iColumns=oSettings.aoColumns.length ; iColumn<iColumns ; iColumn++ )
2889 if ( oSettings.aoColumns[iColumn].sTitle === null )
2891 oSettings.aoColumns[iColumn].sTitle = oSettings.aoColumns[iColumn].nTh.innerHTML;
2895 bAutoType = oSettings.aoColumns[iColumn]._bAutoType,
2896 bRender = typeof oSettings.aoColumns[iColumn].fnRender == 'function',
2897 bClass = oSettings.aoColumns[iColumn].sClass !== null,
2898 bVisible = oSettings.aoColumns[iColumn].bVisible,
2904 for ( iRow=0, iRows=oSettings.aoData.length ; iRow<iRows ; iRow++ )
2909 if ( bAutoType && oSettings.aoColumns[iColumn].sType != 'string' )
2911 sValType = _fnGetCellData( oSettings, iRow, iColumn, 'type' );
2915 if ( oSettings.aoColumns[iColumn].sType === null )
2917 oSettings.aoColumns[iColumn].sType = sThisType;
2919 else if ( oSettings.aoColumns[iColumn].sType != sThisType &&
2920 oSettings.aoColumns[iColumn].sType != "html" )
2923 oSettings.aoColumns[iColumn].sType = 'string';
2931 sRendered = oSettings.aoColumns[iColumn].fnRender( {
2934 "aData": oSettings.aoData[iRow]._aData,
2935 "oSettings": oSettings
2938 if ( oSettings.aoColumns[iColumn].bUseRendered )
2941 _fnSetCellData( oSettings, iRow, iColumn, sRendered );
2948 nCell.className += ' '+oSettings.aoColumns[iColumn].sClass;
2954 oSettings.aoData[iRow]._anHidden[iColumn] = nCell;
2959 oSettings.aoData[iRow]._anHidden[iColumn] = null;
2972 function _fnBuildHead( oSettings ) argument
2975 var anTr = oSettings.nTHead.getElementsByTagName('tr');
2976 var iThs = oSettings.nTHead.getElementsByTagName('th').length;
2984 for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
2986 nTh = oSettings.aoColumns[i].nTh;
2988 if ( oSettings.aoColumns[i].sClass !== null )
2990 $(nTh).addClass( oSettings.aoColumns[i].sClass );
2994 if ( oSettings.aoColumns[i].sTitle != nTh.innerHTML )
2996 nTh.innerHTML = oSettings.aoColumns[i].sTitle;
3005 for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
3007 nTh = oSettings.aoColumns[i].nTh;
3008 nTh.innerHTML = oSettings.aoColumns[i].sTitle;
3010 if ( oSettings.aoColumns[i].sClass !== null )
3012 $(nTh).addClass( oSettings.aoColumns[i].sClass );
3017 $(oSettings.nTHead).html( '' )[0].appendChild( nTr );
3018 _fnDetectHeader( oSettings.aoHeader, oSettings.nTHead );
3022 if ( oSettings.bJUI )
3024 for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
3026 nTh = oSettings.aoColumns[i].nTh;
3029 nDiv.className = oSettings.oClasses.sSortJUIWrapper;
3033 nSpan.className = oSettings.oClasses.sSortIcon;
3045 if ( oSettings.oFeatures.bSort )
3047 for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
3049 if ( oSettings.aoColumns[i].bSortable !== false )
3051 _fnSortAttachListener( oSettings, oSettings.aoColumns[i].nTh, i );
3054 $(oSettings.aoColumns[i].nTh).bind( 'mousedown.DT', fnNoSelect );
3058 $(oSettings.aoColumns[i].nTh).addClass( oSettings.oClasses.sSortableNone );
3064 if ( oSettings.oClasses.sFooterTH !== "" )
3066 $(oSettings.nTFoot).children('tr').children('th').addClass( oSettings.oClasses.sFooterTH );
3070 if ( oSettings.nTFoot !== null )
3072 var anCells = _fnGetUniqueThs( oSettings, null, oSettings.aoFooter );
3073 for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
3077 oSettings.aoColumns[i].nTf = anCells[i];
3103 function _fnDrawHead( oSettings, aoSource, bIncludeHidden ) argument
3108 var iColumns = oSettings.aoColumns.length;
3125 if ( !oSettings.aoColumns[j].bVisible && !bIncludeHidden )
3193 function _fnDraw( oSettings ) argument
3199 var iStripes = oSettings.asStripeClasses.length;
3200 var iOpenRows = oSettings.aoOpenRows.length;
3203 if ( oSettings.fnPreDrawCallback !== null &&
3204 oSettings.fnPreDrawCallback.call( oSettings.oInstance, oSettings ) === false )
3209 oSettings.bDrawing = true;
3212 if ( typeof oSettings.iInitDisplayStart != 'undefined' && oSettings.iInitDisplayStart != -1 )
3214 if ( oSettings.oFeatures.bServerSide )
3216 oSettings._iDisplayStart = oSettings.iInitDisplayStart;
3220 oSettings._iDisplayStart = (oSettings.iInitDisplayStart >= oSettings.fnRecordsDisplay()) ?
3221 0 : oSettings.iInitDisplayStart;
3223 oSettings.iInitDisplayStart = -1;
3224 _fnCalculateEnd( oSettings );
3228 if ( oSettings.bDeferLoading )
3230 oSettings.bDeferLoading = false;
3231 oSettings.iDraw++;
3233 else if ( !oSettings.oFeatures.bServerSide )
3235 oSettings.iDraw++;
3237 else if ( !oSettings.bDestroying && !_fnAjaxUpdate( oSettings ) )
3242 if ( oSettings.aiDisplay.length !== 0 )
3244 var iStart = oSettings._iDisplayStart;
3245 var iEnd = oSettings._iDisplayEnd;
3247 if ( oSettings.oFeatures.bServerSide )
3250 iEnd = oSettings.aoData.length;
3255 var aoData = oSettings.aoData[ oSettings.aiDisplay[j] ];
3258 _fnCreateTr( oSettings, oSettings.aiDisplay[j] );
3266 var sStripe = oSettings.asStripeClasses[ iRowCount % iStripes ];
3275 if ( typeof oSettings.fnRowCallback == "function" )
3277 nRow = oSettings.fnRowCallback.call( oSettings.oInstance, nRow,
3278 oSettings.aoData[ oSettings.aiDisplay[j] ]._aData, iRowCount, j );
3281 _fnLog( oSettings, 0, "A node was not returned by fnRowCallback" );
3294 if ( nRow == oSettings.aoOpenRows[k].nParent )
3296 anRows.push( oSettings.aoOpenRows[k].nTr );
3307 if ( typeof oSettings.asStripeClasses[0] != 'undefined' )
3309 anRows[ 0 ].className = oSettings.asStripeClasses[0];
3312 var sZero = oSettings.oLanguage.sZeroRecords.replace(
3313 '_MAX_', oSettings.fnFormatNumber(oSettings.fnRecordsTotal()) );
3314 … if ( oSettings.iDraw == 1 && oSettings.sAjaxSource !== null && !oSettings.oFeatures.bServerSide )
3316 sZero = oSettings.oLanguage.sLoadingRecords;
3318 else if ( typeof oSettings.oLanguage.sEmptyTable != 'undefined' &&
3319 oSettings.fnRecordsTotal() === 0 )
3321 sZero = oSettings.oLanguage.sEmptyTable;
3326 nTd.colSpan = _fnVisbleColumns( oSettings );
3327 nTd.className = oSettings.oClasses.sRowEmpty;
3334 if ( typeof oSettings.fnHeaderCallback == 'function' )
3336 oSettings.fnHeaderCallback.call( oSettings.oInstance, $(oSettings.nTHead).children('tr')[0],
3337 _fnGetDataMaster( oSettings ), oSettings._iDisplayStart, oSettings.fnDisplayEnd(),
3338 oSettings.aiDisplay );
3341 if ( typeof oSettings.fnFooterCallback == 'function' )
3343 oSettings.fnFooterCallback.call( oSettings.oInstance, $(oSettings.nTFoot).children('tr')[0],
3344 _fnGetDataMaster( oSettings ), oSettings._iDisplayStart, oSettings.fnDisplayEnd(),
3345 oSettings.aiDisplay );
3358 if ( oSettings.nTBody )
3360 nBodyPar = oSettings.nTBody.parentNode;
3361 nRemoveFrag.appendChild( oSettings.nTBody );
3366 if ( !oSettings.oScroll.bInfinite || !oSettings._bInitComplete ||
3367 oSettings.bSorted || oSettings.bFiltered )
3369 nTrs = oSettings.nTBody.childNodes;
3382 oSettings.nTBody.appendChild( nAddFrag );
3385 nBodyPar.appendChild( oSettings.nTBody );
3390 for ( i=oSettings.aoDrawCallback.length-1 ; i>=0 ; i-- )
3392 oSettings.aoDrawCallback[i].fn.call( oSettings.oInstance, oSettings );
3394 $(oSettings.oInstance).trigger('draw', oSettings);
3397 oSettings.bSorted = false;
3398 oSettings.bFiltered = false;
3399 oSettings.bDrawing = false;
3401 if ( oSettings.oFeatures.bServerSide )
3403 _fnProcessingDisplay( oSettings, false );
3404 if ( typeof oSettings._bInitComplete == 'undefined' )
3406 _fnInitComplete( oSettings );
3417 function _fnReDraw( oSettings ) argument
3419 if ( oSettings.oFeatures.bSort )
3422 _fnSort( oSettings, oSettings.oPreviousSearch );
3424 else if ( oSettings.oFeatures.bFilter )
3427 _fnFilterComplete( oSettings, oSettings.oPreviousSearch );
3431 _fnCalculateEnd( oSettings );
3432 _fnDraw( oSettings );
3442 function _fnAjaxUpdate( oSettings ) argument
3444 if ( oSettings.bAjaxDataGet )
3446 oSettings.iDraw++;
3447 _fnProcessingDisplay( oSettings, true );
3448 var iColumns = oSettings.aoColumns.length;
3449 var aoData = _fnAjaxParameters( oSettings );
3450 _fnServerParams( oSettings, aoData );
3452 oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, aoData,
3454 _fnAjaxUpdateDraw( oSettings, json );
3455 }, oSettings );
3470 function _fnAjaxParameters( oSettings ) argument
3472 var iColumns = oSettings.aoColumns.length;
3476 aoData.push( { "name": "sEcho", "value": oSettings.iDraw } );
3478 aoData.push( { "name": "sColumns", "value": _fnColumnOrdering(oSettings) } );
3479 aoData.push( { "name": "iDisplayStart", "value": oSettings._iDisplayStart } );
3480 aoData.push( { "name": "iDisplayLength", "value": oSettings.oFeatures.bPaginate !== false ?
3481 oSettings._iDisplayLength : -1 } );
3485 mDataProp = oSettings.aoColumns[i].mDataProp;
3490 if ( oSettings.oFeatures.bFilter !== false )
3492 aoData.push( { "name": "sSearch", "value": oSettings.oPreviousSearch.sSearch } );
3493 aoData.push( { "name": "bRegex", "value": oSettings.oPreviousSearch.bRegex } );
3496 aoData.push( { "name": "sSearch_"+i, "value": oSettings.aoPreSearchCols[i].sSearch } );
3497 aoData.push( { "name": "bRegex_"+i, "value": oSettings.aoPreSearchCols[i].bRegex } );
3498 aoData.push( { "name": "bSearchable_"+i, "value": oSettings.aoColumns[i].bSearchable } );
3503 if ( oSettings.oFeatures.bSort !== false )
3505 var iFixed = oSettings.aaSortingFixed !== null ? oSettings.aaSortingFixed.length : 0;
3506 var iUser = oSettings.aaSorting.length;
3510 aoData.push( { "name": "iSortCol_"+i, "value": oSettings.aaSortingFixed[i][0] } );
3511 aoData.push( { "name": "sSortDir_"+i, "value": oSettings.aaSortingFixed[i][1] } );
3516 aoData.push( { "name": "iSortCol_"+(i+iFixed), "value": oSettings.aaSorting[i][0] } );
3517 aoData.push( { "name": "sSortDir_"+(i+iFixed), "value": oSettings.aaSorting[i][1] } );
3522 aoData.push( { "name": "bSortable_"+i, "value": oSettings.aoColumns[i].bSortable } );
3536 function _fnServerParams( oSettings, aoData ) argument
3538 for ( var i=0, iLen=oSettings.aoServerParams.length ; i<iLen ; i++ )
3540 oSettings.aoServerParams[i].fn.call( oSettings.oInstance, aoData );
3555 function _fnAjaxUpdateDraw ( oSettings, json ) argument
3562 if ( json.sEcho*1 < oSettings.iDraw )
3568 oSettings.iDraw = json.sEcho * 1;
3572 if ( !oSettings.oScroll.bInfinite ||
3573 (oSettings.oScroll.bInfinite && (oSettings.bSorted || oSettings.bFiltered)) )
3575 _fnClearTable( oSettings );
3577 oSettings._iRecordsTotal = json.iTotalRecords;
3578 oSettings._iRecordsDisplay = json.iTotalDisplayRecords;
3581 var sOrdering = _fnColumnOrdering(oSettings);
3585 var aiIndex = _fnReOrderIndex( oSettings, json.sColumns );
3588 var fnDataSrc = _fnGetObjectDataFn( oSettings.sAjaxDataProp );
3597 for ( var j=0, jLen=oSettings.aoColumns.length ; j<jLen ; j++ )
3601 _fnAddData( oSettings, aDataSorted );
3606 _fnAddData( oSettings, aData[i] );
3609 oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
3611 oSettings.bAjaxDataGet = false;
3612 _fnDraw( oSettings );
3613 oSettings.bAjaxDataGet = true;
3614 _fnProcessingDisplay( oSettings, false );
3628 function _fnAddOptionsHtml ( oSettings ) argument
3635 oSettings.nTable.parentNode.insertBefore( nHolding, oSettings.nTable );
3640 oSettings.nTableWrapper = document.createElement( 'div' );
3641 oSettings.nTableWrapper.className = oSettings.oClasses.sWrapper;
3642 if ( oSettings.sTableId !== '' )
3644 oSettings.nTableWrapper.setAttribute( 'id', oSettings.sTableId+'_wrapper' );
3647 oSettings.nTableReinsertBefore = oSettings.nTable.nextSibling;
3650 var nInsertNode = oSettings.nTableWrapper;
3653 var aDom = oSettings.sDom.split('');
3716 else if ( cOption == 'l' && oSettings.oFeatures.bPaginate && oSettings.oFeatures.bLengthChange )
3719 nTmp = _fnFeatureHtmlLength( oSettings );
3722 else if ( cOption == 'f' && oSettings.oFeatures.bFilter )
3725 nTmp = _fnFeatureHtmlFilter( oSettings );
3728 else if ( cOption == 'r' && oSettings.oFeatures.bProcessing )
3731 nTmp = _fnFeatureHtmlProcessing( oSettings );
3737 nTmp = _fnFeatureHtmlTable( oSettings );
3740 else if ( cOption == 'i' && oSettings.oFeatures.bInfo )
3743 nTmp = _fnFeatureHtmlInfo( oSettings );
3746 else if ( cOption == 'p' && oSettings.oFeatures.bPaginate )
3749 nTmp = _fnFeatureHtmlPaginate( oSettings );
3760 nTmp = aoFeatures[k].fnInit( oSettings );
3773 if ( typeof oSettings.aanFeatures[cOption] != 'object' )
3775 oSettings.aanFeatures[cOption] = [];
3777 oSettings.aanFeatures[cOption].push( nTmp );
3783 nHolding.parentNode.replaceChild( oSettings.nTableWrapper, nHolding );
3797 function _fnFeatureHtmlTable ( oSettings ) argument
3800 if ( oSettings.oScroll.sX === "" && oSettings.oScroll.sY === "" )
3802 return oSettings.nTable;
3828 nScrollHeadTable = oSettings.nTable.cloneNode(false),
3829 nScrollFootTable = oSettings.nTable.cloneNode(false),
3830 nThead = oSettings.nTable.getElementsByTagName('thead')[0],
3831 nTfoot = oSettings.nTable.getElementsByTagName('tfoot').length === 0 ? null :
3832 oSettings.nTable.getElementsByTagName('tfoot')[0],
3838 nScrollBody.appendChild( oSettings.nTable );
3857 if ( oSettings.oScroll.bAutoCss )
3873 oSettings.nTable.style.marginLeft = "0";
3881 var nCaptions = $(oSettings.nTable).children('caption');
3891 if ( oSettings.oScroll.sX !== "" )
3893 nScrollHead.style.width = _fnStringToCss( oSettings.oScroll.sX );
3894 nScrollBody.style.width = _fnStringToCss( oSettings.oScroll.sX );
3898 nScrollFoot.style.width = _fnStringToCss( oSettings.oScroll.sX );
3913 if ( oSettings.oScroll.sY !== "" )
3915 nScrollBody.style.height = _fnStringToCss( oSettings.oScroll.sY );
3919 oSettings.aoDrawCallback.push( {
3925 if ( oSettings.oScroll.bInfinite )
3929 if ( !oSettings.bDrawing )
3933 $(oSettings.nTable).height() - oSettings.oScroll.iLoadGap )
3936 if ( oSettings.fnDisplayEnd() < oSettings.fnRecordsDisplay() )
3938 _fnPageChange( oSettings, 'next' );
3939 _fnCalculateEnd( oSettings );
3940 _fnDraw( oSettings );
3947 oSettings.nScrollHead = nScrollHead;
3948 oSettings.nScrollFoot = nScrollFoot;
4248 function _fnAdjustColumnSizing ( oSettings ) argument
4251 if ( oSettings.oFeatures.bAutoWidth === false )
4256 _fnCalculateColumnWidths( oSettings );
4257 for ( var i=0 , iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
4259 oSettings.aoColumns[i].nTh.style.width = oSettings.aoColumns[i].sWidth;
4274 function _fnFeatureHtmlFilter ( oSettings ) argument
4276 var sSearchStr = oSettings.oLanguage.sSearch;
4282 nFilter.className = oSettings.oClasses.sFilter;
4284 if ( oSettings.sTableId !== '' && typeof oSettings.aanFeatures.f == "undefined" )
4286 nFilter.setAttribute( 'id', oSettings.sTableId+'_filter' );
4290 jqFilter.val( oSettings.oPreviousSearch.sSearch.replace('"','&quot;') );
4293 var n = oSettings.aanFeatures.f;
4303 if ( this.value != oSettings.oPreviousSearch.sSearch )
4305 _fnFilterComplete( oSettings, {
4307 "bRegex": oSettings.oPreviousSearch.bRegex,
4308 "bSmart": oSettings.oPreviousSearch.bSmart
4332 function _fnFilterComplete ( oSettings, oInput, iForce ) argument
4335 _fnFilter( oSettings, oInput.sSearch, iForce, oInput.bRegex, oInput.bSmart );
4338 for ( var i=0 ; i<oSettings.aoPreSearchCols.length ; i++ )
4340 _fnFilterColumn( oSettings, oSettings.aoPreSearchCols[i].sSearch, i,
4341 oSettings.aoPreSearchCols[i].bRegex, oSettings.aoPreSearchCols[i].bSmart );
4347 _fnFilterCustom( oSettings );
4351 oSettings.bFiltered = true;
4352 $(oSettings.oInstance).trigger('filter', oSettings);
4355 oSettings._iDisplayStart = 0;
4356 _fnCalculateEnd( oSettings );
4357 _fnDraw( oSettings );
4360 _fnBuildSearchArray( oSettings, 0 );
4369 function _fnFilterCustom( oSettings ) argument
4375 for ( var j=0, jLen=oSettings.aiDisplay.length ; j<jLen ; j++ )
4377 var iDisIndex = oSettings.aiDisplay[j-iCorrector];
4380 if ( !afnFilters[i]( oSettings, _fnGetRowData( oSettings, iDisIndex, 'filter' ), iDisIndex ) )
4382 oSettings.aiDisplay.splice( j-iCorrector, 1 );
4399 function _fnFilterColumn ( oSettings, sInput, iColumn, bRegex, bSmart ) argument
4409 for ( var i=oSettings.aiDisplay.length-1 ; i>=0 ; i-- )
4411 …var sData = _fnDataToSearch( _fnGetCellData( oSettings, oSettings.aiDisplay[i], iColumn, 'filter' …
4412 oSettings.aoColumns[iColumn].sType );
4415 oSettings.aiDisplay.splice( i, 1 );
4431 function _fnFilter( oSettings, sInput, iForce, bRegex, bSmart ) argument
4453 oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length);
4454 oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
4462 if ( oSettings.aiDisplay.length == oSettings.aiDisplayMaster.length ||
4463 oSettings.oPreviousSearch.sSearch.length > sInput.length || iForce == 1 ||
4464 sInput.indexOf(oSettings.oPreviousSearch.sSearch) !== 0 )
4467 oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length);
4470 _fnBuildSearchArray( oSettings, 1 );
4476 for ( i=0 ; i<oSettings.aiDisplayMaster.length ; i++ )
4478 if ( rpSearch.test(oSettings.asDataSearch[i]) )
4480 oSettings.aiDisplay.push( oSettings.aiDisplayMaster[i] );
4492 for ( i=0 ; i<oSettings.asDataSearch.length ; i++ )
4494 if ( ! rpSearch.test(oSettings.asDataSearch[i]) )
4496 oSettings.aiDisplay.splice( i-iIndexCorrector, 1 );
4502 oSettings.oPreviousSearch.sSearch = sInput;
4503 oSettings.oPreviousSearch.bRegex = bRegex;
4504 oSettings.oPreviousSearch.bSmart = bSmart;
4514 function _fnBuildSearchArray ( oSettings, iMaster ) argument
4516 if ( !oSettings.oFeatures.bServerSide )
4519 oSettings.asDataSearch.splice( 0, oSettings.asDataSearch.length );
4522 oSettings.aiDisplayMaster : oSettings.aiDisplay;
4526 oSettings.asDataSearch[i] = _fnBuildSearchRow( oSettings,
4527 _fnGetRowData( oSettings, aArray[i], 'filter' ) );
4539 function _fnBuildSearchRow( oSettings, aData ) argument
4542 if ( typeof oSettings.__nTmpFilter == 'undefined' ) {
4543 oSettings.__nTmpFilter = document.createElement('div');
4545 var nTmp = oSettings.__nTmpFilter;
4547 for ( var j=0, jLen=oSettings.aoColumns.length ; j<jLen ; j++ )
4549 if ( oSettings.aoColumns[j].bSearchable )
4552 sSearch += _fnDataToSearch( sData, oSettings.aoColumns[j].sType )+' ';
4641 function _fnSort ( oSettings, bApplyClasses ) argument
4649 aoData = oSettings.aoData,
4650 aoColumns = oSettings.aoColumns;
4653 if ( !oSettings.oFeatures.bServerSide &&
4654 (oSettings.aaSorting.length !== 0 || oSettings.aaSortingFixed !== null) )
4656 if ( oSettings.aaSortingFixed !== null )
4658 aaSort = oSettings.aaSortingFixed.concat( oSettings.aaSorting );
4662 aaSort = oSettings.aaSorting.slice();
4671 var iVisColumn = _fnColumnIndexToVisible( oSettings, iColumn );
4672 var sDataType = oSettings.aoColumns[ iColumn ].sSortDataType;
4675 var aData = _oExt.afnSortData[sDataType]( oSettings, iColumn, iVisColumn );
4678 _fnSetCellData( oSettings, j, iColumn, aData[j] );
4686 for ( i=0, iLen=oSettings.aiDisplayMaster.length ; i<iLen ; i++ )
4688 aiOrig[ oSettings.aiDisplayMaster[i] ] = i;
4709 oSettings.aiDisplayMaster.sort( function ( a, b ) {
4716 _fnGetCellData( oSettings, a, iDataSort, 'sort' ),
4717 _fnGetCellData( oSettings, b, iDataSort, 'sort' )
4731 … if ( (typeof bApplyClasses == 'undefined' || bApplyClasses) && !oSettings.oFeatures.bDeferRender )
4733 _fnSortingClasses( oSettings );
4737 oSettings.bSorted = true;
4738 $(oSettings.oInstance).trigger('sort', oSettings);
4741 if ( oSettings.oFeatures.bFilter )
4744 _fnFilterComplete( oSettings, oSettings.oPreviousSearch, 1 );
4748 oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
4749 oSettings._iDisplayStart = 0; /* reset display back to page 0 */
4750 _fnCalculateEnd( oSettings );
4751 _fnDraw( oSettings );
4764 function _fnSortAttachListener ( oSettings, nNode, iDataIndex, fnCallback ) argument
4768 if ( oSettings.aoColumns[iDataIndex].bSortable === false )
4794 for ( var i=0 ; i<oSettings.aaSorting.length ; i++ )
4796 if ( oSettings.aaSorting[i][0] == iDataIndex )
4799 iColumn = oSettings.aaSorting[i][0];
4800 iNextSort = oSettings.aaSorting[i][2]+1;
4802 if ( typeof oSettings.aoColumns[iColumn].asSorting[iNextSort] == 'undefined' )
4805 oSettings.aaSorting.splice( i, 1 );
4810 oSettings.aaSorting[i][1] = oSettings.aoColumns[iColumn].asSorting[iNextSort];
4811 oSettings.aaSorting[i][2] = iNextSort;
4820 oSettings.aaSorting.push( [ iDataIndex,
4821 oSettings.aoColumns[iDataIndex].asSorting[0], 0 ] );
4827 if ( oSettings.aaSorting.length == 1 && oSettings.aaSorting[0][0] == iDataIndex )
4829 iColumn = oSettings.aaSorting[0][0];
4830 iNextSort = oSettings.aaSorting[0][2]+1;
4831 if ( typeof oSettings.aoColumns[iColumn].asSorting[iNextSort] == 'undefined' )
4835 oSettings.aaSorting[0][1] = oSettings.aoColumns[iColumn].asSorting[iNextSort];
4836 oSettings.aaSorting[0][2] = iNextSort;
4840 oSettings.aaSorting.splice( 0, oSettings.aaSorting.length );
4841 oSettings.aaSorting.push( [ iDataIndex,
4842 oSettings.aoColumns[iDataIndex].asSorting[0], 0 ] );
4847 _fnSort( oSettings );
4850 if ( !oSettings.oFeatures.bProcessing )
4856 _fnProcessingDisplay( oSettings, true );
4859 if ( !oSettings.oFeatures.bServerSide )
4861 _fnProcessingDisplay( oSettings, false );
4869 fnCallback( oSettings );
4881 function _fnSortingClasses( oSettings ) argument
4885 var iColumns = oSettings.aoColumns.length;
4886 var oClasses = oSettings.oClasses;
4890 if ( oSettings.aoColumns[i].bSortable )
4892 $(oSettings.aoColumns[i].nTh).removeClass( oClasses.sSortAsc +" "+ oClasses.sSortDesc +
4893 " "+ oSettings.aoColumns[i].sSortingClass );
4897 if ( oSettings.aaSortingFixed !== null )
4899 aaSort = oSettings.aaSortingFixed.concat( oSettings.aaSorting );
4903 aaSort = oSettings.aaSorting.slice();
4907 for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
4909 if ( oSettings.aoColumns[i].bSortable )
4911 sClass = oSettings.aoColumns[i].sSortingClass;
4923 $(oSettings.aoColumns[i].nTh).addClass( sClass );
4925 if ( oSettings.bJUI )
4928 var jqSpan = $("span", oSettings.aoColumns[i].nTh);
4935 sSpanClass = oSettings.aoColumns[i].sSortingClassJUI;
4954 $(oSettings.aoColumns[i].nTh).addClass( oSettings.aoColumns[i].sSortingClass );
4971 if ( oSettings.oFeatures.bSort && oSettings.oFeatures.bSortClasses )
4973 var nTds = _fnGetTdNodes( oSettings );
4976 if ( oSettings.oFeatures.bDeferRender )
5041 function _fnFeatureHtmlPaginate ( oSettings ) argument
5043 if ( oSettings.oScroll.bInfinite )
5049 nPaginate.className = oSettings.oClasses.sPaging+oSettings.sPaginationType;
5051 _oExt.oPagination[ oSettings.sPaginationType ].fnInit( oSettings, nPaginate,
5052 function( oSettings ) { argument
5053 _fnCalculateEnd( oSettings );
5054 _fnDraw( oSettings );
5059 if ( typeof oSettings.aanFeatures.p == "undefined" )
5061 oSettings.aoDrawCallback.push( {
5062 "fn": function( oSettings ) { argument
5063 _oExt.oPagination[ oSettings.sPaginationType ].fnUpdate( oSettings, function( oSettings ) { argument
5064 _fnCalculateEnd( oSettings );
5065 _fnDraw( oSettings );
5081 function _fnPageChange ( oSettings, sAction ) argument
5083 var iOldStart = oSettings._iDisplayStart;
5087 oSettings._iDisplayStart = 0;
5091 oSettings._iDisplayStart = oSettings._iDisplayLength>=0 ?
5092 oSettings._iDisplayStart - oSettings._iDisplayLength :
5096 if ( oSettings._iDisplayStart < 0 )
5098 oSettings._iDisplayStart = 0;
5103 if ( oSettings._iDisplayLength >= 0 )
5106 if ( oSettings._iDisplayStart + oSettings._iDisplayLength < oSettings.fnRecordsDisplay() )
5108 oSettings._iDisplayStart += oSettings._iDisplayLength;
5113 oSettings._iDisplayStart = 0;
5118 if ( oSettings._iDisplayLength >= 0 )
5120 var iPages = parseInt( (oSettings.fnRecordsDisplay()-1) / oSettings._iDisplayLength, 10 ) + 1;
5121 oSettings._iDisplayStart = (iPages-1) * oSettings._iDisplayLength;
5125 oSettings._iDisplayStart = 0;
5130 _fnLog( oSettings, 0, "Unknown paging action: "+sAction );
5132 $(oSettings.oInstance).trigger('page', oSettings);
5134 return iOldStart != oSettings._iDisplayStart;
5148 function _fnFeatureHtmlInfo ( oSettings ) argument
5151 nInfo.className = oSettings.oClasses.sInfo;
5154 if ( typeof oSettings.aanFeatures.i == "undefined" )
5157 oSettings.aoDrawCallback.push( {
5163 if ( oSettings.sTableId !== '' )
5165 nInfo.setAttribute( 'id', oSettings.sTableId+'_info' );
5178 function _fnUpdateInfo ( oSettings ) argument
5181 if ( !oSettings.oFeatures.bInfo || oSettings.aanFeatures.i.length === 0 )
5187 iStart = oSettings._iDisplayStart+1, iEnd = oSettings.fnDisplayEnd(),
5188 iMax = oSettings.fnRecordsTotal(), iTotal = oSettings.fnRecordsDisplay(),
5189 sStart = oSettings.fnFormatNumber( iStart ), sEnd = oSettings.fnFormatNumber( iEnd ),
5190 sMax = oSettings.fnFormatNumber( iMax ), sTotal = oSettings.fnFormatNumber( iTotal ),
5196 if ( oSettings.oScroll.bInfinite )
5198 sStart = oSettings.fnFormatNumber( 1 );
5201 if ( oSettings.fnRecordsDisplay() === 0 &&
5202 oSettings.fnRecordsDisplay() == oSettings.fnRecordsTotal() )
5205 sOut = oSettings.oLanguage.sInfoEmpty+ oSettings.oLanguage.sInfoPostFix;
5207 else if ( oSettings.fnRecordsDisplay() === 0 )
5210 sOut = oSettings.oLanguage.sInfoEmpty +' '+
5211 oSettings.oLanguage.sInfoFiltered.replace('_MAX_', sMax)+
5212 oSettings.oLanguage.sInfoPostFix;
5214 else if ( oSettings.fnRecordsDisplay() == oSettings.fnRecordsTotal() )
5217 sOut = oSettings.oLanguage.sInfo.
5221 oSettings.oLanguage.sInfoPostFix;
5226 sOut = oSettings.oLanguage.sInfo.
5230 oSettings.oLanguage.sInfoFiltered.replace('_MAX_',
5231 oSettings.fnFormatNumber(oSettings.fnRecordsTotal()))+
5232 oSettings.oLanguage.sInfoPostFix;
5235 if ( oSettings.oLanguage.fnInfoCallback !== null )
5237 sOut = oSettings.oLanguage.fnInfoCallback( oSettings, iStart, iEnd, iMax, iTotal, sOut );
5240 var n = oSettings.aanFeatures.i;
5258 function _fnFeatureHtmlLength ( oSettings ) argument
5260 if ( oSettings.oScroll.bInfinite )
5266 var sName = (oSettings.sTableId === "") ? "" : 'name="'+oSettings.sTableId+'_length"';
5270 if ( oSettings.aLengthMenu.length == 2 && typeof oSettings.aLengthMenu[0] == 'object' &&
5271 typeof oSettings.aLengthMenu[1] == 'object' )
5273 for ( i=0, iLen=oSettings.aLengthMenu[0].length ; i<iLen ; i++ )
5275 sStdMenu += '<option value="'+oSettings.aLengthMenu[0][i]+'">'+
5276 oSettings.aLengthMenu[1][i]+'</option>';
5281 for ( i=0, iLen=oSettings.aLengthMenu.length ; i<iLen ; i++ )
5283 sStdMenu += '<option value="'+oSettings.aLengthMenu[i]+'">'+
5284 oSettings.aLengthMenu[i]+'</option>';
5290 if ( oSettings.sTableId !== '' && typeof oSettings.aanFeatures.l == "undefined" )
5292 nLength.setAttribute( 'id', oSettings.sTableId+'_length' );
5294 nLength.className = oSettings.oClasses.sLength;
5295 …nLength.innerHTML = '<label>'+oSettings.oLanguage.sLengthMenu.replace( '_MENU_', sStdMenu )+'</lab…
5301 $('select option[value="'+oSettings._iDisplayLength+'"]',nLength).attr("selected",true);
5307 var n = oSettings.aanFeatures.l;
5317 oSettings._iDisplayLength = parseInt(iVal, 10);
5318 _fnCalculateEnd( oSettings );
5321 if ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() )
5323 oSettings._iDisplayStart = oSettings.fnDisplayEnd() - oSettings._iDisplayLength;
5324 if ( oSettings._iDisplayStart < 0 )
5326 oSettings._iDisplayStart = 0;
5330 if ( oSettings._iDisplayLength == -1 )
5332 oSettings._iDisplayStart = 0;
5335 _fnDraw( oSettings );
5352 function _fnFeatureHtmlProcessing ( oSettings ) argument
5356 if ( oSettings.sTableId !== '' && typeof oSettings.aanFeatures.r == "undefined" )
5358 nProcessing.setAttribute( 'id', oSettings.sTableId+'_processing' );
5360 nProcessing.innerHTML = oSettings.oLanguage.sProcessing;
5361 nProcessing.className = oSettings.oClasses.sProcessing;
5362 oSettings.nTable.parentNode.insertBefore( nProcessing, oSettings.nTable );
5376 function _fnProcessingDisplay ( oSettings, bShow ) argument
5378 if ( oSettings.oFeatures.bProcessing )
5380 var an = oSettings.aanFeatures.r;
5400 function _fnVisibleToColumnIndex( oSettings, iMatch ) argument
5404 for ( var i=0 ; i<oSettings.aoColumns.length ; i++ )
5406 if ( oSettings.aoColumns[i].bVisible === true )
5427 function _fnColumnIndexToVisible( oSettings, iMatch ) argument
5430 for ( var i=0 ; i<oSettings.aoColumns.length ; i++ )
5432 if ( oSettings.aoColumns[i].bVisible === true )
5439 return oSettings.aoColumns[i].bVisible === true ? iVisible : null;
5505 function _fnCalculateEnd( oSettings ) argument
5507 if ( oSettings.oFeatures.bPaginate === false )
5509 oSettings._iDisplayEnd = oSettings.aiDisplay.length;
5516 if ( oSettings._iDisplayStart + oSettings._iDisplayLength > oSettings.aiDisplay.length ||
5517 oSettings._iDisplayLength == -1 )
5519 oSettings._iDisplayEnd = oSettings.aiDisplay.length;
5523 oSettings._iDisplayEnd = oSettings._iDisplayStart + oSettings._iDisplayLength;
5565 function _fnCalculateColumnWidths ( oSettings ) argument
5567 var iTableWidth = oSettings.nTable.offsetWidth;
5571 var iColums = oSettings.aoColumns.length;
5573 var oHeaders = $('th', oSettings.nTHead);
5578 if ( oSettings.aoColumns[i].bVisible )
5582 if ( oSettings.aoColumns[i].sWidth !== null )
5584 iTmpWidth = _fnConvertToWidth( oSettings.aoColumns[i].sWidthOrig,
5585 oSettings.nTable.parentNode );
5588 oSettings.aoColumns[i].sWidth = _fnStringToCss( iTmpWidth );
5601 oSettings.oScroll.sX === "" && oSettings.oScroll.sY === "" )
5603 for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
5608 oSettings.aoColumns[i].sWidth = _fnStringToCss( iTmpWidth );
5620 nCalcTmp = oSettings.nTable.cloneNode( false ),
5621 nTheadClone = oSettings.nTHead.cloneNode(true),
5628 if ( oSettings.nTFoot !== null )
5630 nCalcTmp.appendChild( oSettings.nTFoot.cloneNode(true) );
5647 var nThs = _fnGetUniqueThs( oSettings, nTheadClone );
5651 var oColumn = oSettings.aoColumns[i];
5669 if ( oSettings.aoColumns[i].bVisible )
5671 var nTd = _fnGetWidestNode( oSettings, i );
5675 if ( oSettings.aoColumns[i].sContentPadding !== "" )
5677 nTd.innerHTML += oSettings.aoColumns[i].sContentPadding;
5685 var nWrapper = oSettings.nTable.parentNode;
5692 if ( oSettings.oScroll.sX !== "" && oSettings.oScroll.sXInner !== "" )
5694 nCalcTmp.style.width = _fnStringToCss(oSettings.oScroll.sXInner);
5696 else if ( oSettings.oScroll.sX !== "" )
5704 else if ( oSettings.oScroll.sY !== "" )
5711 _fnScrollingWidthAdjust( oSettings, nCalcTmp );
5720 oNodes = _fnGetUniqueThs( oSettings, $('thead', nCalcTmp)[0] );
5728 if ( oSettings.oScroll.sX !== "" )
5732 for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
5734 if ( oSettings.aoColumns[i].bVisible )
5736 if ( oSettings.aoColumns[i].sWidthOrig === null )
5742 iTotal += parseInt(oSettings.aoColumns[i].sWidth.replace('px',''), 10) +
5750 oSettings.nTable.style.width = _fnStringToCss( iTotal );
5754 for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
5756 if ( oSettings.aoColumns[i].bVisible )
5761 oSettings.aoColumns[i].sWidth = _fnStringToCss( iWidth );
5767 oSettings.nTable.style.width = _fnStringToCss( $(nCalcTmp).outerWidth() );
5779 function _fnScrollingWidthAdjust ( oSettings, n ) argument
5781 if ( oSettings.oScroll.sX === "" && oSettings.oScroll.sY !== "" )
5787 n.style.width = _fnStringToCss( $(n).outerWidth()-oSettings.oScroll.iBarWidth );
5789 else if ( oSettings.oScroll.sX !== "" )
5803 function _fnGetWidestNode( oSettings, iCol ) argument
5805 var iMaxIndex = _fnGetMaxLenString( oSettings, iCol );
5811 if ( oSettings.aoData[iMaxIndex].nTr === null )
5814 n.innerHTML = _fnGetCellData( oSettings, iMaxIndex, iCol, '' );
5817 return _fnGetTdNodes(oSettings, iMaxIndex)[iCol];
5827 function _fnGetMaxLenString( oSettings, iCol ) argument
5832 for ( var i=0 ; i<oSettings.aoData.length ; i++ )
5834 var s = _fnGetCellData( oSettings, i, iCol, 'display' )+"";
5953 function _fnGetDataMaster ( oSettings ) argument
5956 var iLen = oSettings.aoData.length;
5959 aData.push( oSettings.aoData[i]._aData );
5970 function _fnGetTrNodes ( oSettings ) argument
5973 for ( var i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
5975 if ( oSettings.aoData[i].nTr !== null )
5977 aNodes.push( oSettings.aoData[i].nTr );
5991 function _fnGetTdNodes ( oSettings, iIndividualRow ) argument
5996 var iRow, iRows=oSettings.aoData.length,
6008 oData = oSettings.aoData[iRow];
6023 for ( iColumn=0, iColumns=oSettings.aoColumns.length ; iColumn<iColumns ; iColumn++ )
6025 if ( oSettings.aoColumns[iColumn].bVisible )
6090 function _fnReOrderIndex ( oSettings, sColumns ) argument
6095 for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
6099 if ( oSettings.aoColumns[i].sName == aColumns[j] )
6116 function _fnColumnOrdering ( oSettings ) argument
6119 for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
6121 sNames += oSettings.aoColumns[i].sName+',';
6137 function _fnLog( oSettings, iLevel, sMesg ) argument
6139 var sAlert = oSettings.sTableId === "" ?
6141 "DataTables warning (table id = '"+oSettings.sTableId+"'): " +sMesg;
6167 function _fnClearTable( oSettings ) argument
6169 oSettings.aoData.splice( 0, oSettings.aoData.length );
6170 oSettings.aiDisplayMaster.splice( 0, oSettings.aiDisplayMaster.length );
6171 oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length );
6172 _fnCalculateEnd( oSettings );
6181 function _fnSaveState ( oSettings ) argument
6183 if ( !oSettings.oFeatures.bStateSave || typeof oSettings.bDestroying != 'undefined' )
6192 sValue += '"iStart":'+ (oSettings.oScroll.bInfinite ? 0 : oSettings._iDisplayStart)+',';
6193 …sValue += '"iEnd":'+ (oSettings.oScroll.bInfinite ? oSettings._iDisplayLength : oSettings._iDispla…
6194 sValue += '"iLength":'+ oSettings._iDisplayLength+',';
6195 sValue += '"sFilter":"'+ encodeURIComponent(oSettings.oPreviousSearch.sSearch)+'",';
6196 sValue += '"sFilterEsc":'+ !oSettings.oPreviousSearch.bRegex+',';
6199 for ( i=0 ; i<oSettings.aaSorting.length ; i++ )
6201 sValue += '['+oSettings.aaSorting[i][0]+',"'+oSettings.aaSorting[i][1]+'"],';
6207 for ( i=0 ; i<oSettings.aoPreSearchCols.length ; i++ )
6209 sValue += '["'+encodeURIComponent(oSettings.aoPreSearchCols[i].sSearch)+
6210 '",'+!oSettings.aoPreSearchCols[i].bRegex+'],';
6216 for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
6218 sValue += oSettings.aoColumns[i].bVisible+",";
6224 for ( i=0, iLen=oSettings.aoStateSave.length ; i<iLen ; i++ )
6226 sTmp = oSettings.aoStateSave[i].fn( oSettings, sValue );
6235 _fnCreateCookie( oSettings.sCookiePrefix+oSettings.sInstance, sValue,
6236 oSettings.iCookieDuration, oSettings.sCookiePrefix, oSettings.fnCookieCallback );
6246 function _fnLoadState ( oSettings, oInit ) argument
6248 if ( !oSettings.oFeatures.bStateSave )
6254 var sData = _fnReadCookie( oSettings.sCookiePrefix+oSettings.sInstance );
6273 for ( i=0, iLen=oSettings.aoStateLoad.length ; i<iLen ; i++ )
6275 if ( !oSettings.aoStateLoad[i].fn( oSettings, oData ) )
6282 oSettings.oLoadedState = $.extend( true, {}, oData );
6285 oSettings._iDisplayStart = oData.iStart;
6286 oSettings.iInitDisplayStart = oData.iStart;
6287 oSettings._iDisplayEnd = oData.iEnd;
6288 oSettings._iDisplayLength = oData.iLength;
6289 oSettings.oPreviousSearch.sSearch = decodeURIComponent(oData.sFilter);
6290 oSettings.aaSorting = oData.aaSorting.slice();
6291 oSettings.saved_aaSorting = oData.aaSorting.slice();
6300 oSettings.oPreviousSearch.bRegex = !oData.sFilterEsc;
6308 oSettings.aoPreSearchCols[i] = {
6515 function _fnGetUniqueThs ( oSettings, nHeader, aLayout ) argument
6520 aLayout = oSettings.aoHeader;
6533 (typeof aReturn[j] == 'undefined' || !oSettings.bSortCellsTop) )
6643 function _fnGetRowData( oSettings, iRow, sSpecific ) argument
6646 for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
6648 out.push( _fnGetCellData( oSettings, iRow, i, sSpecific ) );
6662 function _fnGetCellData( oSettings, iRow, iCol, sSpecific ) argument
6665 var oCol = oSettings.aoColumns[iCol];
6666 var oData = oSettings.aoData[iRow]._aData;
6670 if ( oSettings.iDrawError != oSettings.iDraw && oCol.sDefaultContent === null )
6672 _fnLog( oSettings, 0, "Requested unknown parameter '"+oCol.mDataProp+
6674 oSettings.iDrawError = oSettings.iDraw;
6706 function _fnSetCellData( oSettings, iRow, iCol, val ) argument
6708 var oCol = oSettings.aoColumns[iCol];
6709 var oData = oSettings.aoData[iRow]._aData;
6968 var oSettings = new classSettings();
6969 _aoSettings.push( oSettings );
6978 oSettings.sTableId = sId;
6979 oSettings.sInstance = sId;
6983 oSettings.sInstance = _oExt._oExternConfig.iNextUnique ++;
6989 _fnLog( oSettings, 0, "Attempted to initialise DataTables on a node which is not a "+
6995 oSettings.nTable = this;
7000 oSettings.oInstance = _that.length == 1 ? _that : $(this).dataTable();
7005 oSettings.oApi = _that.oApi;
7008 oSettings.sDestroyWidth = $(this).width();
7013 oSettings.oInit = oInit;
7014 _fnMap( oSettings.oFeatures, oInit, "bPaginate" );
7015 _fnMap( oSettings.oFeatures, oInit, "bLengthChange" );
7016 _fnMap( oSettings.oFeatures, oInit, "bFilter" );
7017 _fnMap( oSettings.oFeatures, oInit, "bSort" );
7018 _fnMap( oSettings.oFeatures, oInit, "bInfo" );
7019 _fnMap( oSettings.oFeatures, oInit, "bProcessing" );
7020 _fnMap( oSettings.oFeatures, oInit, "bAutoWidth" );
7021 _fnMap( oSettings.oFeatures, oInit, "bSortClasses" );
7022 _fnMap( oSettings.oFeatures, oInit, "bServerSide" );
7023 _fnMap( oSettings.oFeatures, oInit, "bDeferRender" );
7024 _fnMap( oSettings.oScroll, oInit, "sScrollX", "sX" );
7025 _fnMap( oSettings.oScroll, oInit, "sScrollXInner", "sXInner" );
7026 _fnMap( oSettings.oScroll, oInit, "sScrollY", "sY" );
7027 _fnMap( oSettings.oScroll, oInit, "bScrollCollapse", "bCollapse" );
7028 _fnMap( oSettings.oScroll, oInit, "bScrollInfinite", "bInfinite" );
7029 _fnMap( oSettings.oScroll, oInit, "iScrollLoadGap", "iLoadGap" );
7030 _fnMap( oSettings.oScroll, oInit, "bScrollAutoCss", "bAutoCss" );
7031 _fnMap( oSettings, oInit, "asStripClasses", "asStripeClasses" ); // legacy
7032 _fnMap( oSettings, oInit, "asStripeClasses" );
7033 _fnMap( oSettings, oInit, "fnPreDrawCallback" );
7034 _fnMap( oSettings, oInit, "fnRowCallback" );
7035 _fnMap( oSettings, oInit, "fnHeaderCallback" );
7036 _fnMap( oSettings, oInit, "fnFooterCallback" );
7037 _fnMap( oSettings, oInit, "fnCookieCallback" );
7038 _fnMap( oSettings, oInit, "fnInitComplete" );
7039 _fnMap( oSettings, oInit, "fnServerData" );
7040 _fnMap( oSettings, oInit, "fnFormatNumber" );
7041 _fnMap( oSettings, oInit, "aaSorting" );
7042 _fnMap( oSettings, oInit, "aaSortingFixed" );
7043 _fnMap( oSettings, oInit, "aLengthMenu" );
7044 _fnMap( oSettings, oInit, "sPaginationType" );
7045 _fnMap( oSettings, oInit, "sAjaxSource" );
7046 _fnMap( oSettings, oInit, "sAjaxDataProp" );
7047 _fnMap( oSettings, oInit, "iCookieDuration" );
7048 _fnMap( oSettings, oInit, "sCookiePrefix" );
7049 _fnMap( oSettings, oInit, "sDom" );
7050 _fnMap( oSettings, oInit, "bSortCellsTop" );
7051 _fnMap( oSettings, oInit, "oSearch", "oPreviousSearch" );
7052 _fnMap( oSettings, oInit, "aoSearchCols", "aoPreSearchCols" );
7053 _fnMap( oSettings, oInit, "iDisplayLength", "_iDisplayLength" );
7054 _fnMap( oSettings, oInit, "bJQueryUI", "bJUI" );
7055 _fnMap( oSettings.oLanguage, oInit, "fnInfoCallback" );
7060 oSettings.aoDrawCallback.push( {
7069 oSettings.aoServerParams.push( {
7077 oSettings.aoStateSave.push( {
7085 oSettings.aoStateLoad.push( {
7091 if ( oSettings.oFeatures.bServerSide && oSettings.oFeatures.bSort &&
7092 oSettings.oFeatures.bSortClasses )
7097 oSettings.aoDrawCallback.push( {
7102 else if ( oSettings.oFeatures.bDeferRender )
7104 oSettings.aoDrawCallback.push( {
7115 oSettings.oClasses = _oExt.oJUIClasses;
7120 oSettings.sDom = '<"H"lfr>t<"F"ip>';
7125 if ( oSettings.oScroll.sX !== "" || oSettings.oScroll.sY !== "" )
7127 oSettings.oScroll.iBarWidth = _fnScrollBarWidth();
7131 typeof oSettings.iInitDisplayStart == 'undefined' )
7134 oSettings.iInitDisplayStart = oInit.iDisplayStart;
7135 oSettings._iDisplayStart = oInit.iDisplayStart;
7141 oSettings.oFeatures.bStateSave = oInit.bStateSave;
7142 _fnLoadState( oSettings, oInit );
7143 oSettings.aoDrawCallback.push( {
7151 oSettings.bDeferLoading = true;
7152 oSettings._iRecordsTotal = oInit.iDeferLoading;
7153 oSettings._iRecordsDisplay = oInit.iDeferLoading;
7174 oSettings.oLanguage.sUrl = oInit.oLanguage.sUrl;
7175 $.getJSON( oSettings.oLanguage.sUrl, null, function( json ) {
7176 _fnLanguageProcess( oSettings, json, true ); } );
7181 _fnLanguageProcess( oSettings, oInit.oLanguage, false );
7203 oSettings.asStripeClasses.push( oSettings.oClasses.sStripeOdd );
7204 oSettings.asStripeClasses.push( oSettings.oClasses.sStripeEven );
7210 for ( i=0, iLen=oSettings.asStripeClasses.length ; i<iLen ; i++ )
7212 if ( anRows.filter(":lt(2)").hasClass( oSettings.asStripeClasses[i]) )
7222 oSettings.asDestroyStripes = [ '', '' ];
7223 if ( $(anRows[0]).hasClass(oSettings.oClasses.sStripeOdd) )
7225 oSettings.asDestroyStripes[0] += oSettings.oClasses.sStripeOdd+" ";
7227 if ( $(anRows[0]).hasClass(oSettings.oClasses.sStripeEven) )
7229 oSettings.asDestroyStripes[0] += oSettings.oClasses.sStripeEven;
7231 if ( $(anRows[1]).hasClass(oSettings.oClasses.sStripeOdd) )
7233 oSettings.asDestroyStripes[1] += oSettings.oClasses.sStripeOdd+" ";
7235 if ( $(anRows[1]).hasClass(oSettings.oClasses.sStripeEven) )
7237 oSettings.asDestroyStripes[1] += oSettings.oClasses.sStripeEven;
7240 anRows.removeClass( oSettings.asStripeClasses.join(' ') );
7252 _fnDetectHeader( oSettings.aoHeader, nThead[0] );
7253 anThs = _fnGetUniqueThs( oSettings );
7283 _fnAddColumn( oSettings, anThs ? anThs[i] : null );
7296 _fnLog( oSettings, 1, 'aTargets must be an array of targets, not a '+(typeof aTargets) );
7306 while( oSettings.aoColumns.length <= aTargets[j] )
7308 _fnAddColumn( oSettings );
7310 _fnColumnOptions( oSettings, aTargets[j], oInit.aoColumnDefs[i] );
7315 _fnColumnOptions( oSettings, oSettings.aoColumns.length+aTargets[j],
7321 for ( k=0, kLen=oSettings.aoColumns.length ; k<kLen ; k++ )
7324 $(oSettings.aoColumns[k].nTh).hasClass( aTargets[j] ) )
7326 _fnColumnOptions( oSettings, k, oInit.aoColumnDefs[i] );
7339 _fnColumnOptions( oSettings, i, aoColumnsInit[i] );
7347 for ( i=0, iLen=oSettings.aaSorting.length ; i<iLen ; i++ )
7349 if ( oSettings.aaSorting[i][0] >= oSettings.aoColumns.length )
7351 oSettings.aaSorting[i][0] = 0;
7353 var oColumn = oSettings.aoColumns[ oSettings.aaSorting[i][0] ];
7356 if ( typeof oSettings.aaSorting[i][2] == 'undefined' )
7358 oSettings.aaSorting[i][2] = 0;
7363 typeof oSettings.saved_aaSorting == "undefined" )
7365 oSettings.aaSorting[i][1] = oColumn.asSorting[0];
7371 if ( oSettings.aaSorting[i][1] == oColumn.asSorting[j] )
7373 oSettings.aaSorting[i][2] = j;
7382 _fnSortingClasses( oSettings );
7394 oSettings.nTHead = thead[0];
7402 oSettings.nTBody = tbody[0];
7407 oSettings.nTFoot = tfoot[0];
7408 _fnDetectHeader( oSettings.aoFooter, oSettings.nTFoot );
7416 _fnAddData( oSettings, oInit.aaData[ i ] );
7422 _fnGatherData( oSettings );
7426 oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
7429 oSettings.bInitialised = true;
7436 _fnInitialise( oSettings );