function _fnFeatureHtmlPaginate ( settings )
		{
			var
				type   = settings.sPaginationType,
				plugin = DataTable.ext.pager[ type ],
				modern = typeof plugin === 'function',
				redraw = function( settings ) {
					_fnDraw( settings );
				},
				node = $('<div/>').addClass( settings.oClasses.sPaging + type )[0],
				features = settings.aanFeatures;
		
			if ( ! modern ) {
				plugin.fnInit( settings, node, redraw );
			}
		
			/* Add a draw callback for the pagination on first instance, to update the paging display */
			if ( ! features.p )
			{
				node.id = settings.sTableId+'_paginate';
		
				settings.aoDrawCallback.push( {
					"fn": function( settings ) {
						if ( modern ) {
							var
								start      = settings._iDisplayStart,
								len        = settings._iDisplayLength,
								visRecords = settings.fnRecordsDisplay(),
								all        = len === -1,
								page = all ? 0 : Math.ceil( start / len ),
								pages = all ? 1 : Math.ceil( visRecords / len ),
								buttons = plugin(page, pages),
								i, ien;
		
							for ( i=0, ien=features.p.length ; i<ien ; i++ ) {
								_fnRenderer( settings, 'pageButton' )(
									settings, features.p[i], i, buttons, page, pages
								);
							}
						}
						else {
							plugin.fnUpdate( settings, redraw );
						}
					},
					"sName": "pagination"
				} );
			}
		
			return node;
		}
/**
		 * Generate the node required for default pagination
		 *  @param {object} oSettings dataTables settings object
		 *  @returns {node} Pagination feature node
		 *  @memberof DataTable#oApi
		 */
Generate the node required for default pagination
@param {object} oSettings dataTables settings object
@returns {node} Pagination feature node
@memberof DataTable#oApi
Generate the node required for default pagination @param { object } oSettings dataTables settings object @returns { node } Pagination feature node @memberof DataTable#oApi
function _fnFeatureHtmlPaginate ( settings )
		{
			var
				type   = settings.sPaginationType,
				plugin = DataTable.ext.pager[ type ],
				modern = typeof plugin === 'function',
				redraw = function( settings ) {
					_fnDraw( settings );
				},
				node = $('<div/>').addClass( settings.oClasses.sPaging + type )[0],
				features = settings.aanFeatures;
			if ( ! modern ) {
				plugin.fnInit( settings, node, redraw );
			}
			if ( ! features.p )
			{
				node.id = settings.sTableId+'_paginate';
				settings.aoDrawCallback.push( {
					"fn": function( settings ) {
						if ( modern ) {
							var
								start      = settings._iDisplayStart,
								len        = settings._iDisplayLength,
								visRecords = settings.fnRecordsDisplay(),
								all        = len === -1,
								page = all ? 0 : Math.ceil( start / len ),
								pages = all ? 1 : Math.ceil( visRecords / len ),
								buttons = plugin(page, pages),
								i, ien;
							for ( i=0, ien=features.p.length ; i<ien ; i++ ) {
								_fnRenderer( settings, 'pageButton' )(
									settings, features.p[i], i, buttons, page, pages
								);
							}
						}
						else {
							plugin.fnUpdate( settings, redraw );
						}
					},
					"sName": "pagination"
				} );
			}
			return node;
		}
function _fnFeatureHtmlPaginate ( settings ) { var type = settings . sPaginationType , plugin = DataTable . ext . pager [ type ] , modern = typeof plugin === 'function' , redraw = function ( settings ) { _fnDraw ( settings ) ; } , node = $ ( '<div/>' ) . addClass ( settings . oClasses . sPaging + type ) [ 0 ] , features = settings . aanFeatures ; if ( ! modern ) { plugin . fnInit ( settings , node , redraw ) ; } if ( ! features . p ) { node . id = settings . sTableId + '_paginate' ; settings . aoDrawCallback . push ( { "fn" : function ( settings ) { if ( modern ) { var start = settings . _iDisplayStart , len = settings . _iDisplayLength , visRecords = settings . fnRecordsDisplay ( ) , all = len === - 1 , page = all ? 0 : Math . ceil ( start / len ) , pages = all ? 1 : Math . ceil ( visRecords / len ) , buttons = plugin ( page , pages ) , i , ien ; for ( i = 0 , ien = features . p . length ; i < ien ; i ++ ) { _fnRenderer ( settings , 'pageButton' ) ( settings , features . p [ i ] , i , buttons , page , pages ) ; } } else { plugin . fnUpdate ( settings , redraw ) ; } } , "sName" : "pagination" } ) ; } return node ; }
Generate the node required for default pagination
  @param {object} oSettings dataTables settings object
  @returns {node} Pagination feature node
  @memberof DataTable#oApi
Generate the node required for default pagination @param { object } oSettings dataTables settings object @returns { node } Pagination feature node @memberof DataTable#oApi
/* Add a draw callback for the pagination on first instance, to update the paging display */