anchor.diff:  All callbacks don't have the same parameters. Take care to use the right ones!
   
   [discrete]
  -===== Cookie callback 
  -
  -This callback allows you to customise the cookie and / or the parameters being stored when using DataTables with state saving enabled. This function is called whenever the cookie is modified, and it expects a fully formed cookie string to be returned. Note that the data object passed in is a Javascript object which must be converted to a string (JSON.stringify for example).
  -
  -[source, javascript]
  -----
  -function cookieCallback(sName, oData, sExpires, sPath) {
  -  // Customise oData or sName or whatever else here
  -  return sName + "=" + JSON.stringify(oData) + "; expires=" + sExpires +"; path=" + sPath;
  -}
  -----
  -
  -* JSP usage: `<datatables:callback type="cookie" function="cookieCallback" />`
  -* Thymeleaf usage: `<div dt:confType="callback" dt:type="cookie" dt:function="cookieCallback">`
  -
  -[discrete]
   ===== CreatedRow callback
   
   This callback is called when a TR element is created (and all TD child elements have been inserted), or registered if using a DOM source, allowing manipulation of the TR element (adding classes etc).
   
   [source, javascript]
   ----
  -function createdRowCallback(nRow, aData, iDataIndex){
  +function createdRowCallback(row, data, dataIndex){
     // Make the fifth column bold
  -  $('td:eq(4)', nRow).css({ 'font-weight': 'bold' });
  +  $('td:eq(4)', row).css({ 'font-weight': 'bold' });
   }
   ----
   
  
positive.code: 
  [source, javascript]
  ----
  function headerCallback(nHead, aData, iStart, iEnd, aiDisplay) {
    nHead.getElementsByTagName('th')[0].innerHTML = "Displaying " + (iEnd-iStart) + " records";
  }
  ----
  
  
negative.code: 
  [source, javascript]
  ----
  function drawCallback(settings){
    alert( 'DataTables has redrawn the table' );
  }
  ----
  