public/dashboard/bower_components/admin-lte/plugins/datatables/extensions/TableTools/js/dataTables.tableTools.js
function ( nButton, oConfig )
	{
		var
			that = this,
			oPos = $(nButton).offset(),
			nHidden = oConfig._collection,
			iDivX = oPos.left,
			iDivY = oPos.top + $(nButton).outerHeight(),
			iWinHeight = $(window).height(), iDocHeight = $(document).height(),
			iWinWidth = $(window).width(), iDocWidth = $(document).width();

		nHidden.style.position = "absolute";
		nHidden.style.left = iDivX+"px";
		nHidden.style.top = iDivY+"px";
		nHidden.style.display = "block";
		$(nHidden).css('opacity',0);

		var nBackground = document.createElement('div');
		nBackground.style.position = "absolute";
		nBackground.style.left = "0px";
		nBackground.style.top = "0px";
		nBackground.style.height = ((iWinHeight>iDocHeight)? iWinHeight : iDocHeight) +"px";
		nBackground.style.width = ((iWinWidth>iDocWidth)? iWinWidth : iDocWidth) +"px";
		nBackground.className = this.classes.collection.background;
		$(nBackground).css('opacity',0);

		document.body.appendChild( nBackground );
		document.body.appendChild( nHidden );

		/* Visual corrections to try and keep the collection visible */
		var iDivWidth = $(nHidden).outerWidth();
		var iDivHeight = $(nHidden).outerHeight();

		if ( iDivX + iDivWidth > iDocWidth )
		{
			nHidden.style.left = (iDocWidth-iDivWidth)+"px";
		}

		if ( iDivY + iDivHeight > iDocHeight )
		{
			nHidden.style.top = (iDivY-iDivHeight-$(nButton).outerHeight())+"px";
		}

		this.dom.collection.collection = nHidden;
		this.dom.collection.background = nBackground;

		/* This results in a very small delay for the end user but it allows the animation to be
		 * much smoother. If you don't want the animation, then the setTimeout can be removed
		 */
		setTimeout( function () {
			$(nHidden).animate({"opacity": 1}, 500);
			$(nBackground).animate({"opacity": 0.25}, 500);
		}, 10 );

		/* Resize the buttons to the Flash contents fit */
		this.fnResizeButtons();

		/* Event handler to remove the collection display */
		$(nBackground).click( function () {
			that._fnCollectionHide.call( that, null, null );
		} );
	}
function ( nButton, oConfig )
	{
		var
			that = this,
			oPos = $(nButton).offset(),
			nHidden = oConfig._collection,
			iDivX = oPos.left,
			iDivY = oPos.top + $(nButton).outerHeight(),
			iWinHeight = $(window).height(), iDocHeight = $(document).height(),
			iWinWidth = $(window).width(), iDocWidth = $(document).width();

		nHidden.style.position = "absolute";
		nHidden.style.left = iDivX+"px";
		nHidden.style.top = iDivY+"px";
		nHidden.style.display = "block";
		$(nHidden).css('opacity',0);

		var nBackground = document.createElement('div');
		nBackground.style.position = "absolute";
		nBackground.style.left = "0px";
		nBackground.style.top = "0px";
		nBackground.style.height = ((iWinHeight>iDocHeight)? iWinHeight : iDocHeight) +"px";
		nBackground.style.width = ((iWinWidth>iDocWidth)? iWinWidth : iDocWidth) +"px";
		nBackground.className = this.classes.collection.background;
		$(nBackground).css('opacity',0);

		document.body.appendChild( nBackground );
		document.body.appendChild( nHidden );

		/* Visual corrections to try and keep the collection visible */
		var iDivWidth = $(nHidden).outerWidth();
		var iDivHeight = $(nHidden).outerHeight();

		if ( iDivX + iDivWidth > iDocWidth )
		{
			nHidden.style.left = (iDocWidth-iDivWidth)+"px";
		}

		if ( iDivY + iDivHeight > iDocHeight )
		{
			nHidden.style.top = (iDivY-iDivHeight-$(nButton).outerHeight())+"px";
		}

		this.dom.collection.collection = nHidden;
		this.dom.collection.background = nBackground;

		/* This results in a very small delay for the end user but it allows the animation to be
		 * much smoother. If you don't want the animation, then the setTimeout can be removed
		 */
		setTimeout( function () {
			$(nHidden).animate({"opacity": 1}, 500);
			$(nBackground).animate({"opacity": 0.25}, 500);
		}, 10 );

		/* Resize the buttons to the Flash contents fit */
		this.fnResizeButtons();

		/* Event handler to remove the collection display */
		$(nBackground).click( function () {
			that._fnCollectionHide.call( that, null, null );
		} );
	}
function ( nButton , oConfig ) { var that = this , oPos = $ ( nButton ) . offset ( ) , nHidden = oConfig . _collection , iDivX = oPos . left , iDivY = oPos . top + $ ( nButton ) . outerHeight ( ) , iWinHeight = $ ( window ) . height ( ) , iDocHeight = $ ( document ) . height ( ) , iWinWidth = $ ( window ) . width ( ) , iDocWidth = $ ( document ) . width ( ) ; nHidden . style . position = "absolute" ; nHidden . style . left = iDivX + "px" ; nHidden . style . top = iDivY + "px" ; nHidden . style . display = "block" ; $ ( nHidden ) . css ( 'opacity' , 0 ) ; var nBackground = document . createElement ( 'div' ) ; nBackground . style . position = "absolute" ; nBackground . style . left = "0px" ; nBackground . style . top = "0px" ; nBackground . style . height = ( ( iWinHeight > iDocHeight ) ? iWinHeight : iDocHeight ) + "px" ; nBackground . style . width = ( ( iWinWidth > iDocWidth ) ? iWinWidth : iDocWidth ) + "px" ; nBackground . className = this . classes . collection . background ; $ ( nBackground ) . css ( 'opacity' , 0 ) ; document . body . appendChild ( nBackground ) ; document . body . appendChild ( nHidden ) ; /* Visual corrections to try and keep the collection visible */ var iDivWidth = $ ( nHidden ) . outerWidth ( ) ; var iDivHeight = $ ( nHidden ) . outerHeight ( ) ; if ( iDivX + iDivWidth > iDocWidth ) { nHidden . style . left = ( iDocWidth - iDivWidth ) + "px" ; } if ( iDivY + iDivHeight > iDocHeight ) { nHidden . style . top = ( iDivY - iDivHeight - $ ( nButton ) . outerHeight ( ) ) + "px" ; } this . dom . collection . collection = nHidden ; this . dom . collection . background = nBackground ; /* This results in a very small delay for the end user but it allows the animation to be
		 * much smoother. If you don't want the animation, then the setTimeout can be removed
		 */ setTimeout ( function ( ) { $ ( nHidden ) . animate ( { "opacity" : 1 } , 500 ) ; $ ( nBackground ) . animate ( { "opacity" : 0.25 } , 500 ) ; } , 10 ) ; /* Resize the buttons to the Flash contents fit */ this . fnResizeButtons ( ) ; /* Event handler to remove the collection display */ $ ( nBackground ) . click ( function ( ) { that . _fnCollectionHide . call ( that , null , null ) ; } ) ; }
Show a button collection
@param   {Node} nButton Button to use for the collection
@param   {Object} oConfig Button configuration object
@returns void
@private
Show a button collection