define(["./core", "./var/document", "./var/concat", "./var/push", "./var/deletedIds", "./core/access", "./manipulation/var/rcheckableType", "./manipulation/var/rtagName", "./manipulation/var/rscriptType", "./manipulation/var/rleadingWhitespace", "./manipulation/var/nodeNames", "./manipulation/createSafeFragment", "./manipulation/wrapMap", "./manipulation/getAll", "./manipulation/setGlobalEval", "./manipulation/buildFragment", "./manipulation/support", "./data/var/acceptData", "./core/init", "./traversing", "./selector", "./event"] , function (jQuery, document, concat, push, deletedIds, access, rcheckableType, rtagName, rscriptType, rleadingWhitespace, nodeNames, createSafeFragment, wrapMap, getAll, setGlobalEval, buildFragment, support, acceptData){ var rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, rnoInnerhtml = /\s*$/g, safeFragment = createSafeFragment(document), fragmentDiv = _AN_Call_appendchild("appendChild", safeFragment, _AN_Call_createelement("createElement", document, "div")); function manipulationTarget(elem, content){ if (jQuery.nodeName(elem, "table") && jQuery.nodeName(content.nodeType !== 11? content: content.firstChild, "tr")) { return _AN_Call_getelementsbytagname("getElementsByTagName", elem, "tbody")[0] || elem; } return elem; } function disableScript(elem){ elem.type = (jQuery.find.attr(elem, "type") !== null ) + "/" + elem.type; return elem; } function restoreScript(elem){ var match = rscriptTypeMasked.exec(elem.type); if (match) { elem.type = match[1]; } else { elem.removeAttribute("type"); } return elem; } function cloneCopyEvent(src, dest){ if (dest.nodeType !== 1 || !jQuery.hasData(src)) { return ; } var type, i, l, oldData = jQuery._data(src), curData = jQuery._data(dest, oldData), events = oldData.events; if (events) { delete curData.handle; curData.events = { } ; for (type in events){ for (i = 0, l = _AN_Read_length("length", events[type]); i < l; i++ ){ jQuery.event.add(dest, type, events[type][i]); } } } if (curData.data) { curData.data = jQuery.extend({ } , curData.data); } } function fixCloneNodeIssues(src, dest){ var nodeName, e, data; if (dest.nodeType !== 1) { return ; } nodeName = dest.nodeName.toLowerCase(); if (!support.noCloneEvent && dest[jQuery.expando]) { data = jQuery._data(dest); for (e in data.events){ jQuery.removeEvent(dest, e, data.handle); } dest.removeAttribute(jQuery.expando); } if (nodeName === "script" && dest.text !== src.text) { _AN_Write_text("text", disableScript(dest), false , src.text); restoreScript(dest); } else if (nodeName === "input" && rcheckableType.test(src.type)) { dest.checked = src.checked; } else if (nodeName === "option") { dest.defaultSelected = dest.selected = src.defaultSelected; } else if (nodeName === "input" || nodeName === "textarea") { dest.defaultValue = src.defaultValue; } } function domManip(collection, args, callback, ignored){ args = concat.apply([] , args); var first, node, hasScripts, scripts, doc, fragment, i = 0, l = _AN_Read_length("length", collection), iNoClone = l - 1, value = args[0], isFunction = jQuery.isFunction(value); if (isFunction || (l > 1 && typeof value === "string" && !support.checkClone && rchecked.test(value))) { return collection.each(function (index){ var self = collection.eq(index); if (isFunction) { args[0] = value.call(this, index, self.html()); } domManip(self, args, callback, ignored); } ); } if (l) { fragment = buildFragment(args, collection[0].ownerDocument, false , collection, ignored); first = fragment.firstChild; if (_AN_Read_length("length", fragment.childNodes) === 1) { fragment = first; } if (first || ignored) { scripts = jQuery.map(getAll(fragment, "script"), disableScript); hasScripts = _AN_Read_length("length", scripts); for (; i < l; i++ ){ node = fragment; if (i !== iNoClone) { node = jQuery.clone(node, true , true ); if (hasScripts) { jQuery.merge(scripts, getAll(node, "script")); } } callback.call(collection[i], node, i); } if (hasScripts) { doc = scripts[_AN_Read_length("length", scripts) - 1].ownerDocument; jQuery.map(scripts, restoreScript); for (i = 0; i < hasScripts; i++ ){ node = scripts[i]; if (rscriptType.test(node.type || "") && !jQuery._data(node, "globalEval") && jQuery.contains(doc, node)) { if (node.src) { if (jQuery._evalUrl) { jQuery._evalUrl(_AN_Read_src("src", node)); } } else { jQuery.globalEval(_AN_Call_replace("replace", (node.text || node.textContent || node.innerHTML || ""), rcleanScript, "")); } } } } fragment = first = null ; } } return collection; } function remove(elem, selector, keepData){ var node, elems = selector? jQuery.filter(selector, elem): elem, i = 0; for (; (node = elems[i]) != null ; i++ ){ if (!keepData && node.nodeType === 1) { jQuery.cleanData(getAll(node)); } if (node.parentNode) { if (keepData && jQuery.contains(node.ownerDocument, node)) { setGlobalEval(getAll(node, "script")); } node.parentNode.removeChild(node); } } return elem; } jQuery.extend({ htmlPrefilter: function (html){ return _AN_Call_replace("replace", html, rxhtmlTag, "<$1>"); } , clone: function (elem, dataAndEvents, deepDataAndEvents){ var destElements, node, clone, i, srcElements, inPage = jQuery.contains(elem.ownerDocument, elem); if (support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test("<" + elem.nodeName + ">")) { clone = elem.cloneNode(true ); } else { _AN_Write_innerhtml("innerHTML", fragmentDiv, false , elem.outerHTML); fragmentDiv.removeChild(clone = fragmentDiv.firstChild); } if ((!support.noCloneEvent || !support.noCloneChecked) && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) { destElements = getAll(clone); srcElements = getAll(elem); for (i = 0; (node = srcElements[i]) != null ; ++i){ if (destElements[i]) { fixCloneNodeIssues(node, destElements[i]); } } } if (dataAndEvents) { if (deepDataAndEvents) { srcElements = srcElements || getAll(elem); destElements = destElements || getAll(clone); for (i = 0; (node = srcElements[i]) != null ; i++ ){ cloneCopyEvent(node, destElements[i]); } } else { cloneCopyEvent(elem, clone); } } destElements = getAll(clone, "script"); if (_AN_Read_length("length", destElements) > 0) { setGlobalEval(destElements, !inPage && getAll(elem, "script")); } destElements = srcElements = node = null ; return clone; } , cleanData: function (elems, forceAcceptData){ var elem, type, id, data, i = 0, internalKey = jQuery.expando, cache = jQuery.cache, attributes = support.attributes, special = jQuery.event.special; for (; (elem = elems[i]) != null ; i++ ){ if (forceAcceptData || acceptData(elem)) { id = elem[internalKey]; data = id && cache[id]; if (data) { if (data.events) { for (type in data.events){ if (special[type]) { jQuery.event.remove(elem, type); } else { jQuery.removeEvent(elem, type, data.handle); } } } if (cache[id]) { delete cache[id]; if (!attributes && typeof elem.removeAttribute !== "undefined") { elem.removeAttribute(internalKey); } else { elem[internalKey] = undefined; } deletedIds.push(id); } } } } } } ); jQuery.fn.extend({ detach: function (selector){ return remove(this, selector, true ); } , remove: function (selector){ return remove(this, selector); } , text: function (value){ return access(this, function (value){ return value === undefined? jQuery.text(this): this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(value)); } , null , value, _AN_Read_length("length", arguments)); } , append: function (){ return domManip(this, arguments, function (elem){ if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { var target = manipulationTarget(this, elem); _AN_Call_appendchild("appendChild", target, elem); } } ); } , prepend: function (){ return domManip(this, arguments, function (elem){ if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { var target = manipulationTarget(this, elem); target.insertBefore(elem, target.firstChild); } } ); } , before: function (){ return domManip(this, arguments, function (elem){ if (this.parentNode) { this.parentNode.insertBefore(elem, this); } } ); } , after: function (){ return domManip(this, arguments, function (elem){ if (this.parentNode) { this.parentNode.insertBefore(elem, this.nextSibling); } } ); } , empty: function (){ var elem, i = 0; for (; (elem = this[i]) != null ; i++ ){ if (elem.nodeType === 1) { jQuery.cleanData(getAll(elem, false )); } while (elem.firstChild){ elem.removeChild(elem.firstChild); } if (elem.options && jQuery.nodeName(elem, "select")) { elem.options.length = 0; } } return this; } , clone: function (dataAndEvents, deepDataAndEvents){ dataAndEvents = dataAndEvents == null ? false : dataAndEvents; deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents: deepDataAndEvents; return this.map(function (){ return jQuery.clone(this, dataAndEvents, deepDataAndEvents); } ); } , html: function (value){ return access(this, function (value){ var elem = this[0] || { } , i = 0, l = _AN_Read_length("length", this); if (value === undefined) { return elem.nodeType === 1? _AN_Call_replace("replace", elem.innerHTML, rinlinejQuery, ""): undefined; } if (typeof value === "string" && !rnoInnerhtml.test(value) && (support.htmlSerialize || !rnoshimcache.test(value)) && (support.leadingWhitespace || !rleadingWhitespace.test(value)) && !wrapMap[(rtagName.exec(value) || ["", ""] )[1].toLowerCase()]) { value = jQuery.htmlPrefilter(value); try { for (; i < l; i++ ){ elem = this[i] || { } ; if (elem.nodeType === 1) { jQuery.cleanData(getAll(elem, false )); _AN_Write_innerhtml("innerHTML", elem, false , value); } } elem = 0; } catch (e) { } } if (elem) { this.empty().append(value); } } , null , value, _AN_Read_length("length", arguments)); } , replaceWith: function (){ var ignored = [] ; return domManip(this, arguments, function (elem){ var parent = this.parentNode; if (jQuery.inArray(this, ignored) < 0) { jQuery.cleanData(getAll(this)); if (parent) { parent.replaceChild(elem, this); } } } , ignored); } } ); jQuery.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith"} , function (name, original){ jQuery.fn[name] = function (selector){ var elems, i = 0, ret = [] , insert = jQuery(selector), last = _AN_Read_length("length", insert) - 1; for (; i <= last; i++ ){ elems = i === last? this: this.clone(true ); jQuery(insert[i])[original](elems); push.apply(ret, elems.get()); } return this.pushStack(ret); } ; } ); return jQuery; } );