public/dashboard/bower_components/admin-lte/plugins/datatables/extensions/Scroller/js/dataTables.scroller.js
function ()
	{
		if ( !this.s.dt.oFeatures.bInfo )
		{
			return;
		}

		var
			dt = this.s.dt,
			language = dt.oLanguage,
			iScrollTop = this.dom.scroller.scrollTop,
			iStart = Math.floor( this.fnPixelsToRow(iScrollTop, false, this.s.ani)+1 ),
			iMax = dt.fnRecordsTotal(),
			iTotal = dt.fnRecordsDisplay(),
			iPossibleEnd = Math.ceil( this.fnPixelsToRow(iScrollTop+this.s.heights.viewport, false, this.s.ani) ),
			iEnd = iTotal < iPossibleEnd ? iTotal : iPossibleEnd,
			sStart = dt.fnFormatNumber( iStart ),
			sEnd = dt.fnFormatNumber( iEnd ),
			sMax = dt.fnFormatNumber( iMax ),
			sTotal = dt.fnFormatNumber( iTotal ),
			sOut;

		if ( dt.fnRecordsDisplay() === 0 &&
			   dt.fnRecordsDisplay() == dt.fnRecordsTotal() )
		{
			/* Empty record set */
			sOut = language.sInfoEmpty+ language.sInfoPostFix;
		}
		else if ( dt.fnRecordsDisplay() === 0 )
		{
			/* Empty record set after filtering */
			sOut = language.sInfoEmpty +' '+
				language.sInfoFiltered.replace('_MAX_', sMax)+
					language.sInfoPostFix;
		}
		else if ( dt.fnRecordsDisplay() == dt.fnRecordsTotal() )
		{
			/* Normal record set */
			sOut = language.sInfo.
					replace('_START_', sStart).
					replace('_END_',   sEnd).
					replace('_MAX_',   sMax).
					replace('_TOTAL_', sTotal)+
				language.sInfoPostFix;
		}
		else
		{
			/* Record set after filtering */
			sOut = language.sInfo.
					replace('_START_', sStart).
					replace('_END_',   sEnd).
					replace('_MAX_',   sMax).
					replace('_TOTAL_', sTotal) +' '+
				language.sInfoFiltered.replace(
					'_MAX_',
					dt.fnFormatNumber(dt.fnRecordsTotal())
				)+
				language.sInfoPostFix;
		}

		var callback = language.fnInfoCallback;
		if ( callback ) {
			sOut = callback.call( dt.oInstance,
				dt, iStart, iEnd, iMax, iTotal, sOut
			);
		}

		var n = dt.aanFeatures.i;
		if ( typeof n != 'undefined' )
		{
			for ( var i=0, iLen=n.length ; i<iLen ; i++ )
			{
				$(n[i]).html( sOut );
			}
		}
	}
function ()
	{
		if ( !this.s.dt.oFeatures.bInfo )
		{
			return;
		}

		var
			dt = this.s.dt,
			language = dt.oLanguage,
			iScrollTop = this.dom.scroller.scrollTop,
			iStart = Math.floor( this.fnPixelsToRow(iScrollTop, false, this.s.ani)+1 ),
			iMax = dt.fnRecordsTotal(),
			iTotal = dt.fnRecordsDisplay(),
			iPossibleEnd = Math.ceil( this.fnPixelsToRow(iScrollTop+this.s.heights.viewport, false, this.s.ani) ),
			iEnd = iTotal < iPossibleEnd ? iTotal : iPossibleEnd,
			sStart = dt.fnFormatNumber( iStart ),
			sEnd = dt.fnFormatNumber( iEnd ),
			sMax = dt.fnFormatNumber( iMax ),
			sTotal = dt.fnFormatNumber( iTotal ),
			sOut;

		if ( dt.fnRecordsDisplay() === 0 &&
			   dt.fnRecordsDisplay() == dt.fnRecordsTotal() )
		{
			/* Empty record set */
			sOut = language.sInfoEmpty+ language.sInfoPostFix;
		}
		else if ( dt.fnRecordsDisplay() === 0 )
		{
			/* Empty record set after filtering */
			sOut = language.sInfoEmpty +' '+
				language.sInfoFiltered.replace('_MAX_', sMax)+
					language.sInfoPostFix;
		}
		else if ( dt.fnRecordsDisplay() == dt.fnRecordsTotal() )
		{
			/* Normal record set */
			sOut = language.sInfo.
					replace('_START_', sStart).
					replace('_END_',   sEnd).
					replace('_MAX_',   sMax).
					replace('_TOTAL_', sTotal)+
				language.sInfoPostFix;
		}
		else
		{
			/* Record set after filtering */
			sOut = language.sInfo.
					replace('_START_', sStart).
					replace('_END_',   sEnd).
					replace('_MAX_',   sMax).
					replace('_TOTAL_', sTotal) +' '+
				language.sInfoFiltered.replace(
					'_MAX_',
					dt.fnFormatNumber(dt.fnRecordsTotal())
				)+
				language.sInfoPostFix;
		}

		var callback = language.fnInfoCallback;
		if ( callback ) {
			sOut = callback.call( dt.oInstance,
				dt, iStart, iEnd, iMax, iTotal, sOut
			);
		}

		var n = dt.aanFeatures.i;
		if ( typeof n != 'undefined' )
		{
			for ( var i=0, iLen=n.length ; i<iLen ; i++ )
			{
				$(n[i]).html( sOut );
			}
		}
	}
