",
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("" + d.tagName + ">"))
}
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 ? "" : " ") + "]*?(\\w+)\\s*(?:[^>]*)>[\\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(/[^<]*>[^<]*/gi);
return c && c.forEach(function(a) {
var c = a.match(/>([^<]*))
, d = a.match(/img.*src="([^"]*)"/);
c && c[1] && b.text.push(c[1]),
d && d[1] && b.image.push(d[1])
}),
b
}
var e, f, g = this;
if (b && g.fireEvent("beforeinserthtml", b) !== !0) {
if (e = g.selection.getRange(),
f = e.document.createElement("div"),
f.style.display = "inline",
b.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 = '",
"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 ]*?(\\w+)\\s*(?:[^>]*)>","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 = '