bebeboutik/js/tiny_mce/tiny_mce.js

12835 lines
433 KiB
JavaScript
Raw Normal View History

2016-01-04 12:48:08 +01:00
(function(d) {
var a = /^\s*|\s*$/g,
e, c = "B".replace(/A(.)|B/, "$1") === "$1";
var b = {
majorVersion: "3",
minorVersion: "4.1",
releaseDate: "2011-03-24",
_init: function() {
var s = this,
q = document,
o = navigator,
g = o.userAgent,
m, f, l, k, j, r;
s.isOpera = d.opera && opera.buildNumber;
s.isWebKit = /WebKit/.test(g);
s.isIE = !s.isWebKit && !s.isOpera && (/MSIE/gi).test(g) && (/Explorer/gi).test(o.appName);
s.isIE6 = s.isIE && /MSIE [56]/.test(g);
s.isGecko = !s.isWebKit && /Gecko/.test(g);
s.isMac = g.indexOf("Mac") != -1;
s.isAir = /adobeair/i.test(g);
s.isIDevice = /(iPad|iPhone)/.test(g);
if (d.tinyMCEPreInit) {
s.suffix = tinyMCEPreInit.suffix;
s.baseURL = tinyMCEPreInit.base;
s.query = tinyMCEPreInit.query;
return
}
s.suffix = "";
f = q.getElementsByTagName("base");
for (m = 0; m < f.length; m++) {
if (r = f[m].href) {
if (/^https?:\/\/[^\/]+$/.test(r)) {
r += "/"
}
k = r ? r.match(/.*\//)[0] : ""
}
}
function h(i) {
if (i.src && /tiny_mce(|_gzip|_jquery|_prototype|_full)(_dev|_src)?.js/.test(i.src)) {
if (/_(src|dev)\.js/g.test(i.src)) {
s.suffix = "_src"
}
if ((j = i.src.indexOf("?")) != -1) {
s.query = i.src.substring(j + 1)
}
s.baseURL = i.src.substring(0, i.src.lastIndexOf("/"));
if (k && s.baseURL.indexOf("://") == -1 && s.baseURL.indexOf("/") !== 0) {
s.baseURL = k + s.baseURL
}
return s.baseURL
}
return null
}
f = q.getElementsByTagName("script");
for (m = 0; m < f.length; m++) {
if (h(f[m])) {
return
}
}
l = q.getElementsByTagName("head")[0];
if (l) {
f = l.getElementsByTagName("script");
for (m = 0; m < f.length; m++) {
if (h(f[m])) {
return
}
}
}
return
},
is: function(g, f) {
if (!f) {
return g !== e
}
if (f == "array" && (g.hasOwnProperty && g instanceof Array)) {
return true
}
return typeof(g) == f
},
makeMap: function(f, j, h) {
var g;
f = f || [];
j = j || ",";
if (typeof(f) == "string") {
f = f.split(j)
}
h = h || {};
g = f.length;
while (g--) {
h[f[g]] = {}
}
return h
},
each: function(i, f, h) {
var j, g;
if (!i) {
return 0
}
h = h || i;
if (i.length !== e) {
for (j = 0, g = i.length; j < g; j++) {
if (f.call(h, i[j], j, i) === false) {
return 0
}
}
} else {
for (j in i) {
if (i.hasOwnProperty(j)) {
if (f.call(h, i[j], j, i) === false) {
return 0
}
}
}
}
return 1
},
map: function(g, h) {
var i = [];
b.each(g, function(f) {
i.push(h(f))
});
return i
},
grep: function(g, h) {
var i = [];
b.each(g, function(f) {
if (!h || h(f)) {
i.push(f)
}
});
return i
},
inArray: function(g, h) {
var j, f;
if (g) {
for (j = 0, f = g.length; j < f; j++) {
if (g[j] === h) {
return j
}
}
}
return -1
},
extend: function(k, j) {
var h, g, f = arguments;
for (h = 1, g = f.length; h < g; h++) {
j = f[h];
b.each(j, function(i, l) {
if (i !== e) {
k[l] = i
}
})
}
return k
},
trim: function(f) {
return (f ? "" + f : "").replace(a, "")
},
create: function(o, f, j) {
var n = this,
g, i, k, l, h, m = 0;
o = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(o);
k = o[3].match(/(^|\.)(\w+)$/i)[2];
i = n.createNS(o[3].replace(/\.\w+$/, ""), j);
if (i[k]) {
return
}
if (o[2] == "static") {
i[k] = f;
if (this.onCreate) {
this.onCreate(o[2], o[3], i[k])
}
return
}
if (!f[k]) {
f[k] = function() {};
m = 1
}
i[k] = f[k];
n.extend(i[k].prototype, f);
if (o[5]) {
g = n.resolve(o[5]).prototype;
l = o[5].match(/\.(\w+)$/i)[1];
h = i[k];
if (m) {
i[k] = function() {
return g[l].apply(this, arguments)
}
} else {
i[k] = function() {
this.parent = g[l];
return h.apply(this, arguments)
}
}
i[k].prototype[k] = i[k];
n.each(g, function(p, q) {
i[k].prototype[q] = g[q]
});
n.each(f, function(p, q) {
if (g[q]) {
i[k].prototype[q] = function() {
this.parent = g[q];
return p.apply(this, arguments)
}
} else {
if (q != k) {
i[k].prototype[q] = p
}
}
})
}
n.each(f["static"], function(p, q) {
i[k][q] = p
});
if (this.onCreate) {
this.onCreate(o[2], o[3], i[k].prototype)
}
},
walk: function(i, h, j, g) {
g = g || this;
if (i) {
if (j) {
i = i[j]
}
b.each(i, function(k, f) {
if (h.call(g, k, f, j) === false) {
return false
}
b.walk(k, h, j, g)
})
}
},
createNS: function(j, h) {
var g, f;
h = h || d;
j = j.split(".");
for (g = 0; g < j.length; g++) {
f = j[g];
if (!h[f]) {
h[f] = {}
}
h = h[f]
}
return h
},
resolve: function(j, h) {
var g, f;
h = h || d;
j = j.split(".");
for (g = 0, f = j.length; g < f; g++) {
h = h[j[g]];
if (!h) {
break
}
}
return h
},
addUnload: function(j, i) {
var h = this;
j = {
func: j,
scope: i || this
};
if (!h.unloads) {
function g() {
var f = h.unloads,
l, m;
if (f) {
for (m in f) {
l = f[m];
if (l && l.func) {
l.func.call(l.scope, 1)
}
}
if (d.detachEvent) {
d.detachEvent("onbeforeunload", k);
d.detachEvent("onunload", g)
} else {
if (d.removeEventListener) {
d.removeEventListener("unload", g, false)
}
}
h.unloads = l = f = w = g = 0;
if (d.CollectGarbage) {
CollectGarbage()
}
}
}
function k() {
var l = document;
if (l.readyState == "interactive") {
function f() {
l.detachEvent("onstop", f);
if (g) {
g()
}
l = 0
}
if (l) {
l.attachEvent("onstop", f)
}
d.setTimeout(function() {
if (l) {
l.detachEvent("onstop", f)
}
}, 0)
}
}
if (d.attachEvent) {
d.attachEvent("onunload", g);
d.attachEvent("onbeforeunload", k)
} else {
if (d.addEventListener) {
d.addEventListener("unload", g, false)
}
}
h.unloads = [j]
} else {
h.unloads.push(j)
}
return j
},
removeUnload: function(i) {
var g = this.unloads,
h = null;
b.each(g, function(j, f) {
if (j && j.func == i) {
g.splice(f, 1);
h = i;
return false
}
});
return h
},
explode: function(f, g) {
return f ? b.map(f.split(g || ","), b.trim) : f
},
_addVer: function(g) {
var f;
if (!this.query) {
return g
}
f = (g.indexOf("?") == -1 ? "?" : "&") + this.query;
if (g.indexOf("#") == -1) {
return g + f
}
return g.replace("#", f + "#")
},
_replace: function(h, f, g) {
if (c) {
return g.replace(h, function() {
var l = f,
j = arguments,
k;
for (k = 0; k < j.length - 2; k++) {
if (j[k] === e) {
l = l.replace(new RegExp("\\$" + k, "g"), "")
} else {
l = l.replace(new RegExp("\\$" + k, "g"), j[k])
}
}
return l
})
}
return g.replace(h, f)
}
};
b._init();
d.tinymce = d.tinyMCE = b
})(window);
tinymce.create("tinymce.util.Dispatcher", {
scope: null,
listeners: null,
Dispatcher: function(a) {
this.scope = a || this;
this.listeners = []
},
add: function(a, b) {
this.listeners.push({
cb: a,
scope: b || this.scope
});
return a
},
addToTop: function(a, b) {
this.listeners.unshift({
cb: a,
scope: b || this.scope
});
return a
},
remove: function(a) {
var b = this.listeners,
c = null;
tinymce.each(b, function(e, d) {
if (a == e.cb) {
c = a;
b.splice(d, 1);
return false
}
});
return c
},
dispatch: function() {
var f, d = arguments,
e, b = this.listeners,
g;
for (e = 0; e < b.length; e++) {
g = b[e];
f = g.cb.apply(g.scope, d);
if (f === false) {
break
}
}
return f
}
});
(function() {
var a = tinymce.each;
tinymce.create("tinymce.util.URI", {
URI: function(e, g) {
var f = this,
h, d, c;
e = tinymce.trim(e);
g = f.settings = g || {};
if (/^(mailto|tel|news|javascript|about|data):/i.test(e) || /^\s*#/.test(e)) {
f.source = e;
return
}
if (e.indexOf("/") === 0 && e.indexOf("//") !== 0) {
e = (g.base_uri ? g.base_uri.protocol || "http" : "http") + "://mce_host" + e
}
if (!/^\w*:?\/\//.test(e)) {
e = (g.base_uri.protocol || "http") + "://mce_host" + f.toAbsPath(g.base_uri.path, e)
}
e = e.replace(/@@/g, "(mce_at)");
e = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);
a(["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"], function(b, j) {
var k = e[j];
if (k) {
k = k.replace(/\(mce_at\)/g, "@@")
}
f[b] = k
});
if (c = g.base_uri) {
if (!f.protocol) {
f.protocol = c.protocol
}
if (!f.userInfo) {
f.userInfo = c.userInfo
}
if (!f.port && f.host == "mce_host") {
f.port = c.port
}
if (!f.host || f.host == "mce_host") {
f.host = c.host
}
f.source = ""
}
},
setPath: function(c) {
var b = this;
c = /^(.*?)\/?(\w+)?$/.exec(c);
b.path = c[0];
b.directory = c[1];
b.file = c[2];
b.source = "";
b.getURI()
},
toRelative: function(b) {
var c = this,
d;
if (b === "./") {
return b
}
b = new tinymce.util.URI(b, {
base_uri: c
});
if ((b.host != "mce_host" && c.host != b.host && b.host) || c.port != b.port || c.protocol != b.protocol) {
return b.getURI()
}
d = c.toRelPath(c.path, b.path);
if (b.query) {
d += "?" + b.query
}
if (b.anchor) {
d += "#" + b.anchor
}
return d
},
toAbsolute: function(b, c) {
var b = new tinymce.util.URI(b, {
base_uri: this
});
return b.getURI(this.host == b.host && this.protocol == b.protocol ? c : 0)
},
toRelPath: function(g, h) {
var c, f = 0,
d = "",
e, b;
g = g.substring(0, g.lastIndexOf("/"));
g = g.split("/");
c = h.split("/");
if (g.length >= c.length) {
for (e = 0, b = g.length; e < b; e++) {
if (e >= c.length || g[e] != c[e]) {
f = e + 1;
break
}
}
}
if (g.length < c.length) {
for (e = 0, b = c.length; e < b; e++) {
if (e >= g.length || g[e] != c[e]) {
f = e + 1;
break
}
}
}
if (f == 1) {
return h
}
for (e = 0, b = g.length - (f - 1); e < b; e++) {
d += "../"
}
for (e = f - 1, b = c.length; e < b; e++) {
if (e != f - 1) {
d += "/" + c[e]
} else {
d += c[e]
}
}
return d
},
toAbsPath: function(e, f) {
var c, b = 0,
h = [],
d, g;
d = /\/$/.test(f) ? "/" : "";
e = e.split("/");
f = f.split("/");
a(e, function(i) {
if (i) {
h.push(i)
}
});
e = h;
for (c = f.length - 1, h = []; c >= 0; c--) {
if (f[c].length == 0 || f[c] == ".") {
continue
}
if (f[c] == "..") {
b++;
continue
}
if (b > 0) {
b--;
continue
}
h.push(f[c])
}
c = e.length - b;
if (c <= 0) {
g = h.reverse().join("/")
} else {
g = e.slice(0, c).join("/") + "/" + h.reverse().join("/")
}
if (g.indexOf("/") !== 0) {
g = "/" + g
}
if (d && g.lastIndexOf("/") !== g.length - 1) {
g += d
}
return g
},
getURI: function(d) {
var c, b = this;
if (!b.source || d) {
c = "";
if (!d) {
if (b.protocol) {
c += b.protocol + "://"
}
if (b.userInfo) {
c += b.userInfo + "@"
}
if (b.host) {
c += b.host
}
if (b.port) {
c += ":" + b.port
}
}
if (b.path) {
c += b.path
}
if (b.query) {
c += "?" + b.query
}
if (b.anchor) {
c += "#" + b.anchor
}
b.source = c
}
return b.source
}
})
})();
(function() {
var a = tinymce.each;
tinymce.create("static tinymce.util.Cookie", {
getHash: function(d) {
var b = this.get(d),
c;
if (b) {
a(b.split("&"), function(e) {
e = e.split("=");
c = c || {};
c[unescape(e[0])] = unescape(e[1])
})
}
return c
},
setHash: function(j, b, g, f, i, c) {
var h = "";
a(b, function(e, d) {
h += (!h ? "" : "&") + escape(d) + "=" + escape(e)
});
this.set(j, h, g, f, i, c)
},
get: function(i) {
var h = document.cookie,
g, f = i + "=",
d;
if (!h) {
return
}
d = h.indexOf("; " + f);
if (d == -1) {
d = h.indexOf(f);
if (d != 0) {
return null
}
} else {
d += 2
}
g = h.indexOf(";", d);
if (g == -1) {
g = h.length
}
return unescape(h.substring(d + f.length, g))
},
set: function(i, b, g, f, h, c) {
document.cookie = i + "=" + escape(b) + ((g) ? "; expires=" + g.toGMTString() : "") + ((f) ? "; path=" + escape(f) : "") + ((h) ? "; domain=" + h : "") + ((c) ? "; secure" : "")
},
remove: function(e, b) {
var c = new Date();
c.setTime(c.getTime() - 1000);
this.set(e, "", c, b, c)
}
})
})();
(function() {
function serialize(o, quote) {
var i, v, t;
quote = quote || '"';
if (o == null) {
return "null"
}
t = typeof o;
if (t == "string") {
v = "\bb\tt\nn\ff\rr\"\"''\\\\";
return quote + o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function(a, b) {
if (quote === '"' && a === "'") {
return a
}
i = v.indexOf(b);
if (i + 1) {
return "\\" + v.charAt(i + 1)
}
a = b.charCodeAt().toString(16);
return "\\u" + "0000".substring(a.length) + a
}) + quote
}
if (t == "object") {
if (o.hasOwnProperty && o instanceof Array) {
for (i = 0, v = "["; i < o.length; i++) {
v += (i > 0 ? "," : "") + serialize(o[i], quote)
}
return v + "]"
}
v = "{";
for (i in o) {
v += typeof o[i] != "function" ? (v.length > 1 ? "," + quote : quote) + i + quote + ":" + serialize(o[i], quote) : ""
}
return v + "}"
}
return "" + o
}
tinymce.util.JSON = {
serialize: serialize,
parse: function(s) {
try {
return eval("(" + s + ")")
} catch (ex) {}
}
}
})();
tinymce.create("static tinymce.util.XHR", {
send: function(g) {
var a, e, b = window,
h = 0;
g.scope = g.scope || this;
g.success_scope = g.success_scope || g.scope;
g.error_scope = g.error_scope || g.scope;
g.async = g.async === false ? false : true;
g.data = g.data || "";
function d(i) {
a = 0;
try {
a = new ActiveXObject(i)
} catch (c) {}
return a
}
a = b.XMLHttpRequest ? new XMLHttpRequest() : d("Microsoft.XMLHTTP") || d("Msxml2.XMLHTTP");
if (a) {
if (a.overrideMimeType) {
a.overrideMimeType(g.content_type)
}
a.open(g.type || (g.data ? "POST" : "GET"), g.url, g.async);
if (g.content_type) {
a.setRequestHeader("Content-Type", g.content_type)
}
a.setRequestHeader("X-Requested-With", "XMLHttpRequest");
a.send(g.data);
function f() {
if (!g.async || a.readyState == 4 || h++ > 10000) {
if (g.success && h < 10000 && a.status == 200) {
g.success.call(g.success_scope, "" + a.responseText, a, g)
} else {
if (g.error) {
g.error.call(g.error_scope, h > 10000 ? "TIMED_OUT" : "GENERAL", a, g)
}
}
a = null
} else {
b.setTimeout(f, 10)
}
}
if (!g.async) {
return f()
}
e = b.setTimeout(f, 10)
}
}
});
(function() {
var c = tinymce.extend,
b = tinymce.util.JSON,
a = tinymce.util.XHR;
tinymce.create("tinymce.util.JSONRequest", {
JSONRequest: function(d) {
this.settings = c({}, d);
this.count = 0
},
send: function(f) {
var e = f.error,
d = f.success;
f = c(this.settings, f);
f.success = function(h, g) {
h = b.parse(h);
if (typeof(h) == "undefined") {
h = {
error: "JSON Parse error."
}
}
if (h.error) {
e.call(f.error_scope || f.scope, h.error, g)
} else {
d.call(f.success_scope || f.scope, h.result)
}
};
f.error = function(h, g) {
if (e) {
e.call(f.error_scope || f.scope, h, g)
}
};
f.data = b.serialize({
id: f.id || "c" + (this.count++),
method: f.method,
params: f.params
});
f.content_type = "application/json";
a.send(f)
},
"static": {
sendRPC: function(d) {
return new tinymce.util.JSONRequest().send(d)
}
}
})
}());
(function(j) {
var a, g, d, k = /[&\"\u007E-\uD7FF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
b = /[<>&\u007E-\uD7FF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
f = /[<>&\"\']/g,
c = /&(#)?([\w]+);/g,
i = {
128: "\u20AC",
130: "\u201A",
131: "\u0192",
132: "\u201E",
133: "\u2026",
134: "\u2020",
135: "\u2021",
136: "\u02C6",
137: "\u2030",
138: "\u0160",
139: "\u2039",
140: "\u0152",
142: "\u017D",
145: "\u2018",
146: "\u2019",
147: "\u201C",
148: "\u201D",
149: "\u2022",
150: "\u2013",
151: "\u2014",
152: "\u02DC",
153: "\u2122",
154: "\u0161",
155: "\u203A",
156: "\u0153",
158: "\u017E",
159: "\u0178"
};
g = {
'"': "&quot;",
"'": "&#39;",
"<": "&lt;",
">": "&gt;",
"&": "&amp;"
};
d = {
"&lt;": "<",
"&gt;": ">",
"&amp;": "&",
"&quot;": '"',
"&apos;": "'"
};
function h(l) {
var m;
m = document.createElement("div");
m.innerHTML = l;
return m.textContent || m.innerText || l
}
function e(m, p) {
var n, o, l, q = {};
if (m) {
m = m.split(",");
p = p || 10;
for (n = 0; n < m.length; n += 2) {
o = String.fromCharCode(parseInt(m[n], p));
if (!g[o]) {
l = "&" + m[n + 1] + ";";
q[o] = l;
q[l] = o
}
}
return q
}
}
a = e("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro", 32);
j.html = j.html || {};
j.html.Entities = {
encodeRaw: function(m, l) {
return m.replace(l ? k : b, function(n) {
return g[n] || n
})
},
encodeAllRaw: function(l) {
return ("" + l).replace(f, function(m) {
return g[m] || m
})
},
encodeNumeric: function(m, l) {
return m.replace(l ? k : b, function(n) {
if (n.length > 1) {
return "&#" + (((n.charCodeAt(0) - 55296) * 1024) + (n.charCodeAt(1) - 56320) + 65536) + ";"
}
return g[n] || "&#" + n.charCodeAt(0) + ";"
})
},
encodeNamed: function(n, l, m) {
m = m || a;
return n.replace(l ? k : b, function(o) {
return g[o] || m[o] || o
})
},
getEncodeFunc: function(l, o) {
var p = j.html.Entities;
o = e(o) || a;
function m(r, q) {
return r.replace(q ? k : b, function(s) {
return g[s] || o[s] || "&#" + s.charCodeAt(0) + ";" || s
})
}
function n(r, q) {
return p.encodeNamed(r, q, o)
}
l = j.makeMap(l.replace(/\+/g, ","));
if (l.named && l.numeric) {
return m
}
if (l.named) {
if (o) {
return n
}
return p.encodeNamed
}
if (l.numeric) {
return p.encodeNumeric
}
return p.encodeRaw
},
decode: function(l) {
return l.replace(c, function(n, m, o) {
if (m) {
o = parseInt(o);
if (o > 65535) {
o -= 65536;
return String.fromCharCode(55296 + (o >> 10), 56320 + (o & 1023))
} else {
return i[o] || String.fromCharCode(o)
}
}
return d[n] || a[n] || h(n)
})
}
}
})(tinymce);
tinymce.html.Styles = function(d, f) {
var k = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,
h = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,
b = /\s*([^:]+):\s*([^;]+);?/g,
l = /\s+$/,
m = /rgb/,
e, g, a = {},
j;
d = d || {};
j = "\\\" \\' \\; \\: ; : _".split(" ");
for (g = 0; g < j.length; g++) {
a[j[g]] = "_" + g;
a["_" + g] = j[g]
}
function c(n, q, p, i) {
function o(r) {
r = parseInt(r).toString(16);
return r.length > 1 ? r : "0" + r
}
return "#" + o(q) + o(p) + o(i)
}
return {
toHex: function(i) {
return i.replace(k, c)
},
parse: function(r) {
var y = {},
p, n, v, q, u = d.url_converter,
x = d.url_converter_scope || this;
function o(C, F) {
var E, B, A, D;
E = y[C + "-top" + F];
if (!E) {
return
}
B = y[C + "-right" + F];
if (E != B) {
return
}
A = y[C + "-bottom" + F];
if (B != A) {
return
}
D = y[C + "-left" + F];
if (A != D) {
return
}
y[C + F] = D;
delete y[C + "-top" + F];
delete y[C + "-right" + F];
delete y[C + "-bottom" + F];
delete y[C + "-left" + F]
}
function t(B) {
var C = y[B],
A;
if (!C || C.indexOf(" ") < 0) {
return
}
C = C.split(" ");
A = C.length;
while (A--) {
if (C[A] !== C[0]) {
return false
}
}
y[B] = C[0];
return true
}
function z(C, B, A, D) {
if (!t(B)) {
return
}
if (!t(A)) {
return
}
if (!t(D)) {
return
}
y[C] = y[B] + " " + y[A] + " " + y[D];
delete y[B];
delete y[A];
delete y[D]
}
function s(A) {
q = true;
return a[A]
}
function i(B, A) {
if (q) {
B = B.replace(/_[0-9]/g, function(C) {
return a[C]
})
}
if (!A) {
B = B.replace(/\\([\'\";:])/g, "$1")
}
return B
}
if (r) {
r = r.replace(/\\[\"\';:_]/g, s).replace(/\"[^\"]+\"|\'[^\']+\'/g, function(A) {
return A.replace(/[;:]/g, s)
});
while (p = b.exec(r)) {
n = p[1].replace(l, "").toLowerCase();
v = p[2].replace(l, "");
if (n && v.length > 0) {
if (n === "font-weight" && v === "700") {
v = "bold"
} else {
if (n === "color" || n === "background-color") {
v = v.toLowerCase()
}
}
v = v.replace(k, c);
v = v.replace(h, function(B, A, E, D, F, C) {
F = F || C;
if (F) {
F = i(F);
return "'" + F.replace(/\'/g, "\\'") + "'"
}
A = i(A || E || D);
if (u) {
A = u.call(x, A, "style")
}
return "url('" + A.replace(/\'/g, "\\'") + "')"
});
y[n] = q ? i(v, true) : v
}
b.lastIndex = p.index + p[0].length
}
o("border", "");
o("border", "-width");
o("border", "-color");
o("border", "-style");
o("padding", "");
o("margin", "");
z("border", "border-width", "border-style", "border-color");
if (y.border === "medium none") {
delete y.border
}
}
return y
},
serialize: function(p, r) {
var o = "",
n, q;
function i(t) {
var x, u, s, t, v;
x = f.styles[t];
if (x) {
for (u = 0, s = x.length; u < s; u++) {
t = x[u];
v = p[t];
if (v !== e) {
o += (o.length > 0 ? " " : "") + t + ": " + v + ";"
}
}
}
}
if (r && f && f.styles) {
i("*");
i(n)
} else {
for (n in p) {
q = p[n];
if (q !== e) {
o += (o.length > 0 ? " " : "") + n + ": " + q + ";"
}
}
}
return o
}
}
};
(function(l) {
var g = {},
i, k, f, d, b, e, c = l.makeMap,
j = l.each;
function h(n, m) {
return n.split(m || ",")
}
function a(q, p) {
var n, o = {};
function m(r) {
return r.replace(/[A-Z]+/g, function(s) {
return m(q[s])
})
}
for (n in q) {
if (q.hasOwnProperty(n)) {
q[n] = m(q[n])
}
}
m(p).replace(/#/g, "#text").replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g, function(u, s, r, t) {
r = h(r, "|");
o[s] = {
attributes: c(r),
attributesOrder: r,
children: c(t, "|", {
"#comment": {}
})
}
});
return o
}
k = "h1,h2,h3,h4,h5,h6,hr,p,div,address,pre,form,table,tbody,thead,tfoot,th,tr,td,li,ol,ul,caption,blockquote,center,dl,dt,dd,dir,fieldset,noscript,menu,isindex,samp,header,footer,article,section,hgroup";
k = c(k, ",", c(k.toUpperCase()));
g = a({
Z: "H|K|N|O|P",
Y: "X|form|R|Q",
ZG: "E|span|width|align|char|charoff|valign",
X: "p|T|div|U|W|isindex|fieldset|table",
ZF: "E|align|char|charoff|valign",
W: "pre|hr|blockquote|address|center|noframes",
ZE: "abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height",
ZD: "[E][S]",
U: "ul|ol|dl|menu|dir",
ZC: "p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",
T: "h1|h2|h3|h4|h5|h6",
ZB: "X|S|Q",
S: "R|P",
ZA: "a|G|J|M|O|P",
R: "a|H|K|N|O",
Q: "noscript|P",
P: "ins|del|script",
O: "input|select|textarea|label|button",
N: "M|L",
M: "em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym",
L: "sub|sup",
K: "J|I",
J: "tt|i|b|u|s|strike",
I: "big|small|font|basefont",
H: "G|F",
G: "br|span|bdo",
F: "object|applet|img|map|iframe",
E: "A|B|C",
D: "accesskey|tabindex|onfocus|onblur",
C: "onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",
B: "lang|xml:lang|dir",
A: "id|class|style|title"
}, "script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]");
i = c("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected,preload,autoplay,loop,controls");
f = c("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,source");
d = l.extend(c("td,th,iframe,video,object"), f);
b = c("pre,script,style");
e = c("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");
l.html.Schema = function(p) {
var x = this,
m = {},
n = {},
u = [],
o;
p = p || {};
if (p.verify_html === false) {
p.valid_elements = "*[*]"
}
if (p.valid_styles) {
o = {};
j(p.valid_styles, function(z, y) {
o[y] = l.explode(z)
})
}
function v(y) {
return new RegExp("^" + y.replace(/([?+*])/g, ".$1") + "$")
}
function r(F) {
var E, A, T, P, U, z, C, O, R, K, S, W, I, D, Q, y, M, B, V, X, J, N, H = /^([#+-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,
L = /^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,
G = /[*?+]/;
if (F) {
F = h(F);
if (m["@"]) {
M = m["@"].attributes;
B = m["@"].attributesOrder
}
for (E = 0, A = F.length; E < A; E++) {
z = H.exec(F[E]);
if (z) {
Q = z[1];
K = z[2];
y = z[3];
R = z[4];
I = {};
D = [];
C = {
attributes: I,
attributesOrder: D
};
if (Q === "#") {
C.paddEmpty = true
}
if (Q === "-") {
C.removeEmpty = true
}
if (M) {
for (X in M) {
I[X] = M[X]
}
D.push.apply(D, B)
}
if (R) {
R = h(R, "|");
for (T = 0, P = R.length; T < P; T++) {
z = L.exec(R[T]);
if (z) {
O = {};
W = z[1];
S = z[2].replace(/::/g, ":");
Q = z[3];
N = z[4];
if (W === "!") {
C.attributesRequired = C.attributesRequired || [];
C.attributesRequired.push(S);
O.required = true
}
if (W === "-") {
delete I[S];
D.splice(l.inArray(D, S), 1);
continue
}
if (Q) {
if (Q === "=") {
C.attributesDefault = C.attributesDefault || [];
C.attributesDefault.push({
name: S,
value: N
});
O.defaultValue = N
}
if (Q === ":") {
C.attributesForced = C.attributesForced || [];
C.attributesForced.push({
name: S,
value: N
});
O.forcedValue = N
}
if (Q === "<") {
O.validValues = c(N, "?")
}
}
if (G.test(S)) {
C.attributePatterns = C.attributePatterns || [];
O.pattern = v(S);
C.attributePatterns.push(O)
} else {
if (!I[S]) {
D.push(S)
}
I[S] = O
}
}
}
}
if (!M && K == "@") {
M = I;
B = D
}
if (y) {
C.outputName = K;
m[y] = C
}
if (G.test(K)) {
C.pattern = v(K);
u.push(C)
} else {
m[K] = C
}
}
}
}
}
function t(y) {
m = {};
u = [];
r(y);
j(g, function(A, z) {
n[z] = A.children
})
}
function q(z) {
var y = /^(~)?(.+)$/;
if (z) {
j(h(z), function(C) {
var B = y.exec(C),
D = B[1] === "~" ? "span" : "div",
A = B[2];
n[A] = n[D];
j(n, function(E, F) {
if (E[D]) {
E[A] = E[D]
}
})
})
}
}
function s(z) {
var y = /^([+\-]?)(\w+)\[([^\]]+)\]$/;
if (z) {
j(h(z), function(D) {
var C = y.exec(D),
A, B;
if (C) {
B = C[1];
if (B) {
A = n[C[2]]
} else {
A = n[C[2]] = {
"#comment": {}
}
}
A = n[C[2]];
j(h(C[3], "|"), function(E) {
if (B === "-") {
delete A[E]
} else {
A[E] = {}
}
})
}
})
}
}
if (!p.valid_elements) {
j(g, function(z, y) {
m[y] = {
attributes: z.attributes,
attributesOrder: z.attributesOrder
};
n[y] = z.children
});
j(h("strong/b,em/i"), function(y) {
y = h(y, "/");
m[y[1]].outputName = y[0]
});
m.img.attributesDefault = [{
name: "alt",
value: ""
}];
j(h("ol,ul,li,sub,sup,blockquote,tr,div,span,font,a,table,tbody"), function(y) {
m[y].removeEmpty = true
});
j(h("p,h1,h2,h3,h4,h5,h6,th,td,pre,div,address,caption"), function(y) {
m[y].paddEmpty = true
})
} else {
t(p.valid_elements)
}
q(p.custom_elements);
s(p.valid_children);
r(p.extended_valid_elements);
s("+ol[ul|ol],+ul[ul|ol]");
if (p.invalid_elements) {
l.each(l.explode(p.invalid_elements), function(y) {
if (m[y]) {
delete m[y]
}
})
}
x.children = n;
x.styles = o;
x.getBoolAttrs = function() {
return i
};
x.getBlockElements = function() {
return k
};
x.getShortEndedElements = function() {
return f
};
x.getSelfClosingElements = function() {
return e
};
x.getNonEmptyElements = function() {
return d
};
x.getWhiteSpaceElements = function() {
return b
};
x.isValidChild = function(y, A) {
var z = n[y];
return !!(z && z[A])
};
x.getElementRule = function(y) {
var A = m[y],
z;
if (A) {
return A
}
z = u.length;
while (z--) {
A = u[z];
if (A.pattern.test(y)) {
return A
}
}
};
x.addValidElements = r;
x.setValidElements = t;
x.addCustomElements = q;
x.addValidChildren = s
};
l.html.Schema.boolAttrMap = i;
l.html.Schema.blockElementsMap = k
})(tinymce);
(function(a) {
a.html.SaxParser = function(c, e) {
var b = this,
d = function() {};
c = c || {};
b.schema = e = e || new a.html.Schema();
if (c.fix_self_closing !== false) {
c.fix_self_closing = true
}
a.each("comment cdata text start end pi doctype".split(" "), function(f) {
if (f) {
b[f] = c[f] || d
}
});
b.parse = function(q) {
var A = this,
f, m = 0,
G, j, l = [],
B, K, t, N, F, k, p, x, I, r, E, o, J, n, H, M, L, z, D, h, g, u, s = 0,
v = a.html.Entities.decode,
y;
function C(O) {
var Q, P;
Q = l.length;
while (Q--) {
if (l[Q].name === O) {
break
}
}
if (Q >= 0) {
for (P = l.length - 1; P >= Q; P--) {
O = l[P];
if (O.valid) {
A.end(O.name)
}
}
l.length = Q
}
}
D = new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([^\\s\\/<>]+)\\s*((?:[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*)>))", "g");
h = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:\\.|[^\"])*)\")|(?:\'((?:\\.|[^\'])*)\')|([^>\s]+)))?/g;
g = {
script: /<\/script[^>]*>/gi,
style: /<\/style[^>]*>/gi,
noscript: /<\/noscript[^>]*>/gi
};
F = e.getShortEndedElements();
z = e.getSelfClosingElements();
k = e.getBoolAttrs();
x = c.validate;
y = c.fix_self_closing;
while (f = D.exec(q)) {
if (m < f.index) {
A.text(v(q.substr(m, f.index - m)))
}
if (G = f[6]) {
C(G.toLowerCase())
} else {
if (G = f[7]) {
G = G.toLowerCase();
p = G in F;
if (y && z[G] && l.length > 0 && l[l.length - 1].name === G) {
C(G)
}
if (!x || (I = e.getElementRule(G))) {
r = true;
if (x) {
J = I.attributes;
n = I.attributePatterns
}
if (o = f[8]) {
B = [];
B.map = {};
o.replace(h, function(P, O, T, S, R) {
var U, Q;
O = O.toLowerCase();
T = O in k ? O : v(T || S || R || "");
if (x && O.indexOf("data-") !== 0) {
U = J[O];
if (!U && n) {
Q = n.length;
while (Q--) {
U = n[Q];
if (U.pattern.test(O)) {
break
}
}
if (Q === -1) {
U = null
}
}
if (!U) {
return
}
if (U.validValues && !(T in U.validValues)) {
return
}
}
B.map[O] = T;
B.push({
name: O,
value: T
})
})
} else {
B = [];
B.map = {}
}
if (x) {
H = I.attributesRequired;
M = I.attributesDefault;
L = I.attributesForced;
if (L) {
K = L.length;
while (K--) {
E = L[K];
N = E.name;
u = E.value;
if (u === "{$uid}") {
u = "mce_" + s++
}
B.map[N] = u;
B.push({
name: N,
value: u
})
}
}
if (M) {
K = M.length;
while (K--) {
E = M[K];
N = E.name;
if (!(N in B.map)) {
u = E.value;
if (u === "{$uid}") {
u = "mce_" + s++
}
B.map[N] = u;
B.push({
name: N,
value: u
})
}
}
}
if (H) {
K = H.length;
while (K--) {
if (H[K] in B.map) {
break
}
}
if (K === -1) {
r = false
}
}
if (B.map["data-mce-bogus"]) {
r = false
}
}
if (r) {
A.start(G, B, p)
}
} else {
r = false
}
if (j = g[G]) {
j.lastIndex = m = f.index + f[0].length;
if (f = j.exec(q)) {
if (r) {
t = q.substr(m, f.index - m)
}
m = f.index + f[0].length
} else {
t = q.substr(m);
m = q.length
}
if (r && t.length > 0) {
A.text(t, true)
}
if (r) {
A.end(G)
}
D.lastIndex = m;
continue
}
if (!p) {
if (!o || o.indexOf("/") != o.length - 1) {
l.push({
name: G,
valid: r
})
} else {
if (r) {
A.end(G)
}
}
}
} else {
if (G = f[1]) {
A.comment(G)
} else {
if (G = f[2]) {
A.cdata(G)
} else {
if (G = f[3]) {
A.doctype(G)
} else {
if (G = f[4]) {
A.pi(G, f[5])
}
}
}
}
}
}
m = f.index + f[0].length
}
if (m < q.length) {
A.text(v(q.substr(m)))
}
for (K = l.length - 1; K >= 0; K--) {
G = l[K];
if (G.valid) {
A.end(G.name)
}
}
}
}
})(tinymce);
(function(d) {
var c = /^[ \t\r\n]*$/,
e = {
"#text": 3,
"#comment": 8,
"#cdata": 4,
"#pi": 7,
"#doctype": 10,
"#document-fragment": 11
};
function a(k, l, j) {
var i, h, f = j ? "lastChild" : "firstChild",
g = j ? "prev" : "next";
if (k[f]) {
return k[f]
}
if (k !== l) {
i = k[g];
if (i) {
return i
}
for (h = k.parent; h && h !== l; h = h.parent) {
i = h[g];
if (i) {
return i
}
}
}
}
function b(f, g) {
this.name = f;
this.type = g;
if (g === 1) {
this.attributes = [];
this.attributes.map = {}
}
}
d.extend(b.prototype, {
replace: function(g) {
var f = this;
if (g.parent) {
g.remove()
}
f.insert(g, f);
f.remove();
return f
},
attr: function(h, l) {
var f = this,
g, j, k;
if (typeof h !== "string") {
for (j in h) {
f.attr(j, h[j])
}
return f
}
if (g = f.attributes) {
if (l !== k) {
if (l === null) {
if (h in g.map) {
delete g.map[h];
j = g.length;
while (j--) {
if (g[j].name === h) {
g = g.splice(j, 1);
return f
}
}
}
return f
}
if (h in g.map) {
j = g.length;
while (j--) {
if (g[j].name === h) {
g[j].value = l;
break
}
}
} else {
g.push({
name: h,
value: l
})
}
g.map[h] = l;
return f
} else {
return g.map[h]
}
}
},
clone: function() {
var g = this,
n = new b(g.name, g.type),
h, f, m, j, k;
if (m = g.attributes) {
k = [];
k.map = {};
for (h = 0, f = m.length; h < f; h++) {
j = m[h];
if (j.name !== "id") {
k[k.length] = {
name: j.name,
value: j.value
};
k.map[j.name] = j.value
}
}
n.attributes = k
}
n.value = g.value;
n.shortEnded = g.shortEnded;
return n
},
wrap: function(g) {
var f = this;
f.parent.insert(g, f);
g.append(f);
return f
},
unwrap: function() {
var f = this,
h, g;
for (h = f.firstChild; h;) {
g = h.next;
f.insert(h, f, true);
h = g
}
f.remove()
},
remove: function() {
var f = this,
h = f.parent,
g = f.next,
i = f.prev;
if (h) {
if (h.firstChild === f) {
h.firstChild = g;
if (g) {
g.prev = null
}
} else {
i.next = g
}
if (h.lastChild === f) {
h.lastChild = i;
if (i) {
i.next = null
}
} else {
g.prev = i
}
f.parent = f.next = f.prev = null
}
return f
},
append: function(h) {
var f = this,
g;
if (h.parent) {
h.remove()
}
g = f.lastChild;
if (g) {
g.next = h;
h.prev = g;
f.lastChild = h
} else {
f.lastChild = f.firstChild = h
}
h.parent = f;
return h
},
insert: function(h, f, i) {
var g;
if (h.parent) {
h.remove()
}
g = f.parent || this;
if (i) {
if (f === g.firstChild) {
g.firstChild = h
} else {
f.prev.next = h
}
h.prev = f.prev;
h.next = f;
f.prev = h
} else {
if (f === g.lastChild) {
g.lastChild = h
} else {
f.next.prev = h
}
h.next = f.next;
h.prev = f;
f.next = h
}
h.parent = g;
return h
},
getAll: function(g) {
var f = this,
h, i = [];
for (h = f.firstChild; h; h = a(h, f)) {
if (h.name === g) {
i.push(h)
}
}
return i
},
empty: function() {
var g = this,
f, h, j;
if (g.firstChild) {
f = [];
for (j = g.firstChild; j; j = a(j, g)) {
f.push(j)
}
h = f.length;
while (h--) {
j = f[h];
j.parent = j.firstChild = j.lastChild = j.next = j.prev = null
}
}
g.firstChild = g.lastChild = null;
return g
},
isEmpty: function(j) {
var f = this,
h = f.firstChild,
g;
if (h) {
do {
if (h.type === 1) {
if (h.attributes.map["data-mce-bogus"]) {
continue
}
if (j[h.name]) {
return false
}
g = h.attributes.length;
while (g--) {
if (h.attributes[g].name.indexOf("data-") === 0) {
return false
}
}
}
if ((h.type === 3 && !c.test(h.value))) {
return false
}
} while (h = a(h, f))
}
return true
}
});
d.extend(b, {
create: function(g, f) {
var i, h;
i = new b(g, e[g] || 1);
if (f) {
for (h in f) {
i.attr(h, f[h])
}
}
return i
}
});
d.html.Node = b
})(tinymce);
(function(b) {
var a = b.html.Node;
b.html.DomParser = function(g, h) {
var f = this,
e = {},
d = [],
i = {},
c = {};
g = g || {};
g.root_name = g.root_name || "body";
f.schema = h = h || new b.html.Schema();
function j(m) {
var o, p, x, v, z, n, q, l, t, u, k, s, y, r;
s = b.makeMap("tr,td,th,tbody,thead,tfoot,table");
k = h.getNonEmptyElements();
for (o = 0; o < m.length; o++) {
p = m[o];
if (!p.parent) {
continue
}
v = [p];
for (x = p.parent; x && !h.isValidChild(x.name, p.name) && !s[x.name]; x = x.parent) {
v.push(x)
}
if (x && v.length > 1) {
v.reverse();
z = n = f.filterNode(v[0].clone());
for (t = 0; t < v.length - 1; t++) {
if (h.isValidChild(n.name, v[t].name)) {
q = f.filterNode(v[t].clone());
n.append(q)
} else {
q = n
}
for (l = v[t].firstChild; l && l != v[t + 1];) {
r = l.next;
q.append(l);
l = r
}
n = q
}
if (!z.isEmpty(k)) {
x.insert(z, v[0], true);
x.insert(p, z)
} else {
x.insert(p, v[0], true)
}
x = v[0];
if (x.isEmpty(k) || x.firstChild === x.lastChild && x.firstChild.name === "br") {
x.empty().remove()
}
} else {
if (p.parent) {
if (p.name === "li") {
y = p.prev;
if (y && (y.name === "ul" || y.name === "ul")) {
y.append(p);
continue
}
y = p.next;
if (y && (y.name === "ul" || y.name === "ul")) {
y.insert(p, y.firstChild, true);
continue
}
p.wrap(f.filterNode(new a("ul", 1)));
continue
}
if (h.isValidChild(p.parent.name, "div") && h.isValidChild("div", p.name)) {
p.wrap(f.filterNode(new a("div", 1)))
} else {
if (p.name === "style" || p.name === "script") {
p.empty().remove()
} else {
p.unwrap()
}
}
}
}
}
}
f.filterNode = function(m) {
var l, k, n;
if (k in e) {
n = i[k];
if (n) {
n.push(m)
} else {
i[k] = [m]
}
}
l = d.length;
while (l--) {
k = d[l].name;
if (k in m.attributes.map) {
n = c[k];
if (n) {
n.push(m)
} else {
c[k] = [m]
}
}
}
return m
};
f.addNodeFilter = function(k, l) {
b.each(b.explode(k), function(m) {
var n = e[m];
if (!n) {
e[m] = n = []
}
n.push(l)
})
};
f.addAttributeFilter = function(k, l) {
b.each(b.explode(k), function(m) {
var n;
for (n = 0; n < d.length; n++) {
if (d[n].name === m) {
d[n].callbacks.push(l);
return
}
}
d.push({
name: m,
callbacks: [l]
})
})
};
f.parse = function(u, m) {
var n, D, y, x, A, z, v, q, C, G, o, B, F = [],
s, k, r, p, t;
m = m || {};
i = {};
c = {};
o = b.extend(b.makeMap("script,style,head,title,meta,param"), h.getBlockElements());
t = h.getNonEmptyElements();
p = h.children;
r = h.getWhiteSpaceElements();
B = /^[ \t\r\n]+/;
s = /[ \t\r\n]+$/;
k = /[ \t\r\n]+/g;
function E(l, H) {
var I = new a(l, H),
J;
if (l in e) {
J = i[l];
if (J) {
J.push(I)
} else {
i[l] = [I]
}
}
return I
}
n = new b.html.SaxParser({
validate: g.validate,
fix_self_closing: false,
cdata: function(l) {
y.append(E("#cdata", 4)).value = l
},
text: function(I, l) {
var H;
if (!r[y.name]) {
I = I.replace(k, " ");
if (y.lastChild && o[y.lastChild.name]) {
I = I.replace(B, "")
}
}
if (I.length !== 0) {
H = E("#text", 3);
H.raw = !! l;
y.append(H).value = I
}
},
comment: function(l) {
y.append(E("#comment", 8)).value = l
},
pi: function(l, H) {
y.append(E(l, 7)).value = H
},
doctype: function(l) {
y.append(E("#doctype", 10)).value = l
},
start: function(l, P, I) {
var N, K, J, H, L, Q, O, M;
J = h.getElementRule(l);
if (J) {
N = E(J.outputName || l, 1);
N.attributes = P;
N.shortEnded = I;
y.append(N);
M = p[y.name];
if (M && p[N.name] && !M[N.name]) {
F.push(N)
}
K = d.length;
while (K--) {
L = d[K].name;
if (L in P.map) {
C = c[L];
if (C) {
C.push(N)
} else {
c[L] = [N]
}
}
}
if (o[l]) {
for (H = N.prev; H && H.type === 3;) {
Q = H.value.replace(s, "");
if (Q.length > 0) {
H.value = Q;
H = H.prev
} else {
O = H.prev;
H.remove();
H = O
}
}
}
if (!I) {
y = N
}
}
},
end: function(l) {
var L, I, K, H, J;
I = h.getElementRule(l);
if (I) {
if (o[l]) {
if (!r[y.name]) {
for (L = y.firstChild; L && L.type === 3;) {
K = L.value.replace(B, "");
if (K.length > 0) {
L.value = K;
L = L.next
} else {
H = L.next;
L.remove();
L = H
}
}
for (L = y.lastChild; L && L.type === 3;) {
K = L.value.replace(s, "");
if (K.length > 0) {
L.value = K;
L = L.prev
} else {
H = L.prev;
L.remove();
L = H
}
}
}
L = y.prev;
if (L && L.type === 3) {
K = L.value.replace(B, "");
if (K.length > 0) {
L.value = K
} else {
L.remove()
}
}
}
if (I.removeEmpty || I.paddEmpty) {
if (y.isEmpty(t)) {
if (I.paddEmpty) {
y.empty().append(new a("#text", "3")).value = "\u00a0"
} else {
if (!y.attributes.map.name) {
J = y.parent;
y.empty().remove();
y = J;
return
}
}
}
}
y = y.parent
}
}
}, h);
D = y = new a(g.root_name, 11);
n.parse(u);
j(F);
for (G in i) {
C = e[G];
x = i[G];
v = x.length;
while (v--) {
if (!x[v].parent) {
x.splice(v, 1)
}
}
for (A = 0, z = C.length; A < z; A++) {
C[A](x, G, m)
}
}
for (A = 0, z = d.length; A < z; A++) {
C = d[A];
if (C.name in c) {
x = c[C.name];
v = x.length;
while (v--) {
if (!x[v].parent) {
x.splice(v, 1)
}
}
for (v = 0, q = C.callbacks.length; v < q; v++) {
C.callbacks[v](x, C.name, m)
}
}
}
return D
};
if (g.remove_trailing_brs) {
f.addNodeFilter("br", function(n, m) {
var r, q = n.length,
o, u = h.getBlockElements(),
k = h.getNonEmptyElements(),
s, p, t;
for (r = 0; r < q; r++) {
o = n[r];
s = o.parent;
if (u[o.parent.name] && o === s.lastChild) {
p = o.prev;
while (p) {
t = p.name;
if (t !== "span" || p.attr("data-mce-type") !== "bookmark") {
if (t !== "br") {
break
}
if (t === "br") {
o = null;
break
}
}
p = p.prev
}
if (o) {
o.remove();
if (s.isEmpty(k)) {
elementRule = h.getElementRule(s.name);
if (elementRule.removeEmpty) {
s.remove()
} else {
if (elementRule.paddEmpty) {
s.empty().append(new b.html.Node("#text", 3)).value = "\u00a0"
}
}
}
}
}
}
})
}
}
})(tinymce);
tinymce.html.Writer = function(e) {
var c = [],
a, b, d, f, g;
e = e || {};
a = e.indent;
b = tinymce.makeMap(e.indent_before || "");
d = tinymce.makeMap(e.indent_after || "");
f = tinymce.html.Entities.getEncodeFunc(e.entity_encoding || "raw", e.entities);
g = e.element_format == "html";
return {
start: function(m, k, p) {
var n, j, h, o;
if (a && b[m] && c.length > 0) {
o = c[c.length - 1];
if (o.length > 0 && o !== "\n") {
c.push("\n")
}
}
c.push("<", m);
if (k) {
for (n = 0, j = k.length; n < j; n++) {
h = k[n];
c.push(" ", h.name, '="', f(h.value, true), '"')
}
}
if (!p || g) {
c[c.length] = ">"
} else {
c[c.length] = " />"
}
},
end: function(h) {
var i;
c.push("</", h, ">");
if (a && d[h] && c.length > 0) {
i = c[c.length - 1];
if (i.length > 0 && i !== "\n") {
c.push("\n")
}
}
},
text: function(i, h) {
if (i.length > 0) {
c[c.length] = h ? i : f(i)
}
},
cdata: function(h) {
c.push("<![CDATA[", h, "]]>")
},
comment: function(h) {
c.push("<!--", h, "-->")
},
pi: function(h, i) {
if (i) {
c.push("<?", h, " ", i, "?>")
} else {
c.push("<?", h, "?>")
}
},
doctype: function(h) {
c.push("<!DOCTYPE", h, ">")
},
reset: function() {
c.length = 0
},
getContent: function() {
return c.join("").replace(/\n$/, "")
}
}
};
(function(a) {
a.html.Serializer = function(c, d) {
var b = this,
e = new a.html.Writer(c);
c = c || {};
c.validate = "validate" in c ? c.validate : true;
b.schema = d = d || new a.html.Schema();
b.writer = e;
b.serialize = function(h) {
var g, i;
i = c.validate;
g = {
3: function(k, j) {
e.text(k.value, k.raw)
},
8: function(j) {
e.comment(j.value)
},
7: function(j) {
e.pi(j.name, j.value)
},
10: function(j) {
e.doctype(j.value)
},
4: function(j) {
e.cdata(j.value)
},
11: function(j) {
if ((j = j.firstChild)) {
do {
f(j)
} while (j = j.next)
}
}
};
e.reset();
function f(k) {
var t = g[k.type],
j, o, s, r, p, u, n, m, q;
if (!t) {
j = k.name;
o = k.shortEnded;
s = k.attributes;
if (i && s && s.length > 1) {
u = [];
u.map = {};
q = d.getElementRule(k.name);
for (n = 0, m = q.attributesOrder.length; n < m; n++) {
r = q.attributesOrder[n];
if (r in s.map) {
p = s.map[r];
u.map[r] = p;
u.push({
name: r,
value: p
})
}
}
for (n = 0, m = s.length; n < m; n++) {
r = s[n].name;
if (!(r in u.map)) {
p = s.map[r];
u.map[r] = p;
u.push({
name: r,
value: p
})
}
}
s = u
}
e.start(k.name, s, o);
if (!o) {
if ((k = k.firstChild)) {
do {
f(k)
} while (k = k.next)
}
e.end(j)
}
} else {
t(k)
}
}
if (h.type == 1 && !c.inner) {
f(h)
} else {
g[11](h)
}
return e.getContent()
}
}
})(tinymce);
(function(d) {
var f = d.each,
c = d.is,
e = d.isWebKit,
a = d.isIE,
h = d.html.Entities,
b = /^([a-z0-9],?)+$/i,
g = d.html.Schema.blockElementsMap;
d.create("tinymce.dom.DOMUtils", {
doc: null,
root: null,
files: null,
pixelStyles: /^(top|left|bottom|right|width|height|borderWidth)$/,
props: {
"for": "htmlFor",
"class": "className",
className: "className",
checked: "checked",
disabled: "disabled",
maxlength: "maxLength",
readonly: "readOnly",
selected: "selected",
value: "value",
id: "id",
name: "name",
type: "type"
},
DOMUtils: function(m, k) {
var j = this,
i;
j.doc = m;
j.win = window;
j.files = {};
j.cssFlicker = false;
j.counter = 0;
j.stdMode = !d.isIE || m.documentMode >= 8;
j.boxModel = !d.isIE || m.compatMode == "CSS1Compat" || j.stdMode;
j.hasOuterHTML = "outerHTML" in m.createElement("a");
j.settings = k = d.extend({
keep_values: false,
hex_colors: 1
}, k);
j.styles = new d.html.Styles({
url_converter: k.url_converter,
url_converter_scope: k.url_converter_scope
}, k.schema);
if (d.isIE6) {
try {
m.execCommand("BackgroundImageCache", false, true)
} catch (l) {
j.cssFlicker = true
}
}
if (a) {
("abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video").replace(/\w+/g, function(n) {
m.createElement(n)
})
}
d.addUnload(j.destroy, j)
},
getRoot: function() {
var i = this,
j = i.settings;
return (j && i.get(j.root_element)) || i.doc.body
},
getViewPort: function(j) {
var k, i;
j = !j ? this.win : j;
k = j.document;
i = this.boxModel ? k.documentElement : k.body;
return {
x: j.pageXOffset || i.scrollLeft,
y: j.pageYOffset || i.scrollTop,
w: j.innerWidth || i.clientWidth,
h: j.innerHeight || i.clientHeight
}
},
getRect: function(l) {
var k, i = this,
j;
l = i.get(l);
k = i.getPos(l);
j = i.getSize(l);
return {
x: k.x,
y: k.y,
w: j.w,
h: j.h
}
},
getSize: function(l) {
var j = this,
i, k;
l = j.get(l);
i = j.getStyle(l, "width");
k = j.getStyle(l, "height");
if (i.indexOf("px") === -1) {
i = 0
}
if (k.indexOf("px") === -1) {
k = 0
}
return {
w: parseInt(i) || l.offsetWidth || l.clientWidth,
h: parseInt(k) || l.offsetHeight || l.clientHeight
}
},
getParent: function(k, j, i) {
return this.getParents(k, j, i, false)
},
getParents: function(s, m, k, q) {
var j = this,
i, l = j.settings,
p = [];
s = j.get(s);
q = q === undefined;
if (l.strict_root) {
k = k || j.getRoot()
}
if (c(m, "string")) {
i = m;
if (m === "*") {
m = function(o) {
return o.nodeType == 1
}
} else {
m = function(o) {
return j.is(o, i)
}
}
}
while (s) {
if (s == k || !s.nodeType || s.nodeType === 9) {
break
}
if (!m || m(s)) {
if (q) {
p.push(s)
} else {
return s
}
}
s = s.parentNode
}
return q ? p : null
},
get: function(i) {
var j;
if (i && this.doc && typeof(i) == "string") {
j = i;
i = this.doc.getElementById(i);
if (i && i.id !== j) {
return this.doc.getElementsByName(j)[1]
}
}
return i
},
getNext: function(j, i) {
return this._findSib(j, i, "nextSibling")
},
getPrev: function(j, i) {
return this._findSib(j, i, "previousSibling")
},
select: function(k, j) {
var i = this;
return d.dom.Sizzle(k, i.get(j) || i.get(i.settings.root_element) || i.doc, [])
},
is: function(l, j) {
var k;
if (l.length === undefined) {
if (j === "*") {
return l.nodeType == 1
}
if (b.test(j)) {
j = j.toLowerCase().split(/,/);
l = l.nodeName.toLowerCase();
for (k = j.length - 1; k >= 0; k--) {
if (j[k] == l) {
return true
}
}
return false
}
}
return d.dom.Sizzle.matches(j, l.nodeType ? [l] : l).length > 0
},
add: function(l, o, i, k, m) {
var j = this;
return this.run(l, function(r) {
var q, n;
q = c(o, "string") ? j.doc.createElement(o) : o;
j.setAttribs(q, i);
if (k) {
if (k.nodeType) {
q.appendChild(k)
} else {
j.setHTML(q, k)
}
}
return !m ? r.appendChild(q) : q
})
},
create: function(k, i, j) {
return this.add(this.doc.createElement(k), k, i, j, 1)
},
createHTML: function(q, i, m) {
var p = "",
l = this,
j;
p += "<" + q;
for (j in i) {
if (i.hasOwnProperty(j)) {
p += " " + j + '="' + l.encode(i[j]) + '"'
}
}
if (typeof(m) != "undefined") {
return p + ">" + m + "</" + q + ">"
}
return p + " />"
},
remove: function(i, j) {
return this.run(i, function(l) {
var k, m;
k = l.parentNode;
if (!k) {
return null
}
if (j) {
while (m = l.firstChild) {
if (!d.isIE || m.nodeType !== 3 || m.nodeValue) {
k.insertBefore(m, l)
} else {
l.removeChild(m)
}
}
}
return k.removeChild(l)
})
},
setStyle: function(l, i, j) {
var k = this;
return k.run(l, function(o) {
var n, m;
n = o.style;
i = i.replace(/-(\D)/g, function(q, p) {
return p.toUpperCase()
});
if (k.pixelStyles.test(i) && (d.is(j, "number") || /^[\-0-9\.]+$/.test(j))) {
j += "px"
}
switch (i) {
case "opacity":
if (a) {
n.filter = j === "" ? "" : "alpha(opacity=" + (j * 100) + ")";
if (!l.currentStyle || !l.currentStyle.hasLayout) {
n.display = "inline-block"
}
}
n[i] = n["-moz-opacity"] = n["-khtml-opacity"] = j || "";
break;
case "float":
a ? n.styleFloat = j : n.cssFloat = j;
break;
default:
n[i] = j || ""
}
if (k.settings.update_styles) {
k.setAttrib(o, "data-mce-style")
}
})
},
getStyle: function(l, i, k) {
l = this.get(l);
if (!l) {
return false
}
if (this.doc.defaultView && k) {
i = i.replace(/[A-Z]/g, function(m) {
return "-" + m
});
try {
return this.doc.defaultView.getComputedStyle(l, null).getPropertyValue(i)
} catch (j) {
return null
}
}
i = i.replace(/-(\D)/g, function(n, m) {
return m.toUpperCase()
});
if (i == "float") {
i = a ? "styleFloat" : "cssFloat"
}
if (l.currentStyle && k) {
return l.currentStyle[i]
}
return l.style[i]
},
setStyles: function(l, m) {
var j = this,
k = j.settings,
i;
i = k.update_styles;
k.update_styles = 0;
f(m, function(o, p) {
j.setStyle(l, p, o)
});
k.update_styles = i;
if (k.update_styles) {
j.setAttrib(l, k.cssText)
}
},
removeAllAttribs: function(i) {
return this.run(i, function(l) {
var j = l.attributes;
for (var k = j.length - 1; k >= 0; k--) {
l.removeAttributeNode(j.item(k))
}
})
},
setAttrib: function(k, l, i) {
var j = this;
if (!k || !l) {
return
}
if (j.settings.strict) {
l = l.toLowerCase()
}
return this.run(k, function(n) {
var m = j.settings;
switch (l) {
case "style":
if (!c(i, "string")) {
f(i, function(o, p) {
j.setStyle(n, p, o)
});
return
}
if (m.keep_values) {
if (i && !j._isRes(i)) {
n.setAttribute("data-mce-style", i, 2)
} else {
n.removeAttribute("data-mce-style", 2)
}
}
n.style.cssText = i;
break;
case "class":
n.className = i || "";
break;
case "src":
case "href":
if (m.keep_values) {
if (m.url_converter) {
i = m.url_converter.call(m.url_converter_scope || j, i, l, n)
}
j.setAttrib(n, "data-mce-" + l, i, 2)
}
break;
case "shape":
n.setAttribute("data-mce-style", i);
break
}
if (c(i) && i !== null && i.length !== 0) {
n.setAttribute(l, "" + i, 2)
} else {
n.removeAttribute(l, 2)
}
})
},
setAttribs: function(j, k) {
var i = this;
return this.run(j, function(l) {
f(k, function(m, o) {
i.setAttrib(l, o, m)
})
})
},
getAttrib: function(l, m, k) {
var i, j = this;
l = j.get(l);
if (!l || l.nodeType !== 1) {
return false
}
if (!c(k)) {
k = ""
}
if (/^(src|href|style|coords|shape)$/.test(m)) {
i = l.getAttribute("data-mce-" + m);
if (i) {
return i
}
}
if (a && j.props[m]) {
i = l[j.props[m]];
i = i && i.nodeValue ? i.nodeValue : i
}
if (!i) {
i = l.getAttribute(m, 2)
}
if (/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(m)) {
if (l[j.props[m]] === true && i === "") {
return m
}
return i ? m : ""
}
if (l.nodeName === "FORM" && l.getAttributeNode(m)) {
return l.getAttributeNode(m).nodeValue
}
if (m === "style") {
i = i || l.style.cssText;
if (i) {
i = j.serializeStyle(j.parseStyle(i), l.nodeName);
if (j.settings.keep_values && !j._isRes(i)) {
l.setAttribute("data-mce-style", i)
}
}
}
if (e && m === "class" && i) {
i = i.replace(/(apple|webkit)\-[a-z\-]+/gi, "")
}
if (a) {
switch (m) {
case "rowspan":
case "colspan":
if (i === 1) {
i = ""
}
break;
case "size":
if (i === "+0" || i === 20 || i === 0) {
i = ""
}
break;
case "width":
case "height":
case "vspace":
case "checked":
case "disabled":
case "readonly":
if (i === 0) {
i = ""
}
break;
case "hspace":
if (i === -1) {
i = ""
}
break;
case "maxlength":
case "tabindex":
if (i === 32768 || i === 2147483647 || i === "32768") {
i = ""
}
break;
case "multiple":
case "compact":
case "noshade":
case "nowrap":
if (i === 65535) {
return m
}
return k;
case "shape":
i = i.toLowerCase();
break;
default:
if (m.indexOf("on") === 0 && i) {
i = d._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, "$1", "" + i)
}
}
}
return (i !== undefined && i !== null && i !== "") ? "" + i : k
},
getPos: function(q, l) {
var j = this,
i = 0,
p = 0,
m, o = j.doc,
k;
q = j.get(q);
l = l || o.body;
if (q) {
if (a && !j.stdMode) {
q = q.getBoundingClientRect();
m = j.boxModel ? o.documentElement : o.body;
i = j.getStyle(j.select("html")[0], "borderWidth");
i = (i == "medium" || j.boxModel && !j.isIE6) && 2 || i;
return {
x: q.left + m.scrollLeft - i,
y: q.top + m.scrollTop - i
}
}
k = q;
while (k && k != l && k.nodeType) {
i += k.offsetLeft || 0;
p += k.offsetTop || 0;
k = k.offsetParent
}
k = q.parentNode;
while (k && k != l && k.nodeType) {
i -= k.scrollLeft || 0;
p -= k.scrollTop || 0;
k = k.parentNode
}
}
return {
x: i,
y: p
}
},
parseStyle: function(i) {
return this.styles.parse(i)
},
serializeStyle: function(j, i) {
return this.styles.serialize(j, i)
},
loadCSS: function(i) {
var k = this,
l = k.doc,
j;
if (!i) {
i = ""
}
j = k.select("head")[0];
f(i.split(","), function(m) {
var n;
if (k.files[m]) {
return
}
k.files[m] = true;
n = k.create("link", {
rel: "stylesheet",
href: d._addVer(m)
});
if (a && l.documentMode && l.recalc) {
n.onload = function() {
if (l.recalc) {
l.recalc()
}
n.onload = null
}
}
j.appendChild(n)
})
},
addClass: function(i, j) {
return this.run(i, function(k) {
var l;
if (!j) {
return 0
}
if (this.hasClass(k, j)) {
return k.className
}
l = this.removeClass(k, j);
return k.className = (l != "" ? (l + " ") : "") + j
})
},
removeClass: function(k, l) {
var i = this,
j;
return i.run(k, function(n) {
var m;
if (i.hasClass(n, l)) {
if (!j) {
j = new RegExp("(^|\\s+)" + l + "(\\s+|$)", "g")
}
m = n.className.replace(j, " ");
m = d.trim(m != " " ? m : "");
n.className = m;
if (!m) {
n.removeAttribute("class");
n.removeAttribute("className")
}
return m
}
return n.className
})
},
hasClass: function(j, i) {
j = this.get(j);
if (!j || !i) {
return false
}
return (" " + j.className + " ").indexOf(" " + i + " ") !== -1
},
show: function(i) {
return this.setStyle(i, "display", "block")
},
hide: function(i) {
return this.setStyle(i, "display", "none")
},
isHidden: function(i) {
i = this.get(i);
return !i || i.style.display == "none" || this.getStyle(i, "display") == "none"
},
uniqueId: function(i) {
return (!i ? "mce_" : i) + (this.counter++)
},
setHTML: function(k, j) {
var i = this;
return i.run(k, function(m) {
if (a) {
while (m.firstChild) {
m.removeChild(m.firstChild)
}
try {
m.innerHTML = "<br />" + j;
m.removeChild(m.firstChild)
} catch (l) {
m = i.create("div");
m.innerHTML = "<br />" + j;
f(m.childNodes, function(o, n) {
if (n) {
m.appendChild(o)
}
})
}
} else {
m.innerHTML = j
}
return j
})
},
getOuterHTML: function(k) {
var j, i = this;
k = i.get(k);
if (!k) {
return null
}
if (k.nodeType === 1 && i.hasOuterHTML) {
return k.outerHTML
}
j = (k.ownerDocument || i.doc).createElement("body");
j.appendChild(k.cloneNode(true));
return j.innerHTML
},
setOuterHTML: function(l, j, m) {
var i = this;
function k(p, o, r) {
var s, q;
q = r.createElement("body");
q.innerHTML = o;
s = q.lastChild;
while (s) {
i.insertAfter(s.cloneNode(true), p);
s = s.previousSibling
}
i.remove(p)
}
return this.run(l, function(o) {
o = i.get(o);
if (o.nodeType == 1) {
m = m || o.ownerDocument || i.doc;
if (a) {
try {
if (a && o.nodeType == 1) {
o.outerHTML = j
} else {
k(o, j, m)
}
} catch (n) {
k(o, j, m)
}
} else {
k(o, j, m)
}
}
})
},
decode: h.decode,
encode: h.encodeAllRaw,
insertAfter: function(i, j) {
j = this.get(j);
return this.run(i, function(l) {
var k, m;
k = j.parentNode;
m = j.nextSibling;
if (m) {
k.insertBefore(l, m)
} else {
k.appendChild(l)
}
return l
})
},
isBlock: function(j) {
var i = j.nodeType;
if (i) {
return !!(i === 1 && g[j.nodeName])
}
return !!g[j]
},
replace: function(m, l, i) {
var j = this;
if (c(l, "array")) {
m = m.cloneNode(true)
}
return j.run(l, function(k) {
if (i) {
f(d.grep(k.childNodes), function(n) {
m.appendChild(n)
})
}
return k.parentNode.replaceChild(m, k)
})
},
rename: function(l, i) {
var k = this,
j;
if (l.nodeName != i.toUpperCase()) {
j = k.create(i);
f(k.getAttribs(l), function(m) {
k.setAttrib(j, m.nodeName, k.getAttrib(l, m.nodeName))
});
k.replace(j, l, 1)
}
return j || l
},
findCommonAncestor: function(k, i) {
var l = k,
j;
while (l) {
j = i;
while (j && l != j) {
j = j.parentNode
}
if (l == j) {
break
}
l = l.parentNode
}
if (!l && k.ownerDocument) {
return k.ownerDocument.documentElement
}
return l
},
toHex: function(i) {
var k = /^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(i);
function j(l) {
l = parseInt(l).toString(16);
return l.length > 1 ? l : "0" + l
}
if (k) {
i = "#" + j(k[1]) + j(k[2]) + j(k[3]);
return i
}
return i
},
getClasses: function() {
var n = this,
j = [],
m, o = {},
p = n.settings.class_filter,
l;
if (n.classes) {
return n.classes
}
function q(i) {
f(i.imports, function(s) {
q(s)
});
f(i.cssRules || i.rules, function(s) {
switch (s.type || 1) {
case 1:
if (s.selectorText) {
f(s.selectorText.split(","), function(r) {
r = r.replace(/^\s*|\s*$|^\s\./g, "");
if (/\.mce/.test(r) || !/\.[\w\-]+$/.test(r)) {
return
}
l = r;
r = d._replace(/.*\.([a-z0-9_\-]+).*/i, "$1", r);
if (p && !(r = p(r, l))) {
return
}
if (!o[r]) {
j.push({
"class": r
});
o[r] = 1
}
})
}
break;
case 3:
q(s.styleSheet);
break
}
})
}
try {
f(n.doc.styleSheets, q)
} catch (k) {}
if (j.length > 0) {
n.classes = j
}
return j
},
run: function(l, k, j) {
var i = this,
m;
if (i.doc && typeof(l) === "string") {
l = i.get(l)
}
if (!l) {
return false
}
j = j || this;
if (!l.nodeType && (l.length || l.length === 0)) {
m = [];
f(l, function(o, n) {
if (o) {
if (typeof(o) == "string") {
o = i.doc.getElementById(o)
}
m.push(k.call(j, o, n))
}
});
return m
}
return k.call(j, l)
},
getAttribs: function(j) {
var i;
j = this.get(j);
if (!j) {
return []
}
if (a) {
i = [];
if (j.nodeName == "OBJECT") {
return j.attributes
}
if (j.nodeName === "OPTION" && this.getAttrib(j, "selected")) {
i.push({
specified: 1,
nodeName: "selected"
})
}
j.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi, "").replace(/[\w:\-]+/gi, function(k) {
i.push({
specified: 1,
nodeName: k
})
});
return i
}
return j.attributes
},
destroy: function(j) {
var i = this;
if (i.events) {
i.events.destroy()
}
i.win = i.doc = i.root = i.events = null;
if (!j) {
d.removeUnload(i.destroy)
}
},
createRng: function() {
var i = this.doc;
return i.createRange ? i.createRange() : new d.dom.Range(this)
},
nodeIndex: function(n, o) {
var i = 0,
l, m, k, j;
if (n) {
for (l = n.nodeType, n = n.previousSibling, m = n; n; n = n.previousSibling) {
k = n.nodeType;
if (o && k == 3) {
j = false;
try {
j = n.nodeValue.length
} catch (p) {}
if (k == l || !j) {
continue
}
}
i++;
l = k
}
}
return i
},
split: function(m, l, p) {
var q = this,
i = q.createRng(),
n, k, o;
function j(t) {
var s, r = t.childNodes;
if (t.nodeType == 1 && t.getAttribute("data-mce-type") == "bookmark") {
return
}
for (s = r.length - 1; s >= 0; s--) {
j(r[s])
}
if (t.nodeType != 9) {
if (t.nodeType == 3 && t.nodeValue.length > 0) {
if (!q.isBlock(t.parentNode) || d.trim(t.nodeValue).length > 0) {
return
}
}
if (t.nodeType == 1) {
r = t.childNodes;
if (r.length == 1 && r[0] && r[0].nodeType == 1 && r[0].getAttribute("data-mce-type") == "bookmark") {
t.parentNode.insertBefore(r[0], t)
}
if (r.length || /^(br|hr|input|img)$/i.test(t.nodeName)) {
return
}
}
q.remove(t)
}
return t
}
if (m && l) {
i.setStart(m.parentNode, q.nodeIndex(m));
i.setEnd(l.parentNode, q.nodeIndex(l));
n = i.extractContents();
i = q.createRng();
i.setStart(l.parentNode, q.nodeIndex(l) + 1);
i.setEnd(m.parentNode, q.nodeIndex(m) + 1);
k = i.extractContents();
o = m.parentNode;
o.insertBefore(j(n), m);
if (p) {
o.replaceChild(p, l)
} else {
o.insertBefore(l, m)
}
o.insertBefore(j(k), m);
q.remove(m);
return p || l
}
},
bind: function(m, i, l, k) {
var j = this;
if (!j.events) {
j.events = new d.dom.EventUtils()
}
return j.events.add(m, i, l, k || this)
},
unbind: function(l, i, k) {
var j = this;
if (!j.events) {
j.events = new d.dom.EventUtils()
}
return j.events.remove(l, i, k)
},
_findSib: function(l, i, j) {
var k = this,
m = i;
if (l) {
if (c(m, "string")) {
m = function(n) {
return k.is(n, i)
}
}
for (l = l[j]; l; l = l[j]) {
if (m(l)) {
return l
}
}
}
return null
},
_isRes: function(i) {
return /^(top|left|bottom|right|width|height)/i.test(i) || /;\s*(top|left|bottom|right|width|height)/i.test(i)
}
});
d.DOM = new d.dom.DOMUtils(document, {
process_html: 0
})
})(tinymce);
(function(a) {
function b(c) {
var N = this,
e = c.doc,
S = 0,
E = 1,
j = 2,
D = true,
R = false,
U = "startOffset",
h = "startContainer",
P = "endContainer",
z = "endOffset",
k = tinymce.extend,
n = c.nodeIndex;
k(N, {
startContainer: e,
startOffset: 0,
endContainer: e,
endOffset: 0,
collapsed: D,
commonAncestorContainer: e,
START_TO_START: 0,
START_TO_END: 1,
END_TO_END: 2,
END_TO_START: 3,
setStart: q,
setEnd: s,
setStartBefore: g,
setStartAfter: I,
setEndBefore: J,
setEndAfter: u,
collapse: A,
selectNode: x,
selectNodeContents: F,
compareBoundaryPoints: v,
deleteContents: p,
extractContents: H,
cloneContents: d,
insertNode: C,
surroundContents: M,
cloneRange: K
});
function q(V, t) {
B(D, V, t)
}
function s(V, t) {
B(R, V, t)
}
function g(t) {
q(t.parentNode, n(t))
}
function I(t) {
q(t.parentNode, n(t) + 1)
}
function J(t) {
s(t.parentNode, n(t))
}
function u(t) {
s(t.parentNode, n(t) + 1)
}
function A(t) {
if (t) {
N[P] = N[h];
N[z] = N[U]
} else {
N[h] = N[P];
N[U] = N[z]
}
N.collapsed = D
}
function x(t) {
g(t);
u(t)
}
function F(t) {
q(t, 0);
s(t, t.nodeType === 1 ? t.childNodes.length : t.nodeValue.length)
}
function v(Y, t) {
var ab = N[h],
W = N[U],
aa = N[P],
V = N[z],
Z = t.startContainer,
ad = t.startOffset,
X = t.endContainer,
ac = t.endOffset;
if (Y === 0) {
return G(ab, W, Z, ad)
}
if (Y === 1) {
return G(aa, V, Z, ad)
}
if (Y === 2) {
return G(aa, V, X, ac)
}
if (Y === 3) {
return G(ab, W, X, ac)
}
}
function p() {
m(j)
}
function H() {
return m(S)
}
function d() {
return m(E)
}
function C(Y) {
var V = this[h],
t = this[U],
X, W;
if ((V.nodeType === 3 || V.nodeType === 4) && V.nodeValue) {
if (!t) {
V.parentNode.insertBefore(Y, V)
} else {
if (t >= V.nodeValue.length) {
c.insertAfter(Y, V)
} else {
X = V.splitText(t);
V.parentNode.insertBefore(Y, X)
}
}
} else {
if (V.childNodes.length > 0) {
W = V.childNodes[t]
}
if (W) {
V.insertBefore(Y, W)
} else {
V.appendChild(Y)
}
}
}
function M(V) {
var t = N.extractContents();
N.insertNode(V);
V.appendChild(t);
N.selectNode(V)
}
function K() {
return k(new b(c), {
startContainer: N[h],
startOffset: N[U],
endContainer: N[P],
endOffset: N[z],
collapsed: N.collapsed,
commonAncestorContainer: N.commonAncestorContainer
})
}
function O(t, V) {
var W;
if (t.nodeType == 3) {
return t
}
if (V < 0) {
return t
}
W = t.firstChild;
while (W && V > 0) {
--V;
W = W.nextSibling
}
if (W) {
return W
}
return t
}
function l() {
return (N[h] == N[P] && N[U] == N[z])
}
function G(X, Z, V, Y) {
var aa, W, t, ab, ad, ac;
if (X == V) {
if (Z == Y) {
return 0
}
if (Z < Y) {
return -1
}
return 1
}
aa = V;
while (aa && aa.parentNode != X) {
aa = aa.parentNode
}
if (aa) {
W = 0;
t = X.firstChild;
while (t != aa && W < Z) {
W++;
t = t.nextSibling
}
if (Z <= W) {
return -1
}
return 1
}
aa = X;
while (aa && aa.parentNode != V) {
aa = aa.parentNode
}
if (aa) {
W = 0;
t = V.firstChild;
while (t != aa && W < Y) {
W++;
t = t.nextSibling
}
if (W < Y) {
return -1
}
return 1
}
ab = c.findCommonAncestor(X, V);
ad = X;
while (ad && ad.parentNode != ab) {
ad = ad.parentNode
}
if (!ad) {
ad = ab
}
ac = V;
while (ac && ac.parentNode != ab) {
ac = ac.parentNode
}
if (!ac) {
ac = ab
}
if (ad == ac) {
return 0
}
t = ab.firstChild;
while (t) {
if (t == ad) {
return -1
}
if (t == ac) {
return 1
}
t = t.nextSibling
}
}
function B(V, Y, X) {
var t, W;
if (V) {
N[h] = Y;
N[U] = X
} else {
N[P] = Y;
N[z] = X
}
t = N[P];
while (t.parentNode) {
t = t.parentNode
}
W = N[h];
while (W.parentNode) {
W = W.parentNode
}
if (W == t) {
if (G(N[h], N[U], N[P], N[z]) > 0) {
N.collapse(V)
}
} else {
N.collapse(V)
}
N.collapsed = l();
N.commonAncestorContainer = c.findCommonAncestor(N[h], N[P])
}
function m(ab) {
var aa, X = 0,
ad = 0,
V, Z, W, Y, t, ac;
if (N[h] == N[P]) {
return f(ab)
}
for (aa = N[P], V = aa.parentNode; V; aa = V, V = V.parentNode) {
if (V == N[h]) {
return r(aa, ab)
}++X
}
for (aa = N[h], V = aa.parentNode; V; aa = V, V = V.parentNode) {
if (V == N[P]) {
return T(aa, ab)
}++ad
}
Z = ad - X;
W = N[h];
while (Z > 0) {
W = W.parentNode;
Z--
}
Y = N[P];
while (Z < 0) {
Y = Y.parentNode;
Z++
}
for (t = W.parentNode, ac = Y.parentNode; t != ac; t = t.parentNode, ac = ac.parentNode) {
W = t;
Y = ac
}
return o(W, Y, ab)
}
function f(Z) {
var ab, Y, X, aa, t, W, V;
if (Z != j) {
ab = e.createDocumentFragment()
}
if (N[U] == N[z]) {
return ab
}
if (N[h].nodeType == 3) {
Y = N[h].nodeValue;
X = Y.substring(N[U], N[z]);
if (Z != E) {
N[h].deleteData(N[U], N[z] - N[U]);
N.collapse(D)
}
if (Z == j) {
return
}
ab.appendChild(e.createTextNode(X));
return ab
}
aa = O(N[h], N[U]);
t = N[z] - N[U];
while (t > 0) {
W = aa.nextSibling;
V = y(aa, Z);
if (ab) {
ab.appendChild(V)
}--t;
aa = W
}
if (Z != E) {
N.collapse(D)
}
return ab
}
function r(ab, Y) {
var aa, Z, V, t, X, W;
if (Y != j) {
aa = e.createDocumentFragment()
}
Z = i(ab, Y);
if (aa) {
aa.appendChild(Z)
}
V = n(ab);
t = V - N[U];
if (t <= 0) {
if (Y != E) {
N.setEndBefore(ab);
N.collapse(R)
}
return aa
}
Z = ab.previousSibling;
while (t > 0) {
X = Z.previousSibling;
W = y(Z, Y);
if (aa) {
aa.insertBefore(W, aa.firstChild)
}--t;
Z = X
}
if (Y != E) {
N.setEndBefore(ab);
N.collapse(R)
}
return aa
}
function T(Z, Y) {
var ab, V, aa, t, X, W;
if (Y != j) {
ab = e.createDocumentFragment()
}
aa = Q(Z, Y);
if (ab) {
ab.appendChild(aa)
}
V = n(Z);
++V;
t = N[z] - V;
aa = Z.nextSibling;
while (t > 0) {
X = aa.nextSibling;
W = y(aa, Y);
if (ab) {
ab.appendChild(W)
}--t;
aa = X
}
if (Y != E) {
N.setStartAfter(Z);
N.collapse(D)
}
return ab
}
function o(Z, t, ac) {
var W, ae, Y, aa, ab, V, ad, X;
if (ac != j) {
ae = e.createDocumentFragment()
}
W = Q(Z, ac);
if (ae) {
ae.appendChild(W)
}
Y = Z.parentNode;
aa = n(Z);
ab = n(t);
++aa;
V = ab - aa;
ad = Z.nextSibling;
while (V > 0) {
X = ad.nextSibling;
W = y(ad, ac);
if (ae) {
ae.appendChild(W)
}
ad = X;
--V
}
W = i(t, ac);
if (ae) {
ae.appendChild(W)
}
if (ac != E) {
N.setStartAfter(Z);
N.collapse(D)
}
return ae
}
function i(aa, ab) {
var W = O(N[P], N[z] - 1),
ac, Z, Y, t, V, X = W != N[P];
if (W == aa) {
return L(W, X, R, ab)
}
ac = W.parentNode;
Z = L(ac, R, R, ab);
while (ac) {
while (W) {
Y = W.previousSibling;
t = L(W, X, R, ab);
if (ab != j) {
Z.insertBefore(t, Z.firstChild)
}
X = D;
W = Y
}
if (ac == aa) {
return Z
}
W = ac.previousSibling;
ac = ac.parentNode;
V = L(ac, R, R, ab);
if (ab != j) {
V.appendChild(Z)
}
Z = V
}
}
function Q(aa, ab) {
var X = O(N[h], N[U]),
Y = X != N[h],
ac, Z, W, t, V;
if (X == aa) {
return L(X, Y, D, ab)
}
ac = X.parentNode;
Z = L(ac, R, D, ab);
while (ac) {
while (X) {
W = X.nextSibling;
t = L(X, Y, D, ab);
if (ab != j) {
Z.appendChild(t)
}
Y = D;
X = W
}
if (ac == aa) {
return Z
}
X = ac.nextSibling;
ac = ac.parentNode;
V = L(ac, R, D, ab);
if (ab != j) {
V.appendChild(Z)
}
Z = V
}
}
function L(t, Y, ab, ac) {
var X, W, Z, V, aa;
if (Y) {
return y(t, ac)
}
if (t.nodeType == 3) {
X = t.nodeValue;
if (ab) {
V = N[U];
W = X.substring(V);
Z = X.substring(0, V)
} else {
V = N[z];
W = X.substring(0, V);
Z = X.substring(V)
}
if (ac != E) {
t.nodeValue = Z
}
if (ac == j) {
return
}
aa = t.cloneNode(R);
aa.nodeValue = W;
return aa
}
if (ac == j) {
return
}
return t.cloneNode(R)
}
function y(V, t) {
if (t != j) {
return t == E ? V.cloneNode(D) : V
}
V.parentNode.removeChild(V)
}
}
a.Range = b
})(tinymce.dom);
(function() {
function a(g) {
var i = this,
j = "\uFEFF",
e, h, d = g.dom,
c = true,
f = false;
function b() {
var n = g.getRng(),
k = d.createRng(),
m, o;
m = n.item ? n.item(0) : n.parentElement();
if (m.ownerDocument != d.doc) {
return k
}
o = g.isCollapsed();
if (n.item || !m.hasChildNodes()) {
if (o) {
k.setStart(m, 0);
k.setEnd(m, 0)
} else {
k.setStart(m.parentNode, d.nodeIndex(m));
k.setEnd(k.startContainer, k.startOffset + 1)
}
return k
}
function l(s) {
var u, q, t, p, A = 0,
x, y, z, r, v;
r = n.duplicate();
r.collapse(s);
u = d.create("a");
z = r.parentElement();
if (!z.hasChildNodes()) {
k[s ? "setStart" : "setEnd"](z, 0);
return
}
z.appendChild(u);
r.moveToElementText(u);
v = n.compareEndPoints(s ? "StartToStart" : "EndToEnd", r);
if (v > 0) {
k[s ? "setStartAfter" : "setEndAfter"](z);
d.remove(u);
return
}
p = tinymce.grep(z.childNodes);
x = p.length - 1;
while (A <= x) {
y = Math.floor((A + x) / 2);
z.insertBefore(u, p[y]);
r.moveToElementText(u);
v = n.compareEndPoints(s ? "StartToStart" : "EndToEnd", r);
if (v > 0) {
A = y + 1
} else {
if (v < 0) {
x = y - 1
} else {
found = true;
break
}
}
}
q = v > 0 || y == 0 ? u.nextSibling : u.previousSibling;
if (q.nodeType == 1) {
d.remove(u);
t = d.nodeIndex(q);
q = q.parentNode;
if (!s || y > 0) {
t++
}
} else {
if (v > 0 || y == 0) {
r.setEndPoint(s ? "StartToStart" : "EndToEnd", n);
t = r.text.length
} else {
r.setEndPoint(s ? "StartToStart" : "EndToEnd", n);
t = q.nodeValue.length - r.text.length
}
d.remove(u)
}
k[s ? "setStart" : "setEnd"](q, t)
}
l(true);
if (!o) {
l()
}
return k
}
this.addRange = function(k) {
var p, n, m, r, u, s, t = g.dom.doc,
o = t.body;
function l(B) {
var x, A, v, z, y;
v = d.create("a");
x = B ? m : u;
A = B ? r : s;
z = p.duplicate();
if (x == t || x == t.documentElement) {
x = o;
A = 0
}
if (x.nodeType == 3) {
x.parentNode.insertBefore(v, x);
z.moveToElementText(v);
z.moveStart("character", A);
d.remove(v);
p.setEndPoint(B ? "StartToStart" : "EndToEnd", z)
} else {
y = x.childNodes;
if (y.length) {
if (A >= y.length) {
d.insertAfter(v, y[y.length - 1])
} else {
x.insertBefore(v, y[A])
}
z.moveToElementText(v)
} else {
v = t.createTextNode(j);
x.appendChild(v);
z.moveToElementText(v.parentNode);
z.collapse(c)
}
p.setEndPoint(B ? "StartToStart" : "EndToEnd", z);
d.remove(v)
}
}
this.destroy();
m = k.startContainer;
r = k.startOffset;
u = k.endContainer;
s = k.endOffset;
p = o.createTextRange();
if (m == u && m.nodeType == 1 && r == s - 1) {
if (r == s - 1) {
try {
n = o.createControlRange();
n.addElement(m.childNodes[r]);
n.select();
return
} catch (q) {}
}
}
l(true);
l();
p.select()
};
this.getRangeAt = function() {
if (!e || !tinymce.dom.RangeUtils.compareRanges(h, g.getRng())) {
e = b();
h = g.getRng()
}
try {
e.startContainer.nextSibling
} catch (k) {
e = b();
h = null
}
return e
};
this.destroy = function() {
h = e = null
}
}
tinymce.dom.TridentSelection = a
})();
(function() {
var p = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
j = 0,
d = Object.prototype.toString,
o = false,
i = true;
[0, 0].sort(function() {
i = false;
return 0
});
var b = function(v, e, z, A) {
z = z || [];
e = e || document;
var C = e;
if (e.nodeType !== 1 && e.nodeType !== 9) {
return []
}
if (!v || typeof v !== "string") {
return z
}
var x = [],
s, E, H, r, u = true,
t = b.isXML(e),
B = v,
D, G, F, y;
do {
p.exec("");
s = p.exec(B);
if (s) {
B = s[3];
x.push(s[1]);
if (s[2]) {
r = s[3];
break
}
}
} while (s);
if (x.length > 1 && k.exec(v)) {
if (x.length === 2 && f.relative[x[0]]) {
E = h(x[0] + x[1], e)
} else {
E = f.relative[x[0]] ? [e] : b(x.shift(), e);
while (x.length) {
v = x.shift();
if (f.relative[v]) {
v += x.shift()
}
E = h(v, E)
}
}
} else {
if (!A && x.length > 1 && e.nodeType === 9 && !t && f.match.ID.test(x[0]) && !f.match.ID.test(x[x.length - 1])) {
D = b.find(x.shift(), e, t);
e = D.expr ? b.filter(D.expr, D.set)[0] : D.set[0]
}
if (e) {
D = A ? {
expr: x.pop(),
set: a(A)
} : b.find(x.pop(), x.length === 1 && (x[0] === "~" || x[0] === "+") && e.parentNode ? e.parentNode : e, t);
E = D.expr ? b.filter(D.expr, D.set) : D.set;
if (x.length > 0) {
H = a(E)
} else {
u = false
}
while (x.length) {
G = x.pop();
F = G;
if (!f.relative[G]) {
G = ""
} else {
F = x.pop()
}
if (F == null) {
F = e
}
f.relative[G](H, F, t)
}
} else {
H = x = []
}
}
if (!H) {
H = E
}
if (!H) {
b.error(G || v)
}
if (d.call(H) === "[object Array]") {
if (!u) {
z.push.apply(z, H)
} else {
if (e && e.nodeType === 1) {
for (y = 0; H[y] != null; y++) {
if (H[y] && (H[y] === true || H[y].nodeType === 1 && b.contains(e, H[y]))) {
z.push(E[y])
}
}
} else {
for (y = 0; H[y] != null; y++) {
if (H[y] && H[y].nodeType === 1) {
z.push(E[y])
}
}
}
}
} else {
a(H, z)
}
if (r) {
b(r, C, z, A);
b.uniqueSort(z)
}
return z
};
b.uniqueSort = function(r) {
if (c) {
o = i;
r.sort(c);
if (o) {
for (var e = 1; e < r.length; e++) {
if (r[e] === r[e - 1]) {
r.splice(e--, 1)
}
}
}
}
return r
};
b.matches = function(e, r) {
return b(e, null, null, r)
};
b.find = function(y, e, z) {
var x;
if (!y) {
return []
}
for (var t = 0, s = f.order.length; t < s; t++) {
var v = f.order[t],
u;
if ((u = f.leftMatch[v].exec(y))) {
var r = u[1];
u.splice(1, 1);
if (r.substr(r.length - 1) !== "\\") {
u[1] = (u[1] || "").replace(/\\/g, "");
x = f.find[v](u, e, z);
if (x != null) {
y = y.replace(f.match[v], "");
break
}
}
}
}
if (!x) {
x = e.getElementsByTagName("*")
}
return {
set: x,
expr: y
}
};
b.filter = function(C, B, F, u) {
var s = C,
H = [],
z = B,
x, e, y = B && B[0] && b.isXML(B[0]);
while (C && B.length) {
for (var A in f.filter) {
if ((x = f.leftMatch[A].exec(C)) != null && x[2]) {
var r = f.filter[A],
G, E, t = x[1];
e = false;
x.splice(1, 1);
if (t.substr(t.length - 1) === "\\") {
continue
}
if (z === H) {
H = []
}
if (f.preFilter[A]) {
x = f.preFilter[A](x, z, F, H, u, y);
if (!x) {
e = G = true
} else {
if (x === true) {
continue
}
}
}
if (x) {
for (var v = 0;
(E = z[v]) != null; v++) {
if (E) {
G = r(E, x, v, z);
var D = u ^ !! G;
if (F && G != null) {
if (D) {
e = true
} else {
z[v] = false
}
} else {
if (D) {
H.push(E);
e = true
}
}
}
}
}
if (G !== undefined) {
if (!F) {
z = H
}
C = C.replace(f.match[A], "");
if (!e) {
return []
}
break
}
}
}
if (C === s) {
if (e == null) {
b.error(C)
} else {
break
}
}
s = C
}
return z
};
b.error = function(e) {
throw "Syntax error, unrecognized expression: " + e
};
var f = b.selectors = {
order: ["ID", "NAME", "TAG"],
match: {
ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
},
leftMatch: {},
attrMap: {
"class": "className",
"for": "htmlFor"
},
attrHandle: {
href: function(e) {
return e.getAttribute("href")
}
},
relative: {
"+": function(x, r) {
var t = typeof r === "string",
v = t && !/\W/.test(r),
y = t && !v;
if (v) {
r = r.toLowerCase()
}
for (var s = 0, e = x.length, u; s < e; s++) {
if ((u = x[s])) {
while ((u = u.previousSibling) && u.nodeType !== 1) {}
x[s] = y || u && u.nodeName.toLowerCase() === r ? u || false : u === r
}
}
if (y) {
b.filter(r, x, true)
}
},
">": function(x, r) {
var u = typeof r === "string",
v, s = 0,
e = x.length;
if (u && !/\W/.test(r)) {
r = r.toLowerCase();
for (; s < e; s++) {
v = x[s];
if (v) {
var t = v.parentNode;
x[s] = t.nodeName.toLowerCase() === r ? t : false
}
}
} else {
for (; s < e; s++) {
v = x[s];
if (v) {
x[s] = u ? v.parentNode : v.parentNode === r
}
}
if (u) {
b.filter(r, x, true)
}
}
},
"": function(t, r, v) {
var s = j++,
e = q,
u;
if (typeof r === "string" && !/\W/.test(r)) {
r = r.toLowerCase();
u = r;
e = n
}
e("parentNode", r, s, t, u, v)
},
"~": function(t, r, v) {
var s = j++,
e = q,
u;
if (typeof r === "string" && !/\W/.test(r)) {
r = r.toLowerCase();
u = r;
e = n
}
e("previousSibling", r, s, t, u, v)
}
},
find: {
ID: function(r, s, t) {
if (typeof s.getElementById !== "undefined" && !t) {
var e = s.getElementById(r[1]);
return e ? [e] : []
}
},
NAME: function(s, v) {
if (typeof v.getElementsByName !== "undefined") {
var r = [],
u = v.getElementsByName(s[1]);
for (var t = 0, e = u.length; t < e; t++) {
if (u[t].getAttribute("name") === s[1]) {
r.push(u[t])
}
}
return r.length === 0 ? null : r
}
},
TAG: function(e, r) {
return r.getElementsByTagName(e[1])
}
},
preFilter: {
CLASS: function(t, r, s, e, x, y) {
t = " " + t[1].replace(/\\/g, "") + " ";
if (y) {
return t
}
for (var u = 0, v;
(v = r[u]) != null; u++) {
if (v) {
if (x ^ (v.className && (" " + v.className + " ").replace(/[\t\n]/g, " ").indexOf(t) >= 0)) {
if (!s) {
e.push(v)
}
} else {
if (s) {
r[u] = false
}
}
}
}
return false
},
ID: function(e) {
return e[1].replace(/\\/g, "")
},
TAG: function(r, e) {
return r[1].toLowerCase()
},
CHILD: function(e) {
if (e[1] === "nth") {
var r = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(e[2] === "even" && "2n" || e[2] === "odd" && "2n+1" || !/\D/.test(e[2]) && "0n+" + e[2] || e[2]);
e[2] = (r[1] + (r[2] || 1)) - 0;
e[3] = r[3] - 0
}
e[0] = j++;
return e
},
ATTR: function(u, r, s, e, v, x) {
var t = u[1].replace(/\\/g, "");
if (!x && f.attrMap[t]) {
u[1] = f.attrMap[t]
}
if (u[2] === "~=") {
u[4] = " " + u[4] + " "
}
return u
},
PSEUDO: function(u, r, s, e, v) {
if (u[1] === "not") {
if ((p.exec(u[3]) || "").length > 1 || /^\w/.test(u[3])) {
u[3] = b(u[3], null, null, r)
} else {
var t = b.filter(u[3], r, s, true ^ v);
if (!s) {
e.push.apply(e, t)
}
return false
}
} else {
if (f.match.POS.test(u[0]) || f.match.CHILD.test(u[0])) {
return true
}
}
return u
},
POS: function(e) {
e.unshift(true);
return e
}
},
filters: {
enabled: function(e) {
return e.disabled === false && e.type !== "hidden"
},
disabled: function(e) {
return e.disabled === true
},
checked: function(e) {
return e.checked === true
},
selected: function(e) {
e.parentNode.selectedIndex;
return e.selected === true
},
parent: function(e) {
return !!e.firstChild
},
empty: function(e) {
return !e.firstChild
},
has: function(s, r, e) {
return !!b(e[3], s).length
},
header: function(e) {
return (/h\d/i).test(e.nodeName)
},
text: function(e) {
return "text" === e.type
},
radio: function(e) {
return "radio" === e.type
},
checkbox: function(e) {
return "checkbox" === e.type
},
file: function(e) {
return "file" === e.type
},
password: function(e) {
return "password" === e.type
},
submit: function(e) {
return "submit" === e.type
},
image: function(e) {
return "image" === e.type
},
reset: function(e) {
return "reset" === e.type
},
button: function(e) {
return "button" === e.type || e.nodeName.toLowerCase() === "button"
},
input: function(e) {
return (/input|select|textarea|button/i).test(e.nodeName)
}
},
setFilters: {
first: function(r, e) {
return e === 0
},
last: function(s, r, e, t) {
return r === t.length - 1
},
even: function(r, e) {
return e % 2 === 0
},
odd: function(r, e) {
return e % 2 === 1
},
lt: function(s, r, e) {
return r < e[3] - 0
},
gt: function(s, r, e) {
return r > e[3] - 0
},
nth: function(s, r, e) {
return e[3] - 0 === r
},
eq: function(s, r, e) {
return e[3] - 0 === r
}
},
filter: {
PSEUDO: function(s, y, x, z) {
var e = y[1],
r = f.filters[e];
if (r) {
return r(s, x, y, z)
} else {
if (e === "contains") {
return (s.textContent || s.innerText || b.getText([s]) || "").indexOf(y[3]) >= 0
} else {
if (e === "not") {
var t = y[3];
for (var v = 0, u = t.length; v < u; v++) {
if (t[v] === s) {
return false
}
}
return true
} else {
b.error("Syntax error, unrecognized expression: " + e)
}
}
}
},
CHILD: function(e, t) {
var x = t[1],
r = e;
switch (x) {
case "only":
case "first":
while ((r = r.previousSibling)) {
if (r.nodeType === 1) {
return false
}
}
if (x === "first") {
return true
}
r = e;
case "last":
while ((r = r.nextSibling)) {
if (r.nodeType === 1) {
return false
}
}
return true;
case "nth":
var s = t[2],
A = t[3];
if (s === 1 && A === 0) {
return true
}
var v = t[0],
z = e.parentNode;
if (z && (z.sizcache !== v || !e.nodeIndex)) {
var u = 0;
for (r = z.firstChild; r; r = r.nextSibling) {
if (r.nodeType === 1) {
r.nodeIndex = ++u
}
}
z.sizcache = v
}
var y = e.nodeIndex - A;
if (s === 0) {
return y === 0
} else {
return (y % s === 0 && y / s >= 0)
}
}
},
ID: function(r, e) {
return r.nodeType === 1 && r.getAttribute("id") === e
},
TAG: function(r, e) {
return (e === "*" && r.nodeType === 1) || r.nodeName.toLowerCase() === e
},
CLASS: function(r, e) {
return (" " + (r.className || r.getAttribute("class")) + " ").indexOf(e) > -1
},
ATTR: function(v, t) {
var s = t[1],
e = f.attrHandle[s] ? f.attrHandle[s](v) : v[s] != null ? v[s] : v.getAttribute(s),
x = e + "",
u = t[2],
r = t[4];
return e == null ? u === "!=" : u === "=" ? x === r : u === "*=" ? x.indexOf(r) >= 0 : u === "~=" ? (" " + x + " ").indexOf(r) >= 0 : !r ? x && e !== false : u === "!=" ? x !== r : u === "^=" ? x.indexOf(r) === 0 : u === "$=" ? x.substr(x.length - r.length) === r : u === "|=" ? x === r || x.substr(0, r.length + 1) === r + "-" : false
},
POS: function(u, r, s, v) {
var e = r[2],
t = f.setFilters[e];
if (t) {
return t(u, s, r, v)
}
}
}
};
var k = f.match.POS,
g = function(r, e) {
return "\\" + (e - 0 + 1)
};
for (var m in f.match) {
f.match[m] = new RegExp(f.match[m].source + (/(?![^\[]*\])(?![^\(]*\))/.source));
f.leftMatch[m] = new RegExp(/(^(?:.|\r|\n)*?)/.source + f.match[m].source.replace(/\\(\d+)/g, g))
}
var a = function(r, e) {
r = Array.prototype.slice.call(r, 0);
if (e) {
e.push.apply(e, r);
return e
}
return r
};
try {
Array.prototype.slice.call(document.documentElement.childNodes, 0)[0].nodeType
} catch (l) {
a = function(u, t) {
var r = t || [],
s = 0;
if (d.call(u) === "[object Array]") {
Array.prototype.push.apply(r, u)
} else {
if (typeof u.length === "number") {
for (var e = u.length; s < e; s++) {
r.push(u[s])
}
} else {
for (; u[s]; s++) {
r.push(u[s])
}
}
}
return r
}
}
var c;
if (document.documentElement.compareDocumentPosition) {
c = function(r, e) {
if (!r.compareDocumentPosition || !e.compareDocumentPosition) {
if (r == e) {
o = true
}
return r.compareDocumentPosition ? -1 : 1
}
var s = r.compareDocumentPosition(e) & 4 ? -1 : r === e ? 0 : 1;
if (s === 0) {
o = true
}
return s
}
} else {
if ("sourceIndex" in document.documentElement) {
c = function(r, e) {
if (!r.sourceIndex || !e.sourceIndex) {
if (r == e) {
o = true
}
return r.sourceIndex ? -1 : 1
}
var s = r.sourceIndex - e.sourceIndex;
if (s === 0) {
o = true
}
return s
}
} else {
if (document.createRange) {
c = function(t, r) {
if (!t.ownerDocument || !r.ownerDocument) {
if (t == r) {
o = true
}
return t.ownerDocument ? -1 : 1
}
var s = t.ownerDocument.createRange(),
e = r.ownerDocument.createRange();
s.setStart(t, 0);
s.setEnd(t, 0);
e.setStart(r, 0);
e.setEnd(r, 0);
var u = s.compareBoundaryPoints(Range.START_TO_END, e);
if (u === 0) {
o = true
}
return u
}
}
}
}
b.getText = function(e) {
var r = "",
t;
for (var s = 0; e[s]; s++) {
t = e[s];
if (t.nodeType === 3 || t.nodeType === 4) {
r += t.nodeValue
} else {
if (t.nodeType !== 8) {
r += b.getText(t.childNodes)
}
}
}
return r
};
(function() {
var r = document.createElement("div"),
s = "script" + (new Date()).getTime();
r.innerHTML = "<a name='" + s + "'/>";
var e = document.documentElement;
e.insertBefore(r, e.firstChild);
if (document.getElementById(s)) {
f.find.ID = function(u, v, x) {
if (typeof v.getElementById !== "undefined" && !x) {
var t = v.getElementById(u[1]);
return t ? t.id === u[1] || typeof t.getAttributeNode !== "undefined" && t.getAttributeNode("id").nodeValue === u[1] ? [t] : undefined : []
}
};
f.filter.ID = function(v, t) {
var u = typeof v.getAttributeNode !== "undefined" && v.getAttributeNode("id");
return v.nodeType === 1 && u && u.nodeValue === t
}
}
e.removeChild(r);
e = r = null
})();
(function() {
var e = document.createElement("div");
e.appendChild(document.createComment(""));
if (e.getElementsByTagName("*").length > 0) {
f.find.TAG = function(r, v) {
var u = v.getElementsByTagName(r[1]);
if (r[1] === "*") {
var t = [];
for (var s = 0; u[s]; s++) {
if (u[s].nodeType === 1) {
t.push(u[s])
}
}
u = t
}
return u
}
}
e.innerHTML = "<a href='#'></a>";
if (e.firstChild && typeof e.firstChild.getAttribute !== "undefined" && e.firstChild.getAttribute("href") !== "#") {
f.attrHandle.href = function(r) {
return r.getAttribute("href", 2)
}
}
e = null
})();
if (document.querySelectorAll) {
(function() {
var e = b,
s = document.createElement("div");
s.innerHTML = "<p class='TEST'></p>";
if (s.querySelectorAll && s.querySelectorAll(".TEST").length === 0) {
return
}
b = function(x, v, t, u) {
v = v || document;
if (!u && v.nodeType === 9 && !b.isXML(v)) {
try {
return a(v.querySelectorAll(x), t)
} catch (y) {}
}
return e(x, v, t, u)
};
for (var r in e) {
b[r] = e[r]
}
s = null
})()
}(function() {
var e = document.createElement("div");
e.innerHTML = "<div class='test e'></div><div class='test'></div>";
if (!e.getElementsByClassName || e.getElementsByClassName("e").length === 0) {
return
}
e.lastChild.className = "e";
if (e.getElementsByClassName("e").length === 1) {
return
}
f.order.splice(1, 0, "CLASS");
f.find.CLASS = function(r, s, t) {
if (typeof s.getElementsByClassName !== "undefined" && !t) {
return s.getElementsByClassName(r[1])
}
};
e = null
})();
function n(r, x, v, A, y, z) {
for (var t = 0, s = A.length; t < s; t++) {
var e = A[t];
if (e) {
e = e[r];
var u = false;
while (e) {
if (e.sizcache === v) {
u = A[e.sizset];
break
}
if (e.nodeType === 1 && !z) {
e.sizcache = v;
e.sizset = t
}
if (e.nodeName.toLowerCase() === x) {
u = e;
break
}
e = e[r]
}
A[t] = u
}
}
}
function q(r, x, v, A, y, z) {
for (var t = 0, s = A.length; t < s; t++) {
var e = A[t];
if (e) {
e = e[r];
var u = false;
while (e) {
if (e.sizcache === v) {
u = A[e.sizset];
break
}
if (e.nodeType === 1) {
if (!z) {
e.sizcache = v;
e.sizset = t
}
if (typeof x !== "string") {
if (e === x) {
u = true;
break
}
} else {
if (b.filter(x, [e]).length > 0) {
u = e;
break
}
}
}
e = e[r]
}
A[t] = u
}
}
}
b.contains = document.compareDocumentPosition ?
function(r, e) {
return !!(r.compareDocumentPosition(e) & 16)
} : function(r, e) {
return r !== e && (r.contains ? r.contains(e) : true)
};
b.isXML = function(e) {
var r = (e ? e.ownerDocument || e : 0).documentElement;
return r ? r.nodeName !== "HTML" : false
};
var h = function(e, y) {
var t = [],
u = "",
v, s = y.nodeType ? [y] : y;
while ((v = f.match.PSEUDO.exec(e))) {
u += v[0];
e = e.replace(f.match.PSEUDO, "")
}
e = f.relative[e] ? e + "*" : e;
for (var x = 0, r = s.length; x < r; x++) {
b(e, s[x], t)
}
return b.filter(u, t)
};
window.tinymce.dom.Sizzle = b
})();
(function(d) {
var f = d.each,
c = d.DOM,
b = d.isIE,
e = d.isWebKit,
a;
d.create("tinymce.dom.EventUtils", {
EventUtils: function() {
this.inits = [];
this.events = []
},
add: function(m, p, l, j) {
var g, h = this,
i = h.events,
k;
if (p instanceof Array) {
k = [];
f(p, function(o) {
k.push(h.add(m, o, l, j))
});
return k
}
if (m && m.hasOwnProperty && m instanceof Array) {
k = [];
f(m, function(n) {
n = c.get(n);
k.push(h.add(n, p, l, j))
});
return k
}
m = c.get(m);
if (!m) {
return
}
g = function(n) {
if (h.disabled) {
return
}
n = n || window.event;
if (n && b) {
if (!n.target) {
n.target = n.srcElement
}
d.extend(n, h._stoppers)
}
if (!j) {
return l(n)
}
return l.call(j, n)
};
if (p == "unload") {
d.unloads.unshift({
func: g
});
return g
}
if (p == "init") {
if (h.domLoaded) {
g()
} else {
h.inits.push(g)
}
return g
}
i.push({
obj: m,
name: p,
func: l,
cfunc: g,
scope: j
});
h._add(m, p, g);
return l
},
remove: function(l, m, k) {
var h = this,
g = h.events,
i = false,
j;
if (l && l.hasOwnProperty && l instanceof Array) {
j = [];
f(l, function(n) {
n = c.get(n);
j.push(h.remove(n, m, k))
});
return j
}
l = c.get(l);
f(g, function(o, n) {
if (o.obj == l && o.name == m && (!k || (o.func == k || o.cfunc == k))) {
g.splice(n, 1);
h._remove(l, m, o.cfunc);
i = true;
return false
}
});
return i
},
clear: function(l) {
var j = this,
g = j.events,
h, k;
if (l) {
l = c.get(l);
for (h = g.length - 1; h >= 0; h--) {
k = g[h];
if (k.obj === l) {
j._remove(k.obj, k.name, k.cfunc);
k.obj = k.cfunc = null;
g.splice(h, 1)
}
}
}
},
cancel: function(g) {
if (!g) {
return false
}
this.stop(g);
return this.prevent(g)
},
stop: function(g) {
if (g.stopPropagation) {
g.stopPropagation()
} else {
g.cancelBubble = true
}
return false
},
prevent: function(g) {
if (g.preventDefault) {
g.preventDefault()
} else {
g.returnValue = false
}
return false
},
destroy: function() {
var g = this;
f(g.events, function(j, h) {
g._remove(j.obj, j.name, j.cfunc);
j.obj = j.cfunc = null
});
g.events = [];
g = null
},
_add: function(h, i, g) {
if (h.attachEvent) {
h.attachEvent("on" + i, g)
} else {
if (h.addEventListener) {
h.addEventListener(i, g, false)
} else {
h["on" + i] = g
}
}
},
_remove: function(i, j, h) {
if (i) {
try {
if (i.detachEvent) {
i.detachEvent("on" + j, h)
} else {
if (i.removeEventListener) {
i.removeEventListener(j, h, false)
} else {
i["on" + j] = null
}
}
} catch (g) {}
}
},
_pageInit: function(h) {
var g = this;
if (g.domLoaded) {
return
}
g.domLoaded = true;
f(g.inits, function(i) {
i()
});
g.inits = []
},
_wait: function(i) {
var g = this,
h = i.document;
if (i.tinyMCE_GZ && tinyMCE_GZ.loaded) {
g.domLoaded = 1;
return
}
if (h.attachEvent) {
h.attachEvent("onreadystatechange", function() {
if (h.readyState === "complete") {
h.detachEvent("onreadystatechange", arguments.callee);
g._pageInit(i)
}
});
if (h.documentElement.doScroll && i == i.top) {
(function() {
if (g.domLoaded) {
return
}
try {
h.documentElement.doScroll("left")
} catch (j) {
setTimeout(arguments.callee, 0);
return
}
g._pageInit(i)
})()
}
} else {
if (h.addEventListener) {
g._add(i, "DOMContentLoaded", function() {
g._pageInit(i)
})
}
}
g._add(i, "load", function() {
g._pageInit(i)
})
},
_stoppers: {
preventDefault: function() {
this.returnValue = false
},
stopPropagation: function() {
this.cancelBubble = true
}
}
});
a = d.dom.Event = new d.dom.EventUtils();
a._wait(window);
d.addUnload(function() {
a.destroy()
})
})(tinymce);
(function(a) {
a.dom.Element = function(f, d) {
var b = this,
e, c;
b.settings = d = d || {};
b.id = f;
b.dom = e = d.dom || a.DOM;
if (!a.isIE) {
c = e.get(b.id)
}
a.each(("getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get").split(/,/), function(g) {
b[g] = function() {
var h = [f],
j;
for (j = 0; j < arguments.length; j++) {
h.push(arguments[j])
}
h = e[g].apply(e, h);
b.update(g);
return h
}
});
a.extend(b, {
on: function(i, h, g) {
return a.dom.Event.add(b.id, i, h, g)
},
getXY: function() {
return {
x: parseInt(b.getStyle("left")),
y: parseInt(b.getStyle("top"))
}
},
getSize: function() {
var g = e.get(b.id);
return {
w: parseInt(b.getStyle("width") || g.clientWidth),
h: parseInt(b.getStyle("height") || g.clientHeight)
}
},
moveTo: function(g, h) {
b.setStyles({
left: g,
top: h
})
},
moveBy: function(g, i) {
var h = b.getXY();
b.moveTo(h.x + g, h.y + i)
},
resizeTo: function(g, i) {
b.setStyles({
width: g,
height: i
})
},
resizeBy: function(g, j) {
var i = b.getSize();
b.resizeTo(i.w + g, i.h + j)
},
update: function(h) {
var g;
if (a.isIE6 && d.blocker) {
h = h || "";
if (h.indexOf("get") === 0 || h.indexOf("has") === 0 || h.indexOf("is") === 0) {
return
}
if (h == "remove") {
e.remove(b.blocker);
return
}
if (!b.blocker) {
b.blocker = e.uniqueId();
g = e.add(d.container || e.getRoot(), "iframe", {
id: b.blocker,
style: "position:absolute;",
frameBorder: 0,
src: 'javascript:""'
});
e.setStyle(g, "opacity", 0)
} else {
g = e.get(b.blocker)
}
e.setStyles(g, {
left: b.getStyle("left", 1),
top: b.getStyle("top", 1),
width: b.getStyle("width", 1),
height: b.getStyle("height", 1),
display: b.getStyle("display", 1),
zIndex: parseInt(b.getStyle("zIndex", 1) || 0) - 1
})
}
}
})
}
})(tinymce);
(function(c) {
function e(f) {
return f.replace(/[\n\r]+/g, "")
}
var b = c.is,
a = c.isIE,
d = c.each;
c.create("tinymce.dom.Selection", {
Selection: function(i, h, g) {
var f = this;
f.dom = i;
f.win = h;
f.serializer = g;
d(["onBeforeSetContent", "onBeforeGetContent", "onSetContent", "onGetContent"], function(j) {
f[j] = new c.util.Dispatcher(f)
});
if (!f.win.getSelection) {
f.tridentSel = new c.dom.TridentSelection(f)
}
if (c.isIE && i.boxModel) {
this._fixIESelection()
}
c.addUnload(f.destroy, f)
},
getContent: function(g) {
var f = this,
h = f.getRng(),
l = f.dom.create("body"),
j = f.getSel(),
i, k, m;
g = g || {};
i = k = "";
g.get = true;
g.format = g.format || "html";
f.onBeforeGetContent.dispatch(f, g);
if (g.format == "text") {
return f.isCollapsed() ? "" : (h.text || (j.toString ? j.toString() : ""))
}
if (h.cloneContents) {
m = h.cloneContents();
if (m) {
l.appendChild(m)
}
} else {
if (b(h.item) || b(h.htmlText)) {
l.innerHTML = h.item ? h.item(0).outerHTML : h.htmlText
} else {
l.innerHTML = h.toString()
}
}
if (/^\s/.test(l.innerHTML)) {
i = " "
}
if (/\s+$/.test(l.innerHTML)) {
k = " "
}
g.getInner = true;
g.content = f.isCollapsed() ? "" : i + f.serializer.serialize(l, g) + k;
f.onGetContent.dispatch(f, g);
return g.content
},
setContent: function(k, j) {
var h = this,
f = h.getRng(),
i, l = h.win.document,
m, g;
j = j || {
format: "html"
};
j.set = true;
k = j.content = k;
if (!j.no_events) {
h.onBeforeSetContent.dispatch(h, j)
}
k = j.content;
if (f.insertNode) {
k += '<span id="__caret">_</span>';
if (f.startContainer == l && f.endContainer == l) {
l.body.innerHTML = k
} else {
f.deleteContents();
if (l.body.childNodes.length == 0) {
l.body.innerHTML = k
} else {
if (f.createContextualFragment) {
f.insertNode(f.createContextualFragment(k))
} else {
m = l.createDocumentFragment();
g = l.createElement("div");
m.appendChild(g);
g.outerHTML = k;
f.insertNode(m)
}
}
}
i = h.dom.get("__caret");
f = l.createRange();
f.setStartBefore(i);
f.setEndBefore(i);
h.setRng(f);
h.dom.remove("__caret");
h.setRng(f)
} else {
if (f.item) {
l.execCommand("Delete", false, null);
f = h.getRng()
}
f.pasteHTML(k)
}
if (!j.no_events) {
h.onSetContent.dispatch(h, j)
}
},
getStart: function() {
var g = this.getRng(),
h, f, j, i;
if (g.duplicate || g.item) {
if (g.item) {
return g.item(0)
}
j = g.duplicate();
j.collapse(1);
h = j.parentElement();
f = i = g.parentElement();
while (i = i.parentNode) {
if (i == h) {
h = f;
break
}
}
return h
} else {
h = g.startContainer;
if (h.nodeType == 1 && h.hasChildNodes()) {
h = h.childNodes[Math.min(h.childNodes.length - 1, g.startOffset)]
}
if (h && h.nodeType == 3) {
return h.parentNode
}
return h
}
},
getEnd: function() {
var g = this,
h = g.getRng(),
i, f;
if (h.duplicate || h.item) {
if (h.item) {
return h.item(0)
}
h = h.duplicate();
h.collapse(0);
i = h.parentElement();
if (i && i.nodeName == "BODY") {
return i.lastChild || i
}
return i
} else {
i = h.endContainer;
f = h.endOffset;
if (i.nodeType == 1 && i.hasChildNodes()) {
i = i.childNodes[f > 0 ? f - 1 : f]
}
if (i && i.nodeType == 3) {
return i.parentNode
}
return i
}
},
getBookmark: function(r, s) {
var v = this,
m = v.dom,
g, j, i, n, h, o, p, l = "\uFEFF",
u;
function f(x, y) {
var t = 0;
d(m.select(x), function(A, z) {
if (A == y) {
t = z
}
});
return t
}
if (r == 2) {
function k() {
var x = v.getRng(true),
t = m.getRoot(),
y = {};
function z(C, H) {
var B = C[H ? "startContainer" : "endContainer"],
G = C[H ? "startOffset" : "endOffset"],
A = [],
D, F, E = 0;
if (B.nodeType == 3) {
if (s) {
for (D = B.previousSibling; D && D.nodeType == 3; D = D.previousSibling) {
G += D.nodeValue.length
}
}
A.push(G)
} else {
F = B.childNodes;
if (G >= F.length && F.length) {
E = 1;
G = Math.max(0, F.length - 1)
}
A.push(v.dom.nodeIndex(F[G], s) + E)
}
for (; B && B != t; B = B.parentNode) {
A.push(v.dom.nodeIndex(B, s))
}
return A
}
y.start = z(x, true);
if (!v.isCollapsed()) {
y.end = z(x)
}
return y
}
return k()
}
if (r) {
return {
rng: v.getRng()
}
}
g = v.getRng();
i = m.uniqueId();
n = tinyMCE.activeEditor.selection.isCollapsed();
u = "overflow:hidden;line-height:0px";
if (g.duplicate || g.item) {
if (!g.item) {
j = g.duplicate();
try {
g.collapse();
g.pasteHTML('<span data-mce-type="bookmark" id="' + i + '_start" style="' + u + '">' + l + "</span>");
if (!n) {
j.collapse(false);
g.moveToElementText(j.parentElement());
if (g.compareEndPoints("StartToEnd", j) == 0) {
j.move("character", -1)
}
j.pasteHTML('<span data-mce-type="bookmark" id="' + i + '_end" style="' + u + '">' + l + "</span>")
}
} catch (q) {
return null
}
} else {
o = g.item(0);
h = o.nodeName;
return {
name: h,
index: f(h, o)
}
}
} else {
o = v.getNode();
h = o.nodeName;
if (h == "IMG") {
return {
name: h,
index: f(h, o)
}
}
j = g.cloneRange();
if (!n) {
j.collapse(false);
j.insertNode(m.create("span", {
"data-mce-type": "bookmark",
id: i + "_end",
style: u
}, l))
}
g.collapse(true);
g.insertNode(m.create("span", {
"data-mce-type": "bookmark",
id: i + "_start",
style: u
}, l))
}
v.moveToBookmark({
id: i,
keep: 1
});
return {
id: i
}
},
moveToBookmark: function(n) {
var r = this,
l = r.dom,
i, h, f, q, j, s, o, p;
if (r.tridentSel) {
r.tridentSel.destroy()
}
if (n) {
if (n.start) {
f = l.createRng();
q = l.getRoot();
function g(z) {
var t = n[z ? "start" : "end"],
v, x, y, u;
if (t) {
y = t[0];
for (x = q, v = t.length - 1; v >= 1; v--) {
u = x.childNodes;
if (t[v] > u.length - 1) {
return
}
x = u[t[v]]
}
if (x.nodeType === 3) {
y = Math.min(t[0], x.nodeValue.length)
}
if (x.nodeType === 1) {
y = Math.min(t[0], x.childNodes.length)
}
if (z) {
f.setStart(x, y)
} else {
f.setEnd(x, y)
}
}
return true
}
if (g(true) && g()) {
r.setRng(f)
}
} else {
if (n.id) {
function k(A) {
var u = l.get(n.id + "_" + A),
z, t, x, y, v = n.keep;
if (u) {
z = u.parentNode;
if (A == "start") {
if (!v) {
t = l.nodeIndex(u)
} else {
z = u.firstChild;
t = 1
}
j = s = z;
o = p = t
} else {
if (!v) {
t = l.nodeIndex(u)
} else {
z = u.firstChild;
t = 1
}
s = z;
p = t
}
if (!v) {
y = u.previousSibling;
x = u.nextSibling;
d(c.grep(u.childNodes), function(B) {
if (B.nodeType == 3) {
B.nodeValue = B.nodeValue.replace(/\uFEFF/g, "")
}
});
while (u = l.get(n.id + "_" + A)) {
l.remove(u, 1)
}
if (y && x && y.nodeType == x.nodeType && y.nodeType == 3 && !c.isOpera) {
t = y.nodeValue.length;
y.appendData(x.nodeValue);
l.remove(x);
if (A == "start") {
j = s = y;
o = p = t
} else {
s = y;
p = t
}
}
}
}
}
function m(t) {
if (l.isBlock(t) && !t.innerHTML) {
t.innerHTML = !a ? '<br data-mce-bogus="1" />' : " "
}
return t
}
k("start");
k("end");
if (j) {
f = l.createRng();
f.setStart(m(j), o);
f.setEnd(m(s), p);
r.setRng(f)
}
} else {
if (n.name) {
r.select(l.select(n.name)[n.index])
} else {
if (n.rng) {
r.setRng(n.rng)
}
}
}
}
}
},
select: function(k, j) {
var i = this,
l = i.dom,
g = l.createRng(),
f;
if (k) {
f = l.nodeIndex(k);
g.setStart(k.parentNode, f);
g.setEnd(k.parentNode, f + 1);
if (j) {
function h(m, o) {
var n = new c.dom.TreeWalker(m, m);
do {
if (m.nodeType == 3 && c.trim(m.nodeValue).length != 0) {
if (o) {
g.setStart(m, 0)
} else {
g.setEnd(m, m.nodeValue.length)
}
return
}
if (m.nodeName == "BR") {
if (o) {
g.setStartBefore(m)
} else {
g.setEndBefore(m)
}
return
}
} while (m = (o ? n.next() : n.prev()))
}
h(k, 1);
h(k)
}
i.setRng(g)
}
return k
},
isCollapsed: function() {
var f = this,
h = f.getRng(),
g = f.getSel();
if (!h || h.item) {
return false
}
if (h.compareEndPoints) {
return h.compareEndPoints("StartToEnd", h) === 0
}
return !g || h.collapsed
},
collapse: function(f) {
var h = this,
g = h.getRng(),
i;
if (g.item) {
i = g.item(0);
g = h.win.document.body.createTextRange();
g.moveToElementText(i)
}
g.collapse( !! f);
h.setRng(g)
},
getSel: function() {
var g = this,
f = this.win;
return f.getSelection ? f.getSelection() : f.document.selection
},
getRng: function(l) {
var g = this,
h, i, k, j = g.win.document;
if (l && g.tridentSel) {
return g.tridentSel.getRangeAt(0)
}
try {
if (h = g.getSel()) {
i = h.rangeCount > 0 ? h.getRangeAt(0) : (h.createRange ? h.createRange() : j.createRange())
}
} catch (f) {}
if (c.isIE && i && i.setStart && j.selection.createRange().item) {
k = j.selection.createRange().item(0);
i = j.createRange();
i.setStartBefore(k);
i.setEndAfter(k)
}
if (!i) {
i = j.createRange ? j.createRange() : j.body.createTextRange()
}
if (g.selectedRange && g.explicitRange) {
if (i.compareBoundaryPoints(i.START_TO_START, g.selectedRange) === 0 && i.compareBoundaryPoints(i.END_TO_END, g.selectedRange) === 0) {
i = g.explicitRange
} else {
g.selectedRange = null;
g.explicitRange = null
}
}
return i
},
setRng: function(i) {
var h, g = this;
if (!g.tridentSel) {
h = g.getSel();
if (h) {
g.explicitRange = i;
h.removeAllRanges();
h.addRange(i);
g.selectedRange = h.getRangeAt(0)
}
} else {
if (i.cloneRange) {
g.tridentSel.addRange(i);
return
}
try {
i.select()
} catch (f) {}
}
},
setNode: function(g) {
var f = this;
f.setContent(f.dom.getOuterHTML(g));
return g
},
getNode: function() {
var h = this,
g = h.getRng(),
i = h.getSel(),
l, k = g.startContainer,
f = g.endContainer;
if (!g) {
return h.dom.getRoot()
}
if (g.setStart) {
l = g.commonAncestorContainer;
if (!g.collapsed) {
if (g.startContainer == g.endContainer) {
if (g.endOffset - g.startOffset < 2) {
if (g.startContainer.hasChildNodes()) {
l = g.startContainer.childNodes[g.startOffset]
}
}
}
if (k.nodeType === 3 && f.nodeType === 3) {
function j(p, m) {
var o = p;
while (p && p.nodeType === 3 && p.length === 0) {
p = m ? p.nextSibling : p.previousSibling
}
return p || o
}
if (k.length === g.startOffset) {
k = j(k.nextSibling, true)
} else {
k = k.parentNode
}
if (g.endOffset === 0) {
f = j(f.previousSibling, false)
} else {
f = f.parentNode
}
if (k && k === f) {
return k
}
}
}
if (l && l.nodeType == 3) {
return l.parentNode
}
return l
}
return g.item ? g.item(0) : g.parentElement()
},
getSelectedBlocks: function(g, f) {
var i = this,
j = i.dom,
m, h, l, k = [];
m = j.getParent(g || i.getStart(), j.isBlock);
h = j.getParent(f || i.getEnd(), j.isBlock);
if (m) {
k.push(m)
}
if (m && h && m != h) {
l = m;
while ((l = l.nextSibling) && l != h) {
if (j.isBlock(l)) {
k.push(l)
}
}
}
if (h && m != h) {
k.push(h)
}
return k
},
destroy: function(g) {
var f = this;
f.win = null;
if (f.tridentSel) {
f.tridentSel.destroy()
}
if (!g) {
c.removeUnload(f.destroy)
}
},
_fixIESelection: function() {
var g = this.dom,
m = g.doc,
h = m.body,
j, n, f;
m.documentElement.unselectable = true;
function i(o, r) {
var p = h.createTextRange();
try {
p.moveToPoint(o, r)
} catch (q) {
p = null
}
return p
}
function l(p) {
var o;
if (p.button) {
o = i(p.x, p.y);
if (o) {
if (o.compareEndPoints("StartToStart", n) > 0) {
o.setEndPoint("StartToStart", n)
} else {
o.setEndPoint("EndToEnd", n)
}
o.select()
}
} else {
k()
}
}
function k() {
var o = m.selection.createRange();
if (n && !o.item && o.compareEndPoints("StartToEnd", o) === 0) {
n.select()
}
g.unbind(m, "mouseup", k);
g.unbind(m, "mousemove", l);
n = j = 0
}
g.bind(m, ["mousedown", "contextmenu"], function(o) {
if (o.target.nodeName === "HTML") {
if (j) {
k()
}
f = m.documentElement;
if (f.scrollHeight > f.clientHeight) {
return
}
j = 1;
n = i(o.x, o.y);
if (n) {
g.bind(m, "mouseup", k);
g.bind(m, "mousemove", l);
g.win.focus();
n.select()
}
}
})
}
})
})(tinymce);
(function(a) {
a.dom.Serializer = function(e, i, f) {
var h, b, d = a.isIE,
g = a.each,
c;
if (!e.apply_source_formatting) {
e.indent = false
}
e.remove_trailing_brs = true;
i = i || a.DOM;
f = f || new a.html.Schema(e);
e.entity_encoding = e.entity_encoding || "named";
h = new a.util.Dispatcher(self);
b = new a.util.Dispatcher(self);
c = new a.html.DomParser(e, f);
c.addAttributeFilter("src,href,style", function(k, j) {
var o = k.length,
l, q, n = "data-mce-" + j,
p = e.url_converter,
r = e.url_converter_scope,
m;
while (o--) {
l = k[o];
q = l.attributes.map[n];
if (q !== m) {
l.attr(j, q.length > 0 ? q : null);
l.attr(n, null)
} else {
q = l.attributes.map[j];
if (j === "style") {
q = i.serializeStyle(i.parseStyle(q), l.name)
} else {
if (p) {
q = p.call(r, q, j, l.name)
}
}
l.attr(j, q.length > 0 ? q : null)
}
}
});
c.addAttributeFilter("class", function(j, k) {
var l = j.length,
m, n;
while (l--) {
m = j[l];
n = m.attr("class").replace(/\s*mce(Item\w+|Selected)\s*/g, "");
m.attr("class", n.length > 0 ? n : null)
}
});
c.addAttributeFilter("data-mce-type", function(j, l, k) {
var m = j.length,
n;
while (m--) {
n = j[m];
if (n.attributes.map["data-mce-type"] === "bookmark" && !k.cleanup) {
n.remove()
}
}
});
c.addNodeFilter("script,style", function(k, l) {
var m = k.length,
n, o;
function j(p) {
return p.replace(/(<!--\[CDATA\[|\]\]-->)/g, "\n").replace(/^[\r\n]*|[\r\n]*$/g, "").replace(/^\s*(\/\/\s*<!--|\/\/\s*<!\[CDATA\[|<!--|<!\[CDATA\[)[\r\n]*/g, "").replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->|\]\]-->)\s*$/g, "")
}
while (m--) {
n = k[m];
o = n.firstChild ? n.firstChild.value : "";
if (l === "script") {
n.attr("type", (n.attr("type") || "text/javascript").replace(/^mce\-/, ""));
if (o.length > 0) {
n.firstChild.value = "// <![CDATA[\n" + j(o) + "\n// ]]>"
}
} else {
if (o.length > 0) {
n.firstChild.value = "<!--\n" + j(o) + "\n-->"
}
}
}
});
c.addNodeFilter("#comment", function(j, k) {
var l = j.length,
m;
while (l--) {
m = j[l];
if (m.value.indexOf("[CDATA[") === 0) {
m.name = "#cdata";
m.type = 4;
m.value = m.value.replace(/^\[CDATA\[|\]\]$/g, "")
} else {
if (m.value.indexOf("mce:protected ") === 0) {
m.name = "#text";
m.type = 3;
m.raw = true;
m.value = unescape(m.value).substr(14)
}
}
}
});
c.addNodeFilter("xml:namespace,input", function(j, k) {
var l = j.length,
m;
while (l--) {
m = j[l];
if (m.type === 7) {
m.remove()
} else {
if (m.type === 1) {
if (k === "input" && !("type" in m.attributes.map)) {
m.attr("type", "text")
}
}
}
}
});
if (e.fix_list_elements) {
c.addNodeFilter("ul,ol", function(k, l) {
var m = k.length,
n, j;
while (m--) {
n = k[m];
j = n.parent;
if (j.name === "ul" || j.name === "ol") {
if (n.prev && n.prev.name === "li") {
n.prev.append(n)
}
}
}
})
}
c.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style", function(j, k) {
var l = j.length;
while (l--) {
j[l].attr(k, null)
}
});
return {
schema: f,
addNodeFilter: c.addNodeFilter,
addAttributeFilter: c.addAttributeFilter,
onPreProcess: h,
onPostProcess: b,
serialize: function(o, m) {
var l, p, k, j, n;
if (d && i.select("script,style,select").length > 0) {
n = o.innerHTML;
o = o.cloneNode(false);
i.setHTML(o, n)
} else {
o = o.cloneNode(true)
}
l = o.ownerDocument.implementation;
if (l.createHTMLDocument) {
p = l.createHTMLDocument("");
g(o.nodeName == "BODY" ? o.childNodes : [o], function(q) {
p.body.appendChild(p.importNode(q, true))
});
if (o.nodeName != "BODY") {
o = p.body.firstChild
} else {
o = p.body
}
k = i.doc;
i.doc = p
}
m = m || {};
m.format = m.format || "html";
if (!m.no_events) {
m.node = o;
h.dispatch(self, m)
}
j = new a.html.Serializer(e, f);
m.content = j.serialize(c.parse(m.getInner ? o.innerHTML : a.trim(i.getOuterHTML(o), m), m));
if (!m.no_events) {
b.dispatch(self, m)
}
if (k) {
i.doc = k
}
m.node = null;
return m.content
},
addRules: function(j) {
f.addValidElements(j)
},
setRules: function(j) {
f.setValidElements(j)
}
}
}
})(tinymce);
(function(a) {
a.dom.ScriptLoader = function(h) {
var c = 0,
k = 1,
i = 2,
l = {},
j = [],
f = {},
d = [],
g = 0,
e;
function b(m, v) {
var x = this,
q = a.DOM,
s, o, r, n;
function p() {
q.remove(n);
if (s) {
s.onreadystatechange = s.onload = s = null
}
v()
}
function u() {
if (typeof(console) !== "undefined" && console.log) {
console.log("Failed to load: " + m)
}
}
n = q.uniqueId();
if (a.isIE6) {
o = new a.util.URI(m);
r = location;
if (o.host == r.hostname && o.port == r.port && (o.protocol + ":") == r.protocol && o.protocol.toLowerCase() != "file") {
a.util.XHR.send({
url: a._addVer(o.getURI()),
success: function(y) {
var t = q.create("script", {
type: "text/javascript"
});
t.text = y;
document.getElementsByTagName("head")[0].appendChild(t);
q.remove(t);
p()
},
error: u
});
return
}
}
s = q.create("script", {
id: n,
type: "text/javascript",
src: a._addVer(m)
});
if (!a.isIE) {
s.onload = p
}
s.onerror = u;
if (!a.isOpera) {
s.onreadystatechange = function() {
var t = s.readyState;
if (t == "complete" || t == "loaded") {
p()
}
}
}(document.getElementsByTagName("head")[0] || document.body).appendChild(s)
}
this.isDone = function(m) {
return l[m] == i
};
this.markDone = function(m) {
l[m] = i
};
this.add = this.load = function(m, q, n) {
var o, p = l[m];
if (p == e) {
j.push(m);
l[m] = c
}
if (q) {
if (!f[m]) {
f[m] = []
}
f[m].push({
func: q,
scope: n || this
})
}
};
this.loadQueue = function(n, m) {
this.loadScripts(j, n, m)
};
this.loadScripts = function(m, q, p) {
var o;
function n(r) {
a.each(f[r], function(s) {
s.func.call(s.scope)
});
f[r] = e
}
d.push({
func: q,
scope: p || this
});
o = function() {
var r = a.grep(m);
m.length = 0;
a.each(r, function(s) {
if (l[s] == i) {
n(s);
return
}
if (l[s] != k) {
l[s] = k;
g++;
b(s, function() {
l[s] = i;
g--;
n(s);
o()
})
}
});
if (!g) {
a.each(d, function(s) {
s.func.call(s.scope)
});
d.length = 0
}
};
o()
}
};
a.ScriptLoader = new a.dom.ScriptLoader()
})(tinymce);
tinymce.dom.TreeWalker = function(a, c) {
var b = a;
function d(i, f, e, j) {
var h, g;
if (i) {
if (!j && i[f]) {
return i[f]
}
if (i != c) {
h = i[e];
if (h) {
return h
}
for (g = i.parentNode; g && g != c; g = g.parentNode) {
h = g[e];
if (h) {
return h
}
}
}
}
}
this.current = function() {
return b
};
this.next = function(e) {
return (b = d(b, "firstChild", "nextSibling", e))
};
this.prev = function(e) {
return (b = d(b, "lastChild", "previousSibling", e))
}
};
(function(a) {
a.dom.RangeUtils = function(c) {
var b = "\uFEFF";
this.walk = function(d, r) {
var h = d.startContainer,
k = d.startOffset,
s = d.endContainer,
l = d.endOffset,
i, f, n, g, q, p, e;
e = c.select("td.mceSelected,th.mceSelected");
if (e.length > 0) {
a.each(e, function(t) {
r([t])
});
return
}
function o(v, u, t) {
var x = [];
for (; v && v != t; v = v[u]) {
x.push(v)
}
return x
}
function m(u, t) {
do {
if (u.parentNode == t) {
return u
}
u = u.parentNode
} while (u)
}
function j(v, u, x) {
var t = x ? "nextSibling" : "previousSibling";
for (g = v, q = g.parentNode; g && g != u; g = q) {
q = g.parentNode;
p = o(g == v ? g : g[t], t);
if (p.length) {
if (!x) {
p.reverse()
}
r(p)
}
}
}
if (h.nodeType == 1 && h.hasChildNodes()) {
h = h.childNodes[k]
}
if (s.nodeType == 1 && s.hasChildNodes()) {
s = s.childNodes[Math.min(l - 1, s.childNodes.length - 1)]
}
i = c.findCommonAncestor(h, s);
if (h == s) {
return r([h])
}
for (g = h; g; g = g.parentNode) {
if (g == s) {
return j(h, i, true)
}
if (g == i) {
break
}
}
for (g = s; g; g = g.parentNode) {
if (g == h) {
return j(s, i)
}
if (g == i) {
break
}
}
f = m(h, i) || h;
n = m(s, i) || s;
j(h, f, true);
p = o(f == h ? f : f.nextSibling, "nextSibling", n == s ? n.nextSibling : n);
if (p.length) {
r(p)
}
j(s, n)
}
};
a.dom.RangeUtils.compareRanges = function(c, b) {
if (c && b) {
if (c.item || c.duplicate) {
if (c.item && b.item && c.item(0) === b.item(0)) {
return true
}
if (c.isEqual && b.isEqual && b.isEqual(c)) {
return true
}
} else {
return c.startContainer == b.startContainer && c.startOffset == b.startOffset
}
}
return false
}
})(tinymce);
(function(b) {
var a = b.dom.Event,
c = b.each;
b.create("tinymce.ui.KeyboardNavigation", {
KeyboardNavigation: function(e, f) {
var p = this,
m = e.root,
l = e.items,
n = e.enableUpDown,
i = e.enableLeftRight || !e.enableUpDown,
k = e.excludeFromTabOrder,
j, h, o, d, g;
f = f || b.DOM;
j = function(q) {
g = q.target.id
};
h = function(q) {
f.setAttrib(q.target.id, "tabindex", "-1")
};
d = function(q) {
var r = f.get(g);
f.setAttrib(r, "tabindex", "0");
r.focus()
};
p.focus = function() {
f.get(g).focus()
};
p.destroy = function() {
c(l, function(q) {
f.unbind(f.get(q.id), "focus", j);
f.unbind(f.get(q.id), "blur", h)
});
f.unbind(f.get(m), "focus", d);
f.unbind(f.get(m), "keydown", o);
l = f = m = p.focus = j = h = o = d = null;
p.destroy = function() {}
};
p.moveFocus = function(u, r) {
var q = -1,
t = p.controls,
s;
if (!g) {
return
}
c(l, function(x, v) {
if (x.id === g) {
q = v;
return false
}
});
q += u;
if (q < 0) {
q = l.length - 1
} else {
if (q >= l.length) {
q = 0
}
}
s = l[q];
f.setAttrib(g, "tabindex", "-1");
f.setAttrib(s.id, "tabindex", "0");
f.get(s.id).focus();
if (e.actOnFocus) {
e.onAction(s.id)
}
if (r) {
a.cancel(r)
}
};
o = function(y) {
var u = 37,
t = 39,
x = 38,
z = 40,
q = 27,
s = 14,
r = 13,
v = 32;
switch (y.keyCode) {
case u:
if (i) {
p.moveFocus(-1)
}
break;
case t:
if (i) {
p.moveFocus(1)
}
break;
case x:
if (n) {
p.moveFocus(-1)
}
break;
case z:
if (n) {
p.moveFocus(1)
}
break;
case q:
if (e.onCancel) {
e.onCancel();
a.cancel(y)
}
break;
case s:
case r:
case v:
if (e.onAction) {
e.onAction(g);
a.cancel(y)
}
break
}
};
c(l, function(s, q) {
var r;
if (!s.id) {
s.id = f.uniqueId("_mce_item_")
}
if (k) {
f.bind(s.id, "blur", h);
r = "-1"
} else {
r = (q === 0 ? "0" : "-1")
}
f.setAttrib(s.id, "tabindex", r);
f.bind(f.get(s.id), "focus", j)
});
if (l[0]) {
g = l[0].id
}
f.setAttrib(m, "tabindex", "-1");
f.bind(f.get(m), "focus", d);
f.bind(f.get(m), "keydown", o)
}
})
})(tinymce);
(function(c) {
var b = c.DOM,
a = c.is;
c.create("tinymce.ui.Control", {
Control: function(f, e, d) {
this.id = f;
this.settings = e = e || {};
this.rendered = false;
this.onRender = new c.util.Dispatcher(this);
this.classPrefix = "";
this.scope = e.scope || this;
this.disabled = 0;
this.active = 0;
this.editor = d
},
setAriaProperty: function(f, e) {
var d = b.get(this.id + "_aria") || b.get(this.id);
if (d) {
b.setAttrib(d, "aria-" + f, !! e)
}
},
focus: function() {
b.get(this.id).focus()
},
setDisabled: function(d) {
if (d != this.disabled) {
this.setAriaProperty("disabled", d);
this.setState("Disabled", d);
this.setState("Enabled", !d);
this.disabled = d
}
},
isDisabled: function() {
return this.disabled
},
setActive: function(d) {
if (d != this.active) {
this.setState("Active", d);
this.active = d;
this.setAriaProperty("pressed", d)
}
},
isActive: function() {
return this.active
},
setState: function(f, d) {
var e = b.get(this.id);
f = this.classPrefix + f;
if (d) {
b.addClass(e, f)
} else {
b.removeClass(e, f)
}
},
isRendered: function() {
return this.rendered
},
renderHTML: function() {},
renderTo: function(d) {
b.setHTML(d, this.renderHTML())
},
postRender: function() {
var e = this,
d;
if (a(e.disabled)) {
d = e.disabled;
e.disabled = -1;
e.setDisabled(d)
}
if (a(e.active)) {
d = e.active;
e.active = -1;
e.setActive(d)
}
},
remove: function() {
b.remove(this.id);
this.destroy()
},
destroy: function() {
c.dom.Event.clear(this.id)
}
})
})(tinymce);
tinymce.create("tinymce.ui.Container:tinymce.ui.Control", {
Container: function(c, b, a) {
this.parent(c, b, a);
this.controls = [];
this.lookup = {}
},
add: function(a) {
this.lookup[a.id] = a;
this.controls.push(a);
return a
},
get: function(a) {
return this.lookup[a]
}
});
tinymce.create("tinymce.ui.Separator:tinymce.ui.Control", {
Separator: function(b, a) {
this.parent(b, a);
this.classPrefix = "mceSeparator";
this.setDisabled(true)
},
renderHTML: function() {
return tinymce.DOM.createHTML("span", {
"class": this.classPrefix,
role: "separator",
"aria-orientation": "vertical",
tabindex: "-1"
})
}
});
(function(d) {
var c = d.is,
b = d.DOM,
e = d.each,
a = d.walk;
d.create("tinymce.ui.MenuItem:tinymce.ui.Control", {
MenuItem: function(g, f) {
this.parent(g, f);
this.classPrefix = "mceMenuItem"
},
setSelected: function(f) {
this.setState("Selected", f);
this.setAriaProperty("checked", !! f);
this.selected = f
},
isSelected: function() {
return this.selected
},
postRender: function() {
var f = this;
f.parent();
if (c(f.selected)) {
f.setSelected(f.selected)
}
}
})
})(tinymce);
(function(d) {
var c = d.is,
b = d.DOM,
e = d.each,
a = d.walk;
d.create("tinymce.ui.Menu:tinymce.ui.MenuItem", {
Menu: function(h, g) {
var f = this;
f.parent(h, g);
f.items = {};
f.collapsed = false;
f.menuCount = 0;
f.onAddItem = new d.util.Dispatcher(this)
},
expand: function(g) {
var f = this;
if (g) {
a(f, function(h) {
if (h.expand) {
h.expand()
}
}, "items", f)
}
f.collapsed = false
},
collapse: function(g) {
var f = this;
if (g) {
a(f, function(h) {
if (h.collapse) {
h.collapse()
}
}, "items", f)
}
f.collapsed = true
},
isCollapsed: function() {
return this.collapsed
},
add: function(f) {
if (!f.settings) {
f = new d.ui.MenuItem(f.id || b.uniqueId(), f)
}
this.onAddItem.dispatch(this, f);
return this.items[f.id] = f
},
addSeparator: function() {
return this.add({
separator: true
})
},
addMenu: function(f) {
if (!f.collapse) {
f = this.createMenu(f)
}
this.menuCount++;
return this.add(f)
},
hasMenus: function() {
return this.menuCount !== 0
},
remove: function(f) {
delete this.items[f.id]
},
removeAll: function() {
var f = this;
a(f, function(g) {
if (g.removeAll) {
g.removeAll()
} else {
g.remove()
}
g.destroy()
}, "items", f);
f.items = {}
},
createMenu: function(g) {
var f = new d.ui.Menu(g.id || b.uniqueId(), g);
f.onAddItem.add(this.onAddItem.dispatch, this.onAddItem);
return f
}
})
})(tinymce);
(function(e) {
var d = e.is,
c = e.DOM,
f = e.each,
a = e.dom.Event,
b = e.dom.Element;
e.create("tinymce.ui.DropMenu:tinymce.ui.Menu", {
DropMenu: function(h, g) {
g = g || {};
g.container = g.container || c.doc.body;
g.offset_x = g.offset_x || 0;
g.offset_y = g.offset_y || 0;
g.vp_offset_x = g.vp_offset_x || 0;
g.vp_offset_y = g.vp_offset_y || 0;
if (d(g.icons) && !g.icons) {
g["class"] += " mceNoIcons"
}
this.parent(h, g);
this.onShowMenu = new e.util.Dispatcher(this);
this.onHideMenu = new e.util.Dispatcher(this);
this.classPrefix = "mceMenu"
},
createMenu: function(j) {
var h = this,
i = h.settings,
g;
j.container = j.container || i.container;
j.parent = h;
j.constrain = j.constrain || i.constrain;
j["class"] = j["class"] || i["class"];
j.vp_offset_x = j.vp_offset_x || i.vp_offset_x;
j.vp_offset_y = j.vp_offset_y || i.vp_offset_y;
j.keyboard_focus = i.keyboard_focus;
g = new e.ui.DropMenu(j.id || c.uniqueId(), j);
g.onAddItem.add(h.onAddItem.dispatch, h.onAddItem);
return g
},
focus: function() {
var g = this;
if (g.keyboardNav) {
g.keyboardNav.focus()
}
},
update: function() {
var i = this,
j = i.settings,
g = c.get("menu_" + i.id + "_tbl"),
l = c.get("menu_" + i.id + "_co"),
h, k;
h = j.max_width ? Math.min(g.clientWidth, j.max_width) : g.clientWidth;
k = j.max_height ? Math.min(g.clientHeight, j.max_height) : g.clientHeight;
if (!c.boxModel) {
i.element.setStyles({
width: h + 2,
height: k + 2
})
} else {
i.element.setStyles({
width: h,
height: k
})
}
if (j.max_width) {
c.setStyle(l, "width", h)
}
if (j.max_height) {
c.setStyle(l, "height", k);
if (g.clientHeight < j.max_height) {
c.setStyle(l, "overflow", "hidden")
}
}
},
showMenu: function(p, n, r) {
var z = this,
A = z.settings,
o, g = c.getViewPort(),
u, l, v, q, i = 2,
k, j, m = z.classPrefix;
z.collapse(1);
if (z.isMenuVisible) {
return
}
if (!z.rendered) {
o = c.add(z.settings.container, z.renderNode());
f(z.items, function(h) {
h.postRender()
});
z.element = new b("menu_" + z.id, {
blocker: 1,
container: A.container
})
} else {
o = c.get("menu_" + z.id)
}
if (!e.isOpera) {
c.setStyles(o, {
left: -65535,
top: -65535
})
}
c.show(o);
z.update();
p += A.offset_x || 0;
n += A.offset_y || 0;
g.w -= 4;
g.h -= 4;
if (A.constrain) {
u = o.clientWidth - i;
l = o.clientHeight - i;
v = g.x + g.w;
q = g.y + g.h;
if ((p + A.vp_offset_x + u) > v) {
p = r ? r - u : Math.max(0, (v - A.vp_offset_x) - u)
}
if ((n + A.vp_offset_y + l) > q) {
n = Math.max(0, (q - A.vp_offset_y) - l)
}
}
c.setStyles(o, {
left: p,
top: n
});
z.element.update();
z.isMenuVisible = 1;
z.mouseClickFunc = a.add(o, "click", function(s) {
var h;
s = s.target;
if (s && (s = c.getParent(s, "tr")) && !c.hasClass(s, m + "ItemSub")) {
h = z.items[s.id];
if (h.isDisabled()) {
return
}
k = z;
while (k) {
if (k.hideMenu) {
k.hideMenu()
}
k = k.settings.parent
}
if (h.settings.onclick) {
h.settings.onclick(s)
}
return a.cancel(s)
}
});
if (z.hasMenus()) {
z.mouseOverFunc = a.add(o, "mouseover", function(x) {
var h, t, s;
x = x.target;
if (x && (x = c.getParent(x, "tr"))) {
h = z.items[x.id];
if (z.lastMenu) {
z.lastMenu.collapse(1)
}
if (h.isDisabled()) {
return
}
if (x && c.hasClass(x, m + "ItemSub")) {
t = c.getRect(x);
h.showMenu((t.x + t.w - i), t.y - i, t.x);
z.lastMenu = h;
c.addClass(c.get(h.id).firstChild, m + "ItemActive")
}
}
})
}
a.add(o, "keydown", z._keyHandler, z);
z.onShowMenu.dispatch(z);
if (A.keyboard_focus) {
z._setupKeyboardNav()
}
},
hideMenu: function(j) {
var g = this,
i = c.get("menu_" + g.id),
h;
if (!g.isMenuVisible) {
return
}
if (g.keyboardNav) {
g.keyboardNav.destroy()
}
a.remove(i, "mouseover", g.mouseOverFunc);
a.remove(i, "click", g.mouseClickFunc);
a.remove(i, "keydown", g._keyHandler);
c.hide(i);
g.isMenuVisible = 0;
if (!j) {
g.collapse(1)
}
if (g.element) {
g.element.hide()
}
if (h = c.get(g.id)) {
c.removeClass(h.firstChild, g.classPrefix + "ItemActive")
}
g.onHideMenu.dispatch(g)
},
add: function(i) {
var g = this,
h;
i = g.parent(i);
if (g.isRendered && (h = c.get("menu_" + g.id))) {
g._add(c.select("tbody", h)[0], i)
}
return i
},
collapse: function(g) {
this.parent(g);
this.hideMenu(1)
},
remove: function(g) {
c.remove(g.id);
this.destroy();
return this.parent(g)
},
destroy: function() {
var g = this,
h = c.get("menu_" + g.id);
if (g.keyboardNav) {
g.keyboardNav.destroy()
}
a.remove(h, "mouseover", g.mouseOverFunc);
a.remove(c.select("a", h), "focus", g.mouseOverFunc);
a.remove(h, "click", g.mouseClickFunc);
a.remove(h, "keydown", g._keyHandler);
if (g.element) {
g.element.remove()
}
c.remove(h)
},
renderNode: function() {
var i = this,
j = i.settings,
l, h, k, g;
g = c.create("div", {
role: "listbox",
id: "menu_" + i.id,
"class": j["class"],
style: "position:absolute;left:0;top:0;z-index:200000;outline:0"
});
if (i.settings.parent) {
c.setAttrib(g, "aria-parent", "menu_" + i.settings.parent.id)
}
k = c.add(g, "div", {
role: "presentation",
id: "menu_" + i.id + "_co",
"class": i.classPrefix + (j["class"] ? " " + j["class"] : "")
});
i.element = new b("menu_" + i.id, {
blocker: 1,
container: j.container
});
if (j.menu_line) {
c.add(k, "span", {
"class": i.classPrefix + "Line"
})
}
l = c.add(k, "table", {
role: "presentation",
id: "menu_" + i.id + "_tbl",
border: 0,
cellPadding: 0,
cellSpacing: 0
});
h = c.add(l, "tbody");
f(i.items, function(m) {
i._add(h, m)
});
i.rendered = true;
return g
},
_setupKeyboardNav: function() {
var i, h, g = this;
i = c.select("#menu_" + g.id)[0];
h = c.select("a[role=option]", "menu_" + g.id);
h.splice(0, 0, i);
g.keyboardNav = new e.ui.KeyboardNavigation({
root: "menu_" + g.id,
items: h,
onCancel: function() {
g.hideMenu()
},
enableUpDown: true
});
i.focus()
},
_keyHandler: function(g) {
var h = this,
i;
switch (g.keyCode) {
case 37:
if (h.settings.parent) {
h.hideMenu();
h.settings.parent.focus();
a.cancel(g)
}
break;
case 39:
if (h.mouseOverFunc) {
h.mouseOverFunc(g)
}
break
}
},
_add: function(j, h) {
var i, q = h.settings,
p, l, k, m = this.classPrefix,
g;
if (q.separator) {
l = c.add(j, "tr", {
id: h.id,
"class": m + "ItemSeparator"
});
c.add(l, "td", {
"class": m + "ItemSeparator"
});
if (i = l.previousSibling) {
c.addClass(i, "mceLast")
}
return
}
i = l = c.add(j, "tr", {
id: h.id,
"class": m + "Item " + m + "ItemEnabled"
});
i = k = c.add(i, q.titleItem ? "th" : "td");
i = p = c.add(i, "a", {
id: h.id + "_aria",
role: q.titleItem ? "presentation" : "option",
href: "javascript:;",
onclick: "return false;",
onmousedown: "return false;"
});
if (q.parent) {
c.setAttrib(p, "aria-haspopup", "true");
c.setAttrib(p, "aria-owns", "menu_" + h.id)
}
c.addClass(k, q["class"]);
g = c.add(i, "span", {
"class": "mceIcon" + (q.icon ? " mce_" + q.icon : "")
});
if (q.icon_src) {
c.add(g, "img", {
src: q.icon_src
})
}
i = c.add(i, q.element || "span", {
"class": "mceText",
title: h.settings.title
}, h.settings.title);
if (h.settings.style) {
c.setAttrib(i, "style", h.settings.style)
}
if (j.childNodes.length == 1) {
c.addClass(l, "mceFirst")
}
if ((i = l.previousSibling) && c.hasClass(i, m + "ItemSeparator")) {
c.addClass(l, "mceFirst")
}
if (h.collapse) {
c.addClass(l, m + "ItemSub")
}
if (i = l.previousSibling) {
c.removeClass(i, "mceLast")
}
c.addClass(l, "mceLast")
}
})
})(tinymce);
(function(b) {
var a = b.DOM;
b.create("tinymce.ui.Button:tinymce.ui.Control", {
Button: function(e, d, c) {
this.parent(e, d, c);
this.classPrefix = "mceButton"
},
renderHTML: function() {
var f = this.classPrefix,
e = this.settings,
d, c;
c = a.encode(e.label || "");
d = '<a role="button" id="' + this.id + '" href="javascript:;" class="' + f + " " + f + "Enabled " + e["class"] + (c ? " " + f + "Labeled" : "") + '" onmousedown="return false;" onclick="return false;" aria-labelledby="' + this.id + '_voice" title="' + a.encode(e.title) + '">';
if (e.image) {
d += '<img class="mceIcon" src="' + e.image + '" alt="' + a.encode(e.title) + '" />' + c
} else {
d += '<span class="mceIcon ' + e["class"] + '"></span>' + (c ? '<span class="' + f + 'Label">' + c + "</span>" : "")
}
d += '<span class="mceVoiceLabel mceIconOnly" style="display: none;" id="' + this.id + '_voice">' + e.title + "</span>";
d += "</a>";
return d
},
postRender: function() {
var c = this,
d = c.settings;
b.dom.Event.add(c.id, "click", function(f) {
if (!c.isDisabled()) {
return d.onclick.call(d.scope, f)
}
})
}
})
})(tinymce);
(function(d) {
var c = d.DOM,
b = d.dom.Event,
e = d.each,
a = d.util.Dispatcher;
d.create("tinymce.ui.ListBox:tinymce.ui.Control", {
ListBox: function(i, h, f) {
var g = this;
g.parent(i, h, f);
g.items = [];
g.onChange = new a(g);
g.onPostRender = new a(g);
g.onAdd = new a(g);
g.onRenderMenu = new d.util.Dispatcher(this);
g.classPrefix = "mceListBox"
},
select: function(h) {
var g = this,
j, i;
if (h == undefined) {
return g.selectByIndex(-1)
}
if (h && h.call) {
i = h
} else {
i = function(f) {
return f == h
}
}
if (h != g.selectedValue) {
e(g.items, function(k, f) {
if (i(k.value)) {
j = 1;
g.selectByIndex(f);
return false
}
});
if (!j) {
g.selectByIndex(-1)
}
}
},
selectByIndex: function(f) {
var g = this,
h, i;
if (f != g.selectedIndex) {
h = c.get(g.id + "_text");
i = g.items[f];
if (i) {
g.selectedValue = i.value;
g.selectedIndex = f;
c.setHTML(h, c.encode(i.title));
c.removeClass(h, "mceTitle");
c.setAttrib(g.id, "aria-valuenow", i.title)
} else {
c.setHTML(h, c.encode(g.settings.title));
c.addClass(h, "mceTitle");
g.selectedValue = g.selectedIndex = null;
c.setAttrib(g.id, "aria-valuenow", g.settings.title)
}
h = 0
}
},
add: function(i, f, h) {
var g = this;
h = h || {};
h = d.extend(h, {
title: i,
value: f
});
g.items.push(h);
g.onAdd.dispatch(g, h)
},
getLength: function() {
return this.items.length
},
renderHTML: function() {
var i = "",
f = this,
g = f.settings,
j = f.classPrefix;
i = '<span role="button" aria-haspopup="true" aria-labelledby="' + f.id + '_text" aria-describedby="' + f.id + '_voiceDesc"><table role="presentation" tabindex="0" id="' + f.id + '" cellpadding="0" cellspacing="0" class="' + j + " " + j + "Enabled" + (g["class"] ? (" " + g["class"]) : "") + '"><tbody><tr>';
i += "<td>" + c.createHTML("span", {
id: f.id + "_voiceDesc",
"class": "voiceLabel",
style: "display:none;"
}, f.settings.title);
i += c.createHTML("a", {
id: f.id + "_text",
tabindex: -1,
href: "javascript:;",
"class": "mceText",
onclick: "return false;",
onmousedown: "return false;"
}, c.encode(f.settings.title)) + "</td>";
i += "<td>" + c.createHTML("a", {
id: f.id + "_open",
tabindex: -1,
href: "javascript:;",
"class": "mceOpen",
onclick: "return false;",
onmousedown: "return false;"
}, '<span><span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span></span>') + "</td>";
i += "</tr></tbody></table></span>";
return i
},
showMenu: function() {
var g = this,
j, i, h = c.get(this.id),
f;
if (g.isDisabled() || g.items.length == 0) {
return
}
if (g.menu && g.menu.isMenuVisible) {
return g.hideMenu()
}
if (!g.isMenuRendered) {
g.renderMenu();
g.isMenuRendered = true
}
j = c.getPos(this.settings.menu_container);
i = c.getPos(h);
f = g.menu;
f.settings.offset_x = i.x;
f.settings.offset_y = i.y;
f.settings.keyboard_focus = !d.isOpera;
if (g.oldID) {
f.items[g.oldID].setSelected(0)
}
e(g.items, function(k) {
if (k.value === g.selectedValue) {
f.items[k.id].setSelected(1);
g.oldID = k.id
}
});
f.showMenu(0, h.clientHeight);
b.add(c.doc, "mousedown", g.hideMenu, g);
c.addClass(g.id, g.classPrefix + "Selected")
},
hideMenu: function(g) {
var f = this;
if (f.menu && f.menu.isMenuVisible) {
c.removeClass(f.id, f.classPrefix + "Selected");
if (g && g.type == "mousedown" && (g.target.id == f.id + "_text" || g.target.id == f.id + "_open")) {
return
}
if (!g || !c.getParent(g.target, ".mceMenu")) {
c.removeClass(f.id, f.classPrefix + "Selected");
b.remove(c.doc, "mousedown", f.hideMenu, f);
f.menu.hideMenu()
}
}
},
renderMenu: function() {
var g = this,
f;
f = g.settings.control_manager.createDropMenu(g.id + "_menu", {
menu_line: 1,
"class": g.classPrefix + "Menu mceNoIcons",
max_width: 150,
max_height: 150
});
f.onHideMenu.add(function() {
g.hideMenu();
g.focus()
});
f.add({
title: g.settings.title,
"class": "mceMenuItemTitle",
onclick: function() {
if (g.settings.onselect("") !== false) {
g.select("")
}
}
});
e(g.items, function(h) {
if (h.value === undefined) {
f.add({
title: h.title,
"class": "mceMenuItemTitle",
onclick: function() {
if (g.settings.onselect("") !== false) {
g.select("")
}
}
})
} else {
h.id = c.uniqueId();
h.onclick = function() {
if (g.settings.onselect(h.value) !== false) {
g.select(h.value)
}
};
f.add(h)
}
});
g.onRenderMenu.dispatch(g, f);
g.menu = f
},
postRender: function() {
var f = this,
g = f.classPrefix;
b.add(f.id, "click", f.showMenu, f);
b.add(f.id, "keydown", function(h) {
if (h.keyCode == 32) {
f.showMenu(h);
b.cancel(h)
}
});
b.add(f.id, "focus", function() {
if (!f._focused) {
f.keyDownHandler = b.add(f.id, "keydown", function(h) {
if (h.keyCode == 40) {
f.showMenu();
b.cancel(h)
}
});
f.keyPressHandler = b.add(f.id, "keypress", function(i) {
var h;
if (i.keyCode == 13) {
h = f.selectedValue;
f.selectedValue = null;
b.cancel(i);
f.settings.onselect(h)
}
})
}
f._focused = 1
});
b.add(f.id, "blur", function() {
b.remove(f.id, "keydown", f.keyDownHandler);
b.remove(f.id, "keypress", f.keyPressHandler);
f._focused = 0
});
if (d.isIE6 || !c.boxModel) {
b.add(f.id, "mouseover", function() {
if (!c.hasClass(f.id, g + "Disabled")) {
c.addClass(f.id, g + "Hover")
}
});
b.add(f.id, "mouseout", function() {
if (!c.hasClass(f.id, g + "Disabled")) {
c.removeClass(f.id, g + "Hover")
}
})
}
f.onPostRender.dispatch(f, c.get(f.id))
},
destroy: function() {
this.parent();
b.clear(this.id + "_text");
b.clear(this.id + "_open")
}
})
})(tinymce);
(function(d) {
var c = d.DOM,
b = d.dom.Event,
e = d.each,
a = d.util.Dispatcher;
d.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox", {
NativeListBox: function(g, f) {
this.parent(g, f);
this.classPrefix = "mceNativeListBox"
},
setDisabled: function(f) {
c.get(this.id).disabled = f;
this.setAriaProperty("disabled", f)
},
isDisabled: function() {
return c.get(this.id).disabled
},
select: function(h) {
var g = this,
j, i;
if (h == undefined) {
return g.selectByIndex(-1)
}
if (h && h.call) {
i = h
} else {
i = function(f) {
return f == h
}
}
if (h != g.selectedValue) {
e(g.items, function(k, f) {
if (i(k.value)) {
j = 1;
g.selectByIndex(f);
return false
}
});
if (!j) {
g.selectByIndex(-1)
}
}
},
selectByIndex: function(f) {
c.get(this.id).selectedIndex = f + 1;
this.selectedValue = this.items[f] ? this.items[f].value : null
},
add: function(j, g, f) {
var i, h = this;
f = f || {};
f.value = g;
if (h.isRendered()) {
c.add(c.get(this.id), "option", f, j)
}
i = {
title: j,
value: g,
attribs: f
};
h.items.push(i);
h.onAdd.dispatch(h, i)
},
getLength: function() {
return this.items.length
},
renderHTML: function() {
var g, f = this;
g = c.createHTML("option", {
value: ""
}, "-- " + f.settings.title + " --");
e(f.items, function(h) {
g += c.createHTML("option", {
value: h.value
}, h.title)
});
g = c.createHTML("select", {
id: f.id,
"class": "mceNativeListBox",
"aria-labelledby": f.id + "_aria"
}, g);
g += c.createHTML("span", {
id: f.id + "_aria",
style: "display: none"
}, f.settings.title);
return g
},
postRender: function() {
var g = this,
h, i = true;
g.rendered = true;
function f(k) {
var j = g.items[k.target.selectedIndex - 1];
if (j && (j = j.value)) {
g.onChange.dispatch(g, j);
if (g.settings.onselect) {
g.settings.onselect(j)
}
}
}
b.add(g.id, "change", f);
b.add(g.id, "keydown", function(k) {
var j;
b.remove(g.id, "change", h);
i = false;
j = b.add(g.id, "blur", function() {
if (i) {
return
}
i = true;
b.add(g.id, "change", f);
b.remove(g.id, "blur", j)
});
if (k.keyCode == 13 || k.keyCode == 32) {
f(k);
return b.cancel(k)
}
});
g.onPostRender.dispatch(g, c.get(g.id))
}
})
})(tinymce);
(function(c) {
var b = c.DOM,
a = c.dom.Event,
d = c.each;
c.create("tinymce.ui.MenuButton:tinymce.ui.Button", {
MenuButton: function(g, f, e) {
this.parent(g, f, e);
this.onRenderMenu = new c.util.Dispatcher(this);
f.menu_container = f.menu_container || b.doc.body
},
showMenu: function() {
var g = this,
j, i, h = b.get(g.id),
f;
if (g.isDisabled()) {
return
}
if (!g.isMenuRendered) {
g.renderMenu();
g.isMenuRendered = true
}
if (g.isMenuVisible) {
return g.hideMenu()
}
j = b.getPos(g.settings.menu_container);
i = b.getPos(h);
f = g.menu;
f.settings.offset_x = i.x;
f.settings.offset_y = i.y;
f.settings.vp_offset_x = i.x;
f.settings.vp_offset_y = i.y;
f.settings.keyboard_focus = g._focused;
f.showMenu(0, h.clientHeight);
a.add(b.doc, "mousedown", g.hideMenu, g);
g.setState("Selected", 1);
g.isMenuVisible = 1
},
renderMenu: function() {
var f = this,
e;
e = f.settings.control_manager.createDropMenu(f.id + "_menu", {
menu_line: 1,
"class": this.classPrefix + "Menu",
icons: f.settings.icons
});
e.onHideMenu.add(function() {
f.hideMenu();
f.focus()
});
f.onRenderMenu.dispatch(f, e);
f.menu = e
},
hideMenu: function(g) {
var f = this;
if (g && g.type == "mousedown" && b.getParent(g.target, function(h) {
return h.id === f.id || h.id === f.id + "_open"
})) {
return
}
if (!g || !b.getParent(g.target, ".mceMenu")) {
f.setState("Selected", 0);
a.remove(b.doc, "mousedown", f.hideMenu, f);
if (f.menu) {
f.menu.hideMenu()
}
}
f.isMenuVisible = 0
},
postRender: function() {
var e = this,
f = e.settings;
a.add(e.id, "click", function() {
if (!e.isDisabled()) {
if (f.onclick) {
f.onclick(e.value)
}
e.showMenu()
}
})
}
})
})(tinymce);
(function(c) {
var b = c.DOM,
a = c.dom.Event,
d = c.each;
c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton", {
SplitButton: function(g, f, e) {
this.parent(g, f, e);
this.classPrefix = "mceSplitButton"
},
renderHTML: function() {
var i, f = this,
g = f.settings,
e;
i = "<tbody><tr>";
if (g.image) {
e = b.createHTML("img ", {
src: g.image,
role: "presentation",
"class": "mceAction " + g["class"]
})
} else {
e = b.createHTML("span", {
"class": "mceAction " + g["class"]
}, "")
}
e += b.createHTML("span", {
"class": "mceVoiceLabel mceIconOnly",
id: f.id + "_voice",
style: "display:none;"
}, g.title);
i += "<td >" + b.createHTML("a", {
role: "button",
id: f.id + "_action",
tabindex: "-1",
href: "javascript:;",
"class": "mceAction " + g["class"],
onclick: "return false;",
onmousedown: "return false;",
title: g.title
}, e) + "</td>";
e = b.createHTML("span", {
"class": "mceOpen " + g["class"]
}, '<span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span>');
i += "<td >" + b.createHTML("a", {
role: "button",
id: f.id + "_open",
tabindex: "-1",
href: "javascript:;",
"class": "mceOpen " + g["class"],
onclick: "return false;",
onmousedown: "return false;",
title: g.title
}, e) + "</td>";
i += "</tr></tbody>";
i = b.createHTML("table", {
id: f.id,
role: "presentation",
tabindex: "0",
"class": "mceSplitButton mceSplitButtonEnabled " + g["class"],
cellpadding: "0",
cellspacing: "0",
title: g.title
}, i);
return b.createHTML("span", {
role: "button",
"aria-labelledby": f.id + "_voice",
"aria-haspopup": "true"
}, i)
},
postRender: function() {
var e = this,
g = e.settings,
f;
if (g.onclick) {
f = function(h) {
if (!e.isDisabled()) {
g.onclick(e.value);
a.cancel(h)
}
};
a.add(e.id + "_action", "click", f);
a.add(e.id, ["click", "keydown"], function(h) {
var k = 32,
m = 14,
i = 13,
j = 38,
l = 40;
if ((h.keyCode === 32 || h.keyCode === 13 || h.keyCode === 14) && !h.altKey && !h.ctrlKey && !h.metaKey) {
f();
a.cancel(h)
} else {
if (h.type === "click" || h.keyCode === l) {
e.showMenu();
a.cancel(h)
}
}
})
}
a.add(e.id + "_open", "click", function(h) {
e.showMenu();
a.cancel(h)
});
a.add([e.id, e.id + "_open"], "focus", function() {
e._focused = 1
});
a.add([e.id, e.id + "_open"], "blur", function() {
e._focused = 0
});
if (c.isIE6 || !b.boxModel) {
a.add(e.id, "mouseover", function() {
if (!b.hasClass(e.id, "mceSplitButtonDisabled")) {
b.addClass(e.id, "mceSplitButtonHover")
}
});
a.add(e.id, "mouseout", function() {
if (!b.hasClass(e.id, "mceSplitButtonDisabled")) {
b.removeClass(e.id, "mceSplitButtonHover")
}
})
}
},
destroy: function() {
this.parent();
a.clear(this.id + "_action");
a.clear(this.id + "_open");
a.clear(this.id)
}
})
})(tinymce);
(function(d) {
var c = d.DOM,
a = d.dom.Event,
b = d.is,
e = d.each;
d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton", {
ColorSplitButton: function(i, h, f) {
var g = this;
g.parent(i, h, f);
g.settings = h = d.extend({
colors: "000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",
grid_width: 8,
default_color: "#888888"
}, g.settings);
g.onShowMenu = new d.util.Dispatcher(g);
g.onHideMenu = new d.util.Dispatcher(g);
g.value = h.default_color
},
showMenu: function() {
var f = this,
g, j, i, h;
if (f.isDisabled()) {
return
}
if (!f.isMenuRendered) {
f.renderMenu();
f.isMenuRendered = true
}
if (f.isMenuVisible) {
return f.hideMenu()
}
i = c.get(f.id);
c.show(f.id + "_menu");
c.addClass(i, "mceSplitButtonSelected");
h = c.getPos(i);
c.setStyles(f.id + "_menu", {
left: h.x,
top: h.y + i.clientHeight,
zIndex: 200000
});
i = 0;
a.add(c.doc, "mousedown", f.hideMenu, f);
f.onShowMenu.dispatch(f);
if (f._focused) {
f._keyHandler = a.add(f.id + "_menu", "keydown", function(k) {
if (k.keyCode == 27) {
f.hideMenu()
}
});
c.select("a", f.id + "_menu")[0].focus()
}
f.isMenuVisible = 1
},
hideMenu: function(g) {
var f = this;
if (g && g.type == "mousedown" && c.getParent(g.target, function(h) {
return h.id === f.id + "_open"
})) {
return
}
if (!g || !c.getParent(g.target, ".mceSplitButtonMenu")) {
c.removeClass(f.id, "mceSplitButtonSelected");
a.remove(c.doc, "mousedown", f.hideMenu, f);
a.remove(f.id + "_menu", "keydown", f._keyHandler);
c.hide(f.id + "_menu")
}
f.onHideMenu.dispatch(f);
f.isMenuVisible = 0;
f.editor.focus()
},
renderMenu: function() {
var p = this,
h, k = 0,
q = p.settings,
g, j, l, o, f;
o = c.add(q.menu_container, "div", {
role: "listbox",
id: p.id + "_menu",
"class": q.menu_class + " " + q["class"],
style: "position:absolute;left:0;top:-1000px;"
});
h = c.add(o, "div", {
"class": q["class"] + " mceSplitButtonMenu"
});
c.add(h, "span", {
"class": "mceMenuLine"
});
g = c.add(h, "table", {
role: "presentation",
"class": "mceColorSplitMenu"
});
j = c.add(g, "tbody");
k = 0;
e(b(q.colors, "array") ? q.colors : q.colors.split(","), function(i) {
i = i.replace(/^#/, "");
if (!k--) {
l = c.add(j, "tr");
k = q.grid_width - 1
}
g = c.add(l, "td");
g = c.add(g, "a", {
role: "option",
href: "javascript:;",
style: {
backgroundColor: "#" + i
},
title: p.editor.getLang("colors." + i, i),
"data-mce-color": "#" + i
});
if (p.editor.forcedHighContrastMode) {
g = c.add(g, "canvas", {
width: 16,
height: 16,
"aria-hidden": "true"
});
if (g.getContext && (f = g.getContext("2d"))) {
f.fillStyle = "#" + i;
f.fillRect(0, 0, 16, 16)
} else {
c.remove(g)
}
}
});
if (q.more_colors_func) {
g = c.add(j, "tr");
g = c.add(g, "td", {
colspan: q.grid_width,
"class": "mceMoreColors"
});
g = c.add(g, "a", {
role: "option",
id: p.id + "_more",
href: "javascript:;",
onclick: "return false;",
"class": "mceMoreColors"
}, q.more_colors_title);
a.add(g, "click", function(i) {
q.more_colors_func.call(q.more_colors_scope || this);
return a.cancel(i)
})
}
c.addClass(h, "mceColorSplitMenu");
new d.ui.KeyboardNavigation({
root: p.id + "_menu",
items: c.select("a", p.id + "_menu"),
onCancel: function() {
p.hideMenu();
p.focus()
}
});
a.add(p.id + "_menu", "mousedown", function(i) {
return a.cancel(i)
});
a.add(p.id + "_menu", "click", function(i) {
var m;
i = c.getParent(i.target, "a", j);
if (i && i.nodeName.toLowerCase() == "a" && (m = i.getAttribute("data-mce-color"))) {
p.setColor(m)
}
return a.cancel(i)
});
return o
},
setColor: function(f) {
this.displayColor(f);
this.hideMenu();
this.settings.onselect(f)
},
displayColor: function(g) {
var f = this;
c.setStyle(f.id + "_preview", "backgroundColor", g);
f.value = g
},
postRender: function() {
var f = this,
g = f.id;
f.parent();
c.add(g + "_action", "div", {
id: g + "_preview",
"class": "mceColorPreview"
});
c.setStyle(f.id + "_preview", "backgroundColor", f.value)
},
destroy: function() {
this.parent();
a.clear(this.id + "_menu");
a.clear(this.id + "_more");
c.remove(this.id + "_menu")
}
})
})(tinymce);
(function(b) {
var d = b.DOM,
c = b.each,
a = b.dom.Event;
b.create("tinymce.ui.ToolbarGroup:tinymce.ui.Container", {
renderHTML: function() {
var f = this,
i = [],
e = f.controls,
j = b.each,
g = f.settings;
i.push('<div id="' + f.id + '" role="group" aria-labelledby="' + f.id + '_voice">');
i.push("<span role='application'>");
i.push('<span id="' + f.id + '_voice" class="mceVoiceLabel" style="display:none;">' + d.encode(g.name) + "</span>");
j(e, function(h) {
i.push(h.renderHTML())
});
i.push("</span>");
i.push("</div>");
return i.join("")
},
focus: function() {
this.keyNav.focus()
},
postRender: function() {
var f = this,
e = [];
c(f.controls, function(g) {
c(g.controls, function(h) {
if (h.id) {
e.push(h)
}
})
});
f.keyNav = new b.ui.KeyboardNavigation({
root: f.id,
items: e,
onCancel: function() {
f.editor.focus()
},
excludeFromTabOrder: !f.settings.tab_focus_toolbar
})
},
destroy: function() {
var e = this;
e.parent();
e.keyNav.destroy();
a.clear(e.id)
}
})
})(tinymce);
(function(a) {
var c = a.DOM,
b = a.each;
a.create("tinymce.ui.Toolbar:tinymce.ui.Container", {
renderHTML: function() {
var m = this,
f = "",
j, k, n = m.settings,
e, d, g, l;
l = m.controls;
for (e = 0; e < l.length; e++) {
k = l[e];
d = l[e - 1];
g = l[e + 1];
if (e === 0) {
j = "mceToolbarStart";
if (k.Button) {
j += " mceToolbarStartButton"
} else {
if (k.SplitButton) {
j += " mceToolbarStartSplitButton"
} else {
if (k.ListBox) {
j += " mceToolbarStartListBox"
}
}
}
f += c.createHTML("td", {
"class": j
}, c.createHTML("span", null, "<!-- IE -->"))
}
if (d && k.ListBox) {
if (d.Button || d.SplitButton) {
f += c.createHTML("td", {
"class": "mceToolbarEnd"
}, c.createHTML("span", null, "<!-- IE -->"))
}
}
if (c.stdMode) {
f += '<td style="position: relative">' + k.renderHTML() + "</td>"
} else {
f += "<td>" + k.renderHTML() + "</td>"
}
if (g && k.ListBox) {
if (g.Button || g.SplitButton) {
f += c.createHTML("td", {
"class": "mceToolbarStart"
}, c.createHTML("span", null, "<!-- IE -->"))
}
}
}
j = "mceToolbarEnd";
if (k.Button) {
j += " mceToolbarEndButton"
} else {
if (k.SplitButton) {
j += " mceToolbarEndSplitButton"
} else {
if (k.ListBox) {
j += " mceToolbarEndListBox"
}
}
}
f += c.createHTML("td", {
"class": j
}, c.createHTML("span", null, "<!-- IE -->"));
return c.createHTML("table", {
id: m.id,
"class": "mceToolbar" + (n["class"] ? " " + n["class"] : ""),
cellpadding: "0",
cellspacing: "0",
align: m.settings.align || "",
role: "presentation",
tabindex: "-1"
}, "<tbody><tr>" + f + "</tr></tbody>")
}
})
})(tinymce);
(function(b) {
var a = b.util.Dispatcher,
c = b.each;
b.create("tinymce.AddOnManager", {
AddOnManager: function() {
var d = this;
d.items = [];
d.urls = {};
d.lookup = {};
d.onAdd = new a(d)
},
get: function(d) {
return this.lookup[d]
},
requireLangPack: function(e) {
var d = b.settings;
if (d && d.language && d.language_load !== false) {
b.ScriptLoader.add(this.urls[e] + "/langs/" + d.language + ".js")
}
},
add: function(e, d) {
this.items.push(d);
this.lookup[e] = d;
this.onAdd.dispatch(this, e, d);
return d
},
load: function(h, e, d, g) {
var f = this;
if (f.urls[h]) {
return
}
if (e.indexOf("/") != 0 && e.indexOf("://") == -1) {
e = b.baseURL + "/" + e
}
f.urls[h] = e.substring(0, e.lastIndexOf("/"));
if (!f.lookup[h]) {
b.ScriptLoader.add(e, d, g)
}
}
});
b.PluginManager = new b.AddOnManager();
b.ThemeManager = new b.AddOnManager()
}(tinymce));
(function(j) {
var g = j.each,
d = j.extend,
k = j.DOM,
i = j.dom.Event,
f = j.ThemeManager,
b = j.PluginManager,
e = j.explode,
h = j.util.Dispatcher,
a, c = 0;
j.documentBaseURL = window.location.href.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, "");
if (!/[\/\\]$/.test(j.documentBaseURL)) {
j.documentBaseURL += "/"
}
j.baseURL = new j.util.URI(j.documentBaseURL).toAbsolute(j.baseURL);
j.baseURI = new j.util.URI(j.baseURL);
j.onBeforeUnload = new h(j);
i.add(window, "beforeunload", function(l) {
j.onBeforeUnload.dispatch(j, l)
});
j.onAddEditor = new h(j);
j.onRemoveEditor = new h(j);
j.EditorManager = d(j, {
editors: [],
i18n: {},
activeEditor: null,
init: function(q) {
var n = this,
p, l = j.ScriptLoader,
u, o = [],
m;
function r(x, y, t) {
var v = x[y];
if (!v) {
return
}
if (j.is(v, "string")) {
t = v.replace(/\.\w+$/, "");
t = t ? j.resolve(t) : 0;
v = j.resolve(v)
}
return v.apply(t || this, Array.prototype.slice.call(arguments, 2))
}
q = d({
theme: "simple",
language: "en"
}, q);
n.settings = q;
i.add(document, "init", function() {
var s, v;
r(q, "onpageload");
switch (q.mode) {
case "exact":
s = q.elements || "";
if (s.length > 0) {
g(e(s), function(x) {
if (k.get(x)) {
m = new j.Editor(x, q);
o.push(m);
m.render(1)
} else {
g(document.forms, function(y) {
g(y.elements, function(z) {
if (z.name === x) {
x = "mce_editor_" + c++;
k.setAttrib(z, "id", x);
m = new j.Editor(x, q);
o.push(m);
m.render(1)
}
})
})
}
})
}
break;
case "textareas":
case "specific_textareas":
function t(y, x) {
return x.constructor === RegExp ? x.test(y.className) : k.hasClass(y, x)
}
g(k.select("textarea"), function(x) {
if (q.editor_deselector && t(x, q.editor_deselector)) {
return
}
if (!q.editor_selector || t(x, q.editor_selector)) {
u = k.get(x.name);
if (!x.id && !u) {
x.id = x.name
}
if (!x.id || n.get(x.id)) {
x.id = k.uniqueId()
}
m = new j.Editor(x.id, q);
o.push(m);
m.render(1)
}
});
break
}
if (q.oninit) {
s = v = 0;
g(o, function(x) {
v++;
if (!x.initialized) {
x.onInit.add(function() {
s++;
if (s == v) {
r(q, "oninit")
}
})
} else {
s++
}
if (s == v) {
r(q, "oninit")
}
})
}
})
},
get: function(l) {
if (l === a) {
return this.editors
}
return this.editors[l]
},
getInstanceById: function(l) {
return this.get(l)
},
add: function(m) {
var l = this,
n = l.editors;
n[m.id] = m;
n.push(m);
l._setActive(m);
l.onAddEditor.dispatch(l, m);
return m
},
remove: function(n) {
var m = this,
l, o = m.editors;
if (!o[n.id]) {
return null
}
delete o[n.id];
for (l = 0; l < o.length; l++) {
if (o[l] == n) {
o.splice(l, 1);
break
}
}
if (m.activeEditor == n) {
m._setActive(o[0])
}
n.destroy();
m.onRemoveEditor.dispatch(m, n);
return n
},
execCommand: function(r, p, o) {
var q = this,
n = q.get(o),
l;
switch (r) {
case "mceFocus":
n.focus();
return true;
case "mceAddEditor":
case "mceAddControl":
if (!q.get(o)) {
new j.Editor(o, q.settings).render()
}
return true;
case "mceAddFrameControl":
l = o.window;
l.tinyMCE = tinyMCE;
l.tinymce = j;
j.DOM.doc = l.document;
j.DOM.win = l;
n = new j.Editor(o.element_id, o);
n.render();
if (j.isIE) {
function m() {
n.destroy();
l.detachEvent("onunload", m);
l = l.tinyMCE = l.tinymce = null
}
l.attachEvent("onunload", m)
}
o.page_window = null;
return true;
case "mceRemoveEditor":
case "mceRemoveControl":
if (n) {
n.remove()
}
return true;
case "mceToggleEditor":
if (!n) {
q.execCommand("mceAddControl", 0, o);
return true
}
if (n.isHidden()) {
n.show()
} else {
n.hide()
}
return true
}
if (q.activeEditor) {
return q.activeEditor.execCommand(r, p, o)
}
return false
},
execInstanceCommand: function(p, o, n, m) {
var l = this.get(p);
if (l) {
return l.execCommand(o, n, m)
}
return false
},
triggerSave: function() {
g(this.editors, function(l) {
l.save()
})
},
addI18n: function(n, q) {
var l, m = this.i18n;
if (!j.is(n, "string")) {
g(n, function(r, p) {
g(r, function(t, s) {
g(t, function(v, u) {
if (s === "common") {
m[p + "." + u] = v
} else {
m[p + "." + s + "." + u] = v
}
})
})
})
} else {
g(q, function(r, p) {
m[n + "." + p] = r
})
}
},
_setActive: function(l) {
this.selectedInstance = this.activeEditor = l
}
})
})(tinymce);
(function(m) {
var n = m.DOM,
j = m.dom.Event,
f = m.extend,
k = m.util.Dispatcher,
i = m.each,
a = m.isGecko,
b = m.isIE,
e = m.isWebKit,
d = m.is,
h = m.ThemeManager,
c = m.PluginManager,
o = m.inArray,
l = m.grep,
g = m.explode;
m.create("tinymce.Editor", {
Editor: function(r, q) {
var p = this;
p.id = p.editorId = r;
p.execCommands = {};
p.queryStateCommands = {};
p.queryValueCommands = {};
p.isNotDirty = false;
p.plugins = {};
i(["onPreInit", "onBeforeRenderUI", "onPostRender", "onInit", "onRemove", "onActivate", "onDeactivate", "onClick", "onEvent", "onMouseUp", "onMouseDown", "onDblClick", "onKeyDown", "onKeyUp", "onKeyPress", "onContextMenu", "onSubmit", "onReset", "onPaste", "onPreProcess", "onPostProcess", "onBeforeSetContent", "onBeforeGetContent", "onSetContent", "onGetContent", "onLoadContent", "onSaveContent", "onNodeChange", "onChange", "onBeforeExecCommand", "onExecCommand", "onUndo", "onRedo", "onVisualAid", "onSetProgressState"], function(s) {
p[s] = new k(p)
});
p.settings = q = f({
id: r,
language: "en",
docs_language: "en",
theme: "simple",
skin: "default",
delta_width: 0,
delta_height: 0,
popup_css: "",
plugins: "",
document_base_url: m.documentBaseURL,
add_form_submit_trigger: 1,
submit_patch: 1,
add_unload_trigger: 1,
convert_urls: 1,
relative_urls: 1,
remove_script_host: 1,
table_inline_editing: 0,
object_resizing: 1,
cleanup: 1,
accessibility_focus: 1,
custom_shortcuts: 1,
custom_undo_redo_keyboard_shortcuts: 1,
custom_undo_redo_restore_selection: 1,
custom_undo_redo: 1,
doctype: m.isIE6 ? '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' : "<!DOCTYPE>",
visual_table_class: "mceItemTable",
visual: 1,
font_size_style_values: "xx-small,x-small,small,medium,large,x-large,xx-large",
apply_source_formatting: 1,
directionality: "ltr",
forced_root_block: "p",
hidden_input: 1,
padd_empty_editor: 1,
render_ui: 1,
init_theme: 1,
force_p_newlines: 1,
indentation: "30px",
keep_styles: 1,
fix_table_elements: 1,
inline_styles: 1,
convert_fonts_to_spans: true,
indent: "simple",
indent_before: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr",
indent_after: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr",
validate: true,
entity_encoding: "named",
url_converter: p.convertURL,
url_converter_scope: p,
ie7_compat: true
}, q);
p.documentBaseURI = new m.util.URI(q.document_base_url || m.documentBaseURL, {
base_uri: tinyMCE.baseURI
});
p.baseURI = m.baseURI;
p.contentCSS = [];
p.execCallback("setup", p)
},
render: function(r) {
var u = this,
v = u.settings,
x = u.id,
p = m.ScriptLoader;
if (!j.domLoaded) {
j.add(document, "init", function() {
u.render()
});
return
}
tinyMCE.settings = v;
if (!u.getElement()) {
return
}
if (m.isIDevice) {
return
}
if (!/TEXTAREA|INPUT/i.test(u.getElement().nodeName) && v.hidden_input && n.getParent(x, "form")) {
n.insertAfter(n.create("input", {
type: "hidden",
name: x
}), x)
}
if (m.WindowManager) {
u.windowManager = new m.WindowManager(u)
}
if (v.encoding == "xml") {
u.onGetContent.add(function(s, t) {
if (t.save) {
t.content = n.encode(t.content)
}
})
}
if (v.add_form_submit_trigger) {
u.onSubmit.addToTop(function() {
if (u.initialized) {
u.save();
u.isNotDirty = 1
}
})
}
if (v.add_unload_trigger) {
u._beforeUnload = tinyMCE.onBeforeUnload.add(function() {
if (u.initialized && !u.destroyed && !u.isHidden()) {
u.save({
format: "raw",
no_events: true
})
}
})
}
m.addUnload(u.destroy, u);
if (v.submit_patch) {
u.onBeforeRenderUI.add(function() {
var s = u.getElement().form;
if (!s) {
return
}
if (s._mceOldSubmit) {
return
}
if (!s.submit.nodeType && !s.submit.length) {
u.formElement = s;
s._mceOldSubmit = s.submit;
s.submit = function() {
m.triggerSave();
u.isNotDirty = 1;
return u.formElement._mceOldSubmit(u.formElement)
}
}
s = null
})
}
function q() {
if (v.language && v.language_load !== false) {
p.add(m.baseURL + "/langs/" + v.language + ".js")
}
if (v.theme && v.theme.charAt(0) != "-" && !h.urls[v.theme]) {
h.load(v.theme, "themes/" + v.theme + "/editor_template" + m.suffix + ".js")
}
i(g(v.plugins), function(s) {
if (s && s.charAt(0) != "-" && !c.urls[s]) {
if (s == "safari") {
return
}
c.load(s, "plugins/" + s + "/editor_plugin" + m.suffix + ".js")
}
});
p.loadQueue(function() {
if (!u.removed) {
u.init()
}
})
}
q()
},
init: function() {
var r, F = this,
G = F.settings,
C, z, B = F.getElement(),
q, p, D, x, A, E, y;
m.add(F);
G.aria_label = G.aria_label || n.getAttrib(B, "aria-label", F.getLang("aria.rich_text_area"));
if (G.theme) {
G.theme = G.theme.replace(/-/, "");
q = h.get(G.theme);
F.theme = new q();
if (F.theme.init && G.init_theme) {
F.theme.init(F, h.urls[G.theme] || m.documentBaseURL.replace(/\/$/, ""))
}
}
i(g(G.plugins.replace(/\-/g, "")), function(H) {
var I = c.get(H),
t = c.urls[H] || m.documentBaseURL.replace(/\/$/, ""),
s;
if (I) {
s = new I(F, t);
F.plugins[H] = s;
if (s.init) {
s.init(F, t)
}
}
});
if (G.popup_css !== false) {
if (G.popup_css) {
G.popup_css = F.documentBaseURI.toAbsolute(G.popup_css)
} else {
G.popup_css = F.baseURI.toAbsolute("themes/" + G.theme + "/skins/" + G.skin + "/dialog.css")
}
}
if (G.popup_css_add) {
G.popup_css += "," + F.documentBaseURI.toAbsolute(G.popup_css_add)
}
F.controlManager = new m.ControlManager(F);
if (G.custom_undo_redo) {
F.onBeforeExecCommand.add(function(t, H, u, I, s) {
if (H != "Undo" && H != "Redo" && H != "mceRepaint" && (!s || !s.skip_undo)) {
F.undoManager.beforeChange()
}
});
F.onExecCommand.add(function(t, H, u, I, s) {
if (H != "Undo" && H != "Redo" && H != "mceRepaint" && (!s || !s.skip_undo)) {
F.undoManager.add()
}
})
}
F.onExecCommand.add(function(s, t) {
if (!/^(FontName|FontSize)$/.test(t)) {
F.nodeChanged()
}
});
if (a) {
function v(s, t) {
if (!t || !t.initial) {
F.execCommand("mceRepaint")
}
}
F.onUndo.add(v);
F.onRedo.add(v);
F.onSetContent.add(v)
}
F.onBeforeRenderUI.dispatch(F, F.controlManager);
if (G.render_ui) {
C = G.width || B.style.width || B.offsetWidth;
z = G.height || B.style.height || B.offsetHeight;
F.orgDisplay = B.style.display;
E = /^[0-9\.]+(|px)$/i;
if (E.test("" + C)) {
C = Math.max(parseInt(C) + (q.deltaWidth || 0), 100)
}
if (E.test("" + z)) {
z = Math.max(parseInt(z) + (q.deltaHeight || 0), 100)
}
q = F.theme.renderUI({
targetNode: B,
width: C,
height: z,
deltaWidth: G.delta_width,
deltaHeight: G.delta_height
});
F.editorContainer = q.editorContainer
}
if (document.domain && location.hostname != document.domain) {
m.relaxedDomain = document.domain
}
n.setStyles(q.sizeContainer || q.editorContainer, {
width: C,
height: z
});
if (G.content_css) {
m.each(g(G.content_css), function(s) {
F.contentCSS.push(F.documentBaseURI.toAbsolute(s))
})
}
z = (q.iframeHeight || z) + (typeof(z) == "number" ? (q.deltaHeight || 0) : "");
if (z < 100) {
z = 100
}
F.iframeHTML = G.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml">';
if (G.document_base_url != m.documentBaseURL) {
F.iframeHTML += '<base href="' + F.documentBaseURI.getURI() + '" />'
}
if (G.ie7_compat) {
F.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />'
} else {
F.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=edge" />'
}
F.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
if (!a || !/Firefox\/2/.test(navigator.userAgent)) {
for (y = 0; y < F.contentCSS.length; y++) {
F.iframeHTML += '<link type="text/css" rel="stylesheet" href="' + F.contentCSS[y] + '" />'
}
F.contentCSS = []
}
x = G.body_id || "tinymce";
if (x.indexOf("=") != -1) {
x = F.getParam("body_id", "", "hash");
x = x[F.id] || x
}
A = G.body_class || "";
if (A.indexOf("=") != -1) {
A = F.getParam("body_class", "", "hash");
A = A[F.id] || ""
}
F.iframeHTML += '</head><body id="' + x + '" class="mceContentBody ' + A + '"></body></html>';
if (m.relaxedDomain && (b || (m.isOpera && parseFloat(opera.version()) < 11))) {
D = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.tinyMCE.get("' + F.id + '");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()'
}
r = n.add(q.iframeContainer, "iframe", {
id: F.id + "_ifr",
src: D || 'javascript:""',
frameBorder: "0",
title: G.aria_label,
style: {
width: "100%",
height: z
}
});
F.contentAreaContainer = q.iframeContainer;
n.get(q.editorContainer).style.display = F.orgDisplay;
n.get(F.id).style.display = "none";
n.setAttrib(F.id, "aria-hidden", true);
if (!m.relaxedDomain || !D) {
F.setupIframe()
}
B = r = q = null
},
setupIframe: function() {
var r = this,
x = r.settings,
y = n.get(r.id),
z = r.getDoc(),
v, p;
if (!b || !m.relaxedDomain) {
z.open();
z.write(r.iframeHTML);
z.close();
if (m.relaxedDomain) {
z.domain = m.relaxedDomain
}
}
if (!b) {
try {
if (!x.readonly) {
z.designMode = "On"
}
} catch (q) {}
}
if (b) {
p = r.getBody();
n.hide(p);
if (!x.readonly) {
p.contentEditable = true
}
n.show(p)
}
r.schema = new m.html.Schema(x);
r.dom = new m.dom.DOMUtils(r.getDoc(), {
keep_values: true,
url_converter: r.convertURL,
url_converter_scope: r,
hex_colors: x.force_hex_style_colors,
class_filter: x.class_filter,
update_styles: 1,
fix_ie_paragraphs: 1,
schema: r.schema
});
r.parser = new m.html.DomParser(x, r.schema);
r.parser.addAttributeFilter("name", function(s, t) {
var B = s.length,
D, A, C, E;
while (B--) {
E = s[B];
if (E.name === "a" && E.firstChild) {
C = E.parent;
D = E.lastChild;
do {
A = D.prev;
C.insert(D, E);
D = A
} while (D)
}
}
});
r.parser.addAttributeFilter("src,href,style", function(s, t) {
var A = s.length,
B, D = r.dom,
C;
while (A--) {
B = s[A];
C = B.attr(t);
if (t === "style") {
B.attr("data-mce-style", D.serializeStyle(D.parseStyle(C), B.name))
} else {
B.attr("data-mce-" + t, r.convertURL(C, t, B.name))
}
}
});
r.parser.addNodeFilter("script", function(s, t) {
var A = s.length;
while (A--) {
s[A].attr("type", "mce-text/javascript")
}
});
r.parser.addNodeFilter("#cdata", function(s, t) {
var A = s.length,
B;
while (A--) {
B = s[A];
B.type = 8;
B.name = "#comment";
B.value = "[CDATA[" + B.value + "]]"
}
});
r.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div", function(t, A) {
var B = t.length,
C, s = r.schema.getNonEmptyElements();
while (B--) {
C = t[B];
if (C.isEmpty(s)) {
C.empty().append(new m.html.Node("br", 1)).shortEnded = true
}
}
});
r.serializer = new m.dom.Serializer(x, r.dom, r.schema);
r.selection = new m.dom.Selection(r.dom, r.getWin(), r.serializer);
r.formatter = new m.Formatter(this);
r.formatter.register({
alignleft: [{
selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",
styles: {
textAlign: "left"
}
},
{
selector: "img,table",
collapsed: false,
styles: {
"float": "left"
}
}],
aligncenter: [{
selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",
styles: {
textAlign: "center"
}
},
{
selector: "img",
collapsed: false,
styles: {
display: "block",
marginLeft: "auto",
marginRight: "auto"
}
},
{
selector: "table",
collapsed: false,
styles: {
marginLeft: "auto",
marginRight: "auto"
}
}],
alignright: [{
selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",
styles: {
textAlign: "right"
}
},
{
selector: "img,table",
collapsed: false,
styles: {
"float": "right"
}
}],
alignfull: [{
selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",
styles: {
textAlign: "justify"
}
}],
bold: [{
inline: "strong",
remove: "all"
},
{
inline: "span",
styles: {
fontWeight: "bold"
}
},
{
inline: "b",
remove: "all"
}],
italic: [{
inline: "em",
remove: "all"
},
{
inline: "span",
styles: {
fontStyle: "italic"
}
},
{
inline: "i",
remove: "all"
}],
underline: [{
inline: "span",
styles: {
textDecoration: "underline"
},
exact: true
},
{
inline: "u",
remove: "all"
}],
strikethrough: [{
inline: "span",
styles: {
textDecoration: "line-through"
},
exact: true
},
{
inline: "strike",
remove: "all"
}],
forecolor: {
inline: "span",
styles: {
color: "%value"
},
wrap_links: false
},
hilitecolor: {
inline: "span",
styles: {
backgroundColor: "%value"
},
wrap_links: false
},
fontname: {
inline: "span",
styles: {
fontFamily: "%value"
}
},
fontsize: {
inline: "span",
styles: {
fontSize: "%value"
}
},
fontsize_class: {
inline: "span",
attributes: {
"class": "%value"
}
},
blockquote: {
block: "blockquote",
wrapper: 1,
remove: "all"
},
subscript: {
inline: "sub"
},
superscript: {
inline: "sup"
},
removeformat: [{
selector: "b,strong,em,i,font,u,strike",
remove: "all",
split: true,
expand: false,
block_expand: true,
deep: true
},
{
selector: "span",
attributes: ["style", "class"],
remove: "empty",
split: true,
expand: false,
deep: true
},
{
selector: "*",
attributes: ["style", "class"],
split: false,
expand: false,
deep: true
}]
});
i("p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp".split(/\s/), function(s) {
r.formatter.register(s, {
block: s,
remove: "all"
})
});
r.formatter.register(r.settings.formats);
r.undoManager = new m.UndoManager(r);
r.undoManager.onAdd.add(function(t, s) {
if (t.hasUndo()) {
return r.onChange.dispatch(r, s, t)
}
});
r.undoManager.onUndo.add(function(t, s) {
return r.onUndo.dispatch(r, s, t)
});
r.undoManager.onRedo.add(function(t, s) {
return r.onRedo.dispatch(r, s, t)
});
r.forceBlocks = new m.ForceBlocks(r, {
forced_root_block: x.forced_root_block
});
r.editorCommands = new m.EditorCommands(r);
r.serializer.onPreProcess.add(function(s, t) {
return r.onPreProcess.dispatch(r, t, s)
});
r.serializer.onPostProcess.add(function(s, t) {
return r.onPostProcess.dispatch(r, t, s)
});
r.onPreInit.dispatch(r);
if (!x.gecko_spellcheck) {
r.getBody().spellcheck = 0
}
if (!x.readonly) {
r._addEvents()
}
r.controlManager.onPostRender.dispatch(r, r.controlManager);
r.onPostRender.dispatch(r);
if (x.directionality) {
r.getBody().dir = x.directionality
}
if (x.nowrap) {
r.getBody().style.whiteSpace = "nowrap"
}
if (x.handle_node_change_callback) {
r.onNodeChange.add(function(t, s, A) {
r.execCallback("handle_node_change_callback", r.id, A, -1, -1, true, r.selection.isCollapsed())
})
}
if (x.save_callback) {
r.onSaveContent.add(function(s, A) {
var t = r.execCallback("save_callback", r.id, A.content, r.getBody());
if (t) {
A.content = t
}
})
}
if (x.onchange_callback) {
r.onChange.add(function(t, s) {
r.execCallback("onchange_callback", r, s)
})
}
if (x.protect) {
r.onBeforeSetContent.add(function(s, t) {
if (x.protect) {
i(x.protect, function(A) {
t.content = t.content.replace(A, function(B) {
return "<!--mce:protected " + escape(B) + "-->"
})
})
}
})
}
if (x.convert_newlines_to_brs) {
r.onBeforeSetContent.add(function(s, t) {
if (t.initial) {
t.content = t.content.replace(/\r?\n/g, "<br />")
}
})
}
if (x.preformatted) {
r.onPostProcess.add(function(s, t) {
t.content = t.content.replace(/^\s*<pre.*?>/, "");
t.content = t.content.replace(/<\/pre>\s*$/, "");
if (t.set) {
t.content = '<pre class="mceItemHidden">' + t.content + "</pre>"
}
})
}
if (x.verify_css_classes) {
r.serializer.attribValueFilter = function(C, A) {
var B, t;
if (C == "class") {
if (!r.classesRE) {
t = r.dom.getClasses();
if (t.length > 0) {
B = "";
i(t, function(s) {
B += (B ? "|" : "") + s["class"]
});
r.classesRE = new RegExp("(" + B + ")", "gi")
}
}
return !r.classesRE || /(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(A) || r.classesRE.test(A) ? A : ""
}
return A
}
}
if (x.cleanup_callback) {
r.onBeforeSetContent.add(function(s, t) {
t.content = r.execCallback("cleanup_callback", "insert_to_editor", t.content, t)
});
r.onPreProcess.add(function(s, t) {
if (t.set) {
r.execCallback("cleanup_callback", "insert_to_editor_dom", t.node, t)
}
if (t.get) {
r.execCallback("cleanup_callback", "get_from_editor_dom", t.node, t)
}
});
r.onPostProcess.add(function(s, t) {
if (t.set) {
t.content = r.execCallback("cleanup_callback", "insert_to_editor", t.content, t)
}
if (t.get) {
t.content = r.execCallback("cleanup_callback", "get_from_editor", t.content, t)
}
})
}
if (x.save_callback) {
r.onGetContent.add(function(s, t) {
if (t.save) {
t.content = r.execCallback("save_callback", r.id, t.content, r.getBody())
}
})
}
if (x.handle_event_callback) {
r.onEvent.add(function(s, t, A) {
if (r.execCallback("handle_event_callback", t, s, A) === false) {
j.cancel(t)
}
})
}
r.onSetContent.add(function() {
r.addVisual(r.getBody())
});
if (x.padd_empty_editor) {
r.onPostProcess.add(function(s, t) {
t.content = t.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/, "")
})
}
if (a) {
function u(s, t) {
i(s.dom.select("a"), function(B) {
var A = B.parentNode;
if (s.dom.isBlock(A) && A.lastChild === B) {
s.dom.add(A, "br", {
"data-mce-bogus": 1
})
}
})
}
r.onExecCommand.add(function(s, t) {
if (t === "CreateLink") {
u(s)
}
});
r.onSetContent.add(r.selection.onSetContent.add(u));
if (!x.readonly) {
try {
z.designMode = "Off";
z.designMode = "On"
} catch (q) {}
}
}
setTimeout(function() {
if (r.removed) {
return
}
r.load({
initial: true,
format: "html"
});
r.startContent = r.getContent({
format: "raw"
});
r.undoManager.add();
r.initialized = true;
r.onInit.dispatch(r);
r.execCallback("setupcontent_callback", r.id, r.getBody(), r.getDoc());
r.execCallback("init_instance_callback", r);
r.focus(true);
r.nodeChanged({
initial: 1
});
i(r.contentCSS, function(s) {
r.dom.loadCSS(s)
});
if (x.auto_focus) {
setTimeout(function() {
var s = m.get(x.auto_focus);
s.selection.select(s.getBody(), 1);
s.selection.collapse(1);
s.getWin().focus()
}, 100)
}
}, 1);
y = null
},
focus: function(s) {
var x, q = this,
v = q.settings.content_editable,
r, p, u = q.getDoc();
if (!s) {
r = q.selection.getRng();
if (r.item) {
p = r.item(0)
}
if (!v) {
q.getWin().focus()
}
if (p && p.ownerDocument == u) {
r = u.body.createControlRange();
r.addElement(p);
r.select()
}
}
if (m.activeEditor != q) {
if ((x = m.activeEditor) != null) {
x.onDeactivate.dispatch(x, q)
}
q.onActivate.dispatch(q, x)
}
m._setActive(q)
},
execCallback: function(u) {
var p = this,
r = p.settings[u], q;
if (!r) {
return
}
if (p.callbackLookup && (q = p.callbackLookup[u])) {
r = q.func;
console.log(r);
q = q.scope
}
if (d(r, "string")) {
q = r.replace(/\.\w+$/, "");
q = q ? m.resolve(q) : 0;
r = m.resolve(r);
p.callbackLookup = p.callbackLookup || {};
p.callbackLookup[u] = {
func: r,
scope: q
}
}
return r.apply(q || p, Array.prototype.slice.call(arguments, 1))
},
translate: function(p) {
var r = this.settings.language || "en",
q = m.i18n;
if (!p) {
return ""
}
return q[r + "." + p] || p.replace(/{\#([^}]+)\}/g, function(t, s) {
return q[r + "." + s] || "{#" + s + "}"
})
},
getLang: function(q, p) {
return m.i18n[(this.settings.language || "en") + "." + q] || (d(p) ? p : "{#" + q + "}")
},
getParam: function(u, r, p) {
var s = m.trim,
q = d(this.settings[u]) ? this.settings[u] : r,
t;
if (p === "hash") {
t = {};
if (d(q, "string")) {
i(q.indexOf("=") > 0 ? q.split(/[;,](?![^=;,]*(?:[;,]|$))/) : q.split(","), function(x) {
x = x.split("=");
if (x.length > 1) {
t[s(x[0])] = s(x[1])
} else {
t[s(x[0])] = s(x)
}
})
} else {
t = q
}
return t
}
return q
},
nodeChanged: function(r) {
var p = this,
q = p.selection,
u = q.getStart() || p.getBody();
if (p.initialized) {
r = r || {};
u = b && u.ownerDocument != p.getDoc() ? p.getBody() : u;
r.parents = [];
p.dom.getParent(u, function(s) {
if (s.nodeName == "BODY") {
return true
}
r.parents.push(s)
});
p.onNodeChange.dispatch(p, r ? r.controlManager || p.controlManager : p.controlManager, u, q.isCollapsed(), r)
}
},
addButton: function(r, q) {
var p = this;
p.buttons = p.buttons || {};
p.buttons[r] = q
},
addCommand: function(p, r, q) {
this.execCommands[p] = {
func: r,
scope: q || this
}
},
addQueryStateHandler: function(p, r, q) {
this.queryStateCommands[p] = {
func: r,
scope: q || this
}
},
addQueryValueHandler: function(p, r, q) {
this.queryValueCommands[p] = {
func: r,
scope: q || this
}
},
addShortcut: function(r, u, p, s) {
var q = this,
v;
if (!q.settings.custom_shortcuts) {
return false
}
q.shortcuts = q.shortcuts || {};
if (d(p, "string")) {
v = p;
p = function() {
q.execCommand(v, false, null)
}
}
if (d(p, "object")) {
v = p;
p = function() {
q.execCommand(v[0], v[1], v[2])
}
}
i(g(r), function(t) {
var x = {
func: p,
scope: s || this,
desc: u,
alt: false,
ctrl: false,
shift: false
};
i(g(t, "+"), function(y) {
switch (y) {
case "alt":
case "ctrl":
case "shift":
x[y] = true;
break;
default:
x.charCode = y.charCodeAt(0);
x.keyCode = y.toUpperCase().charCodeAt(0)
}
});
q.shortcuts[(x.ctrl ? "ctrl" : "") + "," + (x.alt ? "alt" : "") + "," + (x.shift ? "shift" : "") + "," + x.keyCode] = x
});
return true
},
execCommand: function(x, v, z, p) {
var r = this,
u = 0,
y, q;
if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(x) && (!p || !p.skip_focus)) {
r.focus()
}
y = {};
r.onBeforeExecCommand.dispatch(r, x, v, z, y);
if (y.terminate) {
return false
}
if (r.execCallback("execcommand_callback", r.id, r.selection.getNode(), x, v, z)) {
r.onExecCommand.dispatch(r, x, v, z, p);
return true
}
if (y = r.execCommands[x]) {
q = y.func.call(y.scope, v, z);
if (q !== true) {
r.onExecCommand.dispatch(r, x, v, z, p);
return q
}
}
i(r.plugins, function(s) {
if (s.execCommand && s.execCommand(x, v, z)) {
r.onExecCommand.dispatch(r, x, v, z, p);
u = 1;
return false
}
});
if (u) {
return true
}
if (r.theme && r.theme.execCommand && r.theme.execCommand(x, v, z)) {
r.onExecCommand.dispatch(r, x, v, z, p);
return true
}
if (r.editorCommands.execCommand(x, v, z)) {
r.onExecCommand.dispatch(r, x, v, z, p);
return true
}
r.getDoc().execCommand(x, v, z);
r.onExecCommand.dispatch(r, x, v, z, p)
},
queryCommandState: function(u) {
var q = this,
v, r;
if (q._isHidden()) {
return
}
if (v = q.queryStateCommands[u]) {
r = v.func.call(v.scope);
if (r !== true) {
return r
}
}
v = q.editorCommands.queryCommandState(u);
if (v !== -1) {
return v
}
try {
return this.getDoc().queryCommandState(u)
} catch (p) {}
},
queryCommandValue: function(v) {
var q = this,
u, r;
if (q._isHidden()) {
return
}
if (u = q.queryValueCommands[v]) {
r = u.func.call(u.scope);
if (r !== true) {
return r
}
}
u = q.editorCommands.queryCommandValue(v);
if (d(u)) {
return u
}
try {
return this.getDoc().queryCommandValue(v)
} catch (p) {}
},
show: function() {
var p = this;
n.show(p.getContainer());
n.hide(p.id);
p.load()
},
hide: function() {
var p = this,
q = p.getDoc();
if (b && q) {
q.execCommand("SelectAll")
}
p.save();
n.hide(p.getContainer());
n.setStyle(p.id, "display", p.orgDisplay)
},
isHidden: function() {
return !n.isHidden(this.id)
},
setProgressState: function(p, q, r) {
this.onSetProgressState.dispatch(this, p, q, r);
return p
},
load: function(s) {
var p = this,
r = p.getElement(),
q;
if (r) {
s = s || {};
s.load = true;
q = p.setContent(d(r.value) ? r.value : r.innerHTML, s);
s.element = r;
if (!s.no_events) {
p.onLoadContent.dispatch(p, s)
}
s.element = r = null;
return q
}
},
save: function(u) {
var p = this,
s = p.getElement(),
q, r;
if (!s || !p.initialized) {
return
}
u = u || {};
u.save = true;
if (!u.no_events) {
p.undoManager.typing = false;
p.undoManager.add()
}
u.element = s;
q = u.content = p.getContent(u);
if (!u.no_events) {
p.onSaveContent.dispatch(p, u)
}
q = u.content;
if (!/TEXTAREA|INPUT/i.test(s.nodeName)) {
s.innerHTML = q;
if (r = n.getParent(p.id, "form")) {
i(r.elements, function(t) {
if (t.name == p.id) {
t.value = q;
return false
}
})
}
} else {
s.value = q
}
u.element = s = null;
return q
},
setContent: function(t, s) {
var r = this,
q, p = r.getBody();
s = s || {};
s.format = s.format || "html";
s.set = true;
s.content = t;
if (!s.no_events) {
r.onBeforeSetContent.dispatch(r, s)
}
t = s.content;
if (!m.isIE && (t.length === 0 || /^\s+$/.test(t))) {
p.innerHTML = '<br data-mce-bogus="1" />';
return
}
if (s.format !== "raw") {
t = new m.html.Serializer({}, r.schema).serialize(r.parser.parse(t))
}
s.content = m.trim(t);
r.dom.setHTML(p, s.content);
if (!s.no_events) {
r.onSetContent.dispatch(r, s)
}
return s.content
},
getContent: function(q) {
var p = this,
r;
q = q || {};
q.format = q.format || "html";
q.get = true;
if (!q.no_events) {
p.onBeforeGetContent.dispatch(p, q)
}
if (q.format == "raw") {
r = p.getBody().innerHTML
} else {
r = p.serializer.serialize(p.getBody(), q)
}
q.content = m.trim(r);
if (!q.no_events) {
p.onGetContent.dispatch(p, q)
}
return q.content
},
isDirty: function() {
var p = this;
return m.trim(p.startContent) != m.trim(p.getContent({
format: "raw",
no_events: 1
})) && !p.isNotDirty
},
getContainer: function() {
var p = this;
if (!p.container) {
p.container = n.get(p.editorContainer || p.id + "_parent")
}
return p.container
},
getContentAreaContainer: function() {
return this.contentAreaContainer
},
getElement: function() {
return n.get(this.settings.content_element || this.id)
},
getWin: function() {
var p = this,
q;
if (!p.contentWindow) {
q = n.get(p.id + "_ifr");
if (q) {
p.contentWindow = q.contentWindow
}
}
return p.contentWindow
},
getDoc: function() {
var q = this,
p;
if (!q.contentDocument) {
p = q.getWin();
if (p) {
q.contentDocument = p.document
}
}
return q.contentDocument
},
getBody: function() {
return this.bodyElement || this.getDoc().body
},
convertURL: function(p, x, v) {
var q = this,
r = q.settings;
if (r.urlconverter_callback) {
return q.execCallback("urlconverter_callback", p, v, true, x)
}
if (!r.convert_urls || (v && v.nodeName == "LINK") || p.indexOf("file:") === 0) {
return p
}
if (r.relative_urls) {
return q.documentBaseURI.toRelative(p)
}
p = q.documentBaseURI.toAbsolute(p, r.remove_script_host);
return p
},
addVisual: function(r) {
var p = this,
q = p.settings;
r = r || p.getBody();
if (!d(p.hasVisual)) {
p.hasVisual = q.visual
}
i(p.dom.select("table,a", r), function(t) {
var s;
switch (t.nodeName) {
case "TABLE":
s = p.dom.getAttrib(t, "border");
if (!s || s == "0") {
if (p.hasVisual) {
p.dom.addClass(t, q.visual_table_class)
} else {
p.dom.removeClass(t, q.visual_table_class)
}
}
return;
case "A":
s = p.dom.getAttrib(t, "name");
if (s) {
if (p.hasVisual) {
p.dom.addClass(t, "mceItemAnchor")
} else {
p.dom.removeClass(t, "mceItemAnchor")
}
}
return
}
});
p.onVisualAid.dispatch(p, r, p.hasVisual)
},
remove: function() {
var p = this,
q = p.getContainer();
p.removed = 1;
p.hide();
p.execCallback("remove_instance_callback", p);
p.onRemove.dispatch(p);
p.onExecCommand.listeners = [];
m.remove(p);
n.remove(q)
},
destroy: function(q) {
var p = this;
if (p.destroyed) {
return
}
if (!q) {
m.removeUnload(p.destroy);
tinyMCE.onBeforeUnload.remove(p._beforeUnload);
if (p.theme && p.theme.destroy) {
p.theme.destroy()
}
p.controlManager.destroy();
p.selection.destroy();
p.dom.destroy();
if (!p.settings.content_editable) {
j.clear(p.getWin());
j.clear(p.getDoc())
}
j.clear(p.getBody());
j.clear(p.formElement)
}
if (p.formElement) {
p.formElement.submit = p.formElement._mceOldSubmit;
p.formElement._mceOldSubmit = null
}
p.contentAreaContainer = p.formElement = p.container = p.settings.content_element = p.bodyElement = p.contentDocument = p.contentWindow = null;
if (p.selection) {
p.selection = p.selection.win = p.selection.dom = p.selection.dom.doc = null
}
p.destroyed = 1
},
_addEvents: function() {
var B = this,
r, C = B.settings,
q = B.dom,
x = {
mouseup: "onMouseUp",
mousedown: "onMouseDown",
click: "onClick",
keyup: "onKeyUp",
keydown: "onKeyDown",
keypress: "onKeyPress",
submit: "onSubmit",
reset: "onReset",
contextmenu: "onContextMenu",
dblclick: "onDblClick",
paste: "onPaste"
};
function p(t, D) {
var s = t.type;
if (B.removed) {
return
}
if (B.onEvent.dispatch(B, t, D) !== false) {
B[x[t.fakeType || t.type]].dispatch(B, t, D)
}
}
i(x, function(t, s) {
switch (s) {
case "contextmenu":
q.bind(B.getDoc(), s, p);
break;
case "paste":
q.bind(B.getBody(), s, function(D) {
p(D)
});
break;
case "submit":
case "reset":
q.bind(B.getElement().form || n.getParent(B.id, "form"), s, p);
break;
default:
q.bind(C.content_editable ? B.getBody() : B.getDoc(), s, p)
}
});
q.bind(C.content_editable ? B.getBody() : (a ? B.getDoc() : B.getWin()), "focus", function(s) {
B.focus(true)
});
if (m.isGecko) {
q.bind(B.getDoc(), "DOMNodeInserted", function(t) {
var s;
t = t.target;
if (t.nodeType === 1 && t.nodeName === "IMG" && (s = t.getAttribute("data-mce-src"))) {
t.src = B.documentBaseURI.toAbsolute(s)
}
})
}
if (a) {
function u() {
var E = this,
G = E.getDoc(),
F = E.settings;
if (a && !F.readonly) {
if (E._isHidden()) {
try {
if (!F.content_editable) {
G.designMode = "On"
}
} catch (D) {}
}
try {
G.execCommand("styleWithCSS", 0, false)
} catch (D) {
if (!E._isHidden()) {
try {
G.execCommand("useCSS", 0, true)
} catch (D) {}
}
}
if (!F.table_inline_editing) {
try {
G.execCommand("enableInlineTableEditing", false, false)
} catch (D) {}
}
if (!F.object_resizing) {
try {
G.execCommand("enableObjectResizing", false, false)
} catch (D) {}
}
}
}
B.onBeforeExecCommand.add(u);
B.onMouseDown.add(u)
}
if (m.isWebKit) {
B.onClick.add(function(s, t) {
t = t.target;
if (t.nodeName == "IMG" || (t.nodeName == "A" && q.hasClass(t, "mceItemAnchor"))) {
B.selection.getSel().setBaseAndExtent(t, 0, t, 1);
B.nodeChanged()
}
})
}
B.onMouseUp.add(B.nodeChanged);
B.onKeyUp.add(function(s, t) {
var D = t.keyCode;
if ((D >= 33 && D <= 36) || (D >= 37 && D <= 40) || D == 13 || D == 45 || D == 46 || D == 8 || (m.isMac && (D == 91 || D == 93)) || t.ctrlKey) {
B.nodeChanged()
}
});
B.onReset.add(function() {
B.setContent(B.startContent, {
format: "raw"
})
});
if (C.custom_shortcuts) {
if (C.custom_undo_redo_keyboard_shortcuts) {
B.addShortcut("ctrl+z", B.getLang("undo_desc"), "Undo");
B.addShortcut("ctrl+y", B.getLang("redo_desc"), "Redo")
}
B.addShortcut("ctrl+b", B.getLang("bold_desc"), "Bold");
B.addShortcut("ctrl+i", B.getLang("italic_desc"), "Italic");
B.addShortcut("ctrl+u", B.getLang("underline_desc"), "Underline");
for (r = 1; r <= 6; r++) {
B.addShortcut("ctrl+" + r, "", ["FormatBlock", false, "h" + r])
}
B.addShortcut("ctrl+7", "", ["FormatBlock", false, "<p>"]);
B.addShortcut("ctrl+8", "", ["FormatBlock", false, "<div>"]);
B.addShortcut("ctrl+9", "", ["FormatBlock", false, "<address>"]);
function v(t) {
var s = null;
if (!t.altKey && !t.ctrlKey && !t.metaKey) {
return s
}
i(B.shortcuts, function(D) {
if (m.isMac && D.ctrl != t.metaKey) {
return
} else {
if (!m.isMac && D.ctrl != t.ctrlKey) {
return
}
}
if (D.alt != t.altKey) {
return
}
if (D.shift != t.shiftKey) {
return
}
if (t.keyCode == D.keyCode || (t.charCode && t.charCode == D.charCode)) {
s = D;
return false
}
});
return s
}
B.onKeyUp.add(function(s, t) {
var D = v(t);
if (D) {
return j.cancel(t)
}
});
B.onKeyPress.add(function(s, t) {
var D = v(t);
if (D) {
return j.cancel(t)
}
});
B.onKeyDown.add(function(s, t) {
var D = v(t);
if (D) {
D.func.call(D.scope);
return j.cancel(t)
}
})
}
if (m.isIE) {
q.bind(B.getDoc(), "controlselect", function(D) {
var t = B.resizeInfo,
s;
D = D.target;
if (D.nodeName !== "IMG") {
return
}
if (t) {
q.unbind(t.node, t.ev, t.cb)
}
if (!q.hasClass(D, "mceItemNoResize")) {
ev = "resizeend";
s = q.bind(D, ev, function(F) {
var E;
F = F.target;
if (E = q.getStyle(F, "width")) {
q.setAttrib(F, "width", E.replace(/[^0-9%]+/g, ""));
q.setStyle(F, "width", "")
}
if (E = q.getStyle(F, "height")) {
q.setAttrib(F, "height", E.replace(/[^0-9%]+/g, ""));
q.setStyle(F, "height", "")
}
})
} else {
ev = "resizestart";
s = q.bind(D, "resizestart", j.cancel, j)
}
t = B.resizeInfo = {
node: D,
ev: ev,
cb: s
}
});
B.onKeyDown.add(function(s, D) {
var t;
switch (D.keyCode) {
case 8:
t = B.getDoc().selection;
if (t.createRange && t.createRange().item) {
s.dom.remove(t.createRange().item(0));
return j.cancel(D)
}
}
})
}
if (m.isOpera) {
B.onClick.add(function(s, t) {
j.prevent(t)
})
}
if (C.custom_undo_redo) {
function y() {
B.undoManager.typing = false;
B.undoManager.add()
}
q.bind(B.getDoc(), "focusout", function(s) {
if (!B.removed && B.undoManager.typing) {
y()
}
});
B.dom.bind(B.dom.getRoot(), "dragend", function(s) {
y()
});
B.onKeyUp.add(function(t, F) {
var s, E, D;
if (b && F.keyCode == 8) {
s = B.selection.getRng();
if (s.parentElement) {
E = s.parentElement();
D = B.selection.getBookmark();
E.innerHTML = E.innerHTML;
B.selection.moveToBookmark(D)
}
}
if ((F.keyCode >= 33 && F.keyCode <= 36) || (F.keyCode >= 37 && F.keyCode <= 40) || F.keyCode == 13 || F.keyCode == 45 || F.ctrlKey) {
y()
}
});
B.onKeyDown.add(function(t, H) {
var s, F, E, G = H.keyCode;
if (b && G == 46) {
s = B.selection.getRng();
if (s.parentElement) {
F = s.parentElement();
if (!B.undoManager.typing) {
B.undoManager.beforeChange();
B.undoManager.typing = true;
B.undoManager.add()
}
if (H.ctrlKey) {
s.moveEnd("word", 1);
s.select()
}
B.selection.getSel().clear();
if (s.parentElement() == F) {
E = B.selection.getBookmark();
try {
F.innerHTML = F.innerHTML
} catch (D) {}
B.selection.moveToBookmark(E)
}
H.preventDefault();
return
}
}
if ((G >= 33 && G <= 36) || (G >= 37 && G <= 40) || G == 13 || G == 45) {
if (m.isIE && G == 13) {
B.undoManager.beforeChange()
}
if (B.undoManager.typing) {
y()
}
return
}
if ((G < 16 || G > 20) && G != 224 && G != 91 && !B.undoManager.typing) {
B.undoManager.beforeChange();
B.undoManager.add();
B.undoManager.typing = true
}
});
B.onMouseDown.add(function() {
if (B.undoManager.typing) {
y()
}
})
}
if (m.isGecko) {
function A() {
var s = B.dom.getAttribs(B.selection.getStart().cloneNode(false));
return function() {
var t = B.selection.getStart();
B.dom.removeAllAttribs(t);
i(s, function(D) {
t.setAttributeNode(D.cloneNode(true))
})
}
}
function z() {
var t = B.selection;
return !t.isCollapsed() && t.getStart() != t.getEnd()
}
B.onKeyPress.add(function(s, D) {
var t;
if ((D.keyCode == 8 || D.keyCode == 46) && z()) {
t = A();
B.getDoc().execCommand("delete", false, null);
t();
return j.cancel(D)
}
});
B.dom.bind(B.getDoc(), "cut", function(t) {
var s;
if (z()) {
s = A();
B.onKeyUp.addToTop(j.cancel, j);
setTimeout(function() {
s();
B.onKeyUp.remove(j.cancel, j)
}, 0)
}
})
}
},
_isHidden: function() {
var p;
if (!a) {
return 0
}
p = this.selection.getSel();
return (!p || !p.rangeCount || p.rangeCount == 0)
}
})
})(tinymce);
(function(c) {
var d = c.each,
e, a = true,
b = false;
c.EditorCommands = function(n) {
var l = n.dom,
p = n.selection,
j = {
state: {},
exec: {},
value: {}
},
k = n.settings,
o;
function q(y, x, v) {
var u;
y = y.toLowerCase();
if (u = j.exec[y]) {
u(y, x, v);
return a
}
return b
}
function m(v) {
var u;
v = v.toLowerCase();
if (u = j.state[v]) {
return u(v)
}
return -1
}
function h(v) {
var u;
v = v.toLowerCase();
if (u = j.value[v]) {
return u(v)
}
return b
}
function t(u, v) {
v = v || "exec";
d(u, function(y, x) {
d(x.toLowerCase().split(","), function(z) {
j[v][z] = y
})
})
}
c.extend(this, {
execCommand: q,
queryCommandState: m,
queryCommandValue: h,
addCommands: t
});
function f(x, v, u) {
if (v === e) {
v = b
}
if (u === e) {
u = null
}
return n.getDoc().execCommand(x, v, u)
}
function s(u) {
return n.formatter.match(u)
}
function r(u, v) {
n.formatter.toggle(u, v ? {
value: v
} : e)
}
function i(u) {
o = p.getBookmark(u)
}
function g() {
p.moveToBookmark(o)
}
t({
"mceResetDesignMode,mceBeginUndoLevel": function() {},
"mceEndUndoLevel,mceAddUndoLevel": function() {
n.undoManager.add()
},
"Cut,Copy,Paste": function(y) {
var x = n.getDoc(),
u;
try {
f(y)
} catch (v) {
u = a
}
if (u || !x.queryCommandSupported(y)) {
if (c.isGecko) {
n.windowManager.confirm(n.getLang("clipboard_msg"), function(z) {
if (z) {
open("http://www.mozilla.org/editor/midasdemo/securityprefs.html", "_blank")
}
})
} else {
n.windowManager.alert(n.getLang("clipboard_no_support"))
}
}
},
unlink: function(u) {
if (p.isCollapsed()) {
p.select(p.getNode())
}
f(u);
p.collapse(b)
},
"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull": function(u) {
var v = u.substring(7);
d("left,center,right,full".split(","), function(x) {
if (v != x) {
n.formatter.remove("align" + x)
}
});
r("align" + v);
q("mceRepaint")
},
"InsertUnorderedList,InsertOrderedList": function(x) {
var u, v;
f(x);
u = l.getParent(p.getNode(), "ol,ul");
if (u) {
v = u.parentNode;
if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(v.nodeName)) {
i();
l.split(v, u);
g()
}
}
},
"Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function(u) {
r(u)
},
"ForeColor,HiliteColor,FontName": function(x, v, u) {
r(x, u)
},
FontSize: function(y, x, v) {
var u, z;
if (v >= 1 && v <= 7) {
z = c.explode(k.font_size_style_values);
u = c.explode(k.font_size_classes);
if (u) {
v = u[v - 1] || v
} else {
v = z[v - 1] || v
}
}
r(y, v)
},
RemoveFormat: function(u) {
n.formatter.remove(u)
},
mceBlockQuote: function(u) {
r("blockquote")
},
FormatBlock: function(x, v, u) {
return r(u || "p")
},
mceCleanup: function() {
var u = p.getBookmark();
n.setContent(n.getContent({
cleanup: a
}), {
cleanup: a
});
p.moveToBookmark(u)
},
mceRemoveNode: function(y, x, v) {
var u = v || p.getNode();
if (u != n.getBody()) {
i();
n.dom.remove(u, a);
g()
}
},
mceSelectNodeDepth: function(y, x, v) {
var u = 0;
l.getParent(p.getNode(), function(z) {
if (z.nodeType == 1 && u++ == v) {
p.select(z);
return b
}
}, n.getBody())
},
mceSelectNode: function(x, v, u) {
p.select(u)
},
mceInsertContent: function(z, D, E) {
var C, u, x, F, y, u, A, G, B;
function v(H, J) {
var I, K = new c.dom.TreeWalker(H, J);
while ((I = K.current())) {
if ((I.nodeType == 3 && c.trim(I.nodeValue).length) || I.nodeName == "BR" || I.nodeName == "IMG") {
return I
}
K.prev()
}
}
B = {
content: E,
format: "html"
};
p.onBeforeSetContent.dispatch(p, B);
E = B.content;
if (E.indexOf("{$caret}") == -1) {
E += "{$caret}"
}
p.setContent('<span id="__mce">\uFEFF</span>', {
no_events: false
});
l.setOuterHTML("__mce", E.replace(/\{\$caret\}/, '<span data-mce-type="bookmark" id="__mce">\uFEFF</span>'));
C = l.select("#__mce")[0];
x = l.getRoot();
if (C.previousSibling && l.isBlock(C.previousSibling) || C.parentNode == x) {
y = v(C.previousSibling, x);
if (y) {
if (y.nodeName == "BR") {
y.parentNode.insertBefore(C, y)
} else {
l.insertAfter(C, y)
}
}
}
while (C) {
if (C === x) {
l.setOuterHTML(F, new c.html.Serializer({}, n.schema).serialize(new c.html.DomParser({
remove_trailing_brs: true
}, n.schema).parse(l.getOuterHTML(F))));
break
}
F = C;
C = C.parentNode
}
C = l.select("#__mce")[0];
if (C) {
y = v(C.previousSibling, x);
l.remove(C);
if (y) {
u = l.createRng();
if (y.nodeType == 3) {
u.setStart(y, y.length);
u.setEnd(y, y.length)
} else {
if (y.nodeName == "BR") {
u.setStartBefore(y);
u.setEndBefore(y)
} else {
u.setStartAfter(y);
u.setEndAfter(y)
}
}
p.setRng(u);
if (!c.isIE) {
y = l.create("span", null, "\u00a0");
u.insertNode(y);
A = l.getRect(y);
G = l.getViewPort(n.getWin());
if ((A.y > G.y + G.h || A.y < G.y) || (A.x > G.x + G.w || A.x < G.x)) {
n.getBody().scrollLeft = A.x;
n.getBody().scrollTop = A.y
}
l.remove(y)
}
p.collapse(true)
}
}
p.onSetContent.dispatch(p, B);
n.addVisual()
},
mceInsertRawHTML: function(x, v, u) {
p.setContent("tiny_mce_marker");
n.setContent(n.getContent().replace(/tiny_mce_marker/g, function() {
return u
}))
},
mceSetContent: function(x, v, u) {
n.setContent(u)
},
"Indent,Outdent": function(y) {
var v, u, x;
v = k.indentation;
u = /[a-z%]+$/i.exec(v);
v = parseInt(v);
if (!m("InsertUnorderedList") && !m("InsertOrderedList")) {
d(p.getSelectedBlocks(), function(z) {
if (y == "outdent") {
x = Math.max(0, parseInt(z.style.paddingLeft || 0) - v);
l.setStyle(z, "paddingLeft", x ? x + u : "")
} else {
l.setStyle(z, "paddingLeft", (parseInt(z.style.paddingLeft || 0) + v) + u)
}
})
} else {
f(y)
}
},
mceRepaint: function() {
var v;
if (c.isGecko) {
try {
i(a);
if (p.getSel()) {
p.getSel().selectAllChildren(n.getBody())
}
p.collapse(a);
g()
} catch (u) {}
}
},
mceToggleFormat: function(x, v, u) {
n.formatter.toggle(u)
},
InsertHorizontalRule: function() {
n.execCommand("mceInsertContent", false, "<hr />")
},
mceToggleVisualAid: function() {
n.hasVisual = !n.hasVisual;
n.addVisual()
},
mceReplaceContent: function(x, v, u) {
n.execCommand("mceInsertContent", false, p.setContent(u.replace(/\{\$selection\}/g, p.getContent({
format: "text"
}))))
},
mceInsertLink: function(A, z, y) {
var x = l.getParent(p.getNode(), "a"),
v, u;
if (c.is(y, "string")) {
y = {
href: y
}
}
y.href = y.href.replace(" ", "%20");
if (!x) {
if (c.isWebKit) {
v = l.getParent(p.getNode(), "img");
if (v) {
u = v.style.cssFloat;
v.style.cssFloat = null
}
}
f("CreateLink", b, "javascript:mctmp(0);");
if (u) {
v.style.cssFloat = u
}
d(l.select("a[href='javascript:mctmp(0);']"), function(B) {
l.setAttribs(B, y)
})
} else {
if (y.href) {
l.setAttribs(x, y)
} else {
n.dom.remove(x, a)
}
}
},
selectAll: function() {
var v = l.getRoot(),
u = l.createRng();
u.setStart(v, 0);
u.setEnd(v, v.childNodes.length);
n.selection.setRng(u)
}
});
t({
"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull": function(u) {
return s("align" + u.substring(7))
},
"Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function(u) {
return s(u)
},
mceBlockQuote: function() {
return s("blockquote")
},
Outdent: function() {
var u;
if (k.inline_styles) {
if ((u = l.getParent(p.getStart(), l.isBlock)) && parseInt(u.style.paddingLeft) > 0) {
return a
}
if ((u = l.getParent(p.getEnd(), l.isBlock)) && parseInt(u.style.paddingLeft) > 0) {
return a
}
}
return m("InsertUnorderedList") || m("InsertOrderedList") || (!k.inline_styles && !! l.getParent(p.getNode(), "BLOCKQUOTE"))
},
"InsertUnorderedList,InsertOrderedList": function(u) {
return l.getParent(p.getNode(), u == "insertunorderedlist" ? "UL" : "OL")
}
}, "state");
t({
"FontSize,FontName": function(x) {
var v = 0,
u;
if (u = l.getParent(p.getNode(), "span")) {
if (x == "fontsize") {
v = u.style.fontSize
} else {
v = u.style.fontFamily.replace(/, /g, ",").replace(/[\'\"]/g, "").toLowerCase()
}
}
return v
}
}, "value");
if (k.custom_undo_redo) {
t({
Undo: function() {
n.undoManager.undo()
},
Redo: function() {
n.undoManager.redo()
}
})
}
}
})(tinymce);
(function(b) {
var a = b.util.Dispatcher;
b.UndoManager = function(e) {
var c, d = 0,
g = [];
function f() {
return b.trim(e.getContent({
format: "raw",
no_events: 1
}))
}
return c = {
typing: false,
onAdd: new a(c),
onUndo: new a(c),
onRedo: new a(c),
beforeChange: function() {
if (g[d]) {
g[d].beforeBookmark = e.selection.getBookmark(2, true)
}
},
add: function(l) {
var h, j = e.settings,
k;
l = l || {};
l.content = f();
k = g[d];
if (k && k.content == l.content) {
return null
}
if (j.custom_undo_redo_levels) {
if (g.length > j.custom_undo_redo_levels) {
for (h = 0; h < g.length - 1; h++) {
g[h] = g[h + 1]
}
g.length--;
d = g.length
}
}
l.bookmark = e.selection.getBookmark(2, true);
if (d < g.length - 1) {
g.length = d + 1
}
g.push(l);
d = g.length - 1;
c.onAdd.dispatch(c, l);
e.isNotDirty = 0;
return l
},
undo: function() {
var j, h;
if (c.typing) {
c.add();
c.typing = false
}
if (d > 0) {
j = g[--d];
e.setContent(j.content, {
format: "raw"
});
e.selection.moveToBookmark(j.beforeBookmark);
c.onUndo.dispatch(c, j)
}
return j
},
redo: function() {
var h;
if (d < g.length - 1) {
h = g[++d];
e.setContent(h.content, {
format: "raw"
});
e.selection.moveToBookmark(h.bookmark);
c.onRedo.dispatch(c, h)
}
return h
},
clear: function() {
g = [];
d = 0;
c.typing = false
},
hasUndo: function() {
return d > 0 || this.typing
},
hasRedo: function() {
return d < g.length - 1 && !this.typing
}
}
}
})(tinymce);
(function(m) {
var k = m.dom.Event,
c = m.isIE,
a = m.isGecko,
b = m.isOpera,
j = m.each,
i = m.extend,
d = true,
h = false;
function l(p) {
var q, o, n;
do {
if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(p.nodeName)) {
if (q) {
o = p.cloneNode(false);
o.appendChild(q);
q = o
} else {
q = n = p.cloneNode(false)
}
q.removeAttribute("id")
}
} while (p = p.parentNode);
if (q) {
return {
wrapper: q,
inner: n
}
}
}
function g(o, p) {
var n = p.ownerDocument.createRange();
n.setStart(o.endContainer, o.endOffset);
n.setEndAfter(p);
return n.cloneContents().textContent.length == 0
}
function f(o) {
o = o.innerHTML;
o = o.replace(/<(img|hr|table|input|select|textarea)[ \>]/gi, "-");
o = o.replace(/<[^>]+>/g, "");
return o.replace(/[ \u00a0\t\r\n]+/g, "") == ""
}
function e(p, r, n) {
var o, q;
if (f(n)) {
o = r.getParent(n, "ul,ol");
if (!r.getParent(o.parentNode, "ul,ol")) {
r.split(o, n);
q = r.create("p", 0, '<br data-mce-bogus="1" />');
r.replace(q, n);
p.select(q, 1)
}
return h
}
return d
}
m.create("tinymce.ForceBlocks", {
ForceBlocks: function(n) {
var o = this,
p = n.settings,
q;
o.editor = n;
o.dom = n.dom;
q = (p.forced_root_block || "p").toLowerCase();
p.element = q.toUpperCase();
n.onPreInit.add(o.setup, o);
if (p.forced_root_block) {
n.onInit.add(o.forceRoots, o);
n.onSetContent.add(o.forceRoots, o);
n.onBeforeGetContent.add(o.forceRoots, o);
n.onExecCommand.add(function(r, s) {
if (s == "mceInsertContent") {
o.forceRoots();
r.nodeChanged()
}
})
}
},
setup: function() {
var o = this,
n = o.editor,
q = n.settings,
u = n.dom,
p = n.selection;
if (q.forced_root_block) {
n.onBeforeExecCommand.add(o.forceRoots, o);
n.onKeyUp.add(o.forceRoots, o);
n.onPreProcess.add(o.forceRoots, o)
}
if (q.force_br_newlines) {
if (c) {
n.onKeyPress.add(function(s, t) {
var v;
if (t.keyCode == 13 && p.getNode().nodeName != "LI") {
p.setContent('<br id="__" /> ', {
format: "raw"
});
v = u.get("__");
v.removeAttribute("id");
p.select(v);
p.collapse();
return k.cancel(t)
}
})
}
}
if (q.force_p_newlines) {
if (!c) {
n.onKeyPress.add(function(s, t) {
if (t.keyCode == 13 && !t.shiftKey && !o.insertPara(t)) {
k.cancel(t)
}
})
} else {
m.addUnload(function() {
o._previousFormats = 0
});
n.onKeyPress.add(function(s, t) {
o._previousFormats = 0;
if (t.keyCode == 13 && !t.shiftKey && s.selection.isCollapsed() && q.keep_styles) {
o._previousFormats = l(s.selection.getStart())
}
});
n.onKeyUp.add(function(t, x) {
if (x.keyCode == 13 && !x.shiftKey) {
var v = t.selection.getStart(),
s = o._previousFormats;
if (!v.hasChildNodes() && s) {
v = u.getParent(v, u.isBlock);
if (v && v.nodeName != "LI") {
v.innerHTML = "";
if (o._previousFormats) {
v.appendChild(s.wrapper);
s.inner.innerHTML = "\uFEFF"
} else {
v.innerHTML = "\uFEFF"
}
p.select(v, 1);
p.collapse(true);
t.getDoc().execCommand("Delete", false, null);
o._previousFormats = 0
}
}
}
})
}
if (a) {
n.onKeyDown.add(function(s, t) {
if ((t.keyCode == 8 || t.keyCode == 46) && !t.shiftKey) {
o.backspaceDelete(t, t.keyCode == 8)
}
})
}
}
if (m.isWebKit) {
function r(t) {
var s = p.getRng(),
v, z = u.create("div", null, " "),
y, x = u.getViewPort(t.getWin()).h;
s.insertNode(v = u.create("br"));
s.setStartAfter(v);
s.setEndAfter(v);
p.setRng(s);
if (p.getSel().focusNode == v.previousSibling) {
p.select(u.insertAfter(u.doc.createTextNode("\u00a0"), v));
p.collapse(d)
}
u.insertAfter(z, v);
y = u.getPos(z).y;
u.remove(z);
if (y > x) {
t.getWin().scrollTo(0, y)
}
}
n.onKeyPress.add(function(s, t) {
if (t.keyCode == 13 && (t.shiftKey || (q.force_br_newlines && !u.getParent(p.getNode(), "h1,h2,h3,h4,h5,h6,ol,ul")))) {
r(s);
k.cancel(t)
}
})
}
if (c) {
if (q.element != "P") {
n.onKeyPress.add(function(s, t) {
o.lastElm = p.getNode().nodeName
});
n.onKeyUp.add(function(t, v) {
var y, x = p.getNode(),
s = t.getBody();
if (s.childNodes.length === 1 && x.nodeName == "P") {
x = u.rename(x, q.element);
p.select(x);
p.collapse();
t.nodeChanged()
} else {
if (v.keyCode == 13 && !v.shiftKey && o.lastElm != "P") {
y = u.getParent(x, "p");
if (y) {
u.rename(y, q.element);
t.nodeChanged()
}
}
}
})
}
}
},
find: function(v, q, r) {
var p = this.editor,
o = p.getDoc().createTreeWalker(v, 4, null, h),
u = -1;
while (v = o.nextNode()) {
u++;
if (q == 0 && v == r) {
return u
}
if (q == 1 && u == r) {
return v
}
}
return -1
},
forceRoots: function(x, I) {
var z = this,
x = z.editor,
M = x.getBody(),
J = x.getDoc(),
P = x.selection,
A = P.getSel(),
B = P.getRng(),
N = -2,
v, G, o, p, K = -16777215;
var L, q, O, F, C, u = M.childNodes,
E, D, y;
for (E = u.length - 1; E >= 0; E--) {
L = u[E];
if (L.nodeType === 1 && L.getAttribute("data-mce-type")) {
q = null;
continue
}
if (L.nodeType === 3 || (!z.dom.isBlock(L) && L.nodeType !== 8 && !/^(script|mce:script|style|mce:style)$/i.test(L.nodeName))) {
if (!q) {
if (L.nodeType != 3 || /[^\s]/g.test(L.nodeValue)) {
if (N == -2 && B) {
if (!c || B.setStart) {
if (B.startContainer.nodeType == 1 && (D = B.startContainer.childNodes[B.startOffset]) && D.nodeType == 1) {
y = D.getAttribute("id");
D.setAttribute("id", "__mce")
} else {
if (x.dom.getParent(B.startContainer, function(n) {
return n === M
})) {
G = B.startOffset;
o = B.endOffset;
N = z.find(M, 0, B.startContainer);
v = z.find(M, 0, B.endContainer)
}
}
} else {
if (B.item) {
p = J.body.createTextRange();
p.moveToElementText(B.item(0));
B = p
}
p = J.body.createTextRange();
p.moveToElementText(M);
p.collapse(1);
O = p.move("character", K) * -1;
p = B.duplicate();
p.collapse(1);
F = p.move("character", K) * -1;
p = B.duplicate();
p.collapse(0);
C = (p.move("character", K) * -1) - F;
N = F - O;
v = C
}
}
q = x.dom.create(x.settings.forced_root_block);
L.parentNode.replaceChild(q, L);
q.appendChild(L)
}
} else {
if (q.hasChildNodes()) {
q.insertBefore(L, q.firstChild)
} else {
q.appendChild(L)
}
}
} else {
q = null
}
}
if (N != -2) {
if (!c || B.setStart) {
q = M.getElementsByTagName(x.settings.element)[0];
B = J.createRange();
if (N != -1) {
B.setStart(z.find(M, 1, N), G)
} else {
B.setStart(q, 0)
}
if (v != -1) {
B.setEnd(z.find(M, 1, v), o)
} else {
B.setEnd(q, 0)
}
if (A) {
A.removeAllRanges();
A.addRange(B)
}
} else {
try {
B = A.createRange();
B.moveToElementText(M);
B.collapse(1);
B.moveStart("character", N);
B.moveEnd("character", v);
B.select()
} catch (H) {}
}
} else {
if ((!c || B.setStart) && (D = x.dom.get("__mce"))) {
if (y) {
D.setAttribute("id", y)
} else {
D.removeAttribute("id")
}
B = J.createRange();
B.setStartBefore(D);
B.setEndBefore(D);
P.setRng(B)
}
}
},
getParentBlock: function(p) {
var o = this.dom;
return o.getParent(p, o.isBlock)
},
insertPara: function(S) {
var G = this,
x = G.editor,
O = x.dom,
T = x.getDoc(),
X = x.settings,
H = x.selection.getSel(),
I = H.getRangeAt(0),
W = T.body;
var L, M, J, Q, P, u, p, v, A, o, E, V, q, z, K, N = O.getViewPort(x.getWin()),
D, F, C;
x.undoManager.beforeChange();
L = T.createRange();
L.setStart(H.anchorNode, H.anchorOffset);
L.collapse(d);
M = T.createRange();
M.setStart(H.focusNode, H.focusOffset);
M.collapse(d);
J = L.compareBoundaryPoints(L.START_TO_END, M) < 0;
Q = J ? H.anchorNode : H.focusNode;
P = J ? H.anchorOffset : H.focusOffset;
u = J ? H.focusNode : H.anchorNode;
p = J ? H.focusOffset : H.anchorOffset;
if (Q === u && /^(TD|TH)$/.test(Q.nodeName)) {
if (Q.firstChild.nodeName == "BR") {
O.remove(Q.firstChild)
}
if (Q.childNodes.length == 0) {
x.dom.add(Q, X.element, null, "<br />");
V = x.dom.add(Q, X.element, null, "<br />")
} else {
K = Q.innerHTML;
Q.innerHTML = "";
x.dom.add(Q, X.element, null, K);
V = x.dom.add(Q, X.element, null, "<br />")
}
I = T.createRange();
I.selectNodeContents(V);
I.collapse(1);
x.selection.setRng(I);
return h
}
if (Q == W && u == W && W.firstChild && x.dom.isBlock(W.firstChild)) {
Q = u = Q.firstChild;
P = p = 0;
L = T.createRange();
L.setStart(Q, 0);
M = T.createRange();
M.setStart(u, 0)
}
Q = Q.nodeName == "HTML" ? T.body : Q;
Q = Q.nodeName == "BODY" ? Q.firstChild : Q;
u = u.nodeName == "HTML" ? T.body : u;
u = u.nodeName == "BODY" ? u.firstChild : u;
v = G.getParentBlock(Q);
A = G.getParentBlock(u);
o = v ? v.nodeName : X.element;
if (K = G.dom.getParent(v, "li,pre")) {
if (K.nodeName == "LI") {
return e(x.selection, G.dom, K)
}
return d
}
if (v && (v.nodeName == "CAPTION" || /absolute|relative|fixed/gi.test(O.getStyle(v, "position", 1)))) {
o = X.element;
v = null
}
if (A && (A.nodeName == "CAPTION" || /absolute|relative|fixed/gi.test(O.getStyle(v, "position", 1)))) {
o = X.element;
A = null
}
if (/(TD|TABLE|TH|CAPTION)/.test(o) || (v && o == "DIV" && /left|right/gi.test(O.getStyle(v, "float", 1)))) {
o = X.element;
v = A = null
}
E = (v && v.nodeName == o) ? v.cloneNode(0) : x.dom.create(o);
V = (A && A.nodeName == o) ? A.cloneNode(0) : x.dom.create(o);
V.removeAttribute("id");
if (/^(H[1-6])$/.test(o) && g(I, v)) {
V = x.dom.create(X.element)
}
K = q = Q;
do {
if (K == W || K.nodeType == 9 || G.dom.isBlock(K) || /(TD|TABLE|TH|CAPTION)/.test(K.nodeName)) {
break
}
q = K
} while ((K = K.previousSibling ? K.previousSibling : K.parentNode));
K = z = u;
do {
if (K == W || K.nodeType == 9 || G.dom.isBlock(K) || /(TD|TABLE|TH|CAPTION)/.test(K.nodeName)) {
break
}
z = K
} while ((K = K.nextSibling ? K.nextSibling : K.parentNode));
if (q.nodeName == o) {
L.setStart(q, 0)
} else {
L.setStartBefore(q)
}
L.setEnd(Q, P);
E.appendChild(L.cloneContents() || T.createTextNode(""));
try {
M.setEndAfter(z)
} catch (R) {}
M.setStart(u, p);
V.appendChild(M.cloneContents() || T.createTextNode(""));
I = T.createRange();
if (!q.previousSibling && q.parentNode.nodeName == o) {
I.setStartBefore(q.parentNode)
} else {
if (L.startContainer.nodeName == o && L.startOffset == 0) {
I.setStartBefore(L.startContainer)
} else {
I.setStart(L.startContainer, L.startOffset)
}
}
if (!z.nextSibling && z.parentNode.nodeName == o) {
I.setEndAfter(z.parentNode)
} else {
I.setEnd(M.endContainer, M.endOffset)
}
I.deleteContents();
if (b) {
x.getWin().scrollTo(0, N.y)
}
if (E.firstChild && E.firstChild.nodeName == o) {
E.innerHTML = E.firstChild.innerHTML
}
if (V.firstChild && V.firstChild.nodeName == o) {
V.innerHTML = V.firstChild.innerHTML
}
if (f(E)) {
E.innerHTML = "<br />"
}
function U(y, s) {
var r = [],
Z, Y, t;
y.innerHTML = "";
if (X.keep_styles) {
Y = s;
do {
if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(Y.nodeName)) {
Z = Y.cloneNode(h);
O.setAttrib(Z, "id", "");
r.push(Z)
}
} while (Y = Y.parentNode)
}
if (r.length > 0) {
for (t = r.length - 1, Z = y; t >= 0; t--) {
Z = Z.appendChild(r[t])
}
r[0].innerHTML = b ? "\u00a0" : "<br />";
return r[0]
} else {
y.innerHTML = b ? "\u00a0" : "<br />"
}
}
if (f(V)) {
C = U(V, u)
}
if (b && parseFloat(opera.version()) < 9.5) {
I.insertNode(E);
I.insertNode(V)
} else {
I.insertNode(V);
I.insertNode(E)
}
V.normalize();
E.normalize();
function B(r) {
return T.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, h).nextNode() || r
}
I = T.createRange();
I.selectNodeContents(a ? B(C || V) : C || V);
I.collapse(1);
H.removeAllRanges();
H.addRange(I);
D = x.dom.getPos(V).y;
if (D < N.y || D + 25 > N.y + N.h) {
x.getWin().scrollTo(0, D < N.y ? D : D - N.h + 25)
}
x.undoManager.add();
return h
},
backspaceDelete: function(v, C) {
var D = this,
u = D.editor,
z = u.getBody(),
s = u.dom,
q, x = u.selection,
p = x.getRng(),
y = p.startContainer,
q, A, B, o;
if (!C && p.collapsed && y.nodeType == 1 && p.startOffset == y.childNodes.length) {
o = new m.dom.TreeWalker(y.lastChild, y);
for (q = y.lastChild; q; q = o.prev()) {
if (q.nodeType == 3) {
p.setStart(q, q.nodeValue.length);
p.collapse(true);
x.setRng(p);
return
}
}
}
if (y && u.dom.isBlock(y) && !/^(TD|TH)$/.test(y.nodeName) && C) {
if (y.childNodes.length == 0 || (y.childNodes.length == 1 && y.firstChild.nodeName == "BR")) {
q = y;
while ((q = q.previousSibling) && !u.dom.isBlock(q)) {}
if (q) {
if (y != z.firstChild) {
A = u.dom.doc.createTreeWalker(q, NodeFilter.SHOW_TEXT, null, h);
while (B = A.nextNode()) {
q = B
}
p = u.getDoc().createRange();
p.setStart(q, q.nodeValue ? q.nodeValue.length : 0);
p.setEnd(q, q.nodeValue ? q.nodeValue.length : 0);
x.setRng(p);
u.dom.remove(y)
}
return k.cancel(v)
}
}
}
}
})
})(tinymce);
(function(c) {
var b = c.DOM,
a = c.dom.Event,
d = c.each,
e = c.extend;
c.create("tinymce.ControlManager", {
ControlManager: function(f, j) {
var h = this,
g;
j = j || {};
h.editor = f;
h.controls = {};
h.onAdd = new c.util.Dispatcher(h);
h.onPostRender = new c.util.Dispatcher(h);
h.prefix = j.prefix || f.id + "_";
h._cls = {};
h.onPostRender.add(function() {
d(h.controls, function(i) {
i.postRender()
})
})
},
get: function(f) {
return this.controls[this.prefix + f] || this.controls[f]
},
setActive: function(h, f) {
var g = null;
if (g = this.get(h)) {
g.setActive(f)
}
return g
},
setDisabled: function(h, f) {
var g = null;
if (g = this.get(h)) {
g.setDisabled(f)
}
return g
},
add: function(g) {
var f = this;
if (g) {
f.controls[g.id] = g;
f.onAdd.dispatch(g, f)
}
return g
},
createControl: function(i) {
var h, g = this,
f = g.editor;
d(f.plugins, function(j) {
if (j.createControl) {
h = j.createControl(i, g);
if (h) {
return false
}
}
});
switch (i) {
case "|":
case "separator":
return g.createSeparator()
}
if (!h && f.buttons && (h = f.buttons[i])) {
return g.createButton(i, h)
}
return g.add(h)
},
createDropMenu: function(f, n, h) {
var m = this,
i = m.editor,
j, g, k, l;
n = e({
"class": "mceDropDown",
constrain: i.settings.constrain_menus
}, n);
n["class"] = n["class"] + " " + i.getParam("skin") + "Skin";
if (k = i.getParam("skin_variant")) {
n["class"] += " " + i.getParam("skin") + "Skin" + k.substring(0, 1).toUpperCase() + k.substring(1)
}
f = m.prefix + f;
l = h || m._cls.dropmenu || c.ui.DropMenu;
j = m.controls[f] = new l(f, n);
j.onAddItem.add(function(r, q) {
var p = q.settings;
p.title = i.getLang(p.title, p.title);
if (!p.onclick) {
p.onclick = function(o) {
if (p.cmd) {
i.execCommand(p.cmd, p.ui || false, p.value)
}
}
}
});
i.onRemove.add(function() {
j.destroy()
});
if (c.isIE) {
j.onShowMenu.add(function() {
i.focus();
g = i.selection.getBookmark(1)
});
j.onHideMenu.add(function() {
if (g) {
i.selection.moveToBookmark(g);
g = 0
}
})
}
return m.add(j)
},
createListBox: function(m, i, l) {
var h = this,
g = h.editor,
j, k, f;
if (h.get(m)) {
return null
}
i.title = g.translate(i.title);
i.scope = i.scope || g;
if (!i.onselect) {
i.onselect = function(n) {
g.execCommand(i.cmd, i.ui || false, n || i.value)
}
}
i = e({
title: i.title,
"class": "mce_" + m,
scope: i.scope,
control_manager: h
}, i);
m = h.prefix + m;
if (g.settings.use_native_selects) {
k = new c.ui.NativeListBox(m, i)
} else {
f = l || h._cls.listbox || c.ui.ListBox;
k = new f(m, i, g)
}
h.controls[m] = k;
if (c.isWebKit) {
k.onPostRender.add(function(p, o) {
a.add(o, "mousedown", function() {
g.bookmark = g.selection.getBookmark(1)
});
a.add(o, "focus", function() {
g.selection.moveToBookmark(g.bookmark);
g.bookmark = null
})
})
}
if (k.hideMenu) {
g.onMouseDown.add(k.hideMenu, k)
}
return h.add(k)
},
createButton: function(m, i, l) {
var h = this,
g = h.editor,
j, k, f;
if (h.get(m)) {
return null
}
i.title = g.translate(i.title);
i.label = g.translate(i.label);
i.scope = i.scope || g;
if (!i.onclick && !i.menu_button) {
i.onclick = function() {
g.execCommand(i.cmd, i.ui || false, i.value)
}
}
i = e({
title: i.title,
"class": "mce_" + m,
unavailable_prefix: g.getLang("unavailable", ""),
scope: i.scope,
control_manager: h
}, i);
m = h.prefix + m;
if (i.menu_button) {
f = l || h._cls.menubutton || c.ui.MenuButton;
k = new f(m, i, g);
g.onMouseDown.add(k.hideMenu, k)
} else {
f = h._cls.button || c.ui.Button;
k = new f(m, i)
}
return h.add(k)
},
createMenuButton: function(h, f, g) {
f = f || {};
f.menu_button = 1;
return this.createButton(h, f, g)
},
createSplitButton: function(m, i, l) {
var h = this,
g = h.editor,
j, k, f;
if (h.get(m)) {
return null
}
i.title = g.translate(i.title);
i.scope = i.scope || g;
if (!i.onclick) {
i.onclick = function(n) {
g.execCommand(i.cmd, i.ui || false, n || i.value)
}
}
if (!i.onselect) {
i.onselect = function(n) {
g.execCommand(i.cmd, i.ui || false, n || i.value)
}
}
i = e({
title: i.title,
"class": "mce_" + m,
scope: i.scope,
control_manager: h
}, i);
m = h.prefix + m;
f = l || h._cls.splitbutton || c.ui.SplitButton;
k = h.add(new f(m, i, g));
g.onMouseDown.add(k.hideMenu, k);
return k
},
createColorSplitButton: function(f, n, h) {
var l = this,
j = l.editor,
i, k, m, g;
if (l.get(f)) {
return null
}
n.title = j.translate(n.title);
n.scope = n.scope || j;
if (!n.onclick) {
n.onclick = function(o) {
if (c.isIE) {
g = j.selection.getBookmark(1)
}
j.execCommand(n.cmd, n.ui || false, o || n.value)
}
}
if (!n.onselect) {
n.onselect = function(o) {
j.execCommand(n.cmd, n.ui || false, o || n.value)
}
}
n = e({
title: n.title,
"class": "mce_" + f,
menu_class: j.getParam("skin") + "Skin",
scope: n.scope,
more_colors_title: j.getLang("more_colors")
}, n);
f = l.prefix + f;
m = h || l._cls.colorsplitbutton || c.ui.ColorSplitButton;
k = new m(f, n, j);
j.onMouseDown.add(k.hideMenu, k);
j.onRemove.add(function() {
k.destroy()
});
if (c.isIE) {
k.onShowMenu.add(function() {
j.focus();
g = j.selection.getBookmark(1)
});
k.onHideMenu.add(function() {
if (g) {
j.selection.moveToBookmark(g);
g = 0
}
})
}
return l.add(k)
},
createToolbar: function(k, h, j) {
var i, g = this,
f;
k = g.prefix + k;
f = j || g._cls.toolbar || c.ui.Toolbar;
i = new f(k, h, g.editor);
if (g.get(k)) {
return null
}
return g.add(i)
},
createToolbarGroup: function(k, h, j) {
var i, g = this,
f;
k = g.prefix + k;
f = j || this._cls.toolbarGroup || c.ui.ToolbarGroup;
i = new f(k, h, g.editor);
if (g.get(k)) {
return null
}
return g.add(i)
},
createSeparator: function(g) {
var f = g || this._cls.separator || c.ui.Separator;
return new f()
},
setControlType: function(g, f) {
return this._cls[g.toLowerCase()] = f
},
destroy: function() {
d(this.controls, function(f) {
f.destroy()
});
this.controls = null
}
})
})(tinymce);
(function(d) {
var a = d.util.Dispatcher,
e = d.each,
c = d.isIE,
b = d.isOpera;
d.create("tinymce.WindowManager", {
WindowManager: function(f) {
var g = this;
g.editor = f;
g.onOpen = new a(g);
g.onClose = new a(g);
g.params = {};
g.features = {}
},
open: function(z, h) {
var v = this,
k = "",
n, m, i = v.editor.settings.dialog_type == "modal",
q, o, j, g = d.DOM.getViewPort(),
r;
z = z || {};
h = h || {};
o = b ? g.w : screen.width;
j = b ? g.h : screen.height;
z.name = z.name || "mc_" + new Date().getTime();
z.width = parseInt(z.width || 320);
z.height = parseInt(z.height || 240);
z.resizable = true;
z.left = z.left || parseInt(o / 2) - (z.width / 2);
z.top = z.top || parseInt(j / 2) - (z.height / 2);
h.inline = false;
h.mce_width = z.width;
h.mce_height = z.height;
h.mce_auto_focus = z.auto_focus;
if (i) {
if (c) {
z.center = true;
z.help = false;
z.dialogWidth = z.width + "px";
z.dialogHeight = z.height + "px";
z.scroll = z.scrollbars || false
}
}
e(z, function(p, f) {
if (d.is(p, "boolean")) {
p = p ? "yes" : "no"
}
if (!/^(name|url)$/.test(f)) {
if (c && i) {
k += (k ? ";" : "") + f + ":" + p
} else {
k += (k ? "," : "") + f + "=" + p
}
}
});
v.features = z;
v.params = h;
v.onOpen.dispatch(v, z, h);
r = z.url || z.file;
r = d._addVer(r);
try {
if (c && i) {
q = 1;
window.showModalDialog(r, window, k)
} else {
q = window.open(r, z.name, k)
}
} catch (l) {}
if (!q) {
alert(v.editor.getLang("popup_blocked"))
}
},
close: function(f) {
f.close();
this.onClose.dispatch(this)
},
createInstance: function(i, h, g, m, l, k) {
var j = d.resolve(i);
return new j(h, g, m, l, k)
},
confirm: function(h, f, i, g) {
g = g || window;
f.call(i || this, g.confirm(this._decode(this.editor.getLang(h, h))))
},
alert: function(h, f, j, g) {
var i = this;
g = g || window;
g.alert(i._decode(i.editor.getLang(h, h)));
if (f) {
f.call(j || i)
}
},
resizeBy: function(f, g, h) {
h.resizeBy(f, g)
},
_decode: function(f) {
return d.DOM.decode(f).replace(/\\n/g, "\n")
}
})
}(tinymce));
(function(a) {
a.Formatter = function(V) {
var M = {},
O = a.each,
c = V.dom,
q = V.selection,
t = a.dom.TreeWalker,
K = new a.dom.RangeUtils(c),
d = V.schema.isValidChild,
F = c.isBlock,
l = V.settings.forced_root_block,
s = c.nodeIndex,
E = "\uFEFF",
e = /^(src|href|style)$/,
S = false,
B = true,
p, P = {
apply: [],
remove: []
};
function z(W) {
return W instanceof Array
}
function m(X, W) {
return c.getParents(X, W, c.getRoot())
}
function b(W) {
return W.nodeType === 1 && (W.face === "mceinline" || W.style.fontFamily === "mceinline")
}
function R(W) {
return W ? M[W] : M
}
function k(W, X) {
if (W) {
if (typeof(W) !== "string") {
O(W, function(Z, Y) {
k(Y, Z)
})
} else {
X = X.length ? X : [X];
O(X, function(Y) {
if (Y.deep === p) {
Y.deep = !Y.selector
}
if (Y.split === p) {
Y.split = !Y.selector || Y.inline
}
if (Y.remove === p && Y.selector && !Y.inline) {
Y.remove = "none"
}
if (Y.selector && Y.inline) {
Y.mixed = true;
Y.block_expand = true
}
if (typeof(Y.classes) === "string") {
Y.classes = Y.classes.split(/\s+/)
}
});
M[W] = X
}
}
}
var i = function(X) {
var W;
V.dom.getParent(X, function(Y) {
W = V.dom.getStyle(Y, "text-decoration");
return W && W !== "none"
});
return W
};
var I = function(W) {
var X;
if (W.nodeType === 1 && W.parentNode && W.parentNode.nodeType === 1) {
X = i(W.parentNode);
if (V.dom.getStyle(W, "color") && X) {
V.dom.setStyle(W, "text-decoration", X)
} else {
if (V.dom.getStyle(W, "textdecoration") === X) {
V.dom.setStyle(W, "text-decoration", null)
}
}
}
};
function T(Y, af, aa) {
var ab = R(Y),
ag = ab[0],
ae, X, ad, ac = q.isCollapsed();
function Z(ak) {
var aj = ak.startContainer,
an = ak.startOffset,
am, al;
if (aj.nodeType == 1 || aj.nodeValue === "") {
aj = aj.nodeType == 1 ? aj.childNodes[an] : aj;
if (aj) {
am = new t(aj, aj.parentNode);
for (al = am.current(); al; al = am.next()) {
if (al.nodeType == 3 && !f(al)) {
ak.setStart(al, 0);
break
}
}
}
}
return ak
}
function W(ak, aj) {
aj = aj || ag;
if (ak) {
O(aj.styles, function(am, al) {
c.setStyle(ak, al, r(am, af))
});
O(aj.attributes, function(am, al) {
c.setAttrib(ak, al, r(am, af))
});
O(aj.classes, function(al) {
al = r(al, af);
if (!c.hasClass(ak, al)) {
c.addClass(ak, al)
}
})
}
}
function ah(ak) {
var aj = [],
am, al;
am = ag.inline || ag.block;
al = c.create(am);
W(al);
K.walk(ak, function(an) {
var ao;
function ap(aq) {
var au = aq.nodeName.toLowerCase(),
at = aq.parentNode.nodeName.toLowerCase(),
ar;
if (g(au, "br")) {
ao = 0;
if (ag.block) {
c.remove(aq)
}
return
}
if (ag.wrapper && x(aq, Y, af)) {
ao = 0;
return
}
if (ag.block && !ag.wrapper && G(au)) {
aq = c.rename(aq, am);
W(aq);
aj.push(aq);
ao = 0;
return
}
if (ag.selector) {
O(ab, function(av) {
if ("collapsed" in av && av.collapsed !== ac) {
return
}
if (c.is(aq, av.selector) && !b(aq)) {
W(aq, av);
ar = true
}
});
if (!ag.inline || ar) {
ao = 0;
return
}
}
if (d(am, au) && d(at, am) && !(aq.nodeType === 3 && aq.nodeValue.length === 1 && aq.nodeValue.charCodeAt(0) === 65279)) {
if (!ao) {
ao = al.cloneNode(S);
aq.parentNode.insertBefore(ao, aq);
aj.push(ao)
}
ao.appendChild(aq)
} else {
ao = 0;
O(a.grep(aq.childNodes), ap);
ao = 0
}
}
O(an, ap)
});
if (ag.wrap_links === false) {
O(aj, function(an) {
function ao(at) {
var ar, aq, ap;
if (at.nodeName === "A") {
aq = al.cloneNode(S);
aj.push(aq);
ap = a.grep(at.childNodes);
for (ar = 0; ar < ap.length; ar++) {
aq.appendChild(ap[ar])
}
at.appendChild(aq)
}
O(a.grep(at.childNodes), ao)
}
ao(an)
})
}
O(aj, function(ap) {
var an;
function aq(at) {
var ar = 0;
O(at.childNodes, function(au) {
if (!f(au) && !H(au)) {
ar++
}
});
return ar
}
function ao(ar) {
var au, at;
O(ar.childNodes, function(av) {
if (av.nodeType == 1 && !H(av) && !b(av)) {
au = av;
return S
}
});
if (au && h(au, ag)) {
at = au.cloneNode(S);
W(at);
c.replace(at, ar, B);
c.remove(au, 1)
}
return at || ar
}
an = aq(ap);
if ((aj.length > 1 || !F(ap)) && an === 0) {
c.remove(ap, 1);
return
}
if (ag.inline || ag.wrapper) {
if (!ag.exact && an === 1) {
ap = ao(ap)
}
O(ab, function(ar) {
O(c.select(ar.inline, ap), function(au) {
var at;
if (ar.wrap_links === false) {
at = au.parentNode;
do {
if (at.nodeName === "A") {
return
}
} while (at = at.parentNode)
}
U(ar, af, au, ar.exact ? au : null)
})
});
if (x(ap.parentNode, Y, af)) {
c.remove(ap, 1);
ap = 0;
return B
}
if (ag.merge_with_parents) {
c.getParent(ap.parentNode, function(ar) {
if (x(ar, Y, af)) {
c.remove(ap, 1);
ap = 0;
return B
}
})
}
if (ap) {
ap = u(C(ap), ap);
ap = u(ap, C(ap, B))
}
}
})
}
if (ag) {
if (aa) {
X = c.createRng();
X.setStartBefore(aa);
X.setEndAfter(aa);
ah(o(X, ab))
} else {
if (!ac || !ag.inline || c.select("td.mceSelected,th.mceSelected").length) {
var ai = V.selection.getNode();
ae = q.getBookmark();
ah(o(q.getRng(B), ab));
if (ag.styles && (ag.styles.color || ag.styles.textDecoration)) {
a.walk(ai, I, "childNodes");
I(ai)
}
q.moveToBookmark(ae);
q.setRng(Z(q.getRng(B)));
V.nodeChanged()
} else {
Q("apply", Y, af)
}
}
}
}
function A(Y, ah, ab) {
var ac = R(Y),
aj = ac[0],
ag, af, X;
function aa(am) {
var al = am.startContainer,
ar = am.startOffset,
aq, ap, an, ao;
if (al.nodeType == 3 && ar >= al.nodeValue.length - 1) {
al = al.parentNode;
ar = s(al) + 1
}
if (al.nodeType == 1) {
an = al.childNodes;
al = an[Math.min(ar, an.length - 1)];
aq = new t(al);
if (ar > an.length - 1) {
aq.next()
}
for (ap = aq.current(); ap; ap = aq.next()) {
if (ap.nodeType == 3 && !f(ap)) {
ao = c.create("a", null, E);
ap.parentNode.insertBefore(ao, ap);
am.setStart(ap, 0);
q.setRng(am);
c.remove(ao);
return
}
}
}
}
function Z(ao) {
var an, am, al;
an = a.grep(ao.childNodes);
for (am = 0, al = ac.length; am < al; am++) {
if (U(ac[am], ah, ao, ao)) {
break
}
}
if (aj.deep) {
for (am = 0, al = an.length; am < al; am++) {
Z(an[am])
}
}
}
function ad(al) {
var am;
O(m(al.parentNode).reverse(), function(an) {
var ao;
if (!am && an.id != "_start" && an.id != "_end") {
ao = x(an, Y, ah);
if (ao && ao.split !== false) {
am = an
}
}
});
return am
}
function W(ao, al, aq, au) {
var av, at, ar, an, ap, am;
if (ao) {
am = ao.parentNode;
for (av = al.parentNode; av && av != am; av = av.parentNode) {
at = av.cloneNode(S);
for (ap = 0; ap < ac.length; ap++) {
if (U(ac[ap], ah, at, at)) {
at = 0;
break
}
}
if (at) {
if (ar) {
at.appendChild(ar)
}
if (!an) {
an = at
}
ar = at
}
}
if (au && (!aj.mixed || !F(ao))) {
al = c.split(ao, al)
}
if (ar) {
aq.parentNode.insertBefore(ar, aq);
an.appendChild(aq)
}
}
return al
}
function ai(al) {
return W(ad(al), al, al, true)
}
function ae(an) {
var am = c.get(an ? "_start" : "_end"),
al = am[an ? "firstChild" : "lastChild"];
if (H(al)) {
al = al[an ? "firstChild" : "lastChild"]
}
c.remove(am, true);
return al
}
function ak(al) {
var am, an;
al = o(al, ac, B);
if (aj.split) {
am = J(al, B);
an = J(al);
if (am != an) {
am = N(am, "span", {
id: "_start",
"data-mce-type": "bookmark"
});
an = N(an, "span", {
id: "_end",
"data-mce-type": "bookmark"
});
ai(am);
ai(an);
am = ae(B);
an = ae()
} else {
am = an = ai(am)
}
al.startContainer = am.parentNode;
al.startOffset = s(am);
al.endContainer = an.parentNode;
al.endOffset = s(an) + 1
}
K.walk(al, function(ao) {
O(ao, function(ap) {
Z(ap);
if (ap.nodeType === 1 && V.dom.getStyle(ap, "text-decoration") === "underline" && ap.parentNode && i(ap.parentNode) === "underline") {
U({
deep: false,
exact: true,
inline: "span",
styles: {
textDecoration: "underline"
}
}, null, ap)
}
})
})
}
if (ab) {
X = c.createRng();
X.setStartBefore(ab);
X.setEndAfter(ab);
ak(X);
return
}
if (!q.isCollapsed() || !aj.inline || c.select("td.mceSelected,th.mceSelected").length) {
ag = q.getBookmark();
ak(q.getRng(B));
q.moveToBookmark(ag);
if (j(Y, ah, q.getStart())) {
aa(q.getRng(true))
}
V.nodeChanged()
} else {
Q("remove", Y, ah)
}
}
function D(X, Z, Y) {
var W = R(X);
if (j(X, Z, Y) && (!("toggle" in W[0]) || W[0]["toggle"])) {
A(X, Z, Y)
} else {
T(X, Z, Y)
}
}
function x(X, W, ac, aa) {
var Y = R(W),
ad, ab, Z;
function ae(ai, ak, al) {
var ah, aj, af = ak[al],
ag;
if (af) {
if (af.length === p) {
for (ah in af) {
if (af.hasOwnProperty(ah)) {
if (al === "attributes") {
aj = c.getAttrib(ai, ah)
} else {
aj = L(ai, ah)
}
if (aa && !aj && !ak.exact) {
return
}
if ((!aa || ak.exact) && !g(aj, r(af[ah], ac))) {
return
}
}
}
} else {
for (ag = 0; ag < af.length; ag++) {
if (al === "attributes" ? c.getAttrib(ai, af[ag]) : L(ai, af[ag])) {
return ak
}
}
}
}
return ak
}
if (Y && X) {
for (ab = 0; ab < Y.length; ab++) {
ad = Y[ab];
if (h(X, ad) && ae(X, ad, "attributes") && ae(X, ad, "styles")) {
if (Z = ad.classes) {
for (ab = 0; ab < Z.length; ab++) {
if (!c.hasClass(X, Z[ab])) {
return
}
}
}
return ad
}
}
}
}
function j(Y, ab, aa) {
var X, Z;
function W(ac) {
ac = c.getParent(ac, function(ad) {
return !!x(ad, Y, ab, true)
});
return x(ac, Y, ab)
}
if (aa) {
return W(aa)
}
if (q.isCollapsed()) {
for (Z = P.apply.length - 1; Z >= 0; Z--) {
if (P.apply[Z].name == Y) {
return true
}
}
for (Z = P.remove.length - 1; Z >= 0; Z--) {
if (P.remove[Z].name == Y) {
return false
}
}
return W(q.getNode())
}
aa = q.getNode();
if (W(aa)) {
return B
}
X = q.getStart();
if (X != aa) {
if (W(X)) {
return B
}
}
return S
}
function v(ad, ac) {
var aa, ab = [],
Z = {},
Y, X, W;
if (q.isCollapsed()) {
for (X = 0; X < ad.length; X++) {
for (Y = P.remove.length - 1; Y >= 0; Y--) {
W = ad[X];
if (P.remove[Y].name == W) {
Z[W] = true;
break
}
}
}
for (Y = P.apply.length - 1; Y >= 0; Y--) {
for (X = 0; X < ad.length; X++) {
W = ad[X];
if (!Z[W] && P.apply[Y].name == W) {
Z[W] = true;
ab.push(W)
}
}
}
}
aa = q.getStart();
c.getParent(aa, function(ag) {
var af, ae;
for (af = 0; af < ad.length; af++) {
ae = ad[af];
if (!Z[ae] && x(ag, ae, ac)) {
Z[ae] = true;
ab.push(ae)
}
}
});
return ab
}
function y(aa) {
var ac = R(aa),
Z, Y, ab, X, W;
if (ac) {
Z = q.getStart();
Y = m(Z);
for (X = ac.length - 1; X >= 0; X--) {
W = ac[X].selector;
if (!W) {
return B
}
for (ab = Y.length - 1; ab >= 0; ab--) {
if (c.is(Y[ab], W)) {
return B
}
}
}
}
return S
}
a.extend(this, {
get: R,
register: k,
apply: T,
remove: A,
toggle: D,
match: j,
matchAll: v,
matchNode: x,
canApply: y
});
function h(W, X) {
if (g(W, X.inline)) {
return B
}
if (g(W, X.block)) {
return B
}
if (X.selector) {
return c.is(W, X.selector)
}
}
function g(X, W) {
X = X || "";
W = W || "";
X = "" + (X.nodeName || X);
W = "" + (W.nodeName || W);
return X.toLowerCase() == W.toLowerCase()
}
function L(X, W) {
var Y = c.getStyle(X, W);
if (W == "color" || W == "backgroundColor") {
Y = c.toHex(Y)
}
if (W == "fontWeight" && Y == 700) {
Y = "bold"
}
return "" + Y
}
function r(W, X) {
if (typeof(W) != "string") {
W = W(X)
} else {
if (X) {
W = W.replace(/%(\w+)/g, function(Z, Y) {
return X[Y] || Z
})
}
}
return W
}
function f(W) {
return W && W.nodeType === 3 && /^([\s\r\n]+|)$/.test(W.nodeValue)
}
function N(Y, X, W) {
var Z = c.create(X, W);
Y.parentNode.insertBefore(Z, Y);
Z.appendChild(Y);
return Z
}
function o(W, ag, Z) {
var Y = W.startContainer,
ad = W.startOffset,
aj = W.endContainer,
ae = W.endOffset,
ai, af, ac;
function ah(am, an, ak, al) {
var ao, ap;
al = al || c.getRoot();
for (;;) {
ao = am.parentNode;
if (ao == al || (!ag[0].block_expand && F(ao))) {
return am
}
for (ai = ao[an]; ai && ai != am; ai = ai[ak]) {
if (ai.nodeType == 1 && !H(ai)) {
return am
}
if (ai.nodeType == 3 && !f(ai)) {
return am
}
}
am = am.parentNode
}
return am
}
function ab(ak, al) {
if (al === p) {
al = ak.nodeType === 3 ? ak.length : ak.childNodes.length
}
while (ak && ak.hasChildNodes()) {
ak = ak.childNodes[al];
if (ak) {
al = ak.nodeType === 3 ? ak.length : ak.childNodes.length
}
}
return {
node: ak,
offset: al
}
}
if (Y.nodeType == 1 && Y.hasChildNodes()) {
af = Y.childNodes.length - 1;
Y = Y.childNodes[ad > af ? af : ad];
if (Y.nodeType == 3) {
ad = 0
}
}
if (aj.nodeType == 1 && aj.hasChildNodes()) {
af = aj.childNodes.length - 1;
aj = aj.childNodes[ae > af ? af : ae - 1];
if (aj.nodeType == 3) {
ae = aj.nodeValue.length
}
}
if (H(Y.parentNode)) {
Y = Y.parentNode
}
if (H(Y)) {
Y = Y.nextSibling || Y
}
if (H(aj.parentNode)) {
ae = c.nodeIndex(aj);
aj = aj.parentNode
}
if (H(aj) && aj.previousSibling) {
aj = aj.previousSibling;
ae = aj.length
}
if (ag[0].inline) {
ac = ab(aj, ae);
if (ac.node) {
while (ac.node && ac.offset === 0 && ac.node.previousSibling) {
ac = ab(ac.node.previousSibling)
}
if (ac.node && ac.offset > 0 && ac.node.nodeType === 3 && ac.node.nodeValue.charAt(ac.offset - 1) === " ") {
if (ac.offset > 1) {
aj = ac.node;
aj.splitText(ac.offset - 1)
} else {
if (ac.node.previousSibling) {
aj = ac.node.previousSibling
}
}
}
}
}
if (ag[0].inline || ag[0].block_expand) {
Y = ah(Y, "firstChild", "nextSibling");
aj = ah(aj, "lastChild", "previousSibling")
}
if (ag[0].selector && ag[0].expand !== S && !ag[0].inline) {
function aa(al, ak) {
var am, an, ap, ao;
if (al.nodeType == 3 && al.nodeValue.length == 0 && al[ak]) {
al = al[ak]
}
am = m(al);
for (an = 0; an < am.length; an++) {
for (ap = 0; ap < ag.length; ap++) {
ao = ag[ap];
if ("collapsed" in ao && ao.collapsed !== W.collapsed) {
continue
}
if (c.is(am[an], ao.selector)) {
return am[an]
}
}
}
return al
}
Y = aa(Y, "previousSibling");
aj = aa(aj, "nextSibling")
}
if (ag[0].block || ag[0].selector) {
function X(al, ak, an) {
var am;
if (!ag[0].wrapper) {
am = c.getParent(al, ag[0].block)
}
if (!am) {
am = c.getParent(al.nodeType == 3 ? al.parentNode : al, F)
}
if (am && ag[0].wrapper) {
am = m(am, "ul,ol").reverse()[0] || am
}
if (!am) {
am = al;
while (am[ak] && !F(am[ak])) {
am = am[ak];
if (g(am, "br")) {
break
}
}
}
return am || al
}
Y = X(Y, "previousSibling");
aj = X(aj, "nextSibling");
if (ag[0].block) {
if (!F(Y)) {
Y = ah(Y, "firstChild", "nextSibling")
}
if (!F(aj)) {
aj = ah(aj, "lastChild", "previousSibling")
}
}
}
if (Y.nodeType == 1) {
ad = s(Y);
Y = Y.parentNode
}
if (aj.nodeType == 1) {
ae = s(aj) + 1;
aj = aj.parentNode
}
return {
startContainer: Y,
startOffset: ad,
endContainer: aj,
endOffset: ae
}
}
function U(ac, ab, Z, W) {
var Y, X, aa;
if (!h(Z, ac)) {
return S
}
if (ac.remove != "all") {
O(ac.styles, function(ae, ad) {
ae = r(ae, ab);
if (typeof(ad) === "number") {
ad = ae;
W = 0
}
if (!W || g(L(W, ad), ae)) {
c.setStyle(Z, ad, "")
}
aa = 1
});
if (aa && c.getAttrib(Z, "style") == "") {
Z.removeAttribute("style");
Z.removeAttribute("data-mce-style")
}
O(ac.attributes, function(af, ad) {
var ae;
af = r(af, ab);
if (typeof(ad) === "number") {
ad = af;
W = 0
}
if (!W || g(c.getAttrib(W, ad), af)) {
if (ad == "class") {
af = c.getAttrib(Z, ad);
if (af) {
ae = "";
O(af.split(/\s+/), function(ag) {
if (/mce\w+/.test(ag)) {
ae += (ae ? " " : "") + ag
}
});
if (ae) {
c.setAttrib(Z, ad, ae);
return
}
}
}
if (ad == "class") {
Z.removeAttribute("className")
}
if (e.test(ad)) {
Z.removeAttribute("data-mce-" + ad)
}
Z.removeAttribute(ad)
}
});
O(ac.classes, function(ad) {
ad = r(ad, ab);
if (!W || c.hasClass(W, ad)) {
c.removeClass(Z, ad)
}
});
X = c.getAttribs(Z);
for (Y = 0; Y < X.length; Y++) {
if (X[Y].nodeName.indexOf("_") !== 0) {
return S
}
}
}
if (ac.remove != "none") {
n(Z, ac);
return B
}
}
function n(Y, Z) {
var W = Y.parentNode,
X;
if (Z.block) {
if (!l) {
function aa(ac, ab, ad) {
ac = C(ac, ab, ad);
return !ac || (ac.nodeName == "BR" || F(ac))
}
if (F(Y) && !F(W)) {
if (!aa(Y, S) && !aa(Y.firstChild, B, 1)) {
Y.insertBefore(c.create("br"), Y.firstChild)
}
if (!aa(Y, B) && !aa(Y.lastChild, S, 1)) {
Y.appendChild(c.create("br"))
}
}
} else {
if (W == c.getRoot()) {
if (!Z.list_block || !g(Y, Z.list_block)) {
O(a.grep(Y.childNodes), function(ab) {
if (d(l, ab.nodeName.toLowerCase())) {
if (!X) {
X = N(ab, l)
} else {
X.appendChild(ab)
}
} else {
X = 0
}
})
}
}
}
}
if (Z.selector && Z.inline && !g(Z.inline, Y)) {
return
}
c.remove(Y, 1)
}
function C(X, W, Y) {
if (X) {
W = W ? "nextSibling" : "previousSibling";
for (X = Y ? X : X[W]; X; X = X[W]) {
if (X.nodeType == 1 || !f(X)) {
return X
}
}
}
}
function H(W) {
return W && W.nodeType == 1 && W.getAttribute("data-mce-type") == "bookmark"
}
function u(aa, Z) {
var W, Y, X;
function ac(af, ae) {
if (af.nodeName != ae.nodeName) {
return S
}
function ad(ah) {
var ai = {};
O(c.getAttribs(ah), function(aj) {
var ak = aj.nodeName.toLowerCase();
if (ak.indexOf("_") !== 0 && ak !== "style") {
ai[ak] = c.getAttrib(ah, ak)
}
});
return ai
}
function ag(ak, aj) {
var ai, ah;
for (ah in ak) {
if (ak.hasOwnProperty(ah)) {
ai = aj[ah];
if (ai === p) {
return S
}
if (ak[ah] != ai) {
return S
}
delete aj[ah]
}
}
for (ah in aj) {
if (aj.hasOwnProperty(ah)) {
return S
}
}
return B
}
if (!ag(ad(af), ad(ae))) {
return S
}
if (!ag(c.parseStyle(c.getAttrib(af, "style")), c.parseStyle(c.getAttrib(ae, "style")))) {
return S
}
return B
}
if (aa && Z) {
function ab(ae, ad) {
for (Y = ae; Y; Y = Y[ad]) {
if (Y.nodeType == 3 && Y.nodeValue.length !== 0) {
return ae
}
if (Y.nodeType == 1 && !H(Y)) {
return Y
}
}
return ae
}
aa = ab(aa, "previousSibling");
Z = ab(Z, "nextSibling");
if (ac(aa, Z)) {
for (Y = aa.nextSibling; Y && Y != Z;) {
X = Y;
Y = Y.nextSibling;
aa.appendChild(X)
}
c.remove(Z);
O(a.grep(Z.childNodes), function(ad) {
aa.appendChild(ad)
});
return aa
}
}
return Z
}
function G(W) {
return /^(h[1-6]|p|div|pre|address|dl|dt|dd)$/.test(W)
}
function J(X, aa) {
var W, Z, Y;
W = X[aa ? "startContainer" : "endContainer"];
Z = X[aa ? "startOffset" : "endOffset"];
if (W.nodeType == 1) {
Y = W.childNodes.length - 1;
if (!aa && Z) {
Z--
}
W = W.childNodes[Z > Y ? Y : Z]
}
return W
}
function Q(ab, X, aa) {
var Y, W = P[ab],
ac = P[ab == "apply" ? "remove" : "apply"];
function ad() {
return P.apply.length || P.remove.length
}
function Z() {
P.apply = [];
P.remove = []
}
function ae(af) {
O(P.apply.reverse(), function(ag) {
T(ag.name, ag.vars, af);
if (ag.name === "forecolor" && ag.vars.value) {
I(af.parentNode)
}
});
O(P.remove.reverse(), function(ag) {
A(ag.name, ag.vars, af)
});
c.remove(af, 1);
Z()
}
for (Y = W.length - 1; Y >= 0; Y--) {
if (W[Y].name == X) {
return
}
}
W.push({
name: X,
vars: aa
});
for (Y = ac.length - 1; Y >= 0; Y--) {
if (ac[Y].name == X) {
ac.splice(Y, 1)
}
}
if (ad()) {
V.getDoc().execCommand("FontName", false, "mceinline");
P.lastRng = q.getRng();
O(c.select("font,span"), function(ag) {
var af;
if (b(ag)) {
af = q.getBookmark();
ae(ag);
q.moveToBookmark(af);
V.nodeChanged()
}
});
if (!P.isListening && ad()) {
P.isListening = true;
O("onKeyDown,onKeyUp,onKeyPress,onMouseUp".split(","), function(af) {
V[af].addToTop(function(ag, ah) {
if (ad() && !a.dom.RangeUtils.compareRanges(P.lastRng, q.getRng())) {
O(c.select("font,span"), function(aj) {
var ak, ai;
if (b(aj)) {
ak = aj.firstChild;
if (ak) {
ae(aj);
ai = c.createRng();
ai.setStart(ak, ak.nodeValue.length);
ai.setEnd(ak, ak.nodeValue.length);
q.setRng(ai);
ag.nodeChanged()
} else {
c.remove(aj)
}
}
});
if (ah.type == "keyup" || ah.type == "mouseup") {
Z()
}
}
})
})
}
}
}
}
})(tinymce);
tinymce.onAddEditor.add(function(e, a) {
var d, h, g, c = a.settings;
if (c.inline_styles) {
h = e.explode(c.font_size_style_values);
function b(j, i) {
e.each(i, function(l, k) {
if (l) {
g.setStyle(j, k, l)
}
});
g.rename(j, "span")
}
d = {
font: function(j, i) {
b(i, {
backgroundColor: i.style.backgroundColor,
color: i.color,
fontFamily: i.face,
fontSize: h[parseInt(i.size) - 1]
})
},
u: function(j, i) {
b(i, {
textDecoration: "underline"
})
},
strike: function(j, i) {
b(i, {
textDecoration: "line-through"
})
}
};
function f(i, j) {
g = i.dom;
if (c.convert_fonts_to_spans) {
e.each(g.select("font,u,strike", j.node), function(k) {
d[k.nodeName.toLowerCase()](a.dom, k)
})
}
}
a.onPreProcess.add(f);
a.onSetContent.add(f);
a.onInit.add(function() {
a.selection.onSetContent.add(f)
})
}
});