forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			309 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			309 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | /*! | ||
|  |  * jQuery UI 1.8.10 | ||
|  |  * | ||
|  |  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 | ||
|  |  * Dual licensed under the MIT or GPL Version 2 licenses. | ||
|  |  * http://jquery.org/license
 | ||
|  |  * | ||
|  |  * http://docs.jquery.com/UI
 | ||
|  |  */ | ||
|  | (function( $, undefined ) { | ||
|  | 
 | ||
|  | // prevent duplicate loading
 | ||
|  | // this is only a problem because we proxy existing functions
 | ||
|  | // and we don't want to double proxy them
 | ||
|  | $.ui = $.ui || {}; | ||
|  | if ( $.ui.version ) { | ||
|  | 	return; | ||
|  | } | ||
|  | 
 | ||
|  | $.extend( $.ui, { | ||
|  | 	version: "1.8.10", | ||
|  | 
 | ||
|  | 	keyCode: { | ||
|  | 		ALT: 18, | ||
|  | 		BACKSPACE: 8, | ||
|  | 		CAPS_LOCK: 20, | ||
|  | 		COMMA: 188, | ||
|  | 		COMMAND: 91, | ||
|  | 		COMMAND_LEFT: 91, // COMMAND
 | ||
|  | 		COMMAND_RIGHT: 93, | ||
|  | 		CONTROL: 17, | ||
|  | 		DELETE: 46, | ||
|  | 		DOWN: 40, | ||
|  | 		END: 35, | ||
|  | 		ENTER: 13, | ||
|  | 		ESCAPE: 27, | ||
|  | 		HOME: 36, | ||
|  | 		INSERT: 45, | ||
|  | 		LEFT: 37, | ||
|  | 		MENU: 93, // COMMAND_RIGHT
 | ||
|  | 		NUMPAD_ADD: 107, | ||
|  | 		NUMPAD_DECIMAL: 110, | ||
|  | 		NUMPAD_DIVIDE: 111, | ||
|  | 		NUMPAD_ENTER: 108, | ||
|  | 		NUMPAD_MULTIPLY: 106, | ||
|  | 		NUMPAD_SUBTRACT: 109, | ||
|  | 		PAGE_DOWN: 34, | ||
|  | 		PAGE_UP: 33, | ||
|  | 		PERIOD: 190, | ||
|  | 		RIGHT: 39, | ||
|  | 		SHIFT: 16, | ||
|  | 		SPACE: 32, | ||
|  | 		TAB: 9, | ||
|  | 		UP: 38, | ||
|  | 		WINDOWS: 91 // COMMAND
 | ||
|  | 	} | ||
|  | }); | ||
|  | 
 | ||
|  | // plugins
 | ||
|  | $.fn.extend({ | ||
|  | 	_focus: $.fn.focus, | ||
|  | 	focus: function( delay, fn ) { | ||
|  | 		return typeof delay === "number" ? | ||
|  | 			this.each(function() { | ||
|  | 				var elem = this; | ||
|  | 				setTimeout(function() { | ||
|  | 					$( elem ).focus(); | ||
|  | 					if ( fn ) { | ||
|  | 						fn.call( elem ); | ||
|  | 					} | ||
|  | 				}, delay ); | ||
|  | 			}) : | ||
|  | 			this._focus.apply( this, arguments ); | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	scrollParent: function() { | ||
|  | 		var scrollParent; | ||
|  | 		if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) { | ||
|  | 			scrollParent = this.parents().filter(function() { | ||
|  | 				return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); | ||
|  | 			}).eq(0); | ||
|  | 		} else { | ||
|  | 			scrollParent = this.parents().filter(function() { | ||
|  | 				return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); | ||
|  | 			}).eq(0); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent; | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	zIndex: function( zIndex ) { | ||
|  | 		if ( zIndex !== undefined ) { | ||
|  | 			return this.css( "zIndex", zIndex ); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		if ( this.length ) { | ||
|  | 			var elem = $( this[ 0 ] ), position, value; | ||
|  | 			while ( elem.length && elem[ 0 ] !== document ) { | ||
|  | 				// Ignore z-index if position is set to a value where z-index is ignored by the browser
 | ||
|  | 				// This makes behavior of this function consistent across browsers
 | ||
|  | 				// WebKit always returns auto if the element is positioned
 | ||
|  | 				position = elem.css( "position" ); | ||
|  | 				if ( position === "absolute" || position === "relative" || position === "fixed" ) { | ||
|  | 					// IE returns 0 when zIndex is not specified
 | ||
|  | 					// other browsers return a string
 | ||
|  | 					// we ignore the case of nested elements with an explicit value of 0
 | ||
|  | 					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
 | ||
|  | 					value = parseInt( elem.css( "zIndex" ), 10 ); | ||
|  | 					if ( !isNaN( value ) && value !== 0 ) { | ||
|  | 						return value; | ||
|  | 					} | ||
|  | 				} | ||
|  | 				elem = elem.parent(); | ||
|  | 			} | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return 0; | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	disableSelection: function() { | ||
|  | 		return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + | ||
|  | 			".ui-disableSelection", function( event ) { | ||
|  | 				event.preventDefault(); | ||
|  | 			}); | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	enableSelection: function() { | ||
|  | 		return this.unbind( ".ui-disableSelection" ); | ||
|  | 	} | ||
|  | }); | ||
|  | 
 | ||
|  | $.each( [ "Width", "Height" ], function( i, name ) { | ||
|  | 	var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], | ||
|  | 		type = name.toLowerCase(), | ||
|  | 		orig = { | ||
|  | 			innerWidth: $.fn.innerWidth, | ||
|  | 			innerHeight: $.fn.innerHeight, | ||
|  | 			outerWidth: $.fn.outerWidth, | ||
|  | 			outerHeight: $.fn.outerHeight | ||
|  | 		}; | ||
|  | 
 | ||
|  | 	function reduce( elem, size, border, margin ) { | ||
|  | 		$.each( side, function() { | ||
|  | 			size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0; | ||
|  | 			if ( border ) { | ||
|  | 				size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0; | ||
|  | 			} | ||
|  | 			if ( margin ) { | ||
|  | 				size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0; | ||
|  | 			} | ||
|  | 		}); | ||
|  | 		return size; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	$.fn[ "inner" + name ] = function( size ) { | ||
|  | 		if ( size === undefined ) { | ||
|  | 			return orig[ "inner" + name ].call( this ); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return this.each(function() { | ||
|  | 			$( this ).css( type, reduce( this, size ) + "px" ); | ||
|  | 		}); | ||
|  | 	}; | ||
|  | 
 | ||
|  | 	$.fn[ "outer" + name] = function( size, margin ) { | ||
|  | 		if ( typeof size !== "number" ) { | ||
|  | 			return orig[ "outer" + name ].call( this, size ); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return this.each(function() { | ||
|  | 			$( this).css( type, reduce( this, size, true, margin ) + "px" ); | ||
|  | 		}); | ||
|  | 	}; | ||
|  | }); | ||
|  | 
 | ||
|  | // selectors
 | ||
|  | function visible( element ) { | ||
|  | 	return !$( element ).parents().andSelf().filter(function() { | ||
|  | 		return $.curCSS( this, "visibility" ) === "hidden" || | ||
|  | 			$.expr.filters.hidden( this ); | ||
|  | 	}).length; | ||
|  | } | ||
|  | 
 | ||
|  | $.extend( $.expr[ ":" ], { | ||
|  | 	data: function( elem, i, match ) { | ||
|  | 		return !!$.data( elem, match[ 3 ] ); | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	focusable: function( element ) { | ||
|  | 		var nodeName = element.nodeName.toLowerCase(), | ||
|  | 			tabIndex = $.attr( element, "tabindex" ); | ||
|  | 		if ( "area" === nodeName ) { | ||
|  | 			var map = element.parentNode, | ||
|  | 				mapName = map.name, | ||
|  | 				img; | ||
|  | 			if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 			img = $( "img[usemap=#" + mapName + "]" )[0]; | ||
|  | 			return !!img && visible( img ); | ||
|  | 		} | ||
|  | 		return ( /input|select|textarea|button|object/.test( nodeName ) | ||
|  | 			? !element.disabled | ||
|  | 			: "a" == nodeName | ||
|  | 				? element.href || !isNaN( tabIndex ) | ||
|  | 				: !isNaN( tabIndex )) | ||
|  | 			// the element and all of its ancestors must be visible
 | ||
|  | 			&& visible( element ); | ||
|  | 	}, | ||
|  | 
 | ||
|  | 	tabbable: function( element ) { | ||
|  | 		var tabIndex = $.attr( element, "tabindex" ); | ||
|  | 		return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" ); | ||
|  | 	} | ||
|  | }); | ||
|  | 
 | ||
|  | // support
 | ||
|  | $(function() { | ||
|  | 	var body = document.body, | ||
|  | 		div = body.appendChild( div = document.createElement( "div" ) ); | ||
|  | 
 | ||
|  | 	$.extend( div.style, { | ||
|  | 		minHeight: "100px", | ||
|  | 		height: "auto", | ||
|  | 		padding: 0, | ||
|  | 		borderWidth: 0 | ||
|  | 	}); | ||
|  | 
 | ||
|  | 	$.support.minHeight = div.offsetHeight === 100; | ||
|  | 	$.support.selectstart = "onselectstart" in div; | ||
|  | 
 | ||
|  | 	// set display to none to avoid a layout bug in IE
 | ||
|  | 	// http://dev.jquery.com/ticket/4014
 | ||
|  | 	body.removeChild( div ).style.display = "none"; | ||
|  | }); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | // deprecated
 | ||
|  | $.extend( $.ui, { | ||
|  | 	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
 | ||
|  | 	plugin: { | ||
|  | 		add: function( module, option, set ) { | ||
|  | 			var proto = $.ui[ module ].prototype; | ||
|  | 			for ( var i in set ) { | ||
|  | 				proto.plugins[ i ] = proto.plugins[ i ] || []; | ||
|  | 				proto.plugins[ i ].push( [ option, set[ i ] ] ); | ||
|  | 			} | ||
|  | 		}, | ||
|  | 		call: function( instance, name, args ) { | ||
|  | 			var set = instance.plugins[ name ]; | ||
|  | 			if ( !set || !instance.element[ 0 ].parentNode ) { | ||
|  | 				return; | ||
|  | 			} | ||
|  | 	 | ||
|  | 			for ( var i = 0; i < set.length; i++ ) { | ||
|  | 				if ( instance.options[ set[ i ][ 0 ] ] ) { | ||
|  | 					set[ i ][ 1 ].apply( instance.element, args ); | ||
|  | 				} | ||
|  | 			} | ||
|  | 		} | ||
|  | 	}, | ||
|  | 	 | ||
|  | 	// will be deprecated when we switch to jQuery 1.4 - use jQuery.contains()
 | ||
|  | 	contains: function( a, b ) { | ||
|  | 		return document.compareDocumentPosition ? | ||
|  | 			a.compareDocumentPosition( b ) & 16 : | ||
|  | 			a !== b && a.contains( b ); | ||
|  | 	}, | ||
|  | 	 | ||
|  | 	// only used by resizable
 | ||
|  | 	hasScroll: function( el, a ) { | ||
|  | 	 | ||
|  | 		//If overflow is hidden, the element might have extra content, but the user wants to hide it
 | ||
|  | 		if ( $( el ).css( "overflow" ) === "hidden") { | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	 | ||
|  | 		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", | ||
|  | 			has = false; | ||
|  | 	 | ||
|  | 		if ( el[ scroll ] > 0 ) { | ||
|  | 			return true; | ||
|  | 		} | ||
|  | 	 | ||
|  | 		// TODO: determine which cases actually cause this to happen
 | ||
|  | 		// if the element doesn't have the scroll set, see if it's possible to
 | ||
|  | 		// set the scroll
 | ||
|  | 		el[ scroll ] = 1; | ||
|  | 		has = ( el[ scroll ] > 0 ); | ||
|  | 		el[ scroll ] = 0; | ||
|  | 		return has; | ||
|  | 	}, | ||
|  | 	 | ||
|  | 	// these are odd functions, fix the API or move into individual plugins
 | ||
|  | 	isOverAxis: function( x, reference, size ) { | ||
|  | 		//Determines when x coordinate is over "b" element axis
 | ||
|  | 		return ( x > reference ) && ( x < ( reference + size ) ); | ||
|  | 	}, | ||
|  | 	isOver: function( y, x, top, left, height, width ) { | ||
|  | 		//Determines when x, y coordinates is over "b" element
 | ||
|  | 		return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width ); | ||
|  | 	} | ||
|  | }); | ||
|  | 
 | ||
|  | })( jQuery ); |