(function (d) { var a = /^\s*|\s*$/g, e, c = "B".replace(/A(.)|B/, "$1") === "$1"; var b = { majorVersion: "3", minorVersion: "3.9.2", releaseDate: "2010-09-29", _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 }, 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 (n, f) { var m = this, g, i, j, k, h, l = 0; n = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(n); j = n[3].match(/(^|\.)(\w+)$/i)[2]; i = m.createNS(n[3].replace(/\.\w+$/, "")); if (i[j]) { return } if (n[2] == "static") { i[j] = f; if (this.onCreate) { this.onCreate(n[2], n[3], i[j]) } return } if (!f[j]) { f[j] = function () { }; l = 1 } i[j] = f[j]; m.extend(i[j].prototype, f); if (n[5]) { g = m.resolve(n[5]).prototype; k = n[5].match(/\.(\w+)$/i)[1]; h = i[j]; if (l) { i[j] = function () { return g[k].apply(this, arguments) } } else { i[j] = function () { this.parent = g[k]; return h.apply(this, arguments) } } i[j].prototype[j] = i[j]; m.each(g, function (o, p) { i[j].prototype[p] = g[p] }); m.each(f, function (o, p) { if (g[p]) { i[j].prototype[p] = function () { this.parent = g[p]; return o.apply(this, arguments) } } else { if (p != j) { i[j].prototype[p] = o } } }) } m.each(f["static"], function (o, p) { i[j][p] = o }); if (this.onCreate) { this.onCreate(n[2], n[3], i[j].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) } }) })(); tinymce.create("static tinymce.util.JSON", { serialize: function (e) { var c, a, d = tinymce.util.JSON.serialize, b; if (e == null) { return "null" } b = typeof e; if (b == "string") { a = "\bb\tt\nn\ff\rr\"\"''\\\\"; return '"' + e.replace(/([\u0080-\uFFFF\x00-\x1f\"])/g, function (g, f) { c = a.indexOf(f); if (c + 1) { return "\\" + a.charAt(c + 1) } g = f.charCodeAt().toString(16); return "\\u" + "0000".substring(g.length) + g }) + '"' } if (b == "object") { if (e.hasOwnProperty && e instanceof Array) { for (c = 0, a = "["; c < e.length; c++) { a += (c > 0 ? "," : "") + d(e[c]) } return a + "]" } a = "{"; for (c in e) { a += typeof e[c] != "function" ? (a.length > 1 ? ',"' : '"') + c + '":' + d(e[c]) : "" } return a + "}" } return "" + e }, 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) { 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 (m) { var k = m.each, j = m.is, i = m.isWebKit, d = m.isIE, a = /^(H[1-6R]|P|DIV|ADDRESS|PRE|FORM|T(ABLE|BODY|HEAD|FOOT|H|R|D)|LI|OL|UL|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|MENU|ISINDEX|SAMP)$/, e = g("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"), f = g("src,href,style,coords,shape"), c = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" }, n = /[<>&\"]/g, b = /^([a-z0-9],?)+$/i, h = /<(\w+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)(\s*\/?)>/g, l = /(\w+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g; function g(q) { var p = {}, o; q = q.split(","); for (o = q.length; o >= 0; o--) { p[q[o]] = 1 } return p } m.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 (u, q) { var p = this, o; p.doc = u; p.win = window; p.files = {}; p.cssFlicker = false; p.counter = 0; p.stdMode = u.documentMode >= 8; p.boxModel = !m.isIE || u.compatMode == "CSS1Compat" || p.stdMode; p.settings = q = m.extend({ keep_values: false, hex_colors: 1, process_html: 1 }, q); if (m.isIE6) { try { u.execCommand("BackgroundImageCache", false, true) } catch (r) { p.cssFlicker = true } } if (q.valid_styles) { p._styles = {}; k(q.valid_styles, function (t, s) { p._styles[s] = m.explode(t) }) } m.addUnload(p.destroy, p) }, getRoot: function () { var o = this, p = o.settings; return (p && o.get(p.root_element)) || o.doc.body }, getViewPort: function (p) { var q, o; p = !p ? this.win : p; q = p.document; o = this.boxModel ? q.documentElement : q.body; return { x: p.pageXOffset || o.scrollLeft, y: p.pageYOffset || o.scrollTop, w: p.innerWidth || o.clientWidth, h: p.innerHeight || o.clientHeight} }, getRect: function (s) { var r, o = this, q; s = o.get(s); r = o.getPos(s); q = o.getSize(s); return { x: r.x, y: r.y, w: q.w, h: q.h} }, getSize: function (r) { var p = this, o, q; r = p.get(r); o = p.getStyle(r, "width"); q = p.getStyle(r, "height"); if (o.indexOf("px") === -1) { o = 0 } if (q.indexOf("px") === -1) { q = 0 } return { w: parseInt(o) || r.offsetWidth || r.clientWidth, h: parseInt(q) || r.offsetHeight || r.clientHeight} }, getParent: function (q, p, o) { return this.getParents(q, p, o, false) }, getParents: function (z, v, s, y) { var q = this, p, u = q.settings, x = []; z = q.get(z); y = y === undefined; if (u.strict_root) { s = s || q.getRoot() } if (j(v, "string")) { p = v; if (v === "*") { v = function (o) { return o.nodeType == 1 } } else { v = function (o) { return q.is(o, p) } } } while (z) { if (z == s || !z.nodeType || z.nodeType === 9) { break } if (!v || v(z)) { if (y) { x.push(z) } else { return z } } z = z.parentNode } return y ? x : null }, get: function (o) { var p; if (o && this.doc && typeof (o) == "string") { p = o; o = this.doc.getElementById(o); if (o && o.id !== p) { return this.doc.getElementsByName(p)[1] } } return o }, getNext: function (p, o) { return this._findSib(p, o, "nextSibling") }, getPrev: function (p, o) { return this._findSib(p, o, "previousSibling") }, select: function (q, p) { var o = this; return m.dom.Sizzle(q, o.get(p) || o.get(o.settings.root_element) || o.doc, []) }, is: function (q, o) { var p; if (q.length === undefined) { if (o === "*") { return q.nodeType == 1 } if (b.test(o)) { o = o.toLowerCase().split(/,/); q = q.nodeName.toLowerCase(); for (p = o.length - 1; p >= 0; p--) { if (o[p] == q) { return true } } return false } } return m.dom.Sizzle.matches(o, q.nodeType ? [q] : q).length > 0 }, add: function (s, v, o, r, u) { var q = this; return this.run(s, function (y) { var x, t; x = j(v, "string") ? q.doc.createElement(v) : v; q.setAttribs(x, o); if (r) { if (r.nodeType) { x.appendChild(r) } else { q.setHTML(x, r) } } return !u ? y.appendChild(x) : x }) }, create: function (q, o, p) { return this.add(this.doc.createElement(q), q, o, p, 1) }, createHTML: function (v, p, s) { var u = "", r = this, q; u += "<" + v; for (q in p) { if (p.hasOwnProperty(q)) { u += " " + q + '="' + r.encode(p[q]) + '"' } } if (typeof (s) != "undefined") { return u + ">" + s + "</" + v + ">" } return u + " />" }, remove: function (o, p) { return this.run(o, function (r) { var q, s; q = r.parentNode; if (!q) { return null } if (p) { while (s = r.firstChild) { if (!m.isIE || s.nodeType !== 3 || s.nodeValue) { q.insertBefore(s, r) } else { r.removeChild(s) } } } return q.removeChild(r) }) }, setStyle: function (r, o, p) { var q = this; return q.run(r, function (v) { var u, t; u = v.style; o = o.replace(/-(\D)/g, function (x, s) { return s.toUpperCase() }); if (q.pixelStyles.test(o) && (m.is(p, "number") || /^[\-0-9\.]+$/.test(p))) { p += "px" } switch (o) { case "opacity": if (d) { u.filter = p === "" ? "" : "alpha(opacity=" + (p * 100) + ")"; if (!r.currentStyle || !r.currentStyle.hasLayout) { u.display = "inline-block" } } u[o] = u["-moz-opacity"] = u["-khtml-opacity"] = p || ""; break; case "float": d ? u.styleFloat = p : u.cssFloat = p; break; default: u[o] = p || "" } if (q.settings.update_styles) { q.setAttrib(v, "_mce_style") } }) }, getStyle: function (r, o, q) { r = this.get(r); if (!r) { return false } if (this.doc.defaultView && q) { o = o.replace(/[A-Z]/g, function (s) { return "-" + s }); try { return this.doc.defaultView.getComputedStyle(r, null).getPropertyValue(o) } catch (p) { return null } } o = o.replace(/-(\D)/g, function (t, s) { return s.toUpperCase() }); if (o == "float") { o = d ? "styleFloat" : "cssFloat" } if (r.currentStyle && q) { return r.currentStyle[o] } return r.style[o] }, setStyles: function (u, v) { var q = this, r = q.settings, p; p = r.update_styles; r.update_styles = 0; k(v, function (o, s) { q.setStyle(u, s, o) }); r.update_styles = p; if (r.update_styles) { q.setAttrib(u, r.cssText) } }, setAttrib: function (q, r, o) { var p = this; if (!q || !r) { return } if (p.settings.strict) { r = r.toLowerCase() } return this.run(q, function (u) { var t = p.settings; switch (r) { case "style": if (!j(o, "string")) { k(o, function (s, x) { p.setStyle(u, x, s) }); return } if (t.keep_values) { if (o && !p._isRes(o)) { u.setAttribute("_mce_style", o, 2) } else { u.removeAttribute("_mce_style", 2) } } u.style.cssText = o; break; case "class": u.className = o || ""; break; case "src": case "href": if (t.keep_values) { if (t.url_converter) { o = t.url_converter.call(t.url_converter_scope || p, o, r, u) } p.setAttrib(u, "_mce_" + r, o, 2) } break; case "shape": u.setAttribute("_mce_style", o); break } if (j(o) && o !== null && o.length !== 0) { u.setAttribute(r, "" + o, 2) } else { u.removeAttribute(r, 2) } }) }, setAttribs: function (q, r) { var p = this; return this.run(q, function (o) { k(r, function (s, t) { p.setAttrib(o, t, s) }) }) }, getAttrib: function (r, s, q) { var o, p = this; r = p.get(r); if (!r || r.nodeType !== 1) { return false } if (!j(q)) { q = "" } if (/^(src|href|style|coords|shape)$/.test(s)) { o = r.getAttribute("_mce_" + s); if (o) { return o } } if (d && p.props[s]) { o = r[p.props[s]]; o = o && o.nodeValue ? o.nodeValue : o } if (!o) { o = r.getAttribute(s, 2) } if (/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(s)) { if (r[p.props[s]] === true && o === "") { return s } return o ? s : "" } if (r.nodeName === "FORM" && r.getAttributeNode(s)) { return r.getAttributeNode(s).nodeValue } if (s === "style") { o = o || r.style.cssText; if (o) { o = p.serializeStyle(p.parseStyle(o), r.nodeName); if (p.settings.keep_values && !p._isRes(o)) { r.setAttribute("_mce_style", o) } } } if (i && s === "class" && o) { o = o.replace(/(apple|webkit)\-[a-z\-]+/gi, "") } if (d) { switch (s) { case "rowspan": case "colspan": if (o === 1) { o = "" } break; case "size": if (o === "+0" || o === 20 || o === 0) { o = "" } break; case "width": case "height": case "vspace": case "checked": case "disabled": case "readonly": if (o === 0) { o = "" } break; case "hspace": if (o === -1) { o = "" } break; case "maxlength": case "tabindex": if (o === 32768 || o === 2147483647 || o === "32768") { o = "" } break; case "multiple": case "compact": case "noshade": case "nowrap": if (o === 65535) { return s } return q; case "shape": o = o.toLowerCase(); break; default: if (s.indexOf("on") === 0 && o) { o = m._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, "$1", "" + o) } } } return (o !== undefined && o !== null && o !== "") ? "" + o : q }, getPos: function (A, s) { var p = this, o = 0, z = 0, u, v = p.doc, q; A = p.get(A); s = s || v.body; if (A) { if (d && !p.stdMode) { A = A.getBoundingClientRect(); u = p.boxModel ? v.documentElement : v.body; o = p.getStyle(p.select("html")[0], "borderWidth"); o = (o == "medium" || p.boxModel && !p.isIE6) && 2 || o; return { x: A.left + u.scrollLeft - o, y: A.top + u.scrollTop - o} } q = A; while (q && q != s && q.nodeType) { o += q.offsetLeft || 0; z += q.offsetTop || 0; q = q.offsetParent } q = A.parentNode; while (q && q != s && q.nodeType) { o -= q.scrollLeft || 0; z -= q.scrollTop || 0; q = q.parentNode } } return { x: o, y: z} }, parseStyle: function (r) { var u = this, v = u.settings, x = {}; if (!r) { return x } function p(D, A, C) { var z, B, o, y; z = x[D + "-top" + A]; if (!z) { return } B = x[D + "-right" + A]; if (z != B) { return } o = x[D + "-bottom" + A]; if (B != o) { return } y = x[D + "-left" + A]; if (o != y) { return } x[C] = y; delete x[D + "-top" + A]; delete x[D + "-right" + A]; delete x[D + "-bottom" + A]; delete x[D + "-left" + A] } function q(y, s, o, A) { var z; z = x[s]; if (!z) { return } z = x[o]; if (!z) { return } z = x[A]; if (!z) { return } x[y] = x[s] + " " + x[o] + " " + x[A]; delete x[s]; delete x[o]; delete x[A] } r = r.replace(/&(#?[a-z0-9]+);/g, "&$1_MCE_SEMI_"); k(r.split(";"), function (s) { var o, t = []; if (s) { s = s.replace(/_MCE_SEMI_/g, ";"); s = s.replace(/url\([^\)]+\)/g, function (y) { t.push(y); return "url(" + t.length + ")" }); s = s.split(":"); o = m.trim(s[1]); o = o.replace(/url\(([^\)]+)\)/g, function (z, y) { return t[parseInt(y) - 1] }); o = o.replace(/rgb\([^\)]+\)/g, function (y) { return u.toHex(y) }); if (v.url_converter) { o = o.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g, function (y, z) { return "url(" + v.url_converter.call(v.url_converter_scope || u, u.decode(z), "style", null) + ")" }) } x[m.trim(s[0]).toLowerCase()] = o } }); p("border", "", "border"); p("border", "-width", "border-width"); p("border", "-color", "border-color"); p("border", "-style", "border-style"); p("padding", "", "padding"); p("margin", "", "margin"); q("border", "border-width", "border-style", "border-color"); if (d) { if (x.border == "medium none") { x.border = "" } } return x }, serializeStyle: function (v, p) { var q = this, r = ""; function u(s, o) { if (o && s) { if (o.indexOf("-") === 0) { return } switch (o) { case "font-weight": if (s == 700) { s = "bold" } break; case "color": case "background-color": s = s.toLowerCase(); break } r += (r ? " " : "") + o + ": " + s + ";" } } if (p && q._styles) { k(q._styles["*"], function (o) { u(v[o], o) }); k(q._styles[p.toLowerCase()], function (o) { u(v[o], o) }) } else { k(v, u) } return r }, loadCSS: function (o) { var q = this, r = q.doc, p; if (!o) { o = "" } p = q.select("head")[0]; k(o.split(","), function (s) { var t; if (q.files[s]) { return } q.files[s] = true; t = q.create("link", { rel: "stylesheet", href: m._addVer(s) }); if (d && r.documentMode && r.recalc) { t.onload = function () { r.recalc(); t.onload = null } } p.appendChild(t) }) }, addClass: function (o, p) { return this.run(o, function (q) { var r; if (!p) { return 0 } if (this.hasClass(q, p)) { return q.className } r = this.removeClass(q, p); return q.className = (r != "" ? (r + " ") : "") + p }) }, removeClass: function (q, r) { var o = this, p; return o.run(q, function (t) { var s; if (o.hasClass(t, r)) { if (!p) { p = new RegExp("(^|\\s+)" + r + "(\\s+|$)", "g") } s = t.className.replace(p, " "); s = m.trim(s != " " ? s : ""); t.className = s; if (!s) { t.removeAttribute("class"); t.removeAttribute("className") } return s } return t.className }) }, hasClass: function (p, o) { p = this.get(p); if (!p || !o) { return false } return (" " + p.className + " ").indexOf(" " + o + " ") !== -1 }, show: function (o) { return this.setStyle(o, "display", "block") }, hide: function (o) { return this.setStyle(o, "display", "none") }, isHidden: function (o) { o = this.get(o); return !o || o.style.display == "none" || this.getStyle(o, "display") == "none" }, uniqueId: function (o) { return (!o ? "mce_" : o) + (this.counter++) }, setHTML: function (q, p) { var o = this; return this.run(q, function (v) { var r, t, s, z, u, r; p = o.processHTML(p); if (d) { function y() { while (v.firstChild) { v.firstChild.removeNode() } try { v.innerHTML = "<br />" + p; v.removeChild(v.firstChild) } catch (x) { r = o.create("div"); r.innerHTML = "<br />" + p; k(r.childNodes, function (B, A) { if (A) { v.appendChild(B) } }) } } if (o.settings.fix_ie_paragraphs) { p = p.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi, '<p$1 _mce_keep="true">&nbsp;</p>') } y(); if (o.settings.fix_ie_paragraphs) { s = v.getElementsByTagName("p"); for (t = s.length - 1, r = 0; t >= 0; t--) { z = s[t]; if (!z.hasChildNodes()) { if (!z._mce_keep) { r = 1; break } z.removeAttribute("_mce_keep") } } } if (r) { p = p.replace(/<p ([^>]+)>|<p>/ig, '<div $1 _mce_tmp="1">'); p = p.replace(/<\/p>/gi, "</div>"); y(); if (o.settings.fix_ie_paragraphs) { s = v.getElementsByTagName("DIV"); for (t = s.length - 1; t >= 0; t--) { z = s[t]; if (z._mce_tmp) { u = o.doc.createElement("p"); z.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi, function (A, x) { var B; if (x !== "_mce_tmp") { B = z.getAttribute(x); if (!B && x === "class") { B = z.className } u.setAttribute(x, B) } }); for (r = 0; r < z.childNodes.length; r++) { u.appendChild(z.childNodes[r].cloneNode(true)) } z.swapNode(u) } } } } } else { v.innerHTML = p } return p }) }, processHTML: function (r) { var p = this, q = p.settings, v = []; if (!q.process_html) { return r } if (d) { r = r.replace(/&apos;/g, "&#39;"); r = r.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\"\']?(false|0)[\"\']?/gi, "") } r = m._replace(/<a( )([^>]+)\/>|<a\/>/gi, "<a$1$2></a>", r); if (q.keep_values) { if (/<script|noscript|style/i.test(r)) { function o(t) { t = t.replace(/(<!--\[CDATA\[|\]\]-->)/g, "\n"); t = t.replace(/^[\r\n]*|[\r\n]*$/g, ""); t = t.replace(/^\s*(\/\/\s*<!--|\/\/\s*<!\[CDATA\[|<!--|<!\[CDATA\[)[\r\n]*/g, ""); t = t.replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->|\]\]-->)\s*$/g, ""); return t } r = r.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/gi, function (s, x, t) { if (!x) { x = ' type="text/javascript"' } x = x.replace(/stevesrc=\"([^\"]+)\"?/i, function (y, z) { if (q.url_converter) { z = p.encode(q.url_converter.call(q.url_converter_scope || p, p.decode(z), "src", "script")) } return '_mce_src="' + z + '"' }); if (m.trim(t)) { v.push(o(t)); t = "<!--\nMCE_SCRIPT:" + (v.length - 1) + "\n// -->" } return "<mce:script" + x + ">" + t + "</mce:script>" }); r = r.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/gi, function (s, x, t) { if (t) { v.push(o(t)); t = "<!--\nMCE_SCRIPT:" + (v.length - 1) + "\n-->" } return "<mce:style" + x + ">" + t + "</mce:style><style " + x + ' _mce_bogus="1">' + t + "</style>" }); r = r.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g, function (s, x, t) { return "<mce:noscript" + x + "><!--" + p.encode(t).replace(/--/g, "&#45;&#45;") + "--></mce:noscript>" }) } r = m._replace(/<!\[CDATA\[([\s\S]+)\]\]>/g, "<!--[CDATA[$1]]-->", r); function u(s) { return s.replace(h, function (y, z, x, t) { return "<" + z + x.replace(l, function (B, A, E, D, C) { var F; A = A.toLowerCase(); E = E || D || C || ""; if (e[A]) { if (E === "false" || E === "0") { return } return A + '="' + A + '"' } if (f[A] && x.indexOf("_mce_" + A) == -1) { F = p.decode(E); if (q.url_converter && (A == "src" || A == "href")) { F = q.url_converter.call(q.url_converter_scope || p, F, A, z) } if (A == "style") { F = p.serializeStyle(p.parseStyle(F), A) } return A + '="' + E + '" _mce_' + A + '="' + p.encode(F) + '"' } return B }) + t + ">" }) } r = u(r); r = r.replace(/MCE_SCRIPT:([0-9]+)/g, function (t, s) { return v[s] }) } return r }, getOuterHTML: function (o) { var p; o = this.get(o); if (!o) { return null } if (o.outerHTML !== undefined) { return o.outerHTML } p = (o.ownerDocument || this.doc).createElement("body"); p.appendChild(o.cloneNode(true)); return p.innerHTML }, setOuterHTML: function (r, p, s) { var o = this; function q(u, t, x) { var y, v; v = x.createElement("body"); v.innerHTML = t; y = v.lastChild; while (y) { o.insertAfter(y.cloneNode(true), u); y = y.previousSibling } o.remove(u) } return this.run(r, function (u) { u = o.get(u); if (u.nodeType == 1) { s = s || u.ownerDocument || o.doc; if (d) { try { if (d && u.nodeType == 1) { u.outerHTML = p } else { q(u, p, s) } } catch (t) { q(u, p, s) } } else { q(u, p, s) } } }) }, decode: function (p) { var q, r, o; if (/&[\w#]+;/.test(p)) { q = this.doc.createElement("div"); q.innerHTML = p; r = q.firstChild; o = ""; if (r) { do { o += r.nodeValue } while (r = r.nextSibling) } return o || p } return p }, encode: function (o) { return ("" + o).replace(n, function (p) { return c[p] }) }, insertAfter: function (o, p) { p = this.get(p); return this.run(o, function (r) { var q, s; q = p.parentNode; s = p.nextSibling; if (s) { q.insertBefore(r, s) } else { q.appendChild(r) } return r }) }, isBlock: function (o) { if (o.nodeType && o.nodeType !== 1) { return false } o = o.nodeName || o; return a.test(o) }, replace: function (s, r, p) { var q = this; if (j(r, "array")) { s = s.cloneNode(true) } return q.run(r, function (t) { if (p) { k(m.grep(t.childNodes), function (o) { s.appendChild(o) }) } return t.parentNode.replaceChild(s, t) }) }, rename: function (r, o) { var q = this, p; if (r.nodeName != o.toUpperCase()) { p = q.create(o); k(q.getAttribs(r), function (s) { q.setAttrib(p, s.nodeName, q.getAttrib(r, s.nodeName)) }); q.replace(p, r, 1) } return p || r }, findCommonAncestor: function (q, o) { var r = q, p; while (r) { p = o; while (p && r != p) { p = p.parentNode } if (r == p) { break } r = r.parentNode } if (!r && q.ownerDocument) { return q.ownerDocument.documentElement } return r }, toHex: function (o) { var q = /^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(o); function p(r) { r = parseInt(r).toString(16); return r.length > 1 ? r : "0" + r } if (q) { o = "#" + p(q[1]) + p(q[2]) + p(q[3]); return o } return o }, getClasses: function () { var s = this, o = [], r, u = {}, v = s.settings.class_filter, q; if (s.classes) { return s.classes } function x(t) { k(t.imports, function (y) { x(y) }); k(t.cssRules || t.rules, function (y) { switch (y.type || 1) { case 1: if (y.selectorText) { k(y.selectorText.split(","), function (z) { z = z.replace(/^\s*|\s*$|^\s\./g, ""); if (/\.mce/.test(z) || !/\.[\w\-]+$/.test(z)) { return } q = z; z = m._replace(/.*\.([a-z0-9_\-]+).*/i, "$1", z); if (v && !(z = v(z, q))) { return } if (!u[z]) { o.push({ "class": z }); u[z] = 1 } }) } break; case 3: x(y.styleSheet); break } }) } try { k(s.doc.styleSheets, x) } catch (p) { } if (o.length > 0) { s.classes = o } return o }, run: function (u, r, q) { var p = this, v; if (p.doc && typeof (u) === "string") { u = p.get(u) } if (!u) { return false } q = q || this; if (!u.nodeType && (u.length || u.length === 0)) { v = []; k(u, function (s, o) { if (s) { if (typeof (s) == "string") { s = p.doc.getElementById(s) } v.push(r.call(q, s, o)) } }); return v } return r.call(q, u) }, getAttribs: function (q) { var p; q = this.get(q); if (!q) { return [] } if (d) { p = []; if (q.nodeName == "OBJECT") { return q.attributes } if (q.nodeName === "OPTION" && this.getAttrib(q, "selected")) { p.push({ specified: 1, nodeName: "selected" }) } q.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi, "").replace(/[\w:\-]+/gi, function (o) { p.push({ specified: 1, nodeName: o }) }); return p } return q.attributes }, destroy: function (p) { var o = this; if (o.events) { o.events.destroy() } o.win = o.doc = o.root = o.events = null; if (!p) { m.removeUnload(o.destroy) } }, createRng: function () { var o = this.doc; return o.createRange ? o.createRange() : new m.dom.Range(this) }, nodeIndex: function (s, t) { var o = 0, q, r, p; if (s) { for (q = s.nodeType, s = s.previousSibling, r = s; s; s = s.previousSibling) { p = s.nodeType; if (t && p == 3) { if (p == q || !s.nodeValue.length) { continue } } o++; q = p } } return o }, split: function (u, s, y) { var z = this, o = z.createRng(), v, q, x; function p(A) { var t, r = A.childNodes; if (A.nodeType == 1 && A.getAttribute("_mce_type") == "bookmark") { return } for (t = r.length - 1; t >= 0; t--) { p(r[t]) } if (A.nodeType != 9) { if (A.nodeType == 3 && A.nodeValue.length > 0) { if (!z.isBlock(A.parentNode) || m.trim(A.nodeValue).length > 0) { return } } if (A.nodeType == 1) { r = A.childNodes; if (r.length == 1 && r[0] && r[0].nodeType == 1 && r[0].getAttribute("_mce_type") == "bookmark") { A.parentNode.insertBefore(r[0], A) } if (r.length || /^(br|hr|input|img)$/i.test(A.nodeName)) { return } } z.remove(A) } return A } if (u && s) { o.setStart(u.parentNode, z.nodeIndex(u)); o.setEnd(s.parentNode, z.nodeIndex(s)); v = o.extractContents(); o = z.createRng(); o.setStart(s.parentNode, z.nodeIndex(s) + 1); o.setEnd(u.parentNode, z.nodeIndex(u) + 1); q = o.extractContents(); x = u.parentNode; x.insertBefore(p(v), u); if (y) { x.replaceChild(y, s) } else { x.insertBefore(s, u) } x.insertBefore(p(q), u); z.remove(u); return y || s } }, bind: function (s, o, r, q) { var p = this; if (!p.events) { p.events = new m.dom.EventUtils() } return p.events.add(s, o, r, q || this) }, unbind: function (r, o, q) { var p = this; if (!p.events) { p.events = new m.dom.EventUtils() } return p.events.remove(r, o, q) }, _findSib: function (r, o, p) { var q = this, s = o; if (r) { if (j(s, "string")) { s = function (t) { return q.is(t, o) } } for (r = r[p]; r; r = r[p]) { if (s(r)) { return r } } } return null }, _isRes: function (o) { return /^(top|left|bottom|right|width|height)/i.test(o) || /;\s*(top|left|bottom|right|width|height)/i.test(o) } }); m.DOM = new m.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(W, X) { var Z = N[h], Y = N[U], V = N[P], t = N[z]; if (W === 0) { return G(Z, Y, Z, Y) } if (W === 1) { return G(Z, Y, V, t) } if (W === 2) { return G(V, t, V, t) } if (W === 3) { return G(V, t, Z, Y) } } 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 } if (n.item || !m.hasChildNodes()) { k.setStart(m.parentNode, d.nodeIndex(m)); k.setEnd(k.startContainer, k.startOffset + 1); return k } o = g.isCollapsed(); 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 = 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(); n.scrollIntoView(); return } catch (q) { } } } l(true); l(); p.select(); p.scrollIntoView() }; 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 (j, i) { var g = this, k = g.getRng(), n, l = g.win.document; i = i || { format: "html" }; i.set = true; j = i.content = g.dom.processHTML(j); g.onBeforeSetContent.dispatch(g, i); j = i.content; if (k.insertNode) { j += '<span id="__caret">_</span>'; if (k.startContainer == l && k.endContainer == l) { l.body.innerHTML = j } else { k.deleteContents(); if (l.body.childNodes.length == 0) { l.body.innerHTML = j } else { if (k.createContextualFragment) { k.insertNode(k.createContextualFragment(j)) } else { var m = l.createDocumentFragment(), f = l.createElement("div"); m.appendChild(f); f.outerHTML = j; k.insertNode(m) } } } n = g.dom.get("__caret"); k = l.createRange(); k.setStartBefore(n); k.setEndBefore(n); g.setRng(k); g.dom.remove("__caret") } else { if (k.item) { l.execCommand("Delete", false, null); k = g.getRng() } k.pasteHTML(j) } g.onSetContent.dispatch(g, i) }, 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 } } if (h && h.nodeName == "BODY") { return h.firstChild || h } 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 (q, r) { var u = this, m = u.dom, g, j, i, n, h, o, p, l = "\uFEFF", s; function f(v, x) { var t = 0; d(m.select(v), function (z, y) { if (z == x) { t = y } }); return t } if (q == 2) { function k() { var v = u.getRng(true), t = m.getRoot(), x = {}; function y(B, G) { var A = B[G ? "startContainer" : "endContainer"], F = B[G ? "startOffset" : "endOffset"], z = [], C, E, D = 0; if (A.nodeType == 3) { if (r) { for (C = A.previousSibling; C && C.nodeType == 3; C = C.previousSibling) { F += C.nodeValue.length } } z.push(F) } else { E = A.childNodes; if (F >= E.length && E.length) { D = 1; F = Math.max(0, E.length - 1) } z.push(u.dom.nodeIndex(E[F], r) + D) } for (; A && A != t; A = A.parentNode) { z.push(u.dom.nodeIndex(A, r)) } return z } x.start = y(v, true); if (!u.isCollapsed()) { x.end = y(v) } return x } return k() } if (q) { return { rng: u.getRng()} } g = u.getRng(); i = m.uniqueId(); n = tinyMCE.activeEditor.selection.isCollapsed(); s = "overflow:hidden;line-height:0px"; if (g.duplicate || g.item) { if (!g.item) { j = g.duplicate(); g.collapse(); g.pasteHTML('<span _mce_type="bookmark" id="' + i + '_start" style="' + s + '">' + l + "</span>"); if (!n) { j.collapse(false); j.pasteHTML('<span _mce_type="bookmark" id="' + i + '_end" style="' + s + '">' + l + "</span>") } } else { o = g.item(0); h = o.nodeName; return { name: h, index: f(h, o)} } } else { o = u.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", { _mce_type: "bookmark", id: i + "_end", style: s }, l)) } g.collapse(true); g.insertNode(m.create("span", { _mce_type: "bookmark", id: i + "_start", style: s }, l)) } u.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) { for (x = q, v = t.length - 1; v >= 1; v--) { u = x.childNodes; if (u.length) { x = u[t[v]] } } if (z) { f.setStart(x, t[0]) } else { f.setEnd(x, t[0]) } } } 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 (!a && l.isBlock(t) && !t.innerHTML) { t.innerHTML = '<br _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; 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 g = this, h = g.getRng(), i; if (h.item) { i = h.item(0); h = this.win.document.body.createTextRange(); h.moveToElementText(i) } h.collapse(!!f); g.setRng(h) }, 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.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 g = this, f = g.getRng(), h = g.getSel(), i; if (f.setStart) { if (!f) { return g.dom.getRoot() } i = f.commonAncestorContainer; if (!f.collapsed) { if (f.startContainer == f.endContainer) { if (f.startOffset - f.endOffset < 2) { if (f.startContainer.hasChildNodes()) { i = f.startContainer.childNodes[f.startOffset] } } } if (c.isWebKit && h.anchorNode && h.anchorNode.nodeType == 1) { return h.anchorNode.childNodes[h.anchorOffset] } } if (i && i.nodeType == 3) { return i.parentNode } return i } return f.item ? f.item(0) : f.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 m = this.dom, l = m.doc, g = l.body, i, j; l.documentElement.unselectable = true; function k(n, q) { var o = g.createTextRange(); try { o.moveToPoint(n, q) } catch (p) { o = null } return o } function h(o) { var n; if (o.button) { n = k(o.x, o.y); if (n) { if (n.compareEndPoints("StartToStart", j) > 0) { n.setEndPoint("StartToStart", j) } else { n.setEndPoint("EndToEnd", j) } n.select() } } else { f() } } function f() { m.unbind(l, "mouseup", f); m.unbind(l, "mousemove", h); i = 0 } m.bind(l, "mousedown", function (n) { if (n.target.nodeName === "HTML") { if (i) { f() } i = 1; j = k(n.x, n.y); if (j) { m.bind(l, "mouseup", f); m.bind(l, "mousemove", h); m.win.focus(); j.select() } } }) } }) })(tinymce); (function (a) { a.create("tinymce.dom.XMLWriter", { node: null, XMLWriter: function (c) { function b() { var e = document.implementation; if (!e || !e.createDocument) { try { return new ActiveXObject("MSXML2.DOMDocument") } catch (d) { } try { return new ActiveXObject("Microsoft.XmlDom") } catch (d) { } } else { return e.createDocument("", "", null) } } this.doc = b(); this.valid = a.isOpera || a.isWebKit; this.reset() }, reset: function () { var b = this, c = b.doc; if (c.firstChild) { c.removeChild(c.firstChild) } b.node = c.appendChild(c.createElement("html")) }, writeStartElement: function (c) { var b = this; b.node = b.node.appendChild(b.doc.createElement(c)) }, writeAttribute: function (c, b) { if (this.valid) { b = b.replace(/>/g, "%MCGT%") } this.node.setAttribute(c, b) }, writeEndElement: function () { this.node = this.node.parentNode }, writeFullEndElement: function () { var b = this, c = b.node; c.appendChild(b.doc.createTextNode("")); b.node = c.parentNode }, writeText: function (b) { if (this.valid) { b = b.replace(/>/g, "%MCGT%") } this.node.appendChild(this.doc.createTextNode(b)) }, writeCDATA: function (b) { this.node.appendChild(this.doc.createCDATASection(b)) }, writeComment: function (b) { if (a.isIE) { b = b.replace(/^\-|\-$/g, " ") } this.node.appendChild(this.doc.createComment(b.replace(/\-\-/g, " "))) }, getContent: function () { var b; b = this.doc.xml || new XMLSerializer().serializeToString(this.doc); b = b.replace(/<\?[^?]+\?>|<html[^>]*>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g, ""); b = b.replace(/ ?\/>/g, " />"); if (this.valid) { b = b.replace(/\%MCGT%/g, "&gt;") } return b } }) })(tinymce); (function (c) { var d = /[&\"<>]/g, b = /[<>&]/g, a = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" }; c.create("tinymce.dom.StringWriter", { str: null, tags: null, count: 0, settings: null, indent: null, StringWriter: function (e) { this.settings = c.extend({ indent_char: " ", indentation: 0 }, e); this.reset() }, reset: function () { this.indent = ""; this.str = ""; this.tags = []; this.count = 0 }, writeStartElement: function (e) { this._writeAttributesEnd(); this.writeRaw("<" + e); this.tags.push(e); this.inAttr = true; this.count++; this.elementCount = this.count; this.attrs = {} }, writeAttribute: function (g, e) { var f = this; if (!f.attrs[g]) { f.writeRaw(" " + f.encode(g, true) + '="' + f.encode(e, true) + '"'); f.attrs[g] = e } }, writeEndElement: function () { var e; if (this.tags.length > 0) { e = this.tags.pop(); if (this._writeAttributesEnd(1)) { this.writeRaw("</" + e + ">") } if (this.settings.indentation > 0) { this.writeRaw("\n") } } }, writeFullEndElement: function () { if (this.tags.length > 0) { this._writeAttributesEnd(); this.writeRaw("</" + this.tags.pop() + ">"); if (this.settings.indentation > 0) { this.writeRaw("\n") } } }, writeText: function (e) { this._writeAttributesEnd(); this.writeRaw(this.encode(e)); this.count++ }, writeCDATA: function (e) { this._writeAttributesEnd(); this.writeRaw("<![CDATA[" + e + "]]>"); this.count++ }, writeComment: function (e) { this._writeAttributesEnd(); this.writeRaw("<!--" + e + "-->"); this.count++ }, writeRaw: function (e) { this.str += e }, encode: function (f, e) { return f.replace(e ? d : b, function (g) { return a[g] }) }, getContent: function () { return this.str }, _writeAttributesEnd: function (e) { if (!this.inAttr) { return } this.inAttr = false; if (e && this.elementCount == this.count) { this.writeRaw(" />"); return false } this.writeRaw(">"); return true } }) })(tinymce); (function (e) { var g = e.extend, f = e.each, b = e.util.Dispatcher, d = e.isIE, a = e.isGecko; function c(h) { return h.replace(/([?+*])/g, ".$1") } e.create("tinymce.dom.Serializer", { Serializer: function (j) { var i = this; i.key = 0; i.onPreProcess = new b(i); i.onPostProcess = new b(i); try { i.writer = new e.dom.XMLWriter() } catch (h) { i.writer = new e.dom.StringWriter() } if (e.isIE && document.documentMode > 8) { i.writer = new e.dom.StringWriter() } i.settings = j = g({ dom: e.DOM, valid_nodes: 0, node_filter: 0, attr_filter: 0, invalid_attrs: /^(_mce_|_moz_|sizset|sizcache)/, closed: /^(br|hr|input|meta|img|link|param|area)$/, entity_encoding: "named", entities: "160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro", valid_elements: "*[*]", extended_valid_elements: 0, invalid_elements: 0, fix_table_elements: 1, fix_list_elements: true, fix_content_duplication: true, convert_fonts_to_spans: false, font_size_classes: 0, apply_source_formatting: 0, indent_mode: "simple", indent_char: "\t", indent_levels: 1, remove_linebreaks: 1, remove_redundant_brs: 1, element_format: "xhtml" }, j); i.dom = j.dom; i.schema = j.schema; if (j.entity_encoding == "named" && !j.entities) { j.entity_encoding = "raw" } if (j.remove_redundant_brs) { i.onPostProcess.add(function (k, l) { l.content = l.content.replace(/(<br \/>\s*)+<\/(p|h[1-6]|div|li)>/gi, function (n, m, o) { if (/^<br \/>\s*<\//.test(n)) { return "</" + o + ">" } return n }) }) } if (j.element_format == "html") { i.onPostProcess.add(function (k, l) { l.content = l.content.replace(/<([^>]+) \/>/g, "<$1>") }) } if (j.fix_list_elements) { i.onPreProcess.add(function (v, s) { var l, z, y = ["ol", "ul"], u, t, q, k = /^(OL|UL)$/, A; function m(r, x) { var o = x.split(","), p; while ((r = r.previousSibling) != null) { for (p = 0; p < o.length; p++) { if (r.nodeName == o[p]) { return r } } } return null } for (z = 0; z < y.length; z++) { l = i.dom.select(y[z], s.node); for (u = 0; u < l.length; u++) { t = l[u]; q = t.parentNode; if (k.test(q.nodeName)) { A = m(t, "LI"); if (!A) { A = i.dom.create("li"); A.innerHTML = "&nbsp;"; A.appendChild(t); q.insertBefore(A, q.firstChild) } else { A.appendChild(t) } } } } }) } if (j.fix_table_elements) { i.onPreProcess.add(function (k, l) { if (!e.isOpera || opera.buildNumber() >= 1767) { f(i.dom.select("p table", l.node).reverse(), function (p) { var o = i.dom.getParent(p.parentNode, "table,p"); if (o.nodeName != "TABLE") { try { i.dom.split(o, p) } catch (m) { } } }) } }) } }, setEntities: function (o) { var n = this, j, m, h = {}, k; if (n.entityLookup) { return } j = o.split(","); for (m = 0; m < j.length; m += 2) { k = j[m]; if (k == 34 || k == 38 || k == 60 || k == 62) { continue } h[String.fromCharCode(j[m])] = j[m + 1]; k = parseInt(j[m]).toString(16) } n.entityLookup = h }, setRules: function (i) { var h = this; h._setup(); h.rules = {}; h.wildRules = []; h.validElements = {}; return h.addRules(i) }, addRules: function (i) { var h = this, j; if (!i) { return } h._setup(); f(i.split(","), function (m) { var q = m.split(/\[|\]/), l = q[0].split("/"), r, k, o, n = []; if (j) { k = e.extend([], j.attribs) } if (q.length > 1) { f(q[1].split("|"), function (u) { var p = {}, t; k = k || []; u = u.replace(/::/g, "~"); u = /^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(u); u[2] = u[2].replace(/~/g, ":"); if (u[1] == "!") { r = r || []; r.push(u[2]) } if (u[1] == "-") { for (t = 0; t < k.length; t++) { if (k[t].name == u[2]) { k.splice(t, 1); return } } } switch (u[3]) { case "=": p.defaultVal = u[4] || ""; break; case ":": p.forcedVal = u[4]; break; case "<": p.validVals = u[4].split("?"); break } if (/[*.?]/.test(u[2])) { o = o || []; p.nameRE = new RegExp("^" + c(u[2]) + "$"); o.push(p) } else { p.name = u[2]; k.push(p) } n.push(u[2]) }) } f(l, function (v, u) { var y = v.charAt(0), t = 1, p = {}; if (j) { if (j.noEmpty) { p.noEmpty = j.noEmpty } if (j.fullEnd) { p.fullEnd = j.fullEnd } if (j.padd) { p.padd = j.padd } } switch (y) { case "-": p.noEmpty = true; break; case "+": p.fullEnd = true; break; case "#": p.padd = true; break; default: t = 0 } l[u] = v = v.substring(t); h.validElements[v] = 1; if (/[*.?]/.test(l[0])) { p.nameRE = new RegExp("^" + c(l[0]) + "$"); h.wildRules = h.wildRules || {}; h.wildRules.push(p) } else { p.name = l[0]; if (l[0] == "@") { j = p } h.rules[v] = p } p.attribs = k; if (r) { p.requiredAttribs = r } if (o) { v = ""; f(n, function (s) { if (v) { v += "|" } v += "(" + c(s) + ")" }); p.validAttribsRE = new RegExp("^" + v.toLowerCase() + "$"); p.wildAttribs = o } }) }); i = ""; f(h.validElements, function (m, l) { if (i) { i += "|" } if (l != "@") { i += l } }); h.validElementsRE = new RegExp("^(" + c(i.toLowerCase()) + ")$") }, findRule: function (m) { var j = this, l = j.rules, h, k; j._setup(); k = l[m]; if (k) { return k } l = j.wildRules; for (h = 0; h < l.length; h++) { if (l[h].nameRE.test(m)) { return l[h] } } return null }, findAttribRule: function (h, l) { var j, k = h.wildAttribs; for (j = 0; j < k.length; j++) { if (k[j].nameRE.test(l)) { return k[j] } } return null }, serialize: function (r, q) { var m, k = this, p, i, j, l; k._setup(); q = q || {}; q.format = q.format || "html"; k.processObj = q; if (d) { l = []; f(r.getElementsByTagName("option"), function (o) { var h = k.dom.getAttrib(o, "selected"); l.push(h ? h : null) }) } r = r.cloneNode(true); if (d) { f(r.getElementsByTagName("option"), function (o, h) { k.dom.setAttrib(o, "selected", l[h]) }) } j = r.ownerDocument.implementation; if (j.createHTMLDocument && (e.isOpera && opera.buildNumber() >= 1767)) { p = j.createHTMLDocument(""); f(r.nodeName == "BODY" ? r.childNodes : [r], function (h) { p.body.appendChild(p.importNode(h, true)) }); if (r.nodeName != "BODY") { r = p.body.firstChild } else { r = p.body } i = k.dom.doc; k.dom.doc = p } k.key = "" + (parseInt(k.key) + 1); if (!q.no_events) { q.node = r; k.onPreProcess.dispatch(k, q) } k.writer.reset(); k._info = q; k._serializeNode(r, q.getInner); q.content = k.writer.getContent(); if (i) { k.dom.doc = i } if (!q.no_events) { k.onPostProcess.dispatch(k, q) } k._postProcess(q); q.node = null; return e.trim(q.content) }, _postProcess: function (n) { var i = this, k = i.settings, j = n.content, m = [], l; if (n.format == "html") { l = i._protect({ content: j, patterns: [{ pattern: /(<script[^>]*>)(.*?)(<\/script>)/g }, { pattern: /(<noscript[^>]*>)(.*?)(<\/noscript>)/g }, { pattern: /(<style[^>]*>)(.*?)(<\/style>)/g }, { pattern: /(<pre[^>]*>)(.*?)(<\/pre>)/g, encode: 1 }, { pattern: /(<!--\[CDATA\[)(.*?)(\]\]-->)/g}] }); j = l.content; if (k.entity_encoding !== "raw") { j = i._encode(j) } if (!n.set) { j = e._replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g, k.entity_encoding == "numeric" ? "<p$1>&#160;</p>" : "<p$1>&nbsp;</p>", j); if (k.remove_linebreaks) { j = j.replace(/\r?\n|\r/g, " "); j = e._replace(/(<[^>]+>)\s+/g, "$1 ", j); j = e._replace(/\s+(<\/[^>]+>)/g, " $1", j); j = e._replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g, "<$1 $2>", j); j = e._replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g, "<$1>", j); j = e._replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g, "</$1>", j) } if (k.apply_source_formatting && k.indent_mode == "simple") { j = e._replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g, "\n<$1$2$3>\n", j); j = e._replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g, "\n<$1$2>", j); j = e._replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g, "</$1>\n", j); j = j.replace(/\n\n/g, "\n") } } j = i._unprotect(j, l); j = e._replace(/<!--\[CDATA\[([\s\S]+)\]\]-->/g, "<![CDATA[$1]]>", j); if (k.entity_encoding == "raw") { j = e._replace(/<p>&nbsp;<\/p>|<p([^>]+)>&nbsp;<\/p>/g, "<p$1>\u00a0</p>", j) } j = j.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g, function (h, p, o) { return "<noscript" + p + ">" + i.dom.decode(o.replace(/<!--|-->/g, "")) + "</noscript>" }) } n.content = j }, _serializeNode: function (E, J) { var A = this, B = A.settings, y = A.writer, q, j, u, G, F, I, C, h, z, k, r, D, p, m, H, o, x; if (!B.node_filter || B.node_filter(E)) { switch (E.nodeType) { case 1: if (E.hasAttribute ? E.hasAttribute("_mce_bogus") : E.getAttribute("_mce_bogus")) { return } p = H = false; q = E.hasChildNodes(); k = E.getAttribute("_mce_name") || E.nodeName.toLowerCase(); o = E.getAttribute("_mce_type"); if (o) { if (!A._info.cleanup) { p = true; return } else { H = 1 } } if (d) { x = E.scopeName; if (x && x !== "HTML" && x !== "html") { k = x + ":" + k } } if (k.indexOf("mce:") === 0) { k = k.substring(4) } if (!H) { if (!A.validElementsRE || !A.validElementsRE.test(k) || (A.invalidElementsRE && A.invalidElementsRE.test(k)) || J) { p = true; break } } if (d) { if (B.fix_content_duplication) { if (E._mce_serialized == A.key) { return } E._mce_serialized = A.key } if (k.charAt(0) == "/") { k = k.substring(1) } } else { if (a) { if (E.nodeName === "BR" && E.getAttribute("type") == "_moz") { return } } } if (B.validate_children) { if (A.elementName && !A.schema.isValid(A.elementName, k)) { p = true; break } A.elementName = k } r = A.findRule(k); if (!r) { p = true; break } k = r.name || k; m = B.closed.test(k); if ((!q && r.noEmpty) || (d && !k)) { p = true; break } if (r.requiredAttribs) { I = r.requiredAttribs; for (G = I.length - 1; G >= 0; G--) { if (this.dom.getAttrib(E, I[G]) !== "") { break } } if (G == -1) { p = true; break } } y.writeStartElement(k); if (r.attribs) { for (G = 0, C = r.attribs, F = C.length; G < F; G++) { I = C[G]; z = A._getAttrib(E, I); if (z !== null) { y.writeAttribute(I.name, z) } } } if (r.validAttribsRE) { C = A.dom.getAttribs(E); for (G = C.length - 1; G > -1; G--) { h = C[G]; if (h.specified) { I = h.nodeName.toLowerCase(); if (B.invalid_attrs.test(I) || !r.validAttribsRE.test(I)) { continue } D = A.findAttribRule(r, I); z = A._getAttrib(E, D, I); if (z !== null) { y.writeAttribute(I, z) } } } } if (o && H) { y.writeAttribute("_mce_type", o) } if (k === "script" && e.trim(E.innerHTML)) { y.writeText("// "); y.writeCDATA(E.innerHTML.replace(/<!--|-->|<\[CDATA\[|\]\]>/g, "")); q = false; break } if (r.padd) { if (q && (u = E.firstChild) && u.nodeType === 1 && E.childNodes.length === 1) { if (u.hasAttribute ? u.hasAttribute("_mce_bogus") : u.getAttribute("_mce_bogus")) { y.writeText("\u00a0") } } else { if (!q) { y.writeText("\u00a0") } } } break; case 3: if (B.validate_children && A.elementName && !A.schema.isValid(A.elementName, "#text")) { return } return y.writeText(E.nodeValue); case 4: return y.writeCDATA(E.nodeValue); case 8: return y.writeComment(E.nodeValue) } } else { if (E.nodeType == 1) { q = E.hasChildNodes() } } if (q && !m) { u = E.firstChild; while (u) { A._serializeNode(u); A.elementName = k; u = u.nextSibling } } if (!p) { if (!m) { y.writeFullEndElement() } else { y.writeEndElement() } } }, _protect: function (j) { var i = this; j.items = j.items || []; function h(l) { return l.replace(/[\r\n\\]/g, function (m) { if (m === "\n") { return "\\n" } else { if (m === "\\") { return "\\\\" } } return "\\r" }) } function k(l) { return l.replace(/\\[\\rn]/g, function (m) { if (m === "\\n") { return "\n" } else { if (m === "\\\\") { return "\\" } } return "\r" }) } f(j.patterns, function (l) { j.content = k(h(j.content).replace(l.pattern, function (n, o, m, p) { m = k(m); if (l.encode) { m = i._encode(m) } j.items.push(m); return o + "<!--mce:" + (j.items.length - 1) + "-->" + p })) }); return j }, _unprotect: function (i, j) { i = i.replace(/\<!--mce:([0-9]+)--\>/g, function (k, h) { return j.items[parseInt(h)] }); j.items = []; return i }, _encode: function (m) { var j = this, k = j.settings, i; if (k.entity_encoding !== "raw") { if (k.entity_encoding.indexOf("named") != -1) { j.setEntities(k.entities); i = j.entityLookup; m = m.replace(/[\u007E-\uFFFF]/g, function (h) { var l; if (l = i[h]) { h = "&" + l + ";" } return h }) } if (k.entity_encoding.indexOf("numeric") != -1) { m = m.replace(/[\u007E-\uFFFF]/g, function (h) { return "&#" + h.charCodeAt(0) + ";" }) } } return m }, _setup: function () { var h = this, i = this.settings; if (h.done) { return } h.done = 1; h.setRules(i.valid_elements); h.addRules(i.extended_valid_elements); if (i.invalid_elements) { h.invalidElementsRE = new RegExp("^(" + c(i.invalid_elements.replace(/,/g, "|").toLowerCase()) + ")$") } if (i.attrib_value_filter) { h.attribValueFilter = i.attribValueFilter } }, _getAttrib: function (m, j, h) { var l, k; h = h || j.name; if (j.forcedVal && (k = j.forcedVal)) { if (k === "{$uid}") { return this.dom.uniqueId() } return k } k = this.dom.getAttrib(m, h); switch (h) { case "rowspan": case "colspan": if (k == "1") { k = "" } break } if (this.attribValueFilter) { k = this.attribValueFilter(h, k, m) } if (j.validVals) { for (l = j.validVals.length - 1; l >= 0; l--) { if (k == j.validVals[l]) { break } } if (l == -1) { return null } } if (k === "" && typeof (j.defaultVal) != "undefined") { k = j.defaultVal; if (k === "{$uid}") { return this.dom.uniqueId() } return k } else { if (h == "class" && this.processObj.get) { k = k.replace(/\s?mceItem\w+\s?/g, "") } } if (k === "") { return null } return k } }) })(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, u) { var v = this, q = a.DOM, s, o, r, n; function p() { q.remove(n); if (s) { s.onreadystatechange = s.onload = s = null } u() } 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) { a.util.XHR.send({ url: a._addVer(o.getURI()), success: function (x) { var t = q.create("script", { type: "text/javascript" }); t.text = x; document.getElementsByTagName("head")[0].appendChild(t); q.remove(t); p() } }); return } } s = q.create("script", { id: n, type: "text/javascript", src: a._addVer(m) }); if (!a.isIE) { s.onload = p } 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", "lastSibling", e)) } }; (function () { var a = {}; function b(f, e) { var d; function c(g) { return g.replace(/[A-Z]+/g, function (h) { return c(f[h]) }) } for (d in f) { if (f.hasOwnProperty(d)) { f[d] = c(f[d]) } } c(e).replace(/#/g, "#text").replace(/(\w+)\[([^\]]+)\]/g, function (l, g, j) { var h, k = {}; j = j.split(/\|/); for (h = j.length - 1; h >= 0; h--) { k[j[h]] = 1 } a[g] = k }) } b({ Z: "#|H|K|N|O|P", Y: "#|X|form|R|Q", X: "p|T|div|U|W|isindex|fieldset|table", W: "pre|hr|blockquote|address|center|noframes", 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" }, "script[]style[]object[#|param|X|form|a|H|K|N|O|Q]param[]p[S]a[Z]br[]span[S]bdo[S]applet[#|param|X|form|a|H|K|N|O|Q]h1[S]img[]map[X|form|Q|area]h2[S]iframe[#|X|form|a|H|K|N|O|Q]h3[S]tt[S]i[S]b[S]u[S]s[S]strike[S]big[S]small[S]font[S]basefont[]em[S]strong[S]dfn[S]code[S]q[S]samp[S]kbd[S]var[S]cite[S]abbr[S]acronym[S]sub[S]sup[S]input[]select[optgroup|option]optgroup[option]option[]textarea[]label[S]button[#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[S]ins[#|X|form|a|H|K|N|O|Q]h5[S]del[#|X|form|a|H|K|N|O|Q]h6[S]div[#|X|form|a|H|K|N|O|Q]ul[li]li[#|X|form|a|H|K|N|O|Q]ol[li]dl[dt|dd]dt[S]dd[#|X|form|a|H|K|N|O|Q]menu[li]dir[li]pre[ZA]hr[]blockquote[#|X|form|a|H|K|N|O|Q]address[S|p]center[#|X|form|a|H|K|N|O|Q]noframes[#|X|form|a|H|K|N|O|Q]isindex[]fieldset[#|legend|X|form|a|H|K|N|O|Q]legend[S]table[caption|col|colgroup|thead|tfoot|tbody|tr]caption[S]col[]colgroup[col]thead[tr]tr[th|td]th[#|X|form|a|H|K|N|O|Q]form[#|X|a|H|K|N|O|Q]noscript[#|X|form|a|H|K|N|O|Q]td[#|X|form|a|H|K|N|O|Q]tfoot[tr]tbody[tr]area[]base[]body[#|X|form|a|H|K|N|O|Q]"); tinymce.dom.Schema = function () { var c = this, d = a; c.isValid = function (f, e) { var g = d[f]; return !!(g && (!e || g[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(k == l ? l : 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 (c) { var b = c.DOM, a = c.is; c.create("tinymce.ui.Control", { Control: function (e, d) { this.id = e; this.settings = d = d || {}; this.rendered = false; this.onRender = new c.util.Dispatcher(this); this.classPrefix = ""; this.scope = d.scope || this; this.disabled = 0; this.active = 0 }, setDisabled: function (d) { var f; if (d != this.disabled) { f = b.get(this.id); if (f && this.settings.unavailable_prefix) { if (d) { this.prevTitle = f.title; f.title = this.settings.unavailable_prefix + ": " + f.title } else { f.title = this.prevTitle } } 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 } }, 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 (b, a) { this.parent(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" }, renderHTML: function () { return tinymce.DOM.createHTML("span", { "class": this.classPrefix }) } }); (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.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; g = new e.ui.DropMenu(j.id || c.uniqueId(), j); g.onAddItem.add(h.onAddItem.dispatch, h.onAddItem); return g }, 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") } } }) } z.onShowMenu.dispatch(z); if (A.keyboard_focus) { a.add(o, "keydown", z._keyHandler, z); c.select("a", "menu_" + z.id)[0].focus(); z._focusIdx = 0 } }, hideMenu: function (j) { var g = this, i = c.get("menu_" + g.id), h; if (!g.isMenuVisible) { return } 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); a.remove(h, "mouseover", g.mouseOverFunc); a.remove(h, "click", g.mouseClickFunc); 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", { id: "menu_" + i.id, "class": j["class"], style: "position:absolute;left:0;top:0;z-index:200000" }); k = c.add(g, "div", { 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", { 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 }, _keyHandler: function (j) { var i = this, h = j.keyCode; function g(m) { var k = i._focusIdx + m, l = c.select("a", "menu_" + i.id)[k]; if (l) { i._focusIdx = k; l.focus() } } switch (h) { case 38: g(-1); return; case 40: g(1); return; case 13: return; case 27: return this.hideMenu() } }, _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, "td"); i = p = c.add(i, "a", { href: "javascript:;", onclick: "return false;", onmousedown: "return false;" }); 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 (d, c) { this.parent(d, c); this.classPrefix = "mceButton" }, renderHTML: function () { var f = this.classPrefix, e = this.settings, d, c; c = a.encode(e.label || ""); d = '<a id="' + this.id + '" href="javascript:;" class="' + f + " " + f + "Enabled " + e["class"] + (c ? " " + f + "Labeled" : "") + '" onmousedown="return false;" onclick="return false;" title="' + a.encode(e.title) + '">'; if (e.image) { d += '<img class="mceIcon" src="' + e.image + '" />' + c + "</a>" } else { d += '<span class="mceIcon ' + e["class"] + '"></span>' + (c ? '<span class="' + f + 'Label">' + c + "</span>" : "") + "</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 (h, g) { var f = this; f.parent(h, g); f.items = []; f.onChange = new a(f); f.onPostRender = new a(f); f.onAdd = new a(f); f.onRenderMenu = new d.util.Dispatcher(this); f.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") } else { c.setHTML(h, c.encode(g.settings.title)); c.addClass(h, "mceTitle"); g.selectedValue = g.selectedIndex = null } 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 = '<table id="' + f.id + '" cellpadding="0" cellspacing="0" class="' + j + " " + j + "Enabled" + (g["class"] ? (" " + g["class"]) : "") + '"><tbody><tr>'; i += "<td>" + c.createHTML("a", { id: f.id + "_text", 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>") + "</td>"; i += "</tr></tbody></table>"; 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) { 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(g.hideMenu, g); 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 + "_text", "focus", function () { if (!f._focused) { f.keyDownHandler = b.add(f.id + "_text", "keydown", function (k) { var h = -1, i, j = k.keyCode; e(f.items, function (l, m) { if (f.selectedValue == l.value) { h = m } }); if (j == 38) { i = f.items[h - 1] } else { if (j == 40) { i = f.items[h + 1] } else { if (j == 13) { i = f.selectedValue; f.selectedValue = null; f.settings.onselect(i); return b.cancel(k) } } } if (i) { f.hideMenu(); f.select(i.value) } }) } f._focused = 1 }); b.add(f.id + "_text", "blur", function () { b.remove(f.id + "_text", "keydown", f.keyDownHandler); 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 }, 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" }, g); return g }, postRender: function () { var g = this, h; g.rendered = true; function f(j) { var i = g.items[j.target.selectedIndex - 1]; if (i && (i = i.value)) { g.onChange.dispatch(g, i); if (g.settings.onselect) { g.settings.onselect(i) } } } b.add(g.id, "change", f); b.add(g.id, "keydown", function (j) { var i; b.remove(g.id, "change", h); i = b.add(g.id, "blur", function () { b.add(g.id, "change", f); b.remove(g.id, "blur", i) }); if (j.keyCode == 13 || j.keyCode == 32) { f(j); return b.cancel(j) } }); 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 (f, e) { this.parent(f, e); this.onRenderMenu = new c.util.Dispatcher(this); e.menu_container = e.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(f.hideMenu, f); 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 (f, e) { this.parent(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, "class": "mceAction " + g["class"] }) } else { e = b.createHTML("span", { "class": "mceAction " + g["class"] }, "") } i += "<td>" + b.createHTML("a", { id: f.id + "_action", 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"] }); i += "<td>" + b.createHTML("a", { id: f.id + "_open", href: "javascript:;", "class": "mceOpen " + g["class"], onclick: "return false;", onmousedown: "return false;", title: g.title }, e) + "</td>"; i += "</tr></tbody>"; return b.createHTML("table", { id: f.id, "class": "mceSplitButton mceSplitButtonEnabled " + g["class"], cellpadding: "0", cellspacing: "0", onmousedown: "return false;", title: g.title }, i) }, postRender: function () { var e = this, f = e.settings; if (f.onclick) { a.add(e.id + "_action", "click", function () { if (!e.isDisabled()) { f.onclick(e.value) } }) } a.add(e.id + "_open", "click", e.showMenu, e); a.add(e.id + "_open", "focus", function () { e._focused = 1 }); a.add(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") } }) })(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 (h, g) { var f = this; f.parent(h, g); f.settings = g = 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" }, f.settings); f.onShowMenu = new d.util.Dispatcher(f); f.onHideMenu = new d.util.Dispatcher(f); f.value = g.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 }, renderMenu: function () { var k = this, f, j = 0, l = k.settings, p, h, o, g; g = c.add(l.menu_container, "div", { id: k.id + "_menu", "class": l.menu_class + " " + l["class"], style: "position:absolute;left:0;top:-1000px;" }); f = c.add(g, "div", { "class": l["class"] + " mceSplitButtonMenu" }); c.add(f, "span", { "class": "mceMenuLine" }); p = c.add(f, "table", { "class": "mceColorSplitMenu" }); h = c.add(p, "tbody"); j = 0; e(b(l.colors, "array") ? l.colors : l.colors.split(","), function (i) { i = i.replace(/^#/, ""); if (!j--) { o = c.add(h, "tr"); j = l.grid_width - 1 } p = c.add(o, "td"); p = c.add(p, "a", { href: "javascript:;", style: { backgroundColor: "#" + i }, _mce_color: "#" + i }) }); if (l.more_colors_func) { p = c.add(h, "tr"); p = c.add(p, "td", { colspan: l.grid_width, "class": "mceMoreColors" }); p = c.add(p, "a", { id: k.id + "_more", href: "javascript:;", onclick: "return false;", "class": "mceMoreColors" }, l.more_colors_title); a.add(p, "click", function (i) { l.more_colors_func.call(l.more_colors_scope || this); return a.cancel(i) }) } c.addClass(f, "mceColorSplitMenu"); a.add(k.id + "_menu", "click", function (i) { var m; i = i.target; if (i.nodeName == "A" && (m = i.getAttribute("_mce_color"))) { k.setColor(m) } return a.cancel(i) }); return g }, setColor: function (g) { var f = this; c.setStyle(f.id + "_preview", "backgroundColor", g); f.value = g; f.hideMenu(); f.settings.onselect(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); tinymce.create("tinymce.ui.Toolbar:tinymce.ui.Container", { renderHTML: function () { var l = this, e = "", g, j, b = tinymce.DOM, m = l.settings, d, a, f, k; k = l.controls; for (d = 0; d < k.length; d++) { j = k[d]; a = k[d - 1]; f = k[d + 1]; if (d === 0) { g = "mceToolbarStart"; if (j.Button) { g += " mceToolbarStartButton" } else { if (j.SplitButton) { g += " mceToolbarStartSplitButton" } else { if (j.ListBox) { g += " mceToolbarStartListBox" } } } e += b.createHTML("td", { "class": g }, b.createHTML("span", null, "<!-- IE -->")) } if (a && j.ListBox) { if (a.Button || a.SplitButton) { e += b.createHTML("td", { "class": "mceToolbarEnd" }, b.createHTML("span", null, "<!-- IE -->")) } } if (b.stdMode) { e += '<td style="position: relative">' + j.renderHTML() + "</td>" } else { e += "<td>" + j.renderHTML() + "</td>" } if (f && j.ListBox) { if (f.Button || f.SplitButton) { e += b.createHTML("td", { "class": "mceToolbarStart" }, b.createHTML("span", null, "<!-- IE -->")) } } } g = "mceToolbarEnd"; if (j.Button) { g += " mceToolbarEndButton" } else { if (j.SplitButton) { g += " mceToolbarEndSplitButton" } else { if (j.ListBox) { g += " mceToolbarEndListBox" } } } e += b.createHTML("td", { "class": g }, b.createHTML("span", null, "<!-- IE -->")); return b.createHTML("table", { id: l.id, "class": "mceToolbar" + (m["class"] ? " " + m["class"] : ""), cellpadding: "0", cellspacing: "0", align: l.settings.align || "" }, "<tbody><tr>" + e + "</tr></tbody>") } }); (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) { 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", valid_elements: "@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p,-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big", 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 }, q); p.documentBaseURI = new m.util.URI(q.document_base_url || m.documentBaseURL, { base_uri: tinyMCE.baseURI }); p.baseURI = m.baseURI; 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) { 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, E = this, F = E.settings, B, y, A = E.getElement(), q, p, C, x, z, D; m.add(E); if (F.theme) { F.theme = F.theme.replace(/-/, ""); q = h.get(F.theme); E.theme = new q(); if (E.theme.init && F.init_theme) { E.theme.init(E, h.urls[F.theme] || m.documentBaseURL.replace(/\/$/, "")) } } i(g(F.plugins.replace(/\-/g, "")), function (G) { var H = c.get(G), t = c.urls[G] || m.documentBaseURL.replace(/\/$/, ""), s; if (H) { s = new H(E, t); E.plugins[G] = s; if (s.init) { s.init(E, t) } } }); if (F.popup_css !== false) { if (F.popup_css) { F.popup_css = E.documentBaseURI.toAbsolute(F.popup_css) } else { F.popup_css = E.baseURI.toAbsolute("themes/" + F.theme + "/skins/" + F.skin + "/dialog.css") } } if (F.popup_css_add) { F.popup_css += "," + E.documentBaseURI.toAbsolute(F.popup_css_add) } E.controlManager = new m.ControlManager(E); if (F.custom_undo_redo) { E.onBeforeExecCommand.add(function (t, G, u, H, s) { if (G != "Undo" && G != "Redo" && G != "mceRepaint" && (!s || !s.skip_undo)) { if (!E.undoManager.hasUndo()) { E.undoManager.add() } } }); E.onExecCommand.add(function (t, G, u, H, s) { if (G != "Undo" && G != "Redo" && G != "mceRepaint" && (!s || !s.skip_undo)) { E.undoManager.add() } }) } E.onExecCommand.add(function (s, t) { if (!/^(FontName|FontSize)$/.test(t)) { E.nodeChanged() } }); if (a) { function v(s, t) { if (!t || !t.initial) { E.execCommand("mceRepaint") } } E.onUndo.add(v); E.onRedo.add(v); E.onSetContent.add(v) } E.onBeforeRenderUI.dispatch(E, E.controlManager); if (F.render_ui) { B = F.width || A.style.width || A.offsetWidth; y = F.height || A.style.height || A.offsetHeight; E.orgDisplay = A.style.display; D = /^[0-9\.]+(|px)$/i; if (D.test("" + B)) { B = Math.max(parseInt(B) + (q.deltaWidth || 0), 100) } if (D.test("" + y)) { y = Math.max(parseInt(y) + (q.deltaHeight || 0), 100) } q = E.theme.renderUI({ targetNode: A, width: B, height: y, deltaWidth: F.delta_width, deltaHeight: F.delta_height }); E.editorContainer = q.editorContainer } if (document.domain && location.hostname != document.domain) { m.relaxedDomain = document.domain } n.setStyles(q.sizeContainer || q.editorContainer, { width: B, height: y }); y = (q.iframeHeight || y) + (typeof (y) == "number" ? (q.deltaHeight || 0) : ""); if (y < 100) { y = 100 } E.iframeHTML = F.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml">'; if (F.document_base_url != m.documentBaseURL) { E.iframeHTML += '<base href="' + E.documentBaseURI.getURI() + '" />' } E.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; if (m.relaxedDomain) { E.iframeHTML += '<script type="text/javascript">document.domain = "' + m.relaxedDomain + '";<\/script>' } x = F.body_id || "tinymce"; if (x.indexOf("=") != -1) { x = E.getParam("body_id", "", "hash"); x = x[E.id] || x } z = F.body_class || ""; if (z.indexOf("=") != -1) { z = E.getParam("body_class", "", "hash"); z = z[E.id] || "" } E.iframeHTML += '</head><body id="' + x + '" class="mceContentBody ' + z + '"></body></html>'; if (m.relaxedDomain) { if (b || (m.isOpera && parseFloat(opera.version()) >= 9.5)) { C = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.tinyMCE.get("' + E.id + '");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()' } else { if (m.isOpera) { C = 'javascript:(function(){document.open();document.domain="' + document.domain + '";document.close();ed.setupIframe();})()' } } } r = n.add(q.iframeContainer, "iframe", { id: E.id + "_ifr", src: C || 'javascript:""', frameBorder: "0", style: { width: "100%", height: y} }); E.contentAreaContainer = q.iframeContainer; n.get(q.editorContainer).style.display = E.orgDisplay; n.get(E.id).style.display = "none"; if (!b || !m.relaxedDomain) { E.setupIframe() } A = r = q = null }, setupIframe: function () { var z = this, A = z.settings, r = n.get(z.id), u = z.getDoc(), q, x; if (!b || !m.relaxedDomain) { u.open(); u.write(z.iframeHTML); u.close() } if (!b) { try { if (!A.readonly) { u.designMode = "On" } } catch (v) { } } if (b) { x = z.getBody(); n.hide(x); if (!A.readonly) { x.contentEditable = true } n.show(x) } z.dom = new m.dom.DOMUtils(z.getDoc(), { keep_values: true, url_converter: z.convertURL, url_converter_scope: z, hex_colors: A.force_hex_style_colors, class_filter: A.class_filter, update_styles: 1, fix_ie_paragraphs: 1, valid_styles: A.valid_styles }); z.schema = new m.dom.Schema(); z.serializer = new m.dom.Serializer(f(A, { valid_elements: A.verify_html === false ? "*[*]" : A.valid_elements, dom: z.dom, schema: z.schema })); z.selection = new m.dom.Selection(z.dom, z.getWin(), z.serializer); z.formatter = new m.Formatter(this); z.formatter.register({ alignleft: [{ selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li", styles: { textAlign: "left"} }, { selector: "img,table", styles: { "float": "left"}}], aligncenter: [{ selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li", styles: { textAlign: "center"} }, { selector: "img", styles: { display: "block", marginLeft: "auto", marginRight: "auto"} }, { selector: "table", 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", styles: { "float": "right"}}], alignfull: [{ selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li", styles: { textAlign: "justify"}}], bold: [{ inline: "strong" }, { inline: "span", styles: { fontWeight: "bold"} }, { inline: "b"}], italic: [{ inline: "em" }, { inline: "span", styles: { fontStyle: "italic"} }, { inline: "i"}], underline: [{ inline: "span", styles: { textDecoration: "underline" }, exact: true }, { inline: "u"}], strikethrough: [{ inline: "span", styles: { textDecoration: "line-through" }, exact: true }, { inline: "u"}], forecolor: { inline: "span", styles: { color: "%value"} }, hilitecolor: { inline: "span", styles: { backgroundColor: "%value"} }, 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" }, 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) { z.formatter.register(s, { block: s, remove: "all" }) }); z.formatter.register(z.settings.formats); z.undoManager = new m.UndoManager(z); z.undoManager.onAdd.add(function (t, s) { if (!s.initial) { return z.onChange.dispatch(z, s, t) } }); z.undoManager.onUndo.add(function (t, s) { return z.onUndo.dispatch(z, s, t) }); z.undoManager.onRedo.add(function (t, s) { return z.onRedo.dispatch(z, s, t) }); z.forceBlocks = new m.ForceBlocks(z, { forced_root_block: A.forced_root_block }); z.editorCommands = new m.EditorCommands(z); z.serializer.onPreProcess.add(function (s, t) { return z.onPreProcess.dispatch(z, t, s) }); z.serializer.onPostProcess.add(function (s, t) { return z.onPostProcess.dispatch(z, t, s) }); z.onPreInit.dispatch(z); if (!A.gecko_spellcheck) { z.getBody().spellcheck = 0 } if (!A.readonly) { z._addEvents() } z.controlManager.onPostRender.dispatch(z, z.controlManager); z.onPostRender.dispatch(z); if (A.directionality) { z.getBody().dir = A.directionality } if (A.nowrap) { z.getBody().style.whiteSpace = "nowrap" } if (A.custom_elements) { function y(s, t) { i(g(A.custom_elements), function (B) { var C; if (B.indexOf("~") === 0) { B = B.substring(1); C = "span" } else { C = "div" } t.content = t.content.replace(new RegExp("<(" + B + ")([^>]*)>", "g"), "<" + C + ' _mce_name="$1"$2>'); t.content = t.content.replace(new RegExp("</(" + B + ")>", "g"), "</" + C + ">") }) } z.onBeforeSetContent.add(y); z.onPostProcess.add(function (s, t) { if (t.set) { y(s, t) } }) } if (A.handle_node_change_callback) { z.onNodeChange.add(function (t, s, B) { z.execCallback("handle_node_change_callback", z.id, B, -1, -1, true, z.selection.isCollapsed()) }) } if (A.save_callback) { z.onSaveContent.add(function (s, B) { var t = z.execCallback("save_callback", z.id, B.content, z.getBody()); if (t) { B.content = t } }) } if (A.onchange_callback) { z.onChange.add(function (t, s) { z.execCallback("onchange_callback", z, s) }) } if (A.convert_newlines_to_brs) { z.onBeforeSetContent.add(function (s, t) { if (t.initial) { t.content = t.content.replace(/\r?\n/g, "<br />") } }) } if (A.fix_nesting && b) { z.onBeforeSetContent.add(function (s, t) { t.content = z._fixNesting(t.content) }) } if (A.preformatted) { z.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 (A.verify_css_classes) { z.serializer.attribValueFilter = function (D, B) { var C, t; if (D == "class") { if (!z.classesRE) { t = z.dom.getClasses(); if (t.length > 0) { C = ""; i(t, function (s) { C += (C ? "|" : "") + s["class"] }); z.classesRE = new RegExp("(" + C + ")", "gi") } } return !z.classesRE || /(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(B) || z.classesRE.test(B) ? B : "" } return B } } if (A.cleanup_callback) { z.onBeforeSetContent.add(function (s, t) { t.content = z.execCallback("cleanup_callback", "insert_to_editor", t.content, t) }); z.onPreProcess.add(function (s, t) { if (t.set) { z.execCallback("cleanup_callback", "insert_to_editor_dom", t.node, t) } if (t.get) { z.execCallback("cleanup_callback", "get_from_editor_dom", t.node, t) } }); z.onPostProcess.add(function (s, t) { if (t.set) { t.content = z.execCallback("cleanup_callback", "insert_to_editor", t.content, t) } if (t.get) { t.content = z.execCallback("cleanup_callback", "get_from_editor", t.content, t) } }) } if (A.save_callback) { z.onGetContent.add(function (s, t) { if (t.save) { t.content = z.execCallback("save_callback", z.id, t.content, z.getBody()) } }) } if (A.handle_event_callback) { z.onEvent.add(function (s, t, B) { if (z.execCallback("handle_event_callback", t, s, B) === false) { j.cancel(t) } }) } z.onSetContent.add(function () { z.addVisual(z.getBody()) }); if (A.padd_empty_editor) { z.onPostProcess.add(function (s, t) { t.content = t.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/, "") }) } if (a) { function p(s, t) { i(s.dom.select("a"), function (C) { var B = C.parentNode; if (s.dom.isBlock(B) && B.lastChild === C) { s.dom.add(B, "br", { _mce_bogus: 1 }) } }) } z.onExecCommand.add(function (s, t) { if (t === "CreateLink") { p(s) } }); z.onSetContent.add(z.selection.onSetContent.add(p)); if (!A.readonly) { try { u.designMode = "Off"; u.designMode = "On" } catch (v) { } } } setTimeout(function () { if (z.removed) { return } z.load({ initial: true, format: (A.cleanup_on_startup ? "html" : "raw") }); z.startContent = z.getContent({ format: "raw" }); z.initialized = true; z.onInit.dispatch(z); z.execCallback("setupcontent_callback", z.id, z.getBody(), z.getDoc()); z.execCallback("init_instance_callback", z); z.focus(true); z.nodeChanged({ initial: 1 }); if (A.content_css) { m.each(g(A.content_css), function (s) { z.dom.loadCSS(z.documentBaseURI.toAbsolute(s)) }) } if (A.auto_focus) { setTimeout(function () { var s = m.get(A.auto_focus); s.selection.select(s.getBody(), 1); s.selection.collapse(1); s.getWin().focus() }, 100) } }, 1); r = 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; 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 = (b ? q.getNode() : 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 (r, q, p) { this.execCommands[r] = { func: q, scope: p || this} }, addQueryStateHandler: function (r, q, p) { this.queryStateCommands[r] = { func: q, scope: p || this} }, addQueryValueHandler: function (r, q, p) { this.queryValueCommands[r] = { func: q, scope: p || 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 (m.GlobalCommands.execCommand(r, 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 = 0; 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 (q, r) { var p = this; r = r || {}; r.format = r.format || "html"; r.set = true; r.content = q; if (!r.no_events) { p.onBeforeSetContent.dispatch(p, r) } if (!m.isIE && (q.length === 0 || /^\s+$/.test(q))) { r.content = p.dom.setHTML(p.getBody(), '<br _mce_bogus="1" />'); r.format = "raw" } r.content = p.dom.setHTML(p.getBody(), m.trim(r.content)); if (r.format != "raw" && p.settings.cleanup) { r.getInner = true; r.content = p.dom.setHTML(p.getBody(), p.serializer.serialize(p.getBody(), r)) } if (!r.no_events) { p.onSetContent.dispatch(p, r) } return r.content }, getContent: function (r) { var p = this, q; r = r || {}; r.format = r.format || "html"; r.get = true; if (!r.no_events) { p.onBeforeGetContent.dispatch(p, r) } if (r.format != "raw" && p.settings.cleanup) { r.getInner = true; q = p.serializer.serialize(p.getBody(), r) } else { q = p.getBody().innerHTML } q = q.replace(/^\s*|\s*$/g, ""); r.content = q; if (!r.no_events) { p.onGetContent.dispatch(p, r) } return r.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 z = this, r, A = z.settings, q = z.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, B) { var s = t.type; if (z.removed) { return } if (z.onEvent.dispatch(z, t, B) !== false) { z[x[t.fakeType || t.type]].dispatch(z, t, B) } } i(x, function (t, s) { switch (s) { case "contextmenu": if (m.isOpera) { q.bind(z.getBody(), "mousedown", function (B) { if (B.ctrlKey) { B.fakeType = "contextmenu"; p(B) } }) } else { q.bind(z.getBody(), s, p) } break; case "paste": q.bind(z.getBody(), s, function (B) { p(B) }); break; case "submit": case "reset": q.bind(z.getElement().form || n.getParent(z.id, "form"), s, p); break; default: q.bind(A.content_editable ? z.getBody() : z.getDoc(), s, p) } }); q.bind(A.content_editable ? z.getBody() : (a ? z.getDoc() : z.getWin()), "focus", function (s) { z.focus(true) }); if (m.isGecko) { q.bind(z.getDoc(), "DOMNodeInserted", function (t) { var s; t = t.target; if (t.nodeType === 1 && t.nodeName === "IMG" && (s = t.getAttribute("_mce_src"))) { t.src = z.documentBaseURI.toAbsolute(s) } }) } if (a) { function u() { var C = this, E = C.getDoc(), D = C.settings; if (a && !D.readonly) { if (C._isHidden()) { try { if (!D.content_editable) { E.designMode = "On" } } catch (B) { } } try { E.execCommand("styleWithCSS", 0, false) } catch (B) { if (!C._isHidden()) { try { E.execCommand("useCSS", 0, true) } catch (B) { } } } if (!D.table_inline_editing) { try { E.execCommand("enableInlineTableEditing", false, false) } catch (B) { } } if (!D.object_resizing) { try { E.execCommand("enableObjectResizing", false, false) } catch (B) { } } } } z.onBeforeExecCommand.add(u); z.onMouseDown.add(u) } if (m.isWebKit) { z.onClick.add(function (s, t) { t = t.target; if (t.nodeName == "IMG" || (t.nodeName == "A" && q.hasClass(t, "mceItemAnchor"))) { z.selection.getSel().setBaseAndExtent(t, 0, t, 1); z.nodeChanged() } }) } z.onMouseUp.add(z.nodeChanged); z.onKeyUp.add(function (s, t) { var B = t.keyCode; if ((B >= 33 && B <= 36) || (B >= 37 && B <= 40) || B == 13 || B == 45 || B == 46 || B == 8 || (m.isMac && (B == 91 || B == 93)) || t.ctrlKey) { z.nodeChanged() } }); z.onReset.add(function () { z.setContent(z.startContent, { format: "raw" }) }); if (A.custom_shortcuts) { if (A.custom_undo_redo_keyboard_shortcuts) { z.addShortcut("ctrl+z", z.getLang("undo_desc"), "Undo"); z.addShortcut("ctrl+y", z.getLang("redo_desc"), "Redo") } z.addShortcut("ctrl+b", z.getLang("bold_desc"), "Bold"); z.addShortcut("ctrl+i", z.getLang("italic_desc"), "Italic"); z.addShortcut("ctrl+u", z.getLang("underline_desc"), "Underline"); for (r = 1; r <= 6; r++) { z.addShortcut("ctrl+" + r, "", ["FormatBlock", false, "h" + r]) } z.addShortcut("ctrl+7", "", ["FormatBlock", false, "<p>"]); z.addShortcut("ctrl+8", "", ["FormatBlock", false, "<div>"]); z.addShortcut("ctrl+9", "", ["FormatBlock", false, "<address>"]); function v(t) { var s = null; if (!t.altKey && !t.ctrlKey && !t.metaKey) { return s } i(z.shortcuts, function (B) { if (m.isMac && B.ctrl != t.metaKey) { return } else { if (!m.isMac && B.ctrl != t.ctrlKey) { return } } if (B.alt != t.altKey) { return } if (B.shift != t.shiftKey) { return } if (t.keyCode == B.keyCode || (t.charCode && t.charCode == B.charCode)) { s = B; return false } }); return s } z.onKeyUp.add(function (s, t) { var B = v(t); if (B) { return j.cancel(t) } }); z.onKeyPress.add(function (s, t) { var B = v(t); if (B) { return j.cancel(t) } }); z.onKeyDown.add(function (s, t) { var B = v(t); if (B) { B.func.call(B.scope); return j.cancel(t) } }) } if (m.isIE) { q.bind(z.getDoc(), "controlselect", function (B) { var t = z.resizeInfo, s; B = B.target; if (B.nodeName !== "IMG") { return } if (t) { q.unbind(t.node, t.ev, t.cb) } if (!q.hasClass(B, "mceItemNoResize")) { ev = "resizeend"; s = q.bind(B, ev, function (D) { var C; D = D.target; if (C = q.getStyle(D, "width")) { q.setAttrib(D, "width", C.replace(/[^0-9%]+/g, "")); q.setStyle(D, "width", "") } if (C = q.getStyle(D, "height")) { q.setAttrib(D, "height", C.replace(/[^0-9%]+/g, "")); q.setStyle(D, "height", "") } }) } else { ev = "resizestart"; s = q.bind(B, "resizestart", j.cancel, j) } t = z.resizeInfo = { node: B, ev: ev, cb: s} }); z.onKeyDown.add(function (s, t) { switch (t.keyCode) { case 8: if (z.selection.getRng().item) { s.dom.remove(z.selection.getRng().item(0)); return j.cancel(t) } } }) } if (m.isOpera) { z.onClick.add(function (s, t) { j.prevent(t) }) } if (A.custom_undo_redo) { function y() { z.undoManager.typing = 0; z.undoManager.add() } q.bind(z.getDoc(), "focusout", function (s) { if (!z.removed && z.undoManager.typing) { y() } }); z.onKeyUp.add(function (s, t) { if ((t.keyCode >= 33 && t.keyCode <= 36) || (t.keyCode >= 37 && t.keyCode <= 40) || t.keyCode == 13 || t.keyCode == 45 || t.ctrlKey) { y() } }); z.onKeyDown.add(function (t, E) { var s, D, C; if (b && E.keyCode == 46) { s = z.selection.getRng(); if (s.parentElement) { D = s.parentElement(); if (E.ctrlKey) { s.moveEnd("word", 1); s.select() } z.selection.getSel().clear(); if (s.parentElement() == D) { C = z.selection.getBookmark(); try { D.innerHTML = D.innerHTML } catch (B) { } z.selection.moveToBookmark(C) } E.preventDefault(); return } } if ((E.keyCode >= 33 && E.keyCode <= 36) || (E.keyCode >= 37 && E.keyCode <= 40) || E.keyCode == 13 || E.keyCode == 45) { if (z.undoManager.typing) { y() } return } if (!z.undoManager.typing) { z.undoManager.add(); z.undoManager.typing = 1 } }); z.onMouseDown.add(function () { if (z.undoManager.typing) { y() } }) } }, _isHidden: function () { var p; if (!a) { return 0 } p = this.selection.getSel(); return (!p || !p.rangeCount || p.rangeCount == 0) }, _fixNesting: function (q) { var r = [], p; q = q.replace(/<(\/)?([^\s>]+)[^>]*?>/g, function (t, s, v) { var u; if (s === "/") { if (!r.length) { return "" } if (v !== r[r.length - 1].tag) { for (p = r.length - 1; p >= 0; p--) { if (r[p].tag === v) { r[p].close = 1; break } } return "" } else { r.pop(); if (r.length && r[r.length - 1].close) { t = t + "</" + r[r.length - 1].tag + ">"; r.pop() } } } else { if (/^(br|hr|input|meta|img|link|param)$/i.test(v)) { return t } if (/\/>$/.test(t)) { return t } r.push({ tag: v }) } return t }); for (p = r.length - 1; p >= 0; p--) { q += "</" + r[p].tag + ">" } return q } }) })(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) }, "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": 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 (x, v, u) { p.setContent(u) }, 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 () { p.setContent("<hr />") }, mceToggleVisualAid: function () { n.hasVisual = !n.hasVisual; n.addVisual() }, mceReplaceContent: function (x, v, u) { p.setContent(u.replace(/\{\$selection\}/g, p.getContent({ format: "text" }))) }, mceInsertLink: function (y, x, v) { var u = l.getParent(p.getNode(), "a"); if (c.is(v, "string")) { v = { href: v} } if (!u) { f("CreateLink", b, "javascript:mctmp(0);"); d(l.select("a[href=javascript:mctmp(0);]"), function (z) { l.setAttribs(z, v) }) } else { if (v.href) { l.setAttribs(u, v) } else { n.dom.remove(u, 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": 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: 0, onAdd: new a(c), onUndo: new a(c), onRedo: new a(c), add: function (l) { var h, j = e.settings, k; l = l || {}; l.content = f(); k = g[d]; if (k && k.content == l.content) { if (d > 0 || g.length == 1) { 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) { if (d == 0) { g = [] } else { 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 = 0 } if (d > 0) { j = g[--d]; e.setContent(j.content, { format: "raw" }); e.selection.moveToBookmark(j.bookmark); 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 = c.typing = 0 }, hasUndo: function () { return d > 0 || c.typing }, hasRedo: function () { return d < g.length - 1 } } } })(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 _mce_bogus="1" />'); r.replace(q, n); p.select(q, 1) } return h } return d } m.create("tinymce.ForceBlocks", { ForceBlocks: function (o) { var p = this, q = o.settings, r; p.editor = o; p.dom = o.dom; r = (q.forced_root_block || "p").toLowerCase(); q.element = r.toUpperCase(); o.onPreInit.add(p.setup, p); p.reOpera = new RegExp("(\\u00a0|&#160;|&nbsp;)</" + r + ">", "gi"); p.rePadd = new RegExp("<p( )([^>]+)><\\/p>|<p( )([^>]+)\\/>|<p( )([^>]+)>\\s+<\\/p>|<p><\\/p>|<p\\/>|<p>\\s+<\\/p>".replace(/p/g, r), "gi"); p.reNbsp2BR1 = new RegExp("<p( )([^>]+)>[\\s\\u00a0]+<\\/p>|<p>[\\s\\u00a0]+<\\/p>".replace(/p/g, r), "gi"); p.reNbsp2BR2 = new RegExp("<%p()([^>]+)>(&nbsp;|&#160;)<\\/%p>|<%p>(&nbsp;|&#160;)<\\/%p>".replace(/%p/g, r), "gi"); p.reBR2Nbsp = new RegExp("<p( )([^>]+)>\\s*<br \\/>\\s*<\\/p>|<p>\\s*<br \\/>\\s*<\\/p>".replace(/p/g, r), "gi"); function n(s, t) { if (b) { t.content = t.content.replace(p.reOpera, "</" + r + ">") } t.content = m._replace(p.rePadd, "<" + r + "$1$2$3$4$5$6>\u00a0</" + r + ">", t.content); if (!c && !b && t.set) { t.content = t.content.replace(p.reNbsp2BR1, "<" + r + "$1$2><br /></" + r + ">"); t.content = t.content.replace(p.reNbsp2BR2, "<" + r + "$1$2><br /></" + r + ">") } else { t.content = m._replace(p.reBR2Nbsp, "<" + r + "$1$2>\u00a0</" + r + ">", t.content) } } o.onBeforeSetContent.add(n); o.onPostProcess.add(n); if (q.forced_root_block) { o.onInit.add(p.forceRoots, p); o.onSetContent.add(p.forceRoots, p); o.onBeforeGetContent.add(p.forceRoots, p) } }, 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); 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) } }) } n.onPreProcess.add(function (s, t) { j(u.select("p,h1,h2,h3,h4,h5,h6,div", t.node), function (v) { if (f(v)) { j(u.select("span,em,strong,b,i", t.node), function (x) { if (!x.hasChildNodes()) { x.appendChild(s.getDoc().createTextNode("\u00a0")); return h } }) } }) }); 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("_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; 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 ? "&nbsp;" : "<br />"; return r[0] } else { y.innerHTML = b ? "&nbsp;" : "<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; F = V.clientHeight; if (D < N.y || D + F > N.y + N.h) { x.getWin().scrollTo(0, D < N.y ? D : D - N.h + 25) } 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) } 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.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.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.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); 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) { function b() { var d = {}, c = {}, e = {}; function f(j, i, h, g) { if (typeof (i) == "string") { i = [i] } a.each(i, function (k) { j[k.toLowerCase()] = { func: h, scope: g} }) } a.extend(this, { add: function (i, h, g) { f(d, i, h, g) }, addQueryStateHandler: function (i, h, g) { f(c, i, h, g) }, addQueryValueHandler: function (i, h, g) { f(e, i, h, g) }, execCommand: function (h, k, j, i, g) { if (k = d[k.toLowerCase()]) { if (k.func.call(h || k.scope, j, i, g) !== false) { return true } } }, queryCommandValue: function () { if (cmd = e[cmd.toLowerCase()]) { return cmd.func.call(scope || cmd.scope, ui, value, args) } }, queryCommandState: function () { if (cmd = c[cmd.toLowerCase()]) { return cmd.func.call(scope || cmd.scope, ui, value, args) } } }) } a.GlobalCommands = new b() })(tinymce); (function (a) { a.Formatter = function (T) { var K = {}, M = a.each, c = T.dom, p = T.selection, s = a.dom.TreeWalker, I = new a.dom.RangeUtils(c), d = T.schema.isValid, E = c.isBlock, k = T.settings.forced_root_block, r = c.nodeIndex, D = "\uFEFF", e = /^(src|href|style)$/, Q = false, A = true, o, N = { apply: [], remove: [] }; function y(U) { return U instanceof Array } function l(V, U) { return c.getParents(V, U, c.getRoot()) } function b(U) { return U.nodeType === 1 && (U.face === "mceinline" || U.style.fontFamily === "mceinline") } function P(U) { return U ? K[U] : K } function j(U, V) { if (U) { if (typeof (U) !== "string") { M(U, function (X, W) { j(W, X) }) } else { V = V.length ? V : [V]; M(V, function (W) { if (W.deep === o) { W.deep = !W.selector } if (W.split === o) { W.split = !W.selector || W.inline } if (W.remove === o && W.selector && !W.inline) { W.remove = "none" } if (W.selector && W.inline) { W.mixed = true; W.block_expand = true } if (typeof (W.classes) === "string") { W.classes = W.classes.split(/\s+/) } }); K[U] = V } } } function R(W, ac, Y) { var Z = P(W), ad = Z[0], ab, V, aa; function X(ag) { var af = ag.startContainer, aj = ag.startOffset, ai, ah; if (af.nodeType == 1 || af.nodeValue === "") { af = af.nodeType == 1 ? af.childNodes[aj] : af; if (af) { ai = new s(af, af.parentNode); for (ah = ai.current(); ah; ah = ai.next()) { if (ah.nodeType == 3 && !f(ah)) { ag.setStart(ah, 0); break } } } } return ag } function U(ag, af) { af = af || ad; if (ag) { M(af.styles, function (ai, ah) { c.setStyle(ag, ah, q(ai, ac)) }); M(af.attributes, function (ai, ah) { c.setAttrib(ag, ah, q(ai, ac)) }); M(af.classes, function (ah) { ah = q(ah, ac); if (!c.hasClass(ag, ah)) { c.addClass(ag, ah) } }) } } function ae(ag) { var af = [], ai, ah; ai = ad.inline || ad.block; ah = c.create(ai); U(ah); I.walk(ag, function (aj) { var ak; function al(am) { var ap = am.nodeName.toLowerCase(), ao = am.parentNode.nodeName.toLowerCase(), an; if (g(ap, "br")) { ak = 0; if (ad.block) { c.remove(am) } return } if (ad.wrapper && v(am, W, ac)) { ak = 0; return } if (ad.block && !ad.wrapper && F(ap)) { am = c.rename(am, ai); U(am); af.push(am); ak = 0; return } if (ad.selector) { M(Z, function (aq) { if (c.is(am, aq.selector) && !b(am)) { U(am, aq); an = true } }); if (!ad.inline || an) { ak = 0; return } } if (d(ai, ap) && d(ao, ai)) { if (!ak) { ak = ah.cloneNode(Q); am.parentNode.insertBefore(ak, am); af.push(ak) } ak.appendChild(am) } else { ak = 0; M(a.grep(am.childNodes), al); ak = 0 } } M(aj, al) }); M(af, function (al) { var aj; function am(ao) { var an = 0; M(ao.childNodes, function (ap) { if (!f(ap) && !G(ap)) { an++ } }); return an } function ak(an) { var ap, ao; M(an.childNodes, function (aq) { if (aq.nodeType == 1 && !G(aq) && !b(aq)) { ap = aq; return Q } }); if (ap && h(ap, ad)) { ao = ap.cloneNode(Q); U(ao); c.replace(ao, an, A); c.remove(ap, 1) } return ao || an } aj = am(al); if (aj === 0) { c.remove(al, 1); return } if (ad.inline || ad.wrapper) { if (!ad.exact && aj === 1) { al = ak(al) } M(Z, function (an) { M(c.select(an.inline, al), function (ao) { S(an, ac, ao, an.exact ? ao : null) }) }); if (v(al.parentNode, W, ac)) { c.remove(al, 1); al = 0; return A } if (ad.merge_with_parents) { c.getParent(al.parentNode, function (an) { if (v(an, W, ac)) { c.remove(al, 1); al = 0; return A } }) } if (al) { al = t(B(al), al); al = t(al, B(al, A)) } } }) } if (ad) { if (Y) { V = c.createRng(); V.setStartBefore(Y); V.setEndAfter(Y); ae(n(V, Z)) } else { if (!p.isCollapsed() || !ad.inline) { ab = p.getBookmark(); ae(n(p.getRng(A), Z)); p.moveToBookmark(ab); p.setRng(X(p.getRng(A))); T.nodeChanged() } else { O("apply", W, ac) } } } } function z(W, af, Z) { var aa = P(W), ah = aa[0], ae, ad, V; function Y(ak) { var aj = ak.startContainer, ap = ak.startOffset, ao, an, al, am; if (aj.nodeType == 3 && ap >= aj.nodeValue.length - 1) { aj = aj.parentNode; ap = r(aj) + 1 } if (aj.nodeType == 1) { al = aj.childNodes; aj = al[Math.min(ap, al.length - 1)]; ao = new s(aj); if (ap > al.length - 1) { ao.next() } for (an = ao.current(); an; an = ao.next()) { if (an.nodeType == 3 && !f(an)) { am = c.create("a", null, D); an.parentNode.insertBefore(am, an); ak.setStart(an, 0); p.setRng(ak); c.remove(am); return } } } } function X(am) { var al, ak, aj; al = a.grep(am.childNodes); for (ak = 0, aj = aa.length; ak < aj; ak++) { if (S(aa[ak], af, am, am)) { break } } if (ah.deep) { for (ak = 0, aj = al.length; ak < aj; ak++) { X(al[ak]) } } } function ab(aj) { var ak; M(l(aj.parentNode).reverse(), function (al) { var am; if (!ak && al.id != "_start" && al.id != "_end") { am = v(al, W, af); if (am && am.split !== false) { ak = al } } }); return ak } function U(am, aj, ao, ar) { var at, aq, ap, al, an, ak; if (am) { ak = am.parentNode; for (at = aj.parentNode; at && at != ak; at = at.parentNode) { aq = at.cloneNode(Q); for (an = 0; an < aa.length; an++) { if (S(aa[an], af, aq, aq)) { aq = 0; break } } if (aq) { if (ap) { aq.appendChild(ap) } if (!al) { al = aq } ap = aq } } if (ar && (!ah.mixed || !E(am))) { aj = c.split(am, aj) } if (ap) { ao.parentNode.insertBefore(ap, ao); al.appendChild(ao) } } return aj } function ag(aj) { return U(ab(aj), aj, aj, true) } function ac(al) { var ak = c.get(al ? "_start" : "_end"), aj = ak[al ? "firstChild" : "lastChild"]; if (G(aj)) { aj = aj[al ? "firstChild" : "lastChild"] } c.remove(ak, true); return aj } function ai(aj) { var ak, al; aj = n(aj, aa, A); if (ah.split) { ak = H(aj, A); al = H(aj); if (ak != al) { ak = L(ak, "span", { id: "_start", _mce_type: "bookmark" }); al = L(al, "span", { id: "_end", _mce_type: "bookmark" }); ag(ak); ag(al); ak = ac(A); al = ac() } else { ak = al = ag(ak) } aj.startContainer = ak.parentNode; aj.startOffset = r(ak); aj.endContainer = al.parentNode; aj.endOffset = r(al) + 1 } I.walk(aj, function (am) { M(am, function (an) { X(an) }) }) } if (Z) { V = c.createRng(); V.setStartBefore(Z); V.setEndAfter(Z); ai(V); return } if (!p.isCollapsed() || !ah.inline) { ae = p.getBookmark(); ai(p.getRng(A)); p.moveToBookmark(ae); if (i(W, af, p.getStart())) { Y(p.getRng(true)) } T.nodeChanged() } else { O("remove", W, af) } } function C(U, W, V) { if (i(U, W, V)) { z(U, W, V) } else { R(U, W, V) } } function v(V, U, aa, Y) { var W = P(U), ab, Z, X; function ac(ag, ai, aj) { var af, ah, ad = ai[aj], ae; if (ad) { if (ad.length === o) { for (af in ad) { if (ad.hasOwnProperty(af)) { if (aj === "attributes") { ah = c.getAttrib(ag, af) } else { ah = J(ag, af) } if (Y && !ah && !ai.exact) { return } if ((!Y || ai.exact) && !g(ah, q(ad[af], aa))) { return } } } } else { for (ae = 0; ae < ad.length; ae++) { if (aj === "attributes" ? c.getAttrib(ag, ad[ae]) : J(ag, ad[ae])) { return ai } } } } return ai } if (W && V) { for (Z = 0; Z < W.length; Z++) { ab = W[Z]; if (h(V, ab) && ac(V, ab, "attributes") && ac(V, ab, "styles")) { if (X = ab.classes) { for (Z = 0; Z < X.length; Z++) { if (!c.hasClass(V, X[Z])) { return } } } return ab } } } } function i(W, Z, Y) { var V, X; function U(aa) { aa = c.getParent(aa, function (ab) { return !!v(ab, W, Z, true) }); return v(aa, W, Z) } if (Y) { return U(Y) } if (p.isCollapsed()) { for (X = N.apply.length - 1; X >= 0; X--) { if (N.apply[X].name == W) { return true } } for (X = N.remove.length - 1; X >= 0; X--) { if (N.remove[X].name == W) { return false } } return U(p.getNode()) } Y = p.getNode(); if (U(Y)) { return A } V = p.getStart(); if (V != Y) { if (U(V)) { return A } } return Q } function u(ab, aa) { var Y, Z = [], X = {}, W, V, U; if (p.isCollapsed()) { for (V = 0; V < ab.length; V++) { for (W = N.remove.length - 1; W >= 0; W--) { U = ab[V]; if (N.remove[W].name == U) { X[U] = true; break } } } for (W = N.apply.length - 1; W >= 0; W--) { for (V = 0; V < ab.length; V++) { U = ab[V]; if (!X[U] && N.apply[W].name == U) { X[U] = true; Z.push(U) } } } } Y = p.getStart(); c.getParent(Y, function (ae) { var ad, ac; for (ad = 0; ad < ab.length; ad++) { ac = ab[ad]; if (!X[ac] && v(ae, ac, aa)) { X[ac] = true; Z.push(ac) } } }); return Z } function x(Y) { var aa = P(Y), X, W, Z, V, U; if (aa) { X = p.getStart(); W = l(X); for (V = aa.length - 1; V >= 0; V--) { U = aa[V].selector; if (!U) { return A } for (Z = W.length - 1; Z >= 0; Z--) { if (c.is(W[Z], U)) { return A } } } } return Q } a.extend(this, { get: P, register: j, apply: R, remove: z, toggle: C, match: i, matchAll: u, matchNode: v, canApply: x }); function h(U, V) { if (g(U, V.inline)) { return A } if (g(U, V.block)) { return A } if (V.selector) { return c.is(U, V.selector) } } function g(V, U) { V = V || ""; U = U || ""; V = "" + (V.nodeName || V); U = "" + (U.nodeName || U); return V.toLowerCase() == U.toLowerCase() } function J(V, U) { var W = c.getStyle(V, U); if (U == "color" || U == "backgroundColor") { W = c.toHex(W) } if (U == "fontWeight" && W == 700) { W = "bold" } return "" + W } function q(U, V) { if (typeof (U) != "string") { U = U(V) } else { if (V) { U = U.replace(/%(\w+)/g, function (X, W) { return V[W] || X }) } } return U } function f(U) { return U && U.nodeType === 3 && /^([\s\r\n]+|)$/.test(U.nodeValue) } function L(W, V, U) { var X = c.create(V, U); W.parentNode.insertBefore(X, W); X.appendChild(W); return X } function n(U, ac, X) { var W = U.startContainer, Z = U.startOffset, af = U.endContainer, aa = U.endOffset, ae, ab; function ad(ai, aj, ag, ah) { var ak, al; ah = ah || c.getRoot(); for (; ; ) { ak = ai.parentNode; if (ak == ah || (!ac[0].block_expand && E(ak))) { return ai } for (ae = ak[aj]; ae && ae != ai; ae = ae[ag]) { if (ae.nodeType == 1 && !G(ae)) { return ai } if (ae.nodeType == 3 && !f(ae)) { return ai } } ai = ai.parentNode } return ai } if (W.nodeType == 1 && W.hasChildNodes()) { ab = W.childNodes.length - 1; W = W.childNodes[Z > ab ? ab : Z]; if (W.nodeType == 3) { Z = 0 } } if (af.nodeType == 1 && af.hasChildNodes()) { ab = af.childNodes.length - 1; af = af.childNodes[aa > ab ? ab : aa - 1]; if (af.nodeType == 3) { aa = af.nodeValue.length } } if (G(W.parentNode)) { W = W.parentNode } if (G(W)) { W = W.nextSibling || W } if (G(af.parentNode)) { af = af.parentNode } if (G(af)) { af = af.previousSibling || af } if (ac[0].inline || ac[0].block_expand) { W = ad(W, "firstChild", "nextSibling"); af = ad(af, "lastChild", "previousSibling") } if (ac[0].selector && ac[0].expand !== Q && !ac[0].inline) { function Y(ah, ag) { var ai, aj, ak; if (ah.nodeType == 3 && ah.nodeValue.length == 0 && ah[ag]) { ah = ah[ag] } ai = l(ah); for (aj = 0; aj < ai.length; aj++) { for (ak = 0; ak < ac.length; ak++) { if (c.is(ai[aj], ac[ak].selector)) { return ai[aj] } } } return ah } W = Y(W, "previousSibling"); af = Y(af, "nextSibling") } if (ac[0].block || ac[0].selector) { function V(ah, ag, aj) { var ai; if (!ac[0].wrapper) { ai = c.getParent(ah, ac[0].block) } if (!ai) { ai = c.getParent(ah.nodeType == 3 ? ah.parentNode : ah, E) } if (ai && ac[0].wrapper) { ai = l(ai, "ul,ol").reverse()[0] || ai } if (!ai) { ai = ah; while (ai[ag] && !E(ai[ag])) { ai = ai[ag]; if (g(ai, "br")) { break } } } return ai || ah } W = V(W, "previousSibling"); af = V(af, "nextSibling"); if (ac[0].block) { if (!E(W)) { W = ad(W, "firstChild", "nextSibling") } if (!E(af)) { af = ad(af, "lastChild", "previousSibling") } } } if (W.nodeType == 1) { Z = r(W); W = W.parentNode } if (af.nodeType == 1) { aa = r(af) + 1; af = af.parentNode } return { startContainer: W, startOffset: Z, endContainer: af, endOffset: aa} } function S(aa, Z, X, U) { var W, V, Y; if (!h(X, aa)) { return Q } if (aa.remove != "all") { M(aa.styles, function (ac, ab) { ac = q(ac, Z); if (typeof (ab) === "number") { ab = ac; U = 0 } if (!U || g(J(U, ab), ac)) { c.setStyle(X, ab, "") } Y = 1 }); if (Y && c.getAttrib(X, "style") == "") { X.removeAttribute("style"); X.removeAttribute("_mce_style") } M(aa.attributes, function (ad, ab) { var ac; ad = q(ad, Z); if (typeof (ab) === "number") { ab = ad; U = 0 } if (!U || g(c.getAttrib(U, ab), ad)) { if (ab == "class") { ad = c.getAttrib(X, ab); if (ad) { ac = ""; M(ad.split(/\s+/), function (ae) { if (/mce\w+/.test(ae)) { ac += (ac ? " " : "") + ae } }); if (ac) { c.setAttrib(X, ab, ac); return } } } if (ab == "class") { X.removeAttribute("className") } if (e.test(ab)) { X.removeAttribute("_mce_" + ab) } X.removeAttribute(ab) } }); M(aa.classes, function (ab) { ab = q(ab, Z); if (!U || c.hasClass(U, ab)) { c.removeClass(X, ab) } }); V = c.getAttribs(X); for (W = 0; W < V.length; W++) { if (V[W].nodeName.indexOf("_") !== 0) { return Q } } } if (aa.remove != "none") { m(X, aa); return A } } function m(W, X) { var U = W.parentNode, V; if (X.block) { if (!k) { function Y(aa, Z, ab) { aa = B(aa, Z, ab); return !aa || (aa.nodeName == "BR" || E(aa)) } if (E(W) && !E(U)) { if (!Y(W, Q) && !Y(W.firstChild, A, 1)) { W.insertBefore(c.create("br"), W.firstChild) } if (!Y(W, A) && !Y(W.lastChild, Q, 1)) { W.appendChild(c.create("br")) } } } else { if (U == c.getRoot()) { if (!X.list_block || !g(W, X.list_block)) { M(a.grep(W.childNodes), function (Z) { if (d(k, Z.nodeName.toLowerCase())) { if (!V) { V = L(Z, k) } else { V.appendChild(Z) } } else { V = 0 } }) } } } } if (X.selector && X.inline && !g(X.inline, W)) { return } c.remove(W, 1) } function B(V, U, W) { if (V) { U = U ? "nextSibling" : "previousSibling"; for (V = W ? V : V[U]; V; V = V[U]) { if (V.nodeType == 1 || !f(V)) { return V } } } } function G(U) { return U && U.nodeType == 1 && U.getAttribute("_mce_type") == "bookmark" } function t(Y, X) { var U, W, V; function aa(ad, ac) { if (ad.nodeName != ac.nodeName) { return Q } function ab(af) { var ag = {}; M(c.getAttribs(af), function (ah) { var ai = ah.nodeName.toLowerCase(); if (ai.indexOf("_") !== 0 && ai !== "style") { ag[ai] = c.getAttrib(af, ai) } }); return ag } function ae(ai, ah) { var ag, af; for (af in ai) { if (ai.hasOwnProperty(af)) { ag = ah[af]; if (ag === o) { return Q } if (ai[af] != ag) { return Q } delete ah[af] } } for (af in ah) { if (ah.hasOwnProperty(af)) { return Q } } return A } if (!ae(ab(ad), ab(ac))) { return Q } if (!ae(c.parseStyle(c.getAttrib(ad, "style")), c.parseStyle(c.getAttrib(ac, "style")))) { return Q } return A } if (Y && X) { function Z(ac, ab) { for (W = ac; W; W = W[ab]) { if (W.nodeType == 3 && !f(W)) { return ac } if (W.nodeType == 1 && !G(W)) { return W } } return ac } Y = Z(Y, "previousSibling"); X = Z(X, "nextSibling"); if (aa(Y, X)) { for (W = Y.nextSibling; W && W != X; ) { V = W; W = W.nextSibling; Y.appendChild(V) } c.remove(X); M(a.grep(X.childNodes), function (ab) { Y.appendChild(ab) }); return Y } } return X } function F(U) { return /^(h[1-6]|p|div|pre|address|dl|dt|dd)$/.test(U) } function H(V, Y) { var U, X, W; U = V[Y ? "startContainer" : "endContainer"]; X = V[Y ? "startOffset" : "endOffset"]; if (U.nodeType == 1) { W = U.childNodes.length - 1; if (!Y && X) { X-- } U = U.childNodes[X > W ? W : X] } return U } function O(Z, V, Y) { var W, U = N[Z], aa = N[Z == "apply" ? "remove" : "apply"]; function ab() { return N.apply.length || N.remove.length } function X() { N.apply = []; N.remove = [] } function ac(ad) { M(N.apply.reverse(), function (ae) { R(ae.name, ae.vars, ad) }); M(N.remove.reverse(), function (ae) { z(ae.name, ae.vars, ad) }); c.remove(ad, 1); X() } for (W = U.length - 1; W >= 0; W--) { if (U[W].name == V) { return } } U.push({ name: V, vars: Y }); for (W = aa.length - 1; W >= 0; W--) { if (aa[W].name == V) { aa.splice(W, 1) } } if (ab()) { T.getDoc().execCommand("FontName", false, "mceinline"); N.lastRng = p.getRng(); M(c.select("font,span"), function (ae) { var ad; if (b(ae)) { ad = p.getBookmark(); ac(ae); p.moveToBookmark(ad); T.nodeChanged() } }); if (!N.isListening && ab()) { N.isListening = true; M("onKeyDown,onKeyUp,onKeyPress,onMouseUp".split(","), function (ad) { T[ad].addToTop(function (ae, af) { if (ab() && !a.dom.RangeUtils.compareRanges(N.lastRng, p.getRng())) { M(c.select("font,span"), function (ah) { var ai, ag; if (b(ah)) { ai = ah.firstChild; if (ai) { ac(ah); ag = c.createRng(); ag.setStart(ai, ai.nodeValue.length); ag.setEnd(ai, ai.nodeValue.length); p.setRng(ag); ae.nodeChanged() } else { c.remove(ah) } } }); if (af.type == "keyup" || af.type == "mouseup") { X() } } }) }) } } } } })(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.onInit.add(function () { a.selection.onSetContent.add(f) }) } });
