function _fnFilterCustom( settings )
		{
			var filters = DataTable.ext.search;
			var displayRows = settings.aiDisplay;
			var row, rowIdx;
		
			for ( var i=0, ien=filters.length ; i<ien ; i++ ) {
				var rows = [];
		
				// Loop over each row and see if it should be included
				for ( var j=0, jen=displayRows.length ; j<jen ; j++ ) {
					rowIdx = displayRows[ j ];
					row = settings.aoData[ rowIdx ];
		
					if ( filters[i]( settings, row._aFilterData, rowIdx, row._aData, j ) ) {
						rows.push( rowIdx );
					}
				}
		
				// So the array reference doesn't break set the results into the
				// existing array
				displayRows.length = 0;
				$.merge( displayRows, rows );
			}
		}
/**
		 * Apply custom filtering functions
		 *  @param {object} oSettings dataTables settings object
		 *  @memberof DataTable#oApi
		 */
Apply custom filtering functions
@param {object} oSettings dataTables settings object
@memberof DataTable#oApi
Apply custom filtering functions @param { object } oSettings dataTables settings object @memberof DataTable#oApi
function _fnFilterCustom( settings )
		{
			var filters = DataTable.ext.search;
			var displayRows = settings.aiDisplay;
			var row, rowIdx;
			for ( var i=0, ien=filters.length ; i<ien ; i++ ) {
				var rows = [];
				for ( var j=0, jen=displayRows.length ; j<jen ; j++ ) {
					rowIdx = displayRows[ j ];
					row = settings.aoData[ rowIdx ];
					if ( filters[i]( settings, row._aFilterData, rowIdx, row._aData, j ) ) {
						rows.push( rowIdx );
					}
				}
				displayRows.length = 0;
				$.merge( displayRows, rows );
			}
		}
function _fnFilterCustom ( settings ) { var filters = DataTable . ext . search ; var displayRows = settings . aiDisplay ; var row , rowIdx ; for ( var i = 0 , ien = filters . length ; i < ien ; i ++ ) { var rows = [ ] ; for ( var j = 0 , jen = displayRows . length ; j < jen ; j ++ ) { rowIdx = displayRows [ j ] ; row = settings . aoData [ rowIdx ] ; if ( filters [ i ] ( settings , row . _aFilterData , rowIdx , row . _aData , j ) ) { rows . push ( rowIdx ) ; } } displayRows . length = 0 ; $ . merge ( displayRows , rows ) ; } }
Apply custom filtering functions
  @param {object} oSettings dataTables settings object
  @memberof DataTable#oApi
Apply custom filtering functions @param { object } oSettings dataTables settings object @memberof DataTable#oApi
// Loop over each row and see if it should be included // So the array reference doesn't break set the results into the // existing array