code: function ( aoOriginal, aiColumns )
  	{
  		var aReturn = [];
  		var aClones = [];
  		var aCloned = [];
  
  		for ( var i=0, iLen=aoOriginal.length ; i<iLen ; i++ )
  		{
  			var aRow = [];
  			aRow.nTr = $(aoOriginal[i].nTr).clone(true, true)[0];
  
  			for ( var j=0, jLen=this.s.iTableColumns ; j<jLen ; j++ )
  			{
  				if ( $.inArray( j, aiColumns ) === -1 )
  				{
  					continue;
  				}
  
  				var iCloned = $.inArray( aoOriginal[i][j].cell, aCloned );
  				if ( iCloned === -1 )
  				{
  					var nClone = $(aoOriginal[i][j].cell).clone(true, true)[0];
  					aClones.push( nClone );
  					aCloned.push( aoOriginal[i][j].cell );
  
  					aRow.push( {
  						"cell": nClone,
  						"unique": aoOriginal[i][j].unique
  					} );
  				}
  				else
  				{
  					aRow.push( {
  						"cell": aClones[ iCloned ],
  						"unique": aoOriginal[i][j].unique
  					} );
  				}
  			}
  
  			aReturn.push( aRow );
  		}
  
  		return aReturn;
  	}
docs: Make a copy of the layout object for a header or footer element from DataTables. Note that
  this method will clone the nodes in the layout object.
  @returns {Array} Copy of the layout array
  @param   {Object} aoOriginal Layout array from DataTables (aoHeader or aoFooter)
  @param   {Object} aiColumns Columns to copy
  @private