text: // DATA_TEMPLATE: empty_table
  oTest.fnStart( "fnCreatedRow tests" );
  
  $(document).ready( function () {
  	var tmp = 0;
  	var complete = false;
  
  	$('#example').dataTable( {
  		"bServerSide": true,
  		"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
  		fnCreatedRow: function () {
  			tmp++;
  		}
  	} );
  	
  	oTest.fnWaitTest( 
  		"Row created is called once for each row on init",
  		null,
  		function () { return tmp===10; }
  	);
  	
  	oTest.fnWaitTest( 
  		"Created is called back on other draws",
  		function () { $('#example th:eq(1)').click(); },
  		function () { return tmp===20; }
  	);
  
  	oTest.fnWaitTest(
  		"Three arguments for the all",
  		function () { 
  			oSession.fnRestore();
  			tmp = true;
  			complete = false;
  
  			$('#example').dataTable( {
  				"bServerSide": true,
  				"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
  				fnCreatedRow: function () {
  					if ( arguments.length !== 3 ) {
  						tmp = false;
  					}
  				},
  				fnInitComplete: function () {
  					complete = true;
  				}
  			} );
  		},
  		function () { return (tmp && complete); }
  	);
  
  	oTest.fnWaitTest(
  		"First argument is a TR element",
  		function () { 
  			oSession.fnRestore();
  			tmp = true;
  			complete = false;
  
  			$('#example').dataTable( {
  				"bServerSide": true,
  				"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
  				fnCreatedRow: function () {
  					if ( arguments[0].nodeName !== "TR" ) {
  						tmp = false;
  					}
  				},
  				fnInitComplete: function () {
  					complete = true;
  				}
  			} );
  		},
  		function () { return (tmp && complete); }
  	);
  
  	oTest.fnWaitTest(
  		"Second argument is an array with 5 elements",
  		function () { 
  			oSession.fnRestore();
  			tmp = true;
  			complete = false;
  
  			$('#example').dataTable( {
  				"bServerSide": true,
  				"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
  				fnCreatedRow: function () {
  					if ( arguments[1].length !== 5 ) {
  						tmp = false;
  					}
  				},
  				fnInitComplete: function () {
  					complete = true;
  				}
  			} );
  		},
  		function () { return (tmp && complete); }
  	);
  
  	oTest.fnWaitTest(
  		"Third argument is the data source for the row",
  		function () { 
  			oSession.fnRestore();
  			tmp = true;
  			complete = false;
  
  			$('#example').dataTable( {
  				"bServerSide": true,
  				"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
  				fnCreatedRow: function () {
  					if ( arguments[1] !== this.fnSettings().aoData[ arguments[2] ]._aData ) {
  						tmp = false;
  					}
  				},
  				fnInitComplete: function () {
  					complete = true;
  				}
  			} );
  		},
  		function () { return (tmp && complete); }
  	);
  
  	oTest.fnWaitTest(
  		"TR element is tied to the correct data",
  		function () { 
  			oSession.fnRestore();
  			tmp = false;
  			complete = false;
  
  			$('#example').dataTable( {
  				"bServerSide": true,
  				"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
  				fnCreatedRow: function (tr, data, index) {
  					if ( data[1] === "Firefox 1.0" ) {
  						if ( $('td:eq(3)', tr).html() == "1.7" ) {
  							tmp = true;
  						}
  					}
  				},
  				fnInitComplete: function () {
  					complete = true;
  				}
  			} );
  		},
  		function () { return (tmp && complete); }
  	);
  	
  	
  	
  	oTest.fnComplete();
  } );