Updating to jquery version 2.0.3.
[live-systems.org.git] / stuff / jquery / jquery.js
index 280083f..ebc6c18 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery JavaScript Library v2.0.2
+ * jQuery JavaScript Library v2.0.3
  * http://jquery.com/
  *
  * Includes Sizzle.js
@@ -9,7 +9,7 @@
  * Released under the MIT license
  * http://jquery.org/license
  *
- * Date: 2013-05-30T21:25Z
+ * Date: 2013-07-03T13:30Z
  */
 (function( window, undefined ) {
 
@@ -46,7 +46,7 @@ var
        // List of deleted data cache ids, so we can reuse them
        core_deletedIds = [],
 
-       core_version = "2.0.2",
+       core_version = "2.0.3",
 
        // Save a reference to some core methods
        core_concat = core_deletedIds.concat,
@@ -872,7 +872,7 @@ rootjQuery = jQuery(document);
  * Released under the MIT license
  * http://jquery.org/license
  *
- * Date: 2013-05-27
+ * Date: 2013-06-03
  */
 (function( window, undefined ) {
 
@@ -905,7 +905,13 @@ var i,
        tokenCache = createCache(),
        compilerCache = createCache(),
        hasDuplicate = false,
-       sortOrder = function() { return 0; },
+       sortOrder = function( a, b ) {
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+               }
+               return 0;
+       },
 
        // General-purpose constants
        strundefined = typeof undefined,
@@ -1149,14 +1155,6 @@ function Sizzle( selector, context, results, seed ) {
 }
 
 /**
- * For feature detection
- * @param {Function} fn The function to test for native support
- */
-function isNative( fn ) {
-       return rnative.test( fn + "" );
-}
-
-/**
  * Create key-value caches of limited size
  * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
  *     property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
@@ -1209,58 +1207,14 @@ function assert( fn ) {
 /**
  * Adds the same handler for all of the specified attrs
  * @param {String} attrs Pipe-separated list of attributes
- * @param {Function} handler The method that will be applied if the test fails
- * @param {Boolean} test The result of a test. If true, null will be set as the handler in leiu of the specified handler
+ * @param {Function} handler The method that will be applied
  */
-function addHandle( attrs, handler, test ) {
-       attrs = attrs.split("|");
-       var current,
-               i = attrs.length,
-               setHandle = test ? null : handler;
+function addHandle( attrs, handler ) {
+       var arr = attrs.split("|"),
+               i = attrs.length;
 
        while ( i-- ) {
-               // Don't override a user's handler
-               if ( !(current = Expr.attrHandle[ attrs[i] ]) || current === handler ) {
-                       Expr.attrHandle[ attrs[i] ] = setHandle;
-               }
-       }
-}
-
-/**
- * Fetches boolean attributes by node
- * @param {Element} elem
- * @param {String} name
- */
-function boolHandler( elem, name ) {
-       // XML does not need to be checked as this will not be assigned for XML documents
-       var val = elem.getAttributeNode( name );
-       return val && val.specified ?
-               val.value :
-               elem[ name ] === true ? name.toLowerCase() : null;
-}
-
-/**
- * Fetches attributes without interpolation
- * http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
- * @param {Element} elem
- * @param {String} name
- */
-function interpolationHandler( elem, name ) {
-       // XML does not need to be checked as this will not be assigned for XML documents
-       return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
-}
-
-/**
- * Uses defaultValue to retrieve value in IE6/7
- * @param {Element} elem
- * @param {String} name
- */
-function valueHandler( elem ) {
-       // Ignore the value *property* on inputs by using defaultValue
-       // Fallback to Sizzle.attr by returning undefined where appropriate
-       // XML does not need to be checked as this will not be assigned for XML documents
-       if ( elem.nodeName.toLowerCase() === "input" ) {
-               return elem.defaultValue;
+               Expr.attrHandle[ arr[i] ] = handler;
        }
 }
 
@@ -1268,7 +1222,7 @@ function valueHandler( elem ) {
  * Checks document order of two siblings
  * @param {Element} a
  * @param {Element} b
- * @returns Returns -1 if a precedes b, 1 if a follows b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
  */
 function siblingCheck( a, b ) {
        var cur = b && a,
@@ -1358,7 +1312,7 @@ support = Sizzle.support = {};
  */
 setDocument = Sizzle.setDocument = function( node ) {
        var doc = node ? node.ownerDocument || node : preferredDoc,
-               parent = doc.parentWindow;
+               parent = doc.defaultView;
 
        // If no document and documentElement is available, return
        if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
@@ -1375,7 +1329,8 @@ setDocument = Sizzle.setDocument = function( node ) {
        // Support: IE>8
        // If iframe document is assigned to "document" variable and if iframe has been reloaded,
        // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
-       if ( parent && parent.frameElement ) {
+       // IE6-8 do not support the defaultView property so parent will be undefined
+       if ( parent && parent.attachEvent && parent !== parent.top ) {
                parent.attachEvent( "onbeforeunload", function() {
                        setDocument();
                });
@@ -1387,32 +1342,10 @@ setDocument = Sizzle.setDocument = function( node ) {
        // Support: IE<8
        // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
        support.attributes = assert(function( div ) {
-
-               // Support: IE<8
-               // Prevent attribute/property "interpolation"
-               div.innerHTML = "<a href='#'></a>";
-               addHandle( "type|href|height|width", interpolationHandler, div.firstChild.getAttribute("href") === "#" );
-
-               // Support: IE<9
-               // Use getAttributeNode to fetch booleans when getAttribute lies
-               addHandle( booleans, boolHandler, div.getAttribute("disabled") == null );
-
                div.className = "i";
                return !div.getAttribute("className");
        });
 
-       // Support: IE<9
-       // Retrieving value should defer to defaultValue
-       support.input = assert(function( div ) {
-               div.innerHTML = "<input>";
-               div.firstChild.setAttribute( "value", "" );
-               return div.firstChild.getAttribute( "value" ) === "";
-       });
-
-       // IE6/7 still return empty string for value,
-       // but are actually retrieving the property
-       addHandle( "value", valueHandler, support.attributes && support.input );
-
        /* getElement(s)By*
        ---------------------------------------------------------------------- */
 
@@ -1521,7 +1454,7 @@ setDocument = Sizzle.setDocument = function( node ) {
        // See http://bugs.jquery.com/ticket/13378
        rbuggyQSA = [];
 
-       if ( (support.qsa = isNative(doc.querySelectorAll)) ) {
+       if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
                // Build QSA regex
                // Regex strategy adopted from Diego Perini
                assert(function( div ) {
@@ -1573,7 +1506,7 @@ setDocument = Sizzle.setDocument = function( node ) {
                });
        }
 
-       if ( (support.matchesSelector = isNative( (matches = docElem.webkitMatchesSelector ||
+       if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
                docElem.mozMatchesSelector ||
                docElem.oMatchesSelector ||
                docElem.msMatchesSelector) )) ) {
@@ -1599,7 +1532,7 @@ setDocument = Sizzle.setDocument = function( node ) {
        // Element contains another
        // Purposefully does not implement inclusive descendent
        // As in, an element does not contain itself
-       contains = isNative(docElem.contains) || docElem.compareDocumentPosition ?
+       contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ?
                function( a, b ) {
                        var adown = a.nodeType === 9 ? a.documentElement : a,
                                bup = b && b.parentNode;
@@ -1623,13 +1556,6 @@ setDocument = Sizzle.setDocument = function( node ) {
        /* Sorting
        ---------------------------------------------------------------------- */
 
-       // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
-       // Detached nodes confoundingly follow *each other*
-       support.sortDetached = assert(function( div1 ) {
-               // Should return 1, but returns 4 (following)
-               return div1.compareDocumentPosition( doc.createElement("div") ) & 1;
-       });
-
        // Document order sorting
        sortOrder = docElem.compareDocumentPosition ?
        function( a, b ) {
@@ -1772,9 +1698,9 @@ Sizzle.attr = function( elem, name ) {
 
        var fn = Expr.attrHandle[ name.toLowerCase() ],
                // Don't get fooled by Object.prototype properties (jQuery #13807)
-               val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+               val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
                        fn( elem, name, !documentIsHTML ) :
-                       undefined );
+                       undefined;
 
        return val === undefined ?
                support.attributes || !documentIsHTML ?
@@ -2319,6 +2245,8 @@ Expr = Sizzle.selectors = {
        }
 };
 
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
 // Add button/input type pseudos
 for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
        Expr.pseudos[ i ] = createInputPseudo( i );
@@ -2327,6 +2255,11 @@ for ( i in { submit: true, reset: true } ) {
        Expr.pseudos[ i ] = createButtonPseudo( i );
 }
 
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
 function tokenize( selector, parseOnly ) {
        var matched, match, tokens, type,
                soFar, groups, preFilters,
@@ -2838,26 +2771,67 @@ function select( selector, context, results, seed ) {
        return results;
 }
 
-// Deprecated
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
-
-// Easy API for creating new setFilters
-function setFilters() {}
-setFilters.prototype = Expr.filters = Expr.pseudos;
-Expr.setFilters = new setFilters();
-
 // One-time assignments
 
 // Sort stability
 support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
 
+// Support: Chrome<14
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = hasDuplicate;
+
 // Initialize against the default document
 setDocument();
 
-// Support: Chrome<<14
-// Always assume duplicates if they aren't passed to the comparison function
-[0, 0].sort( sortOrder );
-support.detectDuplicates = hasDuplicate;
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( div1 ) {
+       // Should return 1, but returns 4 (following)
+       return div1.compareDocumentPosition( document.createElement("div") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( div ) {
+       div.innerHTML = "<a href='#'></a>";
+       return div.firstChild.getAttribute("href") === "#" ;
+}) ) {
+       addHandle( "type|href|height|width", function( elem, name, isXML ) {
+               if ( !isXML ) {
+                       return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+               }
+       });
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( div ) {
+       div.innerHTML = "<input/>";
+       div.firstChild.setAttribute( "value", "" );
+       return div.firstChild.getAttribute( "value" ) === "";
+}) ) {
+       addHandle( "value", function( elem, name, isXML ) {
+               if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+                       return elem.defaultValue;
+               }
+       });
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( div ) {
+       return div.getAttribute("disabled") == null;
+}) ) {
+       addHandle( booleans, function( elem, name, isXML ) {
+               var val;
+               if ( !isXML ) {
+                       return (val = elem.getAttributeNode( name )) && val.specified ?
+                               val.value :
+                               elem[ name ] === true ? name.toLowerCase() : null;
+               }
+       });
+}
 
 jQuery.find = Sizzle;
 jQuery.expr = Sizzle.selectors;
@@ -3042,9 +3016,9 @@ jQuery.Callbacks = function( options ) {
                        },
                        // Call all callbacks with the given context and arguments
                        fireWith: function( context, args ) {
-                               args = args || [];
-                               args = [ context, args.slice ? args.slice() : args ];
                                if ( list && ( !fired || stack ) ) {
+                                       args = args || [];
+                                       args = [ context, args.slice ? args.slice() : args ];
                                        if ( firing ) {
                                                stack.push( args );
                                        } else {
@@ -3435,6 +3409,7 @@ Data.prototype = {
                        cache : cache[ key ];
        },
        access: function( owner, key, value ) {
+               var stored;
                // In cases where either:
                //
                //   1. No key was specified
@@ -3448,7 +3423,11 @@ Data.prototype = {
                //
                if ( key === undefined ||
                                ((key && typeof key === "string") && value === undefined) ) {
-                       return this.get( owner, key );
+
+                       stored = this.get( owner, key );
+
+                       return stored !== undefined ?
+                               stored : this.get( owner, jQuery.camelCase(key) );
                }
 
                // [*]When the key is not a string, or both a key and value
@@ -3920,8 +3899,11 @@ jQuery.fn.extend({
        },
 
        toggleClass: function( value, stateVal ) {
-               var type = typeof value,
-                       isBool = typeof stateVal === "boolean";
+               var type = typeof value;
+
+               if ( typeof stateVal === "boolean" && type === "string" ) {
+                       return stateVal ? this.addClass( value ) : this.removeClass( value );
+               }
 
                if ( jQuery.isFunction( value ) ) {
                        return this.each(function( i ) {
@@ -3935,13 +3917,15 @@ jQuery.fn.extend({
                                var className,
                                        i = 0,
                                        self = jQuery( this ),
-                                       state = stateVal,
                                        classNames = value.match( core_rnotwhite ) || [];
 
                                while ( (className = classNames[ i++ ]) ) {
                                        // check each className given, space separated list
-                                       state = isBool ? state : !self.hasClass( className );
-                                       self[ state ? "addClass" : "removeClass" ]( className );
+                                       if ( self.hasClass( className ) ) {
+                                               self.removeClass( className );
+                                       } else {
+                                               self.addClass( className );
+                                       }
                                }
 
                        // Toggle whole class name
@@ -5806,7 +5790,7 @@ jQuery.extend({
                                        // Descend through wrappers to the right content
                                        j = wrap[ 0 ];
                                        while ( j-- ) {
-                                               tmp = tmp.firstChild;
+                                               tmp = tmp.lastChild;
                                        }
 
                                        // Support: QtWebKit
@@ -6210,10 +6194,12 @@ jQuery.fn.extend({
                return showHide( this );
        },
        toggle: function( state ) {
-               var bool = typeof state === "boolean";
+               if ( typeof state === "boolean" ) {
+                       return state ? this.show() : this.hide();
+               }
 
                return this.each(function() {
-                       if ( bool ? state : isHidden( this ) ) {
+                       if ( isHidden( this ) ) {
                                jQuery( this ).show();
                        } else {
                                jQuery( this ).hide();
@@ -6244,6 +6230,7 @@ jQuery.extend({
                "fontWeight": true,
                "lineHeight": true,
                "opacity": true,
+               "order": true,
                "orphans": true,
                "widows": true,
                "zIndex": true,