*/
// Map over jQuery in case of overwrite
-if ( window.jQuery )
- var _jQuery = window.jQuery;
+var _jQuery = window.jQuery,
+// Map over the $ in case of overwrite
+ _$ = window.$;
-var jQuery = window.jQuery = function( selector, context ) {
+var jQuery = window.jQuery = window.$ = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
- return new jQuery.prototype.init( selector, context );
+ return new jQuery.fn.init( selector, context );
};
-// Map over the $ in case of overwrite
-if ( window.$ )
- var _$ = window.$;
-
-// Map the jQuery namespace to the '$' one
-window.$ = jQuery;
-
// A simple way to check for HTML strings or ID strings
// (both of which we optimize for)
-var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
+var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,
// Is it a simple selector
-var isSimple = /^.[^:#\[\.]*$/;
+ isSimple = /^.[^:#\[\.]*$/;
jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {
},
is: function( selector ) {
- return selector ?
- jQuery.multiFilter( selector, this ).length > 0 :
- false;
+ return !!selector && jQuery.multiFilter( selector, this ).length > 0;
},
hasClass: function( selector ) {
var parts = key.split(".");
parts[1] = parts[1] ? "." + parts[1] : "";
- if ( value == null ) {
+ if ( value === undefined ) {
var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
- if ( data == undefined && this.length )
+ if ( data === undefined && this.length )
data = jQuery.data( this[0], key );
- return data == null && parts[1] ?
+ return data === undefined && parts[1] ?
this.data( parts[0] ) :
data;
} else
};
// Give the init function the jQuery prototype for later instantiation
-jQuery.prototype.init.prototype = jQuery.prototype;
+jQuery.fn.init.prototype = jQuery.fn;
function evalScript( i, elem ) {
if ( elem.src )
elem.parentNode.removeChild( elem );
}
+function now(){
+ return +new Date;
+}
+
jQuery.extend = jQuery.fn.extend = function() {
// copy reference to target object
var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
target = {};
// extend jQuery itself if only one argument is passed
- if ( length == 1 ) {
+ if ( length == i ) {
target = this;
- i = 0;
+ --i;
}
for ( ; i < length; i++ )
if ( (options = arguments[ i ]) != null )
// Extend the base object
for ( var name in options ) {
+ var src = target[ name ], copy = options[ name ];
+
// Prevent never-ending loop
- if ( target === options[ name ] )
+ if ( target === copy )
continue;
// Recurse if we're merging object values
- if ( deep && options[ name ] && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
- target[ name ] = jQuery.extend( deep, target[ name ], options[ name ] );
+ if ( deep && copy && typeof copy == "object" && src && !copy.nodeType )
+ target[ name ] = jQuery.extend( deep, src, copy );
// Don't bring in undefined values
- else if ( options[ name ] != undefined )
- target[ name ] = options[ name ];
+ else if ( copy !== undefined )
+ target[ name ] = copy;
}
return target;
};
-var expando = "jQuery" + (new Date()).getTime(), uuid = 0, windowData = {};
+var expando = "jQuery" + now(), uuid = 0, windowData = {},
// exclude the following css properties to add px
-var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i;
+ exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
// cache getComputedStyle
-var getComputedStyle = document.defaultView && document.defaultView.getComputedStyle;
+ getComputedStyle = document.defaultView && document.defaultView.getComputedStyle;
jQuery.extend({
noConflict: function( deep ) {
jQuery.cache[ id ] = {};
// Prevent overriding the named cache with undefined values
- if ( data != undefined )
+ if ( data !== undefined )
jQuery.cache[ id ][ name ] = data;
// Return the named cache data, or the ID for the element
// If the element isn't reporting its values properly in Safari
// then some display: none elements are involved
else {
- var swap = [], stack = [];
+ var swap = [], stack = [], a = elem, i = 0;
// Locate all of the parent display: none elements
- for ( var a = elem; a && color(a); a = a.parentNode )
+ for ( ; a && color(a); a = a.parentNode )
stack.unshift(a);
// Go through and make them visible, but in reverse
// (It would be better if we knew the exact display type that they had)
- for ( var i = 0; i < stack.length; i++ )
+ for ( ; i < stack.length; i++ )
if ( color( stack[ i ] ) ) {
swap[ i ] = stack[ i ].style.display;
stack[ i ].style.display = "block";
( computedStyle && computedStyle.getPropertyValue( name ) ) || "";
// Finally, revert the display styles back
- for ( var i = 0; i < swap.length; i++ )
+ for ( i = 0; i < swap.length; i++ )
if ( swap[ i ] != null )
stack[ i ].style.display = swap[ i ];
}
return;
if ( elem.constructor == Number )
- elem = elem.toString();
+ elem += '';
// Convert html string into DOM nodes
if ( typeof elem == "string" ) {