function ( ) { if ( ! this . s . dt . oFeatures . bInfo ) { return ; } var dt = this . s . dt , language = dt . oLanguage , iScrollTop = this . dom . scroller . scrollTop , iStart = Math . floor ( this . fnPixelsToRow ( iScrollTop , false , this . s . ani ) + 1 ) , iMax = dt . fnRecordsTotal ( ) , iTotal = dt . fnRecordsDisplay ( ) , iPossibleEnd = Math . ceil ( this . fnPixelsToRow ( iScrollTop + this . s . heights . viewport , false , this . s . ani ) ) , iEnd = iTotal < iPossibleEnd ? iTotal : iPossibleEnd , sStart = dt . fnFormatNumber ( iStart ) , sEnd = dt . fnFormatNumber ( iEnd ) , sMax = dt . fnFormatNumber ( iMax ) , sTotal = dt . fnFormatNumber ( iTotal ) , sOut ; if ( dt . fnRecordsDisplay ( ) === 0 && dt . fnRecordsDisplay ( ) == dt . fnRecordsTotal ( ) ) { /* Empty record set */ sOut = language . sInfoEmpty + language . sInfoPostFix ; } else if ( dt . fnRecordsDisplay ( ) === 0 ) { /* Empty record set after filtering */ sOut = language . sInfoEmpty + ' ' + language . sInfoFiltered . replace ( '_MAX_' , sMax ) + language . sInfoPostFix ; } else if ( dt . fnRecordsDisplay ( ) == dt . fnRecordsTotal ( ) ) { /* Normal record set */ sOut = language . sInfo . replace ( '_START_' , sStart ) . replace ( '_END_' , sEnd ) . replace ( '_MAX_' , sMax ) . replace ( '_TOTAL_' , sTotal ) + language . sInfoPostFix ; } else { /* Record set after filtering */ sOut = language . sInfo . replace ( '_START_' , sStart ) . replace ( '_END_' , sEnd ) . replace ( '_MAX_' , sMax ) . replace ( '_TOTAL_' , sTotal ) + ' ' + language . sInfoFiltered . replace ( '_MAX_' , dt . fnFormatNumber ( dt . fnRecordsTotal ( ) ) ) + language . sInfoPostFix ; } var callback = language . fnInfoCallback ; if ( callback ) { sOut = callback . call ( dt . oInstance , dt , iStart , iEnd , iMax , iTotal , sOut ) ; } var n = dt . aanFeatures . i ; if ( typeof n != 'undefined' ) { for ( var i = 0 , iLen = n . length ; i < iLen ; i ++ ) { $ ( n [ i ] ) . html ( sOut ) ; } } }
Update any information elements that are controlled by the DataTable based on the scrolling
viewport and what rows are visible in it. This function basically acts in the same way as
_fnUpdateInfo in DataTables, and effectively replaces that function.
@returns {void}
@private
Update any information elements that are controlled by the DataTable based on the scrolling viewport and what rows are visible in it . This function basically acts in the same way as _fnUpdateInfo in DataTables and effectively replaces that function .