Ngoc Anh(NgocAnh)
|
Hoànq | Chat Online Report Đx like cho chủ tus! _ vô TCN like 5*+1fl đc? Rảnh ib làm wen! :)K thik có thể xóa! #Hứa trả:( @Yinn Mort Tie | Chat Online Report Chào chủ tus Cho mình xin 5*+1fl nha Hứa trả khi nhận dc tb Rảnh thì ghé qua shop này nha https://lazi.vn/group/d/15845/rainbow-shop#:~: #Cre: Jemm IoV Zyy mứt cam bạc hà | Chat Online Report Like = trả Tiện 5* và fl // hứa trả // Không tt = xóa cmt # Nhật Hạ # ebe_ltka #phunhandacphaivientongthong mod thiên địa | Chat Online Report ckao cậu Giṅɢɢ đx like cho cậu gòi đấy nếu cậu đx đọc đến đây r thì cậu cs thể trả tuss https://lazi.vn/p/d/443082 (tuss đầu) tiện thể FL+5*,like hộ phần quà tặng mik sẽ trả cậu nếu thấy thông báo :3 nếu cậu ko thấy mik trả ,cậu cs thể đợi camon cậu trước @♡๖Giṅɢɢ_đanɢ_sầu♡๖ᶦᵈᵒᶫ Ngoc Anh | Chat Online Report Troi toi gio bay truoc cua nha Hiu hiu mat mat gio di qua Mua xuan da den don ngay tet Li xi dut tui chat lon xon Hoa dao no hoa mau do ruc Hoa mai um tum mau vang loe Anh nang troi trang nhu mat troi. nguyễn đăng | Chat Online Report Bản quyền (c) 2003-2015, CKSource - Frederico Knabben. Đã đăng ký Bản quyền. Để cấp phép, hãy xem LICENSE.md hoặc http://ckeditor.com/license * / (function () {if (window.CKEDITOR && window.CKEDITOR.dom) return; window.CKEDITOR || (window.CKEDITOR = function () {var a = / (^ |. * [\\\ /]) ckeditor \. js (?: \?. * |;. *)? $ / i, d = {timestamp: "F62B0000", phiên bản: "4.5.1", bản sửa đổi: "a513a92", rnd: Math.floor (900 * Toán .random ()) + 100, _: {pending: [], basePathSrcPattern: a}, trạng thái: "chưa tải", basePath: function () {var b = window.CKEDITOR_BASEPATH || ""; if (! b) for (var c = document.getElementsByTagName ("script"), d = 0; d <c.length; d ++) {var i = c [d] .src.match (a); if (i) {b = i [ 1]; break}} - 1 == b.indexOf (": /") && "//"! = B.slice (0,2) && (b = 0 === b.indexOf ("/") ? location.href.match (/^.*?:\/\/ [^ \ /] * /) [0] + b: location.href.match (/ ^ [^ \?] * \ / (?:) /) [0] + b); if (! b) throw'Không thể tự động phát hiện đường dẫn cài đặt CKEditor. Vui lòng đặt biến toàn cục "CKEDITOR_BASEPATH" trước khi tạo phiên bản trình chỉnh sửa. '; Return b} (), getUrl: function (a) {- 1 == a.indexOf (": /") && 0! == a.indexOf (" /")&(a=this.basePath+a);this.timestamp&&("/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a))&& (a + = (0 <= a.indexOf ("?")? "&": "?") + "t =" + this.timestamp); return a}, domReady: function () {function a () { thử {document.addEventListener? (document.removeEventListener ("DOMContentLoaded", a,! 1), b ()): document.attachEvent && "complete" === document.readyState && (document.detachEvent ("onreadystatechange", a), b ())} hàm catch (c) {}} b ( ) {for (var a; a = c.shift ();) a ()} var c = []; return function (b) {function d () {try {document.documentElement.doScroll ("left")} catch (g) {setTimeout (d, 1); return} a ()} c.push (b); "complete" === document.readyState && setTimeout (a, 1); if (1 == c.length) nếu (document.addEventListener) document.addEventListener ("DOMContentLoaded", a,! 1), window.addEventListener ("load", a,! 1); else if (document.attachEvent) {document.attachEvent ("onreadystatechange", a); window.attachEvent ("onload", a); b =! 1; try {b =! window.frameElement} catch (n) {} document.documentElement.doScroll && b && d ()}}} ()}, b = window.CKEDITOR_GETURL; if (b) {var c = d.getUrl; d.getUrl = function (a) {return b.call (d, a) || c.call (d, a)}} return d} ( )); CKEDITOR.event || (CKEDITOR.event = function () {}, CKEDITOR.event.implementOn = function (a) {var d = CKEDITOR.event.prototype, b; for (b in d) a [b] == null && (a [b] = d [b])}, CKEDITOR.event.prototype = function () {function a (a) {var e = d (this); return e [a] || (e [a] = new b (a))} var d = function (a) {a = a.getPrivate && a.getPrivate () || a._ || (a ._ = {}); return a.events || (a. event = {})}, b = function (a) {this.name = a; this.listaries = []}; b.prototype = {getListenerIndex: function (a) {for (var b = 0, d = this .listlist; b <d.length; b ++) if (d [b] .fn == a) return b; return-1}}; return {define: function (b, d) {var f = a.call (this, b); CKEDITOR.tools.extend (f, d, true)}, on: function (b, d, f, h, i ) {function j (a, g, B, i) {a = {name: b, sender: this, editor: a, [removed] R0lGODlhAQABAPABAP /// wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw =="}}) (); CKEDITOR.dtd = function () {var a = CKEDITOR.tools.extend, d = function (a, b) {for (var c = CKEDITOR.tools.clone (a), i = 1; i <objects.length; i ++) {var b = objects [i], d; for (d in b) delete c [d]} return c}, b = {}, c = {}, e = {address: 1, article: 1, sang một bên: 1, blockquote: 1, chi tiết: 1, div: 1, dl: 1, fieldset: 1, figure: 1, footer: 1, form: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, header: 1, hgroup: 1, hr: 1, main: 1, menu: 1, nav: 1, ol: 1, p: 1, pre: 1, section: 1, table: 1, ul: 1}, f = {command: 1, link: 1, meta: 1, noscript: 1, script: 1, style: 1}, h = {}, i = {"#": 1 }, j = {center: 1, dir: 1, noframes: 1}; a (b, {a: 1, abbr: 1, area: 1, audio: 1, b: 1, bdi: 1, bdo: 1, br: 1, button: 1, canvas: 1, cite: 1, code : 1, lệnh: 1, danh sách dữ liệu: 1, del: 1, dfn: 1, em: 1, nhúng: 1, i: 1, iframe: 1, img: 1, đầu vào: 1, in: 1, kbd: 1 , keygen: 1, label: 1, map: 1, mark: 1, meter: 1, noscript: 1, object: 1, output: 1, process: 1, q: 1, ruby: 1, s: 1, samp : 1, script: 1, select: 1, small: 1, span: 1, strong: 1, sub: 1, sup: 1, textarea: 1, time: 1, u: 1, "var": 1, video : 1, wbr: 1}, i, {từ viết tắt: 1, applet: 1, basefont: 1, big: 1, font: 1, isindex: 1, strike: 1, style: 1, tt: 1}); a (c, e, b, j); d = {a: d (b, {a: 1, button: 1}), abbr: b, address: c, area: h, article: c, sang một bên: c, audio: a ({source: 1, track: 1}, c), b: b, base: h, bdi: b, bdo: b, blockquote: c, body : c, br: h, button: d (b, {a: 1, button: 1}), canvas: b, caption: c, cite: b, code: b, col: h, colgroup: {col: 1 }, lệnh: h, datalist: a ({option: 1}, b), dd: c, del: b, chi tiết: a ({Summary: 1}, c), dfn: b, div: c, dl: {dt: 1, dd: 1}, dt: c, em: b, nhúng: h, tập trường: a ({chú thích: 1}, c), hình vẽ: c, hình: a ({hình vẽ: 1}, c ), footer: c, form: c, h1: b, h2: b, h3: b, h4: b, h5: b, h6: b, head: a ({title: 1, base: 1}, f) , tiêu đề: c, hgroup: {h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1}, hr: h, html: a ({head: 1, body: 1}, c, f), i: b, iframe: i, img: h, input: h, ins: b, kbd: b, keygen: h, label: b, chú giải: b, li: c, liên kết: h, main: c, map: c, mark: b, menu: a ({li: 1}, c), meta: h, met: d (b, {met: 1}), nav: c, noscript: a ({link: 1, meta: 1, style: 1}, b), object: a ({param: 1}, b), ol: {li: 1}, optgroup: {option: 1}, option: i, output: b, p: b, param: h, pre: b, process: d (b, {process: 1}), q: b, rp: b, rt: b, ruby: a ({ rp: 1, rt: 1}, b), s: b, samp: b, script: i, section: c, select: {optgroup: 1, option: 1}, small: b, source: h, span: b, strong: b, style: i, sub: b, Summary: b, sup: b, table: {caption: 1, colgroup: 1, thead: 1, tfoot: 1, tbody: 1, tr: 1}, tbody: {tr: 1}, td: c, textarea: i, tfoot: {tr: 1}, th: c, thead: {tr: 1}, time : d (b, {time: 1}), title: i, tr: {th: 1, td: 1}, track: h, u: b, ul: {li: 1}, "var": b, video: a ({source: 1, track: 1}, c), wbr: h, acronym: b, applet: a ({param: 1}, c), basefont: h, big: b, center: c, hộp thoại: h, dir: {li: 1}, font: b, isindex: h, noframes: c, strike: b, tt: b}; a (d, {$ block: a ({audio: 1, dd: 1, dt: 1, figcaption: 1, li: 1, video: 1}, e, j), $ blockLimit: {article: 1, sang một bên: 1, âm thanh: 1, nội dung: 1, chú thích: 1, chi tiết: 1, dir: 1, div: 1, dl: 1, fieldset: 1, figcaption: 1, figure: 1, footer: 1, form: 1, header: 1, hgroup: 1, main: 1, menu: 1, nav: 1, ol: 1, section: 1, table: 1, td: 1, th: 1, tr: 1, ul: 1, video: 1}, $ cdata: {script: 1, style: 1}, $ editable: {address: 1, article: 1, sang một bên: 1, blockquote: 1, body: 1, details: 1, div: 1, tập trường: 1, hình vẽ: 1, chân trang: 1, biểu mẫu: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, tiêu đề: 1, nhóm hgroup: 1, main: 1, nav: 1, p: 1, pre: 1, section: 1}, $ blank: {area: 1, base: 1, basefont: 1, br: 1, col: 1, command: 1, hộp thoại : 1, nhúng: 1, hr: 1, img: 1, input: 1, isindex: 1, keygen: 1, link: 1, meta: 1, param: 1, source: 1, track: 1, wbr: 1 }, $ inline: b, $ list: {dl: 1, ol: 1, ul: 1}, $ listItem: {dd: 1, dt: 1, li: 1}, $ nonBodyContent: a ({body: 1, head: 1, html: 1}, d.head), $ nonEditable: { applet: 1, audio: 1, button: 1, nhúng: 1, iframe: 1, map: 1, object: 1, option: 1, param: 1, script: 1, textarea: 1, video: 1}, $ đối tượng: {applet: 1, audio: 1, button: 1, hr: 1, iframe: 1, img: 1, input: 1, object: 1, select: 1, table: 1, textarea: 1, video: 1 }, $ removeEmpty: {abbr: 1, viết tắt: 1, b: 1, bdi: 1, bdo: 1, big: 1, cite: 1, code: 1, del: 1, dfn: 1, em: 1, phông chữ: 1, i: 1, in: 1, label: 1, kbd: 1, mark: 1, mét: 1, output: 1, q: 1, ruby: 1, s: 1, samp: 1, small: 1, nhịp: 1, đình công: 1, mạnh: 1, sub: 1, sup: 1, time: 1, tt: 1, u: 1, "var": 1}, $ tabIndex: {a: 1, area: 1, button: 1, input: 1, object: 1 , select: 1, textarea: 1}, $ tableContent: {caption: 1, col: 1, colgroup: 1, tbody: 1, td: 1, tfoot: 1, th: 1, thead: 1, tr: 1} , $ transparent: {a: 1, audio: 1, canvas: 1, del: 1, ins: 1, map: 1, noscript: 1, object: 1, video: 1}, $ middle: {caption: 1, colgroup: 1, dd: 1, dt: 1, figcaption: 1, chú thích: 1, li: 1, optgroup: 1, option: 1, rp: 1, rt: 1, Summary: 1, tbody: 1, td: 1, tfoot: 1, th: 1, thead: 1, tr: 1}}); return d} (); CKEDITOR.dom.event = function (a) {this. $ = A}; CKEDITOR.dom.event.prototype = {getKey: function () {return this. $. KeyCode || this. $. Which}, getKeystroke: function () {var a = this.getKey (); if (this. $ .ctrlKey || this. $. metaKey) a = a + CKEDITOR.CTRL; this. $. shiftKey && (a = a + CKEDITOR.SHIFT); this. $. altKey && (a = a + CKEDITOR.ALT); trả về a }, PreventDefault: function (a) {var d = this. $; d.preventDefault? d.preventDefault (): d.returnValue = false; a && this.stopPropagation ()}, stopPropagation: function () {var a = this. $; a.stopPropagation? a.stopPropagation (): a.cancelBubble = true}, getTarget: function () {var a = this. $. target || this. $. srcElement; return a? new CKEDITOR.dom.node (a): null}, getPhase: function () {return this. $. eventPhase || 2}, getPageOffset: function ( ) {var a = this.getTarget (). getDocument (). $; return {x: this. $. pageX || this. $. clientX + (a.documentElement.scrollLeft || a.body.scrollLeft), y: this. $. pageY || this. $. clientY + (a.documentElement.scrollTop || a.body.scrollTop)}}}; CKEDITOR.CTRL = 1114112; CKEDITOR.SHIFT = 2228224; CKEDITOR.ALT = 4456448; CKEDITOR. EVENT_PHASE_CAPTURING = 1; CKEDITOR.EVENT_PHASE_AT_TARGET = 2; CKEDITOR.EVENT_PHASE_BUBBLING = 3; CKEDITOR.dom.domObject = function (a) {if (a) this. $ = A}; CKEDITOR.dom.domObject.prototype = function () {var a = function (a, b) {return function (c) {typeof CKEDITOR! = "Undefined" && a.fire (b, new CKEDITOR.dom.event (c) )}}; return {getPrivate: function () {var a; if (! (a = this.getCustomData ("_"))) this.setCustomData ("_", a = {}); return a}, bật : function (d) {var b = this.getCustomData ("_ cke_nativeListaries"); if (! b) {b = {}; this.setCustomData ("_ cke_nativeListaries", b)} if (! b [d]) {b = b [d] = a (this, d); this. $. addEventListener? this. $. addEventListener (d, b, !! CKEDITOR.event.useCapture): this. $. attachmentEvent && this. $. attachmentEvent ("on" + d, b)} trả về CKEDITOR.event.prototype.on.apply (this, các đối số)}, removeListener: function (a) {CKEDITOR.event.prototype.removeListener.apply (this , đối số); if (! this.hasListists (a)) {var b = this.getCustomData ("_ cke_nativeListener"), c = b && b [a]; if (c) {this. $. removeEventListener? this. $. removeEventListener (a, c, false): this. $. detachEvent && this. $. detachEvent ("on" + a, c); delete b [a]}}}, removeAllListaries: function () {var a = this.getCustomData (" _cke_nativeListists "), b; for (b in a) {var c = a [b]; this. $. detachEvent? this. $. detachEvent ("on" + b, c): this. $. removeEventListener && this. $. removeEventListener (b, c, false); delete a [b]} CKEDITOR.event.prototype.removeAllListaries.call (this) }}} (); (function (a) {var d = {}; CKEDITOR.on ("reset", function () {d = {}}); a.equals = function (a) {try {return a && a. $ === this . $} catch (c) {return false}}; a.setCustomData = function (a, c) {var e = this.getUniqueId (); (d [e] || (d [e] = {})) [a] = c; return this}; a.getCustomData = function (a) {var c = this. $ ["data-cke-expando"]; return (c = c && d [c]) && a trong c? c [ a]: null}; a.removeCustomData = function (a) {var c = this. $ ["data-cke-expando"], c = c && d [c], e, f; if (c) {e = c [a]; f = a in c; delete c [a]} return f? e: null}; a.clearCustomData = function () {this.removeAllListaries (); var a = this. $ ["data-cke-expando"]; a && delete d [a]}; a.getUniqueId = function () {return this. $ ["data-cke-expando"] || (this. $ ["data-cke-expando"] = CKEDITOR.tools.getNextNumber ())}; CKEDITOR.event.implementOn (a)}) (CKEDITOR.dom.domObject.prototype); CKEDITOR.dom.node = function (a) {return a? New CKEDITOR.dom [a.nodeType == CKEDITOR.NODE_DOCUMENT? "Document": a.nodeType == CKEDITOR.NODE_ELEMENT? "Element": a.nodeType == CKEDITOR.NODE_TEXT? "Text": a.nodeType == CKEDITOR.NODE_COMMENT? "Comment": a.nodeType == CKEDITOR.NODE_DOCUMENT_FRAGMENT? "DocumentFragment": "domObject"] (a): this}; CKEDITOR.dom.node .prototype = new CKEDITOR.dom.domObject; CKEDITOR.NODE_ELEMENT = 1; CKEDITOR.NODE_DOCUMENT = 9; CKEDITOR.NODE_TEXT = 3; CKEDITOR.NODE_COMMENT = 8; CKEDITOR.NODE_DOCUMENT_FRAGMENT = 11; CKEDITOR.POSITION_IDENTICAL = 0; CKEDITOR.POSITION_DISCONNECTED = 1; CKEDITOR.POSITION_FOLLOWING = 2; CKEDITOR.POSITION_PRECEDING = 4; CKEDITOR.POSITION_IS_CONTAINED = 8; CKEDITOR.POSITION_CONTAINS = 16; CKEDITOR.tools.extend (CKEDITOR.dom.node.prototype, {appendTo: function (a, d) {a.append (this, d); return a}, clone: function (a, d) {function b (c ) {c ["data-cke-expando"] && (c ["data-cke-expando"] = false); if (! (c.nodeType! = CKEDITOR.NODE_ELEMENT && c.nodeType! = CKEDITOR.NODE_DOCUMENT_FRAGMENT)) { ! d && c.nodeType == CKEDITOR.NODE_ELEMENT && c.removeAttribute ("id", false); if (a) for (var c = c.childNodes, e = 0; e <c.length; e ++) b (c [e] )}} function c (b) {if (! (b.type! = CKEDITOR.NODE_ELEMENT && b.type! = CKEDITOR.NODE_DOCUMENT_FRAGMENT)) {if (b.type! = CKEDITOR.NODE_DOCUMENT_FRAGMENT) {var d = b.getName (); d [0] == ":" && b.renameNode (d.substring (1))} if (a) for (d = 0; d <b.getChildCount (); d ++) c (b.getChild (d))}} var e = this. $. cloneNode (a); b (e); e = new CKEDITOR.dom.node (e); CKEDITOR.env.ie && (CKEDITOR.env.version <9 && (this.type == CKEDITOR.NODE_ELEMENT || this.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT)) && c (e); return e}, hasPrevious: function () {return !! this. $ .prepreSibling}, hasNext: function () {return !! this. $. nextSibling}, insertAfter: function (a) {a. $. parentNode.insertBefore (this. $, a. $. nextSibling); return a}, insertBefore: function (a) {a. $. parentNode.insertBefore (this. $, a. $); return a}, insertBeforeMe: function (a) {this. $. parentNode.insertBefore (a. $, this. $); return a}, getAddress: function (a) {for (var d = [], b = this.getDocument (). $. documentElement, c = this. $; c && c! = b;) {var e = c[removed]; e && d.unshift (this.getIndex.call ({$: c}, a)); c = e} return d}, getDocument: function () {return new CKEDITOR.dom.document (this. $. OwnerDocument || this. $. ParentNode.ownerDocument)}, getIndex: function (a) {function d (a, b) {var c = b? a.nextSibling: a.previousSibling; return! c || c.nodeType! = CKEDITOR.NODE_TEXT? null: c.nodeValue? c: d (c, b)} var b = this. $, c = -1 , e; if (! this. $. parentNode || a && b.nodeType == CKEDITOR.NODE_TEXT &&! b.nodeValue &&! d (b) &&! d (b, true)) return-1; do if (! a || ! (b! = this. $ && b.nodeType == CKEDITOR.NODE_TEXT && (e ||! b.nodeValue))) {c ++; e = b.nodeType == CKEDITOR.NODE_TEXT} while (b = b.previousSibling); return c}, getNextSourceNode: function (a, d, b) {if (b &&! b.call) var c = b, b = function (a) {return! a.equals (c)}; var a =! a && this .getFirst && this.getFirst (), e; if (! a) {if (this.type == CKEDITOR.NODE_ELEMENT && b && b (this, true) === false) return null; a = this.getNext ()} for (;! a && (e = (e || this ) .getParent ());) {if (b && b (e, true) === false) return null; a = e.getNext ()} return! a || b && b (a) === false? null: d && d ! = a.type? a.getNextSourceNode (false, d, b): a}, getPreviousSourceNode: function (a, d, b) {if (b &&! b.call) var c = b, b = function (a) {return! a.equals (c)}; var a =! a && this.getLast && this.getLast (), e; if (! a) {if (this.type == CKEDITOR.NODE_ELEMENT && b && b (this, true) === false ) return null; a = this.getPrevious ()} cho (;! a && (e = (e || this) .getParent ());) {if (b && b (e, true) === false) return null; a = e.getPrevious ()} return! a || b && b (a) === false? null: d && a.type! = d? a.getPreviousSourceNode (false, d, b): a}, getPrevious: function (a) {var d = this. $, b; do b = (d = d.previousSibling) && d.nodeType! = 10 && new CKEDITOR.dom.node (d); while (b && a &&! a (b)); return b}, getNext: function (a) {var d = this. $, b; do b = (d = d.nextSibling) && new CKEDITOR.dom.node (d); while (b && a &&! a (b)); return b}, getParent: function (a) {var d = this. $. parentNode; return d && (d.nodeType == CKEDITOR.NODE_ELEMENT || a && d.nodeType == CKEDITOR.NODE_DOCUMENT_FRAGMENT)? new CKEDITOR.dom.node (d): null}, getParents: function (a) {var d = this, b = []; do b [a? "push": " unshift "] (d); while (d = d.getParent ()); return b}, getCommonAncestor: function (a) {if (a.equals (this)) trả về this; if (a.contains && a.contains (this )) return a; var d = this.contains? this: this.getParent (); do if (d.contains (a)) return d; while (d = d.getParent ()); return null}, getPosition: function (a) {var d = this. $, b = a. $; if (d.compareDocumentPosition) return d.compareDocumentPosition (b); if (d == b) trả về CKEDITOR.POSITION_IDENTICAL; if (this.type == CKEDITOR.NODE_ELEMENT && a.type == CKEDITOR.NODE_ELEMENT) {if (d.contains) {if (d.contains (b)) trả về CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECED ; if (b.contains (d)) trả về CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING} if ("sourceIndex" in d) return d.sourceIndex <0 || b.sourceIndex <0? CKEDITOR.POSITION_DISCONNECTED: d.sourceIndex .sourceIndex? CKEDITOR.POSITION_PRECEDING: CKEDITOR.POSITION_FOLLOWING} cho (var d = this.getAddress (), a = a.getAddress (), b = Math.min (d.length, a.length), c = 0; c <= b-1; c ++) if (d [c]! = a [c]) {if (c <b) return d [c] <a [c]? CKEDITOR.POSITION_PRECEDING: CKEDITOR.POSITION_FOLLOWING; break} return d.length <a.length? CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING: CKEDITOR.POSITION_IS_CONTAINED hàm , d) {var b = this. $, c, e; if (! d) b = b[removed]; if (typeof a == "function") {e = true; c = a} else {e = false ; c = function (b) {b = typeof b.nodeName == "string"? b.nodeName.toLowerCase (): ""; return typeof a == "string"? b == a: b trong a}} for (; b;) {if (c (e? new CKEDITOR.dom.node (b): b)) trả về CKEDITOR.dom.node mới (b); try {b = b. parentNode} catch (f) {b = null}} return null}, hasAscendant: function (a, d) {var b = this. $; if (! d) b = b[removed]; for (; b;) { if (b.nodeName && b.nodeName.toLowerCase () == a) return true; b = b[removed]} return false}, move: function (a, d) {a.append (this.remove (), d)} , remove: function (a) {var d = this. $, b = d[removed]; if (b) {if (a) for (; a = d.firstChild;) b.insertBefore (d.removeChild (a) , d); b.removeChild (d)} return this}, thay thế: function (a) {this.insertBefore (a); a.remove ()}, trim: function () {this.ltrim (); this.rtrim ()}, ltrim: function () {for (var a; this.getFirst && (a = this.getFirst ()); ) {if (a.type == CKEDITOR.NODE_TEXT) {var d = CKEDITOR.tools.ltrim (a.getText ()), b = a.getLength (); if (d) {if (d.length <b ) {a.split (bd.length); this. $. removeChild (this. $. firstChild)}} else {a.remove (); continue}} break}}, rtrim: function () {for (var a ; this.getLast && (a = this.getLast ());) {if (a.type == CKEDITOR.NODE_TEXT) {var d = CKEDITOR.tools.rtrim (a.getText ()), b = a.getLength ( ); if (d) {if (d.length <b) {a.split (d.length); this. $. lastChild[removed].removeChild (this. $. lastChild)}} else {a.remove (); continue}} break} if (CKEDITOR.env.needsBrFiller) (a = this. $. lastChild) && ( a.type == 1 && a.nodeName.toLowerCase () == "br") && a[removed].removeChild (a)}, isReadOnly: function (a) {var d = this; this.type! = CKEDITOR.NODE_ELEMENT && (d = this.getParent ()); if (! a && d && typeof d. $. isContentEditable! = "undefined") return! (d. $. isContentEditable || d.data ("cke-editable")); for (; d; ) {if (d.data ("cke-editable")) return false; if (d.hasAttribute ("contenteditable")) return d.getAttribute ("contenteditable") == "false"; d = d.getParent ()} return true}}); CKEDITOR.dom.window = function (a) {CKEDITOR.dom.domObject.call (this, a)}; CKEDITOR.dom.window.prototype = mới CKEDITOR.dom.domObject; CKEDITOR.tools.extend (CKEDITOR.dom.window.prototype, {focus: function () {this. $. Focus ()}, getViewPaneSize: function () {var a = this. $. Document, d = a.compatMode == "CSS1Compat"; return {width: (d? A.documentElement.clientWidth: a.body.clientWidth) || 0, height: (d? A.documentElement.clientHeight: a.body.clientHeight) || 0} }, getScrollPosition: function () {var a = this. $; if ("pageXOffset" in a) return {x: a.pageXOffset || 0, y: a.pageYOffset || 0}; a = a.document; return {x: a.documentElement.scrollLeft || a.body.scrollLeft || 0, y: a.documentElement.scrollTop || a.body.scrollTop || 0}}, getFrame: function () {var a = this. $. frameElement; return a? new CKEDITOR.dom.element.get (a): null}}); CKEDITOR.dom. document = function (a) {CKEDITOR.dom.domObject.call (this, a)}; CKEDITOR.dom.document.prototype = new CKEDITOR.dom.domObject; CKEDITOR.tools.extend (CKEDITOR.dom.document.prototype, {type: CKEDITOR.NODE_DOCUMENT, appendStyleSheet: function (a) {if (this. $. CreateStyleSheet) this. $. CreateStyleSheet (a); else {var d = new CKEDITOR.dom.element ("link"); d.setAttributes ({rel: "stylesheet", type: "text / css", href: a}); this.getHead (). append (d)}}, appendStyleText: function (a) {if (this. $. createStyleSheet) {var d = this. $. createStyleSheet (""); d.cssText = a} else {var b = new CKEDITOR.dom.element ("style" , this); b.append (new CKEDITOR.dom.text (a, this)); this.getHead (). append (b)} return d || b. $. sheet}, createElement: function (a, d) {var b = new CKEDITOR.dom.element (a, this); if (d) {d.attributes && b.setAttributes (d.attributes); d.styles && b .setStyles (d.styles)} return b}, createText: function (a) {return new CKEDITOR.dom.text (a, this)}, focus: function () {this.getWindow (). focus ()}, getActive: function () {var a; try {a = this. $. activeElement} catch (d) {return null} return new CKEDITOR.dom.element (a)}, getById: function (a) {return (a = this. $. getElementById (a))? new CKEDITOR.dom.element (a): null}, getByAddress: function (a, d) {for (var b = this. $. documentElement, c = 0; b && c <a.length; c ++) {var e = a [c]; if (d) for (var f = -1, h = 0; h <b.childNodes.length ; h ++) {var i = b.childNodes [h]; if (! (d === true && i.nodeType == 3 && i.previousSibling && i.previousSibling.nodeType == 3)) {f ++; if (f == e) { b = i; break}}} else b = b.childNodes [e]} trả về b? new CKEDITOR.dom.node (b): null}, getElementsByTag: function (a, d) {! (CKEDITOR.env.ie && document .documentMode <= 8) && d && (a = d + ":" + a); trả về CKEDITOR.dom.nodeList mới (this. $. getElementsByTagName (a))}, getHead: function () {var a = this. $. getElementsByTagName ("đầu") [0]; return a = a? new CKEDITOR.dom.element (a): this.getDocumentElement (). append (new CKEDITOR.dom.element ("head"), true)}, getBody: function () {return new CKEDITOR.dom .element (this. $. body)}, getDocumentElement: function () {return new CKEDITOR.dom.element (this. $. documentElement)}, getWindow: function () {return new CKEDITOR.dom.window (this. $ .parentWindow || this. $. defaultView)}, write: function (a) {this. $. open ("text / html", "Replace"); CKEDITOR.env.ie && (a = a.replace (/ ( ?: ^ \ s * <! DOCTYPE [^>] *?>) | ^ / i, '$ & \ n <script data-cke-temp = "1"> (' + CKEDITOR.tools.fixDomain + ") (); <\ / script>")); this. $. Write (a); this. $. Close ()}, find: function (a) {return CKEDITOR.dom mới. nodeList (this. $. querySelectorAll (a))}, findOne: function (a) {return (a = this. $. querySelector (a))? new CKEDITOR.dom.element (a): null}, _ getHtml5ShivFrag: function () {var a = this.getCustomData ("html5ShivFrag"); if (! a) {a = this. $. createDocumentFragment (); CKEDITOR.tools.enableHtml5Elements (a, true); this.setCustomData ("html5ShivFrag", a)} return a}}); CKEDITOR.dom.nodeList = function (a) {this. $ = a}; CKEDITOR.dom.nodeList.prototype = {count: function () {return this. $. Length}, getItem: function (a) {if (a <0 || a> = this. $. Length) return null; return (a = this. $ [a])? new CKEDITOR.dom.node (a): null}}; CKEDITOR.dom.element = function (a, d) {typeof a == "string" && (a = ( d? d. $: document) .createElement (a)); CKEDITOR.dom.domObject.call (this, a)}; CKEDITOR.dom.element.get = function (a) {return (a = typeof a == "string"? document.getElementById (a) || document.getElementsByName (a) [0]: a) && (a. $? a: new CKEDITOR.dom.element (a))}; CKEDITOR.dom.element.prototype = new CKEDITOR.dom.node; CKEDITOR.dom.element.createFromHtml = function (a, d) {var b = new CKEDITOR.dom.element ("div", d); b.setHtml (a); return b.getFirst (). remove ()}; CKEDITOR.dom.element.setMarker = function (a, d, b, c) {var e = d.getCustomData ("list_marker_id") || d.setCustomData ("list_marker_id", CKEDITOR.tools.getNextNumber ()). GetCustomData ("list_marker_id"), f = d.getCustomData ("list_marker_names") || d.setCustomData ("list_marker_names", {}). getCustomData ("list_marker_names"); a [e] = d; f [b] = 1 ; return d.setCustomData (b, c)}; CKEDITOR.dom.element.clearAllMarkers = function (a) {for (var d in a) CKEDITOR.dom.element.clearMarkers (a, a [d], 1)} ; CKEDITOR.dom.element.clearMarkers = function (a, d, b) {var c = d.getCustomData ("list_marker_names"), e = d.getCustomData ("list_marker_id"), f; for (f in c) d. removeCustomData (f); d.removeCustomData ("list_marker_names"); if (b) {d.removeCustomData ("list_marker_id"); xóa a [e]}}; (function () {function a (a, b) {return ("" + a + "") .replace (f, "") .indexOf ("" + b + "")> - 1} function d (a) { var b = true; if (! a. $. id) {a. $. id = "cke_tmp _" + CKEDITOR.tools.getNextNumber (); b = false} return function () {b || a.removeAttribute (" id ")}} function b (a, b) {return" # "+ a. $. id +" "+ b.split (/, \ s * /). join (", # "+ a. $. id + "")} hàm c (a) {for (var b = 0, c = 0, g = h [a] .length; c <g; c ++) b = b + (parseInt (this.getComputedStyle (h [a] [c]) || 0,10) || 0); return b} var e = !! document.createElement ("span"). classList, f = / [\ n \ t \ r] / g; CKEDITOR. tools.extend (CKEDITOR.dom.element.prototype, {type: CKEDITOR.NODE_ELEMENT, addClass: e? function (a) {this. $. classList.add (a); return this}: function (b) {var c = this. $. className; c && (a (c , b) || (c = c + ("" + b))); this. $. className = c || b; return this}, removeClass: e? function (a) {var b = this. $; b .classList.remove (a); b.className || b.removeAttribute ("class"); return this}: function (b) {var c = this.getAttribute ("class"); if (c && a (c, b )) (c = c.replace (RegExp ("(?: ^ | \\ s +)" + b + "(? = \\ s | $)"), ""). thay thế (/ ^ \ s + /, " "))? this.setAttribute (" class ", c): this.removeAttribute (" class "); return this}, hasClass: function (b) {return a (this. $. className, b)}, append: function (a, b) {typeof a == "string" && (a = this.getDocument (). createElement (a) ); b? this. $. insertBefore (a. $, this. $. firstChild): this. $. appendChild (a. $); return a}, appendHtml: function (a) {if (this. $. childNodes .length) {var b = new CKEDITOR.dom.element ("div", this.getDocument ()); b.setHtml (a); b.moveChildren (this)} else this.setHtml (a)}, appendText: function (a) {this. $. text! = null && CKEDITOR.env.ie && CKEDITOR.env.version <9? this. $. text = this. $. text + a: this.append (new CKEDITOR.dom.text (a ))}, appendBogus: function (a) {if (a || CKEDITOR.env.needsBrFiller) {for (a = this.getLast (); a && a.type == CKEDITOR.NODE_TEXT &&! CKEDITOR.tools.rtrim (a.getText ()) ;) a = a.getPrevious (); if (! a ||! a.is ||! a.is ("br")) {a = this.getDocument (). createElement ("br"); CKEDITOR. env.gecko && a.setAttribute ("type", "_ moz"); this.append (a)}}}, breakParent: function (a, b) {var c = new CKEDITOR.dom.range (this.getDocument ()) ; c.setStartAfter (this); c.setEndAfter (a); var g = c.extractContents (false, b || false); c.insertNode (this.remove ()); g.insertAfterNode (this)}, chứa:! document.compareDocumentPosition? function (a) {var b = this. $; return a.type! = CKEDITOR.NODE_ELEMENT? b.contains (a.getParent (). $): b! = a. $ && b. chứa (a. $)}: function (a) {return !! (this. $. so sánhDocumentPosition (a. $) & 16)}, focus: function () {function a () {try {this. $. focus ( )} catch (b) {}} return function (b) {b? CKEDITOR.tools.setTimeout (a, 100, this): a.call (this)}} (), getHtml: function () {var a = this. $. innerHTML; return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,""):a},getOuterHtml: Chức năng(){if(this.$.outerHTML ) trả lại cái này. $. NgoàiHTML.replace (/ <\? [^>] *> /, ""); var a = this. $. ownerDocument.createElement ("div"); a.appendChild (this. $. cloneNode (true)); return a[removed]}, getClientRect: function () {var a = CKEDITOR .tools.extend ({}, this. $. getBoundsClientRect ());! a.width && (a.width = a.right-a.left);! a.height && (a.height = a.bottom-a. top); return a}, setHtml: CKEDITOR.env.ie && CKEDITOR.env.version <9? function (a) {try {var b = this. $; if (this.getParent ()) return b[removed] = a; var c = this.getDocument () ._ getHtml5ShivFrag (); c.appendChild (b); b[removed] = a; c.removeChild (b); return a} catch (g) {this. $. innerHTML = ""; b = new CKEDITOR.dom.element ("body", this.getDocument ()); b. $. innerHTML = a; for (b = b.getChildren (); b.count ();) cái này. append (b.getItem (0)); return a}}: function (a) {return this. $. innerHTML = a}, setText: function () {var a = document.createElement ("p"); a. innerHTML = "x"; a = a.textContent; return function (b) {this. $ [a? "textContent": "innerText"] = b}} (), getAttribute: function () {var a = function ( a) {return this. $. getAttribute (a, 2)}; return CKEDITOR.env.ie && (CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks)? function (a) {switch (a) {case "class ": a = "className"; break; case "http-equiv": a = "httpEquiv"; break; case "name": trả về cái này. $. name; case "tabindex": a = this. $. getAttribute (a, 2) ; a! == 0 && this. $. tabIndex === 0 && (a = null); return a; case "đã kiểm tra": a = this. $. properties.getNamedItem (a); return (a.specified? a.nodeValue : this. $. đã kiểm tra)? "check": null; case "hspace": case "value": trả về cái này. $ [a]; case "style": trả lại cái này. $. style.cssText; case "contenteditable" : case "contentEditable": trả về cái này. $. thuộc tính.getNamedItem ("contentEditable"). được chỉ định? this. $. getAttribute ("contentEditable"): null} trả về cái này. $. getAttribute (a, 2)}: a} (), getChildren: function () {return new CKEDITOR.dom.nodeList (this. $. childNodes)}, getComputedStyle: document.defaultView && document.defaultView. getComputedStyle? function (a) {var b = this.getWindow (). $. getComputedStyle (this. $, null); return b? b.getPropertyValue (a): ""}: function (a) {return this. $ .currentStyle [CKEDITOR.tools.cssStyleToDomStyle (a)]}, getDtd: function () {var a = CKEDITOR.dtd [this.getName ()]; this.getDtd = function () {return a}; return a}, getElementsByTag: CKEDITOR.dom.document.prototype.getElementsByTag, getTabIndex: function () {var a = this. $. tabIndex; return a === 0 &&! CKEDITOR.dtd. $ tabIndex [this.getName ()] && parseInt (this.getAttribute ("tabindex"), 10)! = = 0? -1: a}, getText: function () {return this. $. TextContent || this. $. InnerText || ""}, getWindow: function () {return this.getDocument (). GetWindow () }, getId: function () {return this. $. id || null}, getNameAtt: function () {return this. $. name || null}, getName: function () {var a = this. $. nodeName .toLowerCase (); if (CKEDITOR.env.ie && document.documentMode <= 8) {var b = this. $. scopeName; b! = "HTML" && (a = b.toLowerCase () + ":" + a)} this.getName = function () {return a}; return this.getName ()}, getValue: function () {return this. $. value}, getFirst: function (a) {var b = this. $. firstChild; (b = b && new CKEDITOR.dom.node (b)) && (a &&! a (b)) && (b = b.getNext (a)); return b}, getLast: function (a) {var b = this. $. lastChild; (b = b && new CKEDITOR.dom.node (b)) && (a &&! a (b)) && (b = b.getPrevious ( a)); return b}, getStyle: function (a) {return this. $. style [CKEDITOR.tools.cssStyleToDomStyle (a)]}, is: function () {var a = this.getName (); if ( typeof đối số [0] == "object") return !! đối số [0] [a]; for (var b = 0; b <objects.length; b ++) if (objects [b] == a) return true; return false}, isEditable: function (a) {var b = this.getName (); if ( this.isReadOnly () || this.getComputedStyle ("display") == "none" || this.getComputedStyle ("khả năng hiển thị") == "hidden" || CKEDITOR.dtd. $ nonEditable [b] || CKEDITOR. dtd. $ blank [b] || this.is ("a") && (this.data ("cke-save-name") || this.hasAttribute ("name")) &&! this.getChildCount ()) return false; if (a! == false) {a = CKEDITOR.dtd [b] || CKEDITOR.dtd.span; return! (! a ||! a ["#"])} return true}, isIdentical: function (a) {var b = this.clone (0,1), a = a.clone (0,1); b.removeAttributes (["_ moz_dirty", "data-cke-expando", "data-cke-save-href", "data- cke-save-name "]); a.removeAttributes ([" _ moz_dirty "," data-cke-expando "," data-cke-save-href "," data-cke-save-name "]); if ( b. $. isEqualNode) {b. $. style.cssText = CKEDITOR.tools.normalizeCssText (b. $. style.cssText); a. $. style.cssText = CKEDITOR.tools.normalizeCssText (a. $. style. cssText); return b. $. isEqualNode (a. $)} b = b.getOuterHtml (); a = a.getOuterHtml (); if (CKEDITOR.env.ie && CKEDITOR.env.version <9 && this.is ("a" )) {var c = this.getParent (); if (c.type == CKEDITOR.NODE_ELEMENT) {c = c.clone (); c.setHtml (b); b = c.getHtml (); c.setHtml (a); a = c.getHtml ()}} return b == a}, isVosystem: function () {var a = (this. $. offsetHeight || this. $. offsetWidth) && this.getComputedStyle ("khả năng hiển thị")! = "hidden" , b, c; if (a && CKEDITOR.env.webkit) {b = this.getWindow (); if (! b.equals (CKEDITOR.document.getWindow ()) && (c = b. $. frameElement)) a = (new CKEDITOR.dom.element (c)). isVosystem ()} return !! a}, isEmptyInlineRemoveable: function () {if (! CKEDITOR.dtd. $ removeEmpty [this.getName ()]) return false; for (var a = this.getChildren (), b = 0, c = a.count (); b <c; b ++) {var g = a.getItem (b); if (! (g.type == CKEDITOR .NODE_ELEMENT && g.data ("cke-bookmark")) && (g.type == CKEDITOR.NODE_ELEMENT &&! G.isEmptyInlineRemoveable () || g.type == CKEDITOR.NODE_TEXT && CKEDITOR.tools.trim (g.getText ())) ) return false} return true}, hasAttributes: CKEDITOR.env.ie && (CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks)? function () {for (var a = this. $. thuộc tính, b = 0; b <a.length; b ++) {var c = a [b]; switch (c.nodeName) {case "class": if (this.getAttribute ("class")) return true; case "data-cke-expando": continue; default: if (c.specified) return true}} return false}: function () {var a = this. $. thuộc tính, b = a.length, c = {" data-cke-expando ": 1, _moz_dirty: 1}; return b> 0 && (b> 2 ||! c [a [0] .nodeName] || b == 2 &&! c [a [1] .nodeName] )}, hasAttribute: function () {function a (b) {var c = this. $. properties.getNamedItem (b); if (this.getName () == "input") switch (b) {case "class ": trả lại cái này. $. className.length> 0; trường hợp" đã kiểm tra ": trả lại !! cái này. $. đã kiểm tra; trường hợp" giá trị ": b = this.getAttribute (" loại "); trả về b ==" hộp kiểm " || b == "đài"? this. $. value! = "on": !! this. $. value} return! c? false: c.specified} return CKEDITOR.env.ie?CKEDITOR.env.version<8? Chức năng(b){return b == "name"? !! this. $. name: a.call (this, b)}: a: function (a) {return !! this. $. properties.getNamedItem (a)}} (), hide: function () {this.setStyle ("display", "none")}, moveChildren: function (a, b) {var c = this. $, a = a. $; if (c! = a) { var g; if (b) for (; g = c.lastChild;) a.insertBefore (c.removeChild (g), a.firstChild); else for (; g = c.firstChild;) a.appendChild (c. removeChild (g))}}, mergeSiblings: function () {function a (b, c, g) {if (c && c.type == CKEDITOR.NODE_ELEMENT) {for (var d = []; c.data ("cke-bookmark") || c.isEmptyInlineRemoveable ();) {d.push (c ); c = g? c.getNext (): c.getPrevious (); if (! c || c.type! = CKEDITOR.NODE_ELEMENT) return} if (b.isIdentical (c)) {for (var i = g? b.getLast (): b.getFirst (); d.length;) d.shift (). move (b,! g); c.moveChildren (b,! g); c.remove (); i && i .type == CKEDITOR.NODE_ELEMENT && i.mergeSiblings ()}}} return function (b) {if (b === false || CKEDITOR.dtd. $ removeEmpty [this.getName ()] || this.is ("a ")) {a (this, this.getNext (), true); a (this, this.getPrevious ())}}} (), show: function () {this.setStyles ({hiển thị: "", khả năng hiển thị: ""})}, setAttribute: function () {var a = function (a, b) {this. $. setAttribute (a, b) ; return this}; return CKEDITOR.env.ie && (CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks)? function (b, c) {b == "class"? this. $. className = c: b = = "style"? this. $. style.cssText = c: b == "tabindex"? this. $. tabIndex = c: b == "đã kiểm tra"? this. $. đã kiểm tra = c: b == "contenteditable "? a.call (this," contentEditable ", c): a.apply (this, các đối số); return this}: CKEDITOR.env.ie8Compat && CKEDITOR.env.secure? function (b, c) {if (b == "src" && c.match (/ ^ http: \ / \ //)) hãy thử {a.apply (this, các đối số)} catch (g) {} else a.apply (cái này, các đối số); return this}: a } (), setAttributes: function (a) {for (var b in a) this.setAttribute (b, a [b]); return this}, setValue: function (a) {this. $. value = a; return this}, removeAttribute: function () {var a = function (a) {this. $. removeAttribute (a)}; return CKEDITOR.env.ie && (CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks)? function ( a) {a == "class"? a = "className": a == "tabindex"? a = "tabIndex": a == "contenteditable" && (a = "contentEditable"); this. $. removeAttribute ( Một)}: a} (), removeAttributes: function (a) {if (CKEDITOR.tools.isArray (a)) for (var b = 0; b <a.length; b ++) this.removeAttribute (a [b]); else for (b in a) a.hasOwnProperty (b) && this.removeAttribute (b)}, removeStyle: function (a) {var b = this. $. style; if (! b.removeProperty && (a == "border" || a == "margin" || a == "padding"))) {var c = ["top", "left", "right", "bottom"], g; a == "border" && (g = ["color", "style", "width"]); for (var b = [], d = 0; d <c.length; d ++) if (g) for (var s = 0; s <g. length; s ++) b.push ([a, c [d], g [s]]. join ("-")); else b.push ([a, c [d]]. join ("-") ); cho (a = 0; a <b.length; a ++) this.removeStyle (b [a])} else {b.removeProperty? B.removeProperty (a): b.removeAttribute (CKEDITOR.tools.cssStyleToDomStyle (a)); this. $ .style.cssText || this.removeAttribute ("style")}}, setStyle: function (a, b) {this. $. style [CKEDITOR.tools.cssStyleToDomStyle (a)] = b; return this}, setStyles: function (a) {for (var b in a) this.setStyle (b, a [b]); return this}, setOpacity: function (a) {if (CKEDITOR.env.ie && CKEDITOR.env.version <9) { a = Math.round (a * 100); this.setStyle ("filter", a> = 100? "": "progid: DXImageTransform.Microsoft.Alpha (opacity =" + a + ")")} else this.setStyle ("opacity", a)}, unselectable: function () {this.setStyles (CKEDITOR.tools.cssVendorPrefix ("user-select", "none")); if (CKEDITOR .env.ie) {this.setAttribute ("unselectable", "on"); for (var a, b = this.getElementsByTag ("*"), c = 0, g = b.count (); c <g ; c ++) {a = b.getItem (c); a.setAttribute ("unselectable", "on")}}}, getPositionedAncestor: function () {for (var a = this; a.getName ()! = " html ";) {if (a.getComputedStyle (" position ")! =" static ") return a; a = a.getParent ()} return null}, getDocumentPosition: function (a) {var b = 0, c = 0, g = this.getDocument (), d = g.getBody (), s = g. $. compatMode == "BackCompat"; if (document.documentElement.getBoundsClientRect) {var e = this. $. getBoundsClientRect (), o = g. $. documentElement, p = o.clientTop || d. $. clientTop || 0, f = o.clientLeft || d. $. clientLeft || 0, h = true; if (CKEDITOR .env.ie) {h = g.getDocumentElement (). contains (this); g = g.getBody (). chứa (this); h = s && g ||! s && h} if (h) {if (CKEDITOR.env .webkit || CKEDITOR.env.ie && CKEDITOR.env.version> = 12) {b = d. $. scrollLeft || o.scrollLeft; c = d. $. scrollTop || o.scrollTop} else {c = s? d. $: o; b = c.scrollLeft; c = c.scrollTop} b = e.left + bf; c = e.top + cp}} else {p = this; for (f = null; p &&! (p.getName ( ) == "body" || p.getName () == "html");) {b = b + (p. $. offsetLeft-p. $. scrollLeft); c = c + (p. $. offsetTop-p . $. scrollTop); if (! p.equals (this)) {b = b + (p. $. clientLeft || 0); c = c + (p. $. clientTop || 0)} for (; f &&! f.equals (p);) {b = bf. $. scrollLeft; c = cf. $. scrollTop; f = f.getParent ()} f = p; p = (e = p. $. offsetParent)? new CKEDITOR.dom.element (e): null}} if (a) {e = this.getWindow (); p = a.getWindow (); if (! E.equals (p) && e. $. FrameElement) {a = (new CKEDITOR.dom.element (e. $. frameElement)). getDocumentPosition (a); b = b + ax; c = c + ay}} if (! document.documentElement.getBainstClientRect && CKEDITOR.env.gecko &&! s) {b = b + (this. $. clientLeft? 1: 0); c = c + (this. $ .clientTop? 1: 0)} return {x: b, y: c}}, scrollIntoView: function (a) {var b = this.getParent (); if (b) {do {(b. $. clientWidth && b . $. clientWidth <b. $. scrollWidth || b. $. clientHeight && b. $. clientHeight <b. $. scrollHeight) &&! b.is ("body") && this.scrollIntoParent (b, a, 1); if (b.is ("html")) {var c = b.getWindow (); thử {var g = c. $. frameElement; g && (b = new CKEDITOR.dom.element (g))} catch (d) {}}} while (b = b.getParent ()) }}, scrollIntoParent: function (a, b, c) {var g, d, e, f; function o (b, c) {if (/body|html/.test (a.getName ())) a. getWindow (). $. scrollBy (b, c); else {a. $. scrollLeft = a. $. scrollLeft + b; a. $. scrollTop = a. $. scrollTop + c}} hàm p (a, b ) {var c = {x: 0, y: 0}; if (! a.is (x? "body": "html")) {var g = a. $. getBoundsClientRect (); cx = g.left ; cy = g.top} g = a.getWindow (); if (! g.equals (b)) {g = p (CKEDITOR.dom.element.get (g. $. frameElement), b); cx = c.x + gx; cy = c.y + gy} return c} function h (a, b) {return parseInt (a.getComputedStyle ("margin -" + b) || 0,10) || 0}! Một&& (a = this.getWindow ()); e = a.getDocument (); var x = e. $. compatMode == "BackCompat"; a instanceof CKEDITOR.dom.window && (a = x? e.getBody (): e.getDocumentElement ()); e = a.getWindow (); d = p (this, e); var u = p (a, e), C = this. $. offsetHeight; g = this. $. offsetWidth; var l = a. $. clientHeight, q = a. $. clientWidth; e = dx-h (this, "left") - ux || 0; f = dy-h (this, "top") - uy | | 0; g = d.x + g + h (this, "right") - (u.x + q) || 0; d = d.y + C + h (this, "bottom") - (u .y + l) || 0; if (f <0 || d> 0) o (0, b === true? f: b === false? d: f <0? f: d); if (c && (e <0 || g> 0)) o (e <0? e: g, 0)}, setState: function (a, b, c) {b = b || "cke"; switch (a) {case CKEDITOR.TRISTATE_ON: this.addClass (b + "_ on"); this.removeClass (b + "_ off"); this.removeClass (b + "_ bị vô hiệu hóa" ); c && this.setAttribute ("aria-press", true); c && this.removeAttribute ("aria-disable"); break; case CKEDITOR.TRISTATE_DISABLED: this.addClass (b + "_ vô hiệu hóa"); this.removeClass (b + "_ tắt "); this.removeClass (b +" _ on "); c && this.setAttribute (" aria-disable ", true); c && this.removeAttribute (" aria-press "); break; default: this.addClass (b +" _ off ") ; this.removeClass (b + "_ on"); this.removeClass (b + "_disabled"); c && this.removeAttribute ("aria-press"); c && this.removeAttribute ("aria-disable")}}, getFrameDocument: function () {var a = this. $; try {a.contentWindow.document} catch (b) {a.src = a.src} trả về một && new CKEDITOR.dom.document (a.contentWindow.document)}, copyAttributes: function (a, b) {for (var c = this. $. thuộc tính, b = b || {}, g = 0; g <c.length; g ++) {var d = c [g], e = d.nodeName.toLowerCase (), f; if (! (e in b)) nếu (e == "đã kiểm tra" && (f = this.getAttribute (e))) a.setAttribute (e, f); else if (! CKEDITOR.env.ie || this.hasAttribute (e)) {f = this .getAttribute (e); if (f === null) f = d.nodeValue; a.setAttribute (e, f)}} if (this. $. style.cssText! == "") a. $. style.cssText = this. $ .style.cssText}, renameNode: function (a) {if (this.getName ()! = a) {var b = this.getDocument (), a = new CKEDITOR.dom.element (a, b); this. copyAttributes (a); this.moveChildren (a); this.getParent (true) && this. $. parentNode.replaceChild (a. $, this. $); a. $ ["data-cke-expando"] = this. $ ["data-cke-expando"]; this. $ = a. $; delete this.getName}}, getChild: function () {function a (b, c) {var g = b.childNodes; if (c > = 0 && c <g.length) return g [c]} hàm trả về (b) {var c = this. $; if (b.slice) for (b = b.slice (); b.length> 0 && c;) c = a (c, b.shift ()); else c = a (c, b); return c? new CKEDITOR.dom.node (c): null}} (), getChildCount: function () {return this. $. childNodes.length}, disableContextMenu: function () {this.on ("contextmenu", function (a) {a.data.getTarget (). hasClass ("cke_enable_context_menu") || a.data.preventDefault ()})}, getDirection: function (a) {return a? this.getComputedStyle ("hướng") | | this.getDirection () || this.getParent () && this.getParent (). getDirection (1) || this.getDocument (). $. dir || "ltr": this.getStyle ("direction") || this.getAttribute ("dir")}, data: function (a, b) {a = "data -" + a; if (b === void 0) trả về giá trị này. getAttribute (a); b === false? this.removeAttribute (a): this.setAttribute (a, b); return null}, getEditor: function () {var a = CKEDITOR.instances, b, c; for ( b trong a) {c = a [b]; if (c.element.equals (this) && c.elementMode! = CKEDITOR.ELEMENT_MODE_APPENDTO) return c} return null}, tìm: function (a) {var c = d ( this), a = new CKEDITOR.dom.nodeList (this. $. querySelectorAll (b (this, a))); c (); return a}, findOne: function (a) {var c = d (this), a = this. $. querySelector (b (this, a)); c (); return a? new CKEDITOR.dom.element (a): null}, forEach: function (a, b, c) {if (! c && (! b || this.type == b)) var g = a (this); if (g! == false) for (var c = this.getChildren (), d = 0; d <c.count (); d ++) {g = c.getItem (d); g.type == CKEDITOR.NODE_ELEMENT? g.forEach (a, b) :(! b || g.type == b) && a (g)} }}); var h = {width: ["border-left-width", "border-right-width", "padding-left", "padding-right"], height: ["border-top-width" , "border-bottom-width", "padding-top", "padding-bottom"]}; CKEDITOR.dom.element.prototype.setSize = function (a, b, d) {if (typeof b == "number") {if (d && (! CKEDITOR.env.ie ||! CKEDITOR.env.quirks)) b = bc.call (this, a) ; this.setStyle (a, b + "px")}}; CKEDITOR.dom.element.prototype.getSize = function (a, b) {var d = Math.max (this. $ ["offset" + CKEDITOR.tools .capitalize (a)], this. $ ["client" + CKEDITOR.tools.capitalize (a)]) || 0; b && (d = dc.call (this, a)); return d}}) () ; CKEDITOR.dom.documentFragment = function (a) {a = a || CKEDITOR.document; this. $ = A.type == CKEDITOR.NODE_DOCUMENT? A. $. CreateDocumentFragment (): a}; CKEDITOR.tools.extend (CKEDITOR.dom.documentFragment.prototype, CKEDITOR.dom.element.prototype, {type: CKEDITOR.NODE_DOCUMENT_FRAGMENT, insertAfterNode: function (a) {a = a. $; A[removed].insertBefore (this. $, a.nextSibling)}, getHtml: function () {var a = new CKEDITOR.dom.element ("div"); this.clone (1,1) .appendTo (a); return a.getHtml (). Replace (/ \ s * data-cke-expando = ". *?" / g, "")}},! 0, {append: 1, appendBogus: 1, clone: 1, getFirst: 1, getHtml: 1, getLast: 1, getParent: 1, getNext: 1, getPrevious: 1, appendTo: 1, moveChildren: 1, insertBefore: 1, insertAfterNode: 1, Replace: 1, trim: 1, type: 1, ltrim: 1, rtrim: 1, getDocument: 1, getChildCount: 1, getChild: 1, getChildren: 1}); (function () {function a (a, b) {var c = this.range; if (this ._. end) return null; if (! this ._. start) {this ._. start = 1; if (c.collapsed) {this.end (); return null} c.optimize ()} var g, d = c.startContainer; g = c.endContainer; var e = c.startOffset, f = c.endOffset, h , i = this.guard, l = this.type, q = a? "getPreviousSourceNode": "getNextSourceNode"; if (! a &&! this ._. guardLTR) {var k = g.type == CKEDITOR.NODE_ELEMENT? g : g.getParent (), m = g.type == CKEDITOR.NODE_ELEMENT? g.getChild (f): g.getNext (); this ._. guardLTR = function (a, b) {return (! b || ! k.equals (a)) && (! m || ! a.equals (m)) && (a.type! = CKEDITOR.NODE_ELEMENT ||! b ||! a.equals (c.root))}} if (a &&! this ._. guardRTL) {var F = d.type == CKEDITOR.NODE_ELEMENT? d: d.getParent (), w = d.type == CKEDITOR.NODE_ELEMENT? e? d.getChild (e-1): null: d.getPrevious (); this._ .guardRTL = function (a, b) {return (! b ||! F.equals (a)) && (! w ||! a.equals (w)) && (a.type! = CKEDITOR.NODE_ELEMENT || ! b ||! a.equals (c.root))}} var H = a? this ._. guardRTL: this ._. guardLTR; h = i? function (a, b) {return H (a, b ) === false? false: i (a, b)}: H; if (this.current) g = this.current [q] (false, l, h); else {if (a) g.type = = CKEDITOR.NODE_ELEMENT && (g = f> 0? G.getChild (f-1): h (g, true) === false? Null: g.getPreviousSourceNode (true, l, h)); else {g = d; if (g.type == CKEDITOR.NODE_ELEMENT &&! (g = g.getChild (e))) g = h (d, true) === false? null: d.getNextSourceNode (true, l, h)} g && h ( g) === false && (g = null)} for (; g &&! this ._. end;) {this.current = g; if (! this.evaluator || this.evaluator (g)! == false) {if (! b) return g} else if (b && this.evaluator) return false; g = g [q] (false, l, h)} this.end (); return this.current = null} hàm d (b ) {for (var c, g = null; c = a.call (this, b);) g = c; return g} CKEDITOR.dom.walker = CKEDITOR.tools.createClass ({$: function (a) {this.range = a; this ._ = {}}, proto: {end: function () {this ._. End = 1 }, next: function () {return a.call (this)}, trước: function () {return a.call (this, 1)}, checkForward: function () {return a.call (this, 0,1 )! == false}, checkBackward: function () {return a.call (this, 1,1)! == false}, lastForward: function () {return d.call (this)}, lastBackward: function () {return d.call (this, 1)}, reset: function () {delete this.current; this ._ = {}}}}); var b = {block: 1, "list-item": 1, table: 1, "table-row-group": 1, "table-header-group": 1, "table-footer-group": 1, "table-row": 1, "table-column-group": 1, "table-column": 1, "table-cell ": 1," table-caption ": 1}, c = {tuyệt đối: 1, fixed: 1}; CKEDITOR.dom.element.prototype.isBlockBoundary = function (a) {return this.getComputedStyle (" float ") = = "none" &&! (this.getComputedStyle ("position") in c) && b [this.getComputedStyle ("display")]? true: !! (this.is (CKEDITOR.dtd. $ block) || a && this. is (a))}; CKEDITOR.dom.walker.blockBoundary = function (a) {return function (b) {return! (b.type == CKEDITOR.NODE_ELEMENT && b.isBlockBoundary (a))}}; CKEDITOR.dom.walker.listItemBoundary = function () {return this.blockBoundary ({br: 1})}; CKEDITOR.dom.walker.bookmark = function (a, b) {function c (a) {return a && a.getName && a .getName () == "span" && a.data ("cke-bookmark")} hàm trả về (g) {var d, e; d = g && g.type! = CKEDITOR.NODE_ELEMENT && (e = g.getParent ()) && c (e); d = a? d: d || c (g); return !! (b ^ d)}}; CKEDITOR.dom.walker.whitespaces = function (a) {return function (b) {var c; b && b.type == CKEDITOR.NODE_TEXT && (c =! CKEDITOR.tools.trim (b.getText ()) || CKEDITOR.env.webkit && b.getText () == ""); return !! (a ^ c)}}; CKEDITOR.dom.walker.invisible = function (a) {var b = CKEDITOR.dom.walker.whitespaces (), c = CKEDITOR.env.webkit? 1: 0; return function (g) {if (b (g)) g = 1; else {g.type == CKEDITOR.NODE_TEXT && (g = g.getParent ()); g = g. $. offsetWidth <= c} return !! (a ^ g)} }; CKEDITOR.dom.walker.nodeType = function (a, b) {return function (c) {return !! (b ^ c.type == a)}}; CKEDITOR.dom.walker.bogus = function (a ) {function b (a) {return! f (a) &&! h (a)} return function (c) {var g = CKEDITOR.env.needsBrFiller? c.is && c.is ("br"): c.getText && e .test (c.getText ()); if (g) {g = c.getParent (); c = c.getNext (b); g = g.isBlockBoundary () && (! c || c.type == CKEDITOR.NODE_ELEMENT && c.isBlockBoundary ())} return !! (a ^ g)}}; CKEDITOR.dom .walker.temp = function (a) {return function (b) {b.type! = CKEDITOR.NODE_ELEMENT && (b = b.getParent ()); b = b && b.hasAttribute ("data-cke-temp"); return !! (a ^ b)}}; var e = / ^ [\ t \ r \ n] * (?: & nbsp; | \ xa0) $ /, f = CKEDITOR.dom.walker.whitespaces (), h = CKEDITOR.dom.walker.bookmark (), i = CKEDITOR.dom.walker.temp (); CKEDITOR.dom.walker.ignored = function (a) {return function (b) {b = f (b) || h (b) || i (b); return !! (a ^ b)}}; var j = CKEDITOR.dom.walker.ignored (); CKEDITOR.dom.walker.empty = function (a) {return function (b) {for (var c = 0, g = b.getChildCount (); c <g; ++ c) if (! j (b.getChild (c))) return !! a; return! a}}; var n = CKEDITOR.dom.walker.empty (), g = CKEDITOR.dom.walker.validEmptyBlockContainers = CKEDITOR .tools.extend (function (a) {var b = {}, c; for (c in a) CKEDITOR.dtd [c] ["#"] && (b [c] = 1); return b} (CKEDITOR .dtd. $ block), {caption: 1, td: 1, th: 1}); CKEDITOR.dom.walker.editable = function (a) {return function (b) {return !! (a ^ (j ( b)? 0: b.type == CKEDITOR.NODE_TEXT || b.type == CKEDITOR.NODE_ELEMENT && (b.is (CKEDITOR.dtd. $ Inline) || (b.is ("hr") || b.getAttribute ("contenteditable") == "false") ||! CKEDITOR.env.needsBrFiller && b .is (g) && n (b))? 1: 0))}}; CKEDITOR.dom.element.prototype.getBogus = function () {var a = this; do a = a.getPreviousSourceNode (); while (h (a) || f (a) || a.type == CKEDITOR.NODE_ELEMENT && a.is (CKEDITOR.dtd. $ inline) &&! a.is (CKEDITOR.dtd. $ trống)); trả về một && (CKEDITOR.env .needsBrFiller? a.is && a.is ("br"): a.getText && e.test (a.getText ()))? a: false}}) (); CKEDITOR.dom.range = function (a) {this.endOffset = this.endContainer = this.startOffset = this.startContainer = null; this.collapsed = true; var d = a instanceof CKEDITOR.dom.document; this.document = d? a: a.getDocument (); this.root = d? a.getBody (): a}; (function () {function a (a) {a.collapsed = a.startContainer && a.endContainer && a.startContainer.equals (a.endContainer) && a.startOffset == a.endOffset} function d (a, b, c, d, o ) {function e (a, b, c, g) {var k = c? a.getPrevious (): a.getNext (); if (g && i) return k; if (l || g) b.append (a .clone (true, o), c); else {a.remove (); n && b.append (a)} return k} function f () {var a, b, c, g = Math.min (J.length , D.length); for (a = 0; a <g; a ++) {b = J [a]; c = D [a]; if (! B.equals (c)) return a} return a-1 } function h () {var b = y-1, c = A && K &&! q.equals (k); if (b <v-1 || b <L-1 || c) {c? a.moveToPosition (k , CKEDITOR.POSITION_BEFORE_START): L == b + 1 && H? A.moveToPosition (D [b], CKEDITOR.POSITION_BEFORE_END): a.moveToPosition (D [b + 1], CKEDITOR.POSITION_BEFORE_START); if (d) if ((b = J [b + 1]) && b.type == CKEDITOR.NODE_ELEMENT) {c = CKEDITOR.dom.element.createFromHtml ('<span data-cke-bookmark = "1" style = "display: none"> & nbsp; </span> ', a.document); c.insertAfter (b); b.mergeSiblings (false); a.moveToBookmark ({startNode: c})}} else a.collapse (true)} a.optimizeBookmark () ; var i = b === 0, n = b == 1, l = b == 2, b = l || n, q = a.startContainer, k = a.endContainer, m = a.startOffset, F = a.endOffset, w, H, A, K, E, r; if (l && k.type == CKEDITOR.NODE_TEXT && q.equals (k)) {q = a.document.createText (q .substring (m, F)); c.append (q)} else {if (k.type == CKEDITOR.NODE_TEXT) l? r = true: k = k.split (F); else if (k.getChildCount ()> 0) if (F> = k.getChildCount ()) {k = k.getChild (F-1); H = true} else k = k.getChild (F); else K = H = true; nếu (q.type == CKEDITOR.NODE_TEXT) l? e = true: q.split (m); else if (q.getChildCount ()> 0) if (m === 0) {q = q.getChild (m ); w = true} else q = q.getChild (m-1); else A = w = true; for (var J = q.getParents (), D = k.getParents (), y = f (), v = J.length-1, L = D.length-1, O = c, j, U, T, Z = -1, M = y; M <= v; M ++) {U = J [M]; T = U.getNext (); for (M == v &&! (U.equals (D [M]) && v <L)? W? E (U, O, false, A): E && O .append (a.document.createText (U.substring (m))): b && (j = O.append (U.clone (0, o))); T;) {if (T.equals (k)) {Z = M; break} if (T.equals (D [M])) {Z = M; break} T = e (T, O)} O = j} O = c; for (M = y; M <= L; M ++) {c = D [M]; T = c.getPrevious (); if (! C.equals (J [M])) {M == L &&! (C.equals (J [M] ) && L <v)? H? E (c, O, false, K): r && O.append (a.document.createText (c.substring (0, F))): b && (j = O.append (c. sao chép (0, o))); nếu (M> Z) cho (; T;) T = e (T, O, true); O = j}} l || h ()}} hàm b () {var a = false, b = CKEDITOR.dom.walker.whitespaces (), c = CKEDITOR.dom.walker.bookmark ( true), d = CKEDITOR.dom.walker.bogus (); return function (o) {if (c (o) || b (o)) return true; if (d (o) &&! a) return a = true; return o.type == CKEDITOR.NODE_TEXT && (o.hasAscendant ("pre") || CKEDITOR.tools.trim (o.getText ()). length) || o.type == CKEDITOR.NODE_ELEMENT &&! o. is (f)? false: true}} function c (a) {var b = CKEDITOR.dom.walker.whitespaces (), c = CKEDITOR.dom.walker.bookmark (1); return function (d) {return c (d) || b (d)? true: ! a && h (d) || d.type == CKEDITOR.NODE_ELEMENT && d.is (CKEDITOR.dtd. $ removeEmpty)}} function e (a) {return function () {var b; return this [a? "getPreviousNode": "getNextNode"] (function (a) {! b && n (a) && (b = a); return j (a) &&! (h (a) && a.equals (b))})}} var f = {abbr : 1, từ viết tắt: 1, b: 1, bdo: 1, big: 1, cite: 1, code: 1, del: 1, dfn: 1, em: 1, font: 1, i: 1, ins: 1 , nhãn: 1, kbd: 1, q: 1, samp: 1, nhỏ: 1, nhịp: 1, đình công: 1, mạnh: 1, phụ: 1, sup: 1, tt: 1, u: 1, " var ": 1}, h = CKEDITOR.dom.walker.bogus (), i = / ^ [\ t \ r \ n] * (?: & nbsp; | \ xa0) $ /, j = CKEDITOR.dom.walker .editable (), n = CKEDITOR.dom.walker.ignored (true); CKEDITOR.dom.range.prototype = {clone: function () {var a = new CKEDITOR.dom.range (this.root); a._setStartContainer (this.startContainer); a.startOffset = this.startOffset; a._setEndContainer (this.endContainer); a.endOffset = this.endOffset; a.collapsed = this.collapsed; return a}, sập: function (a) {if (a) {this._setEndContainer (this.startContainer); this.endOffset = this.startOffset} else {this._setStartContainer (this.endContainer); this.startOffset = this.endOffset} this.collapsed = true}, cloneContents: function (a) {var b = new CKEDITOR.dom.documentFragment (this. tài liệu); this.collapsed || d (this, 2, b, false, typeof a == "undefined"? true: a); return b}, deleteContents: function (a) {this.collapsed || d (this, 0, null, a)}, extractContents: function (a, b) {var c = new CKEDITOR.dom.documentFragment (this.document); this.collapsed || d (this, 1, c, a, typeof b == " undefined "? true: b); return c}, createBookmark: function (a) {var b, c, d, o, e = this.collapsed; b = this.document.createElement (" span "); b.data ("cke-bookmark", 1); b.setStyle ("display", "none"); b.setHtml ("& nbsp;"); if (a) {d = "cke_bm _" + CKEDITOR.tools.getNextNumber ( ); b.setAttribute ("id", d + (e? "c": "S"))} if (! e) {c = b.clone (); c.setHtml ("& nbsp;"); a && c.setAttribute ( "id", d + "E"); o = this.clone (); o.collapse (); o.insertNode (c)} o = this.clone (); o.collapse (true); o.insertNode ( b); if (c) {this.setStartAfter (b); this.setEndBefore (c)} else this.moveToPosition (b, CKEDITOR.POSITION_AFTER_END); trả về {startNode: a? d + (e? "C": "S "): b, endNode: a? d +" E ": c, serializable: a, thu gọn: e}}, createBookmark2: function () {function a (c) {var g = c.container, d = c.offset , e; e = g; var f = d; e = e.type! = CKEDITOR.NODE_ELEMENT || f === 0 || f == e.getChildCount ()? 0: e.getChild (f-1) .type == CKEDITOR.NODE_TEXT && e.getChild (f) .type == CKEDITOR.NODE_TEXT; if (e) {g = g .getChild (d-1); d = g.getLength ()} g.type == CKEDITOR.NODE_ELEMENT && d> 1 && (d = g.getChild (d-1) .getIndex (true) +1); if (g. gõ == CKEDITOR.NODE_TEXT) {e = g; for (f = 0; (e = e.getPrevious ()) && e.type == CKEDITOR.NODE_TEXT;) f = f + e.getLength (); e = f ; if (g.getText ()) d = d + e; else {f = g.getPrevious (b); if (e) {d = e; g = f? f.getNext (): g.getParent () .getFirst ()} else {g = g.getParent (); d = f? f.getIndex (true) +1: 0}}} c.container = g; c.offset = d} var b = CKEDITOR.dom.walker.nodeType (CKEDITOR.NODE_TEXT, true); hàm trả về (b) {var c = this.collapsed, d = {container: this.startContainer, offset: this.startOffset}, e = {container: this.endContainer, offset: this.endOffset}; if (b) {a (d); c || a (e)} return {start: d.container.getAddress (b), end: c? null: e.container.getAddress (b), startOffset: d.offset, endOffset: e.offset, chuẩn hóa: b, thu gọn: c, is2: true}}} (), moveToBookmark: function (a) {if (a .is2) {var b = this.document.getByAddress (a.start, a.normalized), c = a.startOffset, d = a.end && this.document.getByAddress (a.end, a.normalized), a = a.endOffset; this.setStart (b, c); d? this.setEnd (d, a): this.collapse (true)} else { b = (c = a.serializable)? this.document.getById (a.startNode): a.startNode; a = c? this.document.getById (a.endNode): a.endNode; this.setStartBefore (b) ; b.remove (); if (a) {this.setEndBefore (a); a.remove ()} else this.collapse (true)}}, getBoundaryNodes: function () {var a = this.startContainer, b = this.endContainer, c = this.startOffset, d = this.endOffset, e; if (a.type == CKEDITOR.NODE_ELEMENT) {e = a.getChildCount (); if (e> c) a = a.getChild (c); else if (e <1) a = a.getPreviousSourceNode (); else {for (a = a. $; a.lastChild;) a = a.lastChild ; a = new CKEDITOR.dom.node (a); a = a.getNextSourceNode () || a}} if (b.type == CKEDITOR.NODE_ELEMENT) {e = b.getChildCount (); if (e> d ) b = b.getChild (d) .getPreviousSourceNode (true); else if (e <1) b = b.getPreviousSourceNode (); else {for (b = b. $; b.lastChild;) b = b.lastChild ; b = new CKEDITOR.dom.node (b)}} a.getPosition (b) & CKEDITOR.POSITION_FOLLOWING && (a = b); return {startNode: a, endNode: b}}, getCommonAncestor: function (a, b) { var c = this.startContainer, d = this.endContainer, c = c.equals (d)? a && c.type == CKEDITOR.NODE_ELEMENT && this.startOffset == this.endOffset-1? c.getChild (this.startOffset): c: c.getCommonAncestor (d) ; trả về b &&! c.is?c.getParent():c},optimize:osystem(){var a = this.startContainer, b = this.startOffset; a.type! = CKEDITOR.NODE_ELEMENT && (b? b> = a.getLength () && this.setStartAfter (a): this.setStartBefore (a)); a = this.endContainer; b = this.endOffset; a.type! = CKEDITOR.NODE_ELEMENT && (b? b> = a.getLength ( ) && this.setEndAfter (a): this.setEndBefore (a))}, tối ưu hóaBookmark: function () {var a = this.startContainer, b = this.endContainer; a.is && (a.is ("span") && a.data ("cke-bookmark")) && this.setStartAt (a, CKEDITOR.POSITION_BEFORE_START); b && (b.is && b. is ("span") && b.data ("cke-bookmark")) && this.setEndAt (b, CKEDITOR.POSITION_AFTER_END)}, trim: function (a, b) {var c = this.startContainer, d = this.startOffset , e = this.collapsed; if ((! a || e) && c && c.type == CKEDITOR.NODE_TEXT) {if (d) if (d> = c.getLength ()) {d = c.getIndex () + 1; c = c.getParent ()} else {var f = c.split (d), d = c.getIndex () + 1, c = c.getParent (); if (this.startContainer.equals (this. endContainer)) this.setEnd (f, this.endOffset-this.startOffset); else if (c.equals (this.endContainer) |