* $Rev$
*/
-// Global undefined variable
-window.undefined = window.undefined;
-
/**
* Create a new jQuery Object
*
* @param jQuery|Element|Array<Element> c context
* @cat Core
*/
-var jQuery = function(a,c) {
+var jQuery = window.jQuery = function(a,c) {
// If the context is global, return a new object
if ( window == this || !this.init )
return new jQuery(a,c);
jQuery._$ = $;
// Map the jQuery namespace to the '$' one
-var $ = jQuery;
+window.$ = jQuery;
+
+var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
/**
* This function accepts a string containing a CSS or
// Make sure that a selection was provided
a = a || document;
- // HANDLE: $(function)
- // Shortcut for document ready
- if ( jQuery.isFunction(a) )
- return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a );
-
// Handle HTML strings
if ( typeof a == "string" ) {
- // HANDLE: $(html) -> $(array)
- var m = /^[^<]*(<(.|\s)+>)[^>]*$/.exec(a);
- if ( m )
- a = jQuery.clean( [ m[1] ] );
+ var m = quickExpr.exec(a);
+ if ( m && (m[1] || !c) ) {
+ // HANDLE: $(html) -> $(array)
+ if ( m[1] )
+ a = jQuery.clean( [ m[1] ] );
+
+ // HANDLE: $("#id")
+ else {
+ var tmp = document.getElementById( m[3] );
+ if ( tmp )
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( tmp.id != m[3] )
+ return jQuery().find( a );
+ else {
+ this[0] = tmp;
+ this.length = 1;
+ return this;
+ }
+ else
+ a = [];
+ }
// HANDLE: $(expr)
- else
+ } else
return new jQuery( c ).find( a );
- }
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction(a) )
+ return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a );
return this.setArray(
// HANDLE: $(array)
*/
setArray: function( a ) {
this.length = 0;
- [].push.apply( this, a );
+ Array.prototype.push.apply( this, a );
return this;
},
*/
jQuery.extend = jQuery.fn.extend = function() {
// copy reference to target object
- var target = arguments[0] || {}, a = 1, al = arguments.length;
+ var target = arguments[0] || {}, a = 1, al = arguments.length, deep = false;
+
+ // Handle a deep copy situation
+ if ( target.constructor == Boolean ) {
+ deep = target;
+ target = arguments[1] || {};
+ }
// extend jQuery itself if only one argument is passed
if ( al == 1 ) {
continue;
// Recurse if we're merging object values
- if ( typeof prop[i] == 'object' && target[i] )
+ if ( deep && typeof prop[i] == 'object' && target[i] )
jQuery.extend( target[i], prop[i] );
// Don't bring in undefined values
}
if (prop.match(/float/i))
- prop = jQuery.styleFloat;
+ prop = styleFloat;
if (!force && elem.style[prop])
ret = elem.style[prop];
* @type Boolean
* @cat JavaScript
*/
-new function() {
- var b = navigator.userAgent.toLowerCase();
-
- // Figure out what browser is being used
- jQuery.browser = {
- version: (b.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
- safari: /webkit/.test(b),
- opera: /opera/.test(b),
- msie: /msie/.test(b) && !/opera/.test(b),
- mozilla: /mozilla/.test(b) && !/(compatible|webkit)/.test(b)
- };
+var userAgent = navigator.userAgent.toLowerCase();
+
+// Figure out what browser is being used
+jQuery.browser = {
+ version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
+ safari: /webkit/.test(userAgent),
+ opera: /opera/.test(userAgent),
+ msie: /msie/.test(userAgent) && !/opera/.test(userAgent),
+ mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)
+};
+var styleFloat = jQuery.browser.msie ? "styleFloat" : "cssFloat";
+
+jQuery.extend({
// Check to see if the W3C box model is being used
- jQuery.boxModel = !jQuery.browser.msie || document.compatMode == "CSS1Compat";
-
- jQuery.styleFloat = jQuery.browser.msie ? "styleFloat" : "cssFloat";
-
- jQuery.props = {
+ boxModel: !jQuery.browser.msie || document.compatMode == "CSS1Compat",
+
+ styleFloat: jQuery.browser.msie ? "styleFloat" : "cssFloat",
+
+ props: {
"for": "htmlFor",
"class": "className",
- "float": jQuery.styleFloat,
- cssFloat: jQuery.styleFloat,
- styleFloat: jQuery.styleFloat,
+ "float": styleFloat,
+ cssFloat: styleFloat,
+ styleFloat: styleFloat,
innerHTML: "innerHTML",
className: "className",
value: "value",
readonly: "readOnly",
selected: "selected",
maxlength: "maxLength"
- };
-
-};
+ }
+});
/**
* Get a set of elements containing the unique parents of the matched