docs: function _fnGetObjectDataFn( mSource )
  		{
  			if ( mSource === null )
  			{
  				/* Give an empty string for rendering / sorting etc */
  				return function (data, type) {
  					return null;
  				};
  			}
  			else if ( typeof mSource === 'function' )
  			{
  				return function (data, type) {
  					return mSource( data, type );
  				};
  			}
  			else if ( typeof mSource === 'string' && mSource.indexOf('.') != -1 )
  			{
  				/* If there is a . in the source string then the data source is in a 
  				 * nested object so we loop over the data for each level to get the next
  				 * level down. On each loop we test for undefined, and if found immediatly
  				 * return. This allows entire objects to be missing and sDefaultContent to
  				 * be used if defined, rather than throwing an error
  				 */
  				var a = mSource.split('.');
  				return function (data, type) {
  					for ( var i=0, iLen=a.length ; i<iLen ; i++ )
  					{
  						data = data[ a[i] ];
  						if ( data === undefined )
  						{
  							return undefined;
  						}
  					}
  					return data;
  				};
  			}
  			else
  			{
  				/* Array or flat object mapping */
  				return function (data, type) {
  					return data[mSource];	
  				};
  			}
  		}