admin/public/js/plugins/dataTables/jquery.dataTables.js
function ( flatten, type, fn ) {
			var
				a = [], ret,
				i, ien, j, jen,
				context = this.context,
				rows, items, item,
				selector = this.selector;
	
			// Argument shifting
			if ( typeof flatten === 'string' ) {
				fn = type;
				type = flatten;
				flatten = false;
			}
	
			for ( i=0, ien=context.length ; i<ien ; i++ ) {
				if ( type === 'table' ) {
					ret = fn( context[i], i );
	
					if ( ret !== undefined ) {
						a.push( ret );
					}
				}
				else if ( type === 'columns' || type === 'rows' ) {
					// this has same length as context - one entry for each table
					ret = fn( context[i], this[i], i );
	
					if ( ret !== undefined ) {
						a.push( ret );
					}
				}
				else if ( type === 'column' || type === 'column-rows' || type === 'row' || type === 'cell' ) {
					// columns and rows share the same structure.
					// 'this' is an array of column indexes for each context
					items = this[i];
	
					if ( type === 'column-rows' ) {
						rows = _selector_row_indexes( context[i], selector.opts );
					}
	
					for ( j=0, jen=items.length ; j<jen ; j++ ) {
						item = items[j];
	
						if ( type === 'cell' ) {
							ret = fn( context[i], item.row, item.column, i, j );
						}
						else {
							ret = fn( context[i], item, i, j, rows );
						}
	
						if ( ret !== undefined ) {
							a.push( ret );
						}
					}
				}
			}
	
			if ( a.length ) {
				var api = new _Api( context, flatten ? a.concat.apply( [], a ) : a );
				var apiSelector = api.selector;
				apiSelector.rows = selector.rows;
				apiSelector.cols = selector.cols;
				apiSelector.opts = selector.opts;
				return api;
			}
			return this;
		}
function ( flatten, type, fn ) {
			var
				a = [], ret,
				i, ien, j, jen,
				context = this.context,
				rows, items, item,
				selector = this.selector;
	
			// Argument shifting
			if ( typeof flatten === 'string' ) {
				fn = type;
				type = flatten;
				flatten = false;
			}
	
			for ( i=0, ien=context.length ; i<ien ; i++ ) {
				if ( type === 'table' ) {
					ret = fn( context[i], i );
	
					if ( ret !== undefined ) {
						a.push( ret );
					}
				}
				else if ( type === 'columns' || type === 'rows' ) {
					// this has same length as context - one entry for each table
					ret = fn( context[i], this[i], i );
	
					if ( ret !== undefined ) {
						a.push( ret );
					}
				}
				else if ( type === 'column' || type === 'column-rows' || type === 'row' || type === 'cell' ) {
					// columns and rows share the same structure.
					// 'this' is an array of column indexes for each context
					items = this[i];
	
					if ( type === 'column-rows' ) {
						rows = _selector_row_indexes( context[i], selector.opts );
					}
	
					for ( j=0, jen=items.length ; j<jen ; j++ ) {
						item = items[j];
	
						if ( type === 'cell' ) {
							ret = fn( context[i], item.row, item.column, i, j );
						}
						else {
							ret = fn( context[i], item, i, j, rows );
						}
	
						if ( ret !== undefined ) {
							a.push( ret );
						}
					}
				}
			}
	
			if ( a.length ) {
				var api = new _Api( context, flatten ? a.concat.apply( [], a ) : a );
				var apiSelector = api.selector;
				apiSelector.rows = selector.rows;
				apiSelector.cols = selector.cols;
				apiSelector.opts = selector.opts;
				return api;
			}
			return this;
		}
function ( flatten , type , fn ) { var a = [ ] , ret , i , ien , j , jen , context = this . context , rows , items , item , selector = this . selector ; // Argument shifting
 if ( typeof flatten === 'string' ) { fn = type ; type = flatten ; flatten = false ; } for ( i = 0 , ien = context . length ; i < ien ; i ++ ) { if ( type === 'table' ) { ret = fn ( context [ i ] , i ) ; if ( ret !== undefined ) { a . push ( ret ) ; } } else if ( type === 'columns' || type === 'rows' ) { // this has same length as context - one entry for each table
 ret = fn ( context [ i ] , this [ i ] , i ) ; if ( ret !== undefined ) { a . push ( ret ) ; } } else if ( type === 'column' || type === 'column-rows' || type === 'row' || type === 'cell' ) { // columns and rows share the same structure.
 // 'this' is an array of column indexes for each context
 items = this [ i ] ; if ( type === 'column-rows' ) { rows = _selector_row_indexes ( context [ i ] , selector . opts ) ; } for ( j = 0 , jen = items . length ; j < jen ; j ++ ) { item = items [ j ] ; if ( type === 'cell' ) { ret = fn ( context [ i ] , item . row , item . column , i , j ) ; } else { ret = fn ( context [ i ] , item , i , j , rows ) ; } if ( ret !== undefined ) { a . push ( ret ) ; } } } } if ( a . length ) { var api = new _Api ( context , flatten ? a . concat . apply ( [ ] , a ) : a ) ; var apiSelector = api . selector ; apiSelector . rows = selector . rows ; apiSelector . cols = selector . cols ; apiSelector . opts = selector . opts ; return api ; } return this ; }
Internal only at the moment - relax?
Internal only at the moment - relax?