r3145 committed - labs: fixed mime-types, removed duplicate selectable, first version of...

r3145 committed - labs: fixed mime-types, removed duplicate selectable, first version of...

Revision: 3145
Author: paul.bakaus
Date: Thu Aug 27 00:14:20 2009
Log: labs: fixed mime-types, removed duplicate selectable, first version of
overview page
http://code.google.com/p/jquery-ui/source/detail?r=3145
Added:
/branches/labs/assets
/branches/labs/assets/jquery-1.3.2.js
/branches/labs/assets/screenshots
/branches/labs/assets/screenshots/button.jpg
/branches/labs/assets/screenshots/carousel.jpg
/branches/labs/assets/screenshots/coverflow.jpg
/branches/labs/assets/screenshots/daterangepicker.jpg
/branches/labs/assets/screenshots/inlineedit.jpg
/branches/labs/assets/screenshots/magnifier.jpg
/branches/labs/assets/screenshots/mask.jpg
/branches/labs/assets/screenshots/photoviewer.jpg
/branches/labs/assets/screenshots/pxem.jpg
/branches/labs/assets/screenshots/scrollable.jpg
/branches/labs/assets/screenshots/selectmenu.jpg
/branches/labs/assets/screenshots/selecttoslider.jpg
/branches/labs/assets/style.css
/branches/labs/assets/theme
/branches/labs/assets/theme/images
/branches/labs/assets/theme/images/ui-bg_flat_0_aaaaaa_40x100.png
/branches/labs/assets/theme/images/ui-bg_flat_75_ffffff_40x100.png
/branches/labs/assets/theme/images/ui-bg_glass_55_fbf9ee_1x400.png
/branches/labs/assets/theme/images/ui-bg_glass_65_ffffff_1x400.png
/branches/labs/assets/theme/images/ui-bg_glass_75_dadada_1x400.png
/branches/labs/assets/theme/images/ui-bg_glass_75_e6e6e6_1x400.png
/branches/labs/assets/theme/images/ui-bg_glass_95_fef1ec_1x400.png
/branches/labs/assets/theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png
/branches/labs/assets/theme/images/ui-icons_222222_256x240.png
/branches/labs/assets/theme/images/ui-icons_2e83ff_256x240.png
/branches/labs/assets/theme/images/ui-icons_454545_256x240.png
/branches/labs/assets/theme/images/ui-icons_888888_256x240.png
/branches/labs/assets/theme/images/ui-icons_cd0a0a_256x240.png
/branches/labs/assets/theme/ui.accordion.css
/branches/labs/assets/theme/ui.all.css
/branches/labs/assets/theme/ui.base.css
/branches/labs/assets/theme/ui.core.css
/branches/labs/assets/theme/ui.datepicker.css
/branches/labs/assets/theme/ui.dialog.css
/branches/labs/assets/theme/ui.progressbar.css
/branches/labs/assets/theme/ui.resizable.css
/branches/labs/assets/theme/ui.slider.css
/branches/labs/assets/theme/ui.tabs.css
/branches/labs/assets/theme/ui.theme.css
/branches/labs/assets/ui.core.js
/branches/labs/index.html
Deleted:
/branches/labs/selectable
Modified:
/branches/labs/button/go-home.png
/branches/labs/carousel/demo/icons/1.png
/branches/labs/carousel/demo/icons/10.png
/branches/labs/carousel/demo/icons/2.png
/branches/labs/carousel/demo/icons/3.png
/branches/labs/carousel/demo/icons/4.png
/branches/labs/carousel/demo/icons/5.png
/branches/labs/carousel/demo/icons/6.png
/branches/labs/carousel/demo/icons/7.png
/branches/labs/carousel/demo/icons/8.png
/branches/labs/carousel/demo/icons/9.png
/branches/labs/carousel/demo/images/demo-config-on-tile.gif
/branches/labs/carousel/demo/images/demo-config-on.gif
/branches/labs/carousel/demo/images/demo-spindown-closed.gif
/branches/labs/carousel/demo/images/demo-spindown-open.gif
/branches/labs/carousel/demo/images/icon-docs-info.gif
/branches/labs/carousel/external/jquery-1.3.2.js
/branches/labs/carousel/external/ui.core.js
/branches/labs/carousel/ui.carousel.js
/branches/labs/coverflow/demo/default.html
/branches/labs/coverflow/demo/icons/1.png
/branches/labs/coverflow/demo/icons/10.png
/branches/labs/coverflow/demo/icons/2.png
/branches/labs/coverflow/demo/icons/3.png
/branches/labs/coverflow/demo/icons/4.png
/branches/labs/coverflow/demo/icons/5.png
/branches/labs/coverflow/demo/icons/6.png
/branches/labs/coverflow/demo/icons/7.png
/branches/labs/coverflow/demo/icons/8.png
/branches/labs/coverflow/demo/icons/9.png
/branches/labs/coverflow/demo/images/demo-config-on-tile.gif
/branches/labs/coverflow/demo/images/demo-config-on.gif
/branches/labs/coverflow/demo/images/demo-spindown-closed.gif
/branches/labs/coverflow/demo/images/demo-spindown-open.gif
/branches/labs/coverflow/demo/images/icon-docs-info.gif
/branches/labs/coverflow/external/effects.core.js
/branches/labs/coverflow/external/jquery-1.3.2.js
/branches/labs/coverflow/external/ui.core.js
/branches/labs/coverflow/external/ui.slider.js
/branches/labs/coverflow/ui.coverflow.js
/branches/labs/inlineedit/ui.inlineEdit.js
/branches/labs/magnifier/demo/icons/1.png
/branches/labs/magnifier/demo/icons/10.png
/branches/labs/magnifier/demo/icons/2.png
/branches/labs/magnifier/demo/icons/3.png
/branches/labs/magnifier/demo/icons/4.png
/branches/labs/magnifier/demo/icons/5.png
/branches/labs/magnifier/demo/icons/6.png
/branches/labs/magnifier/demo/icons/7.png
/branches/labs/magnifier/demo/icons/8.png
/branches/labs/magnifier/demo/icons/9.png
/branches/labs/magnifier/demo/images/demo-config-on-tile.gif
/branches/labs/magnifier/demo/images/demo-config-on.gif
/branches/labs/magnifier/demo/images/demo-spindown-closed.gif
/branches/labs/magnifier/demo/images/demo-spindown-open.gif
/branches/labs/magnifier/demo/images/icon-docs-info.gif
/branches/labs/magnifier/external/jquery-1.3.2.js
/branches/labs/magnifier/external/ui.core.js
/branches/labs/magnifier/ui.magnifier.js
/branches/labs/mask/demos/datepicker/images/calendar.gif
/branches/labs/mask/demos/datepicker/other-months.html
/branches/labs/mask/demos/datepicker/show-week.html
/branches/labs/mask/demos/images/calendar.gif
/branches/labs/mask/demos/images/demo-config-on-tile.gif
/branches/labs/mask/demos/images/demo-config-on.gif
/branches/labs/mask/demos/images/demo-spindown-closed.gif
/branches/labs/mask/demos/images/demo-spindown-open.gif
/branches/labs/mask/demos/images/icon-docs-info.gif
/branches/labs/mask/demos/images/pbar-ani.gif
/branches/labs/mask/demos/position/images/earth.jpg
/branches/labs/mask/demos/position/images/flight.jpg
/branches/labs/mask/demos/position/images/rocket.jpg
/branches/labs/mask/demos/slider/tabs.html
/branches/labs/mask/external/jquery.cookie-r6165.js
/branches/labs/mask/external/testrunner-r6343.js
/branches/labs/mask/tests/jquery.simulate.js
/branches/labs/mask/tests/unit/position/position_core.js
/branches/labs/mask/tests/unit/tabs/spinner.gif
/branches/labs/mask/tests/visual/accordion/accordion_ticket_4322.html
/branches/labs/mask/tests/visual/accordion/accordion_ticket_4444.html
/branches/labs/mask/tests/visual/compound/accordion_tabs.html
/branches/labs/mask/tests/visual/compound/datepicker_dialog.html
/branches/labs/mask/tests/visual/compound/draggable_accordion.html
/branches/labs/mask/tests/visual/compound/tabs_tabs.html
/branches/labs/mask/tests/visual/datepicker/calendar.gif
/branches/labs/mask/tests/visual/sortable/sortable_ticket_4551.html
/branches/labs/mask/ui/i18n/ui.datepicker-eu.js
/branches/labs/mask/ui/i18n/ui.datepicker-fr-CH.js
/branches/labs/mask/ui/i18n/ui.datepicker-vi.js
/branches/labs/mask/ui/ui.mask.js
/branches/labs/mask/ui/ui.stackfix.js
/branches/labs/menu/spinner_bar.gif
/branches/labs/panel/ui-icon-arrowunfold-l.png
/branches/labs/panel/ui-icon-arrowunfold-r.png
/branches/labs/panel/ui.panel.css
/branches/labs/panel/ui.panel.js
/branches/labs/photoviewer/demos/datepicker/images/calendar.gif
/branches/labs/photoviewer/demos/images/calendar.gif
/branches/labs/photoviewer/demos/images/demo-config-on-tile.gif
/branches/labs/photoviewer/demos/images/demo-config-on.gif
/branches/labs/photoviewer/demos/images/demo-spindown-closed.gif
/branches/labs/photoviewer/demos/images/demo-spindown-open.gif
/branches/labs/photoviewer/demos/images/icon-docs-info.gif
/branches/labs/photoviewer/demos/images/pbar-ani.gif
/branches/labs/photoviewer/demos/photoviewer/photos/earth-thumb.jpg
/branches/labs/photoviewer/demos/photoviewer/photos/earth.jpg
/branches/labs/photoviewer/demos/photoviewer/photos/flight-thumb.jpg
/branches/labs/photoviewer/demos/photoviewer/photos/flight.jpg
/branches/labs/photoviewer/demos/photoviewer/photos/rocket-thumb.jpg
/branches/labs/photoviewer/demos/photoviewer/photos/rocket.jpg
/branches/labs/photoviewer/external/jquery.mousewheel-3.0.2.js
/branches/labs/photoviewer/tests/unit/tabs/spinner.gif
/branches/labs/photoviewer/tests/visual/datepicker/calendar.gif
/branches/labs/photoviewer/tests/visual/photoviewer/earth-thumb.jpg
/branches/labs/photoviewer/tests/visual/photoviewer/earth.jpg
/branches/labs/photoviewer/tests/visual/photoviewer/flight-thumb.jpg
/branches/labs/photoviewer/tests/visual/photoviewer/flight.jpg
/branches/labs/photoviewer/themes/base/images/ajax-loader.gif
/branches/labs/photoviewer/ui/i18n/ui.datepicker-az.js
/branches/labs/photoviewer/ui/i18n/ui.datepicker-et.js
/branches/labs/photoviewer/ui/ui.photoviewer.js

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-icons_222222_256x240.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-icons_2e83ff_256x240.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-icons_454545_256x240.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-icons_888888_256x240.png

