*/\r
\r
// Map over jQuery in case of overwrite\r
-if ( typeof jQuery != "undefined" )\r
- var _jQuery = jQuery;\r
+if ( window.jQuery )\r
+ var _jQuery = window.jQuery;\r
\r
var jQuery = window.jQuery = function( selector, context ) {\r
// If the context is a namespace object, return a new object\r
};\r
\r
// Map over the $ in case of overwrite\r
-if ( typeof $ != "undefined" )\r
- var _$ = $;\r
+if ( window.$ )\r
+ var _$ = window.$;\r
\r
// Map the jQuery namespace to the '$' one\r
window.$ = jQuery;\r
if ( target.constructor == Boolean ) {\r
deep = target;\r
target = arguments[1] || {};\r
+ // skip the boolean and the target\r
+ i = 2;\r
}\r
\r
+ // Handle case when target is a string or something (possible in deep copy)\r
+ if ( typeof target != "object" )\r
+ target = {};\r
+\r
// extend jQuery itself if only one argument is passed\r
if ( length == 1 ) {\r
target = this;\r
// Extend the base object\r
for ( var name in options ) {\r
// Prevent never-ending loop\r
- if ( target == options[ name ] )\r
+ if ( target === options[ name ] )\r
continue;\r
\r
// Recurse if we're merging object values\r
if ( deep && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )\r
- jQuery.extend( target[ name ], options[ name ] );\r
+ target[ name ] = jQuery.extend( target[ name ], options[ name ] );\r
\r
// Don't bring in undefined values\r
else if ( options[ name ] != undefined )\r
// Otherwise, we need to flip out more values\r
} else {\r
elem = jQuery( elem.cloneNode(true) )\r
- .find(":radio").removeAttr("checked").end()\r
+ .find(":radio").removeAttr("checked").removeAttr("defaultChecked").end()\r
.css({\r
visibility: "hidden",\r
position: "absolute",\r
readonly: "readOnly",\r
selected: "selected",\r
maxlength: "maxLength",\r
- selectedIndex: "selectedIndex"\r
+ selectedIndex: "selectedIndex",\r
+ defaultValue: "defaultValue"\r
}\r
});\r
\r
jQuery.event.remove(this);\r
jQuery.removeData(this);\r
});\r
- this.parentNode.removeChild( this );\r
+ if (this.parentNode)\r
+ this.parentNode.removeChild( this );\r
}\r
},\r
\r
jQuery.browser.opera && document.body[ "client" + name ] || \r
\r
// Safari reports inner[Width/Height] just fine (Mozilla and Opera include scroll bar widths)\r
- jQuery.browser.safari && self[ "inner" + name ] ||\r
+ jQuery.browser.safari && window[ "inner" + name ] ||\r
\r
// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode\r
document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] || document.body[ "client" + name ] :\r