| 
					
				 | 
			
			
				@@ -0,0 +1,513 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/*! jQuery UI - v1.12.1 - 2016-09-16 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * http://jqueryui.com 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Includes: position.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Copyright jQuery Foundation and other contributors; Licensed MIT */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(function( factory ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ( typeof define === "function" && define.amd ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // AMD. Register as an anonymous module. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        define([ "jquery" ], factory ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Browser globals 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        factory( jQuery ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}(function( $ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $.ui = $.ui || {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    var version = $.ui.version = "1.12.1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /*! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * jQuery UI Position 1.12.1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * http://jqueryui.com 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * Copyright jQuery Foundation and other contributors 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * Released under the MIT license. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * http://jquery.org/license 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * http://api.jqueryui.com/position/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>label: Position 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>group: Core 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>description: Positions elements relative to other elements. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>docs: http://api.jqueryui.com/position/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>demos: http://jqueryui.com/position/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ( function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var cachedScrollbarWidth, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            max = Math.max, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            abs = Math.abs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rhorizontal = /left|center|right/, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rvertical = /top|center|bottom/, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            roffset = /[\+\-]\d+(\.[\d]+)?%?/, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rposition = /^\w+/, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rpercent = /%$/, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _position = $.fn.position; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function getOffsets( offsets, width, height ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function parseCss( element, property ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return parseInt( $.css( element, property ), 10 ) || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function getDimensions( elem ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var raw = elem[ 0 ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ( raw.nodeType === 9 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    width: elem.width(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    height: elem.height(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    offset: { top: 0, left: 0 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ( $.isWindow( raw ) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    width: elem.width(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    height: elem.height(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    offset: { top: elem.scrollTop(), left: elem.scrollLeft() } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ( raw.preventDefault ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    width: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    height: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    offset: { top: raw.pageY, left: raw.pageX } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                width: elem.outerWidth(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                height: elem.outerHeight(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                offset: elem.offset() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $.position = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            scrollbarWidth: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ( cachedScrollbarWidth !== undefined ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return cachedScrollbarWidth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var w1, w2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    div = $( "<div " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        "style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        "<div style='height:100px;width:auto;'></div></div>" ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    innerDiv = div.children()[ 0 ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $( "body" ).append( div ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                w1 = innerDiv.offsetWidth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                div.css( "overflow", "scroll" ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                w2 = innerDiv.offsetWidth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ( w1 === w2 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    w2 = div[ 0 ].clientWidth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                div.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return ( cachedScrollbarWidth = w1 - w2 ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            getScrollInfo: function( within ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var overflowX = within.isWindow || within.isDocument ? "" : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        within.element.css( "overflow-x" ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    overflowY = within.isWindow || within.isDocument ? "" : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        within.element.css( "overflow-y" ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    hasOverflowX = overflowX === "scroll" || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    hasOverflowY = overflowY === "scroll" || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    width: hasOverflowY ? $.position.scrollbarWidth() : 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    height: hasOverflowX ? $.position.scrollbarWidth() : 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            getWithinInfo: function( element ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var withinElement = $( element || window ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    isWindow = $.isWindow( withinElement[ 0 ] ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    hasOffset = !isWindow && !isDocument; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    element: withinElement, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    isWindow: isWindow, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    isDocument: isDocument, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    scrollLeft: withinElement.scrollLeft(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    scrollTop: withinElement.scrollTop(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    width: withinElement.outerWidth(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    height: withinElement.outerHeight() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $.fn.position = function( options ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ( !options || !options.of ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return _position.apply( this, arguments ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // Make a copy, we don't want to modify arguments 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            options = $.extend( {}, options ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                target = $( options.of ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                within = $.position.getWithinInfo( options.within ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                scrollInfo = $.position.getScrollInfo( within ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                collision = ( options.collision || "flip" ).split( " " ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                offsets = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dimensions = getDimensions( target ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ( target[ 0 ].preventDefault ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // Force left top to allow flipping 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                options.at = "left top"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            targetWidth = dimensions.width; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            targetHeight = dimensions.height; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            targetOffset = dimensions.offset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // Clone to reuse original targetOffset later 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            basePosition = $.extend( {}, targetOffset ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // Force my and at to have valid horizontal and vertical positions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // if a value is missing or invalid, it will be converted to center 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $.each( [ "my", "at" ], function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var pos = ( options[ this ] || "" ).split( " " ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    horizontalOffset, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    verticalOffset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ( pos.length === 1 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    pos = rhorizontal.test( pos[ 0 ] ) ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        pos.concat( [ "center" ] ) : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        rvertical.test( pos[ 0 ] ) ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            [ "center" ].concat( pos ) : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            [ "center", "center" ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // Calculate offsets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                horizontalOffset = roffset.exec( pos[ 0 ] ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                verticalOffset = roffset.exec( pos[ 1 ] ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                offsets[ this ] = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    horizontalOffset ? horizontalOffset[ 0 ] : 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    verticalOffset ? verticalOffset[ 0 ] : 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // Reduce to just the positions without the offsets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                options[ this ] = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rposition.exec( pos[ 0 ] )[ 0 ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rposition.exec( pos[ 1 ] )[ 0 ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // Normalize collision option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ( collision.length === 1 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                collision[ 1 ] = collision[ 0 ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ( options.at[ 0 ] === "right" ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                basePosition.left += targetWidth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if ( options.at[ 0 ] === "center" ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                basePosition.left += targetWidth / 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ( options.at[ 1 ] === "bottom" ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                basePosition.top += targetHeight; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if ( options.at[ 1 ] === "center" ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                basePosition.top += targetHeight / 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            basePosition.left += atOffset[ 0 ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            basePosition.top += atOffset[ 1 ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return this.each( function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var collisionPosition, using, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    elem = $( this ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    elemWidth = elem.outerWidth(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    elemHeight = elem.outerHeight(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    marginLeft = parseCss( this, "marginLeft" ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    marginTop = parseCss( this, "marginTop" ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        scrollInfo.width, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        scrollInfo.height, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    position = $.extend( {}, basePosition ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ( options.my[ 0 ] === "right" ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    position.left -= elemWidth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else if ( options.my[ 0 ] === "center" ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    position.left -= elemWidth / 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ( options.my[ 1 ] === "bottom" ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    position.top -= elemHeight; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else if ( options.my[ 1 ] === "center" ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    position.top -= elemHeight / 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                position.left += myOffset[ 0 ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                position.top += myOffset[ 1 ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                collisionPosition = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    marginLeft: marginLeft, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    marginTop: marginTop 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $.each( [ "left", "top" ], function( i, dir ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ( $.ui.position[ collision[ i ] ] ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $.ui.position[ collision[ i ] ][ dir ]( position, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            targetWidth: targetWidth, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            targetHeight: targetHeight, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            elemWidth: elemWidth, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            elemHeight: elemHeight, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            collisionPosition: collisionPosition, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            collisionWidth: collisionWidth, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            collisionHeight: collisionHeight, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            my: options.my, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            at: options.at, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            within: within, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            elem: elem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ( options.using ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // Adds feedback as second argument to using callback, if present 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    using = function( props ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var left = targetOffset.left - position.left, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            right = left + targetWidth - elemWidth, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            top = targetOffset.top - position.top, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            bottom = top + targetHeight - elemHeight, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            feedback = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                target: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    element: target, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    left: targetOffset.left, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    top: targetOffset.top, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    width: targetWidth, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    height: targetHeight 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                element: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    element: elem, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    left: position.left, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    top: position.top, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    width: elemWidth, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    height: elemHeight 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            feedback.horizontal = "center"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            feedback.vertical = "middle"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            feedback.important = "horizontal"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            feedback.important = "vertical"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        options.using.call( this, props, feedback ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                elem.offset( $.extend( position, { using: using } ) ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $.ui.position = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fit: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                left: function( position, data ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var within = data.within, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        outerWidth = within.width, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        collisionPosLeft = position.left - data.collisionPosition.marginLeft, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        overLeft = withinOffset - collisionPosLeft, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newOverRight; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // Element is wider than within 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ( data.collisionWidth > outerWidth ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // Element is initially over the left side of within 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ( overLeft > 0 && overRight <= 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                withinOffset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            position.left += overLeft - newOverRight; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // Element is initially over right side of within 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else if ( overRight > 0 && overLeft <= 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            position.left = withinOffset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // Element is initially over both left and right sides of within 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if ( overLeft > overRight ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                position.left = withinOffset + outerWidth - data.collisionWidth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                position.left = withinOffset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // Too far left -> align with left edge 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else if ( overLeft > 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        position.left += overLeft; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // Too far right -> align with right edge 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else if ( overRight > 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        position.left -= overRight; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // Adjust based on position and margin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        position.left = max( position.left - collisionPosLeft, position.left ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                top: function( position, data ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var within = data.within, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        withinOffset = within.isWindow ? within.scrollTop : within.offset.top, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        outerHeight = data.within.height, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        collisionPosTop = position.top - data.collisionPosition.marginTop, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        overTop = withinOffset - collisionPosTop, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newOverBottom; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // Element is taller than within 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ( data.collisionHeight > outerHeight ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // Element is initially over the top of within 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ( overTop > 0 && overBottom <= 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                withinOffset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            position.top += overTop - newOverBottom; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // Element is initially over bottom of within 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else if ( overBottom > 0 && overTop <= 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            position.top = withinOffset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // Element is initially over both top and bottom of within 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if ( overTop > overBottom ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                position.top = withinOffset + outerHeight - data.collisionHeight; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                position.top = withinOffset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // Too far up -> align with top 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else if ( overTop > 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        position.top += overTop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // Too far down -> align with bottom edge 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else if ( overBottom > 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        position.top -= overBottom; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // Adjust based on position and margin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        position.top = max( position.top - collisionPosTop, position.top ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            flip: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                left: function( position, data ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var within = data.within, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        withinOffset = within.offset.left + within.scrollLeft, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        outerWidth = within.width, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        collisionPosLeft = position.left - data.collisionPosition.marginLeft, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        overLeft = collisionPosLeft - offsetLeft, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        myOffset = data.my[ 0 ] === "left" ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            -data.elemWidth : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            data.my[ 0 ] === "right" ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                data.elemWidth : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        atOffset = data.at[ 0 ] === "left" ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            data.targetWidth : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            data.at[ 0 ] === "right" ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                -data.targetWidth : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        offset = -2 * data.offset[ 0 ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newOverRight, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newOverLeft; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ( overLeft < 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            outerWidth - withinOffset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            position.left += myOffset + atOffset + offset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else if ( overRight > 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            atOffset + offset - offsetLeft; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            position.left += myOffset + atOffset + offset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                top: function( position, data ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var within = data.within, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        withinOffset = within.offset.top + within.scrollTop, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        outerHeight = within.height, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        offsetTop = within.isWindow ? within.scrollTop : within.offset.top, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        collisionPosTop = position.top - data.collisionPosition.marginTop, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        overTop = collisionPosTop - offsetTop, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        top = data.my[ 1 ] === "top", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        myOffset = top ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            -data.elemHeight : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            data.my[ 1 ] === "bottom" ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                data.elemHeight : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        atOffset = data.at[ 1 ] === "top" ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            data.targetHeight : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            data.at[ 1 ] === "bottom" ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                -data.targetHeight : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        offset = -2 * data.offset[ 1 ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newOverTop, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newOverBottom; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ( overTop < 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            outerHeight - withinOffset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            position.top += myOffset + atOffset + offset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else if ( overBottom > 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            offset - offsetTop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            position.top += myOffset + atOffset + offset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            flipfit: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                left: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $.ui.position.flip.left.apply( this, arguments ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $.ui.position.fit.left.apply( this, arguments ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                top: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $.ui.position.flip.top.apply( this, arguments ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $.ui.position.fit.top.apply( this, arguments ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } )(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    var position = $.ui.position; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+})); 
			 |