/**
 * Search through a table looking for a given string (optionally the search
 * can be restricted to a single column). The return value is an array with
 * the data indexes (from DataTables' internal data store) for any rows which
 * match.
 *  @name fnFindCellRowIndexes
 *  @anchor fnFindCellRowIndexes
 *  @author <a href="http://sprymedia.co.uk">Allan Jardine</a>
 *
 *  @example
 *    $(document).ready(function() {
 *        var oTable = $('#example').dataTable();
 * 
 *        var a = oTable.fnFindCellRowIndexes( '1.7' ); // Search all columns
 *
 *        var b = oTable.fnFindCellRowIndexes( '1.7', 3 );  // Search only column 3
 *    } );
 */

$.fn.dataTableExt.oApi.fnFindCellRowIndexes = function ( oSettings, sSearch, iColumn )
{
	var
		i,iLen, j, jLen,
		aOut = [], aData;
	 
	for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
	{
		aData = oSettings.aoData[i]._aData;
		 
		if ( typeof iColumn == 'undefined' )
		{
			for ( j=0, jLen=aData.length ; j<jLen ; j++ )
			{
				if ( aData[j] == sSearch )
				{
					aOut.push( i );
				}
			}
		}
		else if ( aData[iColumn] == sSearch )
		{
			aOut.push( i );
		}
	}
	 
	return aOut;
};