* $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) {
+
+// Map over jQuery in case of overwrite
+if ( typeof jQuery != "undefined" )
+ var _jQuery = jQuery;
+
+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);
// Map over the $ in case of overwrite
if ( typeof $ != "undefined" )
- jQuery._$ = $;
+ var _$ = $;
// 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)
this.empty().append( val );
},
+ replaceWith: function( val ) {
+ return this.after( val ).remove();
+ },
+
slice: function() {
return this.pushStack( Array.prototype.slice.apply( this, arguments ) );
},
* @type undefined
* @cat Core
*/
- noConflict: function() {
- if ( jQuery._$ )
- $ = jQuery._$;
+ noConflict: function(deep) {
+ window.$ = _$;
+ if ( deep )
+ window.jQuery = _jQuery;
return jQuery;
},
fn.call( obj[i], i, obj[i] );
else
for ( var i = 0, ol = obj.length, val = obj[0];
- i < ol && fn.call(val,i,val) !== false; val = obj[++i] );
+ i < ol && fn.call(val,i,val) !== false; val = obj[++i] ){}
}
return obj;
}
if (prop.match(/float/i))
- prop = jQuery.styleFloat;
+ prop = styleFloat;
if (!force && elem.style[prop])
ret = elem.style[prop];
// If a string is passed in for the function, make a function
// for it (a handy shortcut)
if ( typeof fn == "string" )
- fn = new Function("a","i","return " + fn);
+ fn = eval("false||function(a,i){return " + fn + "}");
var result = [];
// If a string is passed in for the function, make a function
// for it (a handy shortcut)
if ( typeof fn == "string" )
- fn = new Function("a","return " + fn);
+ fn = eval("false||function(a){return " + fn + "}");
var result = [];
* @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
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
- insertAfter: "after"
+ insertAfter: "after",
+ replaceAll: "replaceWith"
}, function(i,n){
jQuery.fn[ i ] = function(){
var a = arguments;
* @param String str The string that will be contained within the text of an element.
* @cat DOM/Traversing
*/
+// DEPRECATED
jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){
jQuery.fn[ n ] = function(num,fn) {
return this.filter( ":" + n + "(" + num + ")", fn );