/branches/labs/powella/coverslide/res/css/jquery-ui/smoothness/images/ui-icons_cd0a0a_256x240.png
/branches/labs/powella/coverslide/res/images/AcidFactory1.jpg
/branches/labs/powella/coverslide/res/images/Dragonball2.jpg
/branches/labs/powella/coverslide/res/images/NewYork1.jpg
/branches/labs/powella/coverslide/res/images/angels&demons1.jpg
/branches/labs/powella/coverslide/res/images/ghostsOfPastGFs1.jpg
/branches/labs/powella/coverslide/res/images/harrypotter2.jpg
/branches/labs/powella/coverslide/res/images/iceage2.jpg
/branches/labs/powella/coverslide/res/images/kambaskkhtishq.jpg
/branches/labs/powella/coverslide/res/images/mainAurMrs.Khanna1.jpg
/branches/labs/powella/coverslide/res/images/rangRasiya1.jpg
/branches/labs/powella/coverslide/res/images/whatsUrRaashee1.jpg
/branches/labs/powella/coverslide/res/images/x-men_wolverrine1.jpg
/branches/labs/powella/coverslide/res/js/jquery/jquery-1.3.2.min.js
/branches/labs/powella/coverslide/res/js/jquery/jquery.bounds.js

/branches/labs/powella/coverslide/res/js/jquery-ui/jquery-ui-1.7.1.custom.min.js
/branches/labs/powella/coverslide/res/js/jquery-ui/ui.coverslide.js
/branches/labs/pxem/arrow.gif
/branches/labs/scrollable/scrollable.js

