/*! * UEditor * version: ueditor * build: Thu Jul 25 2019 11:52:57 GMT+0800 (GMT+08:00) */ !function() { function getListener(a, b, c) { var d; return b = b.toLowerCase(), (d = a.__allListeners || c && (a.__allListeners = {})) && (d[b] || c && (d[b] = [])) } function getDomNode(a, b, c, d, e, f) { var g, h = d && a[b]; for (!h && (h = a[c]); !h && (g = (g || a).parentNode); ) { if ("BODY" == g.tagName || f && !f(g)) return null; h = g[c] } return h && e && !e(h) ? getDomNode(h, b, c, !1, e) : h } var __URL = "http://liewu.kuxuan-inc.com/union_wx/static/UEditor/"; try { var script = document.getElementById("ueditor_script"); if (script) { var __pre = script.src.match(/(.*?\/)[^\/]*.js/)[1]; __URL = __pre } } catch (e) {} UEDITOR_CONFIG = window.UEDITOR_CONFIG || {}; var baidu = window.baidu || {}; window.baidu = baidu, window.UE = baidu.editor = window.UE || { getUEBasePath: function() { return __URL } }, UE.plugins = {}, UE.commands = {}, UE.instants = {}, UE.I18N = {}, UE._customizeUI = {}, UE.version = "1.4.3"; var dom = UE.dom = {} , browser = UE.browser = function() { var a = navigator.userAgent.toLowerCase() , b = window.opera , c = { ie: /(msie\s|trident.*rv:)([\w.]+)/.test(a), opera: !!b && b.version, webkit: a.indexOf(" applewebkit/") > -1, mac: a.indexOf("macintosh") > -1, quirks: "BackCompat" == document.compatMode, isMobile: a.indexOf("iphone") > -1 || a.indexOf("android") > -1 }; c.gecko = "Gecko" == navigator.product && !c.webkit && !c.opera && !c.ie; var d = 0; if (c.ie) { var e = a.match(/(?:msie\s([\w.]+))/) , f = a.match(/(?:trident.*rv:([\w.]+))/); d = e && f && e[1] && f[1] ? Math.max(1 * e[1], 1 * f[1]) : e && e[1] ? 1 * e[1] : f && f[1] ? 1 * f[1] : 0, c.ie11Compat = 11 == document.documentMode, c.ie9Compat = 9 == document.documentMode, c.ie8 = !!document.documentMode, c.ie8Compat = 8 == document.documentMode, c.ie7Compat = 7 == d && !document.documentMode || 7 == document.documentMode, c.ie6Compat = d < 7 || c.quirks, c.ie9above = d > 8, c.ie9below = d < 9, c.ie11above = d > 10, c.ie11below = d < 11 } if (c.gecko) { var g = a.match(/rv:([\d\.]+)/); g && (g = g[1].split("."), d = 1e4 * g[0] + 100 * (g[1] || 0) + 1 * (g[2] || 0)) } return /chrome\/(\d+\.\d)/i.test(a) && (c.chrome = +RegExp.$1), /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(a) && !/chrome/i.test(a) && (c.safari = +(RegExp.$1 || RegExp.$2)), c.opera && (d = parseFloat(b.version())), c.webkit && (d = parseFloat(a.match(/ applewebkit\/(\d+)/)[1])), c.version = d, c.isCompatible = !c.mobile && (c.ie && d >= 6 || c.gecko && d >= 10801 || c.opera && d >= 9.5 || c.air && d >= 1 || c.webkit && d >= 522 || !1), c }() , ie = browser.ie , webkit = browser.webkit , gecko = browser.gecko , opera = browser.opera , utils = UE.utils = { each: function(a, b, c) { if (null != a) if (a.length === +a.length) { for (var d = 0, e = a.length; d < e; d++) if (b.call(c, a[d], d, a) === !1) return !1 } else for (var f in a) if (a.hasOwnProperty(f) && b.call(c, a[f], f, a) === !1) return !1 }, makeInstance: function(a) { var b = new Function; return b.prototype = a, a = new b, b.prototype = null, a }, extend: function(a, b, c) { if (b) for (var d in b) c && a.hasOwnProperty(d) || (a[d] = b[d]); return a }, extend2: function(a) { for (var b = arguments, c = 1; c < b.length; c++) { var d = b[c]; for (var e in d) a.hasOwnProperty(e) || (a[e] = d[e]) } return a }, inherits: function(a, b) { var c = a.prototype , d = utils.makeInstance(b.prototype); return utils.extend(d, c, !0), a.prototype = d, d.constructor = a }, bind: function(a, b) { return function() { return a.apply(b, arguments) } }, defer: function(a, b, c) { var d; return function() { c && clearTimeout(d), d = setTimeout(a, b) } }, indexOf: function(a, b, c) { var d = -1; return c = this.isNumber(c) ? c : 0, this.each(a, function(a, e) { if (e >= c && a === b) return d = e, !1 }), d }, removeItem: function(a, b) { for (var c = 0, d = a.length; c < d; c++) a[c] === b && (a.splice(c, 1), c--) }, trim: function(a) { return a.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, "") }, listToMap: function(a) { if (!a) return {}; a = utils.isArray(a) ? a : a.split(","); for (var b, c = 0, d = {}; b = a[c++]; ) d[b.toUpperCase()] = d[b] = 1; return d }, unhtml: function(a, b) { return a ? a.replace(b || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g, function(a, b) { return b ? a : { "<": "<", "&": "&", '"': """, ">": ">", "'": "'" }[a] }) : "" }, unhtmlForUrl: function(a, b) { return a ? a.replace(b || /[<">']/g, function(a) { return { "<": "<", "&": "&", '"': """, ">": ">", "'": "'" }[a] }) : "" }, html: function(a) { return a ? a.replace(/&((g|l|quo)t|amp|#39|nbsp);/g, function(a) { return { "<": "<", "&": "&", """: '"', ">": ">", "'": "'", " ": " " }[a] }) : "" }, cssStyleToDomStyle: function() { var a = document.createElement("div").style , b = { "float": void 0 != a.cssFloat ? "cssFloat" : void 0 != a.styleFloat ? "styleFloat" : "float" }; return function(a) { return b[a] || (b[a] = a.toLowerCase().replace(/-./g, function(a) { return a.charAt(1).toUpperCase() })) } }(), loadFile: function() { function a(a, c) { try { for (var d, e = 0; d = b[e++]; ) if (d.doc === a && d.url == (c.src || c.href)) return d } catch (f) { return null } } var b = []; return function(c, d, e) { var f = a(c, d); if (f) return void (f.ready ? e && e() : f.funs.push(e)); if (b.push({ doc: c, url: d.src || d.href, funs: [e] }), !c.body) { var g = []; for (var h in d) "tag" != h && g.push(h + '="' + d[h] + '"'); return void c.write("<" + d.tag + " " + g.join(" ") + " >") } if (!d.id || !c.getElementById(d.id)) { var i = c.createElement(d.tag); delete d.tag; for (var h in d) i.setAttribute(h, d[h]); i.onload = i.onreadystatechange = function() { if (!this.readyState || /loaded|complete/.test(this.readyState)) { if (f = a(c, d), f.funs.length > 0) { f.ready = 1; for (var b; b = f.funs.pop(); ) b() } i.onload = i.onreadystatechange = null } } , i.onerror = function() { throw Error("The load " + (d.href || d.src) + " fails,check the url settings of file ueditor.config.js ") } , c.getElementsByTagName("head")[0].appendChild(i) } } }(), isEmptyObject: function(a) { if (null == a) return !0; if (this.isArray(a) || this.isString(a)) return 0 === a.length; for (var b in a) if (a.hasOwnProperty(b)) return !1; return !0 }, fixColor: function(a, b) { if (/color/i.test(a) && /rgba?/.test(b)) { var c = b.split(","); if (c.length > 3) return ""; b = "#"; for (var d, e = 0; d = c[e++]; ) d = parseInt(d.replace(/[^\d]/gi, ""), 10).toString(16), b += 1 == d.length ? "0" + d : d; b = b.toUpperCase() } return b }, optCss: function(a) { function b(a, b) { if (!a) return ""; var c = a.top , d = a.bottom , e = a.left , f = a.right , g = ""; if (c && e && d && f) g += ";" + b + ":" + (c == d && d == e && e == f ? c : c == d && e == f ? c + " " + e : e == f ? c + " " + e + " " + d : c + " " + f + " " + d + " " + e) + ";"; else for (var h in a) g += ";" + b + "-" + h + ":" + a[h] + ";"; return g } var c, d; return a = a.replace(/(padding|margin|border)\-([^:]+):([^;]+);?/gi, function(a, b, e, f) { if (1 == f.split(" ").length) switch (b) { case "padding": return !c && (c = {}), c[e] = f, ""; case "margin": return !d && (d = {}), d[e] = f, ""; case "border": return "initial" == f ? "" : a } return a }), a += b(c, "padding") + b(d, "margin"), a.replace(/^[ \n\r\t;]*|[ \n\r\t]*$/, "").replace(/;([ \n\r\t]+)|\1;/g, ";").replace(/(&((l|g)t|quot|#39))?;{2,}/g, function(a, b) { return b ? b + ";;" : ";" }) }, clone: function(a, b) { var c; b = b || {}; for (var d in a) a.hasOwnProperty(d) && (c = a[d], "object" == typeof c ? (b[d] = utils.isArray(c) ? [] : {}, utils.clone(a[d], b[d])) : b[d] = c); return b }, transUnitToPx: function(a) { if (!/(pt|cm)/.test(a)) return a; var b; switch (a.replace(/([\d.]+)(\w+)/, function(c, d, e) { a = d, b = e }), b) { case "cm": a = 25 * parseFloat(a); break; case "pt": a = Math.round(96 * parseFloat(a) / 72) } return a + (a ? "px" : "") }, domReady: function() { function a(a) { a.isReady = !0; for (var c; c = b.pop(); c()) ; } var b = []; return function(c, d) { d = d || window; var e = d.document; c && b.push(c), "complete" === e.readyState ? a(e) : (e.isReady && a(e), browser.ie && 11 != browser.version ? (!function() { if (!e.isReady) { try { e.documentElement.doScroll("left") } catch (b) { return void setTimeout(arguments.callee, 0) } a(e) } }(), d.attachEvent("onload", function() { a(e) })) : (e.addEventListener("DOMContentLoaded", function() { e.removeEventListener("DOMContentLoaded", arguments.callee, !1), a(e) }, !1), d.addEventListener("load", function() { a(e) }, !1))) } }(), cssRule: browser.ie && 11 != browser.version ? function(a, b, c) { var d, e; if (void 0 === b || b && b.nodeType && 9 == b.nodeType) { if (c = b && b.nodeType && 9 == b.nodeType ? b : c || document, d = c.indexList || (c.indexList = {}), e = d[a], void 0 !== e) return c.styleSheets[e].cssText } else { if (c = c || document, d = c.indexList || (c.indexList = {}), e = d[a], "" === b) return void 0 !== e && (c.styleSheets[e].cssText = "", delete d[a], !0); void 0 !== e ? sheetStyle = c.styleSheets[e] : (sheetStyle = c.createStyleSheet("", e = c.styleSheets.length), d[a] = e), sheetStyle.cssText = b } } : function(a, b, c) { var d; return void 0 === b || b && b.nodeType && 9 == b.nodeType ? (c = b && b.nodeType && 9 == b.nodeType ? b : c || document, d = c.getElementById(a), d ? d.innerHTML : void 0) : (c = c || document, d = c.getElementById(a), "" === b ? !!d && (d.parentNode.removeChild(d), !0) : void (d ? d.innerHTML = b : (d = c.createElement("style"), d.id = a, d.innerHTML = b, c.getElementsByTagName("head")[0].appendChild(d)))) } , sort: function(a, b) { b = b || function(a, b) { return a.localeCompare(b) } ; for (var c = 0, d = a.length; c < d; c++) for (var e = c, f = a.length; e < f; e++) if (b(a[c], a[e]) > 0) { var g = a[c]; a[c] = a[e], a[e] = g } return a }, serializeParam: function(a) { var b = []; for (var c in a) if ("method" != c && "timeout" != c && "async" != c) if ("function" != (typeof a[c]).toLowerCase() && "object" != (typeof a[c]).toLowerCase()) b.push(encodeURIComponent(c) + "=" + encodeURIComponent(a[c])); else if (utils.isArray(a[c])) for (var d = 0; d < a[c].length; d++) b.push(encodeURIComponent(c) + "[]=" + encodeURIComponent(a[c][d])); return b.join("&") }, formatUrl: function(a) { var b = a.replace(/&&/g, "&"); return b = b.replace(/\?&/g, "?"), b = b.replace(/&$/g, ""), b = b.replace(/&#/g, "#"), b = b.replace(/&+/g, "&") }, isCrossDomainUrl: function(a) { var b = document.createElement("a"); return b.href = a, browser.ie && (b.href = b.href), !(b.protocol == location.protocol && b.hostname == location.hostname && (b.port == location.port || "80" == b.port && "" == location.port || "" == b.port && "80" == location.port)) }, clearEmptyAttrs: function(a) { for (var b in a) "" === a[b] && delete a[b]; return a }, str2json: function(a) { return utils.isString(a) ? window.JSON ? JSON.parse(a) : new Function("return " + utils.trim(a || ""))() : null }, json2str: function() { function a(a) { return /["\\\x00-\x1f]/.test(a) && (a = a.replace(/["\\\x00-\x1f]/g, function(a) { var b = e[a]; return b ? b : (b = a.charCodeAt(), "\\u00" + Math.floor(b / 16).toString(16) + (b % 16).toString(16)) })), '"' + a + '"' } function b(a) { var b, c, d, e = ["["], f = a.length; for (c = 0; c < f; c++) switch (d = a[c], typeof d) { case "undefined": case "function": case "unknown": break; default: b && e.push(","), e.push(utils.json2str(d)), b = 1 } return e.push("]"), e.join("") } function c(a) { return a < 10 ? "0" + a : a } function d(a) { return '"' + a.getFullYear() + "-" + c(a.getMonth() + 1) + "-" + c(a.getDate()) + "T" + c(a.getHours()) + ":" + c(a.getMinutes()) + ":" + c(a.getSeconds()) + '"' } if (window.JSON) return JSON.stringify; var e = { "\b": "\\b", "\t": "\\t", "\n": "\\n", "\f": "\\f", "\r": "\\r", '"': '\\"', "\\": "\\\\" }; return function(c) { switch (typeof c) { case "undefined": return "undefined"; case "number": return isFinite(c) ? String(c) : "null"; case "string": return a(c); case "boolean": return String(c); default: if (null === c) return "null"; if (utils.isArray(c)) return b(c); if (utils.isDate(c)) return d(c); var e, f, g = ["{"], h = utils.json2str; for (var i in c) if (Object.prototype.hasOwnProperty.call(c, i)) switch (f = c[i], typeof f) { case "undefined": case "unknown": case "function": break; default: e && g.push(","), e = 1, g.push(h(i) + ":" + h(f)) } return g.push("}"), g.join("") } } }(), iconSvg: {} }; utils.each(["String", "Function", "Array", "Number", "RegExp", "Object", "Date"], function(a) { UE.utils["is" + a] = function(b) { return Object.prototype.toString.apply(b) == "[object " + a + "]" } }); var EventBase = UE.EventBase = function() {} ; EventBase.prototype = { addListener: function(a, b) { a = utils.trim(a).split(/\s+/); for (var c, d = 0; c = a[d++]; ) getListener(this, c, !0).push(b) }, on: function(a, b) { return this.addListener(a, b) }, off: function(a, b) { return this.removeListener(a, b) }, trigger: function() { return this.fireEvent.apply(this, arguments) }, removeListener: function(a, b) { a = utils.trim(a).split(/\s+/); for (var c, d = 0; c = a[d++]; ) utils.removeItem(getListener(this, c) || [], b) }, fireEvent: function() { var a = arguments[0]; a = utils.trim(a).split(" "); for (var b, c = 0; b = a[c++]; ) { var d, e, f, g = getListener(this, b); if (g) for (f = g.length; f--; ) if (g[f]) { if (e = g[f].apply(this, arguments), e === !0) return e; void 0 !== e && (d = e) } (e = this["on" + b.toLowerCase()]) && (d = e.apply(this, arguments)) } return d } }; var dtd = dom.dtd = function() { function a(a) { for (var b in a) a[b.toUpperCase()] = a[b]; return a } var b = utils.extend2 , c = a({ isindex: 1, fieldset: 1 }) , d = a({ input: 1, button: 1, select: 1, textarea: 1, label: 1 }) , e = b(a({ a: 1 }), d) , f = b({ iframe: 1 }, e) , g = a({ hr: 1, ul: 1, menu: 1, div: 1, blockquote: 1, noscript: 1, table: 1, center: 1, address: 1, dir: 1, pre: 1, h5: 1, dl: 1, h4: 1, noframes: 1, h6: 1, ol: 1, h1: 1, h3: 1, h2: 1 }) , h = a({ ins: 1, del: 1, script: 1, style: 1 }) , i = b(a({ b: 1, acronym: 1, bdo: 1, "var": 1, "#": 1, abbr: 1, code: 1, br: 1, i: 1, cite: 1, kbd: 1, u: 1, strike: 1, s: 1, tt: 1, strong: 1, q: 1, samp: 1, em: 1, dfn: 1, span: 1 }), h) , j = b(a({ sub: 1, img: 1, embed: 1, object: 1, sup: 1, basefont: 1, map: 1, applet: 1, font: 1, big: 1, small: 1 }), i) , k = b(a({ p: 1 }), j) , l = b(a({ iframe: 1 }), j, d) , m = a({ img: 1, embed: 1, noscript: 1, br: 1, kbd: 1, center: 1, button: 1, basefont: 1, h5: 1, h4: 1, samp: 1, h6: 1, ol: 1, h1: 1, h3: 1, h2: 1, form: 1, font: 1, "#": 1, select: 1, menu: 1, ins: 1, abbr: 1, label: 1, code: 1, table: 1, script: 1, cite: 1, input: 1, iframe: 1, strong: 1, textarea: 1, noframes: 1, big: 1, small: 1, span: 1, hr: 1, sub: 1, bdo: 1, "var": 1, div: 1, object: 1, sup: 1, strike: 1, dir: 1, map: 1, dl: 1, applet: 1, del: 1, isindex: 1, fieldset: 1, ul: 1, b: 1, acronym: 1, a: 1, blockquote: 1, i: 1, u: 1, s: 1, tt: 1, address: 1, q: 1, pre: 1, p: 1, em: 1, dfn: 1 }) , n = b(a({ a: 0 }), l) , o = a({ tr: 1 }) , p = a({ "#": 1 }) , q = b(a({ param: 1 }), m) , r = b(a({ form: 1 }), c, f, g, k) , s = a({ li: 1, ol: 1, ul: 1 }) , t = a({ style: 1, script: 1 }) , u = a({ base: 1, link: 1, meta: 1, title: 1 }) , v = b(u, t) , w = a({ head: 1, body: 1 }) , x = a({ html: 1 }) , y = a({ address: 1, blockquote: 1, center: 1, dir: 1, div: 1, dl: 1, fieldset: 1, form: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, hr: 1, isindex: 1, menu: 1, noframes: 1, ol: 1, p: 1, pre: 1, table: 1, ul: 1 }) , z = a({ area: 1, base: 1, basefont: 1, br: 1, col: 1, command: 1, dialog: 1, embed: 1, hr: 1, img: 1, input: 1, isindex: 1, keygen: 1, link: 1, meta: 1, param: 1, source: 1, track: 1, wbr: 1 }); return a({ $nonBodyContent: b(x, w, u), $block: y, $inline: n, $inlineWithA: b(a({ a: 1 }), n), $body: b(a({ script: 1, style: 1 }), y), $cdata: a({ script: 1, style: 1 }), $empty: z, $nonChild: a({ iframe: 1, textarea: 1 }), $listItem: a({ dd: 1, dt: 1, li: 1 }), $list: a({ ul: 1, ol: 1, dl: 1 }), $isNotEmpty: a({ table: 1, ul: 1, ol: 1, dl: 1, iframe: 1, area: 1, base: 1, col: 1, hr: 1, img: 1, embed: 1, input: 1, link: 1, meta: 1, param: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1 }), $removeEmpty: a({ a: 1, abbr: 1, acronym: 1, address: 1, b: 1, bdo: 1, big: 1, cite: 1, code: 1, del: 1, dfn: 1, em: 1, font: 1, i: 1, ins: 1, label: 1, kbd: 1, q: 1, s: 1, samp: 1, small: 1, span: 1, strike: 1, strong: 1, sub: 1, sup: 1, tt: 1, u: 1, "var": 1 }), $removeEmptyBlock: a({ p: 1, div: 1 }), $tableContent: a({ caption: 1, col: 1, colgroup: 1, tbody: 1, td: 1, tfoot: 1, th: 1, thead: 1, tr: 1, table: 1 }), $notTransContent: a({ pre: 1, script: 1, style: 1, textarea: 1 }), html: w, head: v, style: p, script: p, body: r, base: {}, link: {}, meta: {}, title: p, col: {}, tr: a({ td: 1, th: 1 }), img: {}, embed: {}, colgroup: a({ thead: 1, col: 1, tbody: 1, tr: 1, tfoot: 1 }), noscript: r, td: r, br: {}, th: r, center: r, kbd: n, button: b(k, g), basefont: {}, h5: n, h4: n, samp: n, h6: n, ol: s, h1: n, h3: n, option: p, h2: n, form: b(c, f, g, k), select: a({ optgroup: 1, option: 1 }), font: n, ins: n, menu: s, abbr: n, label: n, table: a({ thead: 1, col: 1, tbody: 1, tr: 1, colgroup: 1, caption: 1, tfoot: 1 }), code: n, tfoot: o, cite: n, li: r, input: {}, iframe: r, strong: n, textarea: p, noframes: r, big: n, small: n, span: a({ "#": 1, br: 1, b: 1, strong: 1, u: 1, i: 1, em: 1, sub: 1, sup: 1, strike: 1, span: 1 }), hr: n, dt: n, sub: n, optgroup: a({ option: 1 }), param: {}, bdo: n, "var": n, div: r, object: q, sup: n, dd: r, strike: n, area: {}, dir: s, map: b(a({ area: 1, form: 1, p: 1 }), c, h, g), applet: q, dl: a({ dt: 1, dd: 1 }), del: n, isindex: {}, fieldset: b(a({ legend: 1 }), m), thead: o, ul: s, acronym: n, b: n, a: b(a({ a: 1 }), l), blockquote: b(a({ td: 1, tr: 1, tbody: 1, li: 1 }), r), caption: n, i: n, u: n, tbody: o, s: n, address: b(f, k), tt: n, legend: n, q: n, pre: b(i, e), p: b(a({ a: 1 }), n), em: n, dfn: n }) }() , attrFix = ie && browser.version < 9 ? { tabindex: "tabIndex", readonly: "readOnly", "for": "htmlFor", "class": "className", maxlength: "maxLength", cellspacing: "cellSpacing", cellpadding: "cellPadding", rowspan: "rowSpan", colspan: "colSpan", usemap: "useMap", frameborder: "frameBorder" } : { tabindex: "tabIndex", readonly: "readOnly" } , styleBlock = utils.listToMap(["-webkit-box", "-moz-box", "block", "list-item", "table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption"]) , domUtils = dom.domUtils = { NODE_ELEMENT: 1, NODE_DOCUMENT: 9, NODE_TEXT: 3, NODE_COMMENT: 8, NODE_DOCUMENT_FRAGMENT: 11, POSITION_IDENTICAL: 0, POSITION_DISCONNECTED: 1, POSITION_FOLLOWING: 2, POSITION_PRECEDING: 4, POSITION_IS_CONTAINED: 8, POSITION_CONTAINS: 16, fillChar: ie && "6" == browser.version ? "\ufeff" : "​", keys: { 8: 1, 46: 1, 16: 1, 17: 1, 18: 1, 37: 1, 38: 1, 39: 1, 40: 1, 13: 1 }, getPosition: function(a, b) { if (a === b) return 0; var c, d = [a], e = [b]; for (c = a; c = c.parentNode; ) { if (c === b) return 10; d.push(c) } for (c = b; c = c.parentNode; ) { if (c === a) return 20; e.push(c) } if (d.reverse(), e.reverse(), d[0] !== e[0]) return 1; for (var f = -1; f++, d[f] === e[f]; ) ; for (a = d[f], b = e[f]; a = a.nextSibling; ) if (a === b) return 4; return 2 }, getNodeIndex: function(a, b) { for (var c = a, d = 0; c = c.previousSibling; ) b && 3 == c.nodeType ? c.nodeType != c.nextSibling.nodeType && d++ : d++; return d }, inDoc: function(a, b) { return 10 == domUtils.getPosition(a, b) }, findParent: function(a, b, c) { if (a && !domUtils.isBody(a)) for (a = c ? a : a.parentNode; a; ) { if (!b || b(a) || domUtils.isBody(a)) return b && !b(a) && domUtils.isBody(a) ? null : a; a = a.parentNode } return null }, findParentByTagName: function(a, b, c, d) { return b = utils.listToMap(utils.isArray(b) ? b : [b]), domUtils.findParent(a, function(a) { return b[a.tagName] && !(d && d(a)) }, c) }, findParents: function(a, b, c, d) { for (var e = b && (c && c(a) || !c) ? [a] : []; a = domUtils.findParent(a, c); ) e.push(a); return d ? e : e.reverse() }, insertAfter: function(a, b) { return a.nextSibling ? a.parentNode.insertBefore(b, a.nextSibling) : a.parentNode.appendChild(b) }, remove: function(a, b) { var c, d = a.parentNode; if (d) { if (b && a.hasChildNodes()) for (; c = a.firstChild; ) d.insertBefore(c, a); d.removeChild(a) } return a }, getNextDomNode: function(a, b, c, d) { return getDomNode(a, "firstChild", "nextSibling", b, c, d) }, getPreDomNode: function(a, b, c, d) { return getDomNode(a, "lastChild", "previousSibling", b, c, d) }, isBookmarkNode: function(a) { return 1 == a.nodeType && a.id && /^_baidu_bookmark_/i.test(a.id) }, getWindow: function(a) { var b = a.ownerDocument || a; return b.defaultView || b.parentWindow }, getCommonAncestor: function(a, b) { if (a === b) return a; for (var c = [a], d = [b], e = a, f = -1; e = e.parentNode; ) { if (e === b) return e; c.push(e) } for (e = b; e = e.parentNode; ) { if (e === a) return e; d.push(e) } for (c.reverse(), d.reverse(); f++, c[f] === d[f]; ) ; return 0 == f ? null : c[f - 1] }, clearEmptySibling: function(a, b, c) { function d(a, b) { for (var c; a && !domUtils.isBookmarkNode(a) && (domUtils.isEmptyInlineElement(a) || !new RegExp("[^\t\n\r" + domUtils.fillChar + "]").test(a.nodeValue)); ) c = a[b], domUtils.remove(a), a = c } !b && d(a.nextSibling, "nextSibling"), !c && d(a.previousSibling, "previousSibling") }, split: function(a, b) { var c = a.ownerDocument; if (browser.ie && b == a.nodeValue.length) { var d = c.createTextNode(""); return domUtils.insertAfter(a, d) } var e = a.splitText(b); if (browser.ie8) { var f = c.createTextNode(""); domUtils.insertAfter(e, f), domUtils.remove(f) } return e }, isWhitespace: function(a) { return !new RegExp("[^ \t\n\r" + domUtils.fillChar + "]").test(a.nodeValue) }, getXY: function(a) { for (var b = 0, c = 0; a.offsetParent; ) c += a.offsetTop, b += a.offsetLeft, a = a.offsetParent; return { x: b, y: c } }, on: function(a, b, c) { var d = utils.isArray(b) ? b : utils.trim(b).split(/\s+/) , e = d.length; if (e) for (; e--; ) if (b = d[e], a.addEventListener) a.addEventListener(b, c, !1); else { c._d || (c._d = { els: [] }); var f = b + c.toString() , g = utils.indexOf(c._d.els, a); c._d[f] && g != -1 || (g == -1 && c._d.els.push(a), c._d[f] || (c._d[f] = function(a) { return c.call(a.srcElement, a || window.event) } ), a.attachEvent("on" + b, c._d[f])) } a = null }, un: function(a, b, c) { var d = utils.isArray(b) ? b : utils.trim(b).split(/\s+/) , e = d.length; if (e) for (; e--; ) if (b = d[e], a.removeEventListener) a.removeEventListener(b, c, !1); else { var f = b + c.toString(); try { a.detachEvent("on" + b, c._d ? c._d[f] : c) } catch (g) {} if (c._d && c._d[f]) { var h = utils.indexOf(c._d.els, a); h != -1 && c._d.els.splice(h, 1), 0 == c._d.els.length && delete c._d[f] } } }, isSameElement: function(a, b) { if (a.tagName != b.tagName) return !1; var c = a.attributes , d = b.attributes; if (!ie && c.length != d.length) return !1; for (var e, f, g = 0, h = 0, i = 0; e = c[i++]; ) { if ("style" == e.nodeName) { if (e.specified && g++, domUtils.isSameStyle(a, b)) continue; return !1 } if (ie) { if (!e.specified) continue; g++, f = d.getNamedItem(e.nodeName) } else f = b.attributes[e.nodeName]; if (!f.specified || e.nodeValue != f.nodeValue) return !1 } if (ie) { for (i = 0; f = d[i++]; ) f.specified && h++; if (g != h) return !1 } return !0 }, isSameStyle: function(a, b) { var c = a.style.cssText.replace(/( ?; ?)/g, ";").replace(/( ?: ?)/g, ":") , d = b.style.cssText.replace(/( ?; ?)/g, ";").replace(/( ?: ?)/g, ":"); if (browser.opera) { if (c = a.style, d = b.style, c.length != d.length) return !1; for (var e in c) if (!/^(\d+|csstext)$/i.test(e) && c[e] != d[e]) return !1; return !0 } if (!c || !d) return c == d; if (c = c.split(";"), d = d.split(";"), c.length != d.length) return !1; for (var f, g = 0; f = c[g++]; ) if (utils.indexOf(d, f) == -1) return !1; return !0 }, isBlockElm: function(a) { return 1 == a.nodeType && (dtd.$block[a.tagName] || styleBlock[domUtils.getComputedStyle(a, "display")]) && !dtd.$nonChild[a.tagName] }, isBody: function(a) { return a && 1 == a.nodeType && "body" == a.tagName.toLowerCase() }, breakParent: function(a, b) { var c, d, e, f = a, g = a; do { for (f = f.parentNode, d ? (c = f.cloneNode(!1), c.appendChild(d), d = c, c = f.cloneNode(!1), c.appendChild(e), e = c) : (d = f.cloneNode(!1), e = d.cloneNode(!1)); c = g.previousSibling; ) d.insertBefore(c, d.firstChild); for (; c = g.nextSibling; ) e.appendChild(c); g = f } while (b !== f);return c = b.parentNode, c.insertBefore(d, b), c.insertBefore(e, b), c.insertBefore(a, e), domUtils.remove(b), a }, isEmptyInlineElement: function(a) { if (1 != a.nodeType || !dtd.$removeEmpty[a.tagName]) return 0; for (a = a.firstChild; a; ) { if (domUtils.isBookmarkNode(a)) return 0; if (1 == a.nodeType && !domUtils.isEmptyInlineElement(a) || 3 == a.nodeType && !domUtils.isWhitespace(a)) return 0; a = a.nextSibling } return 1 }, trimWhiteTextNode: function(a) { function b(b) { for (var c; (c = a[b]) && 3 == c.nodeType && domUtils.isWhitespace(c); ) a.removeChild(c) } b("firstChild"), b("lastChild") }, mergeChild: function(a, b, c) { for (var d, e = domUtils.getElementsByTagName(a, a.tagName.toLowerCase()), f = 0; d = e[f++]; ) if (d.parentNode && !domUtils.isBookmarkNode(d)) if ("span" != d.tagName.toLowerCase()) domUtils.isSameElement(a, d) && domUtils.remove(d, !0); else { if (a === d.parentNode && (domUtils.trimWhiteTextNode(a), 1 == a.childNodes.length)) { a.style.cssText = d.style.cssText + ";" + a.style.cssText, domUtils.remove(d, !0); continue } if (d.style.cssText = a.style.cssText + ";" + d.style.cssText, c) { var g = c.style; if (g) { g = g.split(";"); for (var h, i = 0; h = g[i++]; ) d.style[utils.cssStyleToDomStyle(h.split(":")[0])] = h.split(":")[1] } } domUtils.isSameStyle(d, a) && domUtils.remove(d, !0) } }, getElementsByTagName: function(a, b, c) { if (c && utils.isString(c)) { var d = c; c = function(a) { return domUtils.hasClass(a, d) } } b = utils.trim(b).replace(/[ ]{2,}/g, " ").split(" "); for (var e, f = [], g = 0; e = b[g++]; ) for (var h, i = a.getElementsByTagName(e), j = 0; h = i[j++]; ) c && !c(h) || f.push(h); return f }, mergeToParent: function(a) { for (var b = a.parentNode; b && dtd.$removeEmpty[b.tagName]; ) { if (b.tagName == a.tagName || "A" == b.tagName) { if (domUtils.trimWhiteTextNode(b), "SPAN" == b.tagName && !domUtils.isSameStyle(b, a) || "A" == b.tagName && "SPAN" == a.tagName) { if (b.childNodes.length > 1 || b !== a.parentNode) { a.style.cssText = b.style.cssText + ";" + a.style.cssText, b = b.parentNode; continue } b.style.cssText += ";" + a.style.cssText, "A" == b.tagName && (b.style.textDecoration = "underline") } if ("A" != b.tagName) { b === a.parentNode && domUtils.remove(a, !0); break } } b = b.parentNode } }, mergeSibling: function(a, b, c) { function d(a, b, c) { var d; if ((d = c[a]) && !domUtils.isBookmarkNode(d) && 1 == d.nodeType && domUtils.isSameElement(c, d)) { for (; d.firstChild; ) "firstChild" == b ? c.insertBefore(d.lastChild, c.firstChild) : c.appendChild(d.firstChild); domUtils.remove(d) } } !b && d("previousSibling", "firstChild", a), !c && d("nextSibling", "lastChild", a) }, unSelectable: ie && browser.ie9below || browser.opera ? function(a) { a.onselectstart = function() { return !1 } , a.onclick = a.onkeyup = a.onkeydown = function() { return !1 } , a.unselectable = "on", a.setAttribute("unselectable", "on"); for (var b, c = 0; b = a.all[c++]; ) switch (b.tagName.toLowerCase()) { case "iframe": case "textarea": case "input": case "select": break; default: b.unselectable = "on", a.setAttribute("unselectable", "on") } } : function(a) { a.style.MozUserSelect = a.style.webkitUserSelect = a.style.msUserSelect = a.style.KhtmlUserSelect = "none" } , removeAttributes: function(a, b) { b = utils.isArray(b) ? b : utils.trim(b).replace(/[ ]{2,}/g, " ").split(" "); for (var c, d = 0; c = b[d++]; ) { switch (c = attrFix[c] || c) { case "className": a[c] = ""; break; case "style": a.style.cssText = ""; var e = a.getAttributeNode("style"); !browser.ie && e && a.removeAttributeNode(e) } a.removeAttribute(c) } }, createElement: function(a, b, c) { return domUtils.setAttributes(a.createElement(b), c) }, setAttributes: function(a, b) { for (var c in b) if (b.hasOwnProperty(c)) { var d = b[c]; switch (c) { case "class": a.className = d; break; case "style": a.style.cssText = a.style.cssText + ";" + d; break; case "innerHTML": a[c] = d; break; case "value": a.value = d; break; default: a.setAttribute(attrFix[c] || c, d) } } return a }, getComputedStyle: function(a, b) { var c = "width height top left"; if (c.indexOf(b) > -1) return a["offset" + b.replace(/^\w/, function(a) { return a.toUpperCase() })] + "px"; if (3 == a.nodeType && (a = a.parentNode), browser.ie && browser.version < 9 && "font-size" == b && !a.style.fontSize && !dtd.$empty[a.tagName] && !dtd.$nonChild[a.tagName]) { var d = a.ownerDocument.createElement("span"); d.style.cssText = "padding:0;border:0;font-family:simsun;", d.innerHTML = ".", a.appendChild(d); var e = d.offsetHeight; return a.removeChild(d), d = null, e + "px" } try { var f = domUtils.getStyle(a, b) || (window.getComputedStyle ? domUtils.getWindow(a).getComputedStyle(a, "").getPropertyValue(b) : (a.currentStyle || a.style)[utils.cssStyleToDomStyle(b)]) } catch (g) { return "" } return utils.transUnitToPx(utils.fixColor(b, f)) }, removeClasses: function(a, b) { b = utils.isArray(b) ? b : utils.trim(b).replace(/[ ]{2,}/g, " ").split(" "); for (var c, d = 0, e = a.className; c = b[d++]; ) e = e.replace(new RegExp("\\b" + c + "\\b"), ""); e = utils.trim(e).replace(/[ ]{2,}/g, " "), e ? a.className = e : domUtils.removeAttributes(a, ["class"]) }, addClass: function(a, b) { if (a) { b = utils.trim(b).replace(/[ ]{2,}/g, " ").split(" "); for (var c, d = 0, e = a.className; c = b[d++]; ) new RegExp("\\b" + c + "\\b").test(e) || (e += " " + c); a.className = utils.trim(e) } }, hasClass: function(a, b) { if (utils.isRegExp(b)) return b.test(a.className); b = utils.trim(b).replace(/[ ]{2,}/g, " ").split(" "); for (var c, d = 0, e = a.className; c = b[d++]; ) if (!new RegExp("\\b" + c + "\\b","i").test(e)) return !1; return d - 1 == b.length }, preventDefault: function(a) { a.preventDefault ? a.preventDefault() : a.returnValue = !1 }, removeStyle: function(a, b) { browser.ie ? ("color" == b && (b = "(^|;)" + b), a.style.cssText = a.style.cssText.replace(new RegExp(b + "[^:]*:[^;]+;?","ig"), "")) : a.style.removeProperty ? a.style.removeProperty(b) : a.style.removeAttribute(utils.cssStyleToDomStyle(b)), a.style.cssText || domUtils.removeAttributes(a, ["style"]) }, getStyle: function(a, b) { var c = a.style[utils.cssStyleToDomStyle(b)]; return utils.fixColor(b, c) }, setStyle: function(a, b, c) { a.style[utils.cssStyleToDomStyle(b)] = c, utils.trim(a.style.cssText) || this.removeAttributes(a, "style") }, setStyles: function(a, b) { for (var c in b) b.hasOwnProperty(c) && domUtils.setStyle(a, c, b[c]) }, removeDirtyAttr: function(a) { for (var b, c = 0, d = a.getElementsByTagName("*"); b = d[c++]; ) b.removeAttribute("_moz_dirty"); a.removeAttribute("_moz_dirty") }, getChildCount: function(a, b) { var c = 0 , d = a.firstChild; for (b = b || function() { return 1 } ; d; ) b(d) && c++, d = d.nextSibling; return c }, isEmptyNode: function(a) { return !a.firstChild || 0 == domUtils.getChildCount(a, function(a) { return !domUtils.isBr(a) && !domUtils.isBookmarkNode(a) && !domUtils.isWhitespace(a) }) }, clearSelectedArr: function(a) { for (var b; b = a.pop(); ) domUtils.removeAttributes(b, ["class"]) }, scrollToView: function(a, b, c) { var d = function() { var a = b.document , c = "CSS1Compat" == a.compatMode; return { width: (c ? a.documentElement.clientWidth : a.body.clientWidth) || 0, height: (c ? a.documentElement.clientHeight : a.body.clientHeight) || 0 } } , e = function(a) { if ("pageXOffset"in a) return { x: a.pageXOffset || 0, y: a.pageYOffset || 0 }; var b = a.document; return { x: b.documentElement.scrollLeft || b.body.scrollLeft || 0, y: b.documentElement.scrollTop || b.body.scrollTop || 0 } } , f = d().height , g = f * -1 + c; g += a.offsetHeight || 0; var h = domUtils.getXY(a); g += h.y; var i = e(b).y; (g > i || g < i - f) && b.scrollTo(0, g + (g < 0 ? -20 : 20)) }, isBr: function(a) { return 1 == a.nodeType && "BR" == a.tagName }, isFillChar: function(a, b) { if (3 != a.nodeType) return !1; var c = a.nodeValue; return b ? new RegExp("^" + domUtils.fillChar).test(c) : !c.replace(new RegExp(domUtils.fillChar,"g"), "").length }, isStartInblock: function(a) { var b, c = a.cloneRange(), d = 0, e = c.startContainer; if (1 == e.nodeType && e.childNodes[c.startOffset]) { e = e.childNodes[c.startOffset]; for (var f = e.previousSibling; f && domUtils.isFillChar(f); ) e = f, f = f.previousSibling } for (this.isFillChar(e, !0) && 1 == c.startOffset && (c.setStartBefore(e), e = c.startContainer); e && domUtils.isFillChar(e); ) b = e, e = e.previousSibling; for (b && (c.setStartBefore(b), e = c.startContainer), 1 == e.nodeType && domUtils.isEmptyNode(e) && 1 == c.startOffset && c.setStart(e, 0).collapse(!0); !c.startOffset; ) { if (e = c.startContainer, domUtils.isBlockElm(e) || domUtils.isBody(e)) { d = 1; break } var g, f = c.startContainer.previousSibling; if (f) { for (; f && domUtils.isFillChar(f); ) g = f, f = f.previousSibling; g ? c.setStartBefore(g) : c.setStartBefore(c.startContainer) } else c.setStartBefore(c.startContainer) } return d && !domUtils.isBody(c.startContainer) ? 1 : 0 }, isEmptyBlock: function(a, b) { if (1 != a.nodeType) return 0; if (b = b || new RegExp("[  \t\r\n" + domUtils.fillChar + "]","g"), a[browser.ie ? "innerText" : "textContent"].replace(b, "").length > 0) return 0; for (var c in dtd.$isNotEmpty) if (a.getElementsByTagName(c).length) return 0; return 1 }, setViewportOffset: function(a, b) { var c = 0 | parseInt(a.style.left) , d = 0 | parseInt(a.style.top) , e = a.getBoundingClientRect() , f = b.left - e.left , g = b.top - e.top; f && (a.style.left = c + f + "px"), g && (a.style.top = d + g + "px") }, fillNode: function(a, b) { var c = browser.ie ? a.createTextNode(domUtils.fillChar) : a.createElement("br"); b.innerHTML = "", b.appendChild(c) }, moveChild: function(a, b, c) { for (; a.firstChild; ) c && b.firstChild ? b.insertBefore(a.lastChild, b.firstChild) : b.appendChild(a.firstChild) }, hasNoAttributes: function(a) { return browser.ie ? /^<\w+\s*?>/.test(a.outerHTML) : 0 == a.attributes.length }, isCustomeNode: function(a) { return 1 == a.nodeType && a.getAttribute("_ue_custom_node_") }, isTagNode: function(a, b) { return 1 == a.nodeType && new RegExp("\\b" + a.tagName + "\\b","i").test(b) }, filterNodeList: function(a, b, c) { var d = []; if (!utils.isFunction(b)) { var e = b; b = function(a) { return utils.indexOf(utils.isArray(e) ? e : e.split(" "), a.tagName.toLowerCase()) != -1 } } return utils.each(a, function(a) { b(a) && d.push(a) }), 0 == d.length ? null : 1 != d.length && c ? d : d[0] }, isInNodeEndBoundary: function(a, b) { var c = a.startContainer; if (3 == c.nodeType && a.startOffset != c.nodeValue.length) return 0; if (1 == c.nodeType && a.startOffset != c.childNodes.length) return 0; for (; c !== b; ) { if (c.nextSibling) return 0; c = c.parentNode } return 1 }, isBoundaryNode: function(a, b) { for (var c; !domUtils.isBody(a); ) if (c = a, a = a.parentNode, c !== a[b]) return !1; return !0 }, fillHtml: browser.ie11below ? " " : "
" } , fillCharReg = new RegExp(domUtils.fillChar,"g"); !function() { function a(a) { a.collapsed = a.startContainer && a.endContainer && a.startContainer === a.endContainer && a.startOffset == a.endOffset } function b(a) { return !a.collapsed && 1 == a.startContainer.nodeType && a.startContainer === a.endContainer && a.endOffset - a.startOffset == 1 } function c(b, c, d, e) { return 1 == c.nodeType && (dtd.$empty[c.tagName] || dtd.$nonChild[c.tagName]) && (d = domUtils.getNodeIndex(c) + (b ? 0 : 1), c = c.parentNode), b ? (e.startContainer = c, e.startOffset = d, e.endContainer || e.collapse(!0)) : (e.endContainer = c, e.endOffset = d, e.startContainer || e.collapse(!1)), a(e), e } function d(a, b) { var c, d, e = a.startContainer, f = a.endContainer, g = a.startOffset, h = a.endOffset, i = a.document, j = i.createDocumentFragment(); if (1 == e.nodeType && (e = e.childNodes[g] || (c = e.appendChild(i.createTextNode("")))), 1 == f.nodeType && (f = f.childNodes[h] || (d = f.appendChild(i.createTextNode("")))), e === f && 3 == e.nodeType) return j.appendChild(i.createTextNode(e.substringData(g, h - g))), b && (e.deleteData(g, h - g), a.collapse(!0)), j; for (var k, l, m = j, n = domUtils.findParents(e, !0), o = domUtils.findParents(f, !0), p = 0; n[p] == o[p]; ) p++; for (var q, r = p; q = n[r]; r++) { for (k = q.nextSibling, q == e ? c || (3 == a.startContainer.nodeType ? (m.appendChild(i.createTextNode(e.nodeValue.slice(g))), b && e.deleteData(g, e.nodeValue.length - g)) : m.appendChild(b ? e : e.cloneNode(!0))) : (l = q.cloneNode(!1), m.appendChild(l)); k && k !== f && k !== o[r]; ) q = k.nextSibling, m.appendChild(b ? k : k.cloneNode(!0)), k = q; m = l } m = j, n[p] || (m.appendChild(n[p - 1].cloneNode(!1)), m = m.firstChild); for (var s, r = p; s = o[r]; r++) { if (k = s.previousSibling, s == f ? d || 3 != a.endContainer.nodeType || (m.appendChild(i.createTextNode(f.substringData(0, h))), b && f.deleteData(0, h)) : (l = s.cloneNode(!1), m.appendChild(l)), r != p || !n[p]) for (; k && k !== e; ) s = k.previousSibling, m.insertBefore(b ? k : k.cloneNode(!0), m.firstChild), k = s; m = l } return b && a.setStartBefore(o[p] ? n[p] ? o[p] : n[p - 1] : o[p - 1]).collapse(!0), c && domUtils.remove(c), d && domUtils.remove(d), j } function e(a, b) { try { if (g && domUtils.inDoc(g, a)) if (g.nodeValue.replace(fillCharReg, "").length) g.nodeValue = g.nodeValue.replace(fillCharReg, ""); else { var c = g.parentNode; for (domUtils.remove(g); c && domUtils.isEmptyInlineElement(c) && (browser.safari ? !(domUtils.getPosition(c, b) & domUtils.POSITION_CONTAINS) : !c.contains(b)); ) g = c.parentNode, domUtils.remove(c), c = g } } catch (d) {} } function f(a, b) { var c; for (a = a[b]; a && domUtils.isFillChar(a); ) c = a[b], domUtils.remove(a), a = c } var g, h = 0, i = domUtils.fillChar, j = dom.Range = function(a) { var b = this; b.startContainer = b.startOffset = b.endContainer = b.endOffset = null, b.document = a, b.collapsed = !0 } ; j.prototype = { cloneContents: function() { return this.collapsed ? null : d(this, 0) }, deleteContents: function() { var a; return this.collapsed || d(this, 1), browser.webkit && (a = this.startContainer, 3 != a.nodeType || a.nodeValue.length || (this.setStartBefore(a).collapse(!0), domUtils.remove(a))), this }, extractContents: function() { return this.collapsed ? null : d(this, 2) }, setStart: function(a, b) { return c(!0, a, b, this) }, setEnd: function(a, b) { return c(!1, a, b, this) }, setStartAfter: function(a) { return this.setStart(a.parentNode, domUtils.getNodeIndex(a) + 1) }, setStartBefore: function(a) { if(!a) { return ''; } return this.setStart(a.parentNode, domUtils.getNodeIndex(a)) }, setEndAfter: function(a) { return this.setEnd(a.parentNode, domUtils.getNodeIndex(a) + 1) }, setEndBefore: function(a) { return this.setEnd(a.parentNode, domUtils.getNodeIndex(a)) }, setStartAtFirst: function(a) { return this.setStart(a, 0) }, setStartAtLast: function(a) { return this.setStart(a, 3 == a.nodeType ? a.nodeValue.length : a.childNodes.length) }, setEndAtFirst: function(a) { return this.setEnd(a, 0) }, setEndAtLast: function(a) { return this.setEnd(a, 3 == a.nodeType ? a.nodeValue.length : a.childNodes.length) }, selectNode: function(a) { if(!a) { return false; } return this.setStartBefore(a).setEndAfter(a) }, selectNodeContents: function(a) { return this.setStart(a, 0).setEndAtLast(a) }, cloneRange: function() { var a = this; return new j(a.document).setStart(a.startContainer, a.startOffset).setEnd(a.endContainer, a.endOffset) }, collapse: function(a) { var b = this; return a ? (b.endContainer = b.startContainer, b.endOffset = b.startOffset) : (b.startContainer = b.endContainer, b.startOffset = b.endOffset), b.collapsed = !0, b }, shrinkBoundary: function(a) { function b(a) { return 1 == a.nodeType && !domUtils.isBookmarkNode(a) && !dtd.$empty[a.tagName] && !dtd.$nonChild[a.tagName] } for (var c, d = this, e = d.collapsed; 1 == d.startContainer.nodeType && (c = d.startContainer.childNodes[d.startOffset]) && b(c); ) d.setStart(c, 0); if (e) return d.collapse(!0); if (!a) for (; 1 == d.endContainer.nodeType && d.endOffset > 0 && (c = d.endContainer.childNodes[d.endOffset - 1]) && b(c); ) d.setEnd(c, c.childNodes.length); return d }, getCommonAncestor: function(a, c) { var d = this , e = d.startContainer , f = d.endContainer; return e === f ? a && b(this) && (e = e.childNodes[d.startOffset], 1 == e.nodeType) ? e : c && 3 == e.nodeType ? e.parentNode : e : domUtils.getCommonAncestor(e, f) }, trimBoundary: function(a) { this.txtToElmBoundary(); var b = this.startContainer , c = this.startOffset , d = this.collapsed , e = this.endContainer; if (3 == b.nodeType) { if (0 == c) this.setStartBefore(b); else if (c >= b.nodeValue.length) this.setStartAfter(b); else { var f = domUtils.split(b, c); b === e ? this.setEnd(f, this.endOffset - c) : b.parentNode === e && (this.endOffset += 1), this.setStartBefore(f) } if (d) return this.collapse(!0) } return a || (c = this.endOffset, e = this.endContainer, 3 == e.nodeType && (0 == c ? this.setEndBefore(e) : (c < e.nodeValue.length && domUtils.split(e, c), this.setEndAfter(e)))), this }, txtToElmBoundary: function(a) { function b(a, b) { var c = a[b + "Container"] , d = a[b + "Offset"]; 3 == c.nodeType && (d ? d >= c.nodeValue.length && a["set" + b.replace(/(\w)/, function(a) { return a.toUpperCase() }) + "After"](c) : a["set" + b.replace(/(\w)/, function(a) { return a.toUpperCase() }) + "Before"](c)) } return !a && this.collapsed || (b(this, "start"), b(this, "end")), this }, insertNode: function(a) { var b = a , c = 1; 11 == a.nodeType && (b = a.firstChild, c = a.childNodes.length), this.trimBoundary(!0); var d = this.startContainer , e = this.startOffset , f = d.childNodes[e]; return f ? d.insertBefore(a, f) : d.appendChild(a), b.parentNode === this.endContainer && (this.endOffset = this.endOffset + c), this.setStartBefore(b) }, setCursor: function(a, b) { return this.collapse(!a).select(b) }, createBookmark: function(a, b) { var c, d = this.document.createElement("span"); return d.style.cssText = "display:none;line-height:0px;", d.appendChild(this.document.createTextNode("‍")), d.id = "_baidu_bookmark_start_" + (b ? "" : h++), this.collapsed || (c = d.cloneNode(!0), c.id = "_baidu_bookmark_end_" + (b ? "" : h++)), this.insertNode(d), c && this.collapse().insertNode(c).setEndBefore(c), this.setStartAfter(d), { start: a ? d.id : d, end: c ? a ? c.id : c : null, id: a } }, moveToBookmark: function(a) { var b = a.id ? this.document.getElementById(a.start) : a.start , c = a.end && a.id ? this.document.getElementById(a.end) : a.end; return this.setStartBefore(b), domUtils.remove(b), c ? (this.setEndBefore(c), domUtils.remove(c)) : this.collapse(!0), this }, enlarge: function(a, b) { var c, d, e = domUtils.isBody, f = this.document.createTextNode(""); if (a) { for (d = this.startContainer, 1 == d.nodeType ? d.childNodes[this.startOffset] ? c = d = d.childNodes[this.startOffset] : (d.appendChild(f), c = d = f) : c = d; ; ) { if (domUtils.isBlockElm(d)) { for (d = c; (c = d.previousSibling) && !domUtils.isBlockElm(c); ) d = c; this.setStartBefore(d); break } c = d, d = d.parentNode } for (d = this.endContainer, 1 == d.nodeType ? ((c = d.childNodes[this.endOffset]) ? d.insertBefore(f, c) : d.appendChild(f), c = d = f) : c = d; ; ) { if (domUtils.isBlockElm(d)) { for (d = c; (c = d.nextSibling) && !domUtils.isBlockElm(c); ) d = c; this.setEndAfter(d); break } c = d, d = d.parentNode } f.parentNode === this.endContainer && this.endOffset--, domUtils.remove(f) } if (!this.collapsed) { for (; !(0 != this.startOffset || b && b(this.startContainer) || e(this.startContainer)); ) this.setStartBefore(this.startContainer); for (; !(this.endOffset != (1 == this.endContainer.nodeType ? this.endContainer.childNodes.length : this.endContainer.nodeValue.length) || b && b(this.endContainer) || e(this.endContainer)); ) this.setEndAfter(this.endContainer) } return this }, enlargeToBlockElm: function(a) { for (; !domUtils.isBlockElm(this.startContainer); ) this.setStartBefore(this.startContainer); if (!a) for (; !domUtils.isBlockElm(this.endContainer); ) this.setEndAfter(this.endContainer); return this }, adjustmentBoundary: function() { if (!this.collapsed) { for (; !domUtils.isBody(this.startContainer) && this.startOffset == this.startContainer[3 == this.startContainer.nodeType ? "nodeValue" : "childNodes"].length && this.startContainer[3 == this.startContainer.nodeType ? "nodeValue" : "childNodes"].length; ) this.setStartAfter(this.startContainer); for (; !domUtils.isBody(this.endContainer) && !this.endOffset && this.endContainer[3 == this.endContainer.nodeType ? "nodeValue" : "childNodes"].length; ) this.setEndBefore(this.endContainer) } return this }, applyInlineStyle: function(a, b, c) { if (this.collapsed) return this; this.trimBoundary().enlarge(!1, function(a) { return 1 == a.nodeType && domUtils.isBlockElm(a) }).adjustmentBoundary(); for (var d, e, f = this.createBookmark(), g = f.end, h = function(a) { return 1 == a.nodeType ? "br" != a.tagName.toLowerCase() : !domUtils.isWhitespace(a) }, i = domUtils.getNextDomNode(f.start, !1, h), j = this.cloneRange(); i && domUtils.getPosition(i, g) & domUtils.POSITION_PRECEDING; ) if (3 == i.nodeType || dtd[a][i.tagName]) { for (j.setStartBefore(i), d = i; d && (3 == d.nodeType || dtd[a][d.tagName]) && d !== g; ) e = d, d = domUtils.getNextDomNode(d, 1 == d.nodeType, null, function(b) { return dtd[a][b.tagName] }); var k, l = j.setEndAfter(e).extractContents(); if (c && c.length > 0) { var m, n; n = m = c[0].cloneNode(!1); for (var o, p = 1; o = c[p++]; ) m.appendChild(o.cloneNode(!1)), m = m.firstChild; k = m } else k = j.document.createElement(a); b && domUtils.setAttributes(k, b), k.appendChild(l), j.insertNode(c ? n : k); var q; if ("span" == a && b.style && /text\-decoration/.test(b.style) && (q = domUtils.findParentByTagName(k, "a", !0)) ? (domUtils.setAttributes(q, b), domUtils.remove(k, !0), k = q) : (domUtils.mergeSibling(k), domUtils.clearEmptySibling(k)), domUtils.mergeChild(k, b), i = domUtils.getNextDomNode(k, !1, h), domUtils.mergeToParent(k), d === g) break } else i = domUtils.getNextDomNode(i, !0, h); return this.moveToBookmark(f) }, removeInlineStyle: function(a) { if (this.collapsed) return this; a = utils.isArray(a) ? a : [a], this.shrinkBoundary().adjustmentBoundary(); for (var b = this.startContainer, c = this.endContainer; ; ) { if (1 == b.nodeType) { if (utils.indexOf(a, b.tagName.toLowerCase()) > -1) break; if ("body" == b.tagName.toLowerCase()) { b = null; break } } b = b.parentNode } for (; ; ) { if (1 == c.nodeType) { if (utils.indexOf(a, c.tagName.toLowerCase()) > -1) break; if ("body" == c.tagName.toLowerCase()) { c = null; break } } c = c.parentNode } var d, e, f = this.createBookmark(); b && (e = this.cloneRange().setEndBefore(f.start).setStartBefore(b), d = e.extractContents(), e.insertNode(d), domUtils.clearEmptySibling(b, !0), b.parentNode.insertBefore(f.start, b)), c && (e = this.cloneRange().setStartAfter(f.end).setEndAfter(c), d = e.extractContents(), e.insertNode(d), domUtils.clearEmptySibling(c, !1, !0), c.parentNode.insertBefore(f.end, c.nextSibling)); for (var g, h = domUtils.getNextDomNode(f.start, !1, function(a) { return 1 == a.nodeType }); h && h !== f.end; ) g = domUtils.getNextDomNode(h, !0, function(a) { return 1 == a.nodeType }), utils.indexOf(a, h.tagName.toLowerCase()) > -1 && domUtils.remove(h, !0), h = g; return this.moveToBookmark(f) }, getClosedNode: function() { var a; if (!this.collapsed) { var c = this.cloneRange().adjustmentBoundary().shrinkBoundary(); if (b(c)) { var d = c.startContainer.childNodes[c.startOffset]; d && 1 == d.nodeType && (dtd.$empty[d.tagName] || dtd.$nonChild[d.tagName]) && (a = d) } } return a }, select: browser.ie ? function(a, b) { var c; this.collapsed || this.shrinkBoundary(); var d = this.getClosedNode(); if (d && !b) { try { c = this.document.body.createControlRange(), c.addElement(d), c.select() } catch (h) {} return this } var j, k = this.createBookmark(), l = k.start; if (c = this.document.body.createTextRange(), c.moveToElementText(l), c.moveStart("character", 1), this.collapsed) { if (!a && 3 != this.startContainer.nodeType) { var m = this.document.createTextNode(i) , n = this.document.createElement("span"); n.appendChild(this.document.createTextNode(i)), l.parentNode.insertBefore(n, l), l.parentNode.insertBefore(m, l), e(this.document, m), g = m, f(n, "previousSibling"), f(l, "nextSibling"), c.moveStart("character", -1), c.collapse(!0) } } else { var o = this.document.body.createTextRange(); j = k.end, o.moveToElementText(j), c.setEndPoint("EndToEnd", o) } this.moveToBookmark(k), n && domUtils.remove(n); try { c.select() } catch (h) {} return this } : function(a) { function b(a) { function b(b, c, d) { 3 == b.nodeType && b.nodeValue.length < c && (a[d + "Offset"] = b.nodeValue.length) } b(a.startContainer, a.startOffset, "start"), b(a.endContainer, a.endOffset, "end") } var c, d = domUtils.getWindow(this.document), h = d.getSelection(); if (browser.gecko ? this.document.body.focus() : d.focus(), h) { if (h.removeAllRanges(), this.collapsed && !a) { var j = this.startContainer , k = j; 1 == j.nodeType && (k = j.childNodes[this.startOffset]), 3 == j.nodeType && this.startOffset || (k ? k.previousSibling && 3 == k.previousSibling.nodeType : j.lastChild && 3 == j.lastChild.nodeType) || (c = this.document.createTextNode(i), this.insertNode(c), e(this.document, c), f(c, "previousSibling"), f(c, "nextSibling"), g = c, this.setStart(c, browser.webkit ? 1 : 0).collapse(!0)) } var l = this.document.createRange(); if (this.collapsed && browser.opera && 1 == this.startContainer.nodeType) { var k = this.startContainer.childNodes[this.startOffset]; if (k) { for (; k && domUtils.isBlockElm(k) && 1 == k.nodeType && k.childNodes[0]; ) k = k.childNodes[0]; k && this.setStartBefore(k).collapse(!0) } else k = this.startContainer.lastChild, k && domUtils.isBr(k) && this.setStartBefore(k).collapse(!0) } b(this), l.setStart(this.startContainer, this.startOffset), l.setEnd(this.endContainer, this.endOffset), h.addRange(l) } return this } , scrollToView: function(a, b) { a = a ? window : domUtils.getWindow(this.document); var c = this , d = c.document.createElement("span"); return d.innerHTML = " ", c.cloneRange().insertNode(d), domUtils.scrollToView(d, a, b), domUtils.remove(d), c }, inFillChar: function() { var a = this.startContainer; return !(!this.collapsed || 3 != a.nodeType || a.nodeValue.replace(new RegExp("^" + domUtils.fillChar), "").length + 1 != a.nodeValue.length) }, createAddress: function(a, b) { function c(a) { for (var c, d = a ? e.startContainer : e.endContainer, f = domUtils.findParents(d, !0, function(a) { return !domUtils.isBody(a) }), g = [], h = 0; c = f[h++]; ) g.push(domUtils.getNodeIndex(c, b)); var i = 0; if (b) if (3 == d.nodeType) { for (var j = d.previousSibling; j && 3 == j.nodeType; ) i += j.nodeValue.replace(fillCharReg, "").length, j = j.previousSibling; i += a ? e.startOffset : e.endOffset } else if (d = d.childNodes[a ? e.startOffset : e.endOffset]) i = domUtils.getNodeIndex(d, b); else { d = a ? e.startContainer : e.endContainer; for (var k = d.firstChild; k; ) if (domUtils.isFillChar(k)) k = k.nextSibling; else if (i++, 3 == k.nodeType) for (; k && 3 == k.nodeType; ) k = k.nextSibling; else k = k.nextSibling } else i = a ? domUtils.isFillChar(d) ? 0 : e.startOffset : e.endOffset; return i < 0 && (i = 0), g.push(i), g } var d = {} , e = this; return d.startAddress = c(!0), a || (d.endAddress = e.collapsed ? [].concat(d.startAddress) : c()), d }, moveToAddress: function(a, b) { function c(a, b) { for (var c, e, f, g = d.document.body, h = 0, i = a.length; h < i; h++) if (f = a[h], c = g, g = g.childNodes[f], !g) { e = f; break } b ? g ? d.setStartBefore(g) : d.setStart(c, e) : g ? d.setEndBefore(g) : d.setEnd(c, e) } var d = this; return c(a.startAddress, !0), !b && a.endAddress && c(a.endAddress), d }, equals: function(a) { for (var b in this) if (this.hasOwnProperty(b) && this[b] !== a[b]) return !1; return !0 }, traversal: function(a, b) { if (this.collapsed) return this; for (var c = this.createBookmark(), d = c.end, e = domUtils.getNextDomNode(c.start, !1, b); e && e !== d && domUtils.getPosition(e, d) & domUtils.POSITION_PRECEDING; ) { var f = domUtils.getNextDomNode(e, !1, b); a(e), e = f } return this.moveToBookmark(c) } } }(), function() { function a(a, b) { var c = domUtils.getNodeIndex; a = a.duplicate(), a.collapse(b); var d = a.parentElement(); if (!d.hasChildNodes()) return { container: d, offset: 0 }; for (var e, f, g = d.children, h = a.duplicate(), i = 0, j = g.length - 1, k = -1; i <= j; ) { k = Math.floor((i + j) / 2), e = g[k], h.moveToElementText(e); var l = h.compareEndPoints("StartToStart", a); if (l > 0) j = k - 1; else { if (!(l < 0)) return { container: d, offset: c(e) }; i = k + 1 } } if (k == -1) { if (h.moveToElementText(d), h.setEndPoint("StartToStart", a), f = h.text.replace(/(\r\n|\r)/g, "\n").length, g = d.childNodes, !f) return e = g[g.length - 1], { container: e, offset: e.nodeValue.length }; for (var m = g.length; f > 0; ) f -= g[--m].nodeValue.length; return { container: g[m], offset: -f } } if (h.collapse(l > 0), h.setEndPoint(l > 0 ? "StartToStart" : "EndToStart", a), f = h.text.replace(/(\r\n|\r)/g, "\n").length, !f) return dtd.$empty[e.tagName] || dtd.$nonChild[e.tagName] ? { container: d, offset: c(e) + (l > 0 ? 0 : 1) } : { container: e, offset: l > 0 ? 0 : e.childNodes.length }; for (; f > 0; ) try { var n = e; e = e[l > 0 ? "previousSibling" : "nextSibling"], f -= e.nodeValue.length } catch (o) { return { container: d, offset: c(n) } } return { container: e, offset: l > 0 ? -f : e.nodeValue.length + f } } function b(b, c) { if (b.item) c.selectNode(b.item(0)); else { var d = a(b, !0); c.setStart(d.container, d.offset), 0 != b.compareEndPoints("StartToEnd", b) && (d = a(b, !1), c.setEnd(d.container, d.offset)) } return c } function c(a) { var b; try { b = a.getNative().createRange() } catch (c) { return null } var d = b.item ? b.item(0) : b.parentElement(); return (d.ownerDocument || d) === a.document ? b : null } var d = dom.Selection = function(a) { var b, d = this; d.document = a, browser.ie9below && (b = domUtils.getWindow(a).frameElement, domUtils.on(b, "beforedeactivate", function() { d._bakIERange = d.getIERange() }), domUtils.on(b, "activate", function() { try { !c(d) && d._bakIERange && d._bakIERange.select() } catch (a) {} d._bakIERange = null })), b = a = null } ; d.prototype = { rangeInBody: function(a, b) { var c = browser.ie9below || b ? a.item ? a.item() : a.parentElement() : a.startContainer; return c === this.document.body || domUtils.inDoc(c, this.document) }, getNative: function() { var a = this.document; try { return a ? browser.ie9below ? a.selection : domUtils.getWindow(a).getSelection() : null } catch (b) { return null } }, getIERange: function() { var a = c(this); return !a && this._bakIERange ? this._bakIERange : a }, cache: function() { this.clear(), this._cachedRange = this.getRange(), this._cachedStartElement = this.getStart(), this._cachedStartElementPath = this.getStartElementPath() }, getStartElementPath: function() { if (this._cachedStartElementPath) return this._cachedStartElementPath; var a = this.getStart(); return a ? domUtils.findParents(a, !0, null, !0) : [] }, clear: function() { this._cachedStartElementPath = this._cachedRange = this._cachedStartElement = null }, isFocus: function() { try { if (browser.ie9below) { var a = c(this); return !(!a || !this.rangeInBody(a)) } return !!this.getNative().rangeCount } catch (b) { return !1 } }, getRange: function() { function a(a) { for (var b = c.document.body.firstChild, d = a.collapsed; b && b.firstChild; ) a.setStart(b, 0), b = b.firstChild; a.startContainer || a.setStart(c.document.body, 0), d && a.collapse(!0) } var c = this; if (null != c._cachedRange) return this._cachedRange; var d = new baidu.editor.dom.Range(c.document); if (browser.ie9below) { var e = c.getIERange(); if (e) try { b(e, d) } catch (f) { a(d) } else a(d) } else { var g = c.getNative(); if (g && g.rangeCount) { var h = g.getRangeAt(0) , i = g.getRangeAt(g.rangeCount - 1); d.setStart(h.startContainer, h.startOffset).setEnd(i.endContainer, i.endOffset), d.collapsed && domUtils.isBody(d.startContainer) && !d.startOffset && a(d) } else { if (this._bakRange && domUtils.inDoc(this._bakRange.startContainer, this.document)) return this._bakRange; a(d) } } return this._bakRange = d }, getStart: function() { if (this._cachedStartElement) return this._cachedStartElement; var a, b, c, d, e = browser.ie9below ? this.getIERange() : this.getRange(); if (browser.ie9below) { if (!e) return this.document.body.firstChild; if (e.item) return e.item(0); for (a = e.duplicate(), a.text.length > 0 && a.moveStart("character", 1), a.collapse(1), b = a.parentElement(), d = c = e.parentElement(); c = c.parentNode; ) if (c == b) { b = d; break } } else if (e.shrinkBoundary(), b = e.startContainer, 1 == b.nodeType && b.hasChildNodes() && (b = b.childNodes[Math.min(b.childNodes.length - 1, e.startOffset)]), 3 == b.nodeType) return b.parentNode; return b }, getText: function() { var a, b; return this.isFocus() && (a = this.getNative()) ? (b = browser.ie9below ? a.createRange() : a.getRangeAt(0), browser.ie9below ? b.text : b.toString()) : "" }, clearRange: function() { this.getNative()[browser.ie9below ? "empty" : "removeAllRanges"]() } } }(), function() { function a(a, b) { var c; if (b.textarea) if (utils.isString(b.textarea)) { for (var d, e = 0, f = domUtils.getElementsByTagName(a, "textarea"); d = f[e++]; ) if (d.id == "ueditor_textarea_" + b.options.textarea) { c = d; break } } else c = b.textarea; c || (a.appendChild(c = domUtils.createElement(document, "textarea", { name: b.options.textarea, id: "ueditor_textarea_" + b.options.textarea, style: "display:none" })), b.textarea = c), !c.getAttribute("name") && c.setAttribute("name", b.options.textarea), c.value = b.hasContents() ? b.options.allHtmlEnabled ? b.getAllHtml() : b.getContent(null, null, !0) : "" } function b(a) { for (var b in a) return b } function c(a) { a.langIsReady = !0, a.fireEvent("langReady") } var d, e = 0, f = UE.Editor = function(a) { var d = this; d.uid = e++, EventBase.call(d), d.commands = {}, d.options = utils.extend(utils.clone(a || {}), UEDITOR_CONFIG, !0), d.shortcutkeys = {}, d.inputRules = [], d.outputRules = [], d.setOpt(f.defaultOptions(d)), d.loadServerConfig(), utils.isEmptyObject(UE.I18N) ? utils.loadFile(document, { src: d.options.langPath + d.options.lang + "/" + d.options.lang + ".js", tag: "script", type: "text/javascript", defer: "defer" }, function() { UE.plugin.load(d), c(d) }) : (d.options.lang = b(UE.I18N), UE.plugin.load(d), c(d)), UE.instants["ueditorInstant" + d.uid] = d } ; f.prototype = { registerCommand: function(a, b) { this.commands[a] = b }, ready: function(a) { var b = this; a && (b.isReady ? a.apply(b) : b.addListener("ready", a)) }, setOpt: function(a, b) { var c = {}; utils.isString(a) ? c[a] = b : c = a, utils.extend(this.options, c, !0) }, getOpt: function(a) { return this.options[a] }, destroy: function() { var a = this; a.fireEvent("destroy"); var b = a.container.parentNode , c = a.textarea; c ? c.style.display = "" : (c = document.createElement("textarea"), b.parentNode.insertBefore(c, b)), c.style.width = a.iframe.offsetWidth + "px", c.style.height = a.iframe.offsetHeight + "px", c.value = a.getContent(), c.id = a.key, b.innerHTML = "", domUtils.remove(b); var d = a.key; for (var e in a) a.hasOwnProperty(e) && delete this[e]; UE.delEditor(d) }, render: function(a) { var b = this , c = b.options , d = function(b) { return parseInt(domUtils.getComputedStyle(a, b)) }; if (utils.isString(a) && (a = document.getElementById(a)), a) { c.initialFrameWidth ? c.minFrameWidth = c.initialFrameWidth : c.minFrameWidth = c.initialFrameWidth = a.offsetWidth, c.initialFrameHeight ? c.minFrameHeight = c.initialFrameHeight : c.initialFrameHeight = c.minFrameHeight = a.offsetHeight, a.style.width = /%$/.test(c.initialFrameWidth) ? "100%" : c.initialFrameWidth - d("padding-left") - d("padding-right") + "px", a.style.height = /%$/.test(c.initialFrameHeight) ? "100%" : c.initialFrameHeight - d("padding-top") - d("padding-bottom") + "px", a.style.zIndex = c.zIndex; var e = (ie && browser.version < 9 ? "" : "") + "" + (c.iframeCssUrl ? "" : "") + (c.iframeCssExtendUrl ? "" : "") + (c.initialStyle ? "" : "") + ""; a.appendChild(domUtils.createElement(document, "iframe", { id: "ueditor_" + b.uid, width: "100%", height: "100%", frameborder: "0", src: "javascript:void(function(){document.open();" + (c.customDomain && document.domain != location.hostname ? 'document.domain="' + document.domain + '";' : "") + 'document.write("' + e + '");document.close();}())' })), a.style.overflow = "hidden", setTimeout(function() { /%$/.test(c.initialFrameWidth) && (c.minFrameWidth = c.initialFrameWidth = a.offsetWidth), /%$/.test(c.initialFrameHeight) && (c.minFrameHeight = c.initialFrameHeight = a.offsetHeight, a.style.height = c.initialFrameHeight + "px") }) } }, _setup: function(b) { var c = this , d = c.options; ie ? (b.body.disabled = !0, b.body.contentEditable = !0, b.body.disabled = !1) : b.body.contentEditable = !0, b.body.spellcheck = !1, c.document = b, c.window = b.defaultView || b.parentWindow, c.iframe = c.window.frameElement, c.body = b.body, c.selection = new dom.Selection(b); var e; browser.gecko && (e = this.selection.getNative()) && e.removeAllRanges(), this._initEvents(); for (var f = this.iframe.parentNode; !domUtils.isBody(f); f = f.parentNode) if ("FORM" == f.tagName) { c.form = f, c.options.autoSyncData ? domUtils.on(c.window, "blur", function() { a(f, c) }) : domUtils.on(f, "submit", function() { a(this, c) }); break } if (d.initialContent) if (d.autoClearinitialContent) { var g = c.execCommand; c.execCommand = function() { return c.fireEvent("firstBeforeExecCommand"), g.apply(c, arguments) } , this._setDefaultContent(d.initialContent) } else this.setContent(d.initialContent, !1, !0); domUtils.isEmptyNode(c.body) && (c.body.innerHTML = "

" + (browser.ie ? "" : "
") + "

"), d.focus && setTimeout(function() { c.focus(c.options.focusInEnd), !c.options.autoClearinitialContent && c._selectionChange() }, 0), c.container || (c.container = this.iframe.parentNode), d.fullscreen && c.ui && c.ui.setFullScreen(!0); try { c.document.execCommand("2D-position", !1, !1) } catch (h) {} try { c.document.execCommand("enableInlineTableEditing", !1, !1) } catch (h) {} try { c.document.execCommand("enableObjectResizing", !1, !1) } catch (h) {} c._bindshortcutKeys(), c.isReady = 1, c.fireEvent("ready"), d.onready && d.onready.call(c), browser.ie9below || domUtils.on(c.window, ["blur", "focus"], function(a) { if ("blur" == a.type) { c._bakRange = c.selection.getRange(); try { c._bakNativeRange = c.selection.getNative().getRangeAt(0), c.selection.getNative().removeAllRanges() } catch (a) { c._bakNativeRange = null } } else try { c._bakRange && c._bakRange.select() } catch (a) {} }), browser.gecko && browser.version <= 10902 && (c.body.contentEditable = !1, setTimeout(function() { c.body.contentEditable = !0 }, 100), setInterval(function() { c.body.style.height = c.iframe.offsetHeight - 20 + "px" }, 100)), !d.isShow && c.setHide(), d.readonly && c.setDisabled() }, sync: function(b) { var c = this , d = b ? document.getElementById(b) : domUtils.findParent(c.iframe.parentNode, function(a) { return "FORM" == a.tagName }, !0); d && a(d, c) }, setHeight: function(a, b) { a !== parseInt(this.iframe.parentNode.style.height) && (this.iframe.parentNode.style.height = a + "px"), !b && (this.options.minFrameHeight = this.options.initialFrameHeight = a), this.body.style.height = a + "px", !b && this.trigger("setHeight") }, addshortcutkey: function(a, b) { var c = {}; b ? c[a] = b : c = a, utils.extend(this.shortcutkeys, c) }, _bindshortcutKeys: function() { var a = this , b = this.shortcutkeys; a.addListener("keydown", function(c, d) { var e = d.keyCode || d.which; for (var f in b) for (var g, h = b[f].split(","), i = 0; g = h[i++]; ) { g = g.split(":"); var j = g[0] , k = g[1]; (/^(ctrl)(\+shift)?\+(\d+)$/.test(j.toLowerCase()) || /^(\d+)$/.test(j)) && (("ctrl" == RegExp.$1 ? d.ctrlKey || d.metaKey : 0) && ("" != RegExp.$2 ? d[RegExp.$2.slice(1) + "Key"] : 1) && e == RegExp.$3 || e == RegExp.$1) && (a.queryCommandState(f, k) != -1 && a.execCommand(f, k), domUtils.preventDefault(d)) } }) }, getContent: function(a, b, c, d, e) { var f = this; if (a && utils.isFunction(a) && (b = a, a = ""), b ? !b() : !this.hasContents()) return ""; f.fireEvent("beforegetcontent"); var g = UE.htmlparser(f.body.innerHTML, d); return f.filterOutputRule(g), f.fireEvent("aftergetcontent", a, g), g.toHtml(e) }, getAllHtml: function() { var a = this , b = []; if (a.fireEvent("getAllHtml", b), browser.ie && browser.version > 8) { var c = ""; utils.each(a.document.styleSheets, function(a) { c += a.href ? '' : "" }), utils.each(a.document.getElementsByTagName("script"), function(a) { c += a.outerHTML }) } return "" + (a.options.charset ? '' : "") + (c || a.document.getElementsByTagName("head")[0].innerHTML) + b.join("\n") + "" + a.getContent(null, null, !0) + "" }, getPlainTxt: function() { var a = new RegExp(domUtils.fillChar,"g") , b = this.body.innerHTML.replace(/[\n\r]/g, ""); return b = b.replace(/<(p|div)[^>]*>(| )<\/\1>/gi, "\n").replace(//gi, "\n").replace(/<[^>\/]+>/g, "").replace(/(\n)?<\/([^>]+)>/g, function(a, b, c) { return dtd.$block[c] ? "\n" : b ? b : "" }), b.replace(a, "").replace(/\u00a0/g, " ").replace(/ /g, " ") }, getContentTxt: function() { var a = new RegExp(domUtils.fillChar,"g"); return this.body[browser.ie ? "innerText" : "textContent"].replace(a, "").replace(/\u00a0/g, " ") }, setContent: function(b, c, d) { function e(a) { return "DIV" == a.tagName && a.getAttribute("cdata_tag") } var f = this; f.fireEvent("beforesetcontent", b); var g = UE.htmlparser(b); if (f.filterInputRule(g), b = g.toHtml(), //将标签进行转义 f.body.innerHTML = (c ? f.body.innerHTML : "") + b, "p" == f.options.enterTag) { var h, i = this.body.firstChild; if (!i || 1 == i.nodeType && (dtd.$cdata[i.tagName] || e(i) || domUtils.isCustomeNode(i)) && i === this.body.lastChild) this.body.innerHTML = "

" + (browser.ie ? " " : "
") + "

" + this.body.innerHTML; else for (var j = f.document.createElement("p"); i; ) { for (; i && (3 == i.nodeType || 1 == i.nodeType && dtd.p[i.tagName] && !dtd.$cdata[i.tagName]); ) h = i.nextSibling, j.appendChild(i), i = h; if (j.firstChild) { if (!i) { f.body.appendChild(j); break } i.parentNode.insertBefore(j, i), j = f.document.createElement("p") } i = i.nextSibling } } f.fireEvent("aftersetcontent"), f.fireEvent("contentchange"), !d && f._selectionChange(), f._bakRange = f._bakIERange = f._bakNativeRange = null; var k; browser.gecko && (k = this.selection.getNative()) && k.removeAllRanges(), f.options.autoSyncData && f.form && a(f.form, f) }, focus: function(a) { try { var b = this , c = b.selection.getRange(); if (a) { var d = b.body.lastChild; d && 1 == d.nodeType && !dtd.$empty[d.tagName] && (domUtils.isEmptyBlock(d) ? c.setStartAtFirst(d) : c.setStartAtLast(d), c.collapse(!0)), c.setCursor(!0) } else { if (!c.collapsed && domUtils.isBody(c.startContainer) && 0 == c.startOffset) { var d = b.body.firstChild; d && 1 == d.nodeType && !dtd.$empty[d.tagName] && c.setStartAtFirst(d).collapse(!0) } c.select(!0) } this.fireEvent("focus selectionchange") } catch (e) {} }, isFocus: function() { return this.selection.isFocus() }, blur: function() { var a = this.selection.getNative(); if (a.empty && browser.ie) { var b = document.body.createTextRange(); b.moveToElementText(document.body), b.collapse(!0), b.select(), a.empty() } else a.removeAllRanges() }, _initEvents: function() { var a = this , b = a.document , c = a.window; a._proxyDomEvent = utils.bind(a._proxyDomEvent, a), domUtils.on(b, ["click", "contextmenu", "mousedown", "keydown", "keyup", "keypress", "mouseup", "mouseover", "mouseout", "selectstart"], a._proxyDomEvent), domUtils.on(c, ["focus", "blur"], a._proxyDomEvent), domUtils.on(a.body, "drop", function(b) { browser.gecko && b.stopPropagation && b.stopPropagation(), a.fireEvent("contentchange") }), domUtils.on(b, [UE.browser.isMobile ? "touchend" : "mouseup", "keydown"], function(b) { "keydown" == b.type && (b.ctrlKey || b.metaKey || b.shiftKey || b.altKey) || 2 != b.button && a._selectionChange(250, b) }) }, _proxyDomEvent: function(a) { return this.fireEvent("before" + a.type.replace(/^on/, "").toLowerCase()) !== !1 && (this.fireEvent(a.type.replace(/^on/, ""), a) !== !1 && this.fireEvent("after" + a.type.replace(/^on/, "").toLowerCase())) }, _selectionChange: function(a, b) { var c, e, f = this, g = !1; if (browser.ie && browser.version < 9 && b && "mouseup" == b.type) { var h = this.selection.getRange(); h.collapsed || (g = !0, c = b.clientX, e = b.clientY) } clearTimeout(d), d = setTimeout(function() { if (f.selection && f.selection.getNative()) { var a; if (g && "None" == f.selection.getNative().type) { a = f.document.body.createTextRange(); try { a.moveToPoint(c, e) } catch (d) { a = null } } var h; a && (h = f.selection.getIERange, f.selection.getIERange = function() { return a } ), f.selection.cache(), h && (f.selection.getIERange = h), f.selection._cachedRange && f.selection._cachedStartElement && (f.fireEvent("beforeselectionchange"), f.fireEvent("selectionchange", !!b), f.fireEvent("afterselectionchange"), f.selection.clear()) } }, a || 50) }, _callCmdFn: function(a, b) { var c, d, e = b[0].toLowerCase(); return c = this.commands[e] || UE.commands[e], d = c && c[a], c && d || "queryCommandState" != a ? d ? d.apply(this, b) : void 0 : 0 }, execCommand: function(a) { a = a.toLowerCase(); var b, c = this, d = c.commands[a] || UE.commands[a]; return d && d.execCommand ? (d.notNeedUndo || c.__hasEnterExecCommand ? (b = this._callCmdFn("execCommand", arguments), !c.__hasEnterExecCommand && !d.ignoreContentChange && !c._ignoreContentChange && c.fireEvent("contentchange")) : (c.__hasEnterExecCommand = !0, c.queryCommandState.apply(c, arguments) != -1 && (c.fireEvent("saveScene"), c.fireEvent.apply(c, ["beforeexeccommand", a].concat(arguments)), b = this._callCmdFn("execCommand", arguments), c.fireEvent.apply(c, ["afterexeccommand", a].concat(arguments)), c.fireEvent("saveScene")), c.__hasEnterExecCommand = !1), !c.__hasEnterExecCommand && !d.ignoreContentChange && !c._ignoreContentChange && c._selectionChange(), b) : null }, queryCommandState: function(a) { return this._callCmdFn("queryCommandState", arguments) }, queryCommandValue: function(a) { return this._callCmdFn("queryCommandValue", arguments) }, hasContents: function(a) { if (a) for (var b, c = 0; b = a[c++]; ) if (this.document.getElementsByTagName(b).length > 0) return !0; if (!domUtils.isEmptyBlock(this.body)) return !0; for (a = ["div"], c = 0; b = a[c++]; ) for (var d, e = domUtils.getElementsByTagName(this.document, b), f = 0; d = e[f++]; ) if (domUtils.isCustomeNode(d)) return !0; return !1 }, reset: function() { this.fireEvent("reset") }, setEnabled: function() { var a, b = this; if ("false" == b.body.contentEditable) { b.body.contentEditable = !0, a = b.selection.getRange(); try { a.moveToBookmark(b.lastBk), delete b.lastBk } catch (c) { a.setStartAtFirst(b.body).collapse(!0) } a.select(!0), b.bkqueryCommandState && (b.queryCommandState = b.bkqueryCommandState, delete b.bkqueryCommandState), b.bkqueryCommandValue && (b.queryCommandValue = b.bkqueryCommandValue, delete b.bkqueryCommandValue), b.fireEvent("selectionchange") } }, enable: function() { return this.setEnabled() }, setDisabled: function(a) { var b = this; a = a ? utils.isArray(a) ? a : [a] : [], "true" == b.body.contentEditable && (b.lastBk || (b.lastBk = b.selection.getRange().createBookmark(!0)), b.body.contentEditable = !1, b.bkqueryCommandState = b.queryCommandState, b.bkqueryCommandValue = b.queryCommandValue, b.queryCommandState = function(c) { return utils.indexOf(a, c) != -1 ? b.bkqueryCommandState.apply(b, arguments) : -1 } , b.queryCommandValue = function(c) { return utils.indexOf(a, c) != -1 ? b.bkqueryCommandValue.apply(b, arguments) : null } , b.fireEvent("selectionchange")) }, disable: function(a) { return this.setDisabled(a) }, _setDefaultContent: function() { function a() { var b = this; b.document.getElementById("initContent") && (b.body.innerHTML = "

" + (ie ? "" : "
") + "

", b.removeListener("firstBeforeExecCommand focus", a), setTimeout(function() { b.focus(), b._selectionChange() }, 0)) } return function(b) { var c = this; c.body.innerHTML = '

' + b + "

", c.addListener("firstBeforeExecCommand focus", a) } }(), setShow: function() { var a = this , b = a.selection.getRange(); if ("none" == a.container.style.display) { try { b.moveToBookmark(a.lastBk), delete a.lastBk } catch (c) { b.setStartAtFirst(a.body).collapse(!0) } setTimeout(function() { b.select(!0) }, 100), a.container.style.display = "" } }, show: function() { return this.setShow() }, setHide: function() { var a = this; a.lastBk || (a.lastBk = a.selection.getRange().createBookmark(!0)), a.container.style.display = "none" }, hide: function() { return this.setHide() }, getLang: function(a) { var b = this.options&&this.options.lang?UE.I18N[this.options.lang]:false; if (!b) // throw Error("not import language file"); return false; a = (a || "").split("."); for (var c, d = 0; (c = a[d++]) && (b = b[c], b); ) ; return b }, getContentLength: function(a, b) { var c = this.getContent(!1, !1, !0).length; if (a) { b = (b || []).concat(["hr", "img", "iframe"]), c = this.getContentTxt().replace(/[\t\r\n]+/g, "").length; for (var d, e = 0; d = b[e++]; ) c += this.document.getElementsByTagName(d).length } return c }, addInputRule: function(a) { this.inputRules.push(a) }, filterInputRule: function(a) { return; for (var b, c = 0; b = this.inputRules[c++]; ) b.call(this, a) }, addOutputRule: function(a) { this.outputRules.push(a) }, filterOutputRule: function(a) { for (var b, c = 0; b = this.outputRules[c++]; ) b.call(this, a) }, getActionUrl: function(a) { var b = this.getOpt(a) || a , c = this.getOpt("imageUrl") , d = this.getOpt("serverUrl"); return !d && c && (d = c.replace(/^(.*[\/]).+([\.].+)$/, "$1controller$2")), d ? (d = d + (d.indexOf("?") == -1 ? "?" : "&") + "action=" + (b || ""), utils.formatUrl(d)) : "" } }, utils.inherits(f, EventBase) }(), UE.Editor.defaultOptions = function(a) { var b = a.options.UEDITOR_HOME_URL; // var b = "https://s.weituibao.com/release/ueditor/utf8-php/"; return { isShow: !0, initialContent: "", initialStyle: "", autoClearinitialContent: !1, iframeCssUrl: b + "themes/iframe.css?v=7.7", textarea: "editorValue", focus: !1, focusInEnd: !0, autoClearEmptyNode: !0, fullscreen: !1, readonly: !1, zIndex: 999, imagePopup: !0, enterTag: "p", customDomain: !1, lang: "zh-cn", langPath: b + "lang/", theme: "default", themePath: b + "themes/", allHtmlEnabled: !1, scaleEnabled: !1, tableNativeEditInFF: !1, autoSyncData: !0, fileNameFormat: "{time}{rand:6}" } } , function() { UE.Editor.prototype.loadServerConfig = function() { function showErrorMsg(a) { console && console.error(a) } var me = this; setTimeout(function() { try { me.options.imageUrl && me.setOpt("serverUrl", me.options.imageUrl.replace(/^(.*[\/]).+([\.].+)$/, "$1controller$2")); var configUrl = me.getActionUrl("config") , isJsonp = utils.isCrossDomainUrl(configUrl); me._serverConfigLoaded = !1, configUrl && UE.ajax.request(configUrl, { method: "POST", dataType: isJsonp ? "jsonp" : "", onsuccess: function(r) { try { var config = isJsonp ? r : eval("(" + r.responseText + ")"); utils.extend(me.options, config), me.fireEvent("serverConfigLoaded"), me._serverConfigLoaded = !0 } catch (e) { showErrorMsg(me.getLang("loadconfigFormatError")) } }, onerror: function() { showErrorMsg(me.getLang("loadconfigHttpError")) } }) } catch (e) { showErrorMsg(me.getLang("loadconfigError")) } }) } , UE.Editor.prototype.isServerConfigLoaded = function() { var a = this; return a._serverConfigLoaded || !1 } , UE.Editor.prototype.afterConfigReady = function(a) { if (a && utils.isFunction(a)) { var b = this , c = function() { a.apply(b, arguments), b.removeListener("serverConfigLoaded", c) }; b.isServerConfigLoaded() ? a.call(b, "serverConfigLoaded") : b.addListener("serverConfigLoaded", c) } } }(), UE.ajax = function() { function a(a) { var b = []; for (var c in a) if ("method" != c && "timeout" != c && "async" != c && "dataType" != c && "callback" != c && void 0 != a[c] && null != a[c]) if ("function" != (typeof a[c]).toLowerCase() && "object" != (typeof a[c]).toLowerCase()) b.push(encodeURIComponent(c) + "=" + encodeURIComponent(a[c])); else if (utils.isArray(a[c])) for (var d = 0; d < a[c].length; d++) b.push(encodeURIComponent(c) + "[]=" + encodeURIComponent(a[c][d])); return b.join("&") } function b(b, c) { var d = f() , e = !1 , g = { method: "POST", timeout: 5e3, async: !0, data: {}, onsuccess: function() {}, onerror: function() {} }; if ("object" == typeof b && (c = b, b = c.url), d && b) { var h = c ? utils.extend(g, c) : g , i = a(h); utils.isEmptyObject(h.data) || (i += (i ? "&" : "") + a(h.data)); var j = setTimeout(function() { 4 != d.readyState && (e = !0, d.abort(), clearTimeout(j)) }, h.timeout) , k = h.method.toUpperCase() , l = b + (b.indexOf("?") == -1 ? "?" : "&") + ("POST" == k ? "" : i + "&noCache=" + +new Date); d.open(k, l, h.async), d.onreadystatechange = function() { 4 == d.readyState && (e || 200 != d.status ? h.onerror(d) : h.onsuccess(d)) } , "POST" == k ? (d.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), d.send(i)) : d.send(null) } } function c(b, c) { function d(a, b, c) { a.setAttribute("type", "text/javascript"), a.setAttribute("defer", "defer"), c && a.setAttribute("charset", c), a.setAttribute("src", b), document.getElementsByTagName("head")[0].appendChild(a) } function e(a) { return function() { try { if (a) k.onerror && k.onerror(); else try { clearTimeout(g), i.apply(window, arguments) } catch (b) {} } catch (c) { k.onerror && k.onerror.call(window, c) } finally { k.oncomplete && k.oncomplete.apply(window, arguments), j.parentNode && j.parentNode.removeChild(j), window[f] = null; try { delete window[f] } catch (b) {} } } } var f, g, h, i = c.onsuccess || function() {} , j = document.createElement("SCRIPT"), k = c || {}, l = k.charset, m = k.jsonp || "callback", n = k.timeOut || 0, o = new RegExp("(\\?|&)" + m + "=([^&]*)"); utils.isFunction(i) ? (f = "bd__editor__" + Math.floor(2147483648 * Math.random()).toString(36), window[f] = e(0)) : utils.isString(i) ? f = i : (h = o.exec(b)) && (f = h[2]), b = b.replace(o, "$1" + m + "=" + f), b.search(o) < 0 && (b += (b.indexOf("?") < 0 ? "?" : "&") + m + "=" + f); var p = a(c); utils.isEmptyObject(c.data) || (p += (p ? "&" : "") + a(c.data)), p && (b = b.replace(/\?/, "?" + p + "&")), j.onerror = e(1), n && (g = setTimeout(e(1), n)), d(j, b, l) } var d = "XMLHttpRequest()"; try { new ActiveXObject("Msxml2.XMLHTTP"), d = "ActiveXObject('Msxml2.XMLHTTP')" } catch (e) { try { new ActiveXObject("Microsoft.XMLHTTP"), d = "ActiveXObject('Microsoft.XMLHTTP')" } catch (e) {} } var f = new Function("return new " + d); return { request: function(a, d) { d && "jsonp" == d.dataType ? c(a, d) : b(a, d) }, getJSONP: function(a, b, d) { var e = { data: b, oncomplete: d }; c(a, e) } } }(); var filterWord = UE.filterWord = function() { function a(a) { return /(class="?Mso|style="[^"]*\bmso\-|w:WordDocument|<(v|o):|lang=)/gi.test(a) } function b(a) { return a = a.replace(/[\d.]+\w+/g, function(a) { return utils.transUnitToPx(a) }) } function c(a) { return a.replace(/[\t\r\n]+/g, " ").replace(//gi, "").replace(/]*>[\s\S]*?.<\/v:shape>/gi, function(a) { if (browser.opera) return ""; try { if (/Bitmap/i.test(a)) return ""; var c = a.match(/width:([ \d.]*p[tx])/i)[1] , d = a.match(/height:([ \d.]*p[tx])/i)[1] , e = a.match(/src=\s*"([^"]*)"/i)[1]; return '' } catch (f) { return "" } }).replace(/<\/?div[^>]*>/g, "").replace(/v:\w+=(["']?)[^'"]+\1/g, "").replace(/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi, "").replace(/

]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi, "

$1

").replace(/\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/gi, function(a, b, c, d) { return "class" == b && "MsoListParagraph" == d ? a : "" }).replace(/<(font|span)[^>]*>(\s*)<\/\1>/gi, function(a, b, c) { return c.replace(/[\t\r\n ]+/g, " ") }).replace(/(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi, function(a, c, d, e) { for (var f, g = [], h = e.replace(/^\s+|\s+$/, "").replace(/'/g, "'").replace(/"/gi, "'").replace(/[\d.]+(cm|pt)/g, function(a) { return utils.transUnitToPx(a) }).split(/;\s*/g), i = 0; f = h[i]; i++) { var j, k, l = f.split(":"); if (2 == l.length) { if (j = l[0].toLowerCase(), k = l[1].toLowerCase(), /^(background)\w*/.test(j) && 0 == k.replace(/(initial|\s)/g, "").length || /^(margin)\w*/.test(j) && /^0\w+$/.test(k)) continue; switch (j) { case "mso-padding-alt": case "mso-padding-top-alt": case "mso-padding-right-alt": case "mso-padding-bottom-alt": case "mso-padding-left-alt": case "mso-margin-alt": case "mso-margin-top-alt": case "mso-margin-right-alt": case "mso-margin-bottom-alt": case "mso-margin-left-alt": case "mso-height": case "mso-width": case "mso-vertical-align-alt": / 1 && (a(h, j, !0), b(h, j)), c(k, h, i, j); break; case "text": d(g, h); break; case "element": e(g, h, i, j); break; case "comment": f(g, h, i) } // console.log(h) // console.log("~~~~~") // 特殊元素的过滤 return h } function d(a, b) { "pre" == a.parentNode.tagName ? b.push(a.data) : b.push(l[a.parentNode.tagName] ? utils.html(a.data) : a.data) } function e(d, e, f, g) { var h = ""; if (d.attrs) { h = []; var i = d.attrs; for (var j in i) h.push(j + (void 0 !== i[j] ? '="' + (k[j] ? utils.html(i[j]).replace(/["]/g, function(a) { return """ }) : utils.unhtml(i[j])) + '"' : "")); h = h.join(" ") } if (e.push("<" + d.tagName + (h ? " " + h : "") + (dtd.$empty[d.tagName] ? "/" : "") + ">"), f && !dtd.$inlineWithA[d.tagName] && "pre" != d.tagName && d.children && d.children.length && (g = a(e, g, !0), b(e, g)), d.children && d.children.length) for (var l, m = 0; l = d.children[m++]; ) f && "element" == l.type && !dtd.$inlineWithA[l.tagName] && m > 1 && (a(e, g), b(e, g)), c(l, e, f, g); dtd.$empty[d.tagName] || (f && !dtd.$inlineWithA[d.tagName] && "pre" != d.tagName && d.children && d.children.length && (g = a(e, g), b(e, g)), e.push("")) } function f(a, b) { b.push("") } function g(a, b) { var c; if ("element" == a.type && a.getAttr("id") == b) return a; if (a.children && a.children.length) for (var d, e = 0; d = a.children[e++]; ) if (c = g(d, b)) return c } function h(a, b, c) { if ("element" == a.type && a.tagName == b && c.push(a), a.children && a.children.length) for (var d, e = 0; d = a.children[e++]; ) h(d, b, c) } function i(a, b) { if (a.children && a.children.length) for (var c, d = 0; c = a.children[d]; ) i(c, b), c.parentNode && (c.children && c.children.length && b(c), c.parentNode && d++); else b(a) } var j = UE.uNode = function(a) { this.type = a.type, this.data = a.data, this.tagName = a.tagName, this.parentNode = a.parentNode, this.attrs = a.attrs || {}, this.children = a.children } , k = { href: 1, src: 1, _src: 1, _href: 1, cdata_data: 1 } , l = { style: 1, script: 1 } , m = " " , n = "\n"; j.createElement = function(a) { return /[<>]/.test(a) ? UE.htmlparser(a).children[0] : new j({ type: "element", children: [], tagName: a }) } , j.createText = function(a, b) { return new UE.uNode({ type: "text", data: b ? a : utils.unhtml(a || "") }) } , j.prototype = { toHtml: function(a) { var b = []; return c(this, b, a, 0), b.join("") }, innerHTML: function(a) { if ("element" != this.type || dtd.$empty[this.tagName]) return this; if (utils.isString(a)) { if (this.children) for (var b, c = 0; b = this.children[c++]; ) b.parentNode = null; this.children = []; for (var b, d = UE.htmlparser(a), c = 0; b = d.children[c++]; ) this.children.push(b), b.parentNode = this; return this } var d = new UE.uNode({ type: "root", children: this.children }); return d.toHtml() }, innerText: function(a, b) { if ("element" != this.type || dtd.$empty[this.tagName]) return this; if (a) { if (this.children) for (var c, d = 0; c = this.children[d++]; ) c.parentNode = null; return this.children = [], this.appendChild(j.createText(a, b)), this } return this.toHtml().replace(/<[^>]+>/g, "") }, getData: function() { return "element" == this.type ? "" : this.data }, firstChild: function() { return this.children ? this.children[0] : null }, lastChild: function() { return this.children ? this.children[this.children.length - 1] : null }, previousSibling: function() { for (var a, b = this.parentNode, c = 0; a = b.children[c]; c++) if (a === this) return 0 == c ? null : b.children[c - 1] }, nextSibling: function() { for (var a, b = this.parentNode, c = 0; a = b.children[c++]; ) if (a === this) return b.children[c] }, replaceChild: function(a, b) { if (this.children) { a.parentNode && a.parentNode.removeChild(a); for (var c, d = 0; c = this.children[d]; d++) if (c === b) return this.children.splice(d, 1, a), b.parentNode = null, a.parentNode = this, a } }, appendChild: function(a) { if ("root" == this.type || "element" == this.type && !dtd.$empty[this.tagName]) { this.children || (this.children = []), a.parentNode && a.parentNode.removeChild(a); for (var b, c = 0; b = this.children[c]; c++) if (b === a) { this.children.splice(c, 1); break } return this.children.push(a), a.parentNode = this, a } }, insertBefore: function(a, b) { if (this.children) { a.parentNode && a.parentNode.removeChild(a); for (var c, d = 0; c = this.children[d]; d++) if (c === b) return this.children.splice(d, 0, a), a.parentNode = this, a } }, insertAfter: function(a, b) { if (this.children) { a.parentNode && a.parentNode.removeChild(a); for (var c, d = 0; c = this.children[d]; d++) if (c === b) return this.children.splice(d + 1, 0, a), a.parentNode = this, a } }, removeChild: function(a, b) { if (this.children) for (var c, d = 0; c = this.children[d]; d++) if (c === a) { if (this.children.splice(d, 1), c.parentNode = null, b && c.children && c.children.length) for (var e, f = 0; e = c.children[f]; f++) this.children.splice(d + f, 0, e), e.parentNode = this; return c } }, getAttr: function(a) { return this.attrs && this.attrs[a.toLowerCase()] }, setAttr: function(a, b) { if (!a) return void delete this.attrs; if (this.attrs || (this.attrs = {}), utils.isObject(a)) for (var c in a) a[c] ? this.attrs[c.toLowerCase()] = a[c] : delete this.attrs[c]; else b ? this.attrs[a.toLowerCase()] = b : delete this.attrs[a] }, getIndex: function() { for (var a, b = this.parentNode, c = 0; a = b.children[c]; c++) if (a === this) return c; return -1 }, getNodeById: function(a) { var b; if (this.children && this.children.length) for (var c, d = 0; c = this.children[d++]; ) if (b = g(c, a)) return b }, getNodesByTagName: function(a) { a = utils.trim(a).replace(/[ ]{2,}/g, " ").split(" "); var b = [] , c = this; return utils.each(a, function(a) { if (c.children && c.children.length) for (var d, e = 0; d = c.children[e++]; ) h(d, a, b) }), b }, getStyle: function(a) { var b = this.getAttr("style"); if (!b) return ""; var c = new RegExp("(^|;)\\s*" + a + ":([^;]+)","i") , d = b.match(c); return d && d[0] ? d[2] : "" }, setStyle: function(a, b) { function c(a, b) { var c = new RegExp("(^|;)\\s*" + a + ":([^;]+;?)","gi"); d = d.replace(c, "$1"), b && (d = a + ":" + utils.unhtml(b) + ";" + d) } var d = this.getAttr("style"); if (d || (d = ""), utils.isObject(a)) for (var e in a) c(e, a[e]); else c(a, b); this.setAttr("style", utils.trim(d)) }, traversal: function(a) { return this.children && this.children.length && i(this, a), this } } }(); var htmlparser = UE.htmlparser = function(a, b) { function c(a, b) { if (m[a.tagName]) { var c = k.createElement(m[a.tagName]); a.appendChild(c), c.appendChild(k.createText(b)), a = c } else a.appendChild(k.createText(b)) } function d(a, b, c) { var e; if (e = l[b]) { for (var f, h = a; "root" != h.type; ) { if (utils.isArray(e) ? utils.indexOf(e, h.tagName) != -1 : e == h.tagName) { a = h, f = !0; break } h = h.parentNode } f || (a = d(a, utils.isArray(e) ? e[0] : e)) } var i = new k({ parentNode: a, type: "element", tagName: b.toLowerCase(), children: dtd.$empty[b] ? null : [] }); if (c) { for (var m, n = {}; m = g.exec(c); ) n[m[1].toLowerCase()] = j[m[1].toLowerCase()] ? m[2] || m[3] || m[4] : utils.unhtml(m[2] || m[3] || m[4]); i.attrs = n } return a.children.push(i), dtd.$empty[b] ? a : i } function e(a, b) { a.children.push(new k({ type: "comment", data: b, parentNode: a })) } var f = /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g , g = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g , h = { b: 1, code: 1, i: 1, u: 1, strike: 1, s: 1, tt: 1, strong: 1, q: 1, samp: 1, em: 1, span: 1, sub: 1, img: 1, sup: 1, font: 1, big: 1, small: 1, iframe: 1, a: 1, br: 1, pre: 1 }; a = a.replace(new RegExp(domUtils.fillChar,"g"), ""), b || (a = a.replace(new RegExp("[\\r\\t\\n" + (b ? "" : " ") + "]*]*)>[\\r\\t\\n" + (b ? "" : " ") + "]*","g"), function(a, c) { return c && h[c.toLowerCase()] ? a.replace(/(^[\n\r]+)|([\n\r]+$)/g, "") : a.replace(new RegExp("^[\\r\\n" + (b ? "" : " ") + "]+"), "").replace(new RegExp("[\\r\\n" + (b ? "" : " ") + "]+$"), "") })); for (var i, j = { href: 1, src: 1 }, k = UE.uNode, l = { td: "tr", tr: ["tbody", "thead", "tfoot"], tbody: "table", th: "tr", thead: "table", tfoot: "table", caption: "table", li: ["ul", "ol"], dt: "dl", dd: "dl", option: "select" }, m = { ol: "li", ul: "li" }, n = 0, o = 0, p = new k({ type: "root", children: [] }), q = p; i = f.exec(a); ) { n = i.index; try { if (n > o && c(q, a.slice(o, n)), i[3]) dtd.$cdata[q.tagName] ? c(q, i[0]) : q = d(q, i[3].toLowerCase(), i[4]); else if (i[1]) { if ("root" != q.type) if (dtd.$cdata[q.tagName] && !dtd.$cdata[i[1]]) c(q, i[0]); else { for (var r = q; "element" == q.type && q.tagName != i[1].toLowerCase(); ) if (q = q.parentNode, "root" == q.type) throw q = r, "break"; q = q.parentNode } } else i[2] && e(q, i[2]) } catch (s) {} o = f.lastIndex } return o < a.length && c(q, a.slice(o)), p } , filterNode = UE.filterNode = function() { function a(b, c) { switch (b.type) { case "text": break; case "element": var d; if (d = c[b.tagName]) if ("-" === d) b.parentNode.removeChild(b); else if (utils.isFunction(d)) { var e = b.parentNode , f = b.getIndex(); if (d(b), b.parentNode) { if (b.children) for (var g, h = 0; g = b.children[h]; ) a(g, c), g.parentNode && h++ } else for (var g, h = f; g = e.children[h]; ) a(g, c), g.parentNode && h++ } else { var i = d.$; if (i && b.attrs) { var j, k = {}; for (var l in i) { if (j = b.getAttr(l), "style" == l && utils.isArray(i[l])) { var m = []; utils.each(i[l], function(a) { var c; (c = b.getStyle(a)) && m.push(a + ":" + c) }), j = m.join(";") } j && (k[l] = j) } b.attrs = k } if (b.children) for (var g, h = 0; g = b.children[h]; ) a(g, c), g.parentNode && h++ } else if (dtd.$cdata[b.tagName]) b.parentNode.removeChild(b); else { var e = b.parentNode , f = b.getIndex(); b.parentNode.removeChild(b, !0); for (var g, h = f; g = e.children[h]; ) a(g, c), g.parentNode && h++ } break; case "comment": b.parentNode.removeChild(b) } } return function(b, c) { if (utils.isEmptyObject(c)) return b; var d; (d = c["-"]) && utils.each(d.split(" "), function(a) { c[a] = "-" }); for (var e, f = 0; e = b.children[f]; ) a(e, c), e.parentNode && f++; return b } }(); UE.plugin = function() { var a = {}; return { register: function(b, c, d, e) { d && utils.isFunction(d) && (e = d, d = null), a[b] = { optionName: d || b, execFn: c, afterDisabled: e } }, load: function(b) { utils.each(a, function(a) { var c = a.execFn.call(b); b.options[a.optionName] !== !1 ? c && utils.each(c, function(a, c) { switch (c.toLowerCase()) { case "shortcutkey": b.addshortcutkey(a); break; case "bindevents": utils.each(a, function(a, c) { b.addListener(c, a) }); break; case "bindmultievents": utils.each(utils.isArray(a) ? a : [a], function(a) { var c = utils.trim(a.type).split(/\s+/); utils.each(c, function(c) { b.addListener(c, a.handler) }) }); break; case "commands": utils.each(a, function(a, c) { b.commands[c] = a }); break; case "outputrule": b.addOutputRule(a); break; case "inputrule": b.addInputRule(a); break; case "defaultoptions": b.setOpt(a) } }) : a.afterDisabled && a.afterDisabled.call(b) }), utils.each(UE.plugins, function(a) { a.call(b) }) }, run: function(b, c) { var d = a[b]; d && d.exeFn.call(c) } } }(); var keymap = UE.keymap = { Backspace: 8, Tab: 9, Enter: 13, Shift: 16, Control: 17, Alt: 18, CapsLock: 20, Esc: 27, Spacebar: 32, PageUp: 33, PageDown: 34, End: 35, Home: 36, Left: 37, Up: 38, Right: 39, Down: 40, Insert: 45, Del: 46, NumLock: 144, Cmd: 91, "=": 187, "-": 189, b: 66, i: 73, z: 90, y: 89, v: 86, x: 88, s: 83, n: 78 } , LocalStorage = UE.LocalStorage = function() { function a() { var a = document.createElement("div"); return a.style.display = "none", a.addBehavior ? (a.addBehavior("#default#userdata"), { getItem: function(b) { var d = null; try { document.body.appendChild(a), a.load(c), d = a.getAttribute(b), document.body.removeChild(a) } catch (e) {} return d }, setItem: function(b, d) { document.body.appendChild(a), a.setAttribute(b, d), a.save(c), document.body.removeChild(a) }, removeItem: function(b) { document.body.appendChild(a), a.removeAttribute(b), a.save(c), document.body.removeChild(a) } }) : null } var b = window.localStorage || a() || null , c = "localStorage"; return { saveLocalData: function(a, c) { return !(!b || !c) && (b.setItem(a,c), !0) }, getLocalData: function(a) { return b ? b.getItem(a) : null }, removeItem: function(a) { b && b.removeItem(a) } } }(); !function() { var a = "ueditor_preference"; UE.Editor.prototype.setPreferences = function(b, c) { var d = {}; utils.isString(b) ? d[b] = c : d = b; var e = LocalStorage.getLocalData(a); e && (e = utils.str2json(e)) ? utils.extend(e, d) : e = d, e && LocalStorage.saveLocalData(a, utils.json2str(e)) } , UE.Editor.prototype.getPreferences = function(b) { var c = LocalStorage.getLocalData(a); return c && (c = utils.str2json(c)) ? b ? c[b] : c : null } , UE.Editor.prototype.removePreferences = function(b) { var c = LocalStorage.getLocalData(a); c && (c = utils.str2json(c)) && (c[b] = void 0, delete c[b]), c && LocalStorage.saveLocalData(a, utils.json2str(c)) } }(), UE.plugins.defaultfilter = function() { var a = this; a.setOpt({ allowDivTransToP: false, disabledTableInTable: false }), a.addInputRule(function(b) { function c(a) { for (; a && "element" == a.type; ) { if ("td" == a.tagName) return !0; a = a.parentNode } return !1 } var d, e = this.options.allowDivTransToP; b.traversal(function(b) { if ("element" == b.type) { if (!dtd.$cdata[b.tagName] && a.options.autoClearEmptyNode && dtd.$inline[b.tagName] && !dtd.$empty[b.tagName] && (!b.attrs || utils.isEmptyObject(b.attrs))) return void (b.firstChild() ? "span" != b.tagName || b.attrs && !utils.isEmptyObject(b.attrs) || b.parentNode.removeChild(b, !0) : b.parentNode.removeChild(b)); switch (b.tagName) { case "style": case "script": b.setAttr({ cdata_tag: b.tagName, cdata_data: b.innerHTML() || "", _ue_custom_node_: "true" }), b.tagName = "div", b.innerHTML(""); break; case "a": (d = b.getAttr("href")) && b.setAttr("_href", d); break; case "img": b.setAttr("_src", b.getAttr("src")); break; case "span": browser.webkit && (d = b.getStyle("white-space")) && /nowrap|normal/.test(d) && (b.setStyle("white-space", ""), a.options.autoClearEmptyNode && utils.isEmptyObject(b.attrs) && b.parentNode.removeChild(b, !0)), d = b.getAttr("id"), d && /^_baidu_bookmark_/i.test(d) && b.parentNode.removeChild(b); break; case "p": (d = b.getAttr("align")) && (b.setAttr("align"), b.setStyle("text-align", d)), utils.each(b.children, function(a) { if ("element" == a.type && "p" == a.tagName) { var c = a.nextSibling(); b.parentNode.insertAfter(a, b); for (var d = a; c; ) { var e = c.nextSibling(); b.parentNode.insertAfter(c, d), d = c, c = e } return !1 } }), b.firstChild() || b.innerHTML(browser.ie ? " " : "
"); break; case "div": if (b.getAttr("cdata_tag")) break; if (d = b.getAttr("class"), d && /^line number\d+/.test(d)) break; if (!e) break; for (var f, g = UE.uNode.createElement("p"); f = b.firstChild(); ) "text" != f.type && UE.dom.dtd.$block[f.tagName] ? g.firstChild() ? (b.parentNode.insertBefore(g, b), g = UE.uNode.createElement("p")) : b.parentNode.insertBefore(f, b) : g.appendChild(f); g.firstChild() && b.parentNode.insertBefore(g, b), b.parentNode.removeChild(b); break; case "dl": b.tagName = "ul"; break; case "dt": case "dd": b.tagName = "li"; break; case "li": var h = b.getAttr("class"); h && /list\-/.test(h) || b.setAttr(); var i = b.getNodesByTagName("ol ul"); UE.utils.each(i, function(a) { b.parentNode.insertAfter(a, b) }); break; case "td": case "th": case "caption": b.children && b.children.length || b.appendChild(browser.ie11below ? UE.uNode.createText(" ") : UE.uNode.createElement("br")); break; case "table": a.options.disabledTableInTable && c(b) && (b.parentNode.insertBefore(UE.uNode.createText(b.innerText()), b), b.parentNode.removeChild(b)) } } }) }), a.addOutputRule(function(b) { var c; b.traversal(function(b) { if ("element" == b.type) { if (a.options.autoClearEmptyNode && dtd.$inline[b.tagName] && !dtd.$empty[b.tagName] && (!b.attrs || utils.isEmptyObject(b.attrs))) return void (b.firstChild() ? "span" != b.tagName || b.attrs && !utils.isEmptyObject(b.attrs) || b.parentNode.removeChild(b, !0) : b.parentNode.removeChild(b)); switch (b.tagName) { case "div": (c = b.getAttr("cdata_tag")) && (b.tagName = c, b.appendChild(UE.uNode.createText(b.getAttr("cdata_data"))), b.setAttr({ cdata_tag: "", cdata_data: "", _ue_custom_node_: "" })); break; case "a": (c = b.getAttr("_href")) && b.setAttr({ href: utils.html(c), _href: "" }); break; case "span": c = b.getAttr("id"), c && /^_baidu_bookmark_/i.test(c) && b.parentNode.removeChild(b); break; case "img": (c = b.getAttr("_src")) && b.setAttr({ src: b.getAttr("_src"), _src: "" }) } } }) }) } , UE.commands.inserthtml = { execCommand: function(a, b, c) { function d(a) { var b = { text: [], image: [] } , c = a.match(/[^<]*>[^<]*([^<]*)/)) { var h = null , i = e.cloneContents(); if (i) { var j = document.createElement("div"); if (j.appendChild(i), h = "
" + j.innerHTML + "
") { var k = d(h) , l = d(b) , m = ""; if (l.text.length && l.text.forEach(function(a, c) { var d = null; k.text[c] && (d = k.text[c], c === l.text.length - 1 && l.text.length < k.text.length && (d = k.text.splice(c).map(function(a) { return "

" + a + "

" }).join(""))), d && (d.length > m.length && (m = d), b = b.replace(">" + a + "<", ">" + d + "<")) }), l.image.length) l.image.forEach(function(a, c) { var d = null; if (k.image[c] && (d = k.image[c], c === l.image.length - 1 && l.image.length < k.image.length)) { var e = k.image.splice(c + 1).map(function(a) { return '' }).join(""); m ? b = b.replace(new RegExp(m,"gm"), m + e) : b += e } d && (b = b.replace(new RegExp(a.replace(/\?/gi, "\\?"),"gm"), d)) }); else if (k.image.length && m) { var n = k.image.map(function(a) { return '' }).join(""); b = b.replace(new RegExp(m,"gm"), m + n) } } } } if (!c) { var o = UE.htmlparser(b); g.options.filterRules && UE.filterNode(o, g.options.filterRules), g.filterInputRule(o), b = o.toHtml() } if (f.innerHTML = utils.trim(b), !e.collapsed) { var p = e.startContainer; if (domUtils.isFillChar(p) && e.setStartBefore(p), p = e.endContainer, domUtils.isFillChar(p) && e.setEndAfter(p), e.txtToElmBoundary(), e.endContainer && 1 == e.endContainer.nodeType && (p = e.endContainer.childNodes[e.endOffset], p && domUtils.isBr(p) && e.setEndAfter(p)), 0 == e.startOffset && (p = e.startContainer, domUtils.isBoundaryNode(p, "firstChild") && (p = e.endContainer, e.endOffset == (3 == p.nodeType ? p.nodeValue.length : p.childNodes.length) && domUtils.isBoundaryNode(p, "lastChild") && (g.body.innerHTML = "

" + (browser.ie ? "" : "
") + "

", e.setStart(g.body.firstChild, 0).collapse(!0)))), !e.collapsed && e.deleteContents(), 1 == e.startContainer.nodeType) { var q, r = e.startContainer.childNodes[e.startOffset]; if (r && domUtils.isBlockElm(r) && (q = r.previousSibling) && domUtils.isBlockElm(q)) { for (e.setEnd(q, q.childNodes.length).collapse(); r.firstChild; ) q.appendChild(r.firstChild); domUtils.remove(r) } } } var r, s, q, t, u, v = 0; e.inFillChar() && (r = e.startContainer, domUtils.isFillChar(r) ? (e.setStartBefore(r).collapse(!0), domUtils.remove(r)) : domUtils.isFillChar(r, !0) && (r.nodeValue = r.nodeValue.replace(fillCharReg, ""), e.startOffset--, e.collapsed && e.collapse(!0))); var w = domUtils.findParentByTagName(e.startContainer, "li", !0); if (w) { for (var x, y; r = f.firstChild; ) { for (; r && (3 == r.nodeType || !domUtils.isBlockElm(r) || "HR" == r.tagName); ) x = r.nextSibling, e.insertNode(r).collapse(), y = r, r = x; if (r) if (/^(ol|ul)$/i.test(r.tagName)) { for (; r.firstChild; ) y = r.firstChild, domUtils.insertAfter(w, r.firstChild), w = w.nextSibling; domUtils.remove(r) } else { var z; x = r.nextSibling, z = g.document.createElement("li"), domUtils.insertAfter(w, z), z.appendChild(r), y = r, r = x, w = z } } w = domUtils.findParentByTagName(e.startContainer, "li", !0), domUtils.isEmptyBlock(w) && domUtils.remove(w), y && e.setStartAfter(y).collapse(!0).select(!0) } else { for (; r = f.firstChild; ) { if (v) { for (var A = g.document.createElement("p"); r && (3 == r.nodeType || !dtd.$block[r.tagName]); ) u = r.nextSibling, A.appendChild(r), r = u; A.firstChild && (r = A) } if (e.insertNode(r), u = r.nextSibling, !v && r.nodeType == domUtils.NODE_ELEMENT && domUtils.isBlockElm(r) && (s = domUtils.findParent(r, function(a) { return domUtils.isBlockElm(a) }), s && "body" != s.tagName.toLowerCase() && (!dtd[s.tagName] || !dtd[s.tagName][r.nodeName] || r.parentNode !== s))) { if (dtd[s.tagName] && dtd[s.tagName][r.nodeName]) for (t = r.parentNode; t !== s; ) q = t, t = t.parentNode; else q = s; domUtils.breakParent(r, q || t); var q = r.previousSibling; domUtils.trimWhiteTextNode(q), q.childNodes.length || domUtils.remove(q), !browser.ie && (x = r.nextSibling) && domUtils.isBlockElm(x) && x.lastChild && !domUtils.isBr(x.lastChild) && x.appendChild(g.document.createElement("br")), v = 1 } var x = r.nextSibling; if (!f.firstChild && x && domUtils.isBlockElm(x)) { e.setStart(x, 0).collapse(!0); break } e.setEndAfter(r).collapse() } if (r = e.startContainer, u && domUtils.isBr(u) && domUtils.remove(u), domUtils.isBlockElm(r) && domUtils.isEmptyNode(r)) if (u = r.nextSibling) domUtils.remove(r), 1 == u.nodeType && dtd.$block[u.tagName] && e.setStart(u, 0).collapse(!0).shrinkBoundary(); else try { r.innerHTML = browser.ie ? domUtils.fillChar : "
" } catch (B) { e.setStartBefore(r), domUtils.remove(r) } try { e.select(!0) } catch (B) {} } setTimeout(function() { e = g.selection.getRange(), e.scrollToView(g.autoHeightEnabled, g.autoHeightEnabled ? domUtils.getXY(g.iframe).y : 0), g.fireEvent("afterinserthtml", b) }, 200) } } }, UE.plugins.autotypeset = function() { function a(a, b) { return a && 3 != a.nodeType ? domUtils.isBr(a) ? 1 : a && a.parentNode && l[a.tagName.toLowerCase()] ? g && g.contains(a) || a.getAttribute("pagebreak") ? 0 : b ? !domUtils.isEmptyBlock(a) : domUtils.isEmptyBlock(a, new RegExp("[\\s" + domUtils.fillChar + "]","g")) : void 0 : 0 } function b(a) { a.style.cssText || (domUtils.removeAttributes(a, ["style"]), "span" == a.tagName.toLowerCase() && domUtils.hasNoAttributes(a) && domUtils.remove(a, !0)) } function c(c, f) { var h, l = this; if (f) { if (!i.pasteFilter) return; h = l.document.createElement("div"), h.innerHTML = f.html } else h = l.document.body; for (var m, n = domUtils.getElementsByTagName(h, "*"), o = 0; m = n[o++]; ) if (l.fireEvent("excludeNodeinautotype", m) !== !0) { if (i.clearFontSize && m.style.fontSize && (domUtils.removeStyle(m, "font-size"), b(m)), i.clearFontFamily && m.style.fontFamily && (domUtils.removeStyle(m, "font-family"), b(m)), a(m)) { if (i.mergeEmptyline) for (var p, q = m.nextSibling, r = domUtils.isBr(m); a(q) && (p = q, q = p.nextSibling, !r || q && (!q || domUtils.isBr(q))); ) domUtils.remove(p); if (i.removeEmptyline && domUtils.inDoc(m, h) && !k[m.parentNode.tagName.toLowerCase()]) { if (domUtils.isBr(m) && (q = m.nextSibling, q && !domUtils.isBr(q))) continue; domUtils.remove(m); continue } } if (a(m, !0) && "SPAN" != m.tagName && (i.indent && (m.style.textIndent = i.indentValue), i.textAlign && (m.style.textAlign = i.textAlign)), i.removeClass && m.className && !j[m.className.toLowerCase()]) { if (g && g.contains(m)) continue; domUtils.removeAttributes(m, ["class"]) } if (i.imageBlockLine && "img" == m.tagName.toLowerCase() && !m.getAttribute("emotion")) if (f) { var s = m; switch (i.imageBlockLine) { case "left": case "right": case "none": for (var p, t, q, u = s.parentNode; dtd.$inline[u.tagName] || "A" == u.tagName; ) u = u.parentNode; if (p = u, "P" == p.tagName && "center" == domUtils.getStyle(p, "text-align") && !domUtils.isBody(p) && 1 == domUtils.getChildCount(p, function(a) { return !domUtils.isBr(a) && !domUtils.isWhitespace(a) })) if (t = p.previousSibling, q = p.nextSibling, t && q && 1 == t.nodeType && 1 == q.nodeType && t.tagName == q.tagName && domUtils.isBlockElm(t)) { for (t.appendChild(p.firstChild); q.firstChild; ) t.appendChild(q.firstChild); domUtils.remove(p), domUtils.remove(q) } else domUtils.setStyle(p, "text-align", ""); domUtils.setStyle(s, "float", i.imageBlockLine); break; case "center": if ("center" != l.queryCommandValue("imagefloat")) { for (u = s.parentNode, domUtils.setStyle(s, "float", "none"), p = s; u && 1 == domUtils.getChildCount(u, function(a) { return !domUtils.isBr(a) && !domUtils.isWhitespace(a) }) && (dtd.$inline[u.tagName] || "A" == u.tagName); ) p = u, u = u.parentNode; var v = l.document.createElement("p"); domUtils.setAttributes(v, { style: "text-align:center" }), p.parentNode.insertBefore(v, p), v.appendChild(p), domUtils.setStyle(p, "float", "") } } } else { var w = l.selection.getRange(); w.selectNode(m).select(), l.execCommand("imagefloat", i.imageBlockLine) } i.removeEmptyNode && i.removeTagNames[m.tagName.toLowerCase()] && domUtils.hasNoAttributes(m) && domUtils.isEmptyBlock(m) && domUtils.remove(m) } if (i.tobdc) { var x = UE.htmlparser(h.innerHTML); x.traversal(function(a) { "text" == a.type && (a.data = e(a.data)) }), h.innerHTML = x.toHtml() } if (i.bdc2sb) { var x = UE.htmlparser(h.innerHTML); x.traversal(function(a) { "text" == a.type && (a.data = d(a.data)) }), h.innerHTML = x.toHtml() } f && (f.html = h.innerHTML) } function d(a) { for (var b = "", c = 0; c < a.length; c++) { var d = a.charCodeAt(c); b += d >= 65281 && d <= 65373 ? String.fromCharCode(a.charCodeAt(c) - 65248) : 12288 == d ? String.fromCharCode(a.charCodeAt(c) - 12288 + 32) : a.charAt(c) } return b } function e(a) { a = utils.html(a); for (var b = "", c = 0; c < a.length; c++) b += 32 == a.charCodeAt(c) ? String.fromCharCode(12288) : a.charCodeAt(c) < 127 ? String.fromCharCode(a.charCodeAt(c) + 65248) : a.charAt(c); return b } function f() { var a = h.getPreferences("autotypeset"); utils.extend(h.options.autotypeset, a) } this.setOpt({ autotypeset: { mergeEmptyline: !0, removeClass: !0, removeEmptyline: !1, textAlign: "left", imageBlockLine: "center", pasteFilter: !1, clearFontSize: !1, clearFontFamily: !1, removeEmptyNode: !1, removeTagNames: utils.extend({ div: 1 }, dtd.$removeEmpty), indent: !1, indentValue: "2em", bdc2sb: !1, tobdc: !1 } }); var g, h = this, i = h.options.autotypeset, j = { selectTdClass: 1, pagebreak: 1, anchorclass: 1 }, k = { li: 1 }, l = { div: 1, p: 1, blockquote: 1, center: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, span: 1 }; i && (f(), i.pasteFilter && h.addListener("beforepaste", c), h.commands.autotypeset = { execCommand: function() { h.removeListener("beforepaste", c), i.pasteFilter && h.addListener("beforepaste", c), c.call(h) } }) } , UE.plugin.register("autosubmit", function() { return { shortcutkey: { autosubmit: "ctrl+13" }, commands: { autosubmit: { execCommand: function() { var a = this , b = domUtils.findParentByTagName(a.iframe, "form", !1); if (b) { if (a.fireEvent("beforesubmit") === !1) return; a.sync(), b.submit() } } } } } }), UE.plugin.register("background", function() { function a(a) { var b = {} , c = a.split(";"); return utils.each(c, function(a) { var c = a.indexOf(":") , d = utils.trim(a.substr(0, c)).toLowerCase(); d && (b[d] = utils.trim(a.substr(c + 1) || "")) }), b } function b(a) { if (a) { var b = []; for (var c in a) a.hasOwnProperty(c) && b.push(c + ":" + a[c] + "; "); utils.cssRule(e, b.length ? "body{" + b.join("") + "}" : "", d.document) } else utils.cssRule(e, "", d.document) } var c, d = this, e = "editor_background", f = new RegExp("body[\\s]*\\{(.+)\\}","i"), g = d.hasContents; return d.hasContents = function() { return !!d.queryCommandValue("background") || g.apply(d, arguments) } , { bindEvents: { getAllHtml: function(a, b) { var c = this.body , e = domUtils.getComputedStyle(c, "background-image") , f = ""; f = e.indexOf(d.options.imagePath) > 0 ? e.substring(e.indexOf(d.options.imagePath), e.length - 1).replace(/"|\(|\)/gi, "") : "none" != e ? e.replace(/url\("?|"?\)/gi, "") : ""; var g = ' ", b.push(g) }, aftersetcontent: function() { 0 == c && b() } }, inputRule: function(d) { c = !1, utils.each(d.getNodesByTagName("p"), function(d) { var e = d.getAttr("data-background"); e && (c = !0, b(a(e)), d.parentNode.removeChild(d)) }) }, outputRule: function(a) { var b = this , c = (utils.cssRule(e, b.document) || "").replace(/[\n\r]+/g, "").match(f); c && a.appendChild(UE.uNode.createElement('


')) }, commands: { background: { execCommand: function(a, c) { b(c) }, queryCommandValue: function() { var b = this , c = (utils.cssRule(e, b.document) || "").replace(/[\n\r]+/g, "").match(f); return c ? a(c[1]) : null }, notNeedUndo: !0 } } } }), UE.commands.imagefloat = { execCommand: function(a, b) { var c = this , d = c.selection.getRange(); if (!d.collapsed) { var e = d.getClosedNode(); if (e && "IMG" == e.tagName) switch (b) { case "left": case "right": case "none": for (var f, g, h, i = e.parentNode; dtd.$inline[i.tagName] || "A" == i.tagName; ) i = i.parentNode; if (f = i, "P" == f.tagName && "center" == domUtils.getStyle(f, "text-align")) { if (!domUtils.isBody(f) && 1 == domUtils.getChildCount(f, function(a) { return !domUtils.isBr(a) && !domUtils.isWhitespace(a) })) if (g = f.previousSibling, h = f.nextSibling, g && h && 1 == g.nodeType && 1 == h.nodeType && g.tagName == h.tagName && domUtils.isBlockElm(g)) { for (g.appendChild(f.firstChild); h.firstChild; ) g.appendChild(h.firstChild); domUtils.remove(f), domUtils.remove(h) } else domUtils.setStyle(f, "text-align", ""); d.selectNode(e).select() } domUtils.setStyle(e, "float", "none" == b ? "" : b), "none" == b && domUtils.removeAttributes(e, "align"); break; case "center": if ("center" != c.queryCommandValue("imagefloat")) { for (i = e.parentNode, domUtils.setStyle(e, "float", ""), domUtils.removeAttributes(e, "align"), f = e; i && 1 == domUtils.getChildCount(i, function(a) { return !domUtils.isBr(a) && !domUtils.isWhitespace(a) }) && (dtd.$inline[i.tagName] || "A" == i.tagName); ) f = i, i = i.parentNode; d.setStartBefore(f).setCursor(!1), i = c.document.createElement("div"), i.appendChild(f), domUtils.setStyle(f, "float", ""), c.execCommand("insertHtml", '

' + i.innerHTML + "

"), f = c.document.getElementById("_img_parent_tmp"), f&&(f.removeAttribute("id"),f = f.firstChild), f&&(d.selectNode(f).select(),h = f.parentNode.nextSibling,h && domUtils.isEmptyNode(h) && domUtils.remove(h)) } } } }, queryCommandValue: function() { var a, b, c = this.selection.getRange(); return c.collapsed ? "none" : (a = c.getClosedNode(), a && 1 == a.nodeType && "IMG" == a.tagName ? (b = domUtils.getComputedStyle(a, "float") || a.getAttribute("align"), "none" == b && (b = "center" == domUtils.getComputedStyle(a.parentNode, "text-align") ? "center" : b), { left: 1, right: 1, center: 1 }[b] ? b : "none") : "none") }, queryCommandState: function() { var a, b = this.selection.getRange(); return b.collapsed ? -1 : (a = b.getClosedNode(), a && 1 == a.nodeType && "IMG" == a.tagName ? 0 : -1) } }, UE.commands.insertimage = { execCommand: function(a, b) { function c(a) { utils.each("width,height,border,hspace,vspace".split(","), function(b) { a[b] && (a[b] = parseInt(a[b], 10) || 0) }), utils.each("src,_src".split(","), function(b) { a[b] && (a[b] = utils.unhtmlForUrl(a[b])) }), utils.each("title,alt".split(","), function(b) { a[b] && (a[b] = utils.unhtml(a[b])) }) } if (b = utils.isArray(b) ? b : [b], b.length) { var d = this , e = d.selection.getRange() , f = e.getClosedNode(); if (d.fireEvent("beforeinsertimage", b) !== !0) { if (!f || !/img/i.test(f.tagName) || "edui-faked-video" == f.className && f.className.indexOf("edui-upload-video") == -1 || f.getAttribute("word_img")) { var g, h = [], i = ""; if (g = b[0], 1 == b.length) c(g), i = '' + g.alt + '", "center" == g.floatStyle && (i = '

' + i + "

"), h.push(i); else for (var j = 0; g = b[j++]; ) c(g), i = "

", h.push(i); d.execCommand("insertHtml", h.join("")) } else { var k = b.shift() , l = k.floatStyle; delete k.floatStyle, domUtils.setAttributes(f, k), d.execCommand("imagefloat", l), b.length > 0 && (e.setStartAfter(f).setCursor(!1, !0), d.execCommand("insertimage", b)) } d.fireEvent("afterinsertimage", b) } } } }, UE.plugins.justify = function() { var a = domUtils.isBlockElm , b = { left: 1, right: 1, center: 1, justify: 1 } , c = function(b, c) { var d = b.createBookmark() , e = function(a) { return 1 == a.nodeType ? "br" != a.tagName.toLowerCase() && !domUtils.isBookmarkNode(a) : !domUtils.isWhitespace(a) }; b.enlarge(!0); for (var f, g = b.createBookmark(), h = domUtils.getNextDomNode(g.start, !1, e), i = b.cloneRange(); h && !(domUtils.getPosition(h, g.end) & domUtils.POSITION_FOLLOWING); ) if (3 != h.nodeType && a(h)) h = domUtils.getNextDomNode(h, !0, e); else { for (i.setStartBefore(h); h && h !== g.end && !a(h); ) f = h, h = domUtils.getNextDomNode(h, !1, null, function(b) { return !a(b) }); i.setEndAfter(f); var j = i.getCommonAncestor(); if (!domUtils.isBody(j) && a(j)) domUtils.setStyles(j, utils.isString(c) ? { "text-align": c } : c), h = j; else { var k = b.document.createElement("p"); domUtils.setStyles(k, utils.isString(c) ? { "text-align": c } : c); var l = i.extractContents(); k.appendChild(l), i.insertNode(k), h = k } h = domUtils.getNextDomNode(h, !1, e) } return b.moveToBookmark(g).moveToBookmark(d) }; UE.commands.justify = { execCommand: function(a, b) { var d, e = this.selection.getRange(); return e.collapsed && (d = this.document.createTextNode("p"), e.insertNode(d)), c(e, b), d && (e.setStartBefore(d).collapse(!0), domUtils.remove(d)), e.select(), !0 }, queryCommandValue: function() { var a = this.selection.getStart() , c = domUtils.getComputedStyle(a, "text-align"); return b[c] ? c : "left" }, queryCommandState: function() { var a = this.selection.getStart() , b = a && domUtils.findParentByTagName(a, ["td", "th", "caption"], !0); return b ? -1 : 0 } } } , UE.plugins.font = function() { function a(a) { for (var b; (b = a.parentNode) && "SPAN" == b.tagName && 1 == domUtils.getChildCount(b, function(a) { return !domUtils.isBookmarkNode(a) && !domUtils.isBr(a) }); ) b.style.cssText += a.style.cssText, domUtils.remove(a, !0), a = b } function b(a, b, c) { if (g[b] && (a.adjustmentBoundary(), !a.collapsed && 1 == a.startContainer.nodeType)) { var d = a.startContainer.childNodes[a.startOffset]; if (d && domUtils.isTagNode(d, "span")) { var e = a.createBookmark(); utils.each(domUtils.getElementsByTagName(d, "span"), function(a) { a.parentNode && !domUtils.isBookmarkNode(a) && ("backcolor" == b && domUtils.getComputedStyle(a, "background-color").toLowerCase() === c || (domUtils.removeStyle(a, g[b]), 0 == a.style.cssText.replace(/^\s+$/, "").length && domUtils.remove(a, !0))) }), a.moveToBookmark(e) } } } function c(c, d, e) { var f, g = c.collapsed, h = c.createBookmark(); if (g) for (f = h.start.parentNode; dtd.$inline[f.tagName]; ) f = f.parentNode; else f = domUtils.getCommonAncestor(h.start, h.end); utils.each(domUtils.getElementsByTagName(f, "span"), function(b) { if (b.parentNode && !domUtils.isBookmarkNode(b)) { if (/\s*border\s*:\s*none;?\s*/i.test(b.style.cssText)) return void (/^\s*border\s*:\s*none;?\s*$/.test(b.style.cssText) ? domUtils.remove(b, !0) : domUtils.removeStyle(b, "border")); if (/border/i.test(b.style.cssText) && "SPAN" == b.parentNode.tagName && /border/i.test(b.parentNode.style.cssText) && (b.style.cssText = b.style.cssText.replace(/border[^:]*:[^;]+;?/gi, "")), "fontborder" != d || "none" != e) for (var c = b.nextSibling; c && 1 == c.nodeType && "SPAN" == c.tagName; ) if (domUtils.isBookmarkNode(c) && "fontborder" == d) b.appendChild(c), c = b.nextSibling; else { if (c.style.cssText == b.style.cssText && (domUtils.moveChild(c, b), domUtils.remove(c)), b.nextSibling === c) break; c = b.nextSibling } if (a(b), browser.ie && browser.version > 8) { var f = domUtils.findParent(b, function(a) { return "SPAN" == a.tagName && /background-color/.test(a.style.cssText) }); f && !/background-color/.test(b.style.cssText) && (b.style.backgroundColor = f.style.backgroundColor) } } }), c.moveToBookmark(h), b(c, d, e) } var d = this , e = { forecolor: "color", backcolor: "background-color", fontsize: "font-size", fontfamily: "font-family", underline: "text-decoration", strikethrough: "text-decoration", fontborder: "border" } , f = { underline: 1, strikethrough: 1, fontborder: 1 } , g = { forecolor: "color", backcolor: "background-color", fontsize: "font-size", fontfamily: "font-family" }; d.setOpt({ fontfamily: [{ name: "songti", val: "宋体,SimSun" }, { name: "yahei", val: "微软雅黑,Microsoft YaHei" }, { name: "kaiti", val: "楷体,楷体_GB2312, SimKai" }, { name: "heiti", val: "黑体, SimHei" }, { name: "lishu", val: "隶书, SimLi" }, { name: "andaleMono", val: "andale mono" }, { name: "arial", val: "arial, helvetica,sans-serif" }, { name: "arialBlack", val: "arial black,avant garde" }, { name: "comicSansMs", val: "comic sans ms" }, { name: "impact", val: "impact,chicago" }, { name: "timesNewRoman", val: "times new roman" }], fontsize: [10, 11, 12, 14, 15, 16, 18, 20, 24, 36] }), d.addInputRule(function(a) { utils.each(a.getNodesByTagName("u s del font strike"), function(a) { if ("font" == a.tagName) { var b = []; for (var c in a.attrs) switch (c) { case "size": b.push("font-size:" + ({ 1: "10", 2: "12", 3: "16", 4: "18", 5: "24", 6: "32", 7: "48" }[a.attrs[c]] || a.attrs[c]) + "px"); break; case "color": b.push("color:" + a.attrs[c]); break; case "face": b.push("font-family:" + a.attrs[c]); break; case "style": b.push(a.attrs[c]) } a.attrs = { style: b.join(";") } } else { var d = "u" == a.tagName ? "underline" : "line-through"; a.attrs = { style: (a.getAttr("style") || "") + "text-decoration:" + d + ";" } } a.tagName = "span" }) }); for (var h in e) !function(a, b) { UE.commands[a] = { execCommand: function(d, e) { e = e || (this.queryCommandState(d) ? "none" : "underline" == d ? "underline" : "fontborder" == d ? "1px solid #000" : "line-through"); var g, h = this, i = this.selection.getRange(); if ("default" == e) i.collapsed && (g = h.document.createTextNode("font"), i.insertNode(g).select()), h.execCommand("removeFormat", "span,a", b), g && (i.setStartBefore(g).collapse(!0), domUtils.remove(g)), c(i, d, e), i.select(); else if (i.collapsed) { var j = domUtils.findParentByTagName(i.startContainer, "span", !0); if (g = h.document.createTextNode("font"), !j || j.children.length || j[browser.ie ? "innerText" : "textContent"].replace(fillCharReg, "").length) { if (i.insertNode(g), i.selectNode(g).select(), j = i.document.createElement("span"), f[a]) { if (domUtils.findParentByTagName(g, "a", !0)) return i.setStartBefore(g).setCursor(), void domUtils.remove(g); h.execCommand("removeFormat", "span,a", b) } if (j.style.cssText = b + ":" + e, g.parentNode.insertBefore(j, g), !browser.ie || browser.ie && 9 == browser.version) for (var k = j.parentNode; !domUtils.isBlockElm(k); ) "SPAN" == k.tagName && (j.style.cssText = k.style.cssText + ";" + j.style.cssText), k = k.parentNode; opera ? setTimeout(function() { i.setStart(j, 0).collapse(!0), c(i, d, e), i.select() }) : (i.setStart(j, 0).collapse(!0), c(i, d, e), i.select()) } else i.insertNode(g), f[a] && (i.selectNode(g).select(), h.execCommand("removeFormat", "span,a", b, null), j = domUtils.findParentByTagName(g, "span", !0), i.setStartBefore(g)), j && (j.style.cssText += ";" + b + ":" + e), i.collapse(!0).select(); domUtils.remove(g) } else f[a] && h.queryCommandValue(a) && h.execCommand("removeFormat", "span,a", b), i = h.selection.getRange(), i.applyInlineStyle("span", { style: b + ":" + e }), c(i, d, e), i.select(); return !0 }, queryCommandValue: function(a) { var c = this.selection.getStart(); if ("underline" == a || "strikethrough" == a) { for (var d, e = c; e && !domUtils.isBlockElm(e) && !domUtils.isBody(e); ) { if (1 == e.nodeType && (d = domUtils.getComputedStyle(e, b), "none" != d)) return d; e = e.parentNode } return "none" } if ("fontborder" == a) { for (var f, g = c; g && dtd.$inline[g.tagName]; ) { if ((f = domUtils.getComputedStyle(g, "border")) && /1px/.test(f) && /solid/.test(f)) return f; g = g.parentNode } return "" } if ("FontSize" == a) { var h = domUtils.getComputedStyle(c, b) , g = /^([\d\.]+)(\w+)$/.exec(h); return g ? Math.floor(g[1]) + g[2] : h } return domUtils.getComputedStyle(c, b) }, queryCommandState: function(a) { if (!f[a]) return 0; var b = this.queryCommandValue(a); return "fontborder" == a ? /1px/.test(b) && /solid/.test(b) : "underline" == a ? /underline/.test(b) : /line\-through/.test(b) } } }(h, e[h]) } , UE.plugins.link = function() { function a(a) { var b = a.startContainer , c = a.endContainer; (b = domUtils.findParentByTagName(b, "a", !0)) && a.setStartBefore(b), (c = domUtils.findParentByTagName(c, "a", !0)) && a.setEndAfter(c) } function b(b, c, d) { var e = b.cloneRange() , f = d.queryCommandValue("link"); a(b = b.adjustmentBoundary()); var g = b.startContainer; if (1 == g.nodeType && f && (g = g.childNodes[b.startOffset], g && 1 == g.nodeType && "A" == g.tagName && /^(?:https?|ftp|file)\s*:\s*\/\//.test(g[browser.ie ? "innerText" : "textContent"]) && (g[browser.ie ? "innerText" : "textContent"] = utils.html(c.textValue || c.href))), e.collapsed && !f || (b.removeInlineStyle("a"), e = b.cloneRange()), e.collapsed) { var h = b.document.createElement("a") , i = ""; c.textValue ? (i = utils.html(c.textValue), delete c.textValue) : i = utils.html(c.href), domUtils.setAttributes(h, c), g = domUtils.findParentByTagName(e.startContainer, "a", !0), g && domUtils.isInNodeEndBoundary(e, g) && b.setStartAfter(g).collapse(!0), h[browser.ie ? "innerText" : "textContent"] = i, b.insertNode(h).selectNode(h) } else b.applyInlineStyle("a", c) } UE.commands.unlink = { execCommand: function() { var b, c = this.selection.getRange(); c.collapsed && !domUtils.findParentByTagName(c.startContainer, "a", !0) || (b = c.createBookmark(), a(c), c.removeInlineStyle("a").moveToBookmark(b).select()) }, queryCommandState: function() { return !this.highlight && this.queryCommandValue("link") ? 0 : -1 } }, UE.commands.link = { execCommand: function(a, c) { var d; c._href && (c._href = utils.unhtml(c._href, /[<">]/g)), c.href && (c.href = utils.unhtml(c.href, /[<">]/g)), c.textValue && (c.textValue = utils.unhtml(c.textValue, /[<">]/g)), b(d = this.selection.getRange(), c, this), d.collapse().select(!0) }, queryCommandValue: function() { var a, b = this.selection.getRange(); if (!b.collapsed) { b.shrinkBoundary(); var c = 3 != b.startContainer.nodeType && b.startContainer.childNodes[b.startOffset] ? b.startContainer.childNodes[b.startOffset] : b.startContainer , d = 3 == b.endContainer.nodeType || 0 == b.endOffset ? b.endContainer : b.endContainer.childNodes[b.endOffset - 1] , e = b.getCommonAncestor(); if (a = domUtils.findParentByTagName(e, "a", !0), !a && 1 == e.nodeType) for (var f, g, h, i = e.getElementsByTagName("a"), j = 0; h = i[j++]; ) if (f = domUtils.getPosition(h, c), g = domUtils.getPosition(h, d), (f & domUtils.POSITION_FOLLOWING || f & domUtils.POSITION_CONTAINS) && (g & domUtils.POSITION_PRECEDING || g & domUtils.POSITION_CONTAINS)) { a = h; break } return a } if (a = b.startContainer, a = 1 == a.nodeType ? a : a.parentNode, a && (a = domUtils.findParentByTagName(a, "a", !0)) && !domUtils.isInNodeEndBoundary(b, a)) return a }, queryCommandState: function() { var a = this.selection.getRange().getClosedNode() , b = a && ("edui-faked-video" == a.className || a.className.indexOf("edui-upload-video") != -1); return b ? -1 : 0 } } } , UE.plugins.insertframe = function() { function a() { b._iframe && delete b._iframe } var b = this; b.addListener("selectionchange", function() { a() }) } , UE.commands.scrawl = { queryCommandState: function() { return browser.ie && browser.version <= 8 ? -1 : 0 } }, UE.plugins.removeformat = function() { var a = this; a.setOpt({ removeFormatTags: "b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var", removeFormatAttributes: "class,style,lang,width,height,align,hspace,valign" }), a.commands.removeformat = { execCommand: function(a, b, c, d, e) { function f(a) { if (3 == a.nodeType || "span" != a.tagName.toLowerCase()) return 0; if (browser.ie) { var b = a.attributes; if (b.length) { for (var c = 0, d = b.length; c < d; c++) if (b[c].specified) return 0; return 1 } } return !a.attributes.length } function g(a) { var b = a.createBookmark(); if (a.collapsed && a.enlarge(!0), !e) { var d = domUtils.findParentByTagName(a.startContainer, "a", !0); d && a.setStartBefore(d), d = domUtils.findParentByTagName(a.endContainer, "a", !0), d && a.setEndAfter(d) } for (h = a.createBookmark(), p = h.start; (i = p.parentNode) && !domUtils.isBlockElm(i); ) domUtils.breakParent(p, i), domUtils.clearEmptySibling(p); if (h.end) { for (p = h.end; (i = p.parentNode) && !domUtils.isBlockElm(i); ) domUtils.breakParent(p, i), domUtils.clearEmptySibling(p); for (var g, l = domUtils.getNextDomNode(h.start, !1, m); l && l != h.end; ) g = domUtils.getNextDomNode(l, !0, m), dtd.$empty[l.tagName.toLowerCase()] || domUtils.isBookmarkNode(l) || (j.test(l.tagName) ? c ? (domUtils.removeStyle(l, c), f(l) && "text-decoration" != c && domUtils.remove(l, !0)) : domUtils.remove(l, !0) : dtd.$tableContent[l.tagName] || dtd.$list[l.tagName] || (domUtils.removeAttributes(l, k), f(l) && domUtils.remove(l, !0))), l = g } var n = h.start.parentNode; "BODY" == n.tagName || !domUtils.isBlockElm(n) || dtd.$tableContent[n.tagName] || dtd.$list[n.tagName] || domUtils.removeAttributes(n, k), n = h.end.parentNode, "BODY" != n.tagName && h.end && domUtils.isBlockElm(n) && !dtd.$tableContent[n.tagName] && !dtd.$list[n.tagName] && domUtils.removeAttributes(n, k), a.moveToBookmark(h).moveToBookmark(b); for (var o, p = a.startContainer, q = a.collapsed; 1 == p.nodeType && domUtils.isEmptyNode(p) && dtd.$removeEmpty[p.tagName]; ) o = p.parentNode, a.setStartBefore(p), a.startContainer === a.endContainer && a.endOffset--, domUtils.remove(p), p = o; if (!q) for (p = a.endContainer; 1 == p.nodeType && domUtils.isEmptyNode(p) && dtd.$removeEmpty[p.tagName]; ) o = p.parentNode, a.setEndBefore(p), domUtils.remove(p), p = o } var h, i, j = new RegExp("^(?:" + (b || this.options.removeFormatTags).replace(/,/g, "|") + ")$","i"), k = c ? [] : (d || this.options.removeFormatAttributes).split(","), l = new dom.Range(this.document), m = function(a) { return 1 == a.nodeType }; l = this.selection.getRange(), g(l), l.select() } } } , UE.plugins.blockquote = function() { function a(a) { return domUtils.filterNodeList(a.selection.getStartElementPath(), "blockquote") } var b = this; b.commands.blockquote = { execCommand: function(b, c) { var d = this.selection.getRange() , e = a(this) , f = dtd.blockquote , g = d.createBookmark(); if (e) { var h = d.startContainer , i = domUtils.isBlockElm(h) ? h : domUtils.findParent(h, function(a) { return domUtils.isBlockElm(a) }) , j = d.endContainer , k = domUtils.isBlockElm(j) ? j : domUtils.findParent(j, function(a) { return domUtils.isBlockElm(a) }); i = domUtils.findParentByTagName(i, "li", !0) || i, k = domUtils.findParentByTagName(k, "li", !0) || k, "LI" == i.tagName || "TD" == i.tagName || i === e || domUtils.isBody(i) ? domUtils.remove(e, !0) : domUtils.breakParent(i, e), i !== k && (e = domUtils.findParentByTagName(k, "blockquote"), e && ("LI" == k.tagName || "TD" == k.tagName || domUtils.isBody(k) ? e.parentNode && domUtils.remove(e, !0) : domUtils.breakParent(k, e))); for (var l, m = domUtils.getElementsByTagName(this.document, "blockquote"), n = 0; l = m[n++]; ) l.childNodes.length ? domUtils.getPosition(l, i) & domUtils.POSITION_FOLLOWING && domUtils.getPosition(l, k) & domUtils.POSITION_PRECEDING && domUtils.remove(l, !0) : domUtils.remove(l) } else { for (var o = d.cloneRange(), p = 1 == o.startContainer.nodeType ? o.startContainer : o.startContainer.parentNode, q = p, r = 1; ; ) { if (domUtils.isBody(p)) { q !== p ? d.collapsed ? (o.selectNode(q), r = 0) : o.setStartBefore(q) : o.setStart(p, 0); break } if (!f[p.tagName]) { d.collapsed ? o.selectNode(q) : o.setStartBefore(q); break } q = p, p = p.parentNode } if (r) for (q = p = p = 1 == o.endContainer.nodeType ? o.endContainer : o.endContainer.parentNode; ; ) { if (domUtils.isBody(p)) { q !== p ? o.setEndAfter(q) : o.setEnd(p, p.childNodes.length); break } if (!f[p.tagName]) { o.setEndAfter(q); break } q = p, p = p.parentNode } p = d.document.createElement("blockquote"), domUtils.setAttributes(p, c), p.appendChild(o.extractContents()), o.insertNode(p); for (var s, t = domUtils.getElementsByTagName(p, "blockquote"), n = 0; s = t[n++]; ) s.parentNode && domUtils.remove(s, !0) } d.moveToBookmark(g).select() }, queryCommandState: function() { return a(this) ? 1 : 0 } } } , UE.commands.touppercase = UE.commands.tolowercase = { execCommand: function(a) { var b = this , c = b.selection.getRange(); if (c.collapsed) return c; for (var d = c.createBookmark(), e = d.end, f = function(a) { return !domUtils.isBr(a) && !domUtils.isWhitespace(a) }, g = domUtils.getNextDomNode(d.start, !1, f); g && domUtils.getPosition(g, e) & domUtils.POSITION_PRECEDING && (3 == g.nodeType && (g.nodeValue = g.nodeValue["touppercase" == a ? "toUpperCase" : "toLowerCase"]()), g = domUtils.getNextDomNode(g, !0, f), g !== e); ) ; c.moveToBookmark(d).select() } }, UE.commands.indent = { execCommand: function() { var a = this , b = a.queryCommandState("indent") ? "0em" : a.options.indentValue || "2em"; a.execCommand("Paragraph", "p", { style: "text-indent:" + b }) }, queryCommandState: function() { var a = domUtils.filterNodeList(this.selection.getStartElementPath(), "p h1 h2 h3 h4 h5 h6"); return a && a.style.textIndent && parseInt(a.style.textIndent) ? 1 : 0 } }, UE.commands.print = { execCommand: function() { this.window.print() }, notNeedUndo: 1 }, UE.commands.preview = { execCommand: function() { var a = window.open("", "_blank", "") , b = a.document; b.open(), b.write('
" + this.getContent(null, null, !0) + "
"), b.close() }, notNeedUndo: 1 }, UE.plugins.selectall = function() { var a = this; a.commands.selectall = { execCommand: function() { var a = this , b = a.body , c = a.selection.getRange(); c.selectNodeContents(b), domUtils.isEmptyBlock(b) && (browser.opera && b.firstChild && 1 == b.firstChild.nodeType && c.setStartAtFirst(b.firstChild), c.collapse(!0)), c.select(!0) }, notNeedUndo: 1 }, a.addshortcutkey({ selectAll: "ctrl+65" }) } , UE.plugins.paragraph = function() { var a = this , b = domUtils.isBlockElm , c = ["TD", "LI", "PRE"] , d = function(a, d, e, f) { var g, h = a.createBookmark(), i = function(a) { return 1 == a.nodeType ? "br" != a.tagName.toLowerCase() && !domUtils.isBookmarkNode(a) : !domUtils.isWhitespace(a) }; a.enlarge(!0); for (var j, k = a.createBookmark(), l = domUtils.getNextDomNode(k.start, !1, i), m = a.cloneRange(); l && !(domUtils.getPosition(l, k.end) & domUtils.POSITION_FOLLOWING); ) if (3 != l.nodeType && b(l)) l = domUtils.getNextDomNode(l, !0, i); else { for (m.setStartBefore(l); l && l !== k.end && !b(l); ) j = l, l = domUtils.getNextDomNode(l, !1, null, function(a) { return !b(a) }); m.setEndAfter(j), g = a.document.createElement(d), e && (domUtils.setAttributes(g, e), f && "customstyle" == f && e.style && (g.style.cssText = e.style)), g.appendChild(m.extractContents()), domUtils.isEmptyNode(g) && domUtils.fillChar(a.document, g), m.insertNode(g); var n = g.parentNode; b(n) && !domUtils.isBody(g.parentNode) && utils.indexOf(c, n.tagName) == -1 && (f && "customstyle" == f || (n.getAttribute("dir") && g.setAttribute("dir", n.getAttribute("dir")), n.style.cssText && (g.style.cssText = n.style.cssText + ";" + g.style.cssText), n.style.textAlign && !g.style.textAlign && (g.style.textAlign = n.style.textAlign), n.style.textIndent && !g.style.textIndent && (g.style.textIndent = n.style.textIndent), n.style.padding && !g.style.padding && (g.style.padding = n.style.padding)), e && /h\d/i.test(n.tagName) && !/h\d/i.test(g.tagName) ? (domUtils.setAttributes(n, e), f && "customstyle" == f && e.style && (n.style.cssText = e.style), domUtils.remove(g, !0), g = n) : domUtils.remove(g.parentNode, !0)), l = utils.indexOf(c, n.tagName) != -1 ? n : g, l = domUtils.getNextDomNode(l, !1, i) } return a.moveToBookmark(k).moveToBookmark(h) }; a.setOpt("paragraph", { p: "", h1: "", h2: "", h3: "", h4: "", h5: "", h6: "" }), a.commands.paragraph = { execCommand: function(a, b, c, e) { var f = this.selection.getRange(); if (f.collapsed) { var g = this.document.createTextNode("p"); if (f.insertNode(g), browser.ie) { var h = g.previousSibling; h && domUtils.isWhitespace(h) && domUtils.remove(h), h = g.nextSibling, h && domUtils.isWhitespace(h) && domUtils.remove(h) } } if (f = d(f, b, c, e), g && (f.setStartBefore(g).collapse(!0), pN = g.parentNode, domUtils.remove(g), domUtils.isBlockElm(pN) && domUtils.isEmptyNode(pN) && domUtils.fillNode(this.document, pN)), browser.gecko && f.collapsed && 1 == f.startContainer.nodeType) { var i = f.startContainer.childNodes[f.startOffset]; i && 1 == i.nodeType && i.tagName.toLowerCase() == b && f.setStart(i, 0).collapse(!0) } return f.select(), !0 }, queryCommandValue: function() { var a = domUtils.filterNodeList(this.selection.getStartElementPath(), "p h1 h2 h3 h4 h5 h6"); return a ? a.tagName.toLowerCase() : "" } } } , function() { var a = domUtils.isBlockElm , b = function(a) { return domUtils.filterNodeList(a.selection.getStartElementPath(), function(a) { return a && 1 == a.nodeType && a.getAttribute("dir") }) } , c = function(c, d, e) { var f, g = function(a) { return 1 == a.nodeType ? !domUtils.isBookmarkNode(a) : !domUtils.isWhitespace(a) }, h = b(d); if (h && c.collapsed) return h.setAttribute("dir", e), c; f = c.createBookmark(), c.enlarge(!0); for (var i, j = c.createBookmark(), k = domUtils.getNextDomNode(j.start, !1, g), l = c.cloneRange(); k && !(domUtils.getPosition(k, j.end) & domUtils.POSITION_FOLLOWING); ) if (3 != k.nodeType && a(k)) k = domUtils.getNextDomNode(k, !0, g); else { for (l.setStartBefore(k); k && k !== j.end && !a(k); ) i = k, k = domUtils.getNextDomNode(k, !1, null, function(b) { return !a(b) }); l.setEndAfter(i); var m = l.getCommonAncestor(); if (!domUtils.isBody(m) && a(m)) m.setAttribute("dir", e), k = m; else { var n = c.document.createElement("p"); n.setAttribute("dir", e); var o = l.extractContents(); n.appendChild(o), l.insertNode(n), k = n } k = domUtils.getNextDomNode(k, !1, g) } return c.moveToBookmark(j).moveToBookmark(f) }; UE.commands.directionality = { execCommand: function(a, b) { var d = this.selection.getRange(); if (d.collapsed) { var e = this.document.createTextNode("d"); d.insertNode(e) } return c(d, this, b), e && (d.setStartBefore(e).collapse(!0), domUtils.remove(e)), d.select(), !0 }, queryCommandValue: function() { var a = b(this); return a ? a.getAttribute("dir") : "ltr" } } }(), UE.plugins.horizontal = function() { var a = this; a.commands.horizontal = { execCommand: function(a) { var b = this; if (b.queryCommandState(a) !== -1) { b.execCommand("insertHtml", "
"); var c = b.selection.getRange() , d = c.startContainer; if (1 == d.nodeType && !d.childNodes[c.startOffset]) { var e; (e = d.childNodes[c.startOffset - 1]) && 1 == e.nodeType && "HR" == e.tagName && ("p" == b.options.enterTag ? (e = b.document.createElement("p"), c.insertNode(e), c.setStart(e, 0).setCursor()) : (e = b.document.createElement("br"), c.insertNode(e), c.setStartBefore(e).setCursor())) } return !0 } }, queryCommandState: function() { return domUtils.filterNodeList(this.selection.getStartElementPath(), "table") ? -1 : 0 } }, a.addListener("delkeydown", function(a, b) { var c = this.selection.getRange(); if (c.txtToElmBoundary(!0), domUtils.isStartInblock(c)) { var d = c.startContainer , e = d.previousSibling; if (e && domUtils.isTagNode(e, "hr")) return domUtils.remove(e), c.select(), domUtils.preventDefault(b), !0 } }) } , UE.commands.time = UE.commands.date = { execCommand: function(a, b) { function c(a, b) { var c = ("0" + a.getHours()).slice(-2) , d = ("0" + a.getMinutes()).slice(-2) , e = ("0" + a.getSeconds()).slice(-2); return b = b || "hh:ii:ss", b.replace(/hh/gi, c).replace(/ii/gi, d).replace(/ss/gi, e) } function d(a, b) { var c = ("000" + a.getFullYear()).slice(-4) , d = c.slice(-2) , e = ("0" + (a.getMonth() + 1)).slice(-2) , f = ("0" + a.getDate()).slice(-2); return b = b || "yyyy-mm-dd", b.replace(/yyyy/gi, c).replace(/yy/gi, d).replace(/mm/gi, e).replace(/dd/gi, f) } var e = new Date; this.execCommand("insertHtml", "time" == a ? c(e, b) : d(e, b)) } }, UE.plugins.rowspacing = function() { var a = this; a.setOpt({ rowspacingtop: ["5", "10", "15", "20", "25"], rowspacingbottom: ["5", "10", "15", "20", "25"] }), a.commands.rowspacing = { execCommand: function(a, b, c) { return this.execCommand("paragraph", "p", { style: "margin-" + c + ":" + b + "px" }), !0 }, queryCommandValue: function(a, b) { var c, d = domUtils.filterNodeList(this.selection.getStartElementPath(), function(a) { return domUtils.isBlockElm(a) }); return d ? (c = domUtils.getComputedStyle(d, "margin-" + b).replace(/[^\d]/g, ""), c ? c : 0) : 0 } } } , UE.plugins.lineheight = function() { var a = this; a.setOpt({ lineheight: ["1", "1.5", "1.75", "2", "3", "4", "5"] }), a.commands.lineheight = { execCommand: function(a, b) { return this.execCommand("paragraph", "p", { style: "line-height:" + ("1" == b ? "normal" : b + "em") }), !0 }, queryCommandValue: function() { var a = domUtils.filterNodeList(this.selection.getStartElementPath(), function(a) { return domUtils.isBlockElm(a) }); if (a) { var b = domUtils.getComputedStyle(a, "line-height"); return "normal" == b ? 1 : b.replace(/[^\d.]*/gi, "") } } } } , UE.plugins.insertcode = function() { var a = this; a.ready(function() { utils.cssRule("pre", "pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}", a.document) }), a.setOpt("insertcode", { as3: "ActionScript3", bash: "Bash/Shell", cpp: "C/C++", css: "Css", cf: "CodeFunction", "c#": "C#", delphi: "Delphi", diff: "Diff", erlang: "Erlang", groovy: "Groovy", html: "Html", java: "Java", jfx: "JavaFx", js: "Javascript", pl: "Perl", php: "Php", plain: "Plain Text", ps: "PowerShell", python: "Python", ruby: "Ruby", scala: "Scala", sql: "Sql", vb: "Vb", xml: "Xml" }), a.commands.insertcode = { execCommand: function(a, b) { var c = this , d = c.selection.getRange() , e = domUtils.findParentByTagName(d.startContainer, "pre", !0); if (e) e.className = "brush:" + b + ";toolbar:false;"; else { var f = ""; if (d.collapsed) f = browser.ie && browser.ie11below ? browser.version <= 8 ? " " : "" : "
"; else { var g = d.extractContents() , h = c.document.createElement("div"); h.appendChild(g), utils.each(UE.filterNode(UE.htmlparser(h.innerHTML.replace(/[\r\t]/g, "")), c.options.filterTxtRules).children, function(a) { if (browser.ie && browser.ie11below && browser.version > 8) "element" == a.type ? "br" == a.tagName ? f += "\n" : dtd.$empty[a.tagName] || (utils.each(a.children, function(b) { "element" == b.type ? "br" == b.tagName ? f += "\n" : dtd.$empty[a.tagName] || (f += b.innerText()) : f += b.data }), /\n$/.test(f) || (f += "\n")) : f += a.data + "\n", !a.nextSibling() && /\n$/.test(f) && (f = f.replace(/\n$/, "")); else if (browser.ie && browser.ie11below) "element" == a.type ? "br" == a.tagName ? f += "
" : dtd.$empty[a.tagName] || (utils.each(a.children, function(b) { "element" == b.type ? "br" == b.tagName ? f += "
" : dtd.$empty[a.tagName] || (f += b.innerText()) : f += b.data }), /br>$/.test(f) || (f += "
")) : f += a.data + "
", !a.nextSibling() && /
$/.test(f) && (f = f.replace(/
$/, "")); else if (f += "element" == a.type ? dtd.$empty[a.tagName] ? "" : a.innerText() : a.data, !/br\/?\s*>$/.test(f)) { if (!a.nextSibling()) return; f += "
" } }) } c.execCommand("inserthtml", '
' + f + "
", !0), e = c.document.getElementById("coder"), domUtils.removeAttributes(e, "id"); var i = e.previousSibling; i && (3 == i.nodeType && 1 == i.nodeValue.length && browser.ie && 6 == browser.version || domUtils.isEmptyBlock(i)) && domUtils.remove(i); var d = c.selection.getRange(); domUtils.isEmptyBlock(e) ? d.setStart(e, 0).setCursor(!1, !0) : d.selectNodeContents(e).select() } }, queryCommandValue: function() { var a = this.selection.getStartElementPath() , b = ""; return utils.each(a, function(a) { if ("PRE" == a.nodeName) { var c = a.className.match(/brush:([^;]+)/); return b = c && c[1] ? c[1] : "", !1 } }), b } }, a.addInputRule(function(a) { utils.each(a.getNodesByTagName("pre"), function(a) { var b = a.getNodesByTagName("br"); if (b.length) return void (browser.ie && browser.ie11below && browser.version > 8 && utils.each(b, function(a) { var b = UE.uNode.createText("\n"); a.parentNode.insertBefore(b, a), a.parentNode.removeChild(a) })); if (!(browser.ie && browser.ie11below && browser.version > 8)) { var c = a.innerText().split(/\n/); a.innerHTML(""), utils.each(c, function(b) { b.length && a.appendChild(UE.uNode.createText(b)), a.appendChild(UE.uNode.createElement("br")) }) } }) }), a.addOutputRule(function(a) { utils.each(a.getNodesByTagName("pre"), function(a) { var b = ""; utils.each(a.children, function(a) { b += "text" == a.type ? a.data.replace(/[ ]/g, " ").replace(/\n$/, "") : "br" == a.tagName ? "\n" : dtd.$empty[a.tagName] ? a.innerText() : "" }), a.innerText(b.replace(/( |\n)+$/, "")) }) }), a.notNeedCodeQuery = { help: 1, undo: 1, redo: 1, source: 1, print: 1, searchreplace: 1, fullscreen: 1, preview: 1, insertparagraph: 1, elementpath: 1, insertcode: 1, inserthtml: 1, selectall: 1 }; a.queryCommandState; a.queryCommandState = function(a) { var b = this; return !b.notNeedCodeQuery[a.toLowerCase()] && b.selection && b.queryCommandValue("insertcode") ? -1 : UE.Editor.prototype.queryCommandState.apply(this, arguments) } , a.addListener("beforeenterkeydown", function() { var b = a.selection.getRange() , c = domUtils.findParentByTagName(b.startContainer, "pre", !0); if (c) { if (a.fireEvent("saveScene"), b.collapsed || b.deleteContents(), !browser.ie || browser.ie9above) { var c, d = a.document.createElement("br"); b.insertNode(d).setStartAfter(d).collapse(!0); var e = d.nextSibling; e || browser.ie && !(browser.version > 10) ? b.setStartAfter(d) : b.insertNode(d.cloneNode(!1)), c = d.previousSibling; for (var f; c; ) if (f = c, c = c.previousSibling, !c || "BR" == c.nodeName) { c = f; break } if (c) { for (var g = ""; c && "BR" != c.nodeName && new RegExp("^[\\s" + domUtils.fillChar + "]*$").test(c.nodeValue); ) g += c.nodeValue, c = c.nextSibling; if ("BR" != c.nodeName) { var h = c.nodeValue.match(new RegExp("^([\\s" + domUtils.fillChar + "]+)")); h && h[1] && (g += h[1]) } g && (g = a.document.createTextNode(g), b.insertNode(g).setStartAfter(g)) } b.collapse(!0).select(!0) } else if (browser.version > 8) { var i = a.document.createTextNode("\n") , j = b.startContainer; if (0 == b.startOffset) { var k = j.previousSibling; if (k) { b.insertNode(i); var l = a.document.createTextNode(" "); b.setStartAfter(i).insertNode(l).setStart(l, 0).collapse(!0).select(!0) } } else { b.insertNode(i).setStartAfter(i); var l = a.document.createTextNode(" "); j = b.startContainer.childNodes[b.startOffset], j && !/^\n/.test(j.nodeValue) && b.setStartBefore(i), b.insertNode(l).setStart(l, 0).collapse(!0).select(!0) } } else { var d = a.document.createElement("br"); b.insertNode(d), b.insertNode(a.document.createTextNode(domUtils.fillChar)), b.setStartAfter(d), c = d.previousSibling; for (var f; c; ) if (f = c, c = c.previousSibling, !c || "BR" == c.nodeName) { c = f; break } if (c) { for (var g = ""; c && "BR" != c.nodeName && new RegExp("^[ " + domUtils.fillChar + "]*$").test(c.nodeValue); ) g += c.nodeValue, c = c.nextSibling; if ("BR" != c.nodeName) { var h = c.nodeValue.match(new RegExp("^([ " + domUtils.fillChar + "]+)")); h && h[1] && (g += h[1]) } g = a.document.createTextNode(g), b.insertNode(g).setStartAfter(g) } b.collapse(!0).select() } return a.fireEvent("saveScene"), !0 } }), a.addListener("tabkeydown", function(b, c) { var d = a.selection.getRange() , e = domUtils.findParentByTagName(d.startContainer, "pre", !0); if (e) { if (a.fireEvent("saveScene"), c.shiftKey) ; else if (d.collapsed) { var f = a.document.createTextNode(" "); d.insertNode(f).setStartAfter(f).collapse(!0).select(!0) } else { for (var g = d.createBookmark(), h = g.start.previousSibling; h; ) { if (e.firstChild === h && !domUtils.isBr(h)) { e.insertBefore(a.document.createTextNode(" "), h); break } if (domUtils.isBr(h)) { e.insertBefore(a.document.createTextNode(" "), h.nextSibling); break } h = h.previousSibling } var i = g.end; for (h = g.start.nextSibling, e.firstChild === g.start && e.insertBefore(a.document.createTextNode(" "), h.nextSibling); h && h !== i; ) { if (domUtils.isBr(h) && h.nextSibling) { if (h.nextSibling === i) break; e.insertBefore(a.document.createTextNode(" "), h.nextSibling) } h = h.nextSibling } d.moveToBookmark(g).select() } return a.fireEvent("saveScene"), !0 } }), a.addListener("beforeinserthtml", function(a, b) { var c = this , d = c.selection.getRange() , e = domUtils.findParentByTagName(d.startContainer, "pre", !0); if (e) { d.collapsed || d.deleteContents(); var f = ""; if (browser.ie && browser.version > 8) { utils.each(UE.filterNode(UE.htmlparser(b), c.options.filterTxtRules).children, function(a) { "element" == a.type ? "br" == a.tagName ? f += "\n" : dtd.$empty[a.tagName] || (utils.each(a.children, function(b) { "element" == b.type ? "br" == b.tagName ? f += "\n" : dtd.$empty[a.tagName] || (f += b.innerText()) : f += b.data }), /\n$/.test(f) || (f += "\n")) : f += a.data + "\n", !a.nextSibling() && /\n$/.test(f) && (f = f.replace(/\n$/, "")) }); var g = c.document.createTextNode(utils.html(f.replace(/ /g, " "))); d.insertNode(g).selectNode(g).select() } else { var h = c.document.createDocumentFragment(); utils.each(UE.filterNode(UE.htmlparser(b), c.options.filterTxtRules).children, function(a) { "element" == a.type ? "br" == a.tagName ? h.appendChild(c.document.createElement("br")) : dtd.$empty[a.tagName] || (utils.each(a.children, function(b) { "element" == b.type ? "br" == b.tagName ? h.appendChild(c.document.createElement("br")) : dtd.$empty[a.tagName] || h.appendChild(c.document.createTextNode(utils.html(b.innerText().replace(/ /g, " ")))) : h.appendChild(c.document.createTextNode(utils.html(b.data.replace(/ /g, " ")))) }), "BR" != h.lastChild.nodeName && h.appendChild(c.document.createElement("br"))) : h.appendChild(c.document.createTextNode(utils.html(a.data.replace(/ /g, " ")))), a.nextSibling() || "BR" != h.lastChild.nodeName || h.removeChild(h.lastChild) }), d.insertNode(h).select() } return !0 } }), a.addListener("keydown", function(a, b) { var c = this , d = b.keyCode || b.which; if (40 == d) { var e, f = c.selection.getRange(), g = f.startContainer; if (f.collapsed && (e = domUtils.findParentByTagName(f.startContainer, "pre", !0)) && !e.nextSibling) { for (var h = e.lastChild; h && "BR" == h.nodeName; ) h = h.previousSibling; (h === g || f.startContainer === e && f.startOffset == e.childNodes.length) && (c.execCommand("insertparagraph"), domUtils.preventDefault(b)) } } }), a.addListener("delkeydown", function(b, c) { var d = this.selection.getRange(); d.txtToElmBoundary(!0); var e = d.startContainer; if (domUtils.isTagNode(e, "pre") && d.collapsed && domUtils.isStartInblock(d)) { var f = a.document.createElement("p"); return domUtils.fillNode(a.document, f), e.parentNode.insertBefore(f, e), domUtils.remove(e), d.setStart(f, 0).setCursor(!1, !0), domUtils.preventDefault(c), !0 } }) } , UE.commands.cleardoc = { execCommand: function(a) { var b = this , c = b.options.enterTag , d = b.selection.getRange(); "br" == c ? (b.body.innerHTML = "
", d.setStart(b.body, 0).setCursor()) : (b.body.innerHTML = "

" + (ie ? "" : "
") + "

", d.setStart(b.body.firstChild, 0).setCursor(!1, !0)), setTimeout(function() { b.fireEvent("clearDoc") }, 0) } }, UE.plugin.register("anchor", function() { return { bindEvents: { ready: function() { utils.cssRule("anchor", ".anchorclass{background: url('" + this.options.themePath + this.options.theme + "/images/anchor.gif') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}", this.document) } }, outputRule: function(a) { utils.each(a.getNodesByTagName("img"), function(a) { var b; (b = a.getAttr("anchorname")) && (a.tagName = "a", a.setAttr({ anchorname: "", name: b, "class": "" })) }) }, inputRule: function(a) { utils.each(a.getNodesByTagName("a"), function(a) { var b; (b = a.getAttr("name")) && !a.getAttr("href") && (a.tagName = "img", a.setAttr({ anchorname: a.getAttr("name"), "class": "anchorclass" }), a.setAttr("name")) }) }, commands: { anchor: { execCommand: function(a, b) { var c = this.selection.getRange() , d = c.getClosedNode(); if (d && d.getAttribute("anchorname")) b ? d.setAttribute("anchorname", b) : (c.setStartBefore(d).setCursor(), domUtils.remove(d)); else if (b) { var e = this.document.createElement("img"); c.collapse(!0), domUtils.setAttributes(e, { anchorname: b, "class": "anchorclass" }), c.insertNode(e).setStartAfter(e).setCursor(!1, !0) } } } } } }), UE.plugins.wordcount = function() { var a = this; a.setOpt("wordCount", !0), a.addListener("contentchange", function() { a.fireEvent("wordcount") }); var b; a.addListener("ready", function() { var a = this; domUtils.on(a.body, "keyup", function(c) { var d = c.keyCode || c.which , e = { 16: 1, 18: 1, 20: 1, 37: 1, 38: 1, 39: 1, 40: 1 }; d in e || (clearTimeout(b), b = setTimeout(function() { a.fireEvent("wordcount") }, 200)) }) }) } , UE.plugins.pagebreak = function() { function a(a) { if (domUtils.isEmptyBlock(a)) { for (var b, d = a.firstChild; d && 1 == d.nodeType && domUtils.isEmptyBlock(d); ) b = d, d = d.firstChild; !b && (b = a), domUtils.fillNode(c.document, b) } } function b(a) { return a && 1 == a.nodeType && "HR" == a.tagName && "pagebreak" == a.className } var c = this , d = ["td"]; c.setOpt("pageBreakTag", "_ueditor_page_break_tag_"), c.ready(function() { utils.cssRule("pagebreak", ".pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}", c.document) }), c.addInputRule(function(a) { a.traversal(function(a) { if ("text" == a.type && a.data == c.options.pageBreakTag) { var b = UE.uNode.createElement('
'); a.parentNode.insertBefore(b, a), a.parentNode.removeChild(a) } }) }), c.addOutputRule(function(a) { utils.each(a.getNodesByTagName("hr"), function(a) { if ("pagebreak" == a.getAttr("class")) { var b = UE.uNode.createText(c.options.pageBreakTag); a.parentNode.insertBefore(b, a), a.parentNode.removeChild(a) } }) }), c.commands.pagebreak = { execCommand: function() { var e = c.selection.getRange() , f = c.document.createElement("hr"); domUtils.setAttributes(f, { "class": "pagebreak", noshade: "noshade", size: "5" }), domUtils.unSelectable(f); var g, h = domUtils.findParentByTagName(e.startContainer, d, !0), i = []; if (h) switch (h.tagName) { case "TD": if (g = h.parentNode, g.previousSibling) g.parentNode.insertBefore(f, g), i = domUtils.findParents(f); else { var j = domUtils.findParentByTagName(g, "table"); j.parentNode.insertBefore(f, j), i = domUtils.findParents(f, !0) } g = i[1], f !== g && domUtils.breakParent(f, g), c.fireEvent("afteradjusttable", c.document) } else { if (!e.collapsed) { e.deleteContents(); for (var k = e.startContainer; !domUtils.isBody(k) && domUtils.isBlockElm(k) && domUtils.isEmptyNode(k); ) e.setStartBefore(k).collapse(!0), domUtils.remove(k), k = e.startContainer } e.insertNode(f); for (var l, g = f.parentNode; !domUtils.isBody(g); ) domUtils.breakParent(f, g), l = f.nextSibling, l && domUtils.isEmptyBlock(l) && domUtils.remove(l), g = f.parentNode; l = f.nextSibling; var m = f.previousSibling; if (b(m) ? domUtils.remove(m) : m && a(m), l) b(l) ? domUtils.remove(l) : a(l), e.setEndAfter(f).collapse(!1); else { var n = c.document.createElement("p"); f.parentNode.appendChild(n), domUtils.fillNode(c.document, n), e.setStart(n, 0).collapse(!0) } e.select(!0) } } } } , UE.plugins.undo = function() { function a(a, b) { if (a.length != b.length) return 0; for (var c = 0, d = a.length; c < d; c++) if (a[c] != b[c]) return 0; return 1 } function b(b, c) { return b.collapsed != c.collapsed ? 0 : a(b.startAddress, c.startAddress) && a(b.endAddress, c.endAddress) ? 1 : 0 } function c() { this.list = [], this.index = 0, this.hasUndo = !1, this.hasRedo = !1, this.undo = function() { if (this.hasUndo) { if (!this.list[this.index - 1] && 1 == this.list.length) return void this.reset(); for (; this.list[this.index].content == this.list[this.index - 1].content; ) if (this.index--, 0 == this.index) return this.restore(0); this.restore(--this.index) } } , this.redo = function() { if (this.hasRedo) { for (; this.list[this.index].content == this.list[this.index + 1].content; ) if (this.index++, this.index == this.list.length - 1) return this.restore(this.index); this.restore(++this.index) } } , this.restore = function() { var a = this.editor , b = this.list[this.index] , c = UE.htmlparser(b.content.replace(h, "")); a.options.autoClearEmptyNode = !1, a.filterInputRule(c), a.options.autoClearEmptyNode = j, a.document.body.innerHTML = c.toHtml(), a.fireEvent("afterscencerestore"), browser.ie && utils.each(domUtils.getElementsByTagName(a.document, "td th caption p"), function(b) { domUtils.isEmptyNode(b) && domUtils.fillNode(a.document, b) }); try { var d = new dom.Range(a.document).moveToAddress(b.address); d.select(i[d.startContainer.nodeName.toLowerCase()]) } catch (e) {} this.update(), this.clearKey(), a.fireEvent("reset", !0) } , this.getScene = function() { var a = this.editor , b = a.selection.getRange() , c = b.createAddress(!1, !0); a.fireEvent("beforegetscene"); var d = UE.htmlparser(a.body.innerHTML); a.options.autoClearEmptyNode = !1, a.filterOutputRule(d), a.options.autoClearEmptyNode = j; var e = d.toHtml(); return a.fireEvent("aftergetscene"), { address: c, content: e } } , this.save = function(a, c) { clearTimeout(d); var g = this.getScene(c) , h = this.list[this.index]; h && h.content != g.content && e.trigger("contentchange"), h && h.content == g.content && (a ? 1 : b(h.address, g.address)) || (this.list = this.list.slice(0, this.index + 1), this.list.push(g), this.list.length > f && this.list.shift(), this.index = this.list.length - 1, this.clearKey(), this.update()) } , this.update = function() { this.hasRedo = !!this.list[this.index + 1], this.hasUndo = !!this.list[this.index - 1] } , this.reset = function() { this.list = [], this.index = 0, this.hasUndo = !1, this.hasRedo = !1, this.clearKey() } , this.clearKey = function() { m = 0, k = null } } var d, e = this, f = e.options.maxUndoCount || 20, g = e.options.maxInputCount || 20, h = new RegExp(domUtils.fillChar + "|","gi"), i = { ol: 1, ul: 1, table: 1, tbody: 1, tr: 1, body: 1 }, j = e.options.autoClearEmptyNode; e.undoManger = new c, e.undoManger.editor = e, e.addListener("saveScene", function() { var a = Array.prototype.splice.call(arguments, 1); this.undoManger.save.apply(this.undoManger, a) }), e.addListener("reset", function(a, b) { b || this.undoManger.reset() }), e.commands.redo = e.commands.undo = { execCommand: function(a) { this.undoManger[a]() }, queryCommandState: function(a) { return this.undoManger["has" + ("undo" == a.toLowerCase() ? "Undo" : "Redo")] ? 0 : -1 }, notNeedUndo: 1 }; var k, l = { 16: 1, 17: 1, 18: 1, 37: 1, 38: 1, 39: 1, 40: 1 }, m = 0, n = !1; e.addListener("ready", function() { domUtils.on(this.body, "compositionstart", function() { n = !0 }), domUtils.on(this.body, "compositionend", function() { n = !1 }) }), e.addshortcutkey({ Undo: "ctrl+90", Redo: "ctrl+89" }); var o = !0; e.addListener("keydown", function(a, b) { function c(a) { a.undoManger.save(!1, !0), a.fireEvent("selectionchange") } var e = this , f = b.keyCode || b.which; if (!(l[f] || b.ctrlKey || b.metaKey || b.shiftKey || b.altKey)) { if (n) return; if (!e.selection.getRange().collapsed) return e.undoManger.save(!1, !0), void (o = !1); 0 == e.undoManger.list.length && e.undoManger.save(!0), clearTimeout(d), d = setTimeout(function() { if (n) var a = setInterval(function() { n || (c(e), clearInterval(a)) }, 300); else c(e) }, 200), k = f, m++, m >= g && c(e) } }), e.addListener("keyup", function(a, b) { var c = b.keyCode || b.which; if (!(l[c] || b.ctrlKey || b.metaKey || b.shiftKey || b.altKey)) { if (n) return; o || (this.undoManger.save(!1, !0), o = !0) } }), e.stopCmdUndo = function() { e.__hasEnterExecCommand = !0 } , e.startCmdUndo = function() { e.__hasEnterExecCommand = !1 } } , UE.plugins.paste = function() { function a(a) { var b = this.document; if (!b.getElementById("baidu_pastebin")) { var c = this.selection.getRange() , d = c.createBookmark() , e = b.createElement("div"); e.id = "baidu_pastebin", browser.webkit && e.appendChild(b.createTextNode(domUtils.fillChar + domUtils.fillChar)), b.body.appendChild(e), d.start.style.display = "", e.style.cssText = "position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:" + domUtils.getXY(d.start).y + "px", c.selectNodeContents(e).select(!0), setTimeout(function() { if (browser.webkit) for (var f, g = 0, h = b.querySelectorAll("#baidu_pastebin"); f = h[g++]; ) { if (!domUtils.isEmptyNode(f)) { e = f; break } domUtils.remove(f) } try { e.parentNode.removeChild(e) } catch (i) {} c.moveToBookmark(d).select(!0), a(e) }, 0) } } function b(a) { return a.replace(/<(\/?)([\w\-]+)([^>]*)>/gi, function(a, b, c, d) { return c = c.toLowerCase(), { img: 1 }[c] ? a : (d = d.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi, function(a, b, c) { return { src: 1, href: 1, name: 1 }[b.toLowerCase()] ? b + "=" + c + " " : "" }), { span: 1, div: 1 }[c] ? "" : "<" + b + c + " " + utils.trim(d) + ">") }) } function c(a) { var c; if (a.firstChild) { for (var h, i = domUtils.getElementsByTagName(a, "span"), j = 0; h = i[j++]; ) "_baidu_cut_start" != h.id && "_baidu_cut_end" != h.id || domUtils.remove(h); if (browser.webkit) { for (var k, l = a.querySelectorAll("div br"), j = 0; k = l[j++]; ) { var m = k.parentNode; "DIV" == m.tagName && 1 == m.childNodes.length && (m.innerHTML = "


", domUtils.remove(m)) } for (var n, o = a.querySelectorAll("#baidu_pastebin"), j = 0; n = o[j++]; ) { var p = d.document.createElement("p"); for (n.parentNode.insertBefore(p, n); n.firstChild; ) p.appendChild(n.firstChild); domUtils.remove(n) } for (var q, r = a.querySelectorAll("meta"), j = 0; q = r[j++]; ) domUtils.remove(q); var l = a.querySelectorAll("br"); for (j = 0; q = l[j++]; ) /^apple-/i.test(q.className) && domUtils.remove(q) } if (browser.gecko) { var s = a.querySelectorAll("[_moz_dirty]"); for (j = 0; q = s[j++]; ) q.removeAttribute("_moz_dirty") } if (!browser.ie) for (var q, t = a.querySelectorAll("span.Apple-style-span"), j = 0; q = t[j++]; ) domUtils.remove(q, !0); c = a.innerHTML, c = UE.filterWord(c); var u = UE.htmlparser(c); if (d.options.filterRules && UE.filterNode(u, d.options.filterRules), d.filterInputRule(u), browser.webkit) { var v = u.lastChild(); v && "element" == v.type && "br" == v.tagName && u.removeChild(v), utils.each(d.body.querySelectorAll("div"), function(a) { domUtils.isEmptyBlock(a) && domUtils.remove(a, !0) }) } if (c = { html: u.toHtml() }, d.fireEvent("beforepaste", c, u), !c.html) return; u = UE.htmlparser(c.html, !0), 1 === d.queryCommandState("pasteplain") ? d.execCommand("insertHtml", UE.filterNode(u, d.options.filterTxtRules).toHtml(), !0) : (UE.filterNode(u, d.options.filterTxtRules), e = u.toHtml(), f = c.html, g = d.selection.getRange().createAddress(!0), d.execCommand("insertHtml", d.getOpt("retainOnlyLabelPasted") === !0 ? b(f) : f, !0)), d.fireEvent("afterpaste", c) } } var d = this; d.setOpt({ retainOnlyLabelPasted: !1 }); var e, f, g; d.addListener("pasteTransfer", function(a, c) { if (g && e && f && e != f) { var h = d.selection.getRange(); if (h.moveToAddress(g, !0), !h.collapsed) { for (; !domUtils.isBody(h.startContainer); ) { var i = h.startContainer; if (1 == i.nodeType) { if (i = i.childNodes[h.startOffset], !i) { h.setStartBefore(h.startContainer); continue } var j = i.previousSibling; j && 3 == j.nodeType && new RegExp("^[\n\r\t " + domUtils.fillChar + "]*$").test(j.nodeValue) && h.setStartBefore(j) } if (0 != h.startOffset) break; h.setStartBefore(h.startContainer) } for (; !domUtils.isBody(h.endContainer); ) { var k = h.endContainer; if (1 == k.nodeType) { if (k = k.childNodes[h.endOffset], !k) { h.setEndAfter(h.endContainer); continue } var l = k.nextSibling; l && 3 == l.nodeType && new RegExp("^[\n\r\t" + domUtils.fillChar + "]*$").test(l.nodeValue) && h.setEndAfter(l) } if (h.endOffset != h.endContainer[3 == h.endContainer.nodeType ? "nodeValue" : "childNodes"].length) break; h.setEndAfter(h.endContainer) } } h.deleteContents(), h.select(!0), d.__hasEnterExecCommand = !0; var m = f; 2 === c ? m = b(m) : c && (m = e), d.execCommand("inserthtml", m, !0), d.__hasEnterExecCommand = !1; for (var n = d.selection.getRange(); !domUtils.isBody(n.startContainer) && !n.startOffset && n.startContainer[3 == n.startContainer.nodeType ? "nodeValue" : "childNodes"].length; ) n.setStartBefore(n.startContainer); var o = n.createAddress(!0); g.endAddress = o.startAddress } }), d.addListener("ready", function() { domUtils.on(d.body, "cut", function() { var a = d.selection.getRange(); !a.collapsed && d.undoManger && d.undoManger.save() }), domUtils.on(d.body, browser.ie || browser.opera ? "keydown" : "paste", function(b) { (!browser.ie && !browser.opera || (b.ctrlKey || b.metaKey) && "86" == b.keyCode) && a.call(d, function(a) { c(a) }) }) }), d.commands.paste = { execCommand: function(b) { browser.ie ? (a.call(d, function(a) { c(a) }), d.document.execCommand("paste")) : alert(d.getLang("pastemsg")) } } } , UE.plugins.pasteplain = function() { var a = this; a.setOpt({ pasteplain: !1, filterTxtRules: function() { function a(a) { a.tagName = "p", a.setStyle() } function b(a) { a.parentNode.removeChild(a, !0) } return { "-": "script style object iframe embed input select", p: { $: {} }, br: { $: {} }, div: function(a) { for (var b, c = UE.uNode.createElement("p"); b = a.firstChild(); ) "text" != b.type && UE.dom.dtd.$block[b.tagName] ? c.firstChild() ? (a.parentNode.insertBefore(c, a), c = UE.uNode.createElement("p")) : a.parentNode.insertBefore(b, a) : c.appendChild(b); c.firstChild() && a.parentNode.insertBefore(c, a), a.parentNode.removeChild(a) }, ol: b, ul: b, dl: b, dt: b, dd: b, li: b, caption: a, th: a, tr: a, h1: a, h2: a, h3: a, h4: a, h5: a, h6: a, td: function(a) { var b = !!a.innerText(); b && a.parentNode.insertAfter(UE.uNode.createText("    "), a), a.parentNode.removeChild(a, a.innerText()) } } }() }); var b = a.options.pasteplain; a.commands.pasteplain = { queryCommandState: function() { return b ? 1 : 0 }, execCommand: function() { b = 0 | !b }, notNeedUndo: 1 } } , UE.plugins.list = function() { function a(a) { var b = []; for (var c in a) b.push(c); return b } function b(a) { var b = a.className; return domUtils.hasClass(a, /custom_/) ? b.match(/custom_(\w+)/)[1] : domUtils.getStyle(a, "list-style-type") } function c(a, c) { utils.each(domUtils.getElementsByTagName(a, "ol ul"), function(f) { if (domUtils.inDoc(f, a)) { var g = f.parentNode; if (g.tagName == f.tagName) { var h = b(f) || ("OL" == f.tagName ? "decimal" : "disc") , i = b(g) || ("OL" == g.tagName ? "decimal" : "disc"); if (h == i) { var l = utils.indexOf(k[f.tagName], h); l = l + 1 == k[f.tagName].length ? 0 : l + 1, e(f, k[f.tagName][l]) } } var m = 0 , n = 2; domUtils.hasClass(f, /custom_/) ? /[ou]l/i.test(g.tagName) && domUtils.hasClass(g, /custom_/) || (n = 1) : /[ou]l/i.test(g.tagName) && domUtils.hasClass(g, /custom_/) && (n = 3); var o = domUtils.getStyle(f, "list-style-type"); o && (f.style.cssText = "list-style-type:" + o), f.className = utils.trim(f.className.replace(/list-paddingleft-\w+/, "")) + " list-paddingleft-" + n, utils.each(domUtils.getElementsByTagName(f, "li"), function(a) { if (a.style.cssText && (a.style.cssText = ""), !a.firstChild) return void domUtils.remove(a); if (a.parentNode === f) { if (m++, domUtils.hasClass(f, /custom_/)) { var c = 1 , d = b(f); if ("OL" == f.tagName) { if (d) switch (d) { case "cn": case "cn1": case "cn2": m > 10 && (m % 10 == 0 || m > 10 && m < 20) ? c = 2 : m > 20 && (c = 3); break; case "num2": m > 9 && (c = 2) } a.className = "list-" + j[d] + m + " list-" + d + "-paddingleft-" + c } else a.className = "list-" + j[d] + " list-" + d + "-paddingleft" } else a.className = a.className.replace(/list-[\w\-]+/gi, ""); var e = a.getAttribute("class"); null === e || e.replace(/\s/g, "") || domUtils.removeAttributes(a, "class") } }), !c && d(f, f.tagName.toLowerCase(), b(f) || domUtils.getStyle(f, "list-style-type"), !0) } }) } function d(a, d, e, f) { var g = a.nextSibling; g && 1 == g.nodeType && g.tagName.toLowerCase() == d && (b(g) || domUtils.getStyle(g, "list-style-type") || ("ol" == d ? "decimal" : "disc")) == e && (domUtils.moveChild(g, a), 0 == g.childNodes.length && domUtils.remove(g)), g && domUtils.isFillChar(g) && domUtils.remove(g); var h = a.previousSibling; h && 1 == h.nodeType && h.tagName.toLowerCase() == d && (b(h) || domUtils.getStyle(h, "list-style-type") || ("ol" == d ? "decimal" : "disc")) == e && domUtils.moveChild(a, h), h && domUtils.isFillChar(h) && domUtils.remove(h), !f && domUtils.isEmptyBlock(a) && domUtils.remove(a), b(a) && c(a.ownerDocument, !0) } function e(a, b) { j[b] && (a.className = "custom_" + b); try { domUtils.setStyle(a, "list-style-type", b) } catch (c) {} } function f(a) { var b = a.previousSibling; b && domUtils.isEmptyBlock(b) && domUtils.remove(b), b = a.nextSibling, b && domUtils.isEmptyBlock(b) && domUtils.remove(b) } function g(a) { for (; a && !domUtils.isBody(a); ) { if ("TABLE" == a.nodeName) return null; if ("LI" == a.nodeName) return a; a = a.parentNode } } var h = this , i = { TD: 1, PRE: 1, BLOCKQUOTE: 1 } , j = { cn: "cn-1-", cn1: "cn-2-", cn2: "cn-3-", num: "num-1-", num1: "num-2-", num2: "num-3-", dash: "dash", dot: "dot" }; h.setOpt({ autoTransWordToList: !1, insertorderedlist: { decimal: "", "lower-alpha": "", "lower-roman": "", "upper-alpha": "", "upper-roman": "" }, insertunorderedlist: { circle: "", disc: "", square: "" }, listDefaultPaddingLeft: "30", listiconpath: "http://bs.baidu.com/listicon/", maxListLevel: -1, disablePInList: !1 }); var k = { OL: a(h.options.insertorderedlist), UL: a(h.options.insertunorderedlist) } , l = h.options.listiconpath; for (var m in j) h.options.insertorderedlist.hasOwnProperty(m) || h.options.insertunorderedlist.hasOwnProperty(m) || delete j[m]; h.ready(function() { var a = []; for (var b in j) { if ("dash" == b || "dot" == b) a.push("li.list-" + j[b] + "{background-image:url(" + l + j[b] + ".gif)}"), a.push("ul.custom_" + b + "{list-style:none;}ul.custom_" + b + " li{background-position:0 3px;background-repeat:no-repeat}"); else { for (var c = 0; c < 99; c++) a.push("li.list-" + j[b] + c + "{background-image:url(" + l + "list-" + j[b] + c + ".gif)}"); a.push("ol.custom_" + b + "{list-style:none;}ol.custom_" + b + " li{background-position:0 3px;background-repeat:no-repeat}") } switch (b) { case "cn": a.push("li.list-" + b + "-paddingleft-1{padding-left:25px}"), a.push("li.list-" + b + "-paddingleft-2{padding-left:40px}"), a.push("li.list-" + b + "-paddingleft-3{padding-left:55px}"); break; case "cn1": a.push("li.list-" + b + "-paddingleft-1{padding-left:30px}"), a.push("li.list-" + b + "-paddingleft-2{padding-left:40px}"), a.push("li.list-" + b + "-paddingleft-3{padding-left:55px}"); break; case "cn2": a.push("li.list-" + b + "-paddingleft-1{padding-left:40px}"), a.push("li.list-" + b + "-paddingleft-2{padding-left:55px}"), a.push("li.list-" + b + "-paddingleft-3{padding-left:68px}"); break; case "num": case "num1": a.push("li.list-" + b + "-paddingleft-1{padding-left:25px}"); break; case "num2": a.push("li.list-" + b + "-paddingleft-1{padding-left:35px}"), a.push("li.list-" + b + "-paddingleft-2{padding-left:40px}"); break; case "dash": a.push("li.list-" + b + "-paddingleft{padding-left:35px}"); break; case "dot": a.push("li.list-" + b + "-paddingleft{padding-left:20px}") } } a.push(".list-paddingleft-1{padding-left:0}"), a.push(".list-paddingleft-2{padding-left:" + h.options.listDefaultPaddingLeft + "px}"), a.push(".list-paddingleft-3{padding-left:" + 2 * h.options.listDefaultPaddingLeft + "px}"), utils.cssRule("list", "ol,ul{margin:0;pading:0;" + (browser.ie ? "" : "width:95%") + "}li{clear:both;}" + a.join("\n"), h.document) }), h.ready(function() { domUtils.on(h.body, "cut", function() { setTimeout(function() { var a, b = h.selection.getRange(); if (!b.collapsed && (a = domUtils.findParentByTagName(b.startContainer, "li", !0)) && !a.nextSibling && domUtils.isEmptyBlock(a)) { var c, d = a.parentNode; if (c = d.previousSibling) domUtils.remove(d), b.setStartAtLast(c).collapse(!0), b.select(!0); else if (c = d.nextSibling) domUtils.remove(d), b.setStartAtFirst(c).collapse(!0), b.select(!0); else { var e = h.document.createElement("p"); domUtils.fillNode(h.document, e), d.parentNode.insertBefore(e, d), domUtils.remove(d), b.setStart(e, 0).collapse(!0), b.select(!0) } } }) }) }), h.addListener("beforepaste", function(a, c) { var d, e = this, f = e.selection.getRange(), g = UE.htmlparser(c.html, !0); if (d = domUtils.findParentByTagName(f.startContainer, "li", !0)) { var h = d.parentNode , i = "OL" == h.tagName ? "ul" : "ol"; utils.each(g.getNodesByTagName(i), function(c) { if (c.tagName = h.tagName, c.setAttr(), c.parentNode === g) a = b(h) || ("OL" == h.tagName ? "decimal" : "disc"); else { var d = c.parentNode.getAttr("class"); a = d && /custom_/.test(d) ? d.match(/custom_(\w+)/)[1] : c.parentNode.getStyle("list-style-type"), a || (a = "OL" == h.tagName ? "decimal" : "disc") } var e = utils.indexOf(k[h.tagName], a); c.parentNode !== g && (e = e + 1 == k[h.tagName].length ? 0 : e + 1); var f = k[h.tagName][e]; j[f] ? c.setAttr("class", "custom_" + f) : c.setStyle("list-style-type", f) }) } c.html = g.toHtml() }), h.getOpt("disablePInList") === !0 && h.addOutputRule(function(a) { utils.each(a.getNodesByTagName("li"), function(a) { var b = [] , c = 0; utils.each(a.children, function(d) { if ("p" == d.tagName) { for (var e; e = d.children.pop(); ) b.splice(c, 0, e), e.parentNode = a, lastNode = e; if (e = b[b.length - 1], !e || "element" != e.type || "br" != e.tagName) { var f = UE.uNode.createElement("br"); f.parentNode = a, b.push(f) } c = b.length } }), b.length && (a.children = b) }) }), h.addInputRule(function(a) { function b(a, b) { var e = b.firstChild(); if (e && "element" == e.type && "span" == e.tagName && /Wingdings|Symbol/.test(e.getStyle("font-family"))) { for (var f in d) if (d[f] == e.data) return f; return "disc" } for (var f in c) if (c[f].test(a)) return f } if (utils.each(a.getNodesByTagName("li"), function(a) { for (var b, c = UE.uNode.createElement("p"), d = 0; b = a.children[d]; ) "text" == b.type || dtd.p[b.tagName] ? c.appendChild(b) : c.firstChild() ? (a.insertBefore(c, b), c = UE.uNode.createElement("p"), d += 2) : d++; (c.firstChild() && !c.parentNode || !a.firstChild()) && a.appendChild(c), c.firstChild() || c.innerHTML(browser.ie ? " " : "
"); var e = a.firstChild() , f = e.lastChild(); f && "text" == f.type && /^\s*$/.test(f.data) && e.removeChild(f) }), h.options.autoTransWordToList) { var c = { num1: /^\d+\)/, decimal: /^\d+\./, "lower-alpha": /^[a-z]+\)/, "upper-alpha": /^[A-Z]+\./, cn: /^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/, cn2: /^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/ } , d = { square: "n" }; utils.each(a.getNodesByTagName("p"), function(a) { function d(a, b, d) { if ("ol" == a.tagName) if (browser.ie) { var e = b.firstChild(); "element" == e.type && "span" == e.tagName && c[d].test(e.innerText()) && b.removeChild(e) } else b.innerHTML(b.innerHTML().replace(c[d], "")); else b.removeChild(b.firstChild()); var f = UE.uNode.createElement("li"); f.appendChild(b), a.appendChild(f) } if ("MsoListParagraph" == a.getAttr("class")) { a.setStyle("margin", ""), a.setStyle("margin-left", ""), a.setAttr("class", ""); var e, f = a, g = a; if ("li" != a.parentNode.tagName && (e = b(a.innerText(), a))) { var i = UE.uNode.createElement(h.options.insertorderedlist.hasOwnProperty(e) ? "ol" : "ul"); for (j[e] ? i.setAttr("class", "custom_" + e) : i.setStyle("list-style-type", e); a && "li" != a.parentNode.tagName && b(a.innerText(), a); ) f = a.nextSibling(), f || a.parentNode.insertBefore(i, a), d(i, a, e), a = f; !i.parentNode && a && a.parentNode && a.parentNode.insertBefore(i, a) } var k = g.firstChild(); k && "element" == k.type && "span" == k.tagName && /^\s*( )+\s*$/.test(k.innerText()) && k.parentNode.removeChild(k) } }) } }), h.addListener("contentchange", function() { c(h.document) }), h.addListener("keydown", function(a, b) { function c() { b.preventDefault ? b.preventDefault() : b.returnValue = !1, h.fireEvent("contentchange"), h.undoManger && h.undoManger.save() } function d(a, b) { for (; a && !domUtils.isBody(a); ) { if (b(a)) return null; if (1 == a.nodeType && /[ou]l/i.test(a.tagName)) return a; a = a.parentNode } return null } var e = b.keyCode || b.which; if (13 == e && !b.shiftKey) { var g = h.selection.getRange() , i = domUtils.findParent(g.startContainer, function(a) { return domUtils.isBlockElm(a) }, !0) , j = domUtils.findParentByTagName(g.startContainer, "li", !0); if (i && "PRE" != i.tagName && !j) { var k = i.innerHTML.replace(new RegExp(domUtils.fillChar,"g"), ""); /^\s*1\s*\.[^\d]/.test(k) && (i.innerHTML = k.replace(/^\s*1\s*\./, ""), g.setStartAtLast(i).collapse(!0).select(), h.__hasEnterExecCommand = !0, h.execCommand("insertorderedlist"), h.__hasEnterExecCommand = !1) } var l = h.selection.getRange() , m = d(l.startContainer, function(a) { return "TABLE" == a.tagName }) , n = l.collapsed ? m : d(l.endContainer, function(a) { return "TABLE" == a.tagName }); if (m && n && m === n) { if (!l.collapsed) { if (m = domUtils.findParentByTagName(l.startContainer, "li", !0), n = domUtils.findParentByTagName(l.endContainer, "li", !0), !m || !n || m !== n) { var o = l.cloneRange() , p = o.collapse(!1).createBookmark(); l.deleteContents(), o.moveToBookmark(p); var j = domUtils.findParentByTagName(o.startContainer, "li", !0); return f(j), o.select(), void c() } if (l.deleteContents(), j = domUtils.findParentByTagName(l.startContainer, "li", !0), j && domUtils.isEmptyBlock(j)) return v = j.previousSibling, next = j.nextSibling, s = h.document.createElement("p"), domUtils.fillNode(h.document, s), q = j.parentNode, v && next ? (l.setStart(next, 0).collapse(!0).select(!0), domUtils.remove(j)) : ((v || next) && v ? j.parentNode.parentNode.insertBefore(s, q.nextSibling) : q.parentNode.insertBefore(s, q), domUtils.remove(j), q.firstChild || domUtils.remove(q), l.setStart(s, 0).setCursor()), void c() } if (j = domUtils.findParentByTagName(l.startContainer, "li", !0)) { if (domUtils.isEmptyBlock(j)) { p = l.createBookmark(); var q = j.parentNode; if (j !== q.lastChild ? (domUtils.breakParent(j, q), f(j)) : (q.parentNode.insertBefore(j, q.nextSibling), domUtils.isEmptyNode(q) && domUtils.remove(q)), !dtd.$list[j.parentNode.tagName]) if (domUtils.isBlockElm(j.firstChild)) domUtils.remove(j, !0); else { for (s = h.document.createElement("p"), j.parentNode.insertBefore(s, j); j.firstChild; ) s.appendChild(j.firstChild); domUtils.remove(j) } l.moveToBookmark(p).select() } else { var r = j.firstChild; if (!r || !domUtils.isBlockElm(r)) { var s = h.document.createElement("p"); for (!j.firstChild && domUtils.fillNode(h.document, s); j.firstChild; ) s.appendChild(j.firstChild); j.appendChild(s), r = s } var t = h.document.createElement("span"); l.insertNode(t), domUtils.breakParent(t, j); var u = t.nextSibling; r = u.firstChild, r || (s = h.document.createElement("p"), domUtils.fillNode(h.document, s), u.appendChild(s), r = s), domUtils.isEmptyNode(r) && (r.innerHTML = "", domUtils.fillNode(h.document, r)), l.setStart(r, 0).collapse(!0).shrinkBoundary().select(), domUtils.remove(t); var v = u.previousSibling; v && domUtils.isEmptyBlock(v) && (v.innerHTML = "

", domUtils.fillNode(h.document, v.firstChild)) } c() } } } if (8 == e && (l = h.selection.getRange(), l.collapsed && domUtils.isStartInblock(l) && (o = l.cloneRange().trimBoundary(), j = domUtils.findParentByTagName(l.startContainer, "li", !0), j && domUtils.isStartInblock(o)))) { if (m = domUtils.findParentByTagName(l.startContainer, "p", !0), m && m !== j.firstChild) { var q = domUtils.findParentByTagName(m, ["ol", "ul"]); return domUtils.breakParent(m, q), f(m), h.fireEvent("contentchange"), l.setStart(m, 0).setCursor(!1, !0), h.fireEvent("saveScene"), void domUtils.preventDefault(b) } if (j && (v = j.previousSibling)) { if (46 == e && j.childNodes.length) return; if (dtd.$list[v.tagName] && (v = v.lastChild), h.undoManger && h.undoManger.save(), r = j.firstChild, domUtils.isBlockElm(r)) if (domUtils.isEmptyNode(r)) for (v.appendChild(r), l.setStart(r, 0).setCursor(!1, !0); j.firstChild; ) v.appendChild(j.firstChild); else t = h.document.createElement("span"), l.insertNode(t), domUtils.isEmptyBlock(v) && (v.innerHTML = ""), domUtils.moveChild(j, v), l.setStartBefore(t).collapse(!0).select(!0), domUtils.remove(t); else if (domUtils.isEmptyNode(j)) { var s = h.document.createElement("p"); v.appendChild(s), l.setStart(s, 0).setCursor() } else for (l.setEnd(v, v.childNodes.length).collapse().select(!0); j.firstChild; ) v.appendChild(j.firstChild); return domUtils.remove(j), h.fireEvent("contentchange"), h.fireEvent("saveScene"), void domUtils.preventDefault(b) } if (j && !j.previousSibling) { var q = j.parentNode , p = l.createBookmark(); if (domUtils.isTagNode(q.parentNode, "ol ul")) q.parentNode.insertBefore(j, q), domUtils.isEmptyNode(q) && domUtils.remove(q); else { for (; j.firstChild; ) q.parentNode.insertBefore(j.firstChild, q); domUtils.remove(j), domUtils.isEmptyNode(q) && domUtils.remove(q) } return l.moveToBookmark(p).setCursor(!1, !0), h.fireEvent("contentchange"), h.fireEvent("saveScene"), void domUtils.preventDefault(b) } } }), h.addListener("keyup", function(a, c) { var e = c.keyCode || c.which; if (8 == e) { var f, g = h.selection.getRange(); (f = domUtils.findParentByTagName(g.startContainer, ["ol", "ul"], !0)) && d(f, f.tagName.toLowerCase(), b(f) || domUtils.getComputedStyle(f, "list-style-type"), !0) } }), h.addListener("tabkeydown", function() { function a(a) { if (h.options.maxListLevel != -1) { for (var b = a.parentNode, c = 0; /[ou]l/i.test(b.tagName); ) c++, b = b.parentNode; if (c >= h.options.maxListLevel) return !0 } } var c = h.selection.getRange() , f = domUtils.findParentByTagName(c.startContainer, "li", !0); if (f) { var g; if (!c.collapsed) { h.fireEvent("saveScene"), g = c.createBookmark(); for (var i, j, l = 0, m = domUtils.findParents(f); j = m[l++]; ) if (domUtils.isTagNode(j, "ol ul")) { i = j; break } var n = f; if (g.end) for (; n && !(domUtils.getPosition(n, g.end) & domUtils.POSITION_FOLLOWING); ) if (a(n)) n = domUtils.getNextDomNode(n, !1, null, function(a) { return a !== i }); else { var o = n.parentNode , p = h.document.createElement(o.tagName) , q = utils.indexOf(k[p.tagName], b(o) || domUtils.getComputedStyle(o, "list-style-type")) , r = q + 1 == k[p.tagName].length ? 0 : q + 1 , s = k[p.tagName][r]; for (e(p, s), o.insertBefore(p, n); n && !(domUtils.getPosition(n, g.end) & domUtils.POSITION_FOLLOWING); ) { if (f = n.nextSibling, p.appendChild(n), !f || domUtils.isTagNode(f, "ol ul")) { if (f) for (; (f = f.firstChild) && "LI" != f.tagName; ) ; else f = domUtils.getNextDomNode(n, !1, null, function(a) { return a !== i }); break } n = f } d(p, p.tagName.toLowerCase(), s), n = f } return h.fireEvent("contentchange"), c.moveToBookmark(g).select(), !0 } if (a(f)) return !0; var o = f.parentNode , p = h.document.createElement(o.tagName) , q = utils.indexOf(k[p.tagName], b(o) || domUtils.getComputedStyle(o, "list-style-type")); q = q + 1 == k[p.tagName].length ? 0 : q + 1; var s = k[p.tagName][q]; if (e(p, s), domUtils.isStartInblock(c)) return h.fireEvent("saveScene"), g = c.createBookmark(), o.insertBefore(p, f), p.appendChild(f), d(p, p.tagName.toLowerCase(), s), h.fireEvent("contentchange"), c.moveToBookmark(g).select(!0), !0 } }), h.commands.insertorderedlist = h.commands.insertunorderedlist = { execCommand: function(a, c) { c || (c = "insertorderedlist" == a.toLowerCase() ? "decimal" : "disc"); var f = this , h = this.selection.getRange() , j = function(a) { return 1 == a.nodeType ? "br" != a.tagName.toLowerCase() : !domUtils.isWhitespace(a) } , k = "insertorderedlist" == a.toLowerCase() ? "ol" : "ul" , l = f.document.createDocumentFragment(); h.adjustmentBoundary().shrinkBoundary(); var m, n, o, p, q = h.createBookmark(!0), r = g(f.document.getElementById(q.start)), s = 0, t = g(f.document.getElementById(q.end)), u = 0; if (r || t) { if (r && (m = r.parentNode), q.end || (t = r), t && (n = t.parentNode), m === n) { for (; r !== t; ) { if (p = r, r = r.nextSibling, !domUtils.isBlockElm(p.firstChild)) { for (var v = f.document.createElement("p"); p.firstChild; ) v.appendChild(p.firstChild); p.appendChild(v) } l.appendChild(p) } if (p = f.document.createElement("span"), m.insertBefore(p, t), !domUtils.isBlockElm(t.firstChild)) { for (v = f.document.createElement("p"); t.firstChild; ) v.appendChild(t.firstChild); t.appendChild(v) } l.appendChild(t), domUtils.breakParent(p, m), domUtils.isEmptyNode(p.previousSibling) && domUtils.remove(p.previousSibling), domUtils.isEmptyNode(p.nextSibling) && domUtils.remove(p.nextSibling); var w = b(m) || domUtils.getComputedStyle(m, "list-style-type") || ("insertorderedlist" == a.toLowerCase() ? "decimal" : "disc"); if (m.tagName.toLowerCase() == k && w == c) { for (var x, y = 0, z = f.document.createDocumentFragment(); x = l.firstChild; ) if (domUtils.isTagNode(x, "ol ul")) z.appendChild(x); else for (; x.firstChild; ) z.appendChild(x.firstChild), domUtils.remove(x); p.parentNode.insertBefore(z, p) } else o = f.document.createElement(k), e(o, c), o.appendChild(l), p.parentNode.insertBefore(o, p); return domUtils.remove(p), o && d(o, k, c), void h.moveToBookmark(q).select() } if (r) { for (; r; ) { if (p = r.nextSibling, domUtils.isTagNode(r, "ol ul")) l.appendChild(r); else { for (var A = f.document.createDocumentFragment(), B = 0; r.firstChild; ) domUtils.isBlockElm(r.firstChild) && (B = 1), A.appendChild(r.firstChild); if (B) l.appendChild(A); else { var C = f.document.createElement("p"); C.appendChild(A), l.appendChild(C) } domUtils.remove(r) } r = p } m.parentNode.insertBefore(l, m.nextSibling), domUtils.isEmptyNode(m) ? (h.setStartBefore(m), domUtils.remove(m)) : h.setStartAfter(m), s = 1 } if (t && domUtils.inDoc(n, f.document)) { for (r = n.firstChild; r && r !== t; ) { if (p = r.nextSibling, domUtils.isTagNode(r, "ol ul")) l.appendChild(r); else { for (A = f.document.createDocumentFragment(), B = 0; r.firstChild; ) domUtils.isBlockElm(r.firstChild) && (B = 1), A.appendChild(r.firstChild); B ? l.appendChild(A) : (C = f.document.createElement("p"), C.appendChild(A), l.appendChild(C)), domUtils.remove(r) } r = p } var D = domUtils.createElement(f.document, "div", { tmpDiv: 1 }); domUtils.moveChild(t, D), l.appendChild(D), domUtils.remove(t), n.parentNode.insertBefore(l, n), h.setEndBefore(n), domUtils.isEmptyNode(n) && domUtils.remove(n), u = 1 } } s || h.setStartBefore(f.document.getElementById(q.start)), q.end && !u && h.setEndAfter(f.document.getElementById(q.end)), h.enlarge(!0, function(a) { return i[a.tagName] }), l = f.document.createDocumentFragment(); for (var E, F = h.createBookmark(), G = domUtils.getNextDomNode(F.start, !1, j), H = h.cloneRange(), I = domUtils.isBlockElm; G && G !== F.end && domUtils.getPosition(G, F.end) & domUtils.POSITION_PRECEDING; ) if (3 == G.nodeType || dtd.li[G.tagName]) { if (1 == G.nodeType && dtd.$list[G.tagName]) { for (; G.firstChild; ) l.appendChild(G.firstChild); E = domUtils.getNextDomNode(G, !1, j), domUtils.remove(G), G = E; continue } for (E = G, H.setStartBefore(G); G && G !== F.end && (!I(G) || domUtils.isBookmarkNode(G)); ) E = G, G = domUtils.getNextDomNode(G, !1, null, function(a) { return !i[a.tagName] }); G && I(G) && (p = domUtils.getNextDomNode(E, !1, j), p && domUtils.isBookmarkNode(p) && (G = domUtils.getNextDomNode(p, !1, j), E = p)), H.setEndAfter(E), G = domUtils.getNextDomNode(E, !1, j); var J = h.document.createElement("li"); if (J.appendChild(H.extractContents()), domUtils.isEmptyNode(J)) { for (var E = h.document.createElement("p"); J.firstChild; ) E.appendChild(J.firstChild); J.appendChild(E) } l.appendChild(J) } else G = domUtils.getNextDomNode(G, !0, j); h.moveToBookmark(F).collapse(!0), o = f.document.createElement(k), e(o, c), o.appendChild(l), h.insertNode(o), d(o, k, c); for (var x, y = 0, K = domUtils.getElementsByTagName(o, "div"); x = K[y++]; ) x.getAttribute("tmpDiv") && domUtils.remove(x, !0); h.moveToBookmark(q).select() }, queryCommandState: function(a) { for (var b, c = "insertorderedlist" == a.toLowerCase() ? "ol" : "ul", d = this.selection.getStartElementPath(), e = 0; b = d[e++]; ) { if ("TABLE" == b.nodeName) return 0; if (c == b.nodeName.toLowerCase()) return 1 } return 0 }, queryCommandValue: function(a) { for (var c, d, e = "insertorderedlist" == a.toLowerCase() ? "ol" : "ul", f = this.selection.getStartElementPath(), g = 0; d = f[g++]; ) { if ("TABLE" == d.nodeName) { c = null; break } if (e == d.nodeName.toLowerCase()) { c = d; break } } return c ? b(c) || domUtils.getComputedStyle(c, "list-style-type") : null } } } , function() { var a = { textarea: function(a, b) { var c = b.ownerDocument.createElement("textarea"); return c.style.cssText = "position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;", browser.ie && browser.version < 8 && (c.style.width = b.offsetWidth + "px", c.style.height = b.offsetHeight + "px", b.onresize = function() { c.style.width = b.offsetWidth + "px", c.style.height = b.offsetHeight + "px" } ), b.appendChild(c), { setContent: function(a) { c.value = a }, getContent: function() { return c.value }, select: function() { var a; browser.ie ? (a = c.createTextRange(), a.collapse(!0), a.select()) : (c.setSelectionRange(0, 0), c.focus()) }, dispose: function() { b.removeChild(c), b.onresize = null, c = null, b = null } } }, codemirror: function(a, b) { var c = window.CodeMirror(b, { mode: "text/html", tabMode: "indent", lineNumbers: !0, lineWrapping: !0 }) , d = c.getWrapperElement(); return d.style.cssText = 'position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;', c.getScrollerElement().style.cssText = "position:absolute;left:0;top:0;width:100%;height:100%;", c.refresh(), { getCodeMirror: function() { return c }, setContent: function(a) { c.setValue(a) }, getContent: function() { return c.getValue() }, select: function() { c.focus() }, dispose: function() { b.removeChild(d), d = null, c = null } } } }; UE.plugins.source = function() { function b(b) { return a["codemirror" == f.sourceEditor && window.CodeMirror ? "codemirror" : "textarea"](e, b) } var c, d, e = this, f = this.options, g = !1; f.sourceEditor = browser.ie ? "textarea" : f.sourceEditor || "codemirror", e.setOpt({ sourceEditorFirst: !1 }); var h, i, j; e.commands.source = { execCommand: function() { if (g = !g) { j = e.selection.getRange().createAddress(!1, !0), e.undoManger && e.undoManger.save(!0), browser.gecko && (e.body.contentEditable = !1), h = e.iframe.style.cssText, e.iframe.style.cssText += "position:absolute;left:-32768px;top:-32768px;", e.fireEvent("beforegetcontent"); var a = UE.htmlparser(e.body.innerHTML); e.filterOutputRule(a), a.traversal(function(a) { if ("element" == a.type) switch (a.tagName) { case "td": case "th": case "caption": a.children && 1 == a.children.length && "br" == a.firstChild().tagName && a.removeChild(a.firstChild()); break; case "pre": a.innerText(a.innerText().replace(/ /g, " ")) } }), e.fireEvent("aftergetcontent"); var f = a.toHtml(!0); c = b(e.iframe.parentNode), c.setContent(f), d = e.setContent, e.setContent = function(a) { var b = UE.htmlparser(a); e.filterInputRule(b), a = b.toHtml(), c.setContent(a) } , setTimeout(function() { c.select(), e.addListener("fullscreenchanged", function() { try { c.getCodeMirror().refresh() } catch (a) {} }) }), i = e.getContent, e.getContent = function() { return c.getContent() || "

" + (browser.ie ? "" : "
") + "

" } } else { e.iframe.style.cssText = h; var k = c.getContent() || "

" + (browser.ie ? "" : "
") + "

"; k = k.replace(new RegExp("[\\r\\t\\n ]*]*)>","g"), function(a, b) { return b && !dtd.$inlineWithA[b.toLowerCase()] ? a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g, "") : a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g, "") }), e.setContent = d, e.setContent(k), c.dispose(), c = null, e.getContent = i; var l = e.body.firstChild; if (l || (e.body.innerHTML = "

" + (browser.ie ? "" : "
") + "

", l = e.body.firstChild), e.undoManger && e.undoManger.save(!0), browser.gecko) { var m = document.createElement("input"); m.style.cssText = "position:absolute;left:0;top:-32768px", document.body.appendChild(m), e.body.contentEditable = !1, setTimeout(function() { domUtils.setViewportOffset(m, { left: -32768, top: 0 }), m.focus(), setTimeout(function() { e.body.contentEditable = !0, e.selection.getRange().moveToAddress(j).select(!0), domUtils.remove(m) }) }) } else try { e.selection.getRange().moveToAddress(j).select(!0) } catch (n) {} } this.fireEvent("sourcemodechanged", g) }, queryCommandState: function() { return 0 | g }, notNeedUndo: 1 }; var k = e.queryCommandState; e.queryCommandState = function(a) { return a = a.toLowerCase(), g ? a in { source: 1, fullscreen: 1 } ? 1 : -1 : k.apply(this, arguments) } , "codemirror" == f.sourceEditor && e.addListener("ready", function() { utils.loadFile(document, { src: f.codeMirrorJsUrl || f.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.js", tag: "script", type: "text/javascript", defer: "defer" }, function() { f.sourceEditorFirst && setTimeout(function() { e.execCommand("source") }, 0) }), utils.loadFile(document, { tag: "link", rel: "stylesheet", type: "text/css", href: f.codeMirrorCssUrl || f.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.css" }) }) } }(), UE.plugins.enterkey = function() { var a, b = this, c = b.options.enterTag; b.addListener("keyup", function(c, d) { var e = d.keyCode || d.which; if (13 == e) { var f, g = b.selection.getRange(), h = g.startContainer; if (browser.ie) b.fireEvent("saveScene", !0, !0); else { if (/h\d/i.test(a)) { if (browser.gecko) { var i = domUtils.findParentByTagName(h, ["h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "caption", "table"], !0); i || (b.document.execCommand("formatBlock", !1, "

"), f = 1) } else if (1 == h.nodeType) { var j, k = b.document.createTextNode(""); if (g.insertNode(k), j = domUtils.findParentByTagName(k, "div", !0)) { for (var l = b.document.createElement("p"); j.firstChild; ) l.appendChild(j.firstChild); j.parentNode.insertBefore(l, j), domUtils.remove(j), g.setStartBefore(k).setCursor(), f = 1 } domUtils.remove(k) } b.undoManger && f && b.undoManger.save() } browser.opera && g.select() } } }), b.addListener("keydown", function(d, e) { var f = e.keyCode || e.which; if (13 == f) { if (b.fireEvent("beforeenterkeydown")) return void domUtils.preventDefault(e); b.fireEvent("saveScene", !0, !0), a = ""; var g = b.selection.getRange(); if (!g.collapsed) { var h = g.startContainer , i = g.endContainer , j = domUtils.findParentByTagName(h, "td", !0) , k = domUtils.findParentByTagName(i, "td", !0); if (j && k && j !== k || !j && k || j && !k) return void (e.preventDefault ? e.preventDefault() : e.returnValue = !1) } if ("p" == c) browser.ie || (h = domUtils.findParentByTagName(g.startContainer, ["ol", "ul", "p", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "caption"], !0), h || browser.opera ? (a = h.tagName, "p" == h.tagName.toLowerCase() && browser.gecko && domUtils.removeDirtyAttr(h)) : (b.document.execCommand("formatBlock", !1, "

"), browser.gecko && (g = b.selection.getRange(), h = domUtils.findParentByTagName(g.startContainer, "p", !0), h && domUtils.removeDirtyAttr(h)))); else if (e.preventDefault ? e.preventDefault() : e.returnValue = !1, g.collapsed) { m = g.document.createElement("br"), g.insertNode(m); var l = m.parentNode; l.lastChild === m ? (m.parentNode.insertBefore(m.cloneNode(!0), m), g.setStartBefore(m)) : g.setStartAfter(m), g.setCursor() } else if (g.deleteContents(), h = g.startContainer, 1 == h.nodeType && (h = h.childNodes[g.startOffset])) { for (; 1 == h.nodeType; ) { if (dtd.$empty[h.tagName]) return g.setStartBefore(h).setCursor(), b.undoManger && b.undoManger.save(), !1; if (!h.firstChild) { var m = g.document.createElement("br"); return h.appendChild(m), g.setStart(h, 0).setCursor(), b.undoManger && b.undoManger.save(), !1 } h = h.firstChild } h === g.startContainer.childNodes[g.startOffset] ? (m = g.document.createElement("br"), g.insertNode(m).setCursor()) : g.setStart(h, 0).setCursor() } else m = g.document.createElement("br"), g.insertNode(m).setStartAfter(m).setCursor() } }) } , UE.plugins.keystrokes = function() { var a = this , b = !0; a.addListener("keydown", function(c, d) { var e = d.keyCode || d.which , f = a.selection.getRange(); if (!f.collapsed && !(d.ctrlKey || d.shiftKey || d.altKey || d.metaKey) && (e >= 65 && e <= 90 || e >= 48 && e <= 57 || e >= 96 && e <= 111 || { 13: 1, 8: 1, 46: 1 }[e])) { var g = f.startContainer; if (domUtils.isFillChar(g) && f.setStartBefore(g), g = f.endContainer, domUtils.isFillChar(g) && f.setEndAfter(g), f.txtToElmBoundary(), f.endContainer && 1 == f.endContainer.nodeType && (g = f.endContainer.childNodes[f.endOffset], g && domUtils.isBr(g) && f.setEndAfter(g)), 0 == f.startOffset && (g = f.startContainer, domUtils.isBoundaryNode(g, "firstChild") && (g = f.endContainer, f.endOffset == (3 == g.nodeType ? g.nodeValue.length : g.childNodes.length) && domUtils.isBoundaryNode(g, "lastChild")))) return a.fireEvent("saveScene"), a.body.innerHTML = "

" + (browser.ie ? "" : "
") + "

", f.setStart(a.body.firstChild, 0).setCursor(!1, !0), void a._selectionChange() } if (e == keymap.Backspace) { if (f = a.selection.getRange(), b = f.collapsed, a.fireEvent("delkeydown", d)) return; var h, i; if (f.collapsed && f.inFillChar() && (h = f.startContainer, domUtils.isFillChar(h) ? (f.setStartBefore(h).shrinkBoundary(!0).collapse(!0), domUtils.remove(h)) : (h.nodeValue = h.nodeValue.replace(new RegExp("^" + domUtils.fillChar), ""), f.startOffset--, f.collapse(!0).select(!0))), h = f.getClosedNode()) return a.fireEvent("saveScene"), f.setStartBefore(h), domUtils.remove(h), f.setCursor(), a.fireEvent("saveScene"), void domUtils.preventDefault(d); if (!browser.ie && (h = domUtils.findParentByTagName(f.startContainer, "table", !0), i = domUtils.findParentByTagName(f.endContainer, "table", !0), h && !i || !h && i || h !== i)) return void d.preventDefault() } if (e == keymap.Tab) { var j = { ol: 1, ul: 1, table: 1 }; if (a.fireEvent("tabkeydown", d)) return void domUtils.preventDefault(d); var k = a.selection.getRange(); a.fireEvent("saveScene"); for (var l = 0, m = "", n = a.options.tabSize || 4, o = a.options.tabNode || " "; l < n; l++) m += o; var p = a.document.createElement("span"); if (p.innerHTML = m + domUtils.fillChar, k.collapsed) k.insertNode(p.cloneNode(!0).firstChild).setCursor(!0); else { var q = function(a) { return domUtils.isBlockElm(a) && !j[a.tagName.toLowerCase()] }; if (h = domUtils.findParent(k.startContainer, q, !0), i = domUtils.findParent(k.endContainer, q, !0), h && i && h === i) k.deleteContents(), k.insertNode(p.cloneNode(!0).firstChild).setCursor(!0); else { var r = k.createBookmark(); k.enlarge(!0); for (var s = k.createBookmark(), t = domUtils.getNextDomNode(s.start, !1, q); t && !(domUtils.getPosition(t, s.end) & domUtils.POSITION_FOLLOWING); ) t.insertBefore(p.cloneNode(!0).firstChild, t.firstChild), t = domUtils.getNextDomNode(t, !1, q); k.moveToBookmark(s).moveToBookmark(r).select() } } domUtils.preventDefault(d) } if (browser.gecko && 46 == e && (k = a.selection.getRange(), k.collapsed && (h = k.startContainer, domUtils.isEmptyBlock(h)))) { for (var u = h.parentNode; 1 == domUtils.getChildCount(u) && !domUtils.isBody(u); ) h = u, u = u.parentNode; return void (h === u.lastChild && d.preventDefault()) } }), a.addListener("keyup", function(a, c) { var d, e = c.keyCode || c.which, f = this; if (e == keymap.Backspace) { if (f.fireEvent("delkeyup")) return; if (d = f.selection.getRange(), d.collapsed) { var g, h = ["h1", "h2", "h3", "h4", "h5", "h6"]; if ((g = domUtils.findParentByTagName(d.startContainer, h, !0)) && domUtils.isEmptyBlock(g)) { var i = g.previousSibling; if (i && "TABLE" != i.nodeName) return domUtils.remove(g), void d.setStartAtLast(i).setCursor(!1, !0); var j = g.nextSibling; if (j && "TABLE" != j.nodeName) return domUtils.remove(g), void d.setStartAtFirst(j).setCursor(!1, !0) } if (domUtils.isBody(d.startContainer)) { var g = domUtils.createElement(f.document, "p", { innerHTML: browser.ie ? domUtils.fillChar : "
" }); d.insertNode(g).setStart(g, 0).setCursor(!1, !0) } } if (!b && (3 == d.startContainer.nodeType || 1 == d.startContainer.nodeType && domUtils.isEmptyBlock(d.startContainer))) if (browser.ie) { var k = d.document.createElement("span"); d.insertNode(k).setStartBefore(k).collapse(!0), d.select(), domUtils.remove(k) } else d.select() } }) } , UE.commands["letter-spacing"] = { execCommand: function(a, b) { var c = this; if ("string" == typeof b) { var d = b.match(/\d*/); if (!d) throw new Error("please set a valid value"); b = d[0] } b = c.queryCommandState("letter-spacing") ? "0" : c.options.indentValue || b, c.execCommand("Paragraph", "p", { style: "letter-spacing:" + b + "px" }) }, queryCommandValue: function() { var a = domUtils.filterNodeList(this.selection.getStartElementPath(), function(a) { return domUtils.isBlockElm(a) }); if (a) { var b = domUtils.getComputedStyle(a, "letter-spacing"); return "normal" == b ? 1 : b.replace(/[^\d.]*/gi, "") } } }, UE.commands["horizontal-indent"] = { execCommand: function(a, b) { var c = this; if ("string" == typeof b) { var d = b.match(/\d*/); if (!d) throw new Error("please set a valid value"); b = d[0] } b = c.queryCommandState("horizontal-indent") ? "0" : c.options.indentValue || b, c.execCommand("Paragraph", "p", { style: "margin-left:" + b + "em;margin-right:" + b + "em" }) }, queryCommandValue: function() { var a = domUtils.filterNodeList(this.selection.getStartElementPath(), function(a) { return domUtils.isBlockElm(a) }); if (a) { var b = domUtils.getComputedStyle(a, "margin-left"); return "normal" == b ? 1 : b.replace(/[^\d.]*/gi, "") } } }, UE.plugins.fiximgclick = function() { function a() { this.editor = null, this.resizer = null, this.cover = null, this.doc = document, this.prePos = { x: 0, y: 0 }, this.startPos = { x: 0, y: 0 } } var b = !1; return function() { var c = [[0, 0, -1, -1], [0, 0, 0, -1], [0, 0, 1, -1], [0, 0, -1, 0], [0, 0, 1, 0], [0, 0, -1, 1], [0, 0, 0, 1], [0, 0, 1, 1]]; a.prototype = { init: function(a) { var b = this; b.editor = a, b.startPos = this.prePos = { x: 0, y: 0 }, b.dragId = -1; var c = [] , d = b.cover = document.createElement("div") , e = b.resizer = document.createElement("div"); for (d.id = b.editor.ui.id + "_imagescale_cover", d.style.cssText = "position:absolute;display:none;z-index:-1;filter:alpha(opacity=0); opacity:0;background:#CCC;", domUtils.on(d, "mousedown click", function() { b.hide() }), i = 0; i < 8; i++) c.push(''); e.id = b.editor.ui.id + "_imagescale", e.className = "edui-editor-imagescale", e.innerHTML = c.join(""), e.style.cssText += ";display:none;border:1px solid #3b77ff;z-index:" + b.editor.options.zIndex + ";", b.editor.ui.getDom().appendChild(d), b.editor.ui.getDom().appendChild(e), b.initStyle(), b.initEvents() }, initStyle: function() { utils.cssRule("imagescale", ".edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}") }, initEvents: function() { var a = this; a.startPos.x = a.startPos.y = 0, a.isDraging = !1 }, _eventHandler: function(a) { var c = this; switch (a.type) { case "mousedown": var d, d = a.target || a.srcElement; d.className.indexOf("edui-editor-imagescale-hand") != -1 && c.dragId == -1 && (c.dragId = d.className.slice(-1), c.startPos.x = c.prePos.x = a.clientX, c.startPos.y = c.prePos.y = a.clientY, domUtils.on(c.doc, "mousemove", c.proxy(c._eventHandler, c))); break; case "mousemove": c.dragId != -1 && (c.updateContainerStyle(c.dragId, { x: a.clientX - c.prePos.x, y: a.clientY - c.prePos.y }), c.prePos.x = a.clientX, c.prePos.y = a.clientY, b = !0, c.updateTargetElement()); break; case "mouseup": c.dragId != -1 && (c.updateContainerStyle(c.dragId, { x: a.clientX - c.prePos.x, y: a.clientY - c.prePos.y }), c.updateTargetElement(), c.target.parentNode && c.attachTo(c.target), c.dragId = -1), domUtils.un(c.doc, "mousemove", c.proxy(c._eventHandler, c)), b && (b = !1, c.editor.fireEvent("contentchange")) } }, updateTargetElement: function() { var a = this; domUtils.setStyles(a.target, { width: a.resizer.style.width, height: a.resizer.style.height }), a.target.width = parseInt(a.resizer.style.width), a.target.height = parseInt(a.resizer.style.height), a.attachTo(a.target) }, updateContainerStyle: function(a, b) { var d, e = this, f = e.resizer; 0 != c[a][0] && (d = parseInt(f.style.left) + b.x, f.style.left = e._validScaledProp("left", d) + "px"), 0 != c[a][1] && (d = parseInt(f.style.top) + b.y, f.style.top = e._validScaledProp("top", d) + "px"), 0 != c[a][2] && (d = f.clientWidth + c[a][2] * b.x, f.style.width = e._validScaledProp("width", d) + "px"), 0 != c[a][3] && (d = f.clientHeight + c[a][3] * b.y, f.style.height = e._validScaledProp("height", d) + "px") }, _validScaledProp: function(a, b) { var c = this.resizer , d = document; switch (b = isNaN(b) ? 0 : b, a) { case "left": return b < 0 ? 0 : b + c.clientWidth > d.clientWidth ? d.clientWidth - c.clientWidth : b; case "top": return b < 0 ? 0 : b + c.clientHeight > d.clientHeight ? d.clientHeight - c.clientHeight : b; case "width": return b <= 0 ? 1 : b + c.offsetLeft > d.clientWidth ? d.clientWidth - c.offsetLeft : b; case "height": return b <= 0 ? 1 : b + c.offsetTop > d.clientHeight ? d.clientHeight - c.offsetTop : b } }, hideCover: function() { this.cover.style.display = "none" }, showCover: function() { var a = this , b = domUtils.getXY(a.editor.ui.getDom()) , c = domUtils.getXY(a.editor.iframe); domUtils.setStyles(a.cover, { width: a.editor.iframe.offsetWidth + "px", height: a.editor.iframe.offsetHeight + "px", top: c.y - b.y + "px", left: c.x - b.x + "px", position: "absolute", display: "" }) }, show: function(a) { var b = this; b.resizer.style.display = "block", a && b.attachTo(a), domUtils.on(this.resizer, "mousedown", b.proxy(b._eventHandler, b)), domUtils.on(b.doc, "mouseup", b.proxy(b._eventHandler, b)), b.showCover(), b.editor.fireEvent("afterscaleshow", b), b.editor.fireEvent("saveScene") }, hide: function() { var a = this; a.hideCover(), a.resizer.style.display = "none", domUtils.un(a.resizer, "mousedown", a.proxy(a._eventHandler, a)), domUtils.un(a.doc, "mouseup", a.proxy(a._eventHandler, a)), a.editor.fireEvent("afterscalehide", a) }, proxy: function(a, b) { return function(c) { return a.apply(b || this, arguments) } }, attachTo: function(a) { var b = this , c = b.target = a , d = this.resizer , e = domUtils.getXY(c) , f = domUtils.getXY(b.editor.iframe) , g = domUtils.getXY(d.parentNode); domUtils.setStyles(d, { width: c.width + "px", height: c.height + "px", left: f.x + e.x - b.editor.document.body.scrollLeft - g.x - parseInt(d.style.borderLeftWidth) + "px", top: f.y + e.y - b.editor.document.body.scrollTop - g.y - parseInt(d.style.borderTopWidth) + "px" }) } } }(), function() { var b, c = this; c.setOpt("imageScaleEnabled", !0), !browser.ie && c.options.imageScaleEnabled && c.addListener("click", function(d, e) { var f = c.selection.getRange() , g = f.getClosedNode(); if (g && "IMG" == g.tagName && "false" != c.body.contentEditable) { if (g.className.indexOf("edui-faked-music") != -1 || g.getAttribute("anchorname") || domUtils.hasClass(g, "loadingclass") || domUtils.hasClass(g, "loaderrorclass")) return; if (!b) { b = new a, b.init(c), c.ui.getDom().appendChild(b.resizer); var h, i = function(a) { b.hide(), b.target && c.selection.getRange().selectNode(b.target).select() }, j = function(a) { var b = a.target || a.srcElement; !b || void 0 !== b.className && b.className.indexOf("edui-editor-imagescale") != -1 || i(a) }; c.addListener("afterscaleshow", function(a) { c.addListener("beforekeydown", i), c.addListener("beforemousedown", j), domUtils.on(document, "keydown", i), domUtils.on(document, "mousedown", j), c.selection.getNative().removeAllRanges() }), c.addListener("afterscalehide", function(a) { c.removeListener("beforekeydown", i), c.removeListener("beforemousedown", j), domUtils.un(document, "keydown", i), domUtils.un(document, "mousedown", j); var d = b.target; d.parentNode && c.selection.getRange().selectNode(d).select() }), domUtils.on(b.resizer, "mousedown", function(a) { c.selection.getNative().removeAllRanges(); var d = a.target || a.srcElement; d && d.className.indexOf("edui-editor-imagescale-hand") == -1 && (h = setTimeout(function() { b.hide(), b.target && c.selection.getRange().selectNode(d).select() }, 200)) }), domUtils.on(b.resizer, "mouseup", function(a) { var b = a.target || a.srcElement; b && b.className.indexOf("edui-editor-imagescale-hand") == -1 && clearTimeout(h) }) } b.show(g) } else b && "none" != b.resizer.style.display && b.hide() }), browser.webkit && c.addListener("click", function(a, b) { if ("IMG" == b.target.tagName && "false" != c.body.contentEditable) { var d = new dom.Range(c.document); d.selectNode(b.target).select() } }) } }(), UE.plugin.register("autolink", function() { var a = 0; return browser.ie ? {} : { bindEvents: { reset: function() { a = 0 }, keydown: function(a, b) { var c = this , d = b.keyCode || b.which; if (32 == d || 13 == d) { for (var e, f, g = c.selection.getNative(), h = g.getRangeAt(0).cloneRange(), i = h.startContainer; 1 == i.nodeType && h.startOffset > 0 && (i = h.startContainer.childNodes[h.startOffset - 1]); ) h.setStart(i, 1 == i.nodeType ? i.childNodes.length : i.nodeValue.length), h.collapse(!0), i = h.startContainer; do { if (0 == h.startOffset) { for (i = h.startContainer.previousSibling; i && 1 == i.nodeType; ) i = i.lastChild; if (!i || domUtils.isFillChar(i)) break; e = i.nodeValue.length } else i = h.startContainer, e = h.startOffset; h.setStart(i, e - 1), f = h.toString().charCodeAt(0) } while (160 != f && 32 != f);if (h.toString().replace(new RegExp(domUtils.fillChar,"g"), "").match(/(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)) { for (; h.toString().length && !/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(h.toString()); ) try { h.setStart(h.startContainer, h.startOffset + 1) } catch (j) { for (var i = h.startContainer; !(next = i.nextSibling); ) { if (domUtils.isBody(i)) return; i = i.parentNode } h.setStart(next, 0) } if (domUtils.findParentByTagName(h.startContainer, "a", !0)) return; var k, l = c.document.createElement("a"), m = c.document.createTextNode(" "); c.undoManger && c.undoManger.save(), l.appendChild(h.extractContents()), l.href = l.innerHTML = l.innerHTML.replace(/<[^>]+>/g, ""), k = l.getAttribute("href").replace(new RegExp(domUtils.fillChar,"g"), ""), k = /^(?:https?:\/\/)/gi.test(k) ? k : "http://" + k, l.setAttribute("_src", utils.html(k)), l.href = utils.html(k), h.insertNode(l), l.parentNode.insertBefore(m, l.nextSibling), h.setStart(m, 0), h.collapse(!0), g.removeAllRanges(), g.addRange(h), c.undoManger && c.undoManger.save() } } } } } }, function() { function a(a) { if (3 == a.nodeType) return null; if ("A" == a.nodeName) return a; for (var b = a.lastChild; b; ) { if ("A" == b.nodeName) return b; if (3 == b.nodeType) { if (domUtils.isWhitespace(b)) { b = b.previousSibling; continue } return null } b = b.lastChild } } var b = { 37: 1, 38: 1, 39: 1, 40: 1, 13: 1, 32: 1 }; browser.ie && this.addListener("keyup", function(c, d) { var e = this , f = d.keyCode; if (b[f]) { var g = e.selection.getRange() , h = g.startContainer; if (13 == f) { for (; h && !domUtils.isBody(h) && !domUtils.isBlockElm(h); ) h = h.parentNode; if (h && !domUtils.isBody(h) && "P" == h.nodeName) { var i = h.previousSibling; if (i && 1 == i.nodeType) { var i = a(i); i && !i.getAttribute("_href") && domUtils.remove(i, !0) } } } else if (32 == f) 3 == h.nodeType && /^\s$/.test(h.nodeValue) && (h = h.previousSibling, h && "A" == h.nodeName && !h.getAttribute("_href") && domUtils.remove(h, !0)); else if (h = domUtils.findParentByTagName(h, "a", !0), h && !h.getAttribute("_href")) { var j = g.createBookmark(); domUtils.remove(h, !0), g.moveToBookmark(j).select(!0) } } }) }), UE.plugins.autoheight = function() { function a() { var a = this; clearTimeout(e), f || (!a.queryCommandState || a.queryCommandState && 1 != a.queryCommandState("source")) && (e = setTimeout(function() { for (var b = a.body.lastChild; b && 1 != b.nodeType; ) b = b.previousSibling; b && 1 == b.nodeType && (b.style.clear = "both", d = Math.max(domUtils.getXY(b).y + b.offsetHeight + 25, Math.max(h.minFrameHeight, h.initialFrameHeight)), d != g && (d !== parseInt(a.iframe.parentNode.style.height) && (a.iframe.parentNode.style.height = d + "px"), a.body.style.height = d + "px", g = d), domUtils.removeStyle(b, "clear")) if(d<=450) { a.body.style.overflow = "scroll"; }else { a.body.style.overflow = "hidden"; } }, 50)) } var b = this; if (b.autoHeightEnabled = b.options.autoHeightEnabled !== !1, b.autoHeightEnabled) { var c, d, e, f, g = 0, h = b.options; b.addListener("fullscreenchanged", function(a, b) { f = b }), b.addListener("destroy", function() { b.removeListener("contentchange afterinserthtml keyup mouseup", a) }), b.enableAutoHeight = function() { var b = this; if (b.autoHeightEnabled) { var d = b.document; b.autoHeightEnabled = !0, c = d.body.style.overflowY, d.body.style.overflowY = "hidden", b.addListener("contentchange afterinserthtml keyup mouseup", a), setTimeout(function() { a.call(b) }, browser.gecko ? 100 : 0), b.fireEvent("autoheightchanged", b.autoHeightEnabled) } } , b.disableAutoHeight = function() { b.body.style.overflowY = c || "", b.removeListener("contentchange", a), b.removeListener("keyup", a), b.removeListener("mouseup", a), b.autoHeightEnabled = !1, b.fireEvent("autoheightchanged", b.autoHeightEnabled) } , b.on("setHeight", function() { b.disableAutoHeight() }), b.addListener("ready", function() { b.enableAutoHeight(); var c; domUtils.on(browser.ie ? b.body : b.document, browser.webkit ? "dragover" : "drop", function() { clearTimeout(c), c = setTimeout(function() { a.call(b) }, 100) }); var d; window.onscroll = function() { null === d ? d = this.scrollY : 0 == this.scrollY && 0 != d && (b.window.scrollTo(0, 0), d = null) } }) } } , UE.plugins.autofloat = function() { function a() { return UE.ui ? 1 : (alert(lang.autofloatMsg), 0) } var b = this , c = document.createElement("div"); b.addListener("ready", function() { if (a(b)) { if (!b.ui) return; toolbarBox = b.ui.getDom("toolbarbox"), c.style.width = "730px", c.style.height = b.options.toolbarsHeight + "px", toolbarBox.parentNode.insertBefore(c, toolbarBox) } }) } , UE.plugins.video = function() { function a(a, b, d, e, f, g, h) { a = utils.unhtmlForUrl(a), f = utils.unhtml(f), g = utils.unhtml(g), b = parseInt(b, 10) || 0, d = parseInt(d, 10) || 0; var i; switch (h) { case "image": i = "'; break; case "embed": i = ''; break; case "video": var j = a.substr(a.lastIndexOf(".") + 1); "ogv" == j && (j = "ogg"), i = "' } return i } function b(b, c) { utils.each(b.getNodesByTagName(c ? "img" : "embed video"), function(b) { var d = b.getAttr("class"); if (d && d.indexOf("edui-faked-video") != -1) { var e = a(c ? b.getAttr("_url") : b.getAttr("src"), b.getAttr("width"), b.getAttr("height"), null, b.getStyle("float") || "", d, c ? "embed" : "image"); b.parentNode.replaceChild(UE.uNode.createElement(e), b) } if (d && d.indexOf("edui-upload-video") != -1) { var e = a(c ? b.getAttr("_url") : b.getAttr("src"), b.getAttr("width"), b.getAttr("height"), null, b.getStyle("float") || "", d, c ? "video" : "image"); b.parentNode.replaceChild(UE.uNode.createElement(e), b) } }) } var c = this; c.addOutputRule(function(a) { b(a, !0) }), c.addInputRule(function(a) { b(a) }), c.commands.insertvideo = { execCommand: function(b, d, e) { d = utils.isArray(d) ? d : [d]; for (var f, g, h = [], i = "tmpVedio", j = 0, k = d.length; j < k; j++) g = d[j], f = "upload" == e ? "edui-upload-video video-js vjs-default-skin" : "edui-faked-video", h.push(a(g.url, g.width || 420, g.height || 280, i + j, null, f, "image")); c.execCommand("inserthtml", h.join(""), !0); for (var l = this.selection.getRange(), j = 0, k = d.length; j < k; j++) { var m = this.document.getElementById("tmpVedio" + j); domUtils.removeAttributes(m, "id"), l.selectNode(m).select(), c.execCommand("imagefloat", d[j].align) } }, queryCommandState: function() { var a = c.selection.getRange().getClosedNode() , b = a && ("edui-faked-video" == a.className || a.className.indexOf("edui-upload-video") != -1); return b ? 1 : 0 } } } , function() { function a(a) {} var b = UE.UETable = function(a) { this.table = a, this.indexTable = [], this.selectedTds = [], this.cellsRange = {}, this.update(a) } ; b.removeSelectedClass = function(a) { utils.each(a, function(a) { domUtils.removeClasses(a, "selectTdClass") }) } , b.addSelectedClass = function(a) { utils.each(a, function(a) { domUtils.addClass(a, "selectTdClass") }) } , b.isEmptyBlock = function(a) { var b = new RegExp(domUtils.fillChar,"g"); if (a[browser.ie ? "innerText" : "textContent"].replace(/^\s*$/, "").replace(b, "").length > 0) return 0; for (var c in dtd.$isNotEmpty) if (dtd.$isNotEmpty.hasOwnProperty(c) && a.getElementsByTagName(c).length) return 0; return 1 } , b.getWidth = function(a) { return a ? parseInt(domUtils.getComputedStyle(a, "width"), 10) : 0 } , b.getTableCellAlignState = function(a) { !utils.isArray(a) && (a = [a]); var b = {} , c = ["align", "valign"] , d = null , e = !0; return utils.each(a, function(a) { return utils.each(c, function(c) { if (d = a.getAttribute(c), !b[c] && d) b[c] = d; else if (!b[c] || d !== b[c]) return e = !1, !1 }), e }), e ? b : null } , b.getTableItemsByRange = function(a) { var b = a.selection.getStart(); b && b.id && 0 === b.id.indexOf("_baidu_bookmark_start_") && b.nextSibling && (b = b.nextSibling); var c = b && domUtils.findParentByTagName(b, ["td", "th"], !0) , d = c && c.parentNode , e = b && domUtils.findParentByTagName(b, "caption", !0) , f = e ? e.parentNode : d && d.parentNode.parentNode; return { cell: c, tr: d, table: f, caption: e } } , b.getUETableBySelected = function(a) { var c = b.getTableItemsByRange(a).table; return c && c.ueTable && c.ueTable.selectedTds.length ? c.ueTable : null } , b.getDefaultValue = function(a, b) { var c, d, e, f, g = { thin: "0px", medium: "1px", thick: "2px" }; if (b) return h = b.getElementsByTagName("td")[0], f = domUtils.getComputedStyle(b, "border-left-width"), c = parseInt(g[f] || f, 10), f = domUtils.getComputedStyle(h, "padding-left"), d = parseInt(g[f] || f, 10), f = domUtils.getComputedStyle(h, "border-left-width"), e = parseInt(g[f] || f, 10), { tableBorder: c, tdPadding: d, tdBorder: e }; b = a.document.createElement("table"), b.insertRow(0).insertCell(0).innerHTML = "xxx", a.body.appendChild(b); var h = b.getElementsByTagName("td")[0]; return f = domUtils.getComputedStyle(b, "border-left-width"), c = parseInt(g[f] || f, 10), f = domUtils.getComputedStyle(h, "padding-left"), d = parseInt(g[f] || f, 10), f = domUtils.getComputedStyle(h, "border-left-width"), e = parseInt(g[f] || f, 10), domUtils.remove(b), { tableBorder: c, tdPadding: d, tdBorder: e } } , b.getUETable = function(a) { var c = a.tagName.toLowerCase(); return a = "td" == c || "th" == c || "caption" == c ? domUtils.findParentByTagName(a, "table", !0) : a, a.ueTable || (a.ueTable = new b(a)), a.ueTable } , b.cloneCell = function(a, b, c) { if (!a || utils.isString(a)) return this.table.ownerDocument.createElement(a || "td"); var d = domUtils.hasClass(a, "selectTdClass"); d && domUtils.removeClasses(a, "selectTdClass"); var e = a.cloneNode(!0); return b && (e.rowSpan = e.colSpan = 1), !c && domUtils.removeAttributes(e, "width height"), !c && domUtils.removeAttributes(e, "style"), e.style.borderLeftStyle = "", e.style.borderTopStyle = "", e.style.borderLeftColor = a.style.borderRightColor, e.style.borderLeftWidth = a.style.borderRightWidth, e.style.borderTopColor = a.style.borderBottomColor, e.style.borderTopWidth = a.style.borderBottomWidth, d && domUtils.addClass(a, "selectTdClass"), e } , b.prototype = { getMaxRows: function() { for (var a, b = this.table.rows, c = 1, d = 0; a = b[d]; d++) { for (var e, f = 1, g = 0; e = a.cells[g++]; ) f = Math.max(e.rowSpan || 1, f); c = Math.max(f + d, c) } return c }, getMaxCols: function() { for (var a, b = this.table.rows, c = 0, d = {}, e = 0; a = b[e]; e++) { for (var f, g = 0, h = 0; f = a.cells[h++]; ) if (g += f.colSpan || 1, f.rowSpan && f.rowSpan > 1) for (var i = 1; i < f.rowSpan; i++) d["row_" + (e + i)] ? d["row_" + (e + i)]++ : d["row_" + (e + i)] = f.colSpan || 1; g += d["row_" + e] || 0, c = Math.max(g, c) } return c }, getCellColIndex: function(a) {}, getHSideCell: function(b, c) { try { var d, e, f = this.getCellInfo(b), g = this.selectedTds.length, h = this.cellsRange; return !c && (g ? !h.beginColIndex : !f.colIndex) || c && (g ? h.endColIndex == this.colsNum - 1 : f.colIndex == this.colsNum - 1) ? null : (d = g ? h.beginRowIndex : f.rowIndex, e = c ? g ? h.endColIndex + 1 : f.colIndex + 1 : g ? h.beginColIndex - 1 : f.colIndex < 1 ? 0 : f.colIndex - 1, this.getCell(this.indexTable[d][e].rowIndex, this.indexTable[d][e].cellIndex)) } catch (i) { a(i) } }, getTabNextCell: function(a, b) { var c, d = this.getCellInfo(a), e = b || d.rowIndex, f = d.colIndex + 1 + (d.colSpan - 1); try { c = this.getCell(this.indexTable[e][f].rowIndex, this.indexTable[e][f].cellIndex) } catch (g) { try { e = 1 * e + 1, f = 0, c = this.getCell(this.indexTable[e][f].rowIndex, this.indexTable[e][f].cellIndex) } catch (g) {} } return c }, getVSideCell: function(b, c, d) { try { var e, f, g = this.getCellInfo(b), h = this.selectedTds.length && !d, i = this.cellsRange; return !c && 0 == g.rowIndex || c && (h ? i.endRowIndex == this.rowsNum - 1 : g.rowIndex + g.rowSpan > this.rowsNum - 1) ? null : (e = c ? h ? i.endRowIndex + 1 : g.rowIndex + g.rowSpan : h ? i.beginRowIndex - 1 : g.rowIndex - 1, f = h ? i.beginColIndex : g.colIndex, this.getCell(this.indexTable[e][f].rowIndex, this.indexTable[e][f].cellIndex)) } catch (j) { a(j) } }, getSameEndPosCells: function(b, c) { try { for (var d = "x" === c.toLowerCase(), e = domUtils.getXY(b)[d ? "x" : "y"] + b["offset" + (d ? "Width" : "Height")], f = this.table.rows, g = null, h = [], i = 0; i < this.rowsNum; i++) { g = f[i].cells; for (var j, k = 0; j = g[k++]; ) { var l = domUtils.getXY(j)[d ? "x" : "y"] + j["offset" + (d ? "Width" : "Height")]; if (l > e && d) break; if ((b == j || e == l) && (1 == j[d ? "colSpan" : "rowSpan"] && h.push(j), d)) break } } return h } catch (m) { a(m) } }, setCellContent: function(a, b) { a.innerHTML = b || (browser.ie ? domUtils.fillChar : "
") }, cloneCell: b.cloneCell, getSameStartPosXCells: function(b) { try { for (var c, d = domUtils.getXY(b).x + b.offsetWidth, e = this.table.rows, f = [], g = 0; g < this.rowsNum; g++) { c = e[g].cells; for (var h, i = 0; h = c[i++]; ) { var j = domUtils.getXY(h).x; if (j > d) break; if (j == d && 1 == h.colSpan) { f.push(h); break } } } return f } catch (k) { a(k) } }, update: function(a) { this.table = a || this.table, this.selectedTds = [], this.cellsRange = {}, this.indexTable = []; for (var b = this.table.rows, c = this.getMaxRows(), d = c - b.length, e = this.getMaxCols(); d--; ) this.table.insertRow(b.length); this.rowsNum = c, this.colsNum = e; for (var f = 0, g = b.length; f < g; f++) this.indexTable[f] = new Array(e); for (var h, i = 0; h = b[i]; i++) for (var j, k = 0, l = h.cells; j = l[k]; k++) { j.rowSpan > c && (j.rowSpan = c); for (var m = k, n = j.rowSpan || 1, o = j.colSpan || 1; this.indexTable[i][m]; ) m++; for (var p = 0; p < n; p++) for (var q = 0; q < o; q++) this.indexTable[i + p][m + q] = { rowIndex: i, cellIndex: k, colIndex: m, rowSpan: n, colSpan: o } } for (p = 0; p < c; p++) for (q = 0; q < e; q++) void 0 === this.indexTable[p][q] && (h = b[p], j = h.cells[h.cells.length - 1], j = j ? j.cloneNode(!0) : this.table.ownerDocument.createElement("td"), this.setCellContent(j), 1 !== j.colSpan && (j.colSpan = 1), 1 !== j.rowSpan && (j.rowSpan = 1), h.appendChild(j), this.indexTable[p][q] = { rowIndex: p, cellIndex: j.cellIndex, colIndex: q, rowSpan: 1, colSpan: 1 }); var r = domUtils.getElementsByTagName(this.table, "td") , s = []; if (utils.each(r, function(a) { domUtils.hasClass(a, "selectTdClass") && s.push(a) }), s.length) { var t = s[0] , u = s[s.length - 1] , v = this.getCellInfo(t) , w = this.getCellInfo(u); this.selectedTds = s, this.cellsRange = { beginRowIndex: v.rowIndex, beginColIndex: v.colIndex, endRowIndex: w.rowIndex + w.rowSpan - 1, endColIndex: w.colIndex + w.colSpan - 1 } } if (!domUtils.hasClass(this.table.rows[0], "firstRow")) { domUtils.addClass(this.table.rows[0], "firstRow"); for (var f = 1; f < this.table.rows.length; f++) domUtils.removeClasses(this.table.rows[f], "firstRow") } }, getCellInfo: function(a) { if (a) for (var b = a.cellIndex, c = a.parentNode.rowIndex, d = this.indexTable[c], e = this.colsNum, f = b; f < e; f++) { var g = d[f]; if (g.rowIndex === c && g.cellIndex === b) return g } }, getCell: function(a, b) { return a < this.rowsNum && this.table.rows[a].cells[b] || null }, deleteCell: function(a, b) { b = "number" == typeof b ? b : a.parentNode.rowIndex; var c = this.table.rows[b]; c.deleteCell(a.cellIndex) }, getCellsRange: function(a, b) { function c(a, b, e, f) { var g, h, i, j = a, k = b, l = e, m = f; if (a > 0) for (h = b; h < f; h++) g = d.indexTable[a][h], i = g.rowIndex, i < a && (j = Math.min(i, j)); if (f < d.colsNum) for (i = a; i < e; i++) g = d.indexTable[i][f], h = g.colIndex + g.colSpan - 1, h > f && (m = Math.max(h, m)); if (e < d.rowsNum) for (h = b; h < f; h++) g = d.indexTable[e][h], i = g.rowIndex + g.rowSpan - 1, i > e && (l = Math.max(i, l)); if (b > 0) for (i = a; i < e; i++) g = d.indexTable[i][b], h = g.colIndex, h < b && (k = Math.min(g.colIndex, k)); return j != a || k != b || l != e || m != f ? c(j, k, l, m) : { beginRowIndex: a, beginColIndex: b, endRowIndex: e, endColIndex: f } } try { var d = this , e = d.getCellInfo(a); if (a === b) return { beginRowIndex: e.rowIndex, beginColIndex: e.colIndex, endRowIndex: e.rowIndex + e.rowSpan - 1, endColIndex: e.colIndex + e.colSpan - 1 }; var f = d.getCellInfo(b) , g = Math.min(e.rowIndex, f.rowIndex) , h = Math.min(e.colIndex, f.colIndex) , i = Math.max(e.rowIndex + e.rowSpan - 1, f.rowIndex + f.rowSpan - 1) , j = Math.max(e.colIndex + e.colSpan - 1, f.colIndex + f.colSpan - 1); return c(g, h, i, j) } catch (k) {} }, getCells: function(a) { this.clearSelected(); for (var b, c, d, e = a.beginRowIndex, f = a.beginColIndex, g = a.endRowIndex, h = a.endColIndex, i = {}, j = [], k = e; k <= g; k++) for (var l = f; l <= h; l++) { b = this.indexTable[k][l], c = b.rowIndex, d = b.colIndex; var m = c + "|" + d; if (!i[m]) { if (i[m] = 1, c < k || d < l || c + b.rowSpan - 1 > g || d + b.colSpan - 1 > h) return null; j.push(this.getCell(c, b.cellIndex)) } } return j }, clearSelected: function() { b.removeSelectedClass(this.selectedTds), this.selectedTds = [], this.cellsRange = {} }, setSelected: function(a) { var c = this.getCells(a); b.addSelectedClass(c), this.selectedTds = c, this.cellsRange = a }, isFullRow: function() { var a = this.cellsRange; return a.endColIndex - a.beginColIndex + 1 == this.colsNum }, isFullCol: function() { var a = this.cellsRange , b = this.table , c = b.getElementsByTagName("th") , d = a.endRowIndex - a.beginRowIndex + 1; return c.length ? d == this.rowsNum || d == this.rowsNum - 1 : d == this.rowsNum }, getNextCell: function(b, c, d) { try { var e, f, g = this.getCellInfo(b), h = this.selectedTds.length && !d, i = this.cellsRange; return !c && 0 == g.rowIndex || c && (h ? i.endRowIndex == this.rowsNum - 1 : g.rowIndex + g.rowSpan > this.rowsNum - 1) ? null : (e = c ? h ? i.endRowIndex + 1 : g.rowIndex + g.rowSpan : h ? i.beginRowIndex - 1 : g.rowIndex - 1, f = h ? i.beginColIndex : g.colIndex, this.getCell(this.indexTable[e][f].rowIndex, this.indexTable[e][f].cellIndex)) } catch (j) { a(j) } }, getPreviewCell: function(b, c) { try { var d, e, f = this.getCellInfo(b), g = this.selectedTds.length, h = this.cellsRange; return !c && (g ? !h.beginColIndex : !f.colIndex) || c && (g ? h.endColIndex == this.colsNum - 1 : f.rowIndex > this.colsNum - 1) ? null : (d = c ? g ? h.beginRowIndex : f.rowIndex < 1 ? 0 : f.rowIndex - 1 : g ? h.beginRowIndex : f.rowIndex, e = c ? g ? h.endColIndex + 1 : f.colIndex : g ? h.beginColIndex - 1 : f.colIndex < 1 ? 0 : f.colIndex - 1, this.getCell(this.indexTable[d][e].rowIndex, this.indexTable[d][e].cellIndex)) } catch (i) { a(i) } }, moveContent: function(a, c) { if (!b.isEmptyBlock(c)) { if (b.isEmptyBlock(a)) return void (a.innerHTML = c.innerHTML); var d = a.lastChild; for (3 != d.nodeType && dtd.$block[d.tagName] || a.appendChild(a.ownerDocument.createElement("br")); d = c.firstChild; ) a.appendChild(d) } }, mergeRight: function(a) { var b = this.getCellInfo(a) , c = b.colIndex + b.colSpan , d = this.indexTable[b.rowIndex][c] , e = this.getCell(d.rowIndex, d.cellIndex); a.colSpan = b.colSpan + d.colSpan, a.removeAttribute("width"), this.moveContent(a, e), this.deleteCell(e, d.rowIndex), this.update() }, mergeDown: function(a) { var b = this.getCellInfo(a) , c = b.rowIndex + b.rowSpan , d = this.indexTable[c][b.colIndex] , e = this.getCell(d.rowIndex, d.cellIndex); a.rowSpan = b.rowSpan + d.rowSpan, a.removeAttribute("height"), this.moveContent(a, e), this.deleteCell(e, d.rowIndex), this.update() }, mergeRange: function() { var a = this.cellsRange , b = this.getCell(a.beginRowIndex, this.indexTable[a.beginRowIndex][a.beginColIndex].cellIndex); if ("TH" == b.tagName && a.endRowIndex !== a.beginRowIndex) { var c = this.indexTable , d = this.getCellInfo(b); b = this.getCell(1, c[1][d.colIndex].cellIndex), a = this.getCellsRange(b, this.getCell(c[this.rowsNum - 1][d.colIndex].rowIndex, c[this.rowsNum - 1][d.colIndex].cellIndex)) } for (var e, f = this.getCells(a), g = 0; e = f[g++]; ) e !== b && (this.moveContent(b, e), this.deleteCell(e)); if (b.rowSpan = a.endRowIndex - a.beginRowIndex + 1, b.rowSpan > 1 && b.removeAttribute("height"), b.colSpan = a.endColIndex - a.beginColIndex + 1, b.colSpan > 1 && b.removeAttribute("width"), b.rowSpan == this.rowsNum && 1 != b.colSpan && (b.colSpan = 1), b.colSpan == this.colsNum && 1 != b.rowSpan) { var h = b.parentNode.rowIndex; if (this.table.deleteRow) for (var g = h + 1, i = h + 1, j = b.rowSpan; g < j; g++) this.table.deleteRow(i); else for (var g = 0, j = b.rowSpan - 1; g < j; g++) { var k = this.table.rows[h + 1]; k.parentNode.removeChild(k) } b.rowSpan = 1 } this.update() }, insertRow: function(a, b) { function c(a, b, c) { if (0 == a) { var d = c.nextSibling || c.previousSibling , e = d.cells[a]; "TH" == e.tagName && (e = b.ownerDocument.createElement("th"), e.appendChild(b.firstChild), c.insertBefore(e, b), domUtils.remove(b)) } else if ("TH" == b.tagName) { var f = b.ownerDocument.createElement("td"); f.appendChild(b.firstChild), c.insertBefore(f, b), domUtils.remove(b) } } var d, e = this.colsNum, f = this.table, g = f.insertRow(a), h = "string" == typeof b && "TH" == b.toUpperCase(); if (0 == a || a == this.rowsNum) for (var i = 0; i < e; i++) d = this.cloneCell(b, !0), this.setCellContent(d), d.getAttribute("vAlign") && d.setAttribute("vAlign", d.getAttribute("vAlign")), g.appendChild(d), h || c(i, d, g); else { var j = this.indexTable[a]; for (i = 0; i < e; i++) { var k = j[i]; k.rowIndex < a ? (d = this.getCell(k.rowIndex, k.cellIndex), d.rowSpan = k.rowSpan + 1) : (d = this.cloneCell(b, !0), this.setCellContent(d), g.appendChild(d)), h || c(i, d, g) } } return this.update(), g }, deleteRow: function(a) { for (var b = this.table.rows[a], c = this.indexTable[a], d = this.colsNum, e = 0, f = 0; f < d; ) { var g = c[f] , h = this.getCell(g.rowIndex, g.cellIndex); if (h.rowSpan > 1 && g.rowIndex == a) { var i = h.cloneNode(!0); i.rowSpan = h.rowSpan - 1, i.innerHTML = "", h.rowSpan = 1; var j, k = a + 1, l = this.table.rows[k], m = this.getPreviewMergedCellsNum(k, f) - e; m < f ? (j = f - m - 1, domUtils.insertAfter(l.cells[j], i)) : l.cells.length && l.insertBefore(i, l.cells[0]), e += 1 } f += h.colSpan || 1 } var n = [] , o = {}; for (f = 0; f < d; f++) { var p = c[f].rowIndex , q = c[f].cellIndex , r = p + "_" + q; o[r] || (o[r] = 1, h = this.getCell(p, q), n.push(h)) } var s = []; utils.each(n, function(a) { 1 == a.rowSpan ? a.parentNode.removeChild(a) : s.push(a) }), utils.each(s, function(a) { a.rowSpan-- }), b.parentNode.removeChild(b), this.update() }, insertCol: function(a, b, c) { function d(a, b, c) { if (0 == a) { var d = b.nextSibling || b.previousSibling; "TH" == d.tagName && (d = b.ownerDocument.createElement("th"), d.appendChild(b.firstChild), c.insertBefore(d, b), domUtils.remove(b)) } else if ("TH" == b.tagName) { var e = b.ownerDocument.createElement("td"); e.appendChild(b.firstChild), c.insertBefore(e, b), domUtils.remove(b) } } var e, f, g, h = this.rowsNum, i = 0, j = parseInt((this.table.offsetWidth - 20 * (this.colsNum + 1) - (this.colsNum + 1)) / (this.colsNum + 1), 10), k = "string" == typeof b && "TH" == b.toUpperCase(); if (0 == a || a == this.colsNum) for (; i < h; i++) e = this.table.rows[i], g = e.cells[0 == a ? a : e.cells.length], f = this.cloneCell(b, !0), this.setCellContent(f), f.setAttribute("vAlign", f.getAttribute("vAlign")), g && f.setAttribute("width", g.getAttribute("width")), a ? domUtils.insertAfter(e.cells[e.cells.length - 1], f) : e.insertBefore(f, e.cells[0]), k || d(i, f, e); else for (; i < h; i++) { var l = this.indexTable[i][a]; l.colIndex < a ? (f = this.getCell(l.rowIndex, l.cellIndex), f.colSpan = l.colSpan + 1) : (e = this.table.rows[i], g = e.cells[l.cellIndex], f = this.cloneCell(b, !0), this.setCellContent(f), f.setAttribute("vAlign", f.getAttribute("vAlign")), g && f.setAttribute("width", g.getAttribute("width")), g ? e.insertBefore(f, g) : e.appendChild(f)), k || d(i, f, e) } this.update(), this.updateWidth(j, c || { tdPadding: 10, tdBorder: 1 }) }, updateWidth: function(a, c) { var d = this.table , e = b.getWidth(d) - 2 * c.tdPadding - c.tdBorder + a; if (e < d.ownerDocument.body.offsetWidth) return void d.setAttribute("width", e); var f = domUtils.getElementsByTagName(this.table, "td th"); utils.each(f, function(b) { b.setAttribute("width", a) }) }, deleteCol: function(a) { for (var b = this.indexTable, c = this.table.rows, d = this.table.getAttribute("width"), e = 0, f = this.rowsNum, g = {}, h = 0; h < f; ) { var i = b[h] , j = i[a] , k = j.rowIndex + "_" + j.colIndex; if (!g[k]) { g[k] = 1; var l = this.getCell(j.rowIndex, j.cellIndex); e || (e = l && parseInt(l.offsetWidth / l.colSpan, 10).toFixed(0)), l.colSpan > 1 ? l.colSpan-- : c[h].deleteCell(j.cellIndex), h += j.rowSpan || 1 } } this.table.setAttribute("width", d - e), this.update() }, splitToCells: function(a) { var b = this , c = this.splitToRows(a); utils.each(c, function(a) { b.splitToCols(a) }) }, splitToRows: function(a) { var b = this.getCellInfo(a) , c = b.rowIndex , d = b.colIndex , e = []; a.rowSpan = 1, e.push(a); for (var f = c, g = c + b.rowSpan; f < g; f++) if (f != c) { var h = this.table.rows[f] , i = h.insertCell(d - this.getPreviewMergedCellsNum(f, d)); i.colSpan = b.colSpan, this.setCellContent(i), i.setAttribute("vAlign", a.getAttribute("vAlign")), i.setAttribute("align", a.getAttribute("align")), a.style.cssText && (i.style.cssText = a.style.cssText), e.push(i) } return this.update(), e }, getPreviewMergedCellsNum: function(a, b) { for (var c = this.indexTable[a], d = 0, e = 0; e < b; ) { var f = c[e].colSpan , g = c[e].rowIndex; d += f - (g == a ? 1 : 0), e += f } return d }, splitToCols: function(a) { var b = (a.offsetWidth / a.colSpan - 22).toFixed(0) , c = this.getCellInfo(a) , d = c.rowIndex , e = c.colIndex , f = []; a.colSpan = 1, a.setAttribute("width", b), f.push(a); for (var g = e, h = e + c.colSpan; g < h; g++) if (g != e) { var i = this.table.rows[d] , j = i.insertCell(this.indexTable[d][g].cellIndex + 1); if (j.rowSpan = c.rowSpan, this.setCellContent(j), j.setAttribute("vAlign", a.getAttribute("vAlign")), j.setAttribute("align", a.getAttribute("align")), j.setAttribute("width", b), a.style.cssText && (j.style.cssText = a.style.cssText), "TH" == a.tagName) { var k = a.ownerDocument.createElement("th"); k.appendChild(j.firstChild), k.setAttribute("vAlign", a.getAttribute("vAlign")), k.rowSpan = j.rowSpan, i.insertBefore(k, j), domUtils.remove(j) } f.push(j) } return this.update(), f }, isLastCell: function(a, b, c) { b = b || this.rowsNum, c = c || this.colsNum; var d = this.getCellInfo(a); return d.rowIndex + d.rowSpan == b && d.colIndex + d.colSpan == c }, getLastCell: function(a) { a = a || this.table.getElementsByTagName("td"); var b, c = (this.getCellInfo(a[0]), this), d = a[0], e = d.parentNode, f = 0, g = 0; return utils.each(a, function(a) { a.parentNode == e && (g += a.colSpan || 1), f += a.rowSpan * a.colSpan || 1 }), b = f / g, utils.each(a, function(a) { if (c.isLastCell(a, b, g)) return d = a, !1 }), d }, selectRow: function(a) { var b = this.indexTable[a] , c = this.getCell(b[0].rowIndex, b[0].cellIndex) , d = this.getCell(b[this.colsNum - 1].rowIndex, b[this.colsNum - 1].cellIndex) , e = this.getCellsRange(c, d); this.setSelected(e) }, selectTable: function() { var a = this.table.getElementsByTagName("td") , b = this.getCellsRange(a[0], a[a.length - 1]); this.setSelected(b) }, setBackground: function(a, b) { if ("string" == typeof b) utils.each(a, function(a) { a.style.backgroundColor = b }); else if ("object" == typeof b) { b = utils.extend({ repeat: !0, colorList: ["#ddd", "#fff"] }, b); for (var c, d = this.getCellInfo(a[0]).rowIndex, e = 0, f = b.colorList, g = function(a, b, c) { return a[b] ? a[b] : c ? a[b % a.length] : "" }, h = 0; c = a[h++]; ) { var i = this.getCellInfo(c); c.style.backgroundColor = g(f, d + e == i.rowIndex ? e : ++e, b.repeat) } } }, removeBackground: function(a) { utils.each(a, function(a) { a.style.backgroundColor = "" }) } } }(), function() { function a(a, c) { var d = domUtils.getElementsByTagName(a, "td th"); utils.each(d, function(a) { a.removeAttribute("width") }), a.setAttribute("width", b(c, !0, g(c, a))); var e = []; setTimeout(function() { utils.each(d, function(a) { 1 == a.colSpan && e.push(a.offsetWidth) }), utils.each(d, function(a, b) { 1 == a.colSpan && a.setAttribute("width", e[b] + "") }) }, 0) } function b(a, b, c) { var d = a.body; return d.offsetWidth - (b ? 2 * parseInt(domUtils.getComputedStyle(d, "margin-left"), 10) : 0) - 2 * c.tableBorder - (a.options.offsetWidth || 0) } function c(a) { var b = e(a).cell; if (b) { var c = h(b); return c.selectedTds.length ? c.selectedTds : [b] } return [] } var d = UE.UETable , e = function(a) { return d.getTableItemsByRange(a) } , f = function(a) { return d.getUETableBySelected(a) } , g = function(a, b) { return d.getDefaultValue(a, b) } , h = function(a) { return d.getUETable(a) }; UE.commands.inserttable = { queryCommandState: function() { return e(this).table ? -1 : 0 }, execCommand: function(a, b) { function c(a, b) { for (var c = [], d = a.numRows, e = a.numCols, f = 0; f < d; f++) { c.push(""); for (var g = 0; g < e; g++) c.push('
"); c.push("") } return "
' + (browser.ie && browser.version < 11 ? domUtils.fillChar : "
") + "
" + c.join("") + "
" } b || (b = utils.extend({}, { numCols: this.options.defaultCols, numRows: this.options.defaultRows, tdvalign: this.options.tdvalign })); var d = this , e = this.selection.getRange() , f = e.startContainer , h = domUtils.findParent(f, function(a) { return domUtils.isBlockElm(a) }, !0) || d.body , i = g(d) , j = h.offsetWidth , k = Math.floor(j / b.numCols - 2 * i.tdPadding - i.tdBorder); !b.tdvalign && (b.tdvalign = d.options.tdvalign), d.execCommand("inserthtml", c(b, k)) } }, UE.commands.insertparagraphbeforetable = { queryCommandState: function() { return e(this).cell ? 0 : -1 }, execCommand: function() { var a = e(this).table; if (a) { var b = this.document.createElement("p"); b.innerHTML = browser.ie ? " " : "
", a.parentNode.insertBefore(b, a), this.selection.getRange().setStart(b, 0).setCursor() } } }, UE.commands.deletetable = { queryCommandState: function() { var a = this.selection.getRange(); return domUtils.findParentByTagName(a.startContainer, "table", !0) ? 0 : -1 }, execCommand: function(a, b) { var c = this.selection.getRange(); if (b = b || domUtils.findParentByTagName(c.startContainer, "table", !0)) { var d = b.nextSibling; d || (d = domUtils.createElement(this.document, "p", { innerHTML: browser.ie ? domUtils.fillChar : "
" }), b.parentNode.insertBefore(d, b)), domUtils.remove(b), c = this.selection.getRange(), 3 == d.nodeType ? c.setStartBefore(d) : c.setStart(d, 0), c.setCursor(!1, !0), this.fireEvent("tablehasdeleted") } } }, UE.commands.cellalign = { queryCommandState: function() { return c(this).length ? 0 : -1 }, execCommand: function(a, b) { var d = c(this); if (d.length) for (var e, f = 0; e = d[f++]; ) e.setAttribute("align", b) } }, UE.commands.cellvalign = { queryCommandState: function() { return c(this).length ? 0 : -1 }, execCommand: function(a, b) { var d = c(this); if (d.length) for (var e, f = 0; e = d[f++]; ) e.setAttribute("vAlign", b) } }, UE.commands.insertcaption = { queryCommandState: function() { var a = e(this).table; return a && 0 == a.getElementsByTagName("caption").length ? 1 : -1 }, execCommand: function() { var a = e(this).table; if (a) { var b = this.document.createElement("caption"); b.innerHTML = browser.ie ? domUtils.fillChar : "
", a.insertBefore(b, a.firstChild); var c = this.selection.getRange(); c.setStart(b, 0).setCursor() } } }, UE.commands.deletecaption = { queryCommandState: function() { var a = this.selection.getRange() , b = domUtils.findParentByTagName(a.startContainer, "table"); return b ? 0 == b.getElementsByTagName("caption").length ? -1 : 1 : -1 }, execCommand: function() { var a = this.selection.getRange() , b = domUtils.findParentByTagName(a.startContainer, "table"); if (b) { domUtils.remove(b.getElementsByTagName("caption")[0]); var c = this.selection.getRange(); c.setStart(b.rows[0].cells[0], 0).setCursor() } } }, UE.commands.inserttitle = { queryCommandState: function() { var a = e(this).table; if (a) { var b = a.rows[0]; return "th" != b.cells[b.cells.length - 1].tagName.toLowerCase() ? 0 : -1 } return -1 }, execCommand: function() { var a = e(this).table; a && h(a).insertRow(0, "th"); var b = a.getElementsByTagName("th")[0]; this.selection.getRange().setStart(b, 0).setCursor(!1, !0) } }, UE.commands.deletetitle = { queryCommandState: function() { var a = e(this).table; if (a) { var b = a.rows[0]; return "th" == b.cells[b.cells.length - 1].tagName.toLowerCase() ? 0 : -1 } return -1 }, execCommand: function() { var a = e(this).table; a && domUtils.remove(a.rows[0]); var b = a.getElementsByTagName("td")[0]; this.selection.getRange().setStart(b, 0).setCursor(!1, !0) } }, UE.commands.inserttitlecol = { queryCommandState: function() { var a = e(this).table; if (a) { var b = a.rows[a.rows.length - 1]; return b.getElementsByTagName("th").length ? -1 : 0 } return -1 }, execCommand: function(b) { var c = e(this).table; c && h(c).insertCol(0, "th"), a(c, this); var d = c.getElementsByTagName("th")[0]; this.selection.getRange().setStart(d, 0).setCursor(!1, !0) } }, UE.commands.deletetitlecol = { queryCommandState: function() { var a = e(this).table; if (a) { var b = a.rows[a.rows.length - 1]; return b.getElementsByTagName("th").length ? 0 : -1 } return -1 }, execCommand: function() { var b = e(this).table; if (b) for (var c = 0; c < b.rows.length; c++) domUtils.remove(b.rows[c].children[0]); a(b, this); var d = b.getElementsByTagName("td")[0]; this.selection.getRange().setStart(d, 0).setCursor(!1, !0) } }, UE.commands.mergeright = { queryCommandState: function(a) { var b = e(this) , c = b.table , d = b.cell; if (!c || !d) return -1; var f = h(c); if (f.selectedTds.length) return -1; var g = f.getCellInfo(d) , i = g.colIndex + g.colSpan; if (i >= f.colsNum) return -1; var j = f.indexTable[g.rowIndex][i] , k = c.rows[j.rowIndex].cells[j.cellIndex]; return k && d.tagName == k.tagName && j.rowIndex == g.rowIndex && j.rowSpan == g.rowSpan ? 0 : -1 }, execCommand: function(a) { var b = this.selection.getRange() , c = b.createBookmark(!0) , d = e(this).cell , f = h(d); f.mergeRight(d), b.moveToBookmark(c).select() } }, UE.commands.mergedown = { queryCommandState: function(a) { var b = e(this) , c = b.table , d = b.cell; if (!c || !d) return -1; var f = h(c); if (f.selectedTds.length) return -1; var g = f.getCellInfo(d) , i = g.rowIndex + g.rowSpan; if (i >= f.rowsNum) return -1; var j = f.indexTable[i][g.colIndex] , k = c.rows[j.rowIndex].cells[j.cellIndex]; return k && d.tagName == k.tagName && j.colIndex == g.colIndex && j.colSpan == g.colSpan ? 0 : -1 }, execCommand: function() { var a = this.selection.getRange() , b = a.createBookmark(!0) , c = e(this).cell , d = h(c); d.mergeDown(c), a.moveToBookmark(b).select() } }, UE.commands.mergecells = { queryCommandState: function() { return f(this) ? 0 : -1 }, execCommand: function() { var a = f(this); if (a && a.selectedTds.length) { var b = a.selectedTds[0]; a.mergeRange(); var c = this.selection.getRange(); domUtils.isEmptyBlock(b) ? c.setStart(b, 0).collapse(!0) : c.selectNodeContents(b), c.select() } } }, UE.commands.insertrow = { queryCommandState: function() { var a = e(this) , b = a.cell; return b && ("TD" == b.tagName || "TH" == b.tagName && a.tr !== a.table.rows[0]) && h(a.table).rowsNum < this.options.maxRowNum ? 0 : -1 }, execCommand: function() { var a = this.selection.getRange() , b = a.createBookmark(!0) , c = e(this) , d = c.cell , f = c.table , g = h(f) , i = g.getCellInfo(d); if (g.selectedTds.length) for (var j = g.cellsRange, k = 0, l = j.endRowIndex - j.beginRowIndex + 1; k < l; k++) g.insertRow(j.beginRowIndex, d); else g.insertRow(i.rowIndex, d); a.moveToBookmark(b).select(), "enabled" === f.getAttribute("interlaced") && this.fireEvent("interlacetable", f) } }, UE.commands.insertrownext = { queryCommandState: function() { var a = e(this) , b = a.cell; return b && "TD" == b.tagName && h(a.table).rowsNum < this.options.maxRowNum ? 0 : -1 }, execCommand: function() { var a = this.selection.getRange() , b = a.createBookmark(!0) , c = e(this) , d = c.cell , f = c.table , g = h(f) , i = g.getCellInfo(d); if (g.selectedTds.length) for (var j = g.cellsRange, k = 0, l = j.endRowIndex - j.beginRowIndex + 1; k < l; k++) g.insertRow(j.endRowIndex + 1, d); else g.insertRow(i.rowIndex + i.rowSpan, d); a.moveToBookmark(b).select(), "enabled" === f.getAttribute("interlaced") && this.fireEvent("interlacetable", f) } }, UE.commands.deleterow = { queryCommandState: function() { var a = e(this); return a.cell ? 0 : -1 }, execCommand: function() { var a = e(this).cell , b = h(a) , c = b.cellsRange , d = b.getCellInfo(a) , f = b.getVSideCell(a) , g = b.getVSideCell(a, !0) , i = this.selection.getRange(); if (utils.isEmptyObject(c)) b.deleteRow(d.rowIndex); else for (var j = c.beginRowIndex; j < c.endRowIndex + 1; j++) b.deleteRow(c.beginRowIndex); var k = b.table; if (k.getElementsByTagName("td").length) if (1 == d.rowSpan || d.rowSpan == c.endRowIndex - c.beginRowIndex + 1) (g || f) && i.selectNodeContents(g || f).setCursor(!1, !0); else { var l = b.getCell(d.rowIndex, b.indexTable[d.rowIndex][d.colIndex].cellIndex); l && i.selectNodeContents(l).setCursor(!1, !0) } else { var m = k.nextSibling; domUtils.remove(k), m && i.setStart(m, 0).setCursor(!1, !0) } "enabled" === k.getAttribute("interlaced") && this.fireEvent("interlacetable", k) } }, UE.commands.insertcol = { queryCommandState: function(a) { var b = e(this) , c = b.cell; return c && ("TD" == c.tagName || "TH" == c.tagName && c !== b.tr.cells[0]) && h(b.table).colsNum < this.options.maxColNum ? 0 : -1 }, execCommand: function(a) { var b = this.selection.getRange() , c = b.createBookmark(!0); if (this.queryCommandState(a) != -1) { var d = e(this).cell , f = h(d) , g = f.getCellInfo(d); if (f.selectedTds.length) for (var i = f.cellsRange, j = 0, k = i.endColIndex - i.beginColIndex + 1; j < k; j++) f.insertCol(i.beginColIndex, d); else f.insertCol(g.colIndex, d); b.moveToBookmark(c).select(!0) } } }, UE.commands.insertcolnext = { queryCommandState: function() { var a = e(this) , b = a.cell; return b && h(a.table).colsNum < this.options.maxColNum ? 0 : -1 }, execCommand: function() { var a = this.selection.getRange() , b = a.createBookmark(!0) , c = e(this).cell , d = h(c) , f = d.getCellInfo(c); if (d.selectedTds.length) for (var g = d.cellsRange, i = 0, j = g.endColIndex - g.beginColIndex + 1; i < j; i++) d.insertCol(g.endColIndex + 1, c); else d.insertCol(f.colIndex + f.colSpan, c); a.moveToBookmark(b).select() } }, UE.commands.deletecol = { queryCommandState: function() { var a = e(this); return a.cell ? 0 : -1 }, execCommand: function() { var a = e(this).cell , b = h(a) , c = b.cellsRange , d = b.getCellInfo(a) , f = b.getHSideCell(a) , g = b.getHSideCell(a, !0); if (utils.isEmptyObject(c)) b.deleteCol(d.colIndex); else for (var i = c.beginColIndex; i < c.endColIndex + 1; i++) b.deleteCol(c.beginColIndex); var j = b.table , k = this.selection.getRange(); if (j.getElementsByTagName("td").length) domUtils.inDoc(a, this.document) ? k.setStart(a, 0).setCursor(!1, !0) : g && domUtils.inDoc(g, this.document) ? k.selectNodeContents(g).setCursor(!1, !0) : f && domUtils.inDoc(f, this.document) && k.selectNodeContents(f).setCursor(!0, !0); else { var l = j.nextSibling; domUtils.remove(j), l && k.setStart(l, 0).setCursor(!1, !0) } } }, UE.commands.splittocells = { queryCommandState: function() { var a = e(this) , b = a.cell; if (!b) return -1; var c = h(a.table); return c.selectedTds.length > 0 ? -1 : b && (b.colSpan > 1 || b.rowSpan > 1) ? 0 : -1 }, execCommand: function() { var a = this.selection.getRange() , b = a.createBookmark(!0) , c = e(this).cell , d = h(c); d.splitToCells(c), a.moveToBookmark(b).select() } }, UE.commands.splittorows = { queryCommandState: function() { var a = e(this) , b = a.cell; if (!b) return -1; var c = h(a.table); return c.selectedTds.length > 0 ? -1 : b && b.rowSpan > 1 ? 0 : -1 }, execCommand: function() { var a = this.selection.getRange() , b = a.createBookmark(!0) , c = e(this).cell , d = h(c); d.splitToRows(c), a.moveToBookmark(b).select() } }, UE.commands.splittocols = { queryCommandState: function() { var a = e(this) , b = a.cell; if (!b) return -1; var c = h(a.table); return c.selectedTds.length > 0 ? -1 : b && b.colSpan > 1 ? 0 : -1; }, execCommand: function() { var a = this.selection.getRange() , b = a.createBookmark(!0) , c = e(this).cell , d = h(c); d.splitToCols(c), a.moveToBookmark(b).select() } }, UE.commands.adaptbytext = UE.commands.adaptbywindow = { queryCommandState: function() { return e(this).table ? 0 : -1 }, execCommand: function(b) { var c = e(this) , d = c.table; if (d) if ("adaptbywindow" == b) a(d, this); else { var f = domUtils.getElementsByTagName(d, "td th"); utils.each(f, function(a) { a.removeAttribute("width") }), d.removeAttribute("width") } } }, UE.commands.averagedistributecol = { queryCommandState: function() { var a = f(this); return a && (a.isFullRow() || a.isFullCol()) ? 0 : -1 }, execCommand: function(a) { function b() { var a, b = e.table, c = 0, f = 0, h = g(d, b); if (e.isFullRow()) c = b.offsetWidth, f = e.colsNum; else for (var i, j = e.cellsRange.beginColIndex, k = e.cellsRange.endColIndex, l = j; l <= k; ) i = e.selectedTds[l], c += i.offsetWidth, l += i.colSpan, f += 1; return a = Math.ceil(c / f) - 2 * h.tdBorder - 2 * h.tdPadding } function c(a) { utils.each(domUtils.getElementsByTagName(e.table, "th"), function(a) { a.setAttribute("width", "") }); var b = e.isFullRow() ? domUtils.getElementsByTagName(e.table, "td") : e.selectedTds; utils.each(b, function(b) { 1 == b.colSpan && b.setAttribute("width", a) }) } var d = this , e = f(d); e && e.selectedTds.length && c(b()) } }, UE.commands.averagedistributerow = { queryCommandState: function() { var a = f(this); return a ? a.selectedTds && /th/gi.test(a.selectedTds[0].tagName) ? -1 : a.isFullRow() || a.isFullCol() ? 0 : -1 : -1 }, execCommand: function(a) { function b() { var a, b, c = 0, f = e.table, h = g(d, f), i = parseInt(domUtils.getComputedStyle(f.getElementsByTagName("td")[0], "padding-top")); if (e.isFullCol()) { var j, k, l = domUtils.getElementsByTagName(f, "caption"), m = domUtils.getElementsByTagName(f, "th"); l.length > 0 && (j = l[0].offsetHeight), m.length > 0 && (k = m[0].offsetHeight), c = f.offsetHeight - (j || 0) - (k || 0), b = 0 == m.length ? e.rowsNum : e.rowsNum - 1 } else { for (var n = e.cellsRange.beginRowIndex, o = e.cellsRange.endRowIndex, p = 0, q = domUtils.getElementsByTagName(f, "tr"), r = n; r <= o; r++) c += q[r].offsetHeight, p += 1; b = p } return a = browser.ie && browser.version < 9 ? Math.ceil(c / b) : Math.ceil(c / b) - 2 * h.tdBorder - 2 * i } function c(a) { var b = e.isFullCol() ? domUtils.getElementsByTagName(e.table, "td") : e.selectedTds; utils.each(b, function(b) { 1 == b.rowSpan && b.setAttribute("height", a) }) } var d = this , e = f(d); e && e.selectedTds.length && c(b()) } }, UE.commands.cellalignment = { queryCommandState: function() { return e(this).table ? 0 : -1 }, execCommand: function(a, b) { var c = this , d = f(c); if (d) utils.each(d.selectedTds, function(a) { domUtils.setAttributes(a, b) }); else { var e = c.selection.getStart() , g = e && domUtils.findParentByTagName(e, ["td", "th", "caption"], !0); /caption/gi.test(g.tagName) ? (g.style.textAlign = b.align, g.style.verticalAlign = b.vAlign) : domUtils.setAttributes(g, b), c.selection.getRange().setCursor(!0) } }, queryCommandValue: function(a) { var b = e(this).cell; if (b || (b = c(this)[0]), b) { var d = UE.UETable.getUETable(b).selectedTds; return !d.length && (d = b), UE.UETable.getTableCellAlignState(d) } return null } }, UE.commands.tablealignment = { queryCommandState: function() { return browser.ie && browser.version < 8 ? -1 : e(this).table ? 0 : -1 }, execCommand: function(a, b) { var c = this , d = c.selection.getStart() , e = d && domUtils.findParentByTagName(d, ["table"], !0); e && e.setAttribute("align", b) } }, UE.commands.edittable = { queryCommandState: function() { return e(this).table ? 0 : -1 }, execCommand: function(a, b) { var c = this.selection.getRange() , d = domUtils.findParentByTagName(c.startContainer, "table"); if (d) { var e = domUtils.getElementsByTagName(d, "td").concat(domUtils.getElementsByTagName(d, "th"), domUtils.getElementsByTagName(d, "caption")); utils.each(e, function(a) { a.style.borderColor = b }) } } }, UE.commands.edittd = { queryCommandState: function() { return e(this).table ? 0 : -1 }, execCommand: function(a, b) { var c = this , d = f(c); if (d) utils.each(d.selectedTds, function(a) { a.style.backgroundColor = b }); else { var e = c.selection.getStart() , g = e && domUtils.findParentByTagName(e, ["td", "th", "caption"], !0); g && (g.style.backgroundColor = b) } } }, UE.commands.settablebackground = { queryCommandState: function() { return c(this).length > 1 ? 0 : -1 }, execCommand: function(a, b) { var d, e; d = c(this), e = h(d[0]), e.setBackground(d, b) } }, UE.commands.cleartablebackground = { queryCommandState: function() { var a = c(this); if (!a.length) return -1; for (var b, d = 0; b = a[d++]; ) if ("" !== b.style.backgroundColor) return 0; return -1 }, execCommand: function() { var a = c(this) , b = h(a[0]); b.removeBackground(a) } }, UE.commands.interlacetable = UE.commands.uninterlacetable = { queryCommandState: function(a) { var b = e(this).table; if (!b) return -1; var c = b.getAttribute("interlaced"); return "interlacetable" == a ? "enabled" === c ? -1 : 0 : c && "disabled" !== c ? 0 : -1 }, execCommand: function(a, b) { var c = e(this).table; "interlacetable" == a ? (c.setAttribute("interlaced", "enabled"), this.fireEvent("interlacetable", c, b)) : (c.setAttribute("interlaced", "disabled"), this.fireEvent("uninterlacetable", c)) } }, UE.commands.setbordervisible = { queryCommandState: function(a) { var b = e(this).table; return b ? 0 : -1 }, execCommand: function() { var a = e(this).table; utils.each(domUtils.getElementsByTagName(a, "td"), function(a) { a.style.borderWidth = "1px", a.style.borderStyle = "solid" }) } } }(), UE.plugins.table = function() { function a(a) {} function b(a, b) { c(a, "width", !0), c(a, "height", !0) } function c(a, b, c) { a.style[b] && (c && a.setAttribute(b, parseInt(a.style[b], 10)), a.style[b] = "") } function d(a) { if ("TD" == a.tagName || "TH" == a.tagName) return a; var b; return (b = domUtils.findParentByTagName(a, "td", !0) || domUtils.findParentByTagName(a, "th", !0)) ? b : null } function e(a) { var b = new RegExp(domUtils.fillChar,"g"); if (a[browser.ie ? "innerText" : "textContent"].replace(/^\s*$/, "").replace(b, "").length > 0) return 0; for (var c in dtd.$isNotEmpty) if (a.getElementsByTagName(c).length) return 0; return 1 } function f(a) { return a.pageX || a.pageY ? { x: a.pageX, y: a.pageY } : { x: a.clientX + N.document.body.scrollLeft - N.document.body.clientLeft, y: a.clientY + N.document.body.scrollTop - N.document.body.clientTop } } function g(b) { if (!A()) try { var c, e = d(b.target || b.srcElement); if (R && (N.body.style.webkitUserSelect = "none", (Math.abs(V.x - b.clientX) > T || Math.abs(V.y - b.clientY) > T) && (t(), R = !1, U = 0, v(b))), ca && ha) return U = 0, N.body.style.webkitUserSelect = "none", N.selection.getNative()[browser.ie9below ? "empty" : "removeAllRanges"](), c = f(b), m(N, !0, ca, c, e), void ("h" == ca ? ga.style.left = k(ha, b) + "px" : "v" == ca && (ga.style.top = l(ha, b) + "px")); if (e) { if (N.fireEvent("excludetable", e) === !0) return; c = f(b); var g = n(e, c) , i = domUtils.findParentByTagName(e, "table", !0); if (j(i, e, b, !0)) { if (N.fireEvent("excludetable", i) === !0) return; N.body.style.cursor = "url(" + N.options.cursorpath + "h.png),pointer" } else if (j(i, e, b)) { if (N.fireEvent("excludetable", i) === !0) return; N.body.style.cursor = "url(" + N.options.cursorpath + "v.png),pointer" } else { N.body.style.cursor = "text"; /\d/.test(g) && (g = g.replace(/\d/, ""), e = Y(e).getPreviewCell(e, "v" == g)), m(N, !!e && !!g, e ? g : "", c, e) } } else h(!1, i, N) } catch (o) { a(o) } } function h(a, b, c) { if (a) i(b, c); else { if (fa) return; la = setTimeout(function() { !fa && ea && ea.parentNode && ea.parentNode.removeChild(ea) }, 2e3) } } function i(a, b) { function c(c, d) { clearTimeout(g), g = setTimeout(function() { b.fireEvent("tableClicked", a, d) }, 300) } function d(c) { clearTimeout(g); var d = Y(a) , e = a.rows[0].cells[0] , f = d.getLastCell() , h = d.getCellsRange(e, f); b.selection.getRange().setStart(e, 0).setCursor(!1, !0), d.setSelected(h) } var e = domUtils.getXY(a) , f = a.ownerDocument; if (ea && ea.parentNode) return ea; ea = f.createElement("div"), ea.contentEditable = !1, ea.innerHTML = "", ea.style.cssText = "width:15px;height:15px;background-image:url(" + b.options.UEDITOR_HOME_URL + "dialogs/table/dragicon.png);position: absolute;cursor:move;top:" + (e.y - 15) + "px;left:" + e.x + "px;", domUtils.unSelectable(ea), ea.onmouseover = function(a) { fa = !0 } , ea.onmouseout = function(a) { fa = !1 } , domUtils.on(ea, "click", function(a, b) { c(b, this) }), domUtils.on(ea, "dblclick", function(a, b) { d(b) }), domUtils.on(ea, "dragstart", function(a, b) { domUtils.preventDefault(b) }); var g; f.body.appendChild(ea) } function j(a, b, c, d) { var e = f(c) , g = n(b, e); if (d) { var h = a.getElementsByTagName("caption")[0] , i = h ? h.offsetHeight : 0; return "v1" == g && e.y - domUtils.getXY(a).y - i < 8 } return "h1" == g && e.x - domUtils.getXY(a).x < 8 } function k(a, b) { var c = Y(a); if (c) { var d = c.getSameEndPosCells(a, "x")[0] , e = c.getSameStartPosXCells(a)[0] , g = f(b).x , h = (d ? domUtils.getXY(d).x : domUtils.getXY(c.table).x) + 20 , i = e ? domUtils.getXY(e).x + e.offsetWidth - 20 : N.body.offsetWidth + 5 || parseInt(domUtils.getComputedStyle(N.body, "width"), 10); return h += Q, i -= Q, g < h ? h : g > i ? i : g } } function l(b, c) { try { var d = domUtils.getXY(b).y , e = f(c).y; return e < d ? d : e } catch (g) { a(g) } } function m(b, c, d, e, f) { try { b.body.style.cursor = "h" == d ? "col-resize" : "v" == d ? "row-resize" : "text", browser.ie && (!d || ia || Z(b) ? I(b) : (H(b, b.document), J(d, f))), da = c } catch (g) { a(g) } } function n(a, b) { var c = domUtils.getXY(a); return c ? c.x + a.offsetWidth - b.x < S ? "h" : b.x - c.x < S ? "h1" : c.y + a.offsetHeight - b.y < S ? "v" : b.y - c.y < S ? "v1" : "" : "" } function o(a, b) { if (!A()) if (V = { x: b.clientX, y: b.clientY }, 2 == b.button) { var c = Z(N) , d = !1; if (c) { var e = M(N, b); utils.each(c.selectedTds, function(a) { a === e && (d = !0) }), d ? (e = c.selectedTds[0], setTimeout(function() { N.selection.getRange().setStart(e, 0).setCursor(!1, !0) }, 0)) : (_(domUtils.getElementsByTagName(N.body, "th td")), c.clearSelected()) } } else q(b) } function p(a) { U = 0, a = a || N.window.event; var b = d(a.target || a.srcElement); if (b) { var c; if (c = n(b, f(a))) { if (I(N), "h1" == c) if (c = "h", j(domUtils.findParentByTagName(b, "table"), b, a)) N.execCommand("adaptbywindow"); else if (b = Y(b).getPreviewCell(b)) { var e = N.selection.getRange(); e.selectNodeContents(b).setCursor(!0, !0) } if ("h" == c) { var g = Y(b) , h = g.table , i = C(b, h, !0); i = s(i, "left"), g.width = g.offsetWidth; var k = [] , l = []; utils.each(i, function(a) { k.push(a.offsetWidth) }), utils.each(i, function(a) { a.removeAttribute("width") }), window.setTimeout(function() { var a = !0; utils.each(i, function(b, c) { var d = b.offsetWidth; return d > k[c] ? (a = !1, !1) : void l.push(d) }); var b = a ? l : k; utils.each(i, function(a, c) { a.width = b[c] - G() }) }, 0) } } } } function q(a) { if (_(domUtils.getElementsByTagName(N.body, "td th")), utils.each(N.document.getElementsByTagName("table"), function(a) { a.ueTable = null }), aa = M(N, a)) { var b = domUtils.findParentByTagName(aa, "table", !0); ut = Y(b), ut && ut.clearSelected(), da ? r(a) : (N.document.body.style.webkitUserSelect = "", ia = !0, N.addListener("mouseover", x)) } } function r(a) { browser.ie && (a = u(a)), t(), R = !0, O = setTimeout(function() { v(a) }, W) } function s(a, b) { for (var c = [], d = null, e = 0, f = a.length; e < f; e++) d = a[e][b], d && c.push(d); return c } function t() { O && clearTimeout(O), O = null } function u(a) { var b = ["pageX", "pageY", "clientX", "clientY", "srcElement", "target"] , c = {}; if (a) for (var d, e, f = 0; d = b[f]; f++) e = a[d], e && (c[d] = e); return c } function v(a) { if (R = !1, aa = a.target || a.srcElement) { var b = n(aa, f(a)); /\d/.test(b) && (b = b.replace(/\d/, ""), aa = Y(aa).getPreviewCell(aa, "v" == b)), I(N), H(N, N.document), N.fireEvent("saveScene"), J(b, aa), ia = !0, ca = b, ha = aa } } function w(a, b) { if (!A()) { if (t(), R = !1, da && (U = ++U % 3, V = { x: b.clientX, y: b.clientY }, P = setTimeout(function() { U > 0 && U-- }, W), 2 === U)) return U = 0, void p(b); if (2 != b.button) { var c = this , d = c.selection.getRange() , e = domUtils.findParentByTagName(d.startContainer, "table", !0) , f = domUtils.findParentByTagName(d.endContainer, "table", !0); if ((e || f) && (e === f ? (e = domUtils.findParentByTagName(d.startContainer, ["td", "th", "caption"], !0), f = domUtils.findParentByTagName(d.endContainer, ["td", "th", "caption"], !0), e !== f && c.selection.clearRange()) : c.selection.clearRange()), ia = !1, c.document.body.style.webkitUserSelect = "", ca && ha && (c.selection.getNative()[browser.ie9below ? "empty" : "removeAllRanges"](), U = 0, ga = c.document.getElementById("ue_tableDragLine"))) { var g = domUtils.getXY(ha) , h = domUtils.getXY(ga); switch (ca) { case "h": z(ha, h.x - g.x); break; case "v": B(ha, h.y - g.y - ha.offsetHeight) } return ca = "", ha = null, I(c), void c.fireEvent("saveScene") } if (aa) { var i = Y(aa) , j = i ? i.selectedTds[0] : null; if (j) d = new dom.Range(c.document), domUtils.isEmptyBlock(j) ? d.setStart(j, 0).setCursor(!1, !0) : d.selectNodeContents(j).shrinkBoundary().setCursor(!1, !0); else if (d = c.selection.getRange().shrinkBoundary(), !d.collapsed) { var e = domUtils.findParentByTagName(d.startContainer, ["td", "th"], !0) , f = domUtils.findParentByTagName(d.endContainer, ["td", "th"], !0); (e && !f || !e && f || e && f && e !== f) && d.setCursor(!1, !0) } aa = null, c.removeListener("mouseover", x) } else { var k = domUtils.findParentByTagName(b.target || b.srcElement, "td", !0); if (k || (k = domUtils.findParentByTagName(b.target || b.srcElement, "th", !0)), k && ("TD" == k.tagName || "TH" == k.tagName)) { if (c.fireEvent("excludetable", k) === !0) return; d = new dom.Range(c.document), d.setStart(k, 0).setCursor(!1, !0) } } c._selectionChange(250, b) } } } function x(a, b) { if (!A()) { var c = this , d = b.target || b.srcElement; if (ba = domUtils.findParentByTagName(d, "td", !0) || domUtils.findParentByTagName(d, "th", !0), aa && ba && ("TD" == aa.tagName && "TD" == ba.tagName || "TH" == aa.tagName && "TH" == ba.tagName) && domUtils.findParentByTagName(aa, "table") == domUtils.findParentByTagName(ba, "table")) { var e = Y(ba); if (aa != ba) { c.document.body.style.webkitUserSelect = "none", c.selection.getNative()[browser.ie9below ? "empty" : "removeAllRanges"](); var f = e.getCellsRange(aa, ba); e.setSelected(f) } else c.document.body.style.webkitUserSelect = "", e.clearSelected() } b.preventDefault ? b.preventDefault() : b.returnValue = !1 } } function y(a, b, c) { var d = parseInt(domUtils.getComputedStyle(a, "line-height"), 10) , e = c + b; b = e < d ? d : e, a.style.height && (a.style.height = ""), 1 == a.rowSpan ? a.setAttribute("height", b) : a.removeAttribute && a.removeAttribute("height") } function z(a, b) { var c = Y(a); if (c) { var d = c.table , e = C(a, d); if (d.style.width = "", d.removeAttribute("width"), b = D(b, a, e), a.nextSibling) { utils.each(e, function(a) { a.left.width = +a.left.width + b, a.right && (a.right.width = +a.right.width - b) }) } else utils.each(e, function(a) { a.left.width -= -b }) } } function A() { return "false" === N.body.contentEditable } function B(a, b) { if (!(Math.abs(b) < 10)) { var c = Y(a); if (c) for (var d, e = c.getSameEndPosCells(a, "y"), f = e[0] ? e[0].offsetHeight : 0, g = 0; d = e[g++]; ) y(d, b, f) } } function C(a, b, c) { if (b || (b = domUtils.findParentByTagName(a, "table")), !b) return null; for (var d = (domUtils.getNodeIndex(a), a), e = b.rows, f = 0; d; ) 1 === d.nodeType && (f += d.colSpan || 1), d = d.previousSibling; d = null; var g = []; return utils.each(e, function(a) { var b = a.cells , d = 0; utils.each(b, function(a) { return d += a.colSpan || 1, d === f ? (g.push({ left: a, right: a.nextSibling || null }), !1) : d > f ? (c && g.push({ left: a }), !1) : void 0 }) }), g } function D(a, b, c) { if (a -= G(), a < 0) return 0; a -= E(b); var d = a < 0 ? "left" : "right"; return a = Math.abs(a), utils.each(c, function(b) { var c = b[d]; c && (a = Math.min(a, E(c) - Q)) }), a = a < 0 ? 0 : a, "left" === d ? -a : a } function E(a) { var b = 0 , b = a.offsetWidth - G(); a.nextSibling || (b -= F(a)), b = b < 0 ? 0 : b; try { a.width = b } catch (c) {} return b } function F(a) { if (tab = domUtils.findParentByTagName(a, "table", !1), void 0 === tab.offsetVal) { var b = a.previousSibling; b ? tab.offsetVal = a.offsetWidth - b.offsetWidth === X.borderWidth ? X.borderWidth : 0 : tab.offsetVal = 0 } return tab.offsetVal } function G() { if (void 0 === X.tabcellSpace) { var a = N.document.createElement("table") , b = N.document.createElement("tbody") , c = N.document.createElement("tr") , d = N.document.createElement("td") , e = null; d.style.cssText = "border: 0;", d.width = 1, c.appendChild(d), c.appendChild(e = d.cloneNode(!1)), b.appendChild(c), a.appendChild(b), a.style.cssText = "visibility: hidden;", N.body.appendChild(a), X.paddingSpace = d.offsetWidth - 1; var f = a.offsetWidth; d.style.cssText = "", e.style.cssText = "", X.borderWidth = (a.offsetWidth - f) / 3, X.tabcellSpace = X.paddingSpace + X.borderWidth, N.body.removeChild(a) } return G = function() { return X.tabcellSpace } , X.tabcellSpace } function H(a, b) { ia || (ga = a.document.createElement("div"), domUtils.setAttributes(ga, { id: "ue_tableDragLine", unselectable: "on", contenteditable: !1, onresizestart: "return false", ondragstart: "return false", onselectstart: "return false", style: "background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)" }), a.body.appendChild(ga)) } function I(a) { if (!ia) for (var b; b = a.document.getElementById("ue_tableDragLine"); ) domUtils.remove(b) } function J(a, b) { if (b) { var c, d = domUtils.findParentByTagName(b, "table"), e = d.getElementsByTagName("caption"), f = d.offsetWidth, g = d.offsetHeight - (e.length > 0 ? e[0].offsetHeight : 0), h = domUtils.getXY(d), i = domUtils.getXY(b); switch (a) { case "h": c = "height:" + g + "px;top:" + (h.y + (e.length > 0 ? e[0].offsetHeight : 0)) + "px;left:" + (i.x + b.offsetWidth), ga.style.cssText = c + "px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)"; break; case "v": c = "width:" + f + "px;left:" + h.x + "px;top:" + (i.y + b.offsetHeight), ga.style.cssText = c + "px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)" } } } function K(a, b) { for (var c, d, e = domUtils.getElementsByTagName(a.body, "table"), f = 0; d = e[f++]; ) { var g = domUtils.getElementsByTagName(d, "td"); g[0] && (b ? (c = g[0].style.borderColor.replace(/\s/g, ""), /(#ffffff)|(rgb\(255,255,255\))/gi.test(c) && domUtils.addClass(d, "noBorderTable")) : domUtils.removeClasses(d, "noBorderTable")) } } function L(a, b, c) { var d = a.body; return d.offsetWidth - (b ? 2 * parseInt(domUtils.getComputedStyle(d, "margin-left"), 10) : 0) - 2 * c.tableBorder - (a.options.offsetWidth || 0) } function M(a, b) { var c = domUtils.findParentByTagName(b.target || b.srcElement, ["td", "th"], !0) , d = null; if (!c) return null; if (d = n(c, f(b)), !c) return null; if ("h1" === d && c.previousSibling) { var e = domUtils.getXY(c) , g = c.offsetWidth; Math.abs(e.x + g - b.clientX) > g / 3 && (c = c.previousSibling) } else if ("v1" === d && c.parentNode.previousSibling) { var e = domUtils.getXY(c) , h = c.offsetHeight; Math.abs(e.y + h - b.clientY) > h / 3 && (c = c.parentNode.previousSibling.firstChild) } return c && a.fireEvent("excludetable", c) !== !0 ? c : null } var N = this , O = null , P = null , Q = 5 , R = !1 , S = 5 , T = 10 , U = 0 , V = null , W = 360 , X = UE.UETable , Y = function(a) { return X.getUETable(a) } , Z = function(a) { return X.getUETableBySelected(a) } , $ = function(a, b) { return X.getDefaultValue(a, b) } , _ = function(a) { return X.removeSelectedClass(a) }; N.ready(function() { var a = this , b = a.selection.getText; a.selection.getText = function() { var c = Z(a); if (c) { var d = ""; return utils.each(c.selectedTds, function(a) { d += a[browser.ie ? "innerText" : "textContent"] }), d } return b.call(a.selection) } }); var aa = null , ba = null , ca = "" , da = !1 , ea = null , fa = !1 , ga = null , ha = null , ia = !1 , ja = !0; N.setOpt({ maxColNum: 20, maxRowNum: 100, defaultCols: 5, defaultRows: 5, tdvalign: "top", cursorpath: N.options.UEDITOR_HOME_URL + "themes/default/images/cursor_", tableDragable: !1, classList: ["ue-table-interlace-color-single", "ue-table-interlace-color-double"] }), N.getUETable = Y; var ka = { deletetable: 1, inserttable: 1, cellvalign: 1, insertcaption: 1, deletecaption: 1, inserttitle: 1, deletetitle: 1, mergeright: 1, mergedown: 1, mergecells: 1, insertrow: 1, insertrownext: 1, deleterow: 1, insertcol: 1, insertcolnext: 1, deletecol: 1, splittocells: 1, splittorows: 1, splittocols: 1, adaptbytext: 1, adaptbywindow: 1, adaptbycustomer: 1, insertparagraph: 1, insertparagraphbeforetable: 1, averagedistributecol: 1, averagedistributerow: 1 }; N.ready(function() { utils.cssRule("table", ".selectTdClass{background-color:#edf5fa !important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}table{margin-bottom:10px;border-collapse:collapse;display:table;}td,th{padding: 5px 10px;border: 1px solid #DDD;}caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}th{border-top:1px solid #BBB;background-color:#F7F7F7;}table tr.firstRow th{border-top-width:2px;}.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }td p{margin:0;padding:0;}", N.document); var a, c, f; N.addListener("keydown", function(b, d) { var g = this , h = d.keyCode || d.which; if (8 == h) { var i = Z(g); i && i.selectedTds.length && (i.isFullCol() ? g.execCommand("deletecol") : i.isFullRow() ? g.execCommand("deleterow") : g.fireEvent("delcells"), domUtils.preventDefault(d)); var j = domUtils.findParentByTagName(g.selection.getStart(), "caption", !0) , k = g.selection.getRange(); if (k.collapsed && j && e(j)) { g.fireEvent("saveScene"); var l = j.parentNode; domUtils.remove(j), l && k.setStart(l.rows[0].cells[0], 0).setCursor(!1, !0), g.fireEvent("saveScene") } } if (46 == h && (i = Z(g))) { g.fireEvent("saveScene"); for (var m, n = 0; m = i.selectedTds[n++]; ) domUtils.fillNode(g.document, m); g.fireEvent("saveScene"), domUtils.preventDefault(d) } if (13 == h) { var o = g.selection.getRange() , j = domUtils.findParentByTagName(o.startContainer, "caption", !0); if (j) { var l = domUtils.findParentByTagName(j, "table"); return o.collapsed ? j && o.setStart(l.rows[0].cells[0], 0).setCursor(!1, !0) : (o.deleteContents(), g.fireEvent("saveScene")), void domUtils.preventDefault(d) } if (o.collapsed) { var l = domUtils.findParentByTagName(o.startContainer, "table"); if (l) { var p = l.rows[0].cells[0] , q = domUtils.findParentByTagName(g.selection.getStart(), ["td", "th"], !0) , r = l.previousSibling; if (p === q && (!r || 1 == r.nodeType && "TABLE" == r.tagName) && domUtils.isStartInblock(o)) { var s = domUtils.findParent(g.selection.getStart(), function(a) { return domUtils.isBlockElm(a) }, !0); s && (/t(h|d)/i.test(s.tagName) || s === q.firstChild) && (g.execCommand("insertparagraphbeforetable"), domUtils.preventDefault(d)) } } } } if ((d.ctrlKey || d.metaKey) && "67" == d.keyCode) { a = null; var i = Z(g); if (i) { var t = i.selectedTds; c = i.isFullCol(), f = i.isFullRow(), a = [[i.cloneCell(t[0], null, !0)]]; for (var m, n = 1; m = t[n]; n++) m.parentNode !== t[n - 1].parentNode ? a.push([i.cloneCell(m, null, !0)]) : a[a.length - 1].push(i.cloneCell(m, null, !0)) } } }), N.addListener("tablehasdeleted", function() { m(this, !1, "", null), ea && domUtils.remove(ea) }), N.addListener("beforepaste", function(d, g) { var h = this , i = h.selection.getRange(); if (domUtils.findParentByTagName(i.startContainer, "caption", !0)) { var j = h.document.createElement("div"); return j.innerHTML = g.html, void (g.html = j[browser.ie9below ? "innerText" : "textContent"]) } var k = Z(h); if (a) { h.fireEvent("saveScene"); var l, m, i = h.selection.getRange(), n = domUtils.findParentByTagName(i.startContainer, ["td", "th"], !0); if (n) { var o = Y(n); if (f) { var p = o.getCellInfo(n).rowIndex; "TH" == n.tagName && p++; for (var q, r = 0; q = a[r++]; ) { for (var s, t = o.insertRow(p++, "td"), u = 0; s = q[u]; u++) { var v = t.cells[u]; v || (v = t.insertCell(u)), v.innerHTML = s.innerHTML, s.getAttribute("width") && v.setAttribute("width", s.getAttribute("width")), s.getAttribute("vAlign") && v.setAttribute("vAlign", s.getAttribute("vAlign")), s.getAttribute("align") && v.setAttribute("align", s.getAttribute("align")), s.style.cssText && (v.style.cssText = s.style.cssText) } for (var s, u = 0; (s = t.cells[u]) && q[u]; u++) s.innerHTML = q[u].innerHTML, q[u].getAttribute("width") && s.setAttribute("width", q[u].getAttribute("width")), q[u].getAttribute("vAlign") && s.setAttribute("vAlign", q[u].getAttribute("vAlign")), q[u].getAttribute("align") && s.setAttribute("align", q[u].getAttribute("align")), q[u].style.cssText && (s.style.cssText = q[u].style.cssText) } } else { if (c) { y = o.getCellInfo(n); for (var s, w = 0, u = 0, q = a[0]; s = q[u++]; ) w += s.colSpan || 1; for (h.__hasEnterExecCommand = !0, r = 0; r < w; r++) h.execCommand("insertcol"); h.__hasEnterExecCommand = !1, n = o.table.rows[0].cells[y.cellIndex], "TH" == n.tagName && (n = o.table.rows[1].cells[y.cellIndex]) } for (var q, r = 0; q = a[r++]; ) { l = n; for (var s, u = 0; s = q[u++]; ) if (n) n.innerHTML = s.innerHTML, s.getAttribute("width") && n.setAttribute("width", s.getAttribute("width")), s.getAttribute("vAlign") && n.setAttribute("vAlign", s.getAttribute("vAlign")), s.getAttribute("align") && n.setAttribute("align", s.getAttribute("align")), s.style.cssText && (n.style.cssText = s.style.cssText), m = n, n = n.nextSibling; else { var x = s.cloneNode(!0); domUtils.removeAttributes(x, ["class", "rowSpan", "colSpan"]), m.parentNode.appendChild(x) } if (n = o.getNextCell(l, !0, !0), !a[r]) break; if (!n) { var y = o.getCellInfo(l); o.table.insertRow(o.table.rows.length), o.update(), n = o.getVSideCell(l, !0) } } } o.update() } else { k = h.document.createElement("table"); for (var q, r = 0; q = a[r++]; ) { for (var s, t = k.insertRow(k.rows.length), u = 0; s = q[u++]; ) x = X.cloneCell(s, null, !0), domUtils.removeAttributes(x, ["class"]), t.appendChild(x); 2 == u && x.rowSpan > 1 && (x.rowSpan = 1) } var z = $(h) , A = h.body.offsetWidth - (ja ? 2 * parseInt(domUtils.getComputedStyle(h.body, "margin-left"), 10) : 0) - 2 * z.tableBorder - (h.options.offsetWidth || 0); h.execCommand("insertHTML", "" + k.innerHTML.replace(/>\s*<").replace(/\bth\b/gi, "td") + "
") } return h.fireEvent("contentchange"), h.fireEvent("saveScene"), g.html = "", !0 } var B, j = h.document.createElement("div"); j.innerHTML = g.html, B = j.getElementsByTagName("table"), domUtils.findParentByTagName(h.selection.getStart(), "table") ? (utils.each(B, function(a) { domUtils.remove(a) }), domUtils.findParentByTagName(h.selection.getStart(), "caption", !0) && (j.innerHTML = j[browser.ie ? "innerText" : "textContent"])) : utils.each(B, function(a) { b(a, !0), domUtils.removeAttributes(a, ["style", "border"]), utils.each(domUtils.getElementsByTagName(a, "td"), function(a) { e(a) && domUtils.fillNode(h.document, a), b(a, !0) }) }), g.html = j.innerHTML }), N.addListener("afterpaste", function() { utils.each(domUtils.getElementsByTagName(N.body, "table"), function(a) { if (a.offsetWidth > N.body.offsetWidth) { var b = $(N, a); a.style.width = N.body.offsetWidth - (ja ? 2 * parseInt(domUtils.getComputedStyle(N.body, "margin-left"), 10) : 0) - 2 * b.tableBorder - (N.options.offsetWidth || 0) + "px" } }) }), N.addListener("blur", function() { a = null }); var i; N.addListener("keydown", function() { clearTimeout(i), i = setTimeout(function() { var a = N.selection.getRange() , b = domUtils.findParentByTagName(a.startContainer, ["th", "td"], !0); if (b) { var c = b.parentNode.parentNode.parentNode; c.offsetWidth > c.getAttribute("width") && (b.style.wordBreak = "break-all") } }, 100) }), N.addListener("selectionchange", function() { m(N, !1, "", null) }), N.addListener("contentchange", function() { var a = this; if (I(a), !Z(a)) { var b = a.selection.getRange() , c = b.startContainer; c = domUtils.findParentByTagName(c, ["td", "th"], !0), utils.each(domUtils.getElementsByTagName(a.document, "table"), function(b) { a.fireEvent("excludetable", b) !== !0 && (b.ueTable = new X(b), b.onmouseover = function() { a.fireEvent("tablemouseover", b) } , b.onmousemove = function() { a.fireEvent("tablemousemove", b), a.options.tableDragable && h(!0, this, a), utils.defer(function() { a.fireEvent("contentchange", 50) }, !0) } , b.onmouseout = function() { a.fireEvent("tablemouseout", b), m(a, !1, "", null), I(a) } , b.onclick = function(b) { b = a.window.event || b; var c = d(b.target || b.srcElement); if (c) { var e, f = Y(c), g = f.table, h = f.getCellInfo(c), i = a.selection.getRange(); if (j(g, c, b, !0)) { var k = f.getCell(f.indexTable[f.rowsNum - 1][h.colIndex].rowIndex, f.indexTable[f.rowsNum - 1][h.colIndex].cellIndex); return void (b.shiftKey && f.selectedTds.length ? f.selectedTds[0] !== k ? (e = f.getCellsRange(f.selectedTds[0], k), f.setSelected(e)) : i && i.selectNodeContents(k).select() : c !== k ? (e = f.getCellsRange(c, k), f.setSelected(e)) : i && i.selectNodeContents(k).select()) } if (j(g, c, b)) { var l = f.getCell(f.indexTable[h.rowIndex][f.colsNum - 1].rowIndex, f.indexTable[h.rowIndex][f.colsNum - 1].cellIndex); b.shiftKey && f.selectedTds.length ? f.selectedTds[0] !== l ? (e = f.getCellsRange(f.selectedTds[0], l), f.setSelected(e)) : i && i.selectNodeContents(l).select() : c !== l ? (e = f.getCellsRange(c, l), f.setSelected(e)) : i && i.selectNodeContents(l).select() } } } ) }), K(a, !0) } }), domUtils.on(N.document, "mousemove", g), domUtils.on(N.document, "mouseout", function(a) { var b = a.target || a.srcElement; "TABLE" == b.tagName && m(N, !1, "", null) }), N.addListener("interlacetable", function(a, b, c) { if (b) for (var d = this, e = b.rows, f = e.length, g = function(a, b, c) { return a[b] ? a[b] : c ? a[b % a.length] : "" }, h = 0; h < f; h++) e[h].className = g(c || d.options.classList, h, !0) }), N.addListener("uninterlacetable", function(a, b) { if (b) for (var c = this, d = b.rows, e = c.options.classList, f = d.length, g = 0; g < f; g++) domUtils.removeClasses(d[g], e) }), N.addListener("mousedown", o), UE.browser.isMobile ? N.addListener("touchend", w) : N.addListener("mouseup", w), domUtils.on(N.body, "dragstart", function(a) { w.call(N, "dragstart", a) }), N.addOutputRule(function(a) { utils.each(a.getNodesByTagName("div"), function(a) { "ue_tableDragLine" == a.getAttr("id") && a.parentNode.removeChild(a) }) }); var k = 0; N.addListener("mousedown", function() { k = 0 }), N.addListener("tabkeydown", function() { var a = this.selection.getRange() , b = a.getCommonAncestor(!0, !0) , c = domUtils.findParentByTagName(b, "table"); if (c) { if (domUtils.findParentByTagName(b, "caption", !0)) { var d = domUtils.getElementsByTagName(c, "th td"); d && d.length && a.setStart(d[0], 0).setCursor(!1, !0) } else { var d = domUtils.findParentByTagName(b, ["td", "th"], !0) , f = Y(d); k = d.rowSpan > 1 ? k : f.getCellInfo(d).rowIndex; var g = f.getTabNextCell(d, k); g ? e(g) ? a.setStart(g, 0).setCursor(!1, !0) : a.selectNodeContents(g).select() : (N.fireEvent("saveScene"), N.__hasEnterExecCommand = !0, this.execCommand("insertrownext"), N.__hasEnterExecCommand = !1, a = this.selection.getRange(), a.setStart(c.rows[c.rows.length - 1].cells[0], 0).setCursor(), N.fireEvent("saveScene")) } return !0 } }), browser.ie && N.addListener("selectionchange", function() { m(this, !1, "", null) }), N.addListener("keydown", function(a, b) { var c = this , d = b.keyCode || b.which; if (8 != d && 46 != d) { var e = !(b.ctrlKey || b.metaKey || b.shiftKey || b.altKey); e && _(domUtils.getElementsByTagName(c.body, "td")); var f = Z(c); f && e && f.clearSelected() } }), N.addListener("beforegetcontent", function() { K(this, !1), browser.ie && utils.each(this.document.getElementsByTagName("caption"), function(a) { domUtils.isEmptyNode(a) && (a.innerHTML = " ") }) }), N.addListener("aftergetcontent", function() { K(this, !0) }), N.addListener("getAllHtml", function() { _(N.document.getElementsByTagName("td")) }), N.addListener("fullscreenchanged", function(a, b) { if (!b) { var c = this.body.offsetWidth / document.body.offsetWidth , d = domUtils.getElementsByTagName(this.body, "table"); utils.each(d, function(a) { if (a.offsetWidth < N.body.offsetWidth) return !1; var b = domUtils.getElementsByTagName(a, "td") , d = []; utils.each(b, function(a) { d.push(a.offsetWidth) }); for (var e, f = 0; e = b[f]; f++) e.setAttribute("width", Math.floor(d[f] * c)); a.setAttribute("width", Math.floor(L(N, ja, $(N)))) }) } }); var l = N.execCommand; N.execCommand = function(a, b) { var c = this; a = a.toLowerCase(); var d, f, g = Z(c), h = new dom.Range(c.document), i = c.commands[a] || UE.commands[a]; if (i) { if (!g || ka[a] || i.notNeedUndo || c.__hasEnterExecCommand) f = l.apply(c, arguments); else { c.__hasEnterExecCommand = !0, c.fireEvent("beforeexeccommand", a), d = g.selectedTds; for (var j, k, m, n = -2, o = -2, p = 0; m = d[p]; p++) e(m) ? h.setStart(m, 0).setCursor(!1, !0) : h.selectNode(m).select(!0), k = c.queryCommandState(a), j = c.queryCommandValue(a), k != -1 && (n === k && o === j || (c._ignoreContentChange = !0, f = l.apply(c, arguments), c._ignoreContentChange = !1), n = c.queryCommandState(a), o = c.queryCommandValue(a), domUtils.isEmptyBlock(m) && domUtils.fillNode(c.document, m)); h.setStart(d[0], 0).shrinkBoundary(!0).setCursor(!1, !0), c.fireEvent("contentchange"), c.fireEvent("afterexeccommand", a), c.__hasEnterExecCommand = !1, c._selectionChange() } return f } } }); var la } , UE.UETable.prototype.sortTable = function(a, b) { var c = this.table , d = c.rows , e = [] , f = "TH" === d[0].cells[0].tagName , g = 0; if (this.selectedTds.length) { for (var h = this.cellsRange, i = h.endRowIndex + 1, j = h.beginRowIndex; j < i; j++) e[j] = d[j]; e.splice(0, h.beginRowIndex), g = h.endRowIndex + 1 === this.rowsNum ? 0 : h.endRowIndex + 1 } else for (var j = 0, i = d.length; j < i; j++) e[j] = d[j]; var k = { reversecurrent: function(a, b) { return 1 }, orderbyasc: function(a, b) { var c = a.innerText || a.textContent , d = b.innerText || b.textContent; return c.localeCompare(d) }, reversebyasc: function(a, b) { var c = a.innerHTML , d = b.innerHTML; return d.localeCompare(c) }, orderbynum: function(a, b) { var c = a[browser.ie ? "innerText" : "textContent"].match(/\d+/) , d = b[browser.ie ? "innerText" : "textContent"].match(/\d+/); return c && (c = +c[0]), d && (d = +d[0]), (c || 0) - (d || 0) }, reversebynum: function(a, b) { var c = a[browser.ie ? "innerText" : "textContent"].match(/\d+/) , d = b[browser.ie ? "innerText" : "textContent"].match(/\d+/); return c && (c = +c[0]), d && (d = +d[0]), (d || 0) - (c || 0) } }; c.setAttribute("data-sort-type", b && "string" == typeof b && k[b] ? b : ""), f && e.splice(0, 1), e = utils.sort(e, function(c, d) { var e; return e = b && "function" == typeof b ? b.call(this, c.cells[a], d.cells[a]) : b && "number" == typeof b ? 1 : b && "string" == typeof b && k[b] ? k[b].call(this, c.cells[a], d.cells[a]) : k.orderbyasc.call(this, c.cells[a], d.cells[a]) }); for (var l = c.ownerDocument.createDocumentFragment(), m = 0, i = e.length; m < i; m++) l.appendChild(e[m]); var n = c.getElementsByTagName("tbody")[0]; g ? n.insertBefore(l, d[g - h.endRowIndex + h.beginRowIndex - 1]) : n.appendChild(l) } , UE.plugins.tablesort = function() { var a = this , b = UE.UETable , c = function(a) { return b.getUETable(a) } , d = function(a) { return b.getTableItemsByRange(a) }; a.ready(function() { utils.cssRule("tablesort", "table.sortEnabled tr.firstRow th,table.sortEnabled tr.firstRow td{padding-right:20px;background-repeat: no-repeat;background-position: center right; background-image:url(" + a.options.themePath + a.options.theme + "/images/sortable.png);}", a.document), a.addListener("afterexeccommand", function(a, b) { "mergeright" != b && "mergedown" != b && "mergecells" != b || this.execCommand("disablesort") }) }), UE.commands.sorttable = { queryCommandState: function() { var a = this , b = d(a); if (!b.cell) return -1; for (var c, e = b.table, f = e.getElementsByTagName("td"), g = 0; c = f[g++]; ) if (1 != c.rowSpan || 1 != c.colSpan) return -1; return 0 }, execCommand: function(a, b) { var e = this , f = e.selection.getRange() , g = f.createBookmark(!0) , h = d(e) , i = h.cell , j = c(h.table) , k = j.getCellInfo(i); j.sortTable(k.cellIndex, b), f.moveToBookmark(g); try { f.select() } catch (l) {} } }, UE.commands.enablesort = UE.commands.disablesort = { queryCommandState: function(a) { var b = d(this).table; if (b && "enablesort" == a) for (var c = domUtils.getElementsByTagName(b, "th td"), e = 0; e < c.length; e++) if (c[e].getAttribute("colspan") > 1 || c[e].getAttribute("rowspan") > 1) return -1; return b ? "enablesort" == a ^ "sortEnabled" != b.getAttribute("data-sort") ? -1 : 0 : -1 }, execCommand: function(a) { var b = d(this).table; b.setAttribute("data-sort", "enablesort" == a ? "sortEnabled" : "sortDisabled"), "enablesort" == a ? domUtils.addClass(b, "sortEnabled") : domUtils.removeClasses(b, "sortEnabled") } } } , UE.plugins.contextmenu = function() { var a = this; if (a.setOpt("enableContextMenu", !0), a.getOpt("enableContextMenu") !== !1) { var b, c = a.getLang("contextMenu"), d = a.options.contextMenu || [{ label: c.selectall, cmdName: "selectall" }, { label: c.cleardoc, cmdName: "cleardoc", exec: function() { confirm(c.confirmclear) && this.execCommand("cleardoc") } }, "-", { label: c.unlink, cmdName: "unlink" }, "-", { group: c.paragraph, icon: "justifyjustify", subMenu: [{ label: c.justifyleft, cmdName: "justify", value: "left" }, { label: c.justifyright, cmdName: "justify", value: "right" }, { label: c.justifycenter, cmdName: "justify", value: "center" }, { label: c.justifyjustify, cmdName: "justify", value: "justify" }] }, "-", { group: c.table, icon: "table", subMenu: [{ label: c.inserttable, cmdName: "inserttable" }, { label: c.deletetable, cmdName: "deletetable" }, "-", { label: c.deleterow, cmdName: "deleterow" }, { label: c.deletecol, cmdName: "deletecol" }, { label: c.insertcol, cmdName: "insertcol" }, { label: c.insertcolnext, cmdName: "insertcolnext" }, { label: c.insertrow, cmdName: "insertrow" }, { label: c.insertrownext, cmdName: "insertrownext" }, "-", { label: c.insertcaption, cmdName: "insertcaption" }, { label: c.deletecaption, cmdName: "deletecaption" }, { label: c.inserttitle, cmdName: "inserttitle" }, { label: c.deletetitle, cmdName: "deletetitle" }, { label: c.inserttitlecol, cmdName: "inserttitlecol" }, { label: c.deletetitlecol, cmdName: "deletetitlecol" }, "-", { label: c.mergecells, cmdName: "mergecells" }, { label: c.mergeright, cmdName: "mergeright" }, { label: c.mergedown, cmdName: "mergedown" }, "-", { label: c.splittorows, cmdName: "splittorows" }, { label: c.splittocols, cmdName: "splittocols" }, { label: c.splittocells, cmdName: "splittocells" }, "-", { label: c.averageDiseRow, cmdName: "averagedistributerow" }, { label: c.averageDisCol, cmdName: "averagedistributecol" }, "-", { label: c.edittd, cmdName: "edittd", exec: function() { UE.ui.edittd && new UE.ui.edittd(this), this.getDialog("edittd").open() } }, { label: c.edittable, cmdName: "edittable", exec: function() { UE.ui.edittable && new UE.ui.edittable(this), this.getDialog("edittable").open() } }, { label: c.setbordervisible, cmdName: "setbordervisible" }] }, { group: c.tablesort, icon: "tablesort", subMenu: [{ label: c.enablesort, cmdName: "enablesort" }, { label: c.disablesort, cmdName: "disablesort" }, "-", { label: c.reversecurrent, cmdName: "sorttable", value: "reversecurrent" }, { label: c.orderbyasc, cmdName: "sorttable", value: "orderbyasc" }, { label: c.reversebyasc, cmdName: "sorttable", value: "reversebyasc" }, { label: c.orderbynum, cmdName: "sorttable", value: "orderbynum" }, { label: c.reversebynum, cmdName: "sorttable", value: "reversebynum" }] }, { group: c.borderbk, icon: "borderBack", subMenu: [{ label: c.setcolor, cmdName: "interlacetable", exec: function() { this.execCommand("interlacetable") } }, { label: c.unsetcolor, cmdName: "uninterlacetable", exec: function() { this.execCommand("uninterlacetable") } }, { label: c.setbackground, cmdName: "settablebackground", exec: function() { this.execCommand("settablebackground", { repeat: !0, colorList: ["#bbb", "#ccc"] }) } }, { label: c.unsetbackground, cmdName: "cleartablebackground", exec: function() { this.execCommand("cleartablebackground") } }, { label: c.redandblue, cmdName: "settablebackground", exec: function() { this.execCommand("settablebackground", { repeat: !0, colorList: ["red", "blue"] }) } }, { label: c.threecolorgradient, cmdName: "settablebackground", exec: function() { this.execCommand("settablebackground", { repeat: !0, colorList: ["#aaa", "#bbb", "#ccc"] }) } }] }, { group: c.aligntd, icon: "aligntd", subMenu: [{ cmdName: "cellalignment", value: { align: "left", vAlign: "top" } }, { cmdName: "cellalignment", value: { align: "center", vAlign: "top" } }, { cmdName: "cellalignment", value: { align: "right", vAlign: "top" } }, { cmdName: "cellalignment", value: { align: "left", vAlign: "middle" } }, { cmdName: "cellalignment", value: { align: "center", vAlign: "middle" } }, { cmdName: "cellalignment", value: { align: "right", vAlign: "middle" } }, { cmdName: "cellalignment", value: { align: "left", vAlign: "bottom" } }, { cmdName: "cellalignment", value: { align: "center", vAlign: "bottom" } }, { cmdName: "cellalignment", value: { align: "right", vAlign: "bottom" } }] }, { group: c.aligntable, icon: "aligntable", subMenu: [{ cmdName: "tablealignment", className: "left", label: c.tableleft, value: "left" }, { cmdName: "tablealignment", className: "center", label: c.tablecenter, value: "center" }, { cmdName: "tablealignment", className: "right", label: c.tableright, value: "right" }] }, "-", { label: c.insertparagraphbefore, cmdName: "insertparagraph", value: !0 }, { label: c.insertparagraphafter, cmdName: "insertparagraph" }, { label: c.copy, cmdName: "copy" }, { label: c.paste, cmdName: "paste" }]; if (d.length) { var e = UE.ui.uiUtils; a.addListener("contextmenu", function(f, g) { var h = e.getViewportOffsetByEvent(g); a.fireEvent("beforeselectionchange"), b && b.destroy(); for (var i, j = 0, k = []; i = d[j]; j++) { var l; !function(b) { function d() { switch (b.icon) { case "table": return a.getLang("contextMenu.table"); case "justifyjustify": return a.getLang("contextMenu.paragraph"); case "aligntd": return a.getLang("contextMenu.aligntd"); case "aligntable": return a.getLang("contextMenu.aligntable"); case "tablesort": return c.tablesort; case "borderBack": return c.borderbk; default: return "" } } if ("-" == b) (l = k[k.length - 1]) && "-" !== l && k.push("-"); else if (b.hasOwnProperty("group")) { for (var e, f = 0, g = []; e = b.subMenu[f]; f++) !function(b) { "-" == b ? (l = g[g.length - 1]) && "-" !== l ? g.push("-") : g.splice(g.length - 1) : (a.commands[b.cmdName] || UE.commands[b.cmdName] || b.query) && (b.query ? b.query() : a.queryCommandState(b.cmdName)) > -1 && g.push({ label: b.label || a.getLang("contextMenu." + b.cmdName + (b.value || "")) || "", className: "edui-for-" + b.cmdName + (b.className ? " edui-for-" + b.cmdName + "-" + b.className : ""), onclick: b.exec ? function() { b.exec.call(a) } : function() { a.execCommand(b.cmdName, b.value) } }) }(e); g.length && k.push({ label: d(), className: "edui-for-" + b.icon, subMenu: { items: g, editor: a } }) } else (a.commands[b.cmdName] || UE.commands[b.cmdName] || b.query) && (b.query ? b.query.call(a) : a.queryCommandState(b.cmdName)) > -1 && k.push({ label: b.label || a.getLang("contextMenu." + b.cmdName), className: "edui-for-" + (b.icon ? b.icon : b.cmdName + (b.value || "")), onclick: b.exec ? function() { b.exec.call(a) } : function() { a.execCommand(b.cmdName, b.value) } }) }(i) } if ("-" == k[k.length - 1] && k.pop(), b = new UE.ui.Menu({ items: k, className: "edui-contextmenu", editor: a }), b.render(), b.showAt(h), a.fireEvent("aftershowcontextmenu", b), domUtils.preventDefault(g), browser.ie) { var m; try { m = a.selection.getNative().createRange() } catch (n) { return } if (m.item) { var o = new dom.Range(a.document); o.selectNode(m.item(0)).select(!0, !0) } } }) } } } , UE.plugins.shortcutmenu = function() { var a, b = this, c = b.options.shortcutMenu || []; c.length && (b.addListener("contextmenu mouseup", function(b, d) { var e = this , f = { type: b, target: d.target || d.srcElement, screenX: d.screenX, screenY: d.screenY, clientX: d.clientX, clientY: d.clientY }; if (setTimeout(function() { var d = e.selection.getRange(); d.collapsed !== !1 && "contextmenu" != b || (a || (a = new baidu.editor.ui.ShortCutMenu({ editor: e, items: c, theme: e.options.theme, className: "edui-shortcutmenu" }), a.render(), e.fireEvent("afterrendershortcutmenu", a)), a.show(f, !!UE.plugins.contextmenu)) }), "contextmenu" == b && (domUtils.preventDefault(d), browser.ie9below)) { var g; try { g = e.selection.getNative().createRange() } catch (d) { return } if (g.item) { var h = new dom.Range(e.document); h.selectNode(g.item(0)).select(!0, !0) } } }), b.addListener("keydown", function(b) { "keydown" == b && a && !a.isHidden && a.hide() })) } , UE.plugins.basestyle = function() { var a = { bold: ["strong", "b"], italic: ["em", "i"], subscript: ["sub"], superscript: ["sup"] } , b = function(a, b) { return domUtils.filterNodeList(a.selection.getStartElementPath(), b) } , c = this; c.addshortcutkey({ Bold: "ctrl+66", Italic: "ctrl+73", Underline: "ctrl+85" }), c.addInputRule(function(a) { utils.each(a.getNodesByTagName("b i"), function(a) { switch (a.tagName) { case "b": a.tagName = "strong"; break; case "i": a.tagName = "em" } }) }); for (var d in a) !function(a, d) { c.commands[a] = { execCommand: function(a) { var e = c.selection.getRange() , f = b(this, d); if (e.collapsed) { if (f) { var g = c.document.createTextNode(""); e.insertNode(g).removeInlineStyle(d), e.setStartBefore(g), domUtils.remove(g) } else { var h = e.document.createElement(d[0]); "superscript" != a && "subscript" != a || (g = c.document.createTextNode(""), e.insertNode(g).removeInlineStyle(["sub", "sup"]).setStartBefore(g).collapse(!0)), e.insertNode(h).setStart(h, 0) } e.collapse(!0) } else "superscript" != a && "subscript" != a || f && f.tagName.toLowerCase() == a || e.removeInlineStyle(["sub", "sup"]), f ? e.removeInlineStyle(d) : e.applyInlineStyle(d[0]); e.select() }, queryCommandState: function() { return b(this, d) ? 1 : 0 } } }(d, a[d]) } , UE.plugins.elementpath = function() { var a, b, c = this; c.setOpt("elementPathEnabled", !0), c.options.elementPathEnabled && (c.commands.elementpath = { execCommand: function(d, e) { var f = b[e] , g = c.selection.getRange(); a = 1 * e, g.selectNode(f).select() }, queryCommandValue: function() { var c = [].concat(this.selection.getStartElementPath()).reverse() , d = []; b = c; for (var e, f = 0; e = c[f]; f++) if (3 != e.nodeType) { var g = e.tagName.toLowerCase(); if ("img" == g && e.getAttribute("anchorname") && (g = "anchor"), d[f] = g, a == f) { a = -1; break } } return d } }) } , UE.plugins.formatmatch = function() { function a(f, g) { function h(a) { return m && a.selectNode(m), a.applyInlineStyle(d[d.length - 1].tagName, null, d) } if (browser.webkit) var i = "IMG" == g.target.tagName ? g.target : null; c.undoManger && c.undoManger.save(); var j = c.selection.getRange() , k = i || j.getClosedNode(); if (b && k && "IMG" == k.tagName) k.style.cssText += ";float:" + (b.style.cssFloat || b.style.styleFloat || "none") + ";display:" + (b.style.display || "inline"), b = null; else if (!b) { var l = j.collapsed; if (l) { var m = c.document.createTextNode("match"); j.insertNode(m).select() } c.__hasEnterExecCommand = !0; var n = c.options.removeFormatAttributes; c.options.removeFormatAttributes = "", c.execCommand("removeformat"), c.options.removeFormatAttributes = n, c.__hasEnterExecCommand = !1, j = c.selection.getRange(), d.length && h(j), m && j.setStartBefore(m).collapse(!0), j.select(), m && domUtils.remove(m) } c.undoManger && c.undoManger.save(), c.removeListener("mouseup", a), e = 0 } var b, c = this, d = [], e = 0; c.addListener("reset", function() { d = [], e = 0 }), c.commands.formatmatch = { execCommand: function(f) { if (e) return e = 0, d = [], void c.removeListener("mouseup", a); var g = c.selection.getRange(); if (b = g.getClosedNode(), !b || "IMG" != b.tagName) { g.collapse(!0).shrinkBoundary(); var h = g.startContainer; d = domUtils.findParents(h, !0, function(a) { return !domUtils.isBlockElm(a) && 1 == a.nodeType }); for (var i, j = 0; i = d[j]; j++) if ("A" == i.tagName) { d.splice(j, 1); break } } c.addListener("mouseup", a), e = 1 }, queryCommandState: function() { return e }, notNeedUndo: 1 } } , UE.plugin.register("searchreplace", function() { function a(a, b, c) { var d = b.searchStr; b.dir == -1 && (a = a.split("").reverse().join(""), d = d.split("").reverse().join(""), c = a.length - c); for (var e, f = new RegExp(d,"g" + (b.casesensitive ? "" : "i")); e = f.exec(a); ) if (e.index >= c) return b.dir == -1 ? a.length - e.index - b.searchStr.length : e.index; return -1 } function b(b, c, d) { var e, f, h = d.all || 1 == d.dir ? "getNextDomNode" : "getPreDomNode"; domUtils.isBody(b) && (b = b.firstChild); for (var i = 1; b; ) { if (e = 3 == b.nodeType ? b.nodeValue : b[browser.ie ? "innerText" : "textContent"], f = a(e, d, c), i = 0, f != -1) return { node: b, index: f }; for (b = domUtils[h](b); b && g[b.nodeName.toLowerCase()]; ) b = domUtils[h](b, !0); b && (c = d.dir == -1 ? (3 == b.nodeType ? b.nodeValue : b[browser.ie ? "innerText" : "textContent"]).length : 0) } } function c(a, b, d) { for (var e, f = 0, g = a.firstChild, h = 0; g; ) { if (3 == g.nodeType) { if (h = g.nodeValue.replace(/(^[\t\r\n]+)|([\t\r\n]+$)/, "").length, f += h, f >= b) return { node: g, index: h - (f - b) } } else if (!dtd.$empty[g.tagName] && (h = g[browser.ie ? "innerText" : "textContent"].replace(/(^[\t\r\n]+)|([\t\r\n]+$)/, "").length, f += h, f >= b && (e = c(g, h - (f - b), d)))) return e; g = domUtils.getNextDomNode(g) } } function d(a, d) { var f, g = a.selection.getRange(), h = d.searchStr, i = a.document.createElement("span"); if (i.innerHTML = "$$ueditor_searchreplace_key$$", g.shrinkBoundary(!0), !g.collapsed) { g.select(); var j = a.selection.getText(); if (new RegExp("^" + d.searchStr + "$",d.casesensitive ? "" : "i").test(j)) { if (void 0 != d.replaceStr) return e(g, d.replaceStr), g.select(), !0; g.collapse(d.dir == -1) } } g.insertNode(i), g.enlargeToBlockElm(!0), f = g.startContainer; var k = f[browser.ie ? "innerText" : "textContent"].indexOf("$$ueditor_searchreplace_key$$"); g.setStartBefore(i), domUtils.remove(i); var l = b(f, k, d); if (l) { var m = c(l.node, l.index, h) , n = c(l.node, l.index + h.length, h); return g.setStart(m.node, m.index).setEnd(n.node, n.index), void 0 !== d.replaceStr && e(g, d.replaceStr), g.select(), !0 } g.setCursor() } function e(a, b) { b = f.document.createTextNode(b), a.deleteContents().insertNode(b) } var f = this , g = { table: 1, tbody: 1, tr: 1, ol: 1, ul: 1 }; return { commands: { searchreplace: { execCommand: function(a, b) { utils.extend(b, { all: !1, casesensitive: !1, dir: 1 }, !0); var c = 0; if (b.all) { var e = f.selection.getRange() , g = f.body.firstChild; for (g && 1 == g.nodeType ? (e.setStart(g, 0), e.shrinkBoundary(!0)) : 3 == g.nodeType && e.setStartBefore(g), e.collapse(!0).select(!0), void 0 !== b.replaceStr && f.fireEvent("saveScene"); d(this, b); ) c++; c && f.fireEvent("saveScene") } else void 0 !== b.replaceStr && f.fireEvent("saveScene"), d(this, b) && c++, c && f.fireEvent("saveScene"); return c }, notNeedUndo: 1 } } } }), UE.plugins.customstyle = function() { var a = this; a.setOpt({ customstyle: [{ tag: "h1", name: "tc", style: "font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;" }, { tag: "h1", name: "tl", style: "font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;" }, { tag: "span", name: "im", style: "font-size:16px;font-style:italic;font-weight:bold;line-height:18px;" }, { tag: "span", name: "hi", style: "font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;" }] }), a.commands.customstyle = { execCommand: function(a, b) { var c, d, e = this, f = b.tag, g = domUtils.findParent(e.selection.getStart(), function(a) { return a.getAttribute("label") }, !0), h = {}; for (var i in b) void 0 !== b[i] && (h[i] = b[i]); if (delete h.tag, g && g.getAttribute("label") == b.label) { if (c = this.selection.getRange(), d = c.createBookmark(), c.collapsed) if (dtd.$block[g.tagName]) { var j = e.document.createElement("p"); domUtils.moveChild(g, j), g.parentNode.insertBefore(j, g), domUtils.remove(g) } else domUtils.remove(g, !0); else { var k = domUtils.getCommonAncestor(d.start, d.end) , l = domUtils.getElementsByTagName(k, f); new RegExp(f,"i").test(k.tagName) && l.push(k); for (var m, n = 0; m = l[n++]; ) if (m.getAttribute("label") == b.label) { var o = domUtils.getPosition(m, d.start) , p = domUtils.getPosition(m, d.end); if ((o & domUtils.POSITION_FOLLOWING || o & domUtils.POSITION_CONTAINS) && (p & domUtils.POSITION_PRECEDING || p & domUtils.POSITION_CONTAINS) && dtd.$block[f]) { var j = e.document.createElement("p"); domUtils.moveChild(m, j), m.parentNode.insertBefore(j, m) } domUtils.remove(m, !0) } g = domUtils.findParent(k, function(a) { return a.getAttribute("label") == b.label }, !0), g && domUtils.remove(g, !0) } c.moveToBookmark(d).select() } else if (dtd.$block[f]) { if (this.execCommand("paragraph", f, h, "customstyle"), c = e.selection.getRange(), !c.collapsed) { c.collapse(), g = domUtils.findParent(e.selection.getStart(), function(a) { return a.getAttribute("label") == b.label }, !0); var q = e.document.createElement("p"); domUtils.insertAfter(g, q), domUtils.fillNode(e.document, q), c.setStart(q, 0).setCursor() } } else { if (c = e.selection.getRange(), c.collapsed) return g = e.document.createElement(f), domUtils.setAttributes(g, h), void c.insertNode(g).setStart(g, 0).setCursor(); d = c.createBookmark(), c.applyInlineStyle(f, h).moveToBookmark(d).select() } }, queryCommandValue: function() { var a = domUtils.filterNodeList(this.selection.getStartElementPath(), function(a) { return a.getAttribute("label") }); return a ? a.getAttribute("label") : "" } }, a.addListener("keyup", function(b, c) { var d = c.keyCode || c.which; if (32 == d || 13 == d) { var e = a.selection.getRange(); if (e.collapsed) { var f = domUtils.findParent(a.selection.getStart(), function(a) { return a.getAttribute("label") }, !0); if (f && dtd.$block[f.tagName] && domUtils.isEmptyNode(f)) { var g = a.document.createElement("p"); domUtils.insertAfter(f, g), domUtils.fillNode(a.document, g), domUtils.remove(f), e.setStart(g, 0).setCursor() } } } }) } , UE.plugins.catchremoteimage = function() { var me = this , ajax = UE.ajax; me.options.catchRemoteImageEnable !== !1 && (me.setOpt({ catchRemoteImageEnable: !1 }), me.addListener("afterpaste", function() { me.fireEvent("catchRemoteImage") }), me.addListener("catchRemoteImage", function() { function catchremoteimage(a, b) { var c = utils.serializeParam(me.queryCommandValue("serverparam")) || "" , d = utils.formatUrl(catcherActionUrl + (catcherActionUrl.indexOf("?") == -1 ? "?" : "&") + c) , e = utils.isCrossDomainUrl(d) , f = { method: "POST", dataType: e ? "jsonp" : "", timeout: 6e4, onsuccess: b.success, onerror: b.error }; f[catcherFieldName] = a, ajax.request(d, f) } for (var catcherLocalDomain = me.getOpt("catcherLocalDomain"), catcherActionUrl = me.getActionUrl(me.getOpt("catcherActionName")), catcherUrlPrefix = me.getOpt("catcherUrlPrefix"), catcherFieldName = me.getOpt("catcherFieldName"), remoteImages = [], imgs = domUtils.getElementsByTagName(me.document, "img"), test = function(a, b) { if (a.indexOf(location.host) != -1 || /(^\.)|(^\/)/.test(a)) return !0; if (b) for (var c, d = 0; c = b[d++]; ) if (a.indexOf(c) !== -1) return !0; return !1 }, i = 0, ci; ci = imgs[i++]; ) if (!ci.getAttribute("word_img")) { var src = ci.getAttribute("_src") || ci.src || ""; /^(https?|ftp):/i.test(src) && !test(src, catcherLocalDomain) && remoteImages.push(src) } remoteImages.length && catchremoteimage(remoteImages, { success: function(r) { try { var info = void 0 !== r.state ? r : eval("(" + r.responseText + ")") } catch (e) { return } var i, j, ci, cj, oldSrc, newSrc, list = info.list || []; for (i = 0; ci = imgs[i++]; ) for (oldSrc = ci.getAttribute("_src") || ci.src || "", j = 0; cj = list[j++]; ) if (oldSrc == cj.source && "SUCCESS" == cj.state) { newSrc = catcherUrlPrefix + cj.url, domUtils.setAttributes(ci, { src: newSrc, _src: newSrc }); break } me.fireEvent("catchremotesuccess") }, error: function() { me.fireEvent("catchremoteerror") } }) })) } , UE.plugin.register("snapscreen", function() { function getLocation(a) { var b, c = document.createElement("a"), d = utils.serializeParam(me.queryCommandValue("serverparam")) || ""; return c.href = a, browser.ie && (c.href = c.href), b = c.search, d && (b = b + (b.indexOf("?") == -1 ? "?" : "&") + d, b = b.replace(/[&]+/gi, "&")), { port: c.port, hostname: c.hostname, path: c.pathname + b || +c.hash } } var me = this, snapplugin; return { commands: { snapscreen: { execCommand: function(cmd) { function onSuccess(rs) { try { if (rs = eval("(" + rs + ")"), "SUCCESS" == rs.state) { var opt = me.options; me.execCommand("insertimage", { src: opt.snapscreenUrlPrefix + rs.url, _src: opt.snapscreenUrlPrefix + rs.url, alt: rs.title || "", floatStyle: opt.snapscreenImgAlign }) } else alert(rs.state) } catch (e) { alert(lang.callBackErrorMsg) } } var url, local, res, lang = me.getLang("snapScreen_plugin"); if (!snapplugin) { var container = me.container , doc = me.container.ownerDocument || me.container.document; snapplugin = doc.createElement("object"); try { snapplugin.type = "application/x-pluginbaidusnap" } catch (e) { return } snapplugin.style.cssText = "position:absolute;left:-9999px;width:0;height:0;", snapplugin.setAttribute("width", "0"), snapplugin.setAttribute("height", "0"), container.appendChild(snapplugin) } url = me.getActionUrl(me.getOpt("snapscreenActionName")), local = getLocation(url), setTimeout(function() { try { res = snapplugin.saveSnapshot(local.hostname, local.path, local.port) } catch (a) { return void me.ui._dialogs.snapscreenDialog.open() } onSuccess(res) }, 50) }, queryCommandState: function() { return navigator.userAgent.indexOf("Windows", 0) != -1 ? 0 : -1 } } } } }), UE.commands.insertparagraph = { execCommand: function(a, b) { for (var c, d = this, e = d.selection.getRange(), f = e.startContainer; f && !domUtils.isBody(f); ) c = f, f = f.parentNode; if (c) { var g = d.document.createElement("p"); b ? c.parentNode.insertBefore(g, c) : c.parentNode.insertBefore(g, c.nextSibling), domUtils.fillNode(d.document, g), e.setStart(g, 0).setCursor(!1, !0) } } }, UE.plugin.register("webapp", function() { function a(a, c) { return c ? '' : '" } var b = this; return { outputRule: function(b) { utils.each(b.getNodesByTagName("img"), function(b) { var c; if ("edui-faked-webapp" == b.getAttr("class")) { c = a({ title: b.getAttr("title"), width: b.getAttr("width"), height: b.getAttr("height"), align: b.getAttr("align"), cssfloat: b.getStyle("float"), url: b.getAttr("_url"), logo: b.getAttr("_logo_url") }, !0); var d = UE.uNode.createElement(c); b.parentNode.replaceChild(d, b) } }) }, inputRule: function(b) { utils.each(b.getNodesByTagName("iframe"), function(b) { if ("edui-faked-webapp" == b.getAttr("class")) { var c = UE.uNode.createElement(a({ title: b.getAttr("title"), width: b.getAttr("width"), height: b.getAttr("height"), align: b.getAttr("align"), cssfloat: b.getStyle("float"), url: b.getAttr("src"), logo: b.getAttr("logo_url") })); b.parentNode.replaceChild(c, b) } }) }, commands: { webapp: { execCommand: function(b, c) { var d = this , e = a(utils.extend(c, { align: "none" }), !1); d.execCommand("inserthtml", e) }, queryCommandState: function() { var a = this , b = a.selection.getRange().getClosedNode() , c = b && "edui-faked-webapp" == b.className; return c ? 1 : 0 } } } } }), UE.plugins.template = function() { UE.commands.template = { execCommand: function(a, b) { b.html && this.execCommand("inserthtml", b.html) } }, this.addListener("click", function(a, b) { var c = b.target || b.srcElement , d = this.selection.getRange() , e = domUtils.findParent(c, function(a) { if (a.className && domUtils.hasClass(a, "ue_t")) return a }, !0); e && d.selectNode(e).shrinkBoundary().select() }), this.addListener("keydown", function(a, b) { var c = this.selection.getRange(); if (!c.collapsed && !(b.ctrlKey || b.metaKey || b.shiftKey || b.altKey)) { var d = domUtils.findParent(c.startContainer, function(a) { if (a.className && domUtils.hasClass(a, "ue_t")) return a }, !0); d && domUtils.removeClasses(d, ["ue_t"]) } }) } , UE.plugin.register("music", function() { function a(a, c, d, e, f, g) { return g ? '' : "' } var b = this; return { outputRule: function(b) { utils.each(b.getNodesByTagName("img"), function(b) { var c; if ("edui-faked-music" == b.getAttr("class")) { var d = b.getStyle("float") , e = b.getAttr("align"); c = a(b.getAttr("_url"), b.getAttr("width"), b.getAttr("height"), e, d, !0); var f = UE.uNode.createElement(c); b.parentNode.replaceChild(f, b) } }) }, inputRule: function(b) { utils.each(b.getNodesByTagName("embed"), function(b) { if ("edui-faked-music" == b.getAttr("class")) { var c = b.getStyle("float") , d = b.getAttr("align"); html = a(b.getAttr("src"), b.getAttr("width"), b.getAttr("height"), d, c, !1); var e = UE.uNode.createElement(html); b.parentNode.replaceChild(e, b) } }) }, commands: { music: { execCommand: function(b, c) { var d = this , e = a(c.url, c.width || 400, c.height || 95, "none", !1); d.execCommand("inserthtml", e) }, queryCommandState: function() { var a = this , b = a.selection.getRange().getClosedNode() , c = b && "edui-faked-music" == b.className; return c ? 1 : 0 } } } } }), UE.plugin.register("autoupload", function() { function a(a, b) { var c = b , d = []; if (a.forEach(function(a) { filetype = /image\/\w+/i.test(a.type) ? "image" : "file", "image" === filetype && d.push(a) }), d.length > 0) return void c.fireEvent("extendImageSelect", { files: d }) } function b(a) { var b = []; if (a.clipboardData && a.clipboardData.items) for (var c = 0; c < a.clipboardData.items.length; c++) /^image\//.test(a.clipboardData.items[c].type) && b.push(a.clipboardData.items[c]); return b.length > 0 ? b : null } function c(a) { return a.dataTransfer && a.dataTransfer.files ? a.dataTransfer.files : null } function d(a) { var b = a.clipboardData.getData("text/html") , c = null , d = []; if (b) { var e = document.createElement("div"); e.innerHTML = b; var f = e.querySelectorAll("p"); f && (b = Array.prototype.slice.call(f).map(function(a) { return a.outerHTML }).join("")); var g = b.match(/]*src="([^"]*)"[^>]*>/gi); g && g.forEach(function(a) { var c = a.match(/src="([^"]*)"/); b = b.replace(a, '') }); var h = b.match(/<\/?[vowm]?:([^>]*)>/gi); h && h.forEach(function(a) { b = b.replace(a, "") }), b = b.replace(//gi, ""), e.innerHTML = b; var c = e.querySelectorAll("img"); c && (c = Array.prototype.slice.call(c), c.forEach(function(a) { var b = decodeURIComponent(a.src); a.src = decodeURIComponent(a.src), b && b.match(/^file:\/\//) && (b = b.replace("file://", ""), d.includes(b) || d.push(b)) })), b = e.innerHTML } return { list: d.length > 0 ? d : null, html: b } } return { outputRule: function(a) { utils.each(a.getNodesByTagName("img"), function(a) { /\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class")) && a.parentNode.removeChild(a) }), utils.each(a.getNodesByTagName("p"), function(a) { /\bloadpara\b/.test(a.getAttr("class")) && a.parentNode.removeChild(a) }) }, bindEvents: { ready: function(e) { var f = this; window.FormData && window.FileReader && (domUtils.on(f.body, "paste drop", function(e) { var g, h, i = !1, j = e.clipboardData ? e.clipboardData.getData("text/html") : ""; j = j.replace(/<([a-z]+?)(?:\s+?[^>]*?)?>\s*?<\/\1>/gi, ""); var k = document.createElement("div"); k.innerHTML = j; for (var l = k.querySelectorAll("meta"), m = 0; m < l.length; m++) l[m].remove(); if (1 === k.childNodes.length && k.childNodes[0].innerHTML === k.childNodes[0].innerText) return f.execCommand("inserthtml", k.innerText), void e.preventDefault(); if (f.options.pasteUploadImage) if (h = "paste" == e.type ? d(e) : null, h && h.list) f.fireEvent("extendPasteUploadHtmlImage", h), e.preventDefault(); else if ((!h || !h.html) && (g = "paste" == e.type ? b(e) : c(e))) { for (var n, o = g.length, p = []; o--; ) n = g[o], n.getAsFile && (n = n.getAsFile()), n && n.size > 0 && (i = !0, p.push(n)); a(p, f), i && e.preventDefault() } }), domUtils.on(f.body, "dragover", function(a) { "Files" == a.dataTransfer.types[0] && a.preventDefault() }), utils.cssRule("loading", ".loadingclass{display:inline-block;cursor:default;background: url('" + this.options.themePath + this.options.theme + "/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('" + this.options.themePath + this.options.theme + "/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}", this.document)) } } } }), UE.plugin.register("autosave", function() { function a(a) { var f; if (!(new Date - c < d)) { if (!a.hasContents()) return void (e && b.removePreferences(e)); c = new Date, a._saveFlag = null, f = b.body.innerHTML, a.fireEvent("beforeautosave", { content: f }) !== !1 && (b.setPreferences(e, f), a.fireEvent("afterautosave", { content: f })) } } var b = this , c = new Date , d = 20 , e = null; return { defaultOptions: { saveInterval: 500 }, bindEvents: { ready: function() { var a = "-drafts-data" , c = null; c = b.key ? b.key + a : (b.container.parentNode.id || "ue-common") + a, e = (location.protocol + location.host + location.pathname).replace(/[.:\/]/g, "_") + c }, contentchange: function() { e && (b._saveFlag && window.clearTimeout(b._saveFlag), b.options.saveInterval > 0 ? b._saveFlag = window.setTimeout(function() { a(b) }, b.options.saveInterval) : a(b)) } }, commands: { clearlocaldata: { execCommand: function(a, c) { e && b.getPreferences(e) && b.removePreferences(e) }, notNeedUndo: !0, ignoreContentChange: !0 }, getlocaldata: { execCommand: function(a, c) { return e ? b.getPreferences(e) || "" : "" }, notNeedUndo: !0, ignoreContentChange: !0 }, drafts: { execCommand: function(a, c) { e && (b.body.innerHTML = b.getPreferences(e) || "

" + domUtils.fillHtml + "

", b.focus(!0)) }, queryCommandState: function() { return e ? null === b.getPreferences(e) ? -1 : 0 : -1 }, notNeedUndo: !0, ignoreContentChange: !0 } } } }), UE.plugin.register("charts", function() { function a(a) { var b = null , c = 0; if (a.rows.length < 2) return !1; if (a.rows[0].cells.length < 2) return !1; b = a.rows[0].cells, c = b.length; for (var d, e = 0; d = b[e]; e++) if ("th" !== d.tagName.toLowerCase()) return !1; for (var f, e = 1; f = a.rows[e]; e++) { if (f.cells.length != c) return !1; if ("th" !== f.cells[0].tagName.toLowerCase()) return !1; for (var d, g = 1; d = f.cells[g]; g++) { var h = utils.trim(d.innerText || d.textContent || ""); if (h = h.replace(new RegExp(UE.dom.domUtils.fillChar,"g"), "").replace(/^\s+|\s+$/g, ""), !/^\d*\.?\d+$/.test(h)) return !1 } } return !0 } var b = this; return { bindEvents: { chartserror: function() {} }, commands: { charts: { execCommand: function(c, d) { var e = domUtils.findParentByTagName(this.selection.getRange().startContainer, "table", !0) , f = [] , g = {}; if (!e) return !1; if (!a(e)) return b.fireEvent("chartserror"), !1; g.title = d.title || "", g.subTitle = d.subTitle || "", g.xTitle = d.xTitle || "", g.yTitle = d.yTitle || "", g.suffix = d.suffix || "", g.tip = d.tip || "", g.dataFormat = d.tableDataFormat || "", g.chartType = d.chartType || 0; for (var h in g) g.hasOwnProperty(h) && f.push(h + ":" + g[h]); e.setAttribute("data-chart", f.join(";")), domUtils.addClass(e, "edui-charts-table") }, queryCommandState: function(b, c) { var d = domUtils.findParentByTagName(this.selection.getRange().startContainer, "table", !0); return d && a(d) ? 0 : -1 } } }, inputRule: function(a) { utils.each(a.getNodesByTagName("table"), function(a) { void 0 !== a.getAttr("data-chart") && a.setAttr("style") }) }, outputRule: function(a) { utils.each(a.getNodesByTagName("table"), function(a) { void 0 !== a.getAttr("data-chart") && a.setAttr("style", "display: none;") }) } } }), UE.plugin.register("section", function() { function a(a) { this.tag = "", this.level = -1, this.dom = null, this.nextSection = null, this.previousSection = null, this.parentSection = null, this.startAddress = [], this.endAddress = [], this.children = [] } function b(b) { var c = new a; return utils.extend(c, b) } function c(a, b) { for (var c = b, d = 0; d < a.length; d++) { if (!c.childNodes) return null; c = c.childNodes[a[d]] } return c } var d = this; return { bindMultiEvents: { type: "aftersetcontent afterscencerestore", handler: function() { d.fireEvent("updateSections") } }, bindEvents: { ready: function() { d.fireEvent("updateSections"), domUtils.on(d.body, "drop paste", function() { d.fireEvent("updateSections") }) }, afterexeccommand: function(a, b) { "paragraph" == b && d.fireEvent("updateSections") }, keyup: function(a, b) { var c = this , d = c.selection.getRange(); if (1 != d.collapsed) c.fireEvent("updateSections"); else { var e = b.keyCode || b.which; 13 != e && 8 != e && 46 != e || c.fireEvent("updateSections") } } }, commands: { getsections: { execCommand: function(a, c) { function d(a) { for (var b = 0; b < f.length; b++) if (f[b](a)) return b; return -1 } function e(a, c) { for (var f, g, i, k = null, l = a.childNodes, m = 0, n = l.length; m < n; m++) if (i = l[m], f = d(i), f >= 0) { var o = h.selection.getRange().selectNode(i).createAddress(!0).startAddress , p = b({ tag: i.tagName, title: i.innerText || i.textContent || "", level: f, dom: i, startAddress: utils.clone(o, []), endAddress: utils.clone(o, []), children: [] }); for (j.nextSection = p, p.previousSection = j, g = j; f <= g.level; ) g = g.parentSection; p.parentSection = g, g.children.push(p), k = j = p } else 1 === i.nodeType && e(i, c), k && k.endAddress[k.endAddress.length - 1]++ } for (var f = c || ["h1", "h2", "h3", "h4", "h5", "h6"], g = 0; g < f.length; g++) "string" == typeof f[g] ? f[g] = function(a) { return function(b) { return b.tagName == a.toUpperCase() } }(f[g]) : "function" != typeof f[g] && (f[g] = function(a) { return null } ); var h = this , i = b({ level: -1, title: "root" }) , j = i; return e(h.body, i), i }, notNeedUndo: !0 }, movesection: { execCommand: function(a, b, d, e) { function f(a, b, c) { for (var d = !1, e = !1, f = 0; f < a.length && !(f >= c.length); f++) { if (c[f] > a[f]) { d = !0; break } if (c[f] < a[f]) break } for (var f = 0; f < b.length && !(f >= c.length); f++) { if (c[f] < a[f]) { e = !0; break } if (c[f] > a[f]) break } return d && e } var g, h, i = this; if (b && d && d.level != -1 && (g = e ? d.endAddress : d.startAddress, h = c(g, i.body), g && h && !f(b.startAddress, b.endAddress, g))) { var j, k, l = c(b.startAddress, i.body), m = c(b.endAddress, i.body); if (e) for (j = m; j && !(domUtils.getPosition(l, j) & domUtils.POSITION_FOLLOWING) && (k = j.previousSibling, domUtils.insertAfter(h, j), j != l); ) j = k; else for (j = l; j && !(domUtils.getPosition(j, m) & domUtils.POSITION_FOLLOWING) && (k = j.nextSibling, h.parentNode.insertBefore(j, h), j != m); ) j = k; i.fireEvent("updateSections") } } }, deletesection: { execCommand: function(a, b, c) { function d(a) { for (var b = e.body, c = 0; c < a.length; c++) { if (!b.childNodes) return null; b = b.childNodes[a[c]] } return b } var e = this; if (b) { var f, g = d(b.startAddress), h = d(b.endAddress), i = g; if (c) domUtils.remove(i); else for (; i && domUtils.inDoc(h, e.document) && !(domUtils.getPosition(i, h) & domUtils.POSITION_FOLLOWING); ) f = i.nextSibling, domUtils.remove(i), i = f; e.fireEvent("updateSections") } } }, selectsection: { execCommand: function(a, b) { if (!b && !b.dom) return !1; var c = this , d = c.selection.getRange() , e = { startAddress: utils.clone(b.startAddress, []), endAddress: utils.clone(b.endAddress, []) }; return e.endAddress[e.endAddress.length - 1]++, d.moveToAddress(e).select().scrollToView(), !0 }, notNeedUndo: !0 }, scrolltosection: { execCommand: function(a, b) { if (!b && !b.dom) return !1; var c = this , d = c.selection.getRange() , e = { startAddress: b.startAddress, endAddress: b.endAddress }; return e.endAddress[e.endAddress.length - 1]++, d.moveToAddress(e).scrollToView(), !0 }, notNeedUndo: !0 } } } }), UE.plugin.register("simpleupload", function() { function a() { var a = b.offsetWidth || 20 , e = b.offsetHeight || 20 , f = document.createElement("iframe") , g = "display:block;width:" + a + "px;height:" + e + "px;overflow:hidden;border:0;margin:0;padding:0;position:absolute;top:0;left:0;filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity: 0;opacity: 0;cursor:pointer;"; domUtils.on(f, "load", function() { var b, h, i, j = (+new Date).toString(36); h = f.contentDocument || f.contentWindow.document, i = h.body, b = h.createElement("div"), b.innerHTML = '
', b.className = "edui-" + c.options.theme, b.id = c.ui.id + "_iframeupload", i.style.cssText = g, i.style.width = a + "px", i.style.height = e + "px", i.appendChild(b), i.parentNode && (i.parentNode.style.width = a + "px", i.parentNode.style.height = a + "px"); var k = h.getElementById("edui_form_" + j) , l = h.getElementById("edui_input_" + j) , m = h.getElementById("edui_iframe_" + j); domUtils.on(l, "change", function() { function a() { try { var e, f, g, h = (m.contentDocument || m.contentWindow.document).body, i = h.innerText || h.textContent || ""; f = new Function("return " + i)(), e = c.options.imageUrlPrefix + f.url, "SUCCESS" == f.state && f.url ? (g = c.document.getElementById(d), g.setAttribute("src", e), g.setAttribute("_src", e), g.setAttribute("title", f.title || ""), g.setAttribute("alt", f.original || ""), g.removeAttribute("id"), domUtils.removeClasses(g, "loadingclass")) : b && b(f.state) } catch (j) { b && b(c.getLang("simpleupload.loadError")) } k.reset(), domUtils.un(m, "load", a) } function b(a) { if (d) { var b = c.document.getElementById(d); b && domUtils.remove(b), c.fireEvent("showmessage", { id: d, content: a, type: "error", timeout: 4e3 }) } } if (l.value) { var d = "loading_" + (+new Date).toString(36) , e = utils.serializeParam(c.queryCommandValue("serverparam")) || "" , f = c.getActionUrl(c.getOpt("imageActionName")) , g = c.getOpt("imageAllowFiles"); if (c.focus(), c.execCommand("inserthtml", ''), !c.getOpt("imageActionName")) return void errorHandler(c.getLang("autoupload.errorLoadConfig")); var h = l.value , i = h ? h.substr(h.lastIndexOf(".")) : ""; if (!i || g && (g.join("") + ".").indexOf(i.toLowerCase() + ".") == -1) return void b(c.getLang("simpleupload.exceedTypeError")); domUtils.on(m, "load", a), k.action = utils.formatUrl(f + (f.indexOf("?") == -1 ? "?" : "&") + e), k.submit() } }); var n; c.addListener("selectionchange", function() { clearTimeout(n), n = setTimeout(function() { var a = c.queryCommandState("simpleupload"); a == -1 ? l.disabled = "disabled" : l.disabled = !1 }, 400) }), d = !0 }), f.style.cssText = g, b.appendChild(f) } var b, c = this, d = !1; return { bindEvents: { ready: function() { utils.cssRule("loading", ".loadingclass{display:inline-block;cursor:default;background: url('" + this.options.themePath + this.options.theme + "/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('" + this.options.themePath + this.options.theme + "/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}", this.document) }, simpleuploadbtnready: function(d, e) { b = e, c.afterConfigReady(a) } }, outputRule: function(a) { utils.each(a.getNodesByTagName("img"), function(a) { /\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class")) && a.parentNode.removeChild(a) }) }, commands: { simpleupload: { queryCommandState: function() { return d ? 0 : -1 } } } } }), UE.plugin.register("serverparam", function() { var a = {}; return { commands: { serverparam: { execCommand: function(b, c, d) { void 0 === c || null === c ? a = {} : utils.isString(c) ? void 0 === d || null === d ? delete a[c] : a[c] = d : utils.isObject(c) ? utils.extend(a, c, !0) : utils.isFunction(c) && utils.extend(a, c(), !0) }, queryCommandValue: function() { return a || {} } } } } }), UE.plugin.register("insertfile", function() { function a(a) { var b = a.substr(a.lastIndexOf(".") + 1).toLowerCase() , c = { rar: "icon_rar.gif", zip: "icon_rar.gif", tar: "icon_rar.gif", gz: "icon_rar.gif", bz2: "icon_rar.gif", doc: "icon_doc.gif", docx: "icon_doc.gif", pdf: "icon_pdf.gif", mp3: "icon_mp3.gif", xls: "icon_xls.gif", chm: "icon_chm.gif", ppt: "icon_ppt.gif", pptx: "icon_ppt.gif", avi: "icon_mv.gif", rmvb: "icon_mv.gif", wmv: "icon_mv.gif", flv: "icon_mv.gif", swf: "icon_mv.gif", rm: "icon_mv.gif", exe: "icon_exe.gif", psd: "icon_psd.gif", txt: "icon_txt.gif", jpg: "icon_jpg.gif", png: "icon_jpg.gif", jpeg: "icon_jpg.gif", gif: "icon_jpg.gif", ico: "icon_jpg.gif", bmp: "icon_jpg.gif" }; return c[b] ? c[b] : c.txt } var b = this; return { commands: { insertfile: { execCommand: function(c, d) { d = utils.isArray(d) ? d : [d]; var e, f, g, h, i = "", j = b.getOpt("UEDITOR_HOME_URL"), k = j + ("/" == j.substr(j.length - 1) ? "" : "/") + "dialogs/attachment/fileTypeImages/"; for (e = 0; e < d.length; e++) f = d[e], g = k + a(f.url), h = f.title || f.url.substr(f.url.lastIndexOf("/") + 1), i += '

' + h + "

"; b.execCommand("insertHtml", i) } } } } }), UE.plugins.xssFilter = function() { function a(a) { var b = a.tagName , d = a.attrs; return c.hasOwnProperty(b) ? void UE.utils.each(d, function(d, e) { c[b].indexOf(e) === -1 && a.setAttr(e) }) : (a.parentNode.removeChild(a), !1) } var b = UEDITOR_CONFIG , c = b.whitList; c && b.xssFilterRules && (this.options.filterRules = function() { var b = {}; return UE.utils.each(c, function(c, d) { b[d] = function(b) { return a(b) } }), b }()); var d = []; UE.utils.each(c, function(a, b) { d.push(b) }), c && b.inputXssFilter && this.addInputRule(function(b) { b.traversal(function(b) { return "element" === b.type && void a(b) }) }), c && b.outputXssFilter && this.addOutputRule(function(b) { b.traversal(function(b) { return "element" === b.type && void a(b) }) }) } ; var baidu = baidu || {}; baidu.editor = baidu.editor || {}, UE.ui = baidu.editor.ui = {}, function() { function a() { var a = document.getElementById("edui_fixedlayer"); i.setViewportOffset(a, { left: 0, top: 0 }) } function b(b) { d.on(window, "scroll", a), d.on(window, "resize", baidu.editor.utils.defer(a, 0, !0)) } var c = baidu.editor.browser , d = baidu.editor.dom.domUtils , e = "$EDITORUI" , f = window[e] = {} , g = "ID" + e , h = 0 , i = baidu.editor.ui.uiUtils = { uid: function(a) { return a ? a[g] || (a[g] = ++h) : ++h }, hook: function(a, b) { var c; return a && a._callbacks ? c = a : (c = function() { var b; a && (b = a.apply(this, arguments)); for (var d = c._callbacks, e = d.length; e--; ) { var f = d[e].apply(this, arguments); void 0 === b && (b = f) } return b } , c._callbacks = []), c._callbacks.push(b), c }, createElementByHtml: function(a) { var b = document.createElement("div"); return b.innerHTML = a, b = b.firstChild, b.parentNode.removeChild(b), b }, getViewportElement: function() { return c.ie && c.quirks ? document.body : document.documentElement }, getClientRect: function(a) { var b; try { b = a.getBoundingClientRect() } catch (c) { b = { left: 0, top: 0, height: 0, width: 0 } } for (var e, f = { left: Math.round(b.left), top: Math.round(b.top), height: Math.round(b.bottom - b.top), width: Math.round(b.right - b.left) }; (e = a.ownerDocument) !== document && (a = d.getWindow(e).frameElement); ) b = a.getBoundingClientRect(), f.left += b.left, f.top += b.top; return f.bottom = f.top + f.height, f.right = f.left + f.width, f }, getViewportRect: function() { var a = i.getViewportElement() , b = 0 | (window.innerWidth || a.clientWidth) , c = 0 | (window.innerHeight || a.clientHeight); return { left: 0, top: 0, height: c, width: b, bottom: c, right: b } }, setViewportOffset: function(a, b) { var c = i.getFixedLayer(); a.parentNode === c ? (a.style.left = b.left + "px", a.style.top = b.top + "px") : d.setViewportOffset(a, b) }, getEventOffset: function(a) { var b = a.target || a.srcElement , c = i.getClientRect(b) , d = i.getViewportOffsetByEvent(a); return { left: d.left - c.left, top: d.top - c.top } }, getViewportOffsetByEvent: function(a) { var b = a.target || a.srcElement , c = d.getWindow(b).frameElement , e = { left: a.clientX, top: a.clientY }; if (c && b.ownerDocument !== document) { var f = i.getClientRect(c); e.left += f.left, e.top += f.top } return e }, setGlobal: function(a, b) { return f[a] = b, e + '["' + a + '"]' }, unsetGlobal: function(a) { delete f[a] }, copyAttributes: function(a, b) { for (var e = b.attributes, f = e.length; f--; ) { var g = e[f]; "style" == g.nodeName || "class" == g.nodeName || c.ie && !g.specified || a.setAttribute(g.nodeName, g.nodeValue) } b.className && d.addClass(a, b.className), b.style.cssText && (a.style.cssText += ";" + b.style.cssText) }, removeStyle: function(a, b) { if (a.style.removeProperty) a.style.removeProperty(b); else { if (!a.style.removeAttribute) throw ""; a.style.removeAttribute(b) } }, contains: function(a, b) { return a && b && a !== b && (a.contains ? a.contains(b) : 16 & a.compareDocumentPosition(b)) }, startDrag: function(a, b, c) { function d(a) { var c = a.clientX - g , d = a.clientY - h; b.ondragmove(c, d, a), a.stopPropagation ? a.stopPropagation() : a.cancelBubble = !0 } function e(a) { c.removeEventListener("mousemove", d, !0), c.removeEventListener("mouseup", e, !0), window.removeEventListener("mouseup", e, !0), b.ondragstop() } function f() { i.releaseCapture(), i.detachEvent("onmousemove", d), i.detachEvent("onmouseup", f), i.detachEvent("onlosecaptrue", f), b.ondragstop() } var c = c || document , g = a.clientX , h = a.clientY; if (c.addEventListener) c.addEventListener("mousemove", d, !0), c.addEventListener("mouseup", e, !0), window.addEventListener("mouseup", e, !0), a.preventDefault(); else { var i = a.srcElement; i.setCapture(), i.attachEvent("onmousemove", d), i.attachEvent("onmouseup", f), i.attachEvent("onlosecaptrue", f), a.returnValue = !1 } b.ondragstart() }, getFixedLayer: function() { var d = document.getElementById("edui_fixedlayer"); return null == d && (d = document.createElement("div"), d.id = "edui_fixedlayer", document.body.appendChild(d), c.ie && c.version <= 8 ? (d.style.position = "absolute", b(), setTimeout(a)) : d.style.position = "fixed", d.style.left = "0", d.style.top = "0", d.style.width = "0", d.style.height = "0"), d }, makeUnselectable: function(a) { if (c.opera || c.ie && c.version < 9) { if (a.unselectable = "on", a.hasChildNodes()) for (var b = 0; b < a.childNodes.length; b++) 1 == a.childNodes[b].nodeType && i.makeUnselectable(a.childNodes[b]) } else void 0 !== a.style.MozUserSelect ? a.style.MozUserSelect = "none" : void 0 !== a.style.WebkitUserSelect ? a.style.WebkitUserSelect = "none" : void 0 !== a.style.KhtmlUserSelect && (a.style.KhtmlUserSelect = "none") } } }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.uiUtils , c = baidu.editor.EventBase , d = baidu.editor.ui.UIBase = function() {} ; d.prototype = { className: "", uiName: "", initOptions: function(a) { var c = this; for (var d in a) c[d] = a[d]; this.id = this.id || "edui" + b.uid() }, initUIBase: function() { this._globalKey = a.unhtml(b.setGlobal(this.id, this)) }, render: function(a) { for (var c, d = this.renderHtml(), e = b.createElementByHtml(d), f = domUtils.getElementsByTagName(e, "*"), g = "edui-" + (this.theme || this.editor.options.theme), h = document.getElementById("edui_fixedlayer"), i = 0; c = f[i++]; ) domUtils.addClass(c, g); domUtils.addClass(e, g), h && (h.className = "", domUtils.addClass(h, g)); var j = this.getDom(); null != j ? (j.parentNode.replaceChild(e, j), b.copyAttributes(e, j)) : ("string" == typeof a && (a = document.getElementById(a)), a = a || b.getFixedLayer(), domUtils.addClass(a, g), a.appendChild(e)), this.postRender() }, getDom: function(a) { return a ? document.getElementById(this.id + "_" + a) : document.getElementById(this.id) }, postRender: function() { this.fireEvent("postrender") }, getHtmlTpl: function() { return "" }, formatHtml: function(a) { var b = "edui-" + this.uiName; return a.replace(/##/g, this.id).replace(/%%-/g, this.uiName ? b + "-" : "").replace(/%%/g, (this.uiName ? b : "") + " " + this.className).replace(/\$\$/g, this._globalKey) }, renderHtml: function() { return this.formatHtml(this.getHtmlTpl()) }, dispose: function() { var a = this.getDom(); a && baidu.editor.dom.domUtils.remove(a), b.unsetGlobal(this.id) } }, a.inherits(d, c) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.UIBase , c = baidu.editor.ui.Separator = function(a) { this.initOptions(a), this.initSeparator() } ; c.prototype = { uiName: "separator", initSeparator: function() { this.initUIBase() }, getHtmlTpl: function() { return '
' } }, a.inherits(c, b) }(), function() { var a = baidu.editor.utils , b = baidu.editor.dom.domUtils , c = baidu.editor.ui.UIBase , d = baidu.editor.ui.uiUtils , e = baidu.editor.ui.Mask = function(a) { this.initOptions(a), this.initUIBase() } ; e.prototype = { getHtmlTpl: function() { return '
' }, postRender: function() { var a = this; b.on(window, "resize", function() { setTimeout(function() { a.isHidden() || a._fill() }) }) }, show: function(a) { this._fill(), this.getDom().style.display = "", this.getDom().style.zIndex = a }, hide: function() { this.getDom().style.display = "none", this.getDom().style.zIndex = "" }, isHidden: function() { return "none" == this.getDom().style.display }, _onMouseDown: function() { return !1 }, _onClick: function(a, b) { this.fireEvent("click", a, b) }, _fill: function() { var a = this.getDom() , b = d.getViewportRect(); a.style.width = b.width + "px", a.style.height = b.height + "px" } }, a.inherits(e, c) }(), function() { function a(a, b) { for (var c = 0; c < g.length; c++) { var d = g[c]; if (!d.isHidden() && d.queryAutoHide(b) !== !1) { if (a && /scroll/gi.test(a.type) && "edui-wordpastepop" == d.className) return; d.hide() } } g.length && d.editor.fireEvent("afterhidepop") } var b = baidu.editor.utils , c = baidu.editor.ui.uiUtils , d = baidu.editor.dom.domUtils , e = baidu.editor.ui.UIBase , f = baidu.editor.ui.Popup = function(a) { this.initOptions(a), this.initPopup() } , g = []; f.postHide = a; var h = ["edui-anchor-topleft", "edui-anchor-topright", "edui-anchor-bottomleft", "edui-anchor-bottomright"]; f.prototype = { SHADOW_RADIUS: 5, content: null, _hidden: !1, autoRender: !0, canSideLeft: !0, canSideUp: !0, canClick: !1, initPopup: function() { this.initUIBase(), g.push(this) }, getHtmlTpl: function() { return '
' + this.getContentHtmlTpl() + "
" }, getContentHtmlTpl: function() { return this.content ? "string" == typeof this.content ? this.content : this.content.renderHtml() : "" }, _UIBase_postRender: e.prototype.postRender, postRender: function() { if (this.content instanceof e && this.content.postRender(), this.captureWheel && !this.captured) { this.captured = !0; var a = (document.documentElement.clientHeight || document.body.clientHeight) - 80 , b = this.getDom().offsetHeight , f = c.getClientRect(this.combox.getDom()).top , g = this.getDom("content") , h = this.getDom("body").getElementsByTagName("iframe") , i = this; for (h.length && (h = h[0]); f + b > a; ) b -= 30; g.style.height = b + "px", h && (h.style.height = b + "px"), window.XMLHttpRequest ? d.on(g, "onmousewheel"in document.body ? "mousewheel" : "DOMMouseScroll", function(a) { a.preventDefault ? a.preventDefault() : a.returnValue = !1, a.wheelDelta ? g.scrollTop -= a.wheelDelta / 120 * 60 : g.scrollTop -= a.detail / -3 * 60 }) : d.on(this.getDom(), "mousewheel", function(a) { a.returnValue = !1, i.getDom("content").scrollTop -= a.wheelDelta / 120 * 60 }) } this.fireEvent("postRenderAfter"), this.hide(!0), this._UIBase_postRender() }, _doAutoRender: function() { !this.getDom() && this.autoRender && this.render() }, mesureSize: function() { var a = this.getDom("content"); return c.getClientRect(a) }, fitSize: function() { if (this.captureWheel && this.sized) return this.__size; this.sized = !0; var a = this.getDom("body"); a.style.width = "", a.style.height = ""; var b = this.mesureSize(); if (this.captureWheel) { a.style.width = -(-20 - b.width) + "px"; var c = parseInt(this.getDom("content").style.height, 10); !window.isNaN(c) && (b.height = c) } else a.style.width = b.width + "px"; return a.style.height = b.height + "px", this.__size = b, this.captureWheel && (this.getDom("content").style.overflow = "auto"), b }, showAnchor: function(a, b) { this.showAnchorRect(c.getClientRect(a), b) }, showAnchorRect: function(a, b, e) { this._doAutoRender(); var f = c.getViewportRect() , g = c.getClientRect(this.editor.iframe); this.getDom().style.visibility = "hidden", this._show(); var i, j, k, l, m = this.fitSize(); b ? (i = this.canSideLeft && a.right + m.width > f.right && a.left > m.width, j = this.canSideUp && a.bottom + m.height > g.bottom && a.bottom > m.height, k = a.right - a.width + (a.width - m.width) / 2, l = j ? (a.top < g.top ? g.top : a.top) - m.height - 2 : a.bottom + 6) : (i = this.canSideLeft && a.right + m.width > f.right && a.left > m.width, j = this.canSideUp && a.top + m.height > f.bottom && a.bottom > m.height, k = i ? a.right - m.width : a.left, l = j ? a.top - m.height : a.bottom); var n = this.getDom(); c.setViewportOffset(n, { left: k, top: l>141?l:141 }), d.removeClasses(n, h), n.className += " " + h[2 * (j ? 1 : 0) + (i ? 1 : 0)], this.editor && (n.style.zIndex = 1 * this.editor.container.style.zIndex + 10, baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = n.style.zIndex - 1), this.getDom().style.visibility = "visible" }, showAt: function(a) { var b = a.left , c = a.top , d = { left: b, top: c, right: b, bottom: c, height: 0, width: 0 }; this.showAnchorRect(d, !1, !0) }, _show: function() { if (this._hidden) { var a = this.getDom(); a.style.display = "", this._hidden = !1, this.fireEvent("show") } }, isHidden: function() { return this._hidden }, show: function() { this._doAutoRender(), this._show() }, hide: function(a) { !this._hidden && this.getDom() && (this.getDom().style.display = "none", this._hidden = !0, a || this.fireEvent("hide")) }, queryAutoHide: function(a) { return !a || !c.contains(this.getDom(), a) } }, b.inherits(f, e), d.on(document, "mousedown", function(b) { var c = b.target || b.srcElement; a(b, c) }), d.on(window, "scroll", function(b, c) { a(b, c) }) }(), function() { function a(a, b) { for (var c = '
' + a + '
', d = 0; d < e.length; d++) d && d % 10 === 0 && (c += "" + (60 == d ? '" : "") + ""), c += d < 70 ? '' : ""; return c += "
' + b.getLang("themeColor") + '
' + b.getLang("standardColor") + "
= 60 ? "border-width:1px;" : d >= 10 && d < 20 ? "border-width:1px 1px 0 1px;" : "border-width:0 1px 0 1px;") + '">
" } var b = baidu.editor.utils , c = baidu.editor.ui.UIBase , d = baidu.editor.ui.ColorPicker = function(a) { this.initOptions(a), this.noColorText = this.noColorText || (this.editor&&this.editor.getLang("clearColor")), this.initUIBase() } ; d.prototype = { getHtmlTpl: function() { return a(this.noColorText, this.editor) }, _onTableClick: function(a) { var b = a.target || a.srcElement , c = b.getAttribute("data-color"); c && this.fireEvent("pickcolor", c) }, _onTableOver: function(a) { var b = a.target || a.srcElement , c = b.getAttribute("data-color"); c && (this.getDom("preview").style.backgroundColor = c) }, _onTableOut: function() { this.getDom("preview").style.backgroundColor = "" }, _onPickNoColor: function() { this.fireEvent("picknocolor") } }, b.inherits(d, c); var e = "ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,d8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,".split(",") }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.uiUtils , c = baidu.editor.ui.UIBase , d = baidu.editor.ui.TablePicker = function(a) { this.initOptions(a), this.initTablePicker() } ; d.prototype = { defaultNumRows: 10, defaultNumCols: 10, maxNumRows: 20, maxNumCols: 20, numRows: 10, numCols: 10, lengthOfCellSide: 22, initTablePicker: function() { this.initUIBase() }, getHtmlTpl: function() { return '
' }, _UIBase_render: c.prototype.render, render: function(a) { this._UIBase_render(a), this.getDom("label").innerHTML = "0" + this.editor.getLang("t_row") + " x 0" + this.editor.getLang("t_col") }, _track: function(a, b) { var c = this.getDom("overlay").style , d = this.lengthOfCellSide; c.width = a * d + "px", c.height = b * d + "px"; var e = this.getDom("label"); e.innerHTML = a + this.editor.getLang("t_col") + " x " + b + this.editor.getLang("t_row"), this.numCols = a, this.numRows = b }, _onMouseOver: function(a, c) { var d = a.relatedTarget || a.fromElement; b.contains(c, d) || c === d || (this.getDom("label").innerHTML = "0" + this.editor.getLang("t_col") + " x 0" + this.editor.getLang("t_row"), this.getDom("overlay").style.visibility = "") }, _onMouseOut: function(a, c) { var d = a.relatedTarget || a.toElement; b.contains(c, d) || c === d || (this.getDom("label").innerHTML = "0" + this.editor.getLang("t_col") + " x 0" + this.editor.getLang("t_row"), this.getDom("overlay").style.visibility = "hidden") }, _onMouseMove: function(a, c) { var d = (this.getDom("overlay").style, b.getEventOffset(a)) , e = this.lengthOfCellSide , f = Math.ceil(d.left / e) , g = Math.ceil(d.top / e); this._track(f, g) }, _onClick: function() { this.fireEvent("picktable", this.numCols, this.numRows) } }, a.inherits(d, c) }(), function() { var a = baidu.editor.browser , b = baidu.editor.dom.domUtils , c = baidu.editor.ui.uiUtils , d = 'onmousedown="$$.Stateful_onMouseDown(event, this);" onmouseup="$$.Stateful_onMouseUp(event, this);"' + (a.ie ? ' onmouseenter="$$.Stateful_onMouseEnter(event, this);" onmouseleave="$$.Stateful_onMouseLeave(event, this);"' : ' onmouseover="$$.Stateful_onMouseOver(event, this);" onmouseout="$$.Stateful_onMouseOut(event, this);"'); baidu.editor.ui.Stateful = { alwalysHoverable: !1, target: null, Stateful_init: function() { this._Stateful_dGetHtmlTpl = this.getHtmlTpl, this.getHtmlTpl = this.Stateful_getHtmlTpl }, Stateful_getHtmlTpl: function() { var a = this._Stateful_dGetHtmlTpl(); return a.replace(/stateful/g, function() { return d }) }, Stateful_onMouseEnter: function(a, b) { this.target = b, this.isDisabled() && !this.alwalysHoverable || (this.addState("hover"), this.fireEvent("over")) }, Stateful_onMouseLeave: function(a, b) { this.isDisabled() && !this.alwalysHoverable || (this.removeState("hover"), this.removeState("active"), this.fireEvent("out")) }, Stateful_onMouseOver: function(a, b) { var d = a.relatedTarget; c.contains(b, d) || b === d || this.Stateful_onMouseEnter(a, b) }, Stateful_onMouseOut: function(a, b) { var d = a.relatedTarget; c.contains(b, d) || b === d || this.Stateful_onMouseLeave(a, b) }, Stateful_onMouseDown: function(a, b) { this.isDisabled() || this.addState("active") }, Stateful_onMouseUp: function(a, b) { this.isDisabled() || this.removeState("active") }, Stateful_postRender: function() { this.disabled && !this.hasState("disabled") && this.addState("disabled") }, hasState: function(a) { return b.hasClass(this.getStateDom(), "edui-state-" + a) }, addState: function(a) { this.hasState(a) || (this.getStateDom().className += " edui-state-" + a) }, removeState: function(a) { this.hasState(a) && b.removeClasses(this.getStateDom(), ["edui-state-" + a]) }, getStateDom: function() { return this.getDom("state") }, isChecked: function() { return this.hasState("checked") }, setChecked: function(a) { !this.isDisabled() && a ? this.addState("checked") : this.removeState("checked") }, isDisabled: function() { return this.hasState("disabled") }, setDisabled: function(a) { a ? (this.removeState("hover"), this.removeState("checked"), this.removeState("active"), this.addState("disabled")) : this.removeState("disabled") } } }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.UIBase , c = baidu.editor.ui.Stateful , d = baidu.editor.ui.Button = function(a) { if (a.name) { var b = a.name , c = a.cssRules; a.className || (a.className = "edui-for-" + b), a.cssRules = ".edui-default .edui-for-" + b + " .edui-icon {" + c + "}" } this.initOptions(a), this.initButton() } , e = a.iconSvg; Object.keys(e); d.prototype = { uiName: "button", label: "", title: "", showIcon: !0, showText: !0, cssRules: "", initButton: function() { this.initUIBase(), this.Stateful_init(), this.cssRules && a.cssRule("edui-customize-" + this.name + "-style", this.cssRules) }, getHtmlTpl: function() { var a = this.className.match(/edui-for-(.*)/) , b = null; return a && (b = a[1]), '
' + (this.showText ? '
' + this.label + "
" : "") + (this.showIcon ? '
' : "") + "
" }, postRender: function() { this.Stateful_postRender(), this.setDisabled(this.disabled) }, _onMouseDown: function(a) { var b = a.target || a.srcElement , c = b && b.tagName && b.tagName.toLowerCase(); if ("input" == c || "object" == c || "object" == c) return !1 }, _onClick: function() { this.isDisabled() || this.fireEvent("click") }, setTitle: function(a) { var b = this.getDom("label"); b.innerHTML = a } }, a.inherits(d, b), a.extend(d.prototype, c) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.uiUtils , c = (baidu.editor.dom.domUtils, baidu.editor.ui.UIBase) , d = baidu.editor.ui.Stateful , e = baidu.editor.ui.SplitButton = function(a) { this.initOptions(a), this.initSplitButton() } , f = a.iconSvg , g = Object.keys(f); e.prototype = { popup: null, uiName: "splitbutton", title: "", initSplitButton: function() { this.initUIBase(), this.Stateful_init(); if (null != this.popup) { var a = this.popup; this.popup = null, this.setPopup(a) } }, _UIBase_postRender: c.prototype.postRender, postRender: function() { this.Stateful_postRender(), this._UIBase_postRender() }, setPopup: function(c) { this.popup !== c && (null != this.popup && this.popup.dispose(), c.addListener("show", a.bind(this._onPopupShow, this)), c.addListener("hide", a.bind(this._onPopupHide, this)), c.addListener("postrender", a.bind(function() { c.getDom("body").appendChild(b.createElementByHtml('
')), c.getDom().className += " " + this.className }, this)), this.popup = c) }, _onPopupShow: function() { this.addState("opened") }, _onPopupHide: function() { console.log("end") // 获取颜色 console.log(this.editor.queryCommandValue( 'forecolor')); this.removeState("opened") }, getHtmlTpl: function() { var a = this.className.match(/edui-for-(.*)/) , b = null; return a && (b = a[1]), '
' + (b && g.includes(b) ? '' : '
') + '
' }, showPopup: function() { var a = b.getClientRect(this.getDom()); a.top -= this.popup.SHADOW_RADIUS, a.height += this.popup.SHADOW_RADIUS, this.popup.showAnchorRect(a) }, _onArrowClick: function(type,a, b) { // 颜色选择器的展示 this.isDisabled() || this.showPopup() }, _onButtonClick: function() { this.isDisabled() || this.fireEvent("buttonclick") } }, a.inherits(e, c), a.extend(e.prototype, d, !0) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.uiUtils , c = baidu.editor.ui.ColorPicker , d = baidu.editor.ui.Popup , e = baidu.editor.ui.SplitButton , f = baidu.editor.ui.ColorButton = function(a) { this.initOptions(a), this.initColorButton() } ; f.prototype = { initColorButton: function() { var a = this; this.popup = new d({ content: new c({ noColorText: a.editor.getLang("clearColor"), editor: a.editor, onpickcolor: function(b, c) { a._onPickColor(c) }, onpicknocolor: function(b, c) { a._onPickNoColor(c) } }), editor: a.editor }), this.initSplitButton() }, _SplitButton_postRender: e.prototype.postRender, postRender: function() { this._SplitButton_postRender(), this.getDom("button_body").appendChild(b.createElementByHtml('
')), this.getDom().className += " edui-colorbutton" }, setColor: function(a) { this.getDom("colorlump").style.backgroundColor = a, this.color = a }, _onPickColor: function(a) { this.fireEvent("pickcolor", a) !== !1 && (this.setColor(a), this.popup.hide()) }, _onPickNoColor: function(a) { this.fireEvent("picknocolor") !== !1 && this.popup.hide() } }, a.inherits(f, e) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.Popup , c = baidu.editor.ui.TablePicker , d = baidu.editor.ui.SplitButton , e = baidu.editor.ui.TableButton = function(a) { this.initOptions(a), this.initTableButton() } ; e.prototype = { initTableButton: function() { var a = this; this.popup = new b({ content: new c({ editor: a.editor, onpicktable: function(b, c, d) { a._onPickTable(c, d) } }), editor: a.editor }), this.initSplitButton() }, _onPickTable: function(a, b) { this.fireEvent("picktable", a, b) !== !1 && this.popup.hide() } }, a.inherits(e, d) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.UIBase , c = baidu.editor.ui.AutoTypeSetPicker = function(a) { this.initOptions(a), this.initAutoTypeSetPicker() } ; c.prototype = { initAutoTypeSetPicker: function() { this.initUIBase() }, getHtmlTpl: function() { var a = this.editor , b = a.options.autotypeset , c = a.getLang("autoTypeSet") , d = "textAlignValue" + a.uid , e = "imageBlockLineValue" + a.uid; "symbolConverValue" + a.uid; return '
" + c.mergeLine + '" + c.delLine + '
" + c.indent + '
" + c.alignment + '" + a.getLang("justifyleft") + '" + a.getLang("justifycenter") + '" + a.getLang("justifyright") + '
" + c.imageFloat + '" + a.getLang("default") + '" + a.getLang("justifyleft") + '" + a.getLang("justifycenter") + '" + a.getLang("justifyright") + '
" + c.removeFontsize + '" + c.removeFontFamily + '
" + c.removeHtml + '
"; }, _UIBase_render: b.prototype.render }, a.inherits(c, b) }(), function() { function a(a) { for (var c, d = {}, e = a.getDom(), f = a.editor.uid, g = null, h = null, i = domUtils.getElementsByTagName(e, "input"), j = i.length - 1; c = i[j--]; ) if (g = c.getAttribute("type"), "checkbox" == g) if (h = c.getAttribute("name"), d[h] && delete d[h], c.checked) { var k = document.getElementById(h + "Value" + f); if (k) { if (/input/gi.test(k.tagName)) d[h] = k.value; else for (var l, m = k.getElementsByTagName("input"), n = m.length - 1; l = m[n--]; ) if (l.checked) { d[h] = l.value; break } } else d[h] = !0 } else d[h] = !1; else d[c.getAttribute("value")] = c.checked; for (var o, p = domUtils.getElementsByTagName(e, "select"), j = 0; o = p[j++]; ) { var q = o.getAttribute("name"); d[q] = d[q] ? o.value : "" } b.extend(a.editor.options.autotypeset, d), a.editor.setPreferences("autotypeset", d) } var b = baidu.editor.utils , c = baidu.editor.ui.Popup , d = baidu.editor.ui.AutoTypeSetPicker , e = baidu.editor.ui.SplitButton , f = baidu.editor.ui.AutoTypeSetButton = function(a) { this.initOptions(a), this.initAutoTypeSetButton() } ; f.prototype = { initAutoTypeSetButton: function() { var b = this; this.popup = new c({ content: new d({ editor: b.editor }), editor: b.editor, hide: function() { !this._hidden && this.getDom() && (a(this), this.getDom().style.display = "none", this._hidden = !0, this.fireEvent("hide")) } }); var e = 0; this.popup.addListener("postRenderAfter", function() { var c = this; if (!e) { var d = this.getDom() , f = d.getElementsByTagName("button")[0]; f.onclick = function() { a(c), b.editor.execCommand("autotypeset"), c.hide() } , domUtils.on(d, "click", function(d) { var e = d.target || d.srcElement , f = b.editor.uid; if (e && "INPUT" == e.tagName) { if ("imageBlockLine" == e.name || "textAlign" == e.name || "symbolConver" == e.name) for (var g = e.checked, h = document.getElementById(e.name + "Value" + f), i = h.getElementsByTagName("input"), j = { imageBlockLine: "none", textAlign: "left", symbolConver: "tobdc" }, k = 0; k < i.length; k++) g ? i[k].value == j[e.name] && (i[k].checked = "checked") : i[k].checked = !1; if (e.name == "imageBlockLineValue" + f || e.name == "textAlignValue" + f || "bdc" == e.name) { var l = e.parentNode.previousSibling.getElementsByTagName("input"); l && (l[0].checked = !0) } a(c) } }), e = 1 } }), this.initSplitButton() } }, b.inherits(f, e) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.Popup , c = baidu.editor.ui.Stateful , d = baidu.editor.ui.UIBase , e = baidu.editor.ui.CellAlignPicker = function(a) { this.initOptions(a), this.initSelected(), this.initCellAlignPicker() } ; e.prototype = { initSelected: function() { var a = { valign: { top: 0, middle: 1, bottom: 2 }, align: { left: 0, center: 1, right: 2 }, count: 3 }; this.selected && (this.selectedIndex = a.valign[this.selected.valign] * a.count + a.align[this.selected.align]) }, initCellAlignPicker: function() { this.initUIBase(), this.Stateful_init() }, getHtmlTpl: function() { for (var a = ["left", "center", "right"], b = 9, c = null, d = -1, e = [], f = 0; f < b; f++) c = this.selectedIndex === f ? ' class="edui-cellalign-selected" ' : "", d = f % 3, 0 === d && e.push(""), e.push('
'), 2 === d && e.push(""); return '
' + e.join("") + "
" }, getStateDom: function() { return this.target }, _onClick: function(a) { var c = a.target || a.srcElement; /icon/.test(c.className) && (this.items[c.parentNode.getAttribute("index")].onclick(), b.postHide(a)) }, _UIBase_render: d.prototype.render }, a.inherits(e, d), a.extend(e.prototype, c, !0) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.Stateful , c = baidu.editor.ui.uiUtils , d = baidu.editor.ui.UIBase , e = baidu.editor.ui.PastePicker = function(a) { this.initOptions(a), this.initPastePicker() } ; e.prototype = { initPastePicker: function() { this.initUIBase(), this.Stateful_init() }, getHtmlTpl: function() { return '
' + this.editor.getLang("pasteOpt") + '
' }, getStateDom: function() { return this.target }, format: function(a) { this.editor.ui._isTransfer = !0, this.editor.fireEvent("pasteTransfer", a) }, _onClick: function(a) { var b = domUtils.getNextDomNode(a) , d = c.getViewportRect().height , e = c.getClientRect(b); e.top + e.height > d ? b.style.top = -e.height - a.offsetHeight + "px" : b.style.top = "", /hidden/gi.test(domUtils.getComputedStyle(b, "visibility")) ? (b.style.visibility = "visible", domUtils.addClass(a, "edui-state-opened")) : (b.style.visibility = "hidden", domUtils.removeClasses(a, "edui-state-opened")) }, _UIBase_render: d.prototype.render }, a.inherits(e, d), a.extend(e.prototype, b, !0) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.uiUtils , c = baidu.editor.ui.UIBase , d = baidu.editor.ui.Toolbar = function(a) { this.initOptions(a), this.initToolbar() } ; d.prototype = { items: null, initToolbar: function() { this.items = this.items || [], this.initUIBase() }, add: function(a, b) { void 0 === b ? this.items.push(a) : this.items.splice(b, 0, a) }, getHtmlTpl: function() { for (var a = [], b = 0; b < this.items.length; b++) a[b] = this.items[b].renderHtml(); return '
' + a.join("") + "
" }, postRender: function() { for (var a = this.getDom(), c = 0; c < this.items.length; c++) this.items[c].postRender(); b.makeUnselectable(a) }, _onMouseDown: function(a) { var b = a.target || a.srcElement , c = b && b.tagName && b.tagName.toLowerCase(); if ("input" == c || "object" == c || "object" == c) return !1 } }, a.inherits(d, c) }(), function() { var a = baidu.editor.utils , b = baidu.editor.dom.domUtils , c = baidu.editor.ui.uiUtils , d = baidu.editor.ui.UIBase , e = baidu.editor.ui.Popup , f = baidu.editor.ui.Stateful , g = baidu.editor.ui.CellAlignPicker , h = baidu.editor.ui.Menu = function(a) { this.initOptions(a), this.initMenu() } , i = { renderHtml: function() { return '
' }, postRender: function() {}, queryAutoHide: function() { return !0 } }; h.prototype = { items: null, uiName: "menu", initMenu: function() { this.items = this.items || [], this.initPopup(), this.initItems() }, initItems: function() { for (var a = 0; a < this.items.length; a++) { var b = this.items[a]; "-" == b ? this.items[a] = this.getSeparator() : b instanceof j || (b.editor = this.editor, b.theme = this.editor.options.theme, this.items[a] = this.createItem(b)) } }, getSeparator: function() { return i }, createItem: function(a) { return a.menu = this, new j(a) }, _Popup_getContentHtmlTpl: e.prototype.getContentHtmlTpl, getContentHtmlTpl: function() { if (0 == this.items.length) return this._Popup_getContentHtmlTpl(); for (var a = [], b = 0; b < this.items.length; b++) { var c = this.items[b]; a[b] = c.renderHtml() } return '
' + a.join("") + "
" }, _Popup_postRender: e.prototype.postRender, postRender: function() { for (var a = this, d = 0; d < this.items.length; d++) { var e = this.items[d]; e.ownerMenu = this, e.postRender() } b.on(this.getDom(), "mouseover", function(b) { b = b || event; var d = b.relatedTarget || b.fromElement , e = a.getDom(); c.contains(e, d) || e === d || a.fireEvent("over") }), this._Popup_postRender() }, queryAutoHide: function(a) { if (a) { if (c.contains(this.getDom(), a)) return !1; for (var b = 0; b < this.items.length; b++) { var d = this.items[b]; if (d.queryAutoHide(a) === !1) return !1 } } }, clearItems: function() { for (var a = 0; a < this.items.length; a++) { var b = this.items[a]; clearTimeout(b._showingTimer), clearTimeout(b._closingTimer), b.subMenu && b.subMenu.destroy() } this.items = [] }, destroy: function() { this.getDom() && b.remove(this.getDom()), this.clearItems() }, dispose: function() { this.destroy() } }, a.inherits(h, e); var j = baidu.editor.ui.MenuItem = function(a) { if (this.initOptions(a), this.initUIBase(), this.Stateful_init(), this.subMenu && !(this.subMenu instanceof h)) if (a.className && a.className.indexOf("aligntd") != -1) { var c = this; this.subMenu.selected = this.editor.queryCommandValue("cellalignment"), this.subMenu = new e({ content: new g(this.subMenu), parentMenu: c, editor: c.editor, destroy: function() { this.getDom() && b.remove(this.getDom()) } }), this.subMenu.addListener("postRenderAfter", function() { b.on(this.getDom(), "mouseover", function() { c.addState("opened") }) }) } else this.subMenu = new h(this.subMenu) } ; j.prototype = { label: "", subMenu: null, ownerMenu: null, uiName: "menuitem", alwalysHoverable: !0, getHtmlTpl: function() { return '
' + this.renderLabelHtml() + "
" }, postRender: function() { var a = this; this.addListener("over", function() { a.ownerMenu.fireEvent("submenuover", a), a.subMenu && a.delayShowSubMenu() }), this.subMenu && (this.getDom().className += " edui-hassubmenu", this.subMenu.render(), this.addListener("out", function() { a.delayHideSubMenu() }), this.subMenu.addListener("over", function() { clearTimeout(a._closingTimer), a._closingTimer = null, a.addState("opened") }), this.ownerMenu.addListener("hide", function() { a.hideSubMenu() }), this.ownerMenu.addListener("submenuover", function(b, c) { c !== a && a.delayHideSubMenu() }), this.subMenu._bakQueryAutoHide = this.subMenu.queryAutoHide, this.subMenu.queryAutoHide = function(b) { return (!b || !c.contains(a.getDom(), b)) && this._bakQueryAutoHide(b) } ), this.getDom().style.tabIndex = "-1", c.makeUnselectable(this.getDom()), this.Stateful_postRender() }, delayShowSubMenu: function() { var a = this; a.isDisabled() || (a.addState("opened"), clearTimeout(a._showingTimer), clearTimeout(a._closingTimer), a._closingTimer = null, a._showingTimer = setTimeout(function() { a.showSubMenu() }, 250)) }, delayHideSubMenu: function() { var a = this; a.isDisabled() || (a.removeState("opened"), clearTimeout(a._showingTimer), a._closingTimer || (a._closingTimer = setTimeout(function() { a.hasState("opened") || a.hideSubMenu(), a._closingTimer = null }, 400))) }, renderLabelHtml: function() { return '
' + (this.label || "") + "
" }, getStateDom: function() { return this.getDom() }, queryAutoHide: function(a) { if (this.subMenu && this.hasState("opened")) return this.subMenu.queryAutoHide(a) }, _onClick: function(a, b) { this.hasState("disabled") || this.fireEvent("click", a, b) !== !1 && (this.subMenu ? this.showSubMenu() : e.postHide(a)) }, showSubMenu: function() { var a = c.getClientRect(this.getDom()); a.right -= 5, a.left += 2, a.width -= 7, a.top -= 4, a.bottom += 4, a.height += 8, this.subMenu.showAnchorRect(a, !0, !0) }, hideSubMenu: function() { this.subMenu.hide() } }, a.inherits(j, d), a.extend(j.prototype, f, !0) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.uiUtils , c = baidu.editor.ui.Menu , d = baidu.editor.ui.SplitButton , e = baidu.editor.ui.Combox = function(a) { this.initOptions(a), this.initCombox() } ; e.prototype = { uiName: "combox", onbuttonclick: function() { this.showPopup() }, initCombox: function() { var a = this; this.items = this.items || []; for (var b = 0; b < this.items.length; b++) { var d = this.items[b]; d.uiName = "listitem", d.index = b, d.onclick = function() { a.selectByIndex(this.index) } } this.popup = new c({ items: this.items, uiName: "list", editor: this.editor, captureWheel: !0, combox: this }), this.initSplitButton() }, _SplitButton_postRender: d.prototype.postRender, postRender: function() { this._SplitButton_postRender(), this.setLabel(this.label || ""), this.setValue(this.initValue || "") }, showPopup: function() { var a = b.getClientRect(this.getDom()); a.top += 1, a.bottom -= 1, a.height -= 2, this.popup.showAnchorRect(a) }, getValue: function() { return this.value }, setValue: function(a) { var b = this.indexByValue(a); b != -1 ? (this.selectedIndex = b, this.setLabel(this.items[b].label), this.value = this.items[b].value) : (this.selectedIndex = -1, this.setLabel(this.getLabelForUnknowValue(a)), this.value = a) }, setLabel: function(a) { this.getDom("button_body").innerHTML = a, this.label = a }, getLabelForUnknowValue: function(a) { return a }, indexByValue: function(a) { for (var b = 0; b < this.items.length; b++) if (a == this.items[b].value) return b; return -1 }, getItem: function(a) { return this.items[a] }, selectByIndex: function(a) { a < this.items.length && this.fireEvent("select", a) !== !1 && (this.selectedIndex = a, this.value = this.items[a].value, this.setLabel(this.items[a].label)) } }, a.inherits(e, d) }(), function() { var a, b, c, d = baidu.editor.utils, e = baidu.editor.dom.domUtils, f = baidu.editor.ui.uiUtils, g = baidu.editor.ui.Mask, h = baidu.editor.ui.UIBase, i = baidu.editor.ui.Button, j = baidu.editor.ui.Dialog = function(a) { if (a.name) { var b = a.name , c = a.cssRules; a.className || (a.className = "edui-for-" + b), c && (a.cssRules = ".edui-default .edui-for-" + b + " .edui-dialog-content {" + c + "}") } this.initOptions(d.extend({ autoReset: !0, draggable: !0, onok: function() {}, oncancel: function() {}, onclose: function(a, b) { return b ? this.onok() : this.oncancel() }, holdScroll: !1 }, a)), this.initDialog() } ; j.prototype = { draggable: !1, uiName: "dialog", initDialog: function() { var e = this , f = this.editor.options.theme; if (this.cssRules && d.cssRule("edui-customize-" + this.name + "-style", this.cssRules), this.initUIBase(), this.modalMask = a || (a = new g({ className: "edui-dialog-modalmask", theme: f, onclick: function() { c && c.close(!1) } })), this.dragMask = b || (b = new g({ className: "edui-dialog-dragmask", theme: f })), this.closeButton = new i({ className: "edui-dialog-closebutton", title: e.closeDialog, theme: f, onclick: function() { e.close(!1) } }), this.fullscreen && this.initResizeEvent(), this.buttons) for (var h = 0; h < this.buttons.length; h++) this.buttons[h]instanceof i || (this.buttons[h] = new i(d.extend(this.buttons[h], { editor: this.editor }, !0))) }, initResizeEvent: function() { var a = this; e.on(window, "resize", function() { a._hidden || void 0 === a._hidden || (a.__resizeTimer && window.clearTimeout(a.__resizeTimer), a.__resizeTimer = window.setTimeout(function() { a.__resizeTimer = null; var b = a.getDom() , c = a.getDom("content") , d = UE.ui.uiUtils.getClientRect(b) , e = UE.ui.uiUtils.getClientRect(c) , g = f.getViewportRect(); c.style.width = g.width - d.width + e.width + "px", c.style.height = g.height - d.height + e.height + "px", b.style.width = g.width + "px", b.style.height = g.height + "px", a.fireEvent("resize") }, 100)) }) }, fitSize: function() { var a = this.getDom("body") , b = this.mesureSize(); return a.style.width = b.width + "px", a.style.height = b.height + "px", b }, safeSetOffset: function(a) { var b = this , c = b.getDom() , d = f.getViewportRect() , e = f.getClientRect(c) , g = a.left; g + e.width > d.right && (g = d.right - e.width); var h = a.top; h + e.height > d.bottom && (h = d.bottom - e.height), c.style.left = Math.max(g, 0) + "px", c.style.top = Math.max(h, 0) + "px" }, showAtCenter: function() { var a = f.getViewportRect(); if (this.fullscreen) { var b = this.getDom() , c = this.getDom("content"); b.style.display = "block"; var d = UE.ui.uiUtils.getClientRect(b) , g = UE.ui.uiUtils.getClientRect(c); b.style.left = "-100000px", c.style.width = a.width - d.width + g.width + "px", c.style.height = a.height - d.height + g.height + "px", b.style.width = a.width + "px", b.style.height = a.height + "px", b.style.left = 0, this._originalContext = { html: { overflowX: document.documentElement.style.overflowX, overflowY: document.documentElement.style.overflowY }, body: { overflowX: document.body.style.overflowX, overflowY: document.body.style.overflowY } }, document.documentElement.style.overflowX = "hidden", document.documentElement.style.overflowY = "hidden", document.body.style.overflowX = "hidden", document.body.style.overflowY = "hidden" } else { this.getDom().style.display = ""; var h = this.fitSize() , i = 0 | this.getDom("titlebar").offsetHeight , j = a.width / 2 - h.width / 2 , k = a.height / 2 - (h.height - i) / 2 - i , l = this.getDom(); this.safeSetOffset({ left: Math.max(0 | j, 0), top: Math.max(0 | k, 0) }), e.hasClass(l, "edui-state-centered") || (l.className += " edui-state-centered") } this._show() }, includeDialogTpl: function(a, b) { return jQuery.ajax({ url: b + "?_t" + Date.now() }) }, getContentHtml: function() { var a = ""; return "string" == typeof this.content ? a = this.content : this.iframeUrl && (a = ''), a }, getHtmlTpl: function() { var a = ""; if (this.buttons) { for (var b = [], c = 0; c < this.buttons.length; c++) b[c] = this.buttons[c].renderHtml(); a = '
' + b.join("") + "
" } return '
' + (this.title || "") + "
" + this.closeButton.renderHtml() + '
' + (this.autoReset ? "" : this.getContentHtml()) + "
" + a + "
" }, postRender: function() { this.modalMask.getDom() || (this.modalMask.render(), this.modalMask.hide()), this.dragMask.getDom() || (this.dragMask.render(), this.dragMask.hide()); var a = this; if (this.addListener("show", function() { a.modalMask.show(this.getDom().style.zIndex - 2) }), this.addListener("hide", function() { a.modalMask.hide() }), this.buttons) for (var b = 0; b < this.buttons.length; b++) this.buttons[b].postRender(); e.on(window, "resize", function() { setTimeout(function() { a.isHidden() || a.safeSetOffset(f.getClientRect(a.getDom())) }) }), this._hide() }, mesureSize: function() { var a = this.getDom("body") , b = f.getClientRect(this.getDom("content")).width , c = a.style; return c.width = b, f.getClientRect(a) }, _onTitlebarMouseDown: function(a, b) { if (this.draggable) { var c, d = (f.getViewportRect(), this); f.startDrag(a, { ondragstart: function() { c = f.getClientRect(d.getDom()), d.getDom("contmask").style.visibility = "visible", d.dragMask.show(d.getDom().style.zIndex - 1) }, ondragmove: function(a, b) { var e = c.left + a , f = c.top + b; d.safeSetOffset({ left: e, top: f }) }, ondragstop: function() { d.getDom("contmask").style.visibility = "hidden", e.removeClasses(d.getDom(), ["edui-state-centered"]), d.dragMask.hide() } }) } }, reset: function() { this.getDom("content").innerHTML = this.getContentHtml(), this.getDom("content").innerHTML = '' this.fireEvent("dialogafterreset") }, _show: function() { this._hidden && (this.getDom().style.display = "", this.editor.container.style.zIndex && (this.getDom().style.zIndex = 1 * this.editor.container.style.zIndex + 10), this._hidden = !1, this.fireEvent("show"), baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = this.getDom().style.zIndex - 4) }, isHidden: function() { return this._hidden }, _hide: function() { if (!this._hidden) { var a = this.getDom(); a.style.display = "none", a.style.zIndex = "", a.style.width = "", a.style.height = "", this._hidden = !0, this.fireEvent("hide") } }, open: function() { if (this.autoReset) try { this.reset() } catch (a) { this.render(), this.open() } if (this.showAtCenter(), this.iframeUrl) try { this.getDom("iframe").focus() } catch (b) {} c = this }, _onCloseButtonClick: function(a, b) { this.close(!1) }, close: function(a) { if (this.fireEvent("close", a) !== !1) { this.fullscreen && (document.documentElement.style.overflowX = this._originalContext.html.overflowX, document.documentElement.style.overflowY = this._originalContext.html.overflowY, document.body.style.overflowX = this._originalContext.body.overflowX, document.body.style.overflowY = this._originalContext.body.overflowY, delete this._originalContext), this._hide(); var b = this.getDom("content") , c = this.getDom("iframe"); if (b && c) { var d = c.contentDocument || c.contentWindow.document; d && (d.body.innerHTML = ""), e.remove(b) } } } }, d.inherits(j, h) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.Menu , c = baidu.editor.ui.SplitButton , d = baidu.editor.ui.MenuButton = function(a) { this.initOptions(a), this.initMenuButton() } ; d.prototype = { initMenuButton: function() { var a = this; this.uiName = "menubutton", this.popup = new b({ items: a.items, className: a.className, editor: a.editor }), this.popup.addListener("show", function() { for (var b = this, c = 0; c < b.items.length; c++) b.items[c].removeState("checked"), b.items[c].value == a._value && (b.items[c].addState("checked"), this.value = a._value) }), this.initSplitButton() }, setValue: function(a) { this._value = a } }, a.inherits(d, c) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.Popup , c = baidu.editor.ui.SplitButton , d = baidu.editor.ui.MultiMenuPop = function(a) { this.initOptions(a), this.initMultiMenu() } , e = function(a) { return jQuery.ajax({ url: a + "?_t" + Date.now() }) }; d.prototype = { initMultiMenu: function() { var a = this; this.popup = new b({ content: "", editor: a.editor, iframe_rendered: !1, onshow: function() { this.iframe_rendered || (this.iframe_rendered = !0, this.getDom("content").innerHTML = '', a.editor.container.style.zIndex && (this.getDom().style.zIndex = 1 * a.editor.container.style.zIndex + 1)) } }), this.onbuttonclick = function() { this.showPopup() } , this.initSplitButton() } }, a.inherits(d, c) }(), function() { function a(a) { var b = a.target || a.srcElement , c = g.findParent(b, function(a) { return g.hasClass(a, "edui-shortcutmenu") || g.hasClass(a, "edui-popup") }, !0); if (!c) for (var d, e = 0; d = h[e++]; ) d.hide() } var b, c = baidu.editor.ui, d = c.UIBase, e = c.uiUtils, f = baidu.editor.utils, g = baidu.editor.dom.domUtils, h = [], i = !1, j = c.ShortCutMenu = function(a) { this.initOptions(a), this.initShortCutMenu() } ; j.postHide = a, j.prototype = { isHidden: !0, SPACE: 5, initShortCutMenu: function() { this.items = this.items || [], this.initUIBase(), this.initItems(), this.initEvent(), h.push(this) }, initEvent: function() { var a = this , c = a.editor.document; g.on(c, "mousemove", function(c) { if (a.isHidden === !1) { if (a.getSubMenuMark() || "contextmenu" == a.eventType) return; var d = !0 , e = a.getDom() , f = e.offsetWidth , g = e.offsetHeight , h = f / 2 + a.SPACE , i = g / 2 , j = Math.abs(c.screenX - a.left) , k = Math.abs(c.screenY - a.top); clearTimeout(b), b = setTimeout(function() { k > 0 && k < i ? a.setOpacity(e, "1") : k > i && k < i + 70 ? (a.setOpacity(e, "0.5"), d = !1) : k > i + 70 && k < i + 140 && a.hide(), d && j > 0 && j < h ? a.setOpacity(e, "1") : j > h && j < h + 70 ? a.setOpacity(e, "0.5") : j > h + 70 && j < h + 140 && a.hide() }) } }), browser.chrome && g.on(c, "mouseout", function(b) { var c = b.relatedTarget || b.toElement; null != c && "HTML" != c.tagName || a.hide() }), a.editor.addListener("afterhidepop", function() { a.isHidden || (i = !0) }) }, initItems: function() { if (f.isArray(this.items)) for (var a = 0, b = this.items.length; a < b; a++) { var d = this.items[a].toLowerCase(); c[d] && (this.items[a] = new c[d](this.editor), this.items[a].className += " edui-shortcutsubmenu ") } }, setOpacity: function(a, b) { browser.ie && browser.version < 9 ? a.style.filter = "alpha(opacity = " + 100 * parseFloat(b) + ");" : a.style.opacity = b }, getSubMenuMark: function() { i = !1; for (var a, b = e.getFixedLayer(), c = g.getElementsByTagName(b, "div", function(a) { return g.hasClass(a, "edui-shortcutsubmenu edui-popup") }), d = 0; a = c[d++]; ) "none" != a.style.display && (i = !0); return i }, show: function(a, b) { function c(a) { a.left < 0 && (a.left = 0), a.top < 0 && (a.top = 0), i.style.cssText = "position:absolute;left:" + a.left + "px;top:" + a.top + "px;" } function d(a) { a.tagName || (a = a.getDom()), h.left = parseInt(a.style.left), h.top = parseInt(a.style.top), h.top -= i.offsetHeight + 15, c(h) } var f = this , h = {} , i = this.getDom() , j = e.getFixedLayer(); if (f.eventType = a.type, i.style.cssText = "display:block;left:-9999px", "contextmenu" == a.type && b) { var k = g.getElementsByTagName(j, "div", "edui-contextmenu")[0]; k ? d(k) : f.editor.addListener("aftershowcontextmenu", function(a, b) { d(b) }) } else h = e.getViewportOffsetByEvent(a), h.top -= i.offsetHeight + f.SPACE, h.left += f.SPACE + 20, c(h), f.setOpacity(i, .2); f.isHidden = !1, f.left = a.screenX + i.offsetWidth / 2 - f.SPACE, f.top = a.screenY - i.offsetHeight / 2 - f.SPACE, f.editor && (i.style.zIndex = 1 * f.editor.container.style.zIndex + 10, j.style.zIndex = i.style.zIndex - 1) }, hide: function() { this.getDom() && (this.getDom().style.display = "none"), this.isHidden = !0 }, postRender: function() { if (f.isArray(this.items)) for (var a, b = 0; a = this.items[b++]; ) a.postRender() }, getHtmlTpl: function() { var a; if (f.isArray(this.items)) { a = []; for (var b = 0; b < this.items.length; b++) a[b] = this.items[b].renderHtml(); a = a.join("") } else a = this.items; return '
' + a + "
" } }, f.inherits(j, d), g.on(document, "mousedown", function(b) { a(b) }), g.on(window, "scroll", function(b) { a(b) }) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui.UIBase , c = baidu.editor.ui.Breakline = function(a) { this.initOptions(a), this.initSeparator() } ; c.prototype = { uiName: "Breakline", initSeparator: function() { this.initUIBase() }, getHtmlTpl: function() { return "
" } }, a.inherits(c, b) }(), function() { var a = baidu.editor.utils , b = baidu.editor.dom.domUtils , c = baidu.editor.ui.UIBase , d = baidu.editor.ui.Message = function(a) { this.initOptions(a), this.initMessage() } ; d.prototype = { initMessage: function() { this.initUIBase() }, getHtmlTpl: function() { return '
×
' }, reset: function(a) { var b = this; a.keepshow || (clearTimeout(this.timer), b.timer = setTimeout(function() { b.hide() }, a.timeout || 4e3)), void 0 !== a.content && b.setContent(a.content), void 0 !== a.type && b.setType(a.type), b.show() }, postRender: function() { var a = this , c = this.getDom("closer"); c && b.on(c, "click", function() { a.hide() }) }, setContent: function(a) { this.getDom("content").innerHTML = a }, setType: function(a) { a = a || "info"; var b = this.getDom("body"); b.className = b.className.replace(/edui-message-type-[\w-]+/, "edui-message-type-" + a) }, getContent: function() { return this.getDom("content").innerHTML }, getType: function() { var a = this.getDom("body").match(/edui-message-type-([\w-]+)/); return a ? a[1] : "" }, show: function() { this.getDom().style.display = "block" }, hide: function() { var a = this.getDom(); a && (a.style.display = "none", a.parentNode && a.parentNode.removeChild(a)) } }, a.inherits(d, c) }(), function() { var a = baidu.editor.utils , b = baidu.editor.ui , c = b.Dialog; b.buttons = {}, b.Dialog = function(a) { var b = new c(a); return b.addListener("hide", function() { if (b.editor) { var a = b.editor; try { if (browser.gecko) { var c = a.window.scrollY , d = a.window.scrollX; a.body.focus(), a.window.scrollTo(d, c) } else a.focus() } catch (e) {} } }), b } ; var targetHref = window.location.origin+this.UEDITOR_HOME_URL; for (var d, e = targetHref + "dialogs", f = { anchor: e + "/anchor/anchor.html", insertimage: e + "/image/image.html", link: "~/dialogs/link/link.html", spechars: e + "/spechars/spechars.html", searchreplace: e + "/searchreplace/searchreplace.html", map: e + "/map/map.html", gmap: e + "/gmap/gmap.html", insertvideo: e + "/video/video.html", help: e + "/help/help.html", preview: e + "/preview/preview.html", emotion: "~/dialogs/emotion/emotion.html", // emotion: e + "/emotion/emotion.html", wordimage: e + "/wordimage/wordimage.html", attachment: e + "/attachment/attachment.html", insertframe: e + "/insertframe/insertframe.html", edittip: e + "/table/edittip.html", edittable: e + "/table/edittable.html", edittd: e + "/table/edittd.html", webapp: e + "/webapp/webapp.html", snapscreen: e + "/snapscreen/snapscreen.html", scrawl: e + "/scrawl/scrawl.html", music: e + "/music/music.html", template: e + "/template/template.html", background: e + "/background/background.html", charts: e + "/charts/charts.html" }, g = ["undo", "redo", "formatmatch", "bold", "italic", "underline", "fontborder", "touppercase", "tolowercase", "strikethrough", "subscript", "superscript", "source", "indent", "outdent", "blockquote", "pasteplain", "pagebreak", "selectall", "print", "horizontal", "removeformat", "time", "date", "unlink", "insertparagraphbeforetable", "insertrow", "insertcol", "mergeright", "mergedown", "deleterow", "deletecol", "splittorows", "splittocols", "splittocells", "mergecells", "deletetable", "drafts"], h = 0; d = g[h++]; ) d = d.toLowerCase(), b[d] = function(a) { return function(c) { var d = new b.Button({ className: "edui-for-" + a, title: c.options.labelMap[a] || c.getLang("labelMap." + a) || "", onclick: function() { c.execCommand(a) }, theme: c.options.theme, showText: !1 }); return b.buttons[a] = d, c.addListener("selectionchange", function(b, e, f) { var g = c.queryCommandState(a); g == -1 ? (d.setDisabled(!0), d.setChecked(!1)) : f || (d.setDisabled(!1), d.setChecked(g)) }), d } }(d); b.cleardoc = function(a) { var c = new b.Button({ className: "edui-for-cleardoc", title: a.options.labelMap.cleardoc || a.getLang("labelMap.cleardoc") || "", theme: a.options.theme, onclick: function() { confirm(a.getLang("confirmClear")) && a.execCommand("cleardoc") } }); return b.buttons.cleardoc = c, a.addListener("selectionchange", function() { c.setDisabled(a.queryCommandState("cleardoc") == -1) }), c } ; var i = { justify: ["left", "right", "center", "justify"], imagefloat: ["none", "left", "center", "right"], directionality: ["ltr", "rtl"] }; for (var j in i) !function(a, c) { for (var d, e = 0; d = c[e++]; ) !function(c) { b[a.replace("float", "") + c] = function(d) { var e = new b.Button({ className: "edui-for-" + a.replace("float", "") + c, title: d.options.labelMap[a.replace("float", "") + c] || d.getLang("labelMap." + a.replace("float", "") + c) || "", theme: d.options.theme, onclick: function() { d.execCommand(a, c) } }); return b.buttons[a] = e, d.addListener("selectionchange", function(b, f, g) { e.setDisabled(d.queryCommandState(a) == -1), e.setChecked(d.queryCommandValue(a) == c && !g) }), e } }(d) }(j, i[j]); for (var d, h = 0; d = ["backcolor", "forecolor"][h++]; ) b[d] = function(a) { return function(c) { var d = new b.ColorButton({ className: "edui-for-" + a, color: "default", title: c.options.labelMap[a] || c.getLang("labelMap." + a) || "", editor: c, onpickcolor: function(b, d) { c.execCommand(a, d) }, onpicknocolor: function() { c.execCommand(a, "default"), this.setColor("transparent"), this.color = "default" }, onbuttonclick: function() { c.execCommand(a, this.color) } }); return b.buttons[a] = d, c.addListener("selectionchange", function() { d.setDisabled(c.queryCommandState(a) == -1) }), d } }(d); var k = { noOk: ["searchreplace", "help", "spechars", "webapp", "preview"], ok: ["attachment", "anchor", "link", "insertimage", "map", "gmap", "insertframe", "wordimage", "insertvideo", "insertframe", "edittip", "edittable", "edittd", "scrawl", "template", "music", "background", "charts"] }; for (var j in k) !function(c, d) { for (var e, g = 0; e = d[g++]; ) browser.opera && "searchreplace" === e || !function(d) { b[d] = function(e, g, h) { g = g || (e.options.iframeUrlMap || {})[d] || f[d], h = e.options.labelMap[d] || e.getLang("labelMap." + d) || ""; var i; g && (i = new b.Dialog(a.extend({ iframeUrl: e.ui.mapUrl(g), editor: e, className: "edui-for-" + d, title: h, holdScroll: "insertimage" === d, fullscreen: /charts|preview/.test(d), closeDialog: e.getLang("closeDialog") }, "ok" == c ? { buttons: [{ className: "edui-okbutton", label: e.getLang("ok"), editor: e, onclick: function() { i.close(!0) } }, { className: "edui-cancelbutton", label: e.getLang("cancel"), editor: e, onclick: function() { i.close(!1) } }] } : {})), e.ui._dialogs[d + "Dialog"] = i); var j = new b.Button({ className: "edui-for-" + d, title: h, onclick: function() { if (i) switch (d) { case "wordimage": var a = e.execCommand("wordimage"); a && a.length && (i.render(), i.open()); break; case "scrawl": e.queryCommandState("scrawl") != -1 && (i.render(), i.open()); break; default: i.render(), i.open() } }, theme: e.options.theme, disabled: "scrawl" == d && e.queryCommandState("scrawl") == -1 || "charts" == d }); return b.buttons[d] = j, e.addListener("selectionchange", function() { var a = { edittable: 1 }; if (!(d in a)) { var b = e.queryCommandState(d); j.getDom() && (j.setDisabled(b == -1), j.setChecked(b)) } }), j } }(e.toLowerCase()) }(j, k[j]); b.snapscreen = function(a, c, d) { d = a.options.labelMap.snapscreen || a.getLang("labelMap.snapscreen") || ""; var e = new b.Button({ className: "edui-for-snapscreen", title: d, onclick: function() { a.execCommand("snapscreen") }, theme: a.options.theme }); if (b.buttons.snapscreen = e, c = c || (a.options.iframeUrlMap || {}).snapscreen || f.snapscreen) { var g = new b.Dialog({ iframeUrl: a.ui.mapUrl(c), editor: a, className: "edui-for-snapscreen", title: d, buttons: [{ className: "edui-okbutton", label: a.getLang("ok"), editor: a, onclick: function() { g.close(!0) } }, { className: "edui-cancelbutton", label: a.getLang("cancel"), editor: a, onclick: function() { g.close(!1) } }] }); g.render(), a.ui._dialogs.snapscreenDialog = g } return a.addListener("selectionchange", function() { e.setDisabled(a.queryCommandState("snapscreen") == -1) }), e } , b.insertcode = function(c, d, e) { d = c.options.insertcode || [], e = c.options.labelMap.insertcode || c.getLang("labelMap.insertcode") || ""; var f = []; a.each(d, function(a, b) { f.push({ label: a, value: b, theme: c.options.theme, renderLabelHtml: function() { return '
' + (this.label || "") + "
" } }) }); var g = new b.Combox({ editor: c, items: f, onselect: function(a, b) { c.execCommand("insertcode", this.items[b].value) }, onbuttonclick: function() { this.showPopup() }, title: e, initValue: e, className: "edui-for-insertcode", indexByValue: function(a) { if (a) for (var b, c = 0; b = this.items[c]; c++) if (b.value.indexOf(a) != -1) return c; return -1 } }); return b.buttons.insertcode = g, c.addListener("selectionchange", function(a, b, d) { if (!d) { var f = c.queryCommandState("insertcode"); if (f == -1) g.setDisabled(!0); else { g.setDisabled(!1); var h = c.queryCommandValue("insertcode"); if (!h) return void g.setValue(e); h && (h = h.replace(/['"]/g, "").split(",")[0]), g.setValue(h) } } }), g } , b.fontfamily = function(c, d, e) { if (d = c.options.fontfamily || [], e = c.options.labelMap.fontfamily || c.getLang("labelMap.fontfamily") || "", d.length) { for (var f, g = 0, h = []; f = d[g]; g++) { var i = c.getLang("fontfamily")[f.name] || ""; !function(b, d) { h.push({ label: b, value: d, theme: c.options.theme, renderLabelHtml: function() { return '
' + (this.label || "") + "
" } }) }(f.label || i, f.val) } var j = new b.Combox({ editor: c, items: h, onselect: function(a, b) { c.execCommand("FontFamily", this.items[b].value) }, onbuttonclick: function() { this.showPopup() }, title: e, initValue: e, className: "edui-for-fontfamily", indexByValue: function(a) { if (a) for (var b, c = 0; b = this.items[c]; c++) if (b.value.indexOf(a) != -1) return c; return -1 } }); return b.buttons.fontfamily = j, c.addListener("selectionchange", function(a, b, d) { if (!d) { var e = c.queryCommandState("FontFamily"); if (e == -1) j.setDisabled(!0); else { j.setDisabled(!1); var f = c.queryCommandValue("FontFamily"); f && (f = f.replace(/['"]/g, "").split(",")[0]), j.setValue(f) } } }), j } } , b.fontsize = function(a, c, d) { if (d = a.options.labelMap.fontsize || a.getLang("labelMap.fontsize") || "", c = c || a.options.fontsize || [], c.length) { for (var e = [], f = 0; f < c.length; f++) { var g = c[f] + "px"; e.push({ label: g, value: g, theme: a.options.theme, renderLabelHtml: function() { return '
' + (this.label || "") + "
" } }) } var h = new b.Combox({ editor: a, items: e, title: d, initValue: d, onselect: function(b, c) { a.execCommand("FontSize", this.items[c].value) }, onbuttonclick: function() { this.showPopup() }, className: "edui-for-fontsize" }); return b.buttons.fontsize = h, a.addListener("selectionchange", function(b, c, d) { if (!d) { var e = a.queryCommandState("FontSize"); e == -1 ? h.setDisabled(!0) : (h.setDisabled(!1), h.setValue(a.queryCommandValue("FontSize"))) } }), h } } , b.paragraph = function(c, d, e) { if (e = c.options.labelMap.paragraph || c.getLang("labelMap.paragraph") || "", d = c.options.paragraph || [], !a.isEmptyObject(d)) { var f = []; for (var g in d) f.push({ value: g, label: d[g] || c.getLang("paragraph")[g], theme: c.options.theme, renderLabelHtml: function() { return '
' + (this.label || "") + "
" } }); var h = new b.Combox({ editor: c, items: f, title: e, initValue: e, className: "edui-for-paragraph", onselect: function(a, b) { c.execCommand("Paragraph", this.items[b].value) }, onbuttonclick: function() { this.showPopup() } }); return b.buttons.paragraph = h, c.addListener("selectionchange", function(a, b, d) { if (!d) { var e = c.queryCommandState("Paragraph"); if (e == -1) h.setDisabled(!0); else { h.setDisabled(!1); var f = c.queryCommandValue("Paragraph") , g = h.indexByValue(f); g != -1 ? h.setValue(f) : h.setValue(h.initValue) } } }), h } } , b.customstyle = function(a) { var c = a.options.customstyle || [] , d = a.options.labelMap.customstyle || a.getLang("labelMap.customstyle") || ""; if (c.length) { for (var e, f = a.getLang("customstyle"), g = 0, h = []; e = c[g++]; ) !function(b) { var c = {}; c.label = b.label ? b.label : f[b.name], c.style = b.style, c.className = b.className, c.tag = b.tag, h.push({ label: c.label, value: c, theme: a.options.theme, renderLabelHtml: function() { return '
<' + c.tag + " " + (c.className ? ' class="' + c.className + '"' : "") + (c.style ? ' style="' + c.style + '"' : "") + ">" + c.label + "
" } }) }(e); var i = new b.Combox({ editor: a, items: h, title: d, initValue: d, className: "edui-for-customstyle", onselect: function(b, c) { a.execCommand("customstyle", this.items[c].value) }, onbuttonclick: function() { this.showPopup() }, indexByValue: function(a) { for (var b, c = 0; b = this.items[c++]; ) if (b.label == a) return c - 1; return -1 } }); return b.buttons.customstyle = i, a.addListener("selectionchange", function(b, c, d) { if (!d) { var e = a.queryCommandState("customstyle"); if (e == -1) i.setDisabled(!0); else { i.setDisabled(!1); var f = a.queryCommandValue("customstyle") , g = i.indexByValue(f); g != -1 ? i.setValue(f) : i.setValue(i.initValue) } } }), i } } , b.inserttable = function(a, c, d) { d = a.options.labelMap.inserttable || a.getLang("labelMap.inserttable") || ""; var e = new b.TableButton({ editor: a, title: d, className: "edui-for-inserttable", onpicktable: function(b, c, d) { a.execCommand("InsertTable", { numRows: d, numCols: c, border: 1 }) }, onbuttonclick: function() { this.showPopup() } }); return b.buttons.inserttable = e, a.addListener("selectionchange", function() { e.setDisabled(a.queryCommandState("inserttable") == -1) }), e } , b.lineheight = function(a) { var c = a.options.lineheight || []; if (c.length) { for (var d, e = 0, f = []; d = c[e++]; ) f.push({ label: d, value: d, theme: a.options.theme, onclick: function() { a.execCommand("lineheight", this.value) } }); var g = new b.MenuButton({ editor: a, className: "edui-for-lineheight", title: a.options.labelMap.lineheight || a.getLang("labelMap.lineheight") || "", items: f, onbuttonclick: function() { var b = a.queryCommandValue("LineHeight") || this.value; a.execCommand("LineHeight", b) } }); return b.buttons.lineheight = g, a.addListener("selectionchange", function() { var b = a.queryCommandState("LineHeight"); if (b == -1) g.setDisabled(!0); else { g.setDisabled(!1); var c = a.queryCommandValue("LineHeight"); c && g.setValue((c + "").replace(/cm/, "")), g.setChecked(b) } }), g } } ; for (var l, m = ["top", "bottom"], n = 0; l = m[n++]; ) !function(a) { b["rowspacing" + a] = function(c) { var d = c.options["rowspacing" + a] || []; if (!d.length) return null; for (var e, f = 0, g = []; e = d[f++]; ) g.push({ label: e, value: e, theme: c.options.theme, onclick: function() { c.execCommand("rowspacing", this.value, a) } }); var h = new b.MenuButton({ editor: c, className: "edui-for-rowspacing" + a, title: c.options.labelMap["rowspacing" + a] || c.getLang("labelMap.rowspacing" + a) || "", items: g, onbuttonclick: function() { var b = c.queryCommandValue("rowspacing", a) || this.value; c.execCommand("rowspacing", b, a) } }); return b.buttons[a] = h, c.addListener("selectionchange", function() { var b = c.queryCommandState("rowspacing", a); if (b == -1) h.setDisabled(!0); else { h.setDisabled(!1); var d = c.queryCommandValue("rowspacing", a); d && h.setValue((d + "").replace(/%/, "")), h.setChecked(b) } }), h } }(l); for (var o, p = ["insertorderedlist", "insertunorderedlist"], q = 0; o = p[q++]; ) !function(a) { b[a] = function(c) { var d = c.options[a] , e = function() { c.execCommand(a, this.value) } , f = []; for (var g in d) f.push({ label: d[g] || c.getLang()[a][g] || "", value: g, theme: c.options.theme, onclick: e }); var h = new b.MenuButton({ editor: c, className: "edui-for-" + a, title: c.getLang("labelMap." + a) || "", items: f, onbuttonclick: function() { var b = c.queryCommandValue(a) || this.value; c.execCommand(a, b) } }); return b.buttons[a] = h, c.addListener("selectionchange", function() { var b = c.queryCommandState(a); if (b == -1) h.setDisabled(!0); else { h.setDisabled(!1); var d = c.queryCommandValue(a); h.setValue(d), h.setChecked(b) } }), h } }(o); b.fullscreen = function(a, c) { c = a.options.labelMap.fullscreen || a.getLang("labelMap.fullscreen") || ""; var d = new b.Button({ className: "edui-for-fullscreen", title: c, theme: a.options.theme, onclick: function() { a.ui && a.ui.setFullScreen(!a.ui.isFullScreen()), this.setChecked(a.ui.isFullScreen()) } }); return b.buttons.fullscreen = d, a.addListener("selectionchange", function() { var b = a.queryCommandState("fullscreen"); d.setDisabled(b == -1), d.setChecked(a.ui.isFullScreen()) }), d } , b.emotion = function(a, c) { var d = "emotion" , e = new b.MultiMenuPop({ title: a.options.labelMap[d] || a.getLang("labelMap." + d) || "", editor: a, className: "edui-for-" + d, iframeUrl: a.ui.mapUrl(c || (a.options.iframeUrlMap || {})[d] || f[d]) }); return b.buttons[d] = e, a.addListener("selectionchange", function() { e.setDisabled(a.queryCommandState(d) == -1) }), e } , b.autotypeset = function(a) { var c = new b.AutoTypeSetButton({ editor: a, title: a.options.labelMap.autotypeset || a.getLang("labelMap.autotypeset") || "", className: "edui-for-autotypeset", onbuttonclick: function() { a.execCommand("autotypeset") } }); return b.buttons.autotypeset = c, a.addListener("selectionchange", function() { c.setDisabled(a.queryCommandState("autotypeset") == -1) }), c } , b.simpleupload = function(a) { var c = "simpleupload" , d = new b.Button({ className: "edui-for-" + c, title: a.options.labelMap[c] || a.getLang("labelMap." + c) || "", onclick: function() {}, theme: a.options.theme, showText: !1 }); return b.buttons[c] = d, a.addListener("ready", function() { var b = d.getDom("body") , c = b.children[0]; a.fireEvent("simpleuploadbtnready", c) }), a.addListener("selectionchange", function(b, e, f) { var g = a.queryCommandState(c); g == -1 ? (d.setDisabled(!0), d.setChecked(!1)) : f || (d.setDisabled(!1), d.setChecked(g)) }), d } }(), function() { function a(a) { this.initOptions(a), this.initEditorUI() } var b = baidu.editor.utils , c = baidu.editor.ui.uiUtils , d = baidu.editor.ui.UIBase , e = baidu.editor.dom.domUtils , f = []; a.prototype = { uiName: "editor", initEditorUI: function() { function a(a, b) { a.setOpt({ wordCount: !0, maximumWords: 1e4, wordCountMsg: a.options.wordCountMsg || a.getLang("wordCountMsg"), wordOverFlowMsg: a.options.wordOverFlowMsg || a.getLang("wordOverFlowMsg") }); var c = a.options , d = c.maximumWords , e = c.wordCountMsg , f = c.wordOverFlowMsg , g = b.getDom("wordcount"); if (c.wordCount) { var h = a.getContentLength(!0); h > d ? (g.innerHTML = f, a.fireEvent("wordcountoverflow")) : g.innerHTML = e.replace("{#leave}", d - h).replace("{#count}", h) } } this.editor.ui = this, this._dialogs = {}, this.initUIBase(), this._initToolbars(); var b = this.editor , c = this; b.addListener("ready", function() { function d() { a(b, c), e.un(b.document, "click", arguments.callee) } b.getDialog = function(a) { return b.ui._dialogs[a + "Dialog"] } , e.on(b.window, "scroll", function(a) { baidu.editor.ui.Popup.postHide(a) }), b.ui._actualFrameWidth = b.options.initialFrameWidth, UE.browser.ie && 6 === UE.browser.version && b.container.ownerDocument.execCommand("BackgroundImageCache", !1, !0), b.options.elementPathEnabled && (b.ui.getDom("elementpath").innerHTML = '
' + b.getLang("elementPathTip") + ":
"), b.options.wordCount && (e.on(b.document, "click", d), b.ui.getDom("wordcount").innerHTML = b.getLang("wordCountTip")), b.ui._scale(), b.options.scaleEnabled ? (b.autoHeightEnabled && b.disableAutoHeight(), c.enableScale()) : c.disableScale(), b.options.elementPathEnabled || b.options.wordCount || b.options.scaleEnabled || (b.ui.getDom("elementpath").style.display = "none", b.ui.getDom("wordcount").style.display = "none", b.ui.getDom("scale").style.display = "none"), b.selection.isFocus() && b.fireEvent("selectionchange", !1, !0) }), b.addListener("mousedown", function(a, b) { var c = b.target || b.srcElement; baidu.editor.ui.Popup.postHide(b, c), baidu.editor.ui.ShortCutMenu.postHide(b) }), b.addListener("delcells", function() { UE.ui.edittip && new UE.ui.edittip(b), b.getDialog("edittip").open() }); var d, f, g = !1; b.addListener("afterpaste", function() { b.queryCommandState("pasteplain") || (baidu.editor.ui.PastePicker && (d = new baidu.editor.ui.Popup({ content: new baidu.editor.ui.PastePicker({ editor: b }), editor: b, className: "edui-wordpastepop" }), d.render()), g = !0) }), b.addListener("afterinserthtml", function() { clearTimeout(f), f = setTimeout(function() { if (d && (g || b.ui._isTransfer)) { if (d.isHidden()) { var a = e.createElement(b.document, "span", { style: "line-height:0px;", innerHTML: "\ufeff" }) , c = b.selection.getRange(); c.insertNode(a); var f = getDomNode(a, "firstChild", "previousSibling"); f && d.showAnchor(3 == f.nodeType ? f.parentNode : f), e.remove(a) } else d.show(); delete b.ui._isTransfer, g = !1 } }, 200) }), b.addListener("contextmenu", function(a, b) { baidu.editor.ui.Popup.postHide(b) }), b.addListener("keydown", function(a, b) { d && d.dispose(b); var c = b.keyCode || b.which; b.altKey && 90 == c && UE.ui.buttons.fullscreen.onclick() }), b.addListener("wordcount", function(b) { a(this, c) }), b.addListener("selectionchange", function() { b.options.elementPathEnabled && c[(b.queryCommandState("elementpath") == -1 ? "dis" : "en") + "ableElementPath"](), b.options.scaleEnabled && c[(b.queryCommandState("scale") == -1 ? "dis" : "en") + "ableScale"]() }); var h = new baidu.editor.ui.Popup({ editor: b, content: "", canClick: !0, className: "edui-bubble popup-img", _onEditButtonClick: function(a) { this.hide(), a ? b.fireEvent("extendWeixinLink") : b.ui._dialogs.linkDialog.open() }, _onImgEditButtonClick: function(a) { // b.ui._dialogs[a] && b.ui._dialogs[a].open() }, _onExtendImgCropButtonClick: function(a) { this.hide(), b.fireEvent("extendImageCrop", { format: decodeURI(a) }) }, _onExtendImgEditButtonClick: function(a) { this.hide(), b.fireEvent("extendImageSelect", { format: decodeURI(a) }) }, _onImgSetFloat: function(a) { this.hide(), b.execCommand("imagefloat", a) }, _setIframeAlign: function(a) { var b = h.anchorEl , c = b.cloneNode(!0); switch (a) { case -2: c.setAttribute("align", ""); break; case -1: c.setAttribute("align", "left"); break; case 1: c.setAttribute("align", "right") } b.parentNode.insertBefore(c, b), e.remove(b), h.anchorEl = c, h.showAnchor(h.anchorEl) }, _updateIframe: function() { var a = b._iframe = h.anchorEl; e.hasClass(a, "ueditor_baidumap") ? (b.selection.getRange().selectNode(a).select(), b.ui._dialogs.mapDialog.open(), h.hide()) : (b.ui._dialogs.insertframeDialog.open(), h.hide()) }, _onRemoveButtonClick: function(a) { b.execCommand(a), this.hide() }, queryAutoHide: function(a) { return a && a.ownerDocument == b.document && ("img" == a.tagName.toLowerCase() || e.findParentByTagName(a, "a", !0)) ? a !== h.anchorEl : baidu.editor.ui.Popup.prototype.queryAutoHide.call(this, a) } }); h.render(), b.options.imagePopup && (b.addListener("mouseover", function(a, c) { c = c || window.event; var d = c.target || c.srcElement; if (b.ui._dialogs.insertframeDialog && /iframe/gi.test(d.tagName)) { var e = h.formatHtml("" + b.getLang("property") + ': ' + b.getLang("default") + '  ' + b.getLang("justifyleft") + '  ' + b.getLang("justifyright") + '   ' + b.getLang("modify") + ""); e ? (h.getDom("content").innerHTML = e, h.anchorEl = d, h.showAnchor(h.anchorEl)) : h.hide() } }), b.addListener("selectionchange", function(a, c) { function d(a) { for (var b = a.parentElement, c = !1; null !== b; ) "XBTMPL" != b.tagName ? b = b.parentElement : (b = null, c = !0); return c } function f(a) { $(j).attr("data-ratio","0.6") $(j).css({ width: a + "%", height: "auto" }) } if (c) { var g = "" , i = "" , j = b.selection.getRange().getClosedNode() , k = b.ui._dialogs , l = b.__allListeners; if (j && "IMG" == j.tagName) { if (d(j)) return; var m = "insertimageDialog"; j.className.indexOf("edui-faked-video") == -1 && j.className.indexOf("edui-upload-video") == -1 || (m = "insertvideoDialog"), j.className.indexOf("edui-faked-webapp") != -1 && (m = "webappDialog"), j.src.indexOf("http://api.map.baidu.com") != -1 && (m = "mapDialog"), j.className.indexOf("edui-faked-music") != -1 && (m = "musicDialog"), j.src.indexOf("http://maps.google.com/maps/api/staticmap") != -1 && (m = "gmapDialog"), j.getAttribute("anchorname") && (m = "anchorDialog", g = h.formatHtml("" + b.getLang("property") + ': ' + b.getLang("modify") + "  " + b.getLang("delete") + "")), j.getAttribute("word_img") && (b.word_img = [j.getAttribute("word_img")], m = "wordimageDialog"), (e.hasClass(j, "loadingclass") || e.hasClass(j, "loaderrorclass")) && (m = ""); var n = -j.width; if (i = '居左居中居右裁剪', l.extendimageselect) i += "替换'; else { if (!k[m]) return; // i += "替换' i += "替换' } !g && (g = h.formatHtml(i)) } var o = b.options.toolbars , p = !1; if (o) for (var q = 0; q < o.length; q++) { o[q]; if (o[q].includes("weixin-link")) { p = !0; break } } if (b.ui._dialogs.linkDialog || p) { var r, s = b.queryCommandValue("link"); if (s && (r = s.getAttribute("_href") || s.getAttribute("href", 2))) { var t = r; r.length > 30 && (t = r.substring(0, 20) + "..."), g && (g += '
'), g += h.formatHtml("" + b.getLang("anthorMsg") + ': ' + t + ' ' + b.getLang("modify") + ' ' + b.getLang("clear") + "") h.showAnchor(s) } } if (g) { h.queryAutoHide(); var u = h.getDom("content"); if (u.innerHTML = g, j) { var v = b.iframe.contentDocument.body , w = $(v).css("paddingLeft").match(/\d*/) || 0 , x = $(v).css("paddingRight").match(/\d*/) || 0 , y = v.offsetWidth - w - x , z = j.offsetWidth , A = parseInt(z / y * 100) , B = document.createElement("span"); B.setAttribute("style", "height: 44px;overflow: hidden;width: 160px;position: relative;padding-top: 14px;padding-left: 25px;padding-right: 25px"), B.className = "range-slider"; var C = document.createElement("span"); C.className = "range-slider__minus", C.innerText = "-"; var D = document.createElement("span"); D.className = "range-slider__plus", D.innerText = "+"; var E = document.createElement("span"); E.className = "range-slider__min", E.innerText = "0"; var F = document.createElement("span"); F.className = "range-slider__max", F.innerText = "100"; var G = document.createElement("span"); G.className = "range-slider__value", G.innerText = A + "%"; var H = document.createElement("input"); H.className = "range-slider__range", H.type = "range", H.max = 100, H.min = 0, H.value = A, H.addEventListener("input", function() { f(this.value), b.fireEvent("contentChange"), G.innerText = this.value + "%" }), B.appendChild(H), B.appendChild(G), B.appendChild(F), B.appendChild(E), B.appendChild(C), B.appendChild(D), C.addEventListener("click", function() { var a = H.value; a > 0 && (a--, H.value = a, f(a), b.fireEvent("contentChange"), G.innerText = a + "%") }), D.addEventListener("click", function() { var a = H.value; a < 100 && (a++, H.value = a, f(a), b.fireEvent("contentChange"), G.innerText = a + "%") }), u.querySelector(".editor-icon-list").appendChild(B); var I = document.createElement("span"); I.className = "line"; var J = ["initial"] , K = j.style.borderLeftColor && !J.includes(j.style.borderLeftColor) ? j.style.borderLeftColor : "#000" , L = [{ title: "圆角", getDefaultValue: function() { var a = j.style.borderTopLeftRadius || "0" , b = a.match(/(\d*)(.*)/); return a = b[2] && "em" == b[2] ? ~~b[1] : 0 }, setStyle: function(a) { $(j).css({ borderRadius: a + "em" }), b.fireEvent("contentChange") } }, { title: "阴影", getDefaultValue: function() { var a = j.style.boxShadow || "0" , b = a.match(/(\d*)px$/); return a = b && b[1] ? ~~b[1] : 0 }, setStyle: function(a) { $(j).css({ boxShadow: "0 0 " + a + "px #000" }), b.fireEvent("contentChange") } }, { title: "边框", getDefaultValue: function() { var a = j.style.borderLeftWidth || "0" , b = a.match(/(\d*)(.*)/); return a = b[2] && "px" == b[2] ? ~~b[1] : 0 }, setStyle: function(a) { $(j).css({ border: a + "px solid " + K }), b.fireEvent("contentChange") }, extend: function(a, c) { if (b.options.hasCommandColorPicker) { var d = document.createElement("span"); // d.id = "edui41"; return d.className = "color-box", d.setAttribute("style", "background-color: " + K), d.addEventListener("click", function(e) { // $EDITORUI["edui41"]._onArrowClick('test'); // $EDITORUI["edui102"]._onArrowClick('test'); e.target === d && b.fireEvent("openColorPicker", { element: d, hex: K, cb: function(b) { K = b || "#000"; var d = c.value || 0; a.setStyle(d), c.value = d } }) }), d } return null } }]; L.forEach(function(a) { var b = document.createElement("span"); b.className = "item"; var c = document.createElement("span"); c.className = "text", c.innerText = a.title; var d = document.createElement("span"); d.className = "number"; var e = document.createElement("input"); e.className = "input-number-margin", e.type = "number", e.value = a.getDefaultValue() || 0, e.addEventListener("keyup", function() { var b = this.value || 0; a.setStyle(b) }); var f = document.createElement("span"); f.className = "prev", f.addEventListener("click", function() { var b = e.value || 0; b++, a.setStyle(b), e.value = b }); var g = document.createElement("span"); if (g.className = "next", g.addEventListener("click", function() { var b = e.value || 0; b >= 1 && (b--, a.setStyle(b), e.value = b) }), d.appendChild(e), d.appendChild(f), d.appendChild(g), b.appendChild(c), b.appendChild(d), a.extend) { var h = a.extend(a, e); h && b.appendChild(h) } I.appendChild(b) }), u.querySelector(".editor-icon-list").appendChild(I) } h.anchorEl = j || s; h.showAnchor(h.anchorEl, !0) } else h.hide() } })) }, _initToolbars: function() { for (var a = this.editor, c = this.toolbars || [], d = [], e = 0; e < c.length; e++) { for (var f = c[e], g = new baidu.editor.ui.Toolbar({ theme: a.options.theme }), h = 0; h < f.length; h++) { var i = f[h] , j = null; if ("string" == typeof i) { if (i = i.toLowerCase(), "|" == i && (i = "Separator"), "||" == i && (i = "Breakline"), baidu.editor.ui[i] && (j = new baidu.editor.ui[i](a)), "fullscreen" == i) { d && d[0] ? d[0].items.splice(0, 0, j) : j && g.items.splice(0, 0, j); continue } } else j = i; j && j.id && g.add(j) } d[e] = g } b.each(UE._customizeUI, function(b, c) { var d, e; return (!b.id || b.id == a.key) && (d = b.execFn.call(a, a, c), void (d && (e = b.index, void 0 === e && (e = g.items.length), g.add(d, e)))) }), this.toolbars = d }, getHtmlTpl: function() { return '
' + (this.toolbars.length ? '
' + this.renderToolbarBoxHtml() + "
" : "") + '
' }, showWordImageDialog: function() { this._dialogs.wordimageDialog.open() }, renderToolbarBoxHtml: function() { for (var a = [], b = 0; b < this.toolbars.length; b++) a.push(this.toolbars[b].renderHtml()); return a.join("") }, setFullScreen: function(a) { var b = this.editor , c = b.container.parentNode.parentNode; if (this._fullscreen != a) { if (this._fullscreen = a, this.editor.fireEvent("beforefullscreenchange", a), baidu.editor.browser.gecko) var d = b.selection.getRange().createBookmark(); if (a) { for (; "BODY" != c.tagName; ) { var e = baidu.editor.dom.domUtils.getComputedStyle(c, "position"); f.push(e), c.style.position = "static", c = c.parentNode } this._bakHtmlOverflow = document.documentElement.style.overflow, this._bakBodyOverflow = document.body.style.overflow, this._bakAutoHeight = this.editor.autoHeightEnabled, this._bakScrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop), this._bakEditorContaninerWidth = b.iframe.parentNode.offsetWidth, this._bakAutoHeight && (b.autoHeightEnabled = !1, this.editor.disableAutoHeight()), document.documentElement.style.overflow = "hidden", window.scrollTo(0, window.scrollY), this._bakCssText = this.getDom().style.cssText, this._bakCssText1 = this.getDom("iframeholder").style.cssText, b.iframe.parentNode.style.width = "", this._updateFullScreen() } else { for (; "BODY" != c.tagName; ) c.style.position = f.shift(), c = c.parentNode; this.getDom().style.cssText = this._bakCssText, this.getDom("iframeholder").style.cssText = this._bakCssText1, this._bakAutoHeight && (b.autoHeightEnabled = !0, this.editor.enableAutoHeight()), document.documentElement.style.overflow = this._bakHtmlOverflow, document.body.style.overflow = this._bakBodyOverflow, b.iframe.parentNode.style.width = this._bakEditorContaninerWidth + "px", window.scrollTo(0, this._bakScrollTop) } if (browser.gecko && "true" === b.body.contentEditable) { var g = document.createElement("input"); document.body.appendChild(g), b.body.contentEditable = !1, setTimeout(function() { g.focus(), setTimeout(function() { b.body.contentEditable = !0, b.fireEvent("fullscreenchanged", a), b.selection.getRange().moveToBookmark(d).select(!0), baidu.editor.dom.domUtils.remove(g), a && window.scroll(0, 0) }, 0) }, 0) } "true" === b.body.contentEditable && (this.editor.fireEvent("fullscreenchanged", a), this.triggerLayout()) } }, _updateFullScreen: function() { if (this._fullscreen) { var a = c.getViewportRect(); if (this.getDom().style.cssText = "border:0;position:absolute;left:0;top:" + (this.editor.options.topOffset || 0) + "px;width:" + a.width + "px;height:" + a.height + "px;z-index:" + (1 * this.getDom().style.zIndex + 100), c.setViewportOffset(this.getDom(), { left: 0, top: this.editor.options.topOffset || 0 }), this.editor.setHeight(a.height - this.getDom("toolbarbox").offsetHeight - this.getDom("bottombar").offsetHeight - (this.editor.options.topOffset || 0), !0), browser.gecko) try { window.onresize() } catch (b) {} } }, _updateElementPath: function() { var a, b = this.getDom("elementpath"); if (this.elementPathEnabled && (a = this.editor.queryCommandValue("elementpath"))) { for (var c, d = [], e = 0; c = a[e]; e++) d[e] = this.formatHtml('' + c + ""); b.innerHTML = '
' + this.editor.getLang("elementPathTip") + ": " + d.join(" > ") + "
" } else b.style.display = "none" }, disableElementPath: function() { var a = this.getDom("elementpath"); a.innerHTML = "", a.style.display = "none", this.elementPathEnabled = !1 }, enableElementPath: function() { var a = this.getDom("elementpath"); a.style.display = "", this.elementPathEnabled = !0, this._updateElementPath() }, _scale: function() { function a() { o = e.getXY(h), p || (p = g.options.minFrameHeight + j.offsetHeight + k.offsetHeight), m.style.cssText = "position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:" + h.offsetWidth + "px;height:" + h.offsetHeight + "px;z-index:" + (g.options.zIndex + 1), e.on(f, "mousemove", b), e.on(i, "mouseup", c), e.on(f, "mouseup", c) } function b(a) { d(); var b = a || window.event; r = b.pageX || f.documentElement.scrollLeft + b.clientX, s = b.pageY || f.documentElement.scrollTop + b.clientY, t = r - o.x, u = s - o.y, t >= q && (n = !0, m.style.width = t + "px"), u >= p && (n = !0, m.style.height = u + "px") } function c() { n && (n = !1, g.ui._actualFrameWidth = m.offsetWidth - 2, h.style.width = g.ui._actualFrameWidth + "px", g.setHeight(m.offsetHeight - k.offsetHeight - j.offsetHeight - 2, !0)), m && (m.style.display = "none"), d(), e.un(f, "mousemove", b), e.un(i, "mouseup", c), e.un(f, "mouseup", c) } function d() { browser.ie ? f.selection.clear() : window.getSelection().removeAllRanges() } var f = document , g = this.editor , h = g.container , i = g.document , j = this.getDom("toolbarbox") , k = this.getDom("bottombar") , l = this.getDom("scale") , m = this.getDom("scalelayer") , n = !1 , o = null , p = 0 , q = g.options.minFrameWidth , r = 0 , s = 0 , t = 0 , u = 0 , v = this; this.editor.addListener("fullscreenchanged", function(a, b) { if (b) v.disableScale(); else if (v.editor.options.scaleEnabled) { v.enableScale(); var c = v.editor.document.createElement("span"); v.editor.body.appendChild(c), v.editor.body.style.height = Math.max(e.getXY(c).y, v.editor.iframe.offsetHeight - 20) + "px", e.remove(c) } }), this.editor.addListener('openColorPicker',(e, t) => { if ($(t.element).hasClass("open")) $(t.element).removeClass("open"), t.element.innerHTML = ""; else { $(t.element).addClass("open"); var n = new baidu.editor.ui.ColorPicker({ element: t.element, hex: t.hex, onChange: function(e) { var r = e.hex; t.element.setAttribute("style", "background-color: " + r), n.changeCurrentColor(r), t.cb(r) }, onClear: function() { t.cb(null), t.element.setAttribute("style", "background-color: " + t.hex) }, open: (e) => { // this.editor.setOpen(!0, e) // 自定义 // window.UE.ui.SplitButton.prototype.showPopup() this.editor.clearLast(), t.element.appendChild(this.editor.picker), (0, s.render)(this.editor.colorPicker(t), this.editor.picker), this.editor.position() } }); n.open() } }), this.selectorClassName = "editor-color-picker", this.editor.picker = document.createElement("div"), this.editor.picker.className = this.selectorClassName, this.editor.clearLast = function() { for (var t = document.querySelectorAll("." + e.selectorClassName), n = 0; n < t.length; n++) t[n].remove() } , this.editor.position = function() { e.options.element && (e.options.bottom ? e.picker.style.bottom = -e.picker.offsetHeight + e.options.element.offsetHeight + "px" : e.picker.style.bottom = "0px", e.picker.style.right = "-" + e.picker.offsetWidth + "px") } , l.default = function n(e) { o(this, n); var t = i(this, Object.getPrototypeOf(n).call(this)); return t.shouldComponentUpdate = _.default.bind(t, t, arguments[0], arguments[1]), t.handleChange = function(e) { if (e = g.default.simpleCheckForValidColor(e)) { var n = g.default.toState(e, e.h || t.state.oldHue); t.setState(n), t.props.onChangeComplete && t.debounce(t.props.onChangeComplete, n), t.props.onChange && t.props.onChange(n) } } , t.state = (0, p.default)(g.default.toState(e.color, 0), { visible: e.display }), t.debounce = (0, y.default)(function(e, t) { e(t) }, 100), t }, function f(e) { function r(e) { for (; e._hostParent; ) e = e._hostParent; var t = f.getNodeFromInstance(e) , n = t.parentNode; return f.getClosestInstanceFromNode(n) } }, this.editor.colorPicker = function(e, t, n) { var i, a = {}, l = null, d = null, p = null, h = null; if (null != t) { r(t) && (d = t.ref), o(t) && (l = "" + t.key), p = void 0 === t.__self ? null : t.__self, h = void 0 === t.__source ? null : t.__source; for (i in t) u.call(t, i) && !c.hasOwnProperty(i) && (a[i] = t[i]) } var m = arguments.length - 2; if (1 === m) a.children = n; else if (m > 1) { for (var y = Array(m), v = 0; v < m; v++) y[v] = arguments[v + 2]; a.children = y } if (e && e.defaultProps) { var g = e.defaultProps; for (i in g) void 0 === a[i] && (a[i] = g[i]) } return f(e, l, d, p, h, s.current, a) }, this.editor.setOpen = (e, t) => { var n = this.props , r = n.onOpen , o = n.onClose; if (this.state.open !== e) { this.setState({ open: e }, t); var i = { open: e }; e ? r(i) : o(i) } }, this.enableScale = function() { 1 != g.queryCommandState("source") && (l.style.display = "", this.scaleEnabled = !0, e.on(l, "mousedown", a)) } , this.disableScale = function() { l.style.display = "none", this.scaleEnabled = !1, e.un(l, "mousedown", a) } }, isFullScreen: function() { return this._fullscreen }, postRender: function() { d.prototype.postRender.call(this); for (var a = 0; a < this.toolbars.length; a++) this.toolbars[a].postRender(); var b, c = this, e = baidu.editor.dom.domUtils, f = function() { clearTimeout(b), b = setTimeout(function() { c._updateFullScreen() }) }; e.on(window, "resize", f), c.addListener("destroy", function() { e.un(window, "resize", f), clearTimeout(b) }) }, showToolbarMsg: function(a, b) { if (this.getDom("toolbarmsg_label").innerHTML = a, this.getDom("toolbarmsg").style.display = "", !b) { var c = this.getDom("upload_dialog"); c.style.display = "none" } }, hideToolbarMsg: function() { this.getDom("toolbarmsg").style.display = "none" }, mapUrl: function(a) { return a ? a.replace("~/", this.editor.options.UEDITOR_HOME_URL || "") : "" }, triggerLayout: function() { var a = this.getDom(); "1" == a.style.zoom ? a.style.zoom = "100%" : a.style.zoom = "1" } }, b.inherits(a, baidu.editor.ui.UIBase); var g = {}; UE.ui.Editor = function(c) { var d = new UE.Editor(c); d.options.editor = d, b.loadFile(document, { href: d.options.themePath + d.options.theme + '/css/ueditor.css?v=1.0.1', tag: "link", type: "text/css", rel: "stylesheet" }); var f = d.render; return d.render = function(c) { c.constructor === String && (d.key = c, g[c] = d), b.domReady(function() { function b() { if (d.setOpt({ labelMap: d.options.labelMap || d.getLang("labelMap") }), new a(d.options), c && (c.constructor === String && (c = document.getElementById(c)), c && c.getAttribute("name") && (d.options.textarea = c.getAttribute("name")), c && /script|textarea/gi.test(c.tagName))) { var b = document.createElement("div"); c.parentNode.insertBefore(b, c); var g = c.value || c.innerHTML; d.options.initialContent = /^[\t\r\n ]*$/.test(g) ? d.options.initialContent : g.replace(/>[\n\r\t]+([ ]{4})+/g, ">").replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<"), c.className && (b.className = c.className), c.style.cssText && (b.style.cssText = c.style.cssText), /textarea/i.test(c.tagName) ? (d.textarea = c, d.textarea.style.display = "none") : c.parentNode.removeChild(c), c.id && (b.id = c.id, e.removeAttributes(c, "id")), c = b, c.innerHTML = "" } e.addClass(c, "edui-" + d.options.theme), d.ui.render(c); var h = d.options; d.container = d.ui.getDom(); for (var i, j = e.findParents(c, !0), k = [], l = 0; i = j[l]; l++) k[l] = i.style.display, i.style.display = "block"; if (h.initialFrameWidth) h.minFrameWidth = h.initialFrameWidth; else { h.minFrameWidth = h.initialFrameWidth = c.offsetWidth; var m = c.style.width; /%$/.test(m) && (h.initialFrameWidth = m) } h.initialFrameHeight ? h.minFrameHeight = h.initialFrameHeight : h.initialFrameHeight = h.minFrameHeight = c.offsetHeight; for (var i, l = 0; i = j[l]; l++) i.style.display = k[l]; c.style.height && (c.style.height = ""), d.container.style.width = h.initialFrameWidth + (/%$/.test(h.initialFrameWidth) ? "" : "px"), d.container.style.zIndex = h.zIndex, f.call(d, d.ui.getDom("iframeholder")), d.fireEvent("afteruiready") } d.langIsReady ? b() : d.addListener("langReady", b) }) } , d } , UE.getEditor = function(a, b) { var c = g[a]; return c || (c = g[a] = new UE.ui.Editor(b), c.render(a)), c } , UE.delEditor = function(a) { var b; (b = g[a]) && (b.key && b.destroy(), delete g[a]) } , UE.registerUI = function(a, c, d, e) { b.each(a.split(/\s+/), function(a) { UE._customizeUI[a] = { id: e, execFn: c, index: d } }) } }(), UE.registerUI("message", function(a) { function b() { var a = g.ui.getDom("toolbarbox"); a && (c.style.top = a.offsetHeight + 3 + "px"), c.style.zIndex = Math.max(g.options.zIndex, g.iframe.style.zIndex) + 1 } var c, d = baidu.editor.ui, e = d.Message, f = [], g = a; g.addListener("ready", function() { c = document.getElementById(g.ui.id + "_message_holder"), b(), setTimeout(function() { b() }, 500) }), g.addListener("showmessage", function(a, d) { d = utils.isString(d) ? { content: d } : d; var h = new e({ timeout: d.timeout, type: d.type, content: d.content, keepshow: d.keepshow, editor: g }) , i = d.id || "msg_" + (+new Date).toString(36); return h.render(c), f[i] = h, h.reset(d), b(), i }), g.addListener("updatemessage", function(a, b, d) { d = utils.isString(d) ? { content: d } : d; var e = f[b]; e.render(c), e && e.reset(d) }), g.addListener("hidemessage", function(a, b) { var c = f[b]; c && c.hide() }) }), UE.registerUI("autosave", function(a) { var b = null , c = null; a.on("afterautosave", function() { clearTimeout(b), b = setTimeout(function() { c && a.trigger("hidemessage", c), c = a.trigger("showmessage", { content: a.getLang("autosave.success"), timeout: 2e3 }) }, 2e3) }) }) }();