/branches/labs/scrollable/ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-icons_222222_256x240.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-icons_2e83ff_256x240.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-icons_454545_256x240.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-icons_888888_256x240.png

/branches/labs/scrollable/ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png
/branches/labs/scrollable/ui/css/smoothness/jquery-ui-1.7.2.custom.css
/branches/labs/scrollable/ui/js/jquery-1.3.2.min.js
/branches/labs/scrollable/ui/js/jquery-ui-1.7.2.custom.min.js
/branches/labs/selectmenu/sample_icons/24-podcast-square.png
/branches/labs/selectmenu/sample_icons/24-rss-square.png
/branches/labs/selectmenu/sample_icons/24-video-square.png
/branches/labs/tabbeddialog/tests/testsuite.js

/branches/labs/tabbeddialog/themes/base/images/222222_256x240_icons_icons.png

/branches/labs/tabbeddialog/themes/base/images/2e83ff_256x240_icons_icons.png

/branches/labs/tabbeddialog/themes/base/images/454545_256x240_icons_icons.png

/branches/labs/tabbeddialog/themes/base/images/888888_256x240_icons_icons.png

/branches/labs/tabbeddialog/themes/base/images/cccccc_40x100_textures_03_highlight_soft_75.png

/branches/labs/tabbeddialog/themes/base/images/cd0a0a_256x240_icons_icons.png

/branches/labs/tabbeddialog/themes/base/images/dadada_40x100_textures_02_glass_75.png

/branches/labs/tabbeddialog/themes/base/images/e6e6e6_40x100_textures_02_glass_75.png

/branches/labs/tabbeddialog/themes/base/images/fbf9ee_40x100_textures_02_glass_55.png

/branches/labs/tabbeddialog/themes/base/images/fef1ec_40x100_textures_05_inset_soft_95.png

/branches/labs/tabbeddialog/themes/base/images/ffffff_40x100_textures_02_glass_65.png

/branches/labs/tabbeddialog/themes/base/images/ffffff_40x100_textures_02_glass_75.png
=======================================
--- /dev/null
+++ /branches/labs/assets/jquery-1.3.2.js    Thu Aug 27 00:14:20 2009
@@ -0,0 +1,4376 @@
+/*!
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){
+
+var
+    // Will speed up references to window, and allows munging its name.
+    window = this,
+    // Will speed up references to undefined, and allows munging its name.
+    undefined,
+    // Map over jQuery in case of overwrite
+    _jQuery = window.jQuery,
+    // Map over the $ in case of overwrite
+    _$ = window.$,
+
+    jQuery = window.jQuery = window.$ = function( selector, context ) {
+        // The jQuery object is actually just the init constructor 'enhanced'
+        return new jQuery.fn.init( selector, context );
+    },
+
+    // A simple way to check for HTML strings or ID strings
+    // (both of which we optimize for)
+    quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
+    // Is it a simple selector
+    isSimple = /^.[^:#\[\.,]*$/;
+
+jQuery.fn = jQuery.prototype = {
+    init: function( selector, context ) {
+        // Make sure that a selection was provided
+        selector = selector || document;
+
+        // Handle $(DOMElement)
+        if ( selector.nodeType ) {
+            this[0] = selector;
+            this.length = 1;
+            this.context = selector;
+            return this;
+        }
+        // Handle HTML strings
+        if ( typeof selector === "string" ) {
+            // Are we dealing with HTML string or an ID?
+            var match = quickExpr.exec( selector );
+
+            // Verify a match, and that no context was specified for #id
+            if ( match && (match[1] || !context) ) {
+
+                // HANDLE: $(html) -> $(array)
+                if ( match[1] )
+                    selector = jQuery.clean( [ match[1] ], context );
+
+                // HANDLE: $("#id")
+                else {
+                    var elem = document.getElementById( match[3] );
+
+                    // Handle the case where IE and Opera return items
+                    // by name instead of ID
+                    if ( elem && elem.id != match[3] )
+                        return jQuery().find( selector );
+
+                    // Otherwise, we inject the element directly into the jQuery object
+                    var ret = jQuery( elem || [] );
+                    ret.context = document;
+                    ret.selector = selector;
+                    return ret;
+                }
+
+            // HANDLE: $(expr, [context])
+            // (which is just equivalent to: $(content).find(expr)
+            } else
+                return jQuery( context ).find( selector );
+
+        // HANDLE: $(function)
+        // Shortcut for document ready
+        } else if ( jQuery.isFunction( selector ) )
+            return jQuery( document ).ready( selector );
+
+        // Make sure that old selector state is passed along
+        if ( selector.selector && selector.context ) {
+            this.selector = selector.selector;
+            this.context = selector.context;
+        }
+
+        return this.setArray(jQuery.isArray( selector ) ?
+            selector :
+            jQuery.makeArray(selector));
+    },
+
+    // Start with an empty selector
+    selector: "",
+
+    // The current version of jQuery being used
+    jquery: "1.3.2",
+
+    // The number of elements contained in the matched element set
+    size: function() {
+        return this.length;
+    },
+
+    // Get the Nth element in the matched element set OR
+    // Get the whole matched element set as a clean array
+    get: function( num ) {
+        return num === undefined ?
+
+            // Return a 'clean' array
+            Array.prototype.slice.call( this ) :
+
+            // Return just the object
+            this[ num ];
+    },
+
+    // Take an array of elements and push it onto the stack
+    // (returning the new matched element set)
+    pushStack: function( elems, name, selector ) {
+        // Build a new jQuery matched element set
+        var ret = jQuery( elems );
+
+        // Add the old object onto the stack (as a reference)
+        ret.prevObject = this;
+
+        ret.context = this.context;
+
+        if ( name === "find" )
+            ret.selector = this.selector + (this.selector ? " " : "") + selector;
+        else if ( name )
+            ret.selector = this.selector + "." + name + "(" + selector + ")";
+
+        // Return the newly-formed element set
+        return ret;
+    },
+
+    // Force the current matched set of elements to become
+    // the specified array of elements (destroying the stack in the process)
+    // You should use pushStack() in order to do this, but maintain the stack
+    setArray: function( elems ) {
+        // Resetting the length to 0, then using the native Array push
+        // is a super-fast way to populate an object with array-like properties
+        this.length = 0;
+        Array.prototype.push.apply( this, elems );
+
+        return this;
+    },
+
+    // Execute a callback for every element in the matched set.
+    // (You can seed the arguments with an array of args, but this is
+    // only used internally.)
+    each: function( callback, args ) {
+        return jQuery.each( this, callback, args );
+    },
+
+    // Determine the position of an element within
+    // the matched set of elements
+    index: function( elem ) {
+        // Locate the position of the desired element
+        return jQuery.inArray(
+            // If it receives a jQuery object, the first element is used
+            elem && elem.jquery ? elem[0] : elem
+        , this );
+    },
+
+    attr: function( name, value, type ) {
+        var options = name;
+
+        // Look for the case where we're accessing a style value
+        if ( typeof name === "string" )
+            if ( value === undefined )
+                return this[0] && jQuery[ type || "attr" ]( this[0], name );
+
+            else {
+                options = {};
+                options[ name ] = value;
+            }
+
+        // Check to see if we're setting style values
+        return this.each(function(i){
+            // Set all the styles
+            for ( name in options )
+                jQuery.attr(
+                    type ?
+                        this.style :
+                        this,
+                    name, jQuery.prop( this, options[ name ], type, i, name )
+                );
+        });
+    },
+
+    css: function( key, value ) {
+        // ignore negative width and height values
+        if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
+            value = undefined;
+        return this.attr( key, value, "curCSS" );
+    },
+
+    text: function( text ) {
+        if ( typeof text !== "object" && text != null )
+            return this.empty().append( (this[0] && this[0].ownerDocument ||
document).createTextNode( text ) );
+
+        var ret = "";
+
+        jQuery.each( text || this, function(){
+            jQuery.each( this.childNodes, function(){
+                if ( this.nodeType != 8 )
+                    ret += this.nodeType != 1 ?
+                        this.nodeValue :
+                        jQuery.fn.text( [ this ] );
+            });
+        });
+
+        return ret;
+    },
+
+    wrapAll: function( html ) {
+        if ( this[0] ) {
+            // The elements to wrap the target around
+            var wrap = jQuery( html, this[0].ownerDocument ).clone();
+
+            if ( this[0].parentNode )
+                wrap.insertBefore( this[0] );
+
+            wrap.map(function(){
+                var elem = this;
+
+                while ( elem.firstChild )
+                    elem = elem.firstChild;
+
+                return elem;
+            }).append(this);
+        }
+
+        return this;
+    },
+
+    wrapInner: function( html ) {
+        return this.each(function(){
+            jQuery( this ).contents().wrapAll( html );
+        });
+    },
+
+    wrap: function( html ) {
+        return this.each(function(){
+            jQuery( this ).wrapAll( html );
+        });
+    },
+
+    append: function() {
+        return this.domManip(arguments, true, function(elem){
+            if (this.nodeType == 1)
+                this.appendChild( elem );
+        });
+    },
+
+    prepend: function() {
+        return this.domManip(arguments, true, function(elem){
+            if (this.nodeType == 1)
+                this.insertBefore( elem, this.firstChild );
+        });
+    },
+
+    before: function() {
+        return this.domManip(arguments, false, function(elem){
+            this.parentNode.insertBefore( elem, this );
+        });
+    },
+
+    after: function() {
+        return this.domManip(arguments, false, function(elem){
+            this.parentNode.insertBefore( elem, this.nextSibling );
+        });
+    },
+
+    end: function() {
+        return this.prevObject || jQuery( [] );
+    },
+
+    // For internal use only.
+    // Behaves like an Array's method, not like a jQuery method.
+    push: [].push,
+    sort: [].sort,
+    splice: [].splice,
+
+    find: function( selector ) {
+        if ( this.length === 1 ) {
+            var ret = this.pushStack( [], "find", selector );
+            ret.length = 0;
+            jQuery.find( selector, this[0], ret );
+            return ret;
+        } else {
+            return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){
+                return jQuery.find( selector, elem );
+            })), "find", selector );
+        }
+    },
+
+    clone: function( events ) {
+        // Do the clone
+        var ret = this.map(function(){
+            if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) {
+                // IE copies events bound via attachEvent when
+                // using cloneNode. Calling detachEvent on the
+                // clone will also remove the events from the orignal
+                // In order to get around this, we use innerHTML.
+                // Unfortunately, this means some modifications to
+                // attributes in IE that are actually only stored
+                // as properties will not be copied (such as the
+                // the name attribute on an input).
+                var html = this.outerHTML;
+                if ( !html ) {
+                    var div = this.ownerDocument.createElement("div");
+                    div.appendChild( this.cloneNode(true) );
+                    html = div.innerHTML;
+                }
+
+                return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|
null)"/g, "").replace(/^\s*/, "")])[0];
+            } else
+                return this.cloneNode(true);
+        });
+
+        // Copy the events from the original to the clone
+        if ( events === true ) {
+            var orig = this.find("*").andSelf(), i = 0;
+
+       &nb