var tinymce = { majorVersion: "3", minorVersion: "2.7", releaseDate: "2009-09-22", _init: function() { var o = this, k = document, l = window, j = navigator, b = j.userAgent, h, a, g, f, e, m; o.isOpera = l.opera && opera.buildNumber; o.isWebKit = /WebKit/.test(b); o.isIE = !o.isWebKit && !o.isOpera && (/MSIE/gi).test(b) && (/Explorer/gi).test(j.appName); o.isIE6 = o.isIE && /MSIE [56]/.test(b); o.isGecko = !o.isWebKit && /Gecko/.test(b); o.isMac = b.indexOf("Mac") != -1; o.isAir = /adobeair/i.test(b); if (l.tinyMCEPreInit) { o.suffix = tinyMCEPreInit.suffix; o.baseURL = tinyMCEPreInit.base; o.query = tinyMCEPreInit.query; return } o.suffix = ""; a = k.getElementsByTagName("base"); for (h = 0; h < a.length; h++) { if (m = a[h].href) { if (/^https?:\/\/[^\/]+$/.test(m)) { m += "/" } f = m ? m.match(/.*\//)[0] : "" } } function c(d) { if (d.src && /tiny_mce(|_gzip|_jquery|_prototype)(_dev|_src)?.js/.test(d.src)) { if (/_(src|dev)\.js/g.test(d.src)) { o.suffix = "_src" } if ((e = d.src.indexOf("?")) != -1) { o.query = d.src.substring(e + 1) } o.baseURL = d.src.substring(0, d.src.lastIndexOf("/")); if (f && o.baseURL.indexOf("://") == -1 && o.baseURL.indexOf("/") !== 0) { o.baseURL = f + o.baseURL } return o.baseURL } return null } a = k.getElementsByTagName("script"); for (h = 0; h < a.length; h++) { if (c(a[h])) { return } } g = k.getElementsByTagName("head")[0]; if (g) { a = g.getElementsByTagName("script"); for (h = 0; h < a.length; h++) { if (c(a[h])) { return } } } return }, is: function(b, a) { var c = typeof (b); if (!a) { return c != "undefined" } if (a == "array" && (b.hasOwnProperty && b instanceof Array)) { return true } return c == a }, each: function(d, a, c) { var e, b; if (!d) { return 0 } c = c || d; if (typeof (d.length) != "undefined") { for (e = 0, b = d.length; e < b; e++) { if (a.call(c, d[e], e, d) === false) { return 0 } } } else { for (e in d) { if (d.hasOwnProperty(e)) { if (a.call(c, d[e], e, d) === false) { return 0 } } } } return 1 }, map: function(b, c) { var d = []; tinymce.each(b, function(a) { d.push(c(a)) }); return d }, grep: function(b, c) { var d = []; tinymce.each(b, function(a) { if (!c || c(a)) { d.push(a) } }); return d }, inArray: function(c, d) { var e, b; if (c) { for (e = 0, b = c.length; e < b; e++) { if (c[e] === d) { return e } } } return -1 }, extend: function(f, d) { var c, b = arguments; for (c = 1; c < b.length; c++) { d = b[c]; tinymce.each(d, function(a, e) { if (typeof (a) !== "undefined") { f[e] = a } }) } return f }, trim: function(a) { return (a ? "" + a : "").replace(/^\s*|\s*$/g, "") }, create: function(j, a) { var i = this, b, e, f, g, d, h = 0; j = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(j); f = j[3].match(/(^|\.)(\w+)$/i)[2]; e = i.createNS(j[3].replace(/\.\w+$/, "")); if (e[f]) { return } if (j[2] == "static") { e[f] = a; if (this.onCreate) { this.onCreate(j[2], j[3], e[f]) } return } if (!a[f]) { a[f] = function() { }; h = 1 } e[f] = a[f]; i.extend(e[f].prototype, a); if (j[5]) { b = i.resolve(j[5]).prototype; g = j[5].match(/\.(\w+)$/i)[1]; d = e[f]; if (h) { e[f] = function() { return b[g].apply(this, arguments) } } else { e[f] = function() { this.parent = b[g]; return d.apply(this, arguments) } } e[f].prototype[f] = e[f]; i.each(b, function(c, k) { e[f].prototype[k] = b[k] }); i.each(a, function(c, k) { if (b[k]) { e[f].prototype[k] = function() { this.parent = b[k]; return c.apply(this, arguments) } } else { if (k != f) { e[f].prototype[k] = c } } }) } i.each(a["static"], function(c, k) { e[f][k] = c }); if (this.onCreate) { this.onCreate(j[2], j[3], e[f].prototype) } }, walk: function(c, b, d, a) { a = a || this; if (c) { if (d) { c = c[d] } tinymce.each(c, function(f, e) { if (b.call(a, f, e, d) === false) { return false } tinymce.walk(f, b, d, a) }) } }, createNS: function(d, c) { var b, a; c = c || window; d = d.split("."); for (b = 0; b < d.length; b++) { a = d[b]; if (!c[a]) { c[a] = {} } c = c[a] } return c }, resolve: function(d, c) { var b, a; c = c || window; d = d.split("."); for (b = 0, a = d.length; b < a; b++) { c = c[d[b]]; if (!c) { break } } return c }, addUnload: function(e, d) { var c = this, a = window; e = { func: e, scope: d || this }; if (!c.unloads) { function b() { var f = c.unloads, h, i; if (f) { for (i in f) { h = f[i]; if (h && h.func) { h.func.call(h.scope, 1) } } if (a.detachEvent) { a.detachEvent("onbeforeunload", g); a.detachEvent("onunload", b) } else { if (a.removeEventListener) { a.removeEventListener("unload", b, false) } } c.unloads = h = f = a = b = 0; if (window.CollectGarbage) { window.CollectGarbage() } } } function g() { var h = document; if (h.readyState == "interactive") { function f() { h.detachEvent("onstop", f); if (b) { b() } h = 0 } if (h) { h.attachEvent("onstop", f) } window.setTimeout(function() { if (h) { h.detachEvent("onstop", f) } }, 0) } } if (a.attachEvent) { a.attachEvent("onunload", b); a.attachEvent("onbeforeunload", g) } else { if (a.addEventListener) { a.addEventListener("unload", b, false) } } c.unloads = [e] } else { c.unloads.push(e) } return e }, removeUnload: function(c) { var a = this.unloads, b = null; tinymce.each(a, function(e, d) { if (e && e.func == c) { a.splice(d, 1); b = c; return false } }); return b }, explode: function(a, b) { return a ? tinymce.map(a.split(b || ","), tinymce.trim) : a }, _addVer: function(b) { var a; if (!this.query) { return b } a = (b.indexOf("?") == -1 ? "?" : "&") + this.query; if (b.indexOf("#") == -1) { return b + a } return b.replace("#", a + "#") } }; window.tinymce = tinymce; tinymce._init(); 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(c) { var e = c.each, b = c.is; var d = c.isWebKit, a = c.isIE; c.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(i, g) { var f = this; f.doc = i; f.win = window; f.files = {}; f.cssFlicker = false; f.counter = 0; f.boxModel = !c.isIE || i.compatMode == "CSS1Compat"; f.stdMode = i.documentMode === 8; f.settings = g = c.extend({ keep_values: false, hex_colors: 1, process_html: 1 }, g); if (c.isIE6) { try { i.execCommand("BackgroundImageCache", false, true) } catch (h) { f.cssFlicker = true } } c.addUnload(f.destroy, f) }, getRoot: function() { var f = this, g = f.settings; return (g && f.get(g.root_element)) || f.doc.body }, getViewPort: function(g) { var h, f; g = !g ? this.win : g; h = g.document; f = this.boxModel ? h.documentElement : h.body; return { x: g.pageXOffset || f.scrollLeft, y: g.pageYOffset || f.scrollTop, w: g.innerWidth || f.clientWidth, h: g.innerHeight || f.clientHeight} }, getRect: function(i) { var h, f = this, g; i = f.get(i); h = f.getPos(i); g = f.getSize(i); return { x: h.x, y: h.y, w: g.w, h: g.h} }, getSize: function(j) { var g = this, f, i; j = g.get(j); f = g.getStyle(j, "width"); i = g.getStyle(j, "height"); if (f.indexOf("px") === -1) { f = 0 } if (i.indexOf("px") === -1) { i = 0 } return { w: parseInt(f) || j.offsetWidth || j.clientWidth, h: parseInt(i) || j.offsetHeight || j.clientHeight} }, getParent: function(i, h, g) { return this.getParents(i, h, g, false) }, getParents: function(p, k, i, m) { var h = this, g, j = h.settings, l = []; p = h.get(p); m = m === undefined; if (j.strict_root) { i = i || h.getRoot() } if (b(k, "string")) { g = k; if (k === "*") { k = function(f) { return f.nodeType == 1 } } else { k = function(f) { return h.is(f, g) } } } while (p) { if (p == i || !p.nodeType || p.nodeType === 9) { break } if (!k || k(p)) { if (m) { l.push(p) } else { return p } } p = p.parentNode } return m ? l : null }, get: function(f) { var g; if (f && this.doc && typeof (f) == "string") { g = f; f = this.doc.getElementById(f); if (f && f.id !== g) { return this.doc.getElementsByName(g)[1] } } return f }, getNext: function(g, f) { return this._findSib(g, f, "nextSibling") }, getPrev: function(g, f) { return this._findSib(g, f, "previousSibling") }, select: function(h, g) { var f = this; return c.dom.Sizzle(h, f.get(g) || f.get(f.settings.root_element) || f.doc, []) }, is: function(g, f) { return c.dom.Sizzle.matches(f, g.nodeType ? [g] : g).length > 0 }, add: function(j, l, f, i, k) { var g = this; return this.run(j, function(n) { var m, h; m = b(l, "string") ? g.doc.createElement(l) : l; g.setAttribs(m, f); if (i) { if (i.nodeType) { m.appendChild(i) } else { g.setHTML(m, i) } } return !k ? n.appendChild(m) : m }) }, create: function(i, f, g) { return this.add(this.doc.createElement(i), i, f, g, 1) }, createHTML: function(m, f, j) { var l = "", i = this, g; l += "<" + m; for (g in f) { if (f.hasOwnProperty(g)) { l += " " + g + '="' + i.encode(f[g]) + '"' } } if (c.is(j)) { return l + ">" + j + "</" + m + ">" } return l + " />" }, remove: function(h, f) { var g = this; return this.run(h, function(m) { var l, k, j; l = m.parentNode; if (!l) { return null } if (f) { for (j = m.childNodes.length - 1; j >= 0; j--) { g.insertAfter(m.childNodes[j], m) } } if (g.fixPsuedoLeaks) { l = m.cloneNode(true); f = "IELeakGarbageBin"; k = g.get(f) || g.add(g.doc.body, "div", { id: f, style: "display:none" }); k.appendChild(m); k.innerHTML = ""; return l } return l.removeChild(m) }) }, setStyle: function(i, f, g) { var h = this; return h.run(i, function(l) { var k, j; k = l.style; f = f.replace(/-(\D)/g, function(n, m) { return m.toUpperCase() }); if (h.pixelStyles.test(f) && (c.is(g, "number") || /^[\-0-9\.]+$/.test(g))) { g += "px" } switch (f) { case "opacity": if (a) { k.filter = g === "" ? "" : "alpha(opacity=" + (g * 100) + ")"; if (!i.currentStyle || !i.currentStyle.hasLayout) { k.display = "inline-block" } } k[f] = k["-moz-opacity"] = k["-khtml-opacity"] = g || ""; break; case "float": a ? k.styleFloat = g : k.cssFloat = g; break; default: k[f] = g || "" } if (h.settings.update_styles) { h.setAttrib(l, "mce_style") } }) }, getStyle: function(i, f, h) { i = this.get(i); if (!i) { return false } if (this.doc.defaultView && h) { f = f.replace(/[A-Z]/g, function(j) { return "-" + j }); try { return this.doc.defaultView.getComputedStyle(i, null).getPropertyValue(f) } catch (g) { return null } } f = f.replace(/-(\D)/g, function(k, j) { return j.toUpperCase() }); if (f == "float") { f = a ? "styleFloat" : "cssFloat" } if (i.currentStyle && h) { return i.currentStyle[f] } return i.style[f] }, setStyles: function(i, j) { var g = this, h = g.settings, f; f = h.update_styles; h.update_styles = 0; e(j, function(k, l) { g.setStyle(i, l, k) }); h.update_styles = f; if (h.update_styles) { g.setAttrib(i, h.cssText) } }, setAttrib: function(h, i, f) { var g = this; if (!h || !i) { return } if (g.settings.strict) { i = i.toLowerCase() } return this.run(h, function(k) { var j = g.settings; switch (i) { case "style": if (!b(f, "string")) { e(f, function(l, m) { g.setStyle(k, m, l) }); return } if (j.keep_values) { if (f && !g._isRes(f)) { k.setAttribute("mce_style", f, 2) } else { k.removeAttribute("mce_style", 2) } } k.style.cssText = f; break; case "class": k.className = f || ""; break; case "src": case "href": if (j.keep_values) { if (j.url_converter) { f = j.url_converter.call(j.url_converter_scope || g, f, i, k) } g.setAttrib(k, "mce_" + i, f, 2) } break; case "shape": k.setAttribute("mce_style", f); break } if (b(f) && f !== null && f.length !== 0) { k.setAttribute(i, "" + f, 2) } else { k.removeAttribute(i, 2) } }) }, setAttribs: function(g, h) { var f = this; return this.run(g, function(i) { e(h, function(j, k) { f.setAttrib(i, k, j) }) }) }, getAttrib: function(i, j, h) { var f, g = this; i = g.get(i); if (!i || i.nodeType !== 1) { return false } if (!b(h)) { h = "" } if (/^(src|href|style|coords|shape)$/.test(j)) { f = i.getAttribute("mce_" + j); if (f) { return f } } if (a && g.props[j]) { f = i[g.props[j]]; f = f && f.nodeValue ? f.nodeValue : f } if (!f) { f = i.getAttribute(j, 2) } if (/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(j)) { if (i[g.props[j]] === true && f === "") { return j } return f ? j : "" } if (i.nodeName === "FORM" && i.getAttributeNode(j)) { return i.getAttributeNode(j).nodeValue } if (j === "style") { f = f || i.style.cssText; if (f) { f = g.serializeStyle(g.parseStyle(f)); if (g.settings.keep_values && !g._isRes(f)) { i.setAttribute("mce_style", f) } } } if (d && j === "class" && f) { f = f.replace(/(apple|webkit)\-[a-z\-]+/gi, "") } if (a) { switch (j) { case "rowspan": case "colspan": if (f === 1) { f = "" } break; case "size": if (f === "+0" || f === 20 || f === 0) { f = "" } break; case "width": case "height": case "vspace": case "checked": case "disabled": case "readonly": if (f === 0) { f = "" } break; case "hspace": if (f === -1) { f = "" } break; case "maxlength": case "tabindex": if (f === 32768 || f === 2147483647 || f === "32768") { f = "" } break; case "multiple": case "compact": case "noshade": case "nowrap": if (f === 65535) { return j } return h; case "shape": f = f.toLowerCase(); break; default: if (j.indexOf("on") === 0 && f) { f = ("" + f).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, "$1") } } } return (f !== undefined && f !== null && f !== "") ? "" + f : h }, getPos: function(m, i) { var g = this, f = 0, l = 0, j, k = g.doc, h; m = g.get(m); i = i || k.body; if (m) { if (a && !g.stdMode) { m = m.getBoundingClientRect(); j = g.boxModel ? k.documentElement : k.body; f = g.getStyle(g.select("html")[0], "borderWidth"); f = (f == "medium" || g.boxModel && !g.isIE6) && 2 || f; m.top += g.win.self != g.win.top ? 2 : 0; return { x: m.left + j.scrollLeft - f, y: m.top + j.scrollTop - f} } h = m; while (h && h != i && h.nodeType) { f += h.offsetLeft || 0; l += h.offsetTop || 0; h = h.offsetParent } h = m.parentNode; while (h && h != i && h.nodeType) { f -= h.scrollLeft || 0; l -= h.scrollTop || 0; h = h.parentNode } } return { x: f, y: l} }, parseStyle: function(h) { var i = this, j = i.settings, k = {}; if (!h) { return k } function f(w, q, v) { var o, u, m, n; o = k[w + "-top" + q]; if (!o) { return } u = k[w + "-right" + q]; if (o != u) { return } m = k[w + "-bottom" + q]; if (u != m) { return } n = k[w + "-left" + q]; if (m != n) { return } k[v] = n; delete k[w + "-top" + q]; delete k[w + "-right" + q]; delete k[w + "-bottom" + q]; delete k[w + "-left" + q] } function g(n, m, l, p) { var o; o = k[m]; if (!o) { return } o = k[l]; if (!o) { return } o = k[p]; if (!o) { return } k[n] = k[m] + " " + k[l] + " " + k[p]; delete k[m]; delete k[l]; delete k[p] } h = h.replace(/&(#?[a-z0-9]+);/g, "&$1_MCE_SEMI_"); e(h.split(";"), function(m) { var l, n = []; if (m) { m = m.replace(/_MCE_SEMI_/g, ";"); m = m.replace(/url\([^\)]+\)/g, function(o) { n.push(o); return "url(" + n.length + ")" }); m = m.split(":"); l = c.trim(m[1]); l = l.replace(/url\(([^\)]+)\)/g, function(p, o) { return n[parseInt(o) - 1] }); l = l.replace(/rgb\([^\)]+\)/g, function(o) { return i.toHex(o) }); if (j.url_converter) { l = l.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g, function(o, p) { return "url(" + j.url_converter.call(j.url_converter_scope || i, i.decode(p), "style", null) + ")" }) } k[c.trim(m[0]).toLowerCase()] = l } }); f("border", "", "border"); f("border", "-width", "border-width"); f("border", "-color", "border-color"); f("border", "-style", "border-style"); f("padding", "", "padding"); f("margin", "", "margin"); g("border", "border-width", "border-style", "border-color"); if (a) { if (k.border == "medium none") { k.border = "" } } return k }, serializeStyle: function(g) { var f = ""; e(g, function(i, h) { if (h && i) { if (c.isGecko && h.indexOf("-moz-") === 0) { return } switch (h) { case "color": case "background-color": i = i.toLowerCase(); break } f += (f ? " " : "") + h + ": " + i + ";" } }); return f }, loadCSS: function(f) { var h = this, i = h.doc, g; if (!f) { f = "" } g = h.select("head")[0]; e(f.split(","), function(j) { var k; if (h.files[j]) { return } h.files[j] = true; k = h.create("link", { rel: "stylesheet", href: c._addVer(j) }); if (a && i.documentMode) { k.onload = function() { i.recalc(); k.onload = null } } g.appendChild(k) }) }, addClass: function(f, g) { return this.run(f, function(h) { var i; if (!g) { return 0 } if (this.hasClass(h, g)) { return h.className } i = this.removeClass(h, g); return h.className = (i != "" ? (i + " ") : "") + g }) }, removeClass: function(h, i) { var f = this, g; return f.run(h, function(k) { var j; if (f.hasClass(k, i)) { if (!g) { g = new RegExp("(^|\\s+)" + i + "(\\s+|$)", "g") } j = k.className.replace(g, " "); return k.className = c.trim(j != " " ? j : "") } return k.className }) }, hasClass: function(g, f) { g = this.get(g); if (!g || !f) { return false } return (" " + g.className + " ").indexOf(" " + f + " ") !== -1 }, show: function(f) { return this.setStyle(f, "display", "block") }, hide: function(f) { return this.setStyle(f, "display", "none") }, isHidden: function(f) { f = this.get(f); return !f || f.style.display == "none" || this.getStyle(f, "display") == "none" }, uniqueId: function(f) { return (!f ? "mce_" : f) + (this.counter++) }, setHTML: function(i, g) { var f = this; return this.run(i, function(m) { var h, k, j, q, l, h; g = f.processHTML(g); if (a) { function o() { try { m.innerHTML = "<br />" + g; m.removeChild(m.firstChild) } catch (n) { while (m.firstChild) { m.firstChild.removeNode() } h = f.create("div"); h.innerHTML = "<br />" + g; e(h.childNodes, function(r, p) { if (p) { m.appendChild(r) } }) } } if (f.settings.fix_ie_paragraphs) { g = g.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi, '<p$1 mce_keep="true">&nbsp;</p>') } o(); if (f.settings.fix_ie_paragraphs) { j = m.getElementsByTagName("p"); for (k = j.length - 1, h = 0; k >= 0; k--) { q = j[k]; if (!q.hasChildNodes()) { if (!q.mce_keep) { h = 1; break } q.removeAttribute("mce_keep") } } } if (h) { g = g.replace(/<p ([^>]+)>|<p>/ig, '<div $1 mce_tmp="1">'); g = g.replace(/<\/p>/g, "</div>"); o(); if (f.settings.fix_ie_paragraphs) { j = m.getElementsByTagName("DIV"); for (k = j.length - 1; k >= 0; k--) { q = j[k]; if (q.mce_tmp) { l = f.doc.createElement("p"); q.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi, function(p, n) { var r; if (n !== "mce_tmp") { r = q.getAttribute(n); if (!r && n === "class") { r = q.className } l.setAttribute(n, r) } }); for (h = 0; h < q.childNodes.length; h++) { l.appendChild(q.childNodes[h].cloneNode(true)) } q.swapNode(l) } } } } } else { m.innerHTML = g } return g }) }, processHTML: function(j) { var g = this, i = g.settings, k = []; if (!i.process_html) { return j } if (c.isGecko) { j = j.replace(/<(\/?)strong>|<strong( [^>]+)>/gi, "<$1b$2>"); j = j.replace(/<(\/?)em>|<em( [^>]+)>/gi, "<$1i$2>") } else { if (a) { j = j.replace(/&apos;/g, "&#39;"); j = j.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\"\']?(false|0)[\"\']?/gi, "") } } j = j.replace(/<a( )([^>]+)\/>|<a\/>/gi, "<a$1$2></a>"); if (i.keep_values) { if (/<script|noscript|style/i.test(j)) { function f(h) { h = h.replace(/(<!--\[CDATA\[|\]\]-->)/g, "\n"); h = h.replace(/^[\r\n]*|[\r\n]*$/g, ""); h = h.replace(/^\s*(\/\/\s*<!--|\/\/\s*<!\[CDATA\[|<!--|<!\[CDATA\[)[\r\n]*/g, ""); h = h.replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->|\]\]-->)\s*$/g, ""); return h } j = j.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/gi, function(h, m, l) { if (!m) { m = ' type="text/javascript"' } m = m.replace(/src=\"([^\"]+)\"?/i, function(n, o) { if (i.url_converter) { o = g.encode(i.url_converter.call(i.url_converter_scope || g, g.decode(o), "src", "script")) } return 'mce_src="' + o + '"' }); if (c.trim(l)) { k.push(f(l)); l = "<!--\nMCE_SCRIPT:" + (k.length - 1) + "\n// -->" } return "<mce:script" + m + ">" + l + "</mce:script>" }); j = j.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/gi, function(h, m, l) { if (l) { k.push(f(l)); l = "<!--\nMCE_SCRIPT:" + (k.length - 1) + "\n-->" } return "<mce:style" + m + ">" + l + "</mce:style><style " + m + ' mce_bogus="1">' + l + "</style>" }); j = j.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g, function(h, m, l) { return "<mce:noscript" + m + "><!--" + g.encode(l).replace(/--/g, "&#45;&#45;") + "--></mce:noscript>" }) } j = j.replace(/<!\[CDATA\[([\s\S]+)\]\]>/g, "<!--[CDATA[$1]]-->"); j = j.replace(/<([\w:]+) [^>]*(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)[^>]*>/gi, function(l) { function h(o, m, n) { if (n === "false" || n === "0") { return "" } return " " + m + '="' + m + '"' } l = l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=[\"]([^\"]+)[\"]/gi, h); l = l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=[\']([^\']+)[\']/gi, h); l = l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=([^\s\"\'>]+)/gi, h); l = l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)([\s>])/gi, ' $1="$1"$2'); return l }); j = j.replace(/<([\w:]+) [^>]*(src|href|style|shape|coords)[^>]*>/gi, function(h, m) { function l(o, n, q) { var p = q; if (h.indexOf("mce_" + n) != -1) { return o } if (n == "style") { if (g._isRes(q)) { return o } p = g.encode(g.serializeStyle(g.parseStyle(p))) } else { if (n != "coords" && n != "shape") { if (i.url_converter) { p = g.encode(i.url_converter.call(i.url_converter_scope || g, g.decode(q), n, m)) } } } return " " + n + '="' + q + '" mce_' + n + '="' + p + '"' } h = h.replace(/ (src|href|style|coords|shape)=[\"]([^\"]+)[\"]/gi, l); h = h.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi, l); return h.replace(/ (src|href|style|coords|shape)=([^\s\"\'>]+)/gi, l) }); j = j.replace(/MCE_SCRIPT:([0-9]+)/g, function(l, h) { return k[h] }) } return j }, getOuterHTML: function(f) { var g; f = this.get(f); if (!f) { return null } if (f.outerHTML !== undefined) { return f.outerHTML } g = (f.ownerDocument || this.doc).createElement("body"); g.appendChild(f.cloneNode(true)); return g.innerHTML }, setOuterHTML: function(j, g, k) { var f = this; function i(m, l, p) { var q, o; o = p.createElement("body"); o.innerHTML = l; q = o.lastChild; while (q) { f.insertAfter(q.cloneNode(true), m); q = q.previousSibling } f.remove(m) } return this.run(j, function(l) { l = f.get(l); if (l.nodeType == 1) { k = k || l.ownerDocument || f.doc; if (a) { try { if (a && l.nodeType == 1) { l.outerHTML = g } else { i(l, g, k) } } catch (h) { i(l, g, k) } } else { i(l, g, k) } } }) }, decode: function(g) { var h, i, f; if (/&[^;]+;/.test(g)) { h = this.doc.createElement("div"); h.innerHTML = g; i = h.firstChild; f = ""; if (i) { do { f += i.nodeValue } while (i.nextSibling) } return f || g } return g }, encode: function(f) { return f ? ("" + f).replace(/[<>&\"]/g, function(h, g) { switch (h) { case "&": return "&amp;"; case '"': return "&quot;"; case "<": return "&lt;"; case ">": return "&gt;" } return h }) : f }, insertAfter: function(h, g) { var f = this; g = f.get(g); return this.run(h, function(k) { var j, i; j = g.parentNode; i = g.nextSibling; if (i) { j.insertBefore(k, i) } else { j.appendChild(k) } return k }) }, isBlock: function(f) { if (f.nodeType && f.nodeType !== 1) { return false } f = f.nodeName || f; return /^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TH|TBODY|TR|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(f) }, replace: function(i, h, f) { var g = this; if (b(h, "array")) { i = i.cloneNode(true) } return g.run(h, function(j) { if (f) { e(j.childNodes, function(k) { i.appendChild(k.cloneNode(true)) }) } if (g.fixPsuedoLeaks && j.nodeType === 1) { j.parentNode.insertBefore(i, j); g.remove(j); return i } return j.parentNode.replaceChild(i, j) }) }, findCommonAncestor: function(h, f) { var i = h, g; while (i) { g = f; while (g && i != g) { g = g.parentNode } if (i == g) { break } i = i.parentNode } if (!i && h.ownerDocument) { return h.ownerDocument.documentElement } return i }, toHex: function(f) { var h = /^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(f); function g(i) { i = parseInt(i).toString(16); return i.length > 1 ? i : "0" + i } if (h) { f = "#" + g(h[1]) + g(h[2]) + g(h[3]); return f } return f }, getClasses: function() { var l = this, g = [], k, m = {}, n = l.settings.class_filter, j; if (l.classes) { return l.classes } function o(f) { e(f.imports, function(i) { o(i) }); e(f.cssRules || f.rules, function(i) { switch (i.type || 1) { case 1: if (i.selectorText) { e(i.selectorText.split(","), function(p) { p = p.replace(/^\s*|\s*$|^\s\./g, ""); if (/\.mce/.test(p) || !/\.[\w\-]+$/.test(p)) { return } j = p; p = p.replace(/.*\.([a-z0-9_\-]+).*/i, "$1"); if (n && !(p = n(p, j))) { return } if (!m[p]) { g.push({ "class": p }); m[p] = 1 } }) } break; case 3: o(i.styleSheet); break } }) } try { e(l.doc.styleSheets, o) } catch (h) { } if (g.length > 0) { l.classes = g } return g }, run: function(j, i, h) { var g = this, k; if (g.doc && typeof (j) === "string") { j = g.get(j) } if (!j) { return false } h = h || this; if (!j.nodeType && (j.length || j.length === 0)) { k = []; e(j, function(l, f) { if (l) { if (typeof (l) == "string") { l = g.doc.getElementById(l) } k.push(i.call(h, l, f)) } }); return k } return i.call(h, j) }, getAttribs: function(g) { var f; g = this.get(g); if (!g) { return [] } if (a) { f = []; if (g.nodeName == "OBJECT") { return g.attributes } if (g.nodeName === "OPTION" && this.getAttrib(g, "selected")) { f.push({ specified: 1, nodeName: "selected" }) } g.cloneNode(false).outerHTML.replace(/<\/?[\w:]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=\w+|>/gi, "").replace(/[\w:]+/gi, function(h) { f.push({ specified: 1, nodeName: h }) }); return f } return g.attributes }, destroy: function(g) { var f = this; if (f.events) { f.events.destroy() } f.win = f.doc = f.root = f.events = null; if (!g) { c.removeUnload(f.destroy) } }, createRng: function() { var f = this.doc; return f.createRange ? f.createRange() : new c.dom.Range(this) }, split: function(l, k, o) { var p = this, f = p.createRng(), m, j, n; function g(r, q) { r = r[q]; if (r && r[q] && r[q].nodeType == 1 && i(r[q])) { p.remove(r[q]) } } function i(q) { q = p.getOuterHTML(q); q = q.replace(/<(img|hr|table)/gi, "-"); q = q.replace(/<[^>]+>/g, ""); return q.replace(/[ \t\r\n]+|&nbsp;|&#160;/g, "") == "" } function h(r) { var q = 0; while (r.previousSibling) { q++; r = r.previousSibling } return q } if (l && k) { f.setStart(l.parentNode, h(l)); f.setEnd(k.parentNode, h(k)); m = f.extractContents(); f = p.createRng(); f.setStart(k.parentNode, h(k) + 1); f.setEnd(l.parentNode, h(l) + 1); j = f.extractContents(); n = l.parentNode; g(m, "lastChild"); if (!i(m)) { n.insertBefore(m, l) } if (o) { n.replaceChild(o, k) } else { n.insertBefore(k, l) } g(j, "firstChild"); if (!i(j)) { n.insertBefore(j, l) } p.remove(l); return o || k } }, bind: function(j, f, i, h) { var g = this; if (!g.events) { g.events = new c.dom.EventUtils() } return g.events.add(j, f, i, h || this) }, unbind: function(i, f, h) { var g = this; if (!g.events) { g.events = new c.dom.EventUtils() } return g.events.remove(i, f, h) }, _findSib: function(j, g, h) { var i = this, k = g; if (j) { if (b(k, "string")) { k = function(f) { return i.is(f, g) } } for (j = j[h]; j; j = j[h]) { if (k(j)) { return j } } } return null }, _isRes: function(f) { return /^(top|left|bottom|right|width|height)/i.test(f) || /;\s*(top|left|bottom|right|width|height)/i.test(f) } }); c.DOM = new c.dom.DOMUtils(document, { process_html: 0 }) })(tinymce); (function(f) { var h = 0, c = 1, e = 2, d = tinymce.extend; function g(m, k) { var j, l; if (m.parentNode != k) { return -1 } for (l = k.firstChild, j = 0; l != m; l = l.nextSibling) { j++ } return j } function b(k) { var j = 0; while (k.previousSibling) { j++; k = k.previousSibling } return j } function i(j, k) { var l; if (j.nodeType == 3) { return j } if (k < 0) { return j } l = j.firstChild; while (l != null && k > 0) { --k; l = l.nextSibling } if (l != null) { return l } return j } function a(k) { var j = k.doc; d(this, { dom: k, startContainer: j, startOffset: 0, endContainer: j, endOffset: 0, collapsed: true, commonAncestorContainer: j, START_TO_START: 0, START_TO_END: 1, END_TO_END: 2, END_TO_START: 3 }) } d(a.prototype, { setStart: function(k, j) { this._setEndPoint(true, k, j) }, setEnd: function(k, j) { this._setEndPoint(false, k, j) }, setStartBefore: function(j) { this.setStart(j.parentNode, b(j)) }, setStartAfter: function(j) { this.setStart(j.parentNode, b(j) + 1) }, setEndBefore: function(j) { this.setEnd(j.parentNode, b(j)) }, setEndAfter: function(j) { this.setEnd(j.parentNode, b(j) + 1) }, collapse: function(k) { var j = this; if (k) { j.endContainer = j.startContainer; j.endOffset = j.startOffset } else { j.startContainer = j.endContainer; j.startOffset = j.endOffset } j.collapsed = true }, selectNode: function(j) { this.setStartBefore(j); this.setEndAfter(j) }, selectNodeContents: function(j) { this.setStart(j, 0); this.setEnd(j, j.nodeType === 1 ? j.childNodes.length : j.nodeValue.length) }, compareBoundaryPoints: function(m, n) { var l = this, p = l.startContainer, o = l.startOffset, k = l.endContainer, j = l.endOffset; if (m === 0) { return l._compareBoundaryPoints(p, o, p, o) } if (m === 1) { return l._compareBoundaryPoints(p, o, k, j) } if (m === 2) { return l._compareBoundaryPoints(k, j, k, j) } if (m === 3) { return l._compareBoundaryPoints(k, j, p, o) } }, deleteContents: function() { this._traverse(e) }, extractContents: function() { return this._traverse(h) }, cloneContents: function() { return this._traverse(c) }, insertNode: function(m) { var j = this, l, k; if (m.nodeType === 3 || m.nodeType === 4) { l = j.startContainer.splitText(j.startOffset); j.startContainer.parentNode.insertBefore(m, l) } else { if (j.startContainer.childNodes.length > 0) { k = j.startContainer.childNodes[j.startOffset] } j.startContainer.insertBefore(m, k) } }, surroundContents: function(l) { var j = this, k = j.extractContents(); j.insertNode(l); l.appendChild(k); j.selectNode(l) }, cloneRange: function() { var j = this; return d(new a(j.dom), { startContainer: j.startContainer, startOffset: j.startOffset, endContainer: j.endContainer, endOffset: j.endOffset, collapsed: j.collapsed, commonAncestorContainer: j.commonAncestorContainer }) }, _isCollapsed: function() { return (this.startContainer == this.endContainer && this.startOffset == this.endOffset) }, _compareBoundaryPoints: function(m, p, k, o) { var q, l, j, r, t, s; if (m == k) { if (p == o) { return 0 } else { if (p < o) { return -1 } else { return 1 } } } q = k; while (q && q.parentNode != m) { q = q.parentNode } if (q) { l = 0; j = m.firstChild; while (j != q && l < p) { l++; j = j.nextSibling } if (p <= l) { return -1 } else { return 1 } } q = m; while (q && q.parentNode != k) { q = q.parentNode } if (q) { l = 0; j = k.firstChild; while (j != q && l < o) { l++; j = j.nextSibling } if (l < o) { return -1 } else { return 1 } } r = this.dom.findCommonAncestor(m, k); t = m; while (t && t.parentNode != r) { t = t.parentNode } if (!t) { t = r } s = k; while (s && s.parentNode != r) { s = s.parentNode } if (!s) { s = r } if (t == s) { return 0 } j = r.firstChild; while (j) { if (j == t) { return -1 } if (j == s) { return 1 } j = j.nextSibling } }, _setEndPoint: function(k, q, p) { var l = this, j, m; if (k) { l.startContainer = q; l.startOffset = p } else { l.endContainer = q; l.endOffset = p } j = l.endContainer; while (j.parentNode) { j = j.parentNode } m = l.startContainer; while (m.parentNode) { m = m.parentNode } if (m != j) { l.collapse(k) } else { if (l._compareBoundaryPoints(l.startContainer, l.startOffset, l.endContainer, l.endOffset) > 0) { l.collapse(k) } } l.collapsed = l._isCollapsed(); l.commonAncestorContainer = l.dom.findCommonAncestor(l.startContainer, l.endContainer) }, _traverse: function(r) { var s = this, q, m = 0, v = 0, k, o, l, n, j, u; if (s.startContainer == s.endContainer) { return s._traverseSameContainer(r) } for (q = s.endContainer, k = q.parentNode; k != null; q = k, k = k.parentNode) { if (k == s.startContainer) { return s._traverseCommonStartContainer(q, r) } ++m } for (q = s.startContainer, k = q.parentNode; k != null; q = k, k = k.parentNode) { if (k == s.endContainer) { return s._traverseCommonEndContainer(q, r) } ++v } o = v - m; l = s.startContainer; while (o > 0) { l = l.parentNode; o-- } n = s.endContainer; while (o < 0) { n = n.parentNode; o++ } for (j = l.parentNode, u = n.parentNode; j != u; j = j.parentNode, u = u.parentNode) { l = j; n = u } return s._traverseCommonAncestors(l, n, r) }, _traverseSameContainer: function(o) { var r = this, q, u, j, k, l, p, m; if (o != e) { q = r.dom.doc.createDocumentFragment() } if (r.startOffset == r.endOffset) { return q } if (r.startContainer.nodeType == 3) { u = r.startContainer.nodeValue; j = u.substring(r.startOffset, r.endOffset); if (o != c) { r.startContainer.deleteData(r.startOffset, r.endOffset - r.startOffset); r.collapse(true) } if (o == e) { return null } q.appendChild(r.dom.doc.createTextNode(j)); return q } k = i(r.startContainer, r.startOffset); l = r.endOffset - r.startOffset; while (l > 0) { p = k.nextSibling; m = r._traverseFullySelected(k, o); if (q) { q.appendChild(m) } --l; k = p } if (o != c) { r.collapse(true) } return q }, _traverseCommonStartContainer: function(j, p) { var s = this, r, k, l, m, q, o; if (p != e) { r = s.dom.doc.createDocumentFragment() } k = s._traverseRightBoundary(j, p); if (r) { r.appendChild(k) } l = g(j, s.startContainer); m = l - s.startOffset; if (m <= 0) { if (p != c) { s.setEndBefore(j); s.collapse(false) } return r } k = j.previousSibling; while (m > 0) { q = k.previousSibling; o = s._traverseFullySelected(k, p); if (r) { r.insertBefore(o, r.firstChild) } --m; k = q } if (p != c) { s.setEndBefore(j); s.collapse(false) } return r }, _traverseCommonEndContainer: function(m, p) { var s = this, r, o, j, k, q, l; if (p != e) { r = s.dom.doc.createDocumentFragment() } j = s._traverseLeftBoundary(m, p); if (r) { r.appendChild(j) } o = g(m, s.endContainer); ++o; k = s.endOffset - o; j = m.nextSibling; while (k > 0) { q = j.nextSibling; l = s._traverseFullySelected(j, p); if (r) { r.appendChild(l) } --k; j = q } if (p != c) { s.setStartAfter(m); s.collapse(true) } return r }, _traverseCommonAncestors: function(p, j, s) { var w = this, l, v, o, q, r, k, u, m; if (s != e) { v = w.dom.doc.createDocumentFragment() } l = w._traverseLeftBoundary(p, s); if (v) { v.appendChild(l) } o = p.parentNode; q = g(p, o); r = g(j, o); ++q; k = r - q; u = p.nextSibling; while (k > 0) { m = u.nextSibling; l = w._traverseFullySelected(u, s); if (v) { v.appendChild(l) } u = m; --k } l = w._traverseRightBoundary(j, s); if (v) { v.appendChild(l) } if (s != c) { w.setStartAfter(p); w.collapse(true) } return v }, _traverseRightBoundary: function(p, q) { var s = this, l = i(s.endContainer, s.endOffset - 1), r, o, n, j, k; var m = l != s.endContainer; if (l == p) { return s._traverseNode(l, m, false, q) } r = l.parentNode; o = s._traverseNode(r, false, false, q); while (r != null) { while (l != null) { n = l.previousSibling; j = s._traverseNode(l, m, false, q); if (q != e) { o.insertBefore(j, o.firstChild) } m = true; l = n } if (r == p) { return o } l = r.previousSibling; r = r.parentNode; k = s._traverseNode(r, false, false, q); if (q != e) { k.appendChild(o) } o = k } return null }, _traverseLeftBoundary: function(p, q) { var s = this, m = i(s.startContainer, s.startOffset); var n = m != s.startContainer, r, o, l, j, k; if (m == p) { return s._traverseNode(m, n, true, q) } r = m.parentNode; o = s._traverseNode(r, false, true, q); while (r != null) { while (m != null) { l = m.nextSibling; j = s._traverseNode(m, n, true, q); if (q != e) { o.appendChild(j) } n = true; m = l } if (r == p) { return o } m = r.nextSibling; r = r.parentNode; k = s._traverseNode(r, false, true, q); if (q != e) { k.appendChild(o) } o = k } return null }, _traverseNode: function(j, o, r, s) { var u = this, m, l, p, k, q; if (o) { return u._traverseFullySelected(j, s) } if (j.nodeType == 3) { m = j.nodeValue; if (r) { k = u.startOffset; l = m.substring(k); p = m.substring(0, k) } else { k = u.endOffset; l = m.substring(0, k); p = m.substring(k) } if (s != c) { j.nodeValue = p } if (s == e) { return null } q = j.cloneNode(false); q.nodeValue = l; return q } if (s == e) { return null } return j.cloneNode(false) }, _traverseFullySelected: function(l, k) { var j = this; if (k != e) { return k == c ? l.cloneNode(true) : l } l.parentNode.removeChild(l); return null } }); f.Range = a })(tinymce.dom); (function() { function a(e) { var d = this, h = "\uFEFF", b, g; function c(j, i) { if (j && i) { if (j.item && i.item && j.item(0) === i.item(0)) { return 1 } if (j.isEqual && i.isEqual && i.isEqual(j)) { return 1 } } return 0 } function f() { var m = e.dom, j = e.getRng(), s = m.createRng(), p, k, n, q, o, l; function i(v) { var t = v.parentNode.childNodes, u; for (u = t.length - 1; u >= 0; u--) { if (t[u] == v) { return u } } return -1 } function r(v) { var t = j.duplicate(), B, y, u, w, x = 0, z = 0, A, C; t.collapse(v); B = t.parentElement(); t.pasteHTML(h); u = B.childNodes; for (y = 0; y < u.length; y++) { w = u[y]; if (y > 0 && (w.nodeType !== 3 || u[y - 1].nodeType !== 3)) { z++ } if (w.nodeType === 3) { A = w.nodeValue.indexOf(h); if (A !== -1) { x += A; break } x += w.nodeValue.length } else { x = 0 } } t.moveStart("character", -1); t.text = ""; return { index: z, offset: x, parent: B} } n = j.item ? j.item(0) : j.parentElement(); if (n.ownerDocument != m.doc) { return s } if (j.item || !n.hasChildNodes()) { s.setStart(n.parentNode, i(n)); s.setEnd(s.startContainer, s.startOffset + 1); return s } l = e.isCollapsed(); p = r(true); k = r(false); p.parent.normalize(); k.parent.normalize(); q = p.parent.childNodes[Math.min(p.index, p.parent.childNodes.length - 1)]; if (q.nodeType != 3) { s.setStart(p.parent, p.index) } else { s.setStart(p.parent.childNodes[p.index], p.offset) } o = k.parent.childNodes[Math.min(k.index, k.parent.childNodes.length - 1)]; if (o.nodeType != 3) { if (!l) { k.index++ } s.setEnd(k.parent, k.index) } else { s.setEnd(k.parent.childNodes[k.index], k.offset) } if (!l) { q = s.startContainer; if (q.nodeType == 1) { s.setStart(q, Math.min(s.startOffset, q.childNodes.length)) } o = s.endContainer; if (o.nodeType == 1) { s.setEnd(o, Math.min(s.endOffset, o.childNodes.length)) } } d.addRange(s); return s } this.addRange = function(j) { var o, m = e.dom.doc.body, p, k, q, l, n, i; q = j.startContainer; l = j.startOffset; n = j.endContainer; i = j.endOffset; o = m.createTextRange(); q = q.nodeType == 1 ? q.childNodes[Math.min(l, q.childNodes.length - 1)] : q; n = n.nodeType == 1 ? n.childNodes[Math.min(l == i ? i : i - 1, n.childNodes.length - 1)] : n; if (q == n && q.nodeType == 1) { if (/^(IMG|TABLE)$/.test(q.nodeName) && l != i) { o = m.createControlRange(); o.addElement(q) } else { o = m.createTextRange(); if (!q.hasChildNodes() && q.canHaveHTML) { q.innerHTML = h } o.moveToElementText(q); if (q.innerHTML == h) { o.collapse(true); q.removeChild(q.firstChild) } } if (l == i) { o.collapse(i <= j.endContainer.childNodes.length - 1) } o.select(); return } function r(t, v) { var u, s, w; if (t.nodeType != 3) { return -1 } u = t.nodeValue; s = m.createTextRange(); t.nodeValue = u.substring(0, v) + h + u.substring(v); s.moveToElementText(t.parentNode); s.findText(h); w = Math.abs(s.moveStart("character", -1048575)); t.nodeValue = u; return w } if (j.collapsed) { pos = r(q, l); o = m.createTextRange(); o.move("character", pos); o.select(); return } else { if (q == n && q.nodeType == 3) { p = r(q, l); o = m.createTextRange(); o.move("character", p); o.moveEnd("character", i - l); o.select(); return } p = r(q, l); k = r(n, i); o = m.createTextRange(); if (p == -1) { o.moveToElementText(q); p = 0 } else { o.move("character", p) } tmpRng = m.createTextRange(); if (k == -1) { tmpRng.moveToElementText(n) } else { tmpRng.move("character", k) } o.setEndPoint("EndToEnd", tmpRng); o.select(); return } }; this.getRangeAt = function() { if (!b || !c(g, e.getRng())) { b = f(); g = e.getRng() } return b }; this.destroy = function() { g = b = null } } tinymce.dom.TridentSelection = a })(); (function() { var p = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g, i = 0, d = Object.prototype.toString, n = false; var b = function(D, t, A, v) { A = A || []; var e = t = t || document; if (t.nodeType !== 1 && t.nodeType !== 9) { return [] } if (!D || typeof D !== "string") { return A } var B = [], C, y, G, F, z, s, r = true, w = o(t); p.lastIndex = 0; while ((C = p.exec(D)) !== null) { B.push(C[1]); if (C[2]) { s = RegExp.rightContext; break } } if (B.length > 1 && j.exec(D)) { if (B.length === 2 && f.relative[B[0]]) { y = g(B[0] + B[1], t) } else { y = f.relative[B[0]] ? [t] : b(B.shift(), t); while (B.length) { D = B.shift(); if (f.relative[D]) { D += B.shift() } y = g(D, y) } } } else { if (!v && B.length > 1 && t.nodeType === 9 && !w && f.match.ID.test(B[0]) && !f.match.ID.test(B[B.length - 1])) { var H = b.find(B.shift(), t, w); t = H.expr ? b.filter(H.expr, H.set)[0] : H.set[0] } if (t) { var H = v ? { expr: B.pop(), set: a(v)} : b.find(B.pop(), B.length === 1 && (B[0] === "~" || B[0] === "+") && t.parentNode ? t.parentNode : t, w); y = H.expr ? b.filter(H.expr, H.set) : H.set; if (B.length > 0) { G = a(y) } else { r = false } while (B.length) { var u = B.pop(), x = u; if (!f.relative[u]) { u = "" } else { x = B.pop() } if (x == null) { x = t } f.relative[u](G, x, w) } } else { G = B = [] } } if (!G) { G = y } if (!G) { throw "Syntax error, unrecognized expression: " + (u || D) } if (d.call(G) === "[object Array]") { if (!r) { A.push.apply(A, G) } else { if (t && t.nodeType === 1) { for (var E = 0; G[E] != null; E++) { if (G[E] && (G[E] === true || G[E].nodeType === 1 && h(t, G[E]))) { A.push(y[E]) } } } else { for (var E = 0; G[E] != null; E++) { if (G[E] && G[E].nodeType === 1) { A.push(y[E]) } } } } } else { a(G, A) } if (s) { b(s, e, A, v); b.uniqueSort(A) } return A }; b.uniqueSort = function(r) { if (c) { n = false; r.sort(c); if (n) { for (var e = 1; e < r.length; e++) { if (r[e] === r[e - 1]) { r.splice(e--, 1) } } } } }; b.matches = function(e, r) { return b(e, null, null, r) }; b.find = function(x, e, y) { var w, u; if (!x) { return [] } for (var t = 0, s = f.order.length; t < s; t++) { var v = f.order[t], u; if ((u = f.match[v].exec(x))) { var r = RegExp.leftContext; if (r.substr(r.length - 1) !== "\\") { u[1] = (u[1] || "").replace(/\\/g, ""); w = f.find[v](u, e, y); if (w != null) { x = x.replace(f.match[v], ""); break } } } } if (!w) { w = e.getElementsByTagName("*") } return { set: w, expr: x} }; b.filter = function(A, z, D, t) { var s = A, F = [], x = z, v, e, w = z && z[0] && o(z[0]); while (A && z.length) { for (var y in f.filter) { if ((v = f.match[y].exec(A)) != null) { var r = f.filter[y], E, C; e = false; if (x == F) { F = [] } if (f.preFilter[y]) { v = f.preFilter[y](v, x, D, F, t, w); if (!v) { e = E = true } else { if (v === true) { continue } } } if (v) { for (var u = 0; (C = x[u]) != null; u++) { if (C) { E = r(C, v, u, x); var B = t ^ !!E; if (D && E != null) { if (B) { e = true } else { x[u] = false } } else { if (B) { F.push(C); e = true } } } } } if (E !== undefined) { if (!D) { x = F } A = A.replace(f.match[y], ""); if (!e) { return [] } break } } } if (A == s) { if (e == null) { throw "Syntax error, unrecognized expression: " + A } else { break } } s = A } return x }; 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\(\)]*)+)\2\))?/ }, attrMap: { "class": "className", "for": "htmlFor" }, attrHandle: { href: function(e) { return e.getAttribute("href") } }, relative: { "+": function(x, e, w) { var u = typeof e === "string", y = u && !/\W/.test(e), v = u && !y; if (y && !w) { e = e.toUpperCase() } for (var t = 0, s = x.length, r; t < s; t++) { if ((r = x[t])) { while ((r = r.previousSibling) && r.nodeType !== 1) { } x[t] = v || r && r.nodeName === e ? r || false : r === e } } if (v) { b.filter(e, x, true) } }, ">": function(w, r, x) { var u = typeof r === "string"; if (u && !/\W/.test(r)) { r = x ? r : r.toUpperCase(); for (var s = 0, e = w.length; s < e; s++) { var v = w[s]; if (v) { var t = v.parentNode; w[s] = t.nodeName === r ? t : false } } } else { for (var s = 0, e = w.length; s < e; s++) { var v = w[s]; if (v) { w[s] = u ? v.parentNode : v.parentNode === r } } if (u) { b.filter(r, w, true) } } }, "": function(t, r, v) { var s = i++, e = q; if (!r.match(/\W/)) { var u = r = v ? r : r.toUpperCase(); e = m } e("parentNode", r, s, t, u, v) }, "~": function(t, r, v) { var s = i++, e = q; if (typeof r === "string" && !r.match(/\W/)) { var u = r = v ? r : r.toUpperCase(); e = m } 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, w) { 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, w, x) { t = " " + t[1].replace(/\\/g, "") + " "; if (x) { return t } for (var u = 0, v; (v = r[u]) != null; u++) { if (v) { if (w ^ (v.className && (" " + v.className + " ").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) { for (var s = 0; e[s] === false; s++) { } return e[s] && o(e[s]) ? r[1] : r[1].toUpperCase() }, 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] = i++; return e }, ATTR: function(u, r, s, e, v, w) { var t = u[1].replace(/\\/g, ""); if (!w && 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 (u[3].match(p).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.toUpperCase() === "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(w, s, t, x) { var r = s[1], u = f.filters[r]; if (u) { return u(w, t, s, x) } else { if (r === "contains") { return (w.textContent || w.innerText || "").indexOf(s[3]) >= 0 } else { if (r === "not") { var v = s[3]; for (var t = 0, e = v.length; t < e; t++) { if (v[t] === w) { return false } } return true } } } }, CHILD: function(e, t) { var w = t[1], r = e; switch (w) { case "only": case "first": while (r = r.previousSibling) { if (r.nodeType === 1) { return false } } if (w == "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], z = t[3]; if (s == 1 && z == 0) { return true } var v = t[0], y = e.parentNode; if (y && (y.sizcache !== v || !e.nodeIndex)) { var u = 0; for (r = y.firstChild; r; r = r.nextSibling) { if (r.nodeType === 1) { r.nodeIndex = ++u } } y.sizcache = v } var x = e.nodeIndex - z; if (s == 0) { return x == 0 } else { return (x % s == 0 && x / 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 === 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), w = e + "", u = t[2], r = t[4]; return e == null ? u === "!=" : u === "=" ? w === r : u === "*=" ? w.indexOf(r) >= 0 : u === "~=" ? (" " + w + " ").indexOf(r) >= 0 : !r ? w && e !== false : u === "!=" ? w != r : u === "^=" ? w.indexOf(r) === 0 : u === "$=" ? w.substr(w.length - r.length) === r : u === "|=" ? w === r || w.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 j = f.match.POS; for (var l in f.match) { f.match[l] = new RegExp(f.match[l].source + /(?![^\[]*\])(?![^\(]*\))/.source) } var a = function(r, e) { r = Array.prototype.slice.call(r); if (e) { e.push.apply(e, r); return e } return r }; try { Array.prototype.slice.call(document.documentElement.childNodes) } catch (k) { a = function(u, t) { var r = t || []; if (d.call(u) === "[object Array]") { Array.prototype.push.apply(r, u) } else { if (typeof u.length === "number") { for (var s = 0, e = u.length; s < e; s++) { r.push(u[s]) } } else { for (var s = 0; u[s]; s++) { r.push(u[s]) } } } return r } } var c; if (document.documentElement.compareDocumentPosition) { c = function(r, e) { var s = r.compareDocumentPosition(e) & 4 ? -1 : r === e ? 0 : 1; if (s === 0) { n = true } return s } } else { if ("sourceIndex" in document.documentElement) { c = function(r, e) { var s = r.sourceIndex - e.sourceIndex; if (s === 0) { n = true } return s } } else { if (document.createRange) { c = function(t, r) { 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) { n = true } return u } } } } (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, w) { if (typeof v.getElementById !== "undefined" && !w) { 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) })(); (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) } } })(); 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(w, v, t, u) { v = v || document; if (!u && v.nodeType === 9 && !o(v)) { try { return a(v.querySelectorAll(w), t) } catch (x) { } } return e(w, v, t, u) }; for (var r in e) { b[r] = e[r] } })() } if (document.getElementsByClassName && document.documentElement.getElementsByClassName) { (function() { var e = document.createElement("div"); e.innerHTML = "<div class='test e'></div><div class='test'></div>"; if (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]) } } })() } function m(r, w, v, A, x, z) { var y = r == "previousSibling" && !z; for (var t = 0, s = A.length; t < s; t++) { var e = A[t]; if (e) { if (y && e.nodeType === 1) { e.sizcache = v; e.sizset = t } 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 === w) { u = e; break } e = e[r] } A[t] = u } } } function q(r, w, v, A, x, z) { var y = r == "previousSibling" && !z; for (var t = 0, s = A.length; t < s; t++) { var e = A[t]; if (e) { if (y && e.nodeType === 1) { e.sizcache = v; e.sizset = t } 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 w !== "string") { if (e === w) { u = true; break } } else { if (b.filter(w, [e]).length > 0) { u = e; break } } } e = e[r] } A[t] = u } } } var h = document.compareDocumentPosition ? function(r, e) { return r.compareDocumentPosition(e) & 16 } : function(r, e) { return r !== e && (r.contains ? r.contains(e) : true) }; var o = function(e) { return e.nodeType === 9 && e.documentElement.nodeName !== "HTML" || !!e.ownerDocument && e.ownerDocument.documentElement.nodeName !== "HTML" }; var g = function(e, x) { var t = [], u = "", v, s = x.nodeType ? [x] : x; while ((v = f.match.PSEUDO.exec(e))) { u += v[0]; e = e.replace(f.match.PSEUDO, "") } e = f.relative[e] ? e + "*" : e; for (var w = 0, r = s.length; w < r; w++) { b(e, s[w], 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) { var b = a.each; a.create("tinymce.dom.Element", { Element: function(g, e) { var c = this, f, d; e = e || {}; c.id = g; c.dom = f = e.dom || a.DOM; c.settings = e; if (!a.isIE) { d = c.dom.get(c.id) } b(["getPos", "getRect", "getParent", "add", "setStyle", "getStyle", "setStyles", "setAttrib", "setAttribs", "getAttrib", "addClass", "removeClass", "hasClass", "getOuterHTML", "setOuterHTML", "remove", "show", "hide", "isHidden", "setHTML", "get"], function(h) { c[h] = function() { var j = [g], k; for (k = 0; k < arguments.length; k++) { j.push(arguments[k]) } j = f[h].apply(f, j); c.update(h); return j } }) }, on: function(e, d, c) { return a.dom.Event.add(this.id, e, d, c) }, getXY: function() { return { x: parseInt(this.getStyle("left")), y: parseInt(this.getStyle("top"))} }, getSize: function() { var c = this.dom.get(this.id); return { w: parseInt(this.getStyle("width") || c.clientWidth), h: parseInt(this.getStyle("height") || c.clientHeight)} }, moveTo: function(c, d) { this.setStyles({ left: c, top: d }) }, moveBy: function(c, e) { var d = this.getXY(); this.moveTo(d.x + c, d.y + e) }, resizeTo: function(c, d) { this.setStyles({ width: c, height: d }) }, resizeBy: function(c, e) { var d = this.getSize(); this.resizeTo(d.w + c, d.h + e) }, update: function(d) { var e = this, c, f = e.dom; if (a.isIE6 && e.settings.blocker) { d = d || ""; if (d.indexOf("get") === 0 || d.indexOf("has") === 0 || d.indexOf("is") === 0) { return } if (d == "remove") { f.remove(e.blocker); return } if (!e.blocker) { e.blocker = f.uniqueId(); c = f.add(e.settings.container || f.getRoot(), "iframe", { id: e.blocker, style: "position:absolute;", frameBorder: 0, src: 'javascript:""' }); f.setStyle(c, "opacity", 0) } else { c = f.get(e.blocker) } f.setStyle(c, "left", e.getStyle("left", 1)); f.setStyle(c, "top", e.getStyle("top", 1)); f.setStyle(c, "width", e.getStyle("width", 1)); f.setStyle(c, "height", e.getStyle("height", 1)); f.setStyle(c, "display", e.getStyle("display", 1)); f.setStyle(c, "zIndex", parseInt(e.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) } 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(i, g) { var f = this, j = f.getRng(), l, k = f.win.document; g = g || { format: "html" }; g.set = true; i = g.content = f.dom.processHTML(i); f.onBeforeSetContent.dispatch(f, g); i = g.content; if (j.insertNode) { i += '<span id="__caret">_</span>'; j.deleteContents(); j.insertNode(f.getRng().createContextualFragment(i)); l = f.dom.get("__caret"); j = k.createRange(); j.setStartBefore(l); j.setEndAfter(l); f.setRng(j); f.dom.remove("__caret") } else { if (j.item) { k.execCommand("Delete", false, null); j = f.getRng() } j.pasteHTML(i) } f.onSetContent.dispatch(f, g) }, getStart: function() { var f = this, g = f.getRng(), h; if (a) { if (g.item) { return g.item(0) } g = g.duplicate(); g.collapse(1); h = g.parentElement(); if (h && h.nodeName == "BODY") { return h.firstChild } return h } else { h = g.startContainer; if (h.nodeName == "BODY") { return h.firstChild } return f.dom.getParent(h, "*") } }, getEnd: function() { var f = this, g = f.getRng(), h; if (a) { if (g.item) { return g.item(0) } g = g.duplicate(); g.collapse(0); h = g.parentElement(); if (h && h.nodeName == "BODY") { return h.lastChild } return h } else { h = g.endContainer; if (h.nodeName == "BODY") { return h.lastChild } return f.dom.getParent(h, "*") } }, getBookmark: function(x) { var j = this, m = j.getRng(), f, n, l, u = j.dom.getViewPort(j.win), v, p, z, o, w = -16777215, k, h = j.dom.getRoot(), g = 0, i = 0, y; n = u.x; l = u.y; if (x) { return { rng: m, scrollX: n, scrollY: l} } if (a) { if (m.item) { v = m.item(0); d(j.dom.select(v.nodeName), function(s, r) { if (v == s) { p = r; return false } }); return { tag: v.nodeName, index: p, scrollX: n, scrollY: l} } f = j.dom.doc.body.createTextRange(); f.moveToElementText(h); f.collapse(true); z = Math.abs(f.move("character", w)); f = m.duplicate(); f.collapse(true); p = Math.abs(f.move("character", w)); f = m.duplicate(); f.collapse(false); o = Math.abs(f.move("character", w)) - p; return { start: p - z, length: o, scrollX: n, scrollY: l} } v = j.getNode(); k = j.getSel(); if (!k) { return null } if (v && v.nodeName == "IMG") { return { scrollX: n, scrollY: l} } function q(A, D, t) { var s = j.dom.doc.createTreeWalker(A, NodeFilter.SHOW_TEXT, null, false), E, B = 0, C = {}; while ((E = s.nextNode()) != null) { if (E == D) { C.start = B } if (E == t) { C.end = B; return C } B += e(E.nodeValue || "").length } return null } if (k.anchorNode == k.focusNode && k.anchorOffset == k.focusOffset) { v = q(h, k.anchorNode, k.focusNode); if (!v) { return { scrollX: n, scrollY: l} } e(k.anchorNode.nodeValue || "").replace(/^\s+/, function(r) { g = r.length }); return { start: Math.max(v.start + k.anchorOffset - g, 0), end: Math.max(v.end + k.focusOffset - g, 0), scrollX: n, scrollY: l, beg: k.anchorOffset - g == 0} } else { v = q(h, m.startContainer, m.endContainer); if (!v) { return { scrollX: n, scrollY: l} } return { start: Math.max(v.start + m.startOffset - g, 0), end: Math.max(v.end + m.endOffset - i, 0), scrollX: n, scrollY: l, beg: m.startOffset - g == 0} } }, moveToBookmark: function(n) { var o = this, g = o.getRng(), p = o.getSel(), j = o.dom.getRoot(), m, h, k; function i(q, t, D) { var B = o.dom.doc.createTreeWalker(q, NodeFilter.SHOW_TEXT, null, false), x, s = 0, A = {}, u, C, z, y; while ((x = B.nextNode()) != null) { z = y = 0; k = x.nodeValue || ""; h = e(k).length; s += h; if (s >= t && !A.startNode) { u = t - (s - h); if (n.beg && u >= h) { continue } A.startNode = x; A.startOffset = u + y } if (s >= D) { A.endNode = x; A.endOffset = D - (s - h) + y; return A } } return null } if (!n) { return false } o.win.scrollTo(n.scrollX, n.scrollY); if (a) { o.tridentSel.destroy(); if (g = n.rng) { try { g.select() } catch (l) { } return true } o.win.focus(); if (n.tag) { g = j.createControlRange(); d(o.dom.select(n.tag), function(r, q) { if (q == n.index) { g.addElement(r) } }) } else { try { if (n.start < 0) { return true } g = p.createRange(); g.moveToElementText(j); g.collapse(true); g.moveStart("character", n.start); g.moveEnd("character", n.length) } catch (f) { return true } } try { g.select() } catch (l) { } return true } if (!p) { return false } if (n.rng) { p.removeAllRanges(); p.addRange(n.rng) } else { if (b(n.start) && b(n.end)) { try { m = i(j, n.start, n.end); if (m) { g = o.dom.doc.createRange(); g.setStart(m.startNode, m.startOffset); g.setEnd(m.endNode, m.endOffset); p.removeAllRanges(); p.addRange(g) } if (!c.isOpera) { o.win.focus() } } catch (l) { } } } }, select: function(g, l) { var p = this, f = p.getRng(), q = p.getSel(), o, m, k, j = p.win.document; function h(u, t) { var s, r; if (u) { s = j.createTreeWalker(u, NodeFilter.SHOW_TEXT, null, false); while (u = s.nextNode()) { r = u; if (c.trim(u.nodeValue).length != 0) { if (t) { return u } else { r = u } } } } return r } if (a) { try { o = j.body; if (/^(IMG|TABLE)$/.test(g.nodeName)) { f = o.createControlRange(); f.addElement(g) } else { f = o.createTextRange(); f.moveToElementText(g) } f.select() } catch (i) { } } else { if (l) { m = h(g, 1) || p.dom.select("br:first", g)[0]; k = h(g, 0) || p.dom.select("br:last", g)[0]; if (m && k) { f = j.createRange(); if (m.nodeName == "BR") { f.setStartBefore(m) } else { f.setStart(m, 0) } if (k.nodeName == "BR") { f.setEndBefore(k) } else { f.setEnd(k, k.nodeValue.length) } } else { f.selectNode(g) } } else { f.selectNode(g) } p.setRng(f) } return g }, isCollapsed: function() { var f = this, h = f.getRng(), g = f.getSel(); if (!h || h.item) { return false } return !g || h.boundingWidth == 0 || 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(j) { var g = this, h, i; if (j && g.tridentSel) { return g.tridentSel.getRangeAt(0) } try { if (h = g.getSel()) { i = h.rangeCount > 0 ? h.getRangeAt(0) : (h.createRange ? h.createRange() : g.win.document.createRange()) } } catch (f) { } if (!i) { i = a ? g.win.document.body.createTextRange() : g.win.document.createRange() } return i }, setRng: function(i) { var h, g = this; if (!g.tridentSel) { h = g.getSel(); if (h) { h.removeAllRanges(); h.addRange(i) } } 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 f = this, h = f.getRng(), g = f.getSel(), i; if (!a) { if (!h) { return f.dom.getRoot() } i = h.commonAncestorContainer; if (!h.collapsed) { if (c.isWebKit && g.anchorNode && g.anchorNode.nodeType == 1) { return g.anchorNode.childNodes[g.anchorOffset] } if (h.startContainer == h.endContainer) { if (h.startOffset - h.endOffset < 2) { if (h.startContainer.hasChildNodes()) { i = h.startContainer.childNodes[h.startOffset] } } } } return f.dom.getParent(i, "*") } return h.item ? h.item(0) : h.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) } } }) })(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(a) { a.create("tinymce.dom.StringWriter", { str: null, tags: null, count: 0, settings: null, indent: null, StringWriter: function(b) { this.settings = a.extend({ indent_char: " ", indentation: 0 }, b); this.reset() }, reset: function() { this.indent = ""; this.str = ""; this.tags = []; this.count = 0 }, writeStartElement: function(b) { this._writeAttributesEnd(); this.writeRaw("<" + b); this.tags.push(b); this.inAttr = true; this.count++; this.elementCount = this.count }, writeAttribute: function(d, b) { var c = this; c.writeRaw(" " + c.encode(d) + '="' + c.encode(b) + '"') }, writeEndElement: function() { var b; if (this.tags.length > 0) { b = this.tags.pop(); if (this._writeAttributesEnd(1)) { this.writeRaw("</" + b + ">") } 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(b) { this._writeAttributesEnd(); this.writeRaw(this.encode(b)); this.count++ }, writeCDATA: function(b) { this._writeAttributesEnd(); this.writeRaw("<![CDATA[" + b + "]]>"); this.count++ }, writeComment: function(b) { this._writeAttributesEnd(); this.writeRaw("<!-- " + b + "-->"); this.count++ }, writeRaw: function(b) { this.str += b }, encode: function(b) { return b.replace(/[<>&"]/g, function(c) { switch (c) { case "<": return "&lt;"; case ">": return "&gt;"; case "&": return "&amp;"; case '"': return "&quot;" } return c }) }, getContent: function() { return this.str }, _writeAttributesEnd: function(b) { if (!this.inAttr) { return } this.inAttr = false; if (b && 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() } 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, valid_child_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, font_size_style_values: 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; 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, y, w = ["ol", "ul"], u, t, q, k = /^(OL|UL)$/, z; 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 (y = 0; y < w.length; y++) { l = i.dom.select(w[y], s.node); for (u = 0; u < l.length; u++) { t = l[u]; q = t.parentNode; if (k.test(q.nodeName)) { z = m(t, "LI"); if (!z) { z = i.dom.create("li"); z.innerHTML = "&nbsp;"; z.appendChild(t); q.insertBefore(z, q.firstChild) } else { z.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(p) { var n = this, j, m, h = {}, o = "", k; if (n.entityLookup) { return } j = p.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); o += "\\u" + "0000".substring(k.length) + k } if (!o) { n.settings.entity_encoding = "raw"; return } n.entitiesRE = new RegExp("[" + o + "]", "g"); n.entityLookup = h }, setValidChildRules: function(h) { this.childRules = null; this.addValidChildRules(h) }, addValidChildRules: function(k) { var j = this, l, h, i; if (!k) { return } l = "A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment"; h = "A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment"; i = "H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP"; f(k.split(","), function(n) { var o = n.split(/\[|\]/), m; n = ""; f(o[1].split("|"), function(p) { if (n) { n += "|" } switch (p) { case "%itrans": p = h; break; case "%itrans_na": p = h.substring(2); break; case "%istrict": p = l; break; case "%istrict_na": p = l.substring(2); break; case "%btrans": p = i; break; case "%bstrict": p = i; break } n += p }); m = new RegExp("^(" + n.toLowerCase() + ")$", "i"); f(o[0].split("/"), function(p) { j.childRules = j.childRules || {}; j.childRules[p] = m }) }); k = ""; f(j.childRules, function(n, m) { if (k) { k += "|" } k += m }); j.parentElementsRE = new RegExp("^(" + k.toLowerCase() + ")$", "i") }, 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 w = 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 (w) { 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._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 = j.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g, k.entity_encoding == "numeric" ? "<p$1>&#160;</p>" : "<p$1>&nbsp;</p>"); if (k.remove_linebreaks) { j = j.replace(/\r?\n|\r/g, " "); j = j.replace(/(<[^>]+>)\s+/g, "$1 "); j = j.replace(/\s+(<\/[^>]+>)/g, " $1"); j = j.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.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.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>") } if (k.apply_source_formatting && k.indent_mode == "simple") { j = j.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g, "\n<$1$2$3>\n"); j = j.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g, "\n<$1$2>"); j = j.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g, "</$1>\n"); j = j.replace(/\n\n/g, "\n") } } j = i._unprotect(j, l); j = j.replace(/<!--\[CDATA\[([\s\S]+)\]\]-->/g, "<![CDATA[$1]]>"); if (k.entity_encoding == "raw") { j = j.replace(/<p>&nbsp;<\/p>|<p([^>]+)>&nbsp;<\/p>/g, "<p$1>\u00a0</p>") } 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(D, o) { var z = this, A = z.settings, x = z.writer, q, j, u, F, E, G, B, h, y, k, r, C, p, m; if (!A.node_filter || A.node_filter(D)) { switch (D.nodeType) { case 1: if (D.hasAttribute ? D.hasAttribute("mce_bogus") : D.getAttribute("mce_bogus")) { return } p = false; q = D.hasChildNodes(); k = D.getAttribute("mce_name") || D.nodeName.toLowerCase(); if (d) { if (D.scopeName !== "HTML" && D.scopeName !== "html") { k = D.scopeName + ":" + k } } if (k.indexOf("mce:") === 0) { k = k.substring(4) } if (!z.validElementsRE || !z.validElementsRE.test(k) || (z.invalidElementsRE && z.invalidElementsRE.test(k)) || o) { p = true; break } if (d) { if (A.fix_content_duplication) { if (D.mce_serialized == z.key) { return } D.mce_serialized = z.key } if (k.charAt(0) == "/") { k = k.substring(1) } } else { if (a) { if (D.nodeName === "BR" && D.getAttribute("type") == "_moz") { return } } } if (z.childRules) { if (z.parentElementsRE.test(z.elementName)) { if (!z.childRules[z.elementName].test(k)) { p = true; break } } z.elementName = k } r = z.findRule(k); k = r.name || k; m = A.closed.test(k); if ((!q && r.noEmpty) || (d && !k)) { p = true; break } if (r.requiredAttribs) { G = r.requiredAttribs; for (F = G.length - 1; F >= 0; F--) { if (this.dom.getAttrib(D, G[F]) !== "") { break } } if (F == -1) { p = true; break } } x.writeStartElement(k); if (r.attribs) { for (F = 0, B = r.attribs, E = B.length; F < E; F++) { G = B[F]; y = z._getAttrib(D, G); if (y !== null) { x.writeAttribute(G.name, y) } } } if (r.validAttribsRE) { B = z.dom.getAttribs(D); for (F = B.length - 1; F > -1; F--) { h = B[F]; if (h.specified) { G = h.nodeName.toLowerCase(); if (A.invalid_attrs.test(G) || !r.validAttribsRE.test(G)) { continue } C = z.findAttribRule(r, G); y = z._getAttrib(D, C, G); if (y !== null) { x.writeAttribute(G, y) } } } } if (k === "script" && e.trim(D.innerHTML)) { x.writeText("// "); x.writeCDATA(D.innerHTML.replace(/<!--|-->|<\[CDATA\[|\]\]>/g, "")); q = false; break } if (r.padd) { if (q && (u = D.firstChild) && u.nodeType === 1 && D.childNodes.length === 1) { if (u.hasAttribute ? u.hasAttribute("mce_bogus") : u.getAttribute("mce_bogus")) { x.writeText("\u00a0") } } else { if (!q) { x.writeText("\u00a0") } } } break; case 3: if (z.childRules && z.parentElementsRE.test(z.elementName)) { if (!z.childRules[z.elementName].test(D.nodeName)) { return } } return x.writeText(D.nodeValue); case 4: return x.writeCDATA(D.nodeValue); case 8: return x.writeComment(D.nodeValue) } } else { if (D.nodeType == 1) { q = D.hasChildNodes() } } if (q && !m) { u = D.firstChild; while (u) { z._serializeNode(u); z.elementName = k; u = u.nextSibling } } if (!p) { if (!m) { x.writeFullEndElement() } else { x.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(j.entitiesRE, 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); h.addValidChildRules(i.valid_child_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(tinymce) { var each = tinymce.each, Event = tinymce.dom.Event; tinymce.create("tinymce.dom.ScriptLoader", { ScriptLoader: function(s) { this.settings = s || {}; this.queue = []; this.lookup = {} }, isDone: function(u) { return this.lookup[u] ? this.lookup[u].state == 2 : 0 }, markDone: function(u) { this.lookup[u] = { state: 2, url: u} }, add: function(u, cb, s, pr) { var t = this, lo = t.lookup, o; if (o = lo[u]) { if (cb && o.state == 2) { cb.call(s || this) } return o } o = { state: 0, url: u, func: cb, scope: s || this }; if (pr) { t.queue.unshift(o) } else { t.queue.push(o) } lo[u] = o; return o }, load: function(u, cb, s) { var t = this, o; if (o = t.lookup[u]) { if (cb && o.state == 2) { cb.call(s || t) } return o } function loadScript(u) { if (Event.domLoaded || t.settings.strict_mode) { tinymce.util.XHR.send({ url: tinymce._addVer(u), error: t.settings.error, async: false, success: function(co) { t.eval(co) } }) } else { document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"><\/script>') } } if (!tinymce.is(u, "string")) { each(u, function(u) { loadScript(u) }); if (cb) { cb.call(s || t) } } else { loadScript(u); if (cb) { cb.call(s || t) } } }, loadQueue: function(cb, s) { var t = this; if (!t.queueLoading) { t.queueLoading = 1; t.queueCallbacks = []; t.loadScripts(t.queue, function() { t.queueLoading = 0; if (cb) { cb.call(s || t) } each(t.queueCallbacks, function(o) { o.func.call(o.scope) }) }) } else { if (cb) { t.queueCallbacks.push({ func: cb, scope: s || t }) } } }, eval: function(co) { var w = window; if (!w.execScript) { try { eval.call(w, co) } catch (ex) { eval(co, w) } } else { w.execScript(co) } }, loadScripts: function(sc, cb, s) { var t = this, lo = t.lookup; function done(o) { o.state = 2; if (o.func) { o.func.call(o.scope || t) } } function allDone() { var l; l = sc.length; each(sc, function(o) { o = lo[o.url]; if (o.state === 2) { done(o); l-- } else { load(o) } }); if (l === 0 && cb) { cb.call(s || t); cb = 0 } } function load(o) { if (o.state > 0) { return } o.state = 1; tinymce.dom.ScriptLoader.loadScript(o.url, function() { done(o); allDone() }) } each(sc, function(o) { var u = o.url; if (!lo[u]) { lo[u] = o; t.queue.push(o) } else { o = lo[u] } if (o.state > 0) { return } if (!Event.domLoaded && !t.settings.strict_mode) { var ix, ol = ""; if (cb || o.func) { o.state = 1; ix = tinymce.dom.ScriptLoader._addOnLoad(function() { done(o); allDone() }); if (tinymce.isIE) { ol = ' onreadystatechange="' } else { ol = ' onload="' } ol += "tinymce.dom.ScriptLoader._onLoad(this,'" + u + "'," + ix + ');"' } document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"' + ol + "><\/script>"); if (!o.func) { done(o) } } else { load(o) } }); allDone() }, "static": { _addOnLoad: function(f) { var t = this; t._funcs = t._funcs || []; t._funcs.push(f); return t._funcs.length - 1 }, _onLoad: function(e, u, ix) { if (!tinymce.isIE || e.readyState == "complete") { this._funcs[ix].call(this) } }, loadScript: function(u, cb) { var id = tinymce.DOM.uniqueId(), e; function done() { Event.clear(id); tinymce.DOM.remove(id); if (cb) { cb.call(document, u); cb = 0 } } if (tinymce.isIE) { tinymce.util.XHR.send({ url: tinymce._addVer(u), async: false, success: function(co) { window.execScript(co); done() } }) } else { e = tinymce.DOM.create("script", { id: id, type: "text/javascript", src: tinymce._addVer(u) }); Event.add(e, "load", done); (document.getElementsByTagName("head")[0] || document.body).appendChild(e) } } } }); tinymce.ScriptLoader = new tinymce.dom.ScriptLoader() })(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(w) { var h, t, s; w = w.target; if (w && (w = c.getParent(w, "tr"))) { h = z.items[w.id]; if (z.lastMenu) { z.lastMenu.collapse(1) } if (h.isDisabled()) { return } if (w && c.hasClass(w, m + "ItemSub")) { t = c.getRect(w); 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 (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); if (f.menu) { 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) { 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(h) { if (!f._focused) { f.keyDownHandler = b.add(f.id + "_text", "keydown", function(l) { var i = -1, j, k = l.keyCode; e(f.items, function(m, n) { if (f.selectedValue == m.value) { i = n } }); if (k == 38) { j = f.items[i - 1] } else { if (k == 40) { j = f.items[i + 1] } else { if (k == 13) { j = f.selectedValue; f.selectedValue = null; f.settings.onselect(j); return b.cancel(l) } } } if (j) { f.hideMenu(); f.select(j.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 c.get(this.id).options.length - 1 }, 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", { items: [], urls: {}, lookup: {}, onAdd: new a(this), get: function(d) { return this.lookup[d] }, requireLangPack: function(f) { var d, e = b.EditorManager.settings; if (e && e.language) { d = this.urls[f] + "/langs/" + e.language + ".js"; if (!b.dom.Event.domLoaded && !e.strict_mode) { b.ScriptLoader.load(d) } else { b.ScriptLoader.add(d) } } }, 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("/")); b.ScriptLoader.add(e, d, g) } }); b.PluginManager = new b.AddOnManager(); b.ThemeManager = new b.AddOnManager() } (tinymce)); (function(f) { var g = f.each, h = f.extend, e = f.DOM, a = f.dom.Event, c = f.ThemeManager, b = f.PluginManager, d = f.explode; f.create("static tinymce.EditorManager", { editors: {}, i18n: {}, activeEditor: null, preInit: function() { var i = this, j = window.location; f.documentBaseURL = j.href.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""); if (!/[\/\\]$/.test(f.documentBaseURL)) { f.documentBaseURL += "/" } f.baseURL = new f.util.URI(f.documentBaseURL).toAbsolute(f.baseURL); f.EditorManager.baseURI = new f.util.URI(f.baseURL); i.onBeforeUnload = new f.util.Dispatcher(i); a.add(window, "beforeunload", function(k) { i.onBeforeUnload.dispatch(i, k) }) }, init: function(q) { var p = this, l, k = f.ScriptLoader, o, n, i = [], m; function j(u, v, r) { var t = u[v]; if (!t) { return } if (f.is(t, "string")) { r = t.replace(/\.\w+$/, ""); r = r ? f.resolve(r) : 0; t = f.resolve(t) } return t.apply(r || this, Array.prototype.slice.call(arguments, 2)) } q = h({ theme: "simple", language: "en", strict_loading_mode: document.contentType == "application/xhtml+xml" }, q); p.settings = q; if (!a.domLoaded && !q.strict_loading_mode) { if (q.language) { k.add(f.baseURL + "/langs/" + q.language + ".js") } if (q.theme && q.theme.charAt(0) != "-" && !c.urls[q.theme]) { c.load(q.theme, "themes/" + q.theme + "/editor_template" + f.suffix + ".js") } if (q.plugins) { l = d(q.plugins); g(l, function(r) { if (r && r.charAt(0) != "-" && !b.urls[r]) { if (!f.isWebKit && r == "safari") { return } b.load(r, "plugins/" + r + "/editor_plugin" + f.suffix + ".js") } }) } k.loadQueue() } a.add(document, "init", function() { var r, t; j(q, "onpageload"); if (q.browsers) { r = false; g(d(q.browsers), function(u) { switch (u) { case "ie": case "msie": if (f.isIE) { r = true } break; case "gecko": if (f.isGecko) { r = true } break; case "safari": case "webkit": if (f.isWebKit) { r = true } break; case "opera": if (f.isOpera) { r = true } break } }); if (!r) { return } } switch (q.mode) { case "exact": r = q.elements || ""; if (r.length > 0) { g(d(r), function(u) { if (e.get(u)) { m = new f.Editor(u, q); i.push(m); m.render(1) } else { o = 0; g(document.forms, function(v) { g(v.elements, function(w) { if (w.name === u) { u = "mce_editor_" + o; e.setAttrib(w, "id", u); m = new f.Editor(u, q); i.push(m); m.render(1) } }) }) } }) } break; case "textareas": case "specific_textareas": function s(v, u) { return u.constructor === RegExp ? u.test(v.className) : e.hasClass(v, u) } g(e.select("textarea"), function(u) { if (q.editor_deselector && s(u, q.editor_deselector)) { return } if (!q.editor_selector || s(u, q.editor_selector)) { n = e.get(u.name); if (!u.id && !n) { u.id = u.name } if (!u.id || p.get(u.id)) { u.id = e.uniqueId() } m = new f.Editor(u.id, q); i.push(m); m.render(1) } }); break } if (q.oninit) { r = t = 0; g(i, function(u) { t++; if (!u.initialized) { u.onInit.add(function() { r++; if (r == t) { j(q, "oninit") } }) } else { r++ } if (r == t) { j(q, "oninit") } }) } }) }, get: function(i) { return this.editors[i] }, getInstanceById: function(i) { return this.get(i) }, add: function(i) { this.editors[i.id] = i; this._setActive(i); return i }, remove: function(j) { var i = this; if (!i.editors[j.id]) { return null } delete i.editors[j.id]; if (i.activeEditor == j) { i._setActive(null); g(i.editors, function(k) { i._setActive(k); return false }) } j.destroy(); return j }, execCommand: function(o, m, l) { var n = this, k = n.get(l), i; switch (o) { case "mceFocus": k.focus(); return true; case "mceAddEditor": case "mceAddControl": if (!n.get(l)) { new f.Editor(l, n.settings).render() } return true; case "mceAddFrameControl": i = l.window; i.tinyMCE = tinyMCE; i.tinymce = f; f.DOM.doc = i.document; f.DOM.win = i; k = new f.Editor(l.element_id, l); k.render(); if (f.isIE) { function j() { k.destroy(); i.detachEvent("onunload", j); i = i.tinyMCE = i.tinymce = null } i.attachEvent("onunload", j) } l.page_window = null; return true; case "mceRemoveEditor": case "mceRemoveControl": if (k) { k.remove() } return true; case "mceToggleEditor": if (!k) { n.execCommand("mceAddControl", 0, l); return true } if (k.isHidden()) { k.show() } else { k.hide() } return true } if (n.activeEditor) { return n.activeEditor.execCommand(o, m, l) } return false }, execInstanceCommand: function(m, l, k, j) { var i = this.get(m); if (i) { return i.execCommand(l, k, j) } return false }, triggerSave: function() { g(this.editors, function(i) { i.save() }) }, addI18n: function(k, l) { var i, j = this.i18n; if (!f.is(k, "string")) { g(k, function(n, m) { g(n, function(q, p) { g(q, function(s, r) { if (p === "common") { j[m + "." + r] = s } else { j[m + "." + p + "." + r] = s } }) }) }) } else { g(l, function(n, m) { j[k + "." + m] = n }) } }, _setActive: function(i) { this.selectedInstance = this.activeEditor = i } }); f.EditorManager.preInit() })(tinymce); var tinyMCE = window.tinyMCE = tinymce.EditorManager; (function(n) { var o = n.DOM, k = n.dom.Event, f = n.extend, l = n.util.Dispatcher; var j = n.each, a = n.isGecko, b = n.isIE, e = n.isWebKit; var d = n.is, h = n.ThemeManager, c = n.PluginManager, i = n.EditorManager; var p = n.inArray, m = n.grep, g = n.explode; n.create("tinymce.Editor", { Editor: function(u, r) { var q = this; q.id = q.editorId = u; q.execCommands = {}; q.queryStateCommands = {}; q.queryValueCommands = {}; q.isNotDirty = false; q.plugins = {}; j(["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) { q[s] = new l(q) }); q.settings = r = f({ id: u, language: "en", docs_language: "en", theme: "simple", skin: "default", delta_width: 0, delta_height: 0, popup_css: "", plugins: "", document_base_url: n.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: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', visual_table_class: "mceItemTable", visual: 1, inline_styles: true, convert_fonts_to_spans: true, 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, removeformat_selector: "span,b,strong,em,i,font,u,strike" }, r); q.documentBaseURI = new n.util.URI(r.document_base_url || n.documentBaseURL, { base_uri: tinyMCE.baseURI }); q.baseURI = i.baseURI; q.execCallback("setup", q) }, render: function(u) { var v = this, w = v.settings, x = v.id, q = n.ScriptLoader; if (!k.domLoaded) { k.add(document, "init", function() { v.render() }); return } if (!u) { w.strict_loading_mode = 1; tinyMCE.settings = w } if (!v.getElement()) { return } if (w.strict_loading_mode) { q.settings.strict_mode = w.strict_loading_mode; n.DOM.settings.strict = 1 } if (!/TEXTAREA|INPUT/i.test(v.getElement().nodeName) && w.hidden_input && o.getParent(x, "form")) { o.insertAfter(o.create("input", { type: "hidden", name: x }), x) } if (n.WindowManager) { v.windowManager = new n.WindowManager(v) } if (w.encoding == "xml") { v.onGetContent.add(function(s, t) { if (t.save) { t.content = o.encode(t.content) } }) } if (w.add_form_submit_trigger) { v.onSubmit.addToTop(function() { if (v.initialized) { v.save(); v.isNotDirty = 1 } }) } if (w.add_unload_trigger) { v._beforeUnload = tinyMCE.onBeforeUnload.add(function() { if (v.initialized && !v.destroyed && !v.isHidden()) { v.save({ format: "raw", no_events: true }) } }) } n.addUnload(v.destroy, v); if (w.submit_patch) { v.onBeforeRenderUI.add(function() { var s = v.getElement().form; if (!s) { return } if (s._mceOldSubmit) { return } if (!s.submit.nodeType && !s.submit.length) { v.formElement = s; s._mceOldSubmit = s.submit; s.submit = function() { i.triggerSave(); v.isNotDirty = 1; return v.formElement._mceOldSubmit(v.formElement) } } s = null }) } function r() { if (w.language) { q.add(n.baseURL + "/langs/" + w.language + ".js") } if (w.theme && w.theme.charAt(0) != "-" && !h.urls[w.theme]) { h.load(w.theme, "themes/" + w.theme + "/editor_template" + n.suffix + ".js") } j(g(w.plugins), function(s) { if (s && s.charAt(0) != "-" && !c.urls[s]) { if (!e && s == "safari") { return } c.load(s, "plugins/" + s + "/editor_plugin" + n.suffix + ".js") } }); q.loadQueue(function() { if (!v.removed) { v.init() } }) } r() }, init: function() { var v, F = this, G = F.settings, C, z, B = F.getElement(), r, q, D, y, A, E; i.add(F); if (G.theme) { G.theme = G.theme.replace(/-/, ""); r = h.get(G.theme); F.theme = new r(); if (F.theme.init && G.init_theme) { F.theme.init(F, h.urls[G.theme] || n.documentBaseURL.replace(/\/$/, "")) } } j(g(G.plugins.replace(/\-/g, "")), function(w) { var H = c.get(w), t = c.urls[w] || n.documentBaseURL.replace(/\/$/, ""), s; if (H) { s = new H(F, t); F.plugins[w] = s; if (s.init) { s.init(F, t) } } }); if (G.popup_css !== false) { if (G.popup_css) { G.popup_css = F.documentBaseURI.toAbsolute(G.popup_css) } else { G.popup_css = F.baseURI.toAbsolute("themes/" + G.theme + "/skins/" + G.skin + "/dialog.css") } } if (G.popup_css_add) { G.popup_css += "," + F.documentBaseURI.toAbsolute(G.popup_css_add) } F.controlManager = new n.ControlManager(F); F.undoManager = new n.UndoManager(F); F.undoManager.onAdd.add(function(t, s) { if (!s.initial) { return F.onChange.dispatch(F, s, t) } }); F.undoManager.onUndo.add(function(t, s) { return F.onUndo.dispatch(F, s, t) }); F.undoManager.onRedo.add(function(t, s) { return F.onRedo.dispatch(F, s, t) }); if (G.custom_undo_redo) { F.onExecCommand.add(function(t, w, u, H, s) { if (w != "Undo" && w != "Redo" && w != "mceRepaint" && (!s || !s.skip_undo)) { F.undoManager.add() } }) } F.onExecCommand.add(function(s, t) { if (!/^(FontName|FontSize)$/.test(t)) { F.nodeChanged() } }); if (a) { function x(s, t) { if (!t || !t.initial) { F.execCommand("mceRepaint") } } F.onUndo.add(x); F.onRedo.add(x); F.onSetContent.add(x) } F.onBeforeRenderUI.dispatch(F, F.controlManager); if (G.render_ui) { C = G.width || B.style.width || B.offsetWidth; z = G.height || B.style.height || B.offsetHeight; F.orgDisplay = B.style.display; E = /^[0-9\.]+(|px)$/i; if (E.test("" + C)) { C = Math.max(parseInt(C) + (r.deltaWidth || 0), 100) } if (E.test("" + z)) { z = Math.max(parseInt(z) + (r.deltaHeight || 0), 100) } r = F.theme.renderUI({ targetNode: B, width: C, height: z, deltaWidth: G.delta_width, deltaHeight: G.delta_height }); F.editorContainer = r.editorContainer } if (document.domain && location.hostname != document.domain) { n.relaxedDomain = document.domain } o.setStyles(r.sizeContainer || r.editorContainer, { width: C, height: z }); z = (r.iframeHeight || z) + (typeof (z) == "number" ? (r.deltaHeight || 0) : ""); if (z < 100) { z = 100 } F.iframeHTML = G.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml">'; if (G.document_base_url != n.documentBaseURL) { F.iframeHTML += '<base href="' + F.documentBaseURI.getURI() + '" />' } F.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; if (n.relaxedDomain) { F.iframeHTML += '<script type="text/javascript">document.domain = "' + n.relaxedDomain + '";<\/script>' } y = G.body_id || "tinymce"; if (y.indexOf("=") != -1) { y = F.getParam("body_id", "", "hash"); y = y[F.id] || y } A = G.body_class || ""; if (A.indexOf("=") != -1) { A = F.getParam("body_class", "", "hash"); A = A[F.id] || "" } F.iframeHTML += '</head><body id="' + y + '" class="mceContentBody ' + A + '"></body></html>'; if (n.relaxedDomain) { if (b || (n.isOpera && parseFloat(opera.version()) >= 9.5)) { D = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.tinyMCE.get("' + F.id + '");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()' } else { if (n.isOpera) { D = 'javascript:(function(){document.open();document.domain="' + document.domain + '";document.close();ed.setupIframe();})()' } } } v = o.add(r.iframeContainer, "iframe", { id: F.id + "_ifr", src: D || 'javascript:""', frameBorder: "0", style: { width: "100%", height: z} }); F.contentAreaContainer = r.iframeContainer; o.get(r.editorContainer).style.display = F.orgDisplay; o.get(F.id).style.display = "none"; if (!b || !n.relaxedDomain) { F.setupIframe() } B = v = r = null }, setupIframe: function() { var z = this, A = z.settings, u = o.get(z.id), v = z.getDoc(), r, x; if (!b || !n.relaxedDomain) { v.open(); v.write(z.iframeHTML); v.close() } if (!b) { try { if (!A.readonly) { v.designMode = "On" } } catch (w) { } } if (b) { x = z.getBody(); o.hide(x); if (!A.readonly) { x.contentEditable = true } o.show(x) } z.dom = new n.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 }); z.serializer = new n.dom.Serializer(f(A, { valid_elements: A.verify_html === false ? "*[*]" : A.valid_elements, dom: z.dom })); z.selection = new n.dom.Selection(z.dom, z.getWin(), z.serializer); z.forceBlocks = new n.ForceBlocks(z, { forced_root_block: A.forced_root_block }); z.editorCommands = new n.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) { j(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 = ""; j(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.convert_fonts_to_spans) { z._convertFonts() } if (A.inline_styles) { z._convertInlineElements() } 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) { k.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 q(s, t) { j(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") { q(s) } }); z.onSetContent.add(z.selection.onSetContent.add(q)); if (!A.readonly) { try { v.designMode = "Off"; v.designMode = "On" } catch (w) { } } } setTimeout(function() { if (z.removed) { return } z.load({ initial: true, format: (A.cleanup_on_startup ? "html" : "raw") }); z.startContent = z.getContent({ format: "raw" }); z.undoManager.add({ initial: true }); 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) { n.each(g(A.content_css), function(s) { z.dom.loadCSS(z.documentBaseURI.toAbsolute(s)) }) } if (A.auto_focus) { setTimeout(function() { var s = i.get(A.auto_focus); s.selection.select(s.getBody(), 1); s.selection.collapse(1); s.getWin().focus() }, 100) } }, 1); u = null }, focus: function(r) { var u, q = this, s = q.settings.content_editable; if (!r) { if (!s && (!b || q.selection.getNode().ownerDocument != q.getDoc())) { q.getWin().focus() } } if (i.activeEditor != q) { if ((u = i.activeEditor) != null) { u.onDeactivate.dispatch(u, q) } q.onActivate.dispatch(q, u) } i._setActive(q) }, execCallback: function(v) { var q = this, u = q.settings[v], r; if (!u) { return } if (q.callbackLookup && (r = q.callbackLookup[v])) { u = r.func; r = r.scope } if (d(u, "string")) { r = u.replace(/\.\w+$/, ""); r = r ? n.resolve(r) : 0; u = n.resolve(u); q.callbackLookup = q.callbackLookup || {}; q.callbackLookup[v] = { func: u, scope: r} } return u.apply(r || q, Array.prototype.slice.call(arguments, 1)) }, translate: function(q) { var t = this.settings.language || "en", r = i.i18n; if (!q) { return "" } return r[t + "." + q] || q.replace(/{\#([^}]+)\}/g, function(u, s) { return r[t + "." + s] || "{#" + s + "}" }) }, getLang: function(r, q) { return i.i18n[(this.settings.language || "en") + "." + r] || (d(q) ? q : "{#" + r + "}") }, getParam: function(w, s, q) { var t = n.trim, r = d(this.settings[w]) ? this.settings[w] : s, u; if (q === "hash") { u = {}; if (d(r, "string")) { j(r.indexOf("=") > 0 ? r.split(/[;,](?![^=;,]*(?:[;,]|$))/) : r.split(","), function(x) { x = x.split("="); if (x.length > 1) { u[t(x[0])] = t(x[1]) } else { u[t(x[0])] = t(x) } }) } else { u = r } return u } return r }, nodeChanged: function(u) { var q = this, r = q.selection, v = r.getNode() || q.getBody(); if (q.initialized) { q.onNodeChange.dispatch(q, u ? u.controlManager || q.controlManager : q.controlManager, b && v.ownerDocument != q.getDoc() ? q.getBody() : v, r.isCollapsed(), u) } }, addButton: function(u, r) { var q = this; q.buttons = q.buttons || {}; q.buttons[u] = r }, addCommand: function(t, r, q) { this.execCommands[t] = { func: r, scope: q || this} }, addQueryStateHandler: function(t, r, q) { this.queryStateCommands[t] = { func: r, scope: q || this} }, addQueryValueHandler: function(t, r, q) { this.queryValueCommands[t] = { func: r, scope: q || this} }, addShortcut: function(s, v, q, u) { var r = this, w; if (!r.settings.custom_shortcuts) { return false } r.shortcuts = r.shortcuts || {}; if (d(q, "string")) { w = q; q = function() { r.execCommand(w, false, null) } } if (d(q, "object")) { w = q; q = function() { r.execCommand(w[0], w[1], w[2]) } } j(g(s), function(t) { var x = { func: q, scope: u || this, desc: v, alt: false, ctrl: false, shift: false }; j(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) } }); r.shortcuts[(x.ctrl ? "ctrl" : "") + "," + (x.alt ? "alt" : "") + "," + (x.shift ? "shift" : "") + "," + x.keyCode] = x }); return true }, execCommand: function(x, w, z, q) { var u = this, v = 0, y, r; if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(x) && (!q || !q.skip_focus)) { u.focus() } y = {}; u.onBeforeExecCommand.dispatch(u, x, w, z, y); if (y.terminate) { return false } if (u.execCallback("execcommand_callback", u.id, u.selection.getNode(), x, w, z)) { u.onExecCommand.dispatch(u, x, w, z, q); return true } if (y = u.execCommands[x]) { r = y.func.call(y.scope, w, z); if (r !== true) { u.onExecCommand.dispatch(u, x, w, z, q); return r } } j(u.plugins, function(s) { if (s.execCommand && s.execCommand(x, w, z)) { u.onExecCommand.dispatch(u, x, w, z, q); v = 1; return false } }); if (v) { return true } if (u.theme && u.theme.execCommand && u.theme.execCommand(x, w, z)) { u.onExecCommand.dispatch(u, x, w, z, q); return true } if (n.GlobalCommands.execCommand(u, x, w, z)) { u.onExecCommand.dispatch(u, x, w, z, q); return true } if (u.editorCommands.execCommand(x, w, z)) { u.onExecCommand.dispatch(u, x, w, z, q); return true } u.getDoc().execCommand(x, w, z); u.onExecCommand.dispatch(u, x, w, z, q) }, queryCommandState: function(w) { var r = this, v, u; if (r._isHidden()) { return } if (v = r.queryStateCommands[w]) { u = v.func.call(v.scope); if (u !== true) { return u } } v = r.editorCommands.queryCommandState(w); if (v !== -1) { return v } try { return this.getDoc().queryCommandState(w) } catch (q) { } }, queryCommandValue: function(w) { var r = this, v, u; if (r._isHidden()) { return } if (v = r.queryValueCommands[w]) { u = v.func.call(v.scope); if (u !== true) { return u } } v = r.editorCommands.queryCommandValue(w); if (d(v)) { return v } try { return this.getDoc().queryCommandValue(w) } catch (q) { } }, show: function() { var q = this; o.show(q.getContainer()); o.hide(q.id); q.load() }, hide: function() { var q = this, r = q.getDoc(); if (b && r) { r.execCommand("SelectAll") } q.save(); o.hide(q.getContainer()); o.setStyle(q.id, "display", q.orgDisplay) }, isHidden: function() { return !o.isHidden(this.id) }, setProgressState: function(q, r, s) { this.onSetProgressState.dispatch(this, q, r, s); return q }, load: function(u) { var q = this, s = q.getElement(), r; if (s) { u = u || {}; u.load = true; r = q.setContent(d(s.value) ? s.value : s.innerHTML, u); u.element = s; if (!u.no_events) { q.onLoadContent.dispatch(q, u) } u.element = s = null; return r } }, save: function(v) { var q = this, u = q.getElement(), r, s; if (!u || !q.initialized) { return } v = v || {}; v.save = true; if (!v.no_events) { q.undoManager.typing = 0; q.undoManager.add() } v.element = u; r = v.content = q.getContent(v); if (!v.no_events) { q.onSaveContent.dispatch(q, v) } r = v.content; if (!/TEXTAREA|INPUT/i.test(u.nodeName)) { u.innerHTML = r; if (s = o.getParent(q.id, "form")) { j(s.elements, function(t) { if (t.name == q.id) { t.value = r; return false } }) } } else { u.value = r } v.element = u = null; return r }, setContent: function(r, s) { var q = this; s = s || {}; s.format = s.format || "html"; s.set = true; s.content = r; if (!s.no_events) { q.onBeforeSetContent.dispatch(q, s) } if (!n.isIE && (r.length === 0 || /^\s+$/.test(r))) { s.content = q.dom.setHTML(q.getBody(), '<br mce_bogus="1" />'); s.format = "raw" } s.content = q.dom.setHTML(q.getBody(), n.trim(s.content)); if (s.format != "raw" && q.settings.cleanup) { s.getInner = true; s.content = q.dom.setHTML(q.getBody(), q.serializer.serialize(q.getBody(), s)) } if (!s.no_events) { q.onSetContent.dispatch(q, s) } return s.content }, getContent: function(s) { var q = this, r; s = s || {}; s.format = s.format || "html"; s.get = true; if (!s.no_events) { q.onBeforeGetContent.dispatch(q, s) } if (s.format != "raw" && q.settings.cleanup) { s.getInner = true; r = q.serializer.serialize(q.getBody(), s) } else { r = q.getBody().innerHTML } r = r.replace(/^\s*|\s*$/g, ""); s.content = r; if (!s.no_events) { q.onGetContent.dispatch(q, s) } return s.content }, isDirty: function() { var q = this; return n.trim(q.startContent) != n.trim(q.getContent({ format: "raw", no_events: 1 })) && !q.isNotDirty }, getContainer: function() { var q = this; if (!q.container) { q.container = o.get(q.editorContainer || q.id + "_parent") } return q.container }, getContentAreaContainer: function() { return this.contentAreaContainer }, getElement: function() { return o.get(this.settings.content_element || this.id) }, getWin: function() { var q = this, r; if (!q.contentWindow) { r = o.get(q.id + "_ifr"); if (r) { q.contentWindow = r.contentWindow } } return q.contentWindow }, getDoc: function() { var r = this, q; if (!r.contentDocument) { q = r.getWin(); if (q) { r.contentDocument = q.document } } return r.contentDocument }, getBody: function() { return this.bodyElement || this.getDoc().body }, convertURL: function(q, x, w) { var r = this, v = r.settings; if (v.urlconverter_callback) { return r.execCallback("urlconverter_callback", q, w, true, x) } if (!v.convert_urls || (w && w.nodeName == "LINK") || q.indexOf("file:") === 0) { return q } if (v.relative_urls) { return r.documentBaseURI.toRelative(q) } q = r.documentBaseURI.toAbsolute(q, v.remove_script_host); return q }, addVisual: function(u) { var q = this, r = q.settings; u = u || q.getBody(); if (!d(q.hasVisual)) { q.hasVisual = r.visual } j(q.dom.select("table,a", u), function(t) { var s; switch (t.nodeName) { case "TABLE": s = q.dom.getAttrib(t, "border"); if (!s || s == "0") { if (q.hasVisual) { q.dom.addClass(t, r.visual_table_class) } else { q.dom.removeClass(t, r.visual_table_class) } } return; case "A": s = q.dom.getAttrib(t, "name"); if (s) { if (q.hasVisual) { q.dom.addClass(t, "mceItemAnchor") } else { q.dom.removeClass(t, "mceItemAnchor") } } return } }); q.onVisualAid.dispatch(q, u, q.hasVisual) }, remove: function() { var q = this, r = q.getContainer(); q.removed = 1; q.hide(); q.execCallback("remove_instance_callback", q); q.onRemove.dispatch(q); q.onExecCommand.listeners = []; i.remove(q); o.remove(r) }, destroy: function(r) { var q = this; if (q.destroyed) { return } if (!r) { n.removeUnload(q.destroy); tinyMCE.onBeforeUnload.remove(q._beforeUnload); if (q.theme && q.theme.destroy) { q.theme.destroy() } q.controlManager.destroy(); q.selection.destroy(); q.dom.destroy(); if (!q.settings.content_editable) { k.clear(q.getWin()); k.clear(q.getDoc()) } k.clear(q.getBody()); k.clear(q.formElement) } if (q.formElement) { q.formElement.submit = q.formElement._mceOldSubmit; q.formElement._mceOldSubmit = null } q.contentAreaContainer = q.formElement = q.container = q.settings.content_element = q.bodyElement = q.contentDocument = q.contentWindow = null; if (q.selection) { q.selection = q.selection.win = q.selection.dom = q.selection.dom.doc = null } q.destroyed = 1 }, _addEvents: function() { var w = this, v, y = w.settings, x = { mouseup: "onMouseUp", mousedown: "onMouseDown", click: "onClick", keyup: "onKeyUp", keydown: "onKeyDown", keypress: "onKeyPress", submit: "onSubmit", reset: "onReset", contextmenu: "onContextMenu", dblclick: "onDblClick", paste: "onPaste" }; function u(t, A) { var s = t.type; if (w.removed) { return } if (w.onEvent.dispatch(w, t, A) !== false) { w[x[t.fakeType || t.type]].dispatch(w, t, A) } } j(x, function(t, s) { switch (s) { case "contextmenu": if (n.isOpera) { w.dom.bind(w.getBody(), "mousedown", function(A) { if (A.ctrlKey) { A.fakeType = "contextmenu"; u(A) } }) } else { w.dom.bind(w.getBody(), s, u) } break; case "paste": w.dom.bind(w.getBody(), s, function(A) { u(A) }); break; case "submit": case "reset": w.dom.bind(w.getElement().form || o.getParent(w.id, "form"), s, u); break; default: w.dom.bind(y.content_editable ? w.getBody() : w.getDoc(), s, u) } }); w.dom.bind(y.content_editable ? w.getBody() : (a ? w.getDoc() : w.getWin()), "focus", function(s) { w.focus(true) }); if (n.isGecko) { w.dom.bind(w.getDoc(), "DOMNodeInserted", function(t) { var s; t = t.target; if (t.nodeType === 1 && t.nodeName === "IMG" && (s = t.getAttribute("mce_src"))) { t.src = w.documentBaseURI.toAbsolute(s) } }) } if (a) { function q() { var B = this, D = B.getDoc(), C = B.settings; if (a && !C.readonly) { if (B._isHidden()) { try { if (!C.content_editable) { D.designMode = "On" } } catch (A) { } } try { D.execCommand("styleWithCSS", 0, false) } catch (A) { if (!B._isHidden()) { try { D.execCommand("useCSS", 0, true) } catch (A) { } } } if (!C.table_inline_editing) { try { D.execCommand("enableInlineTableEditing", false, false) } catch (A) { } } if (!C.object_resizing) { try { D.execCommand("enableObjectResizing", false, false) } catch (A) { } } } } w.onBeforeExecCommand.add(q); w.onMouseDown.add(q) } w.onMouseUp.add(w.nodeChanged); w.onClick.add(w.nodeChanged); w.onKeyUp.add(function(s, t) { var A = t.keyCode; if ((A >= 33 && A <= 36) || (A >= 37 && A <= 40) || A == 13 || A == 45 || A == 46 || A == 8 || (n.isMac && (A == 91 || A == 93)) || t.ctrlKey) { w.nodeChanged() } }); w.onReset.add(function() { w.setContent(w.startContent, { format: "raw" }) }); if (y.custom_shortcuts) { if (y.custom_undo_redo_keyboard_shortcuts) { w.addShortcut("ctrl+z", w.getLang("undo_desc"), "Undo"); w.addShortcut("ctrl+y", w.getLang("redo_desc"), "Redo") } if (a) { w.addShortcut("ctrl+b", w.getLang("bold_desc"), "Bold"); w.addShortcut("ctrl+i", w.getLang("italic_desc"), "Italic"); w.addShortcut("ctrl+u", w.getLang("underline_desc"), "Underline") } for (v = 1; v <= 6; v++) { w.addShortcut("ctrl+" + v, "", ["FormatBlock", false, "<h" + v + ">"]) } w.addShortcut("ctrl+7", "", ["FormatBlock", false, "<p>"]); w.addShortcut("ctrl+8", "", ["FormatBlock", false, "<div>"]); w.addShortcut("ctrl+9", "", ["FormatBlock", false, "<address>"]); function z(t) { var s = null; if (!t.altKey && !t.ctrlKey && !t.metaKey) { return s } j(w.shortcuts, function(A) { if (n.isMac && A.ctrl != t.metaKey) { return } else { if (!n.isMac && A.ctrl != t.ctrlKey) { return } } if (A.alt != t.altKey) { return } if (A.shift != t.shiftKey) { return } if (t.keyCode == A.keyCode || (t.charCode && t.charCode == A.charCode)) { s = A; return false } }); return s } w.onKeyUp.add(function(s, t) { var A = z(t); if (A) { return k.cancel(t) } }); w.onKeyPress.add(function(s, t) { var A = z(t); if (A) { return k.cancel(t) } }); w.onKeyDown.add(function(s, t) { var A = z(t); if (A) { A.func.call(A.scope); return k.cancel(t) } }) } if (n.isIE) { w.dom.bind(w.getDoc(), "controlselect", function(A) { var t = w.resizeInfo, s; A = A.target; if (A.nodeName !== "IMG") { return } if (t) { w.dom.unbind(t.node, t.ev, t.cb) } if (!w.dom.hasClass(A, "mceItemNoResize")) { ev = "resizeend"; s = w.dom.bind(A, ev, function(C) { var B; C = C.target; if (B = w.dom.getStyle(C, "width")) { w.dom.setAttrib(C, "width", B.replace(/[^0-9%]+/g, "")); w.dom.setStyle(C, "width", "") } if (B = w.dom.getStyle(C, "height")) { w.dom.setAttrib(C, "height", B.replace(/[^0-9%]+/g, "")); w.dom.setStyle(C, "height", "") } }) } else { ev = "resizestart"; s = w.dom.bind(A, "resizestart", k.cancel, k) } t = w.resizeInfo = { node: A, ev: ev, cb: s} }); w.onKeyDown.add(function(s, t) { switch (t.keyCode) { case 8: if (w.selection.getRng().item) { w.selection.getRng().item(0).removeNode(); return k.cancel(t) } } }) } if (n.isOpera) { w.onClick.add(function(s, t) { k.prevent(t) }) } if (y.custom_undo_redo) { function r() { w.undoManager.typing = 0; w.undoManager.add() } if (n.isIE) { w.dom.bind(w.getWin(), "blur", function(s) { var t; if (w.selection) { t = w.selection.getNode(); if (!w.removed && t.ownerDocument && t.ownerDocument != w.getDoc()) { r() } } }) } else { w.dom.bind(w.getDoc(), "blur", function() { if (w.selection && !w.removed) { r() } }) } w.onMouseDown.add(r); w.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) { w.undoManager.typing = 0; w.undoManager.add() } }); w.onKeyDown.add(function(s, t) { if ((t.keyCode >= 33 && t.keyCode <= 36) || (t.keyCode >= 37 && t.keyCode <= 40) || t.keyCode == 13 || t.keyCode == 45) { if (w.undoManager.typing) { w.undoManager.add(); w.undoManager.typing = 0 } return } if (!w.undoManager.typing) { w.undoManager.add(); w.undoManager.typing = 1 } }) } }, _convertInlineElements: function() { var z = this, B = z.settings, r = z.dom, y, w, u, A, q; function x(s, t) { if (!B.inline_styles) { return } if (t.get) { j(z.dom.select("table,u,strike", t.node), function(v) { switch (v.nodeName) { case "TABLE": if (y = r.getAttrib(v, "height")) { r.setStyle(v, "height", y); r.setAttrib(v, "height", "") } break; case "U": case "STRIKE": v.style.textDecoration = v.nodeName == "U" ? "underline" : "line-through"; r.setAttrib(v, "mce_style", ""); r.setAttrib(v, "mce_name", "span"); break } }) } else { if (t.set) { j(z.dom.select("table,span", t.node).reverse(), function(v) { if (v.nodeName == "TABLE") { if (y = r.getStyle(v, "height")) { r.setAttrib(v, "height", y.replace(/[^0-9%]+/g, "")) } } else { if (v.style.textDecoration == "underline") { u = "u" } else { if (v.style.textDecoration == "line-through") { u = "strike" } else { u = "" } } if (u) { v.style.textDecoration = ""; r.setAttrib(v, "mce_style", ""); w = r.create(u, { style: r.getAttrib(v, "style") }); r.replace(w, v, 1) } } }) } } } z.onPreProcess.add(x); if (!B.cleanup_on_startup) { z.onSetContent.add(function(s, t) { if (t.initial) { x(z, { node: z.getBody(), set: 1 }) } }) } }, _convertFonts: function() { var w = this, x = w.settings, z = w.dom, v, r, q, u; if (!x.inline_styles) { return } v = [8, 10, 12, 14, 18, 24, 36]; r = ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large"]; if (q = x.font_size_style_values) { q = g(q) } if (u = x.font_size_classes) { u = g(u) } function y(B) { var C, A, t, s; if (!x.inline_styles) { return } t = w.dom.select("font", B); for (s = t.length - 1; s >= 0; s--) { C = t[s]; A = z.create("span", { style: z.getAttrib(C, "style"), "class": z.getAttrib(C, "class") }); z.setStyles(A, { fontFamily: z.getAttrib(C, "face"), color: z.getAttrib(C, "color"), backgroundColor: C.style.backgroundColor }); if (C.size) { if (q) { z.setStyle(A, "fontSize", q[parseInt(C.size) - 1]) } else { z.setAttrib(A, "class", u[parseInt(C.size) - 1]) } } z.setAttrib(A, "mce_style", ""); z.replace(A, C, 1) } } w.onPreProcess.add(function(s, t) { if (t.get) { y(t.node) } }); w.onSetContent.add(function(s, t) { if (t.initial) { y(t.node) } }) }, _isHidden: function() { var q; if (!a) { return 0 } q = this.selection.getSel(); return (!q || !q.rangeCount || q.rangeCount == 0) }, _fixNesting: function(r) { var t = [], q; r = r.replace(/<(\/)?([^\s>]+)[^>]*?>/g, function(u, s, w) { var v; if (s === "/") { if (!t.length) { return "" } if (w !== t[t.length - 1].tag) { for (q = t.length - 1; q >= 0; q--) { if (t[q].tag === w) { t[q].close = 1; break } } return "" } else { t.pop(); if (t.length && t[t.length - 1].close) { u = u + "</" + t[t.length - 1].tag + ">"; t.pop() } } } else { if (/^(br|hr|input|meta|img|link|param)$/i.test(w)) { return u } if (/\/>$/.test(u)) { return u } t.push({ tag: w }) } return u }); for (q = t.length - 1; q >= 0; q--) { r += "</" + t[q].tag + ">" } return r } }) })(tinymce); (function(d) { var f = d.each, c = d.isIE, a = d.isGecko, b = d.isOpera, e = d.isWebKit; d.create("tinymce.EditorCommands", { EditorCommands: function(g) { this.editor = g }, execCommand: function(k, j, l) { var h = this, g = h.editor, i; switch (k) { case "mceResetDesignMode": case "mceBeginUndoLevel": return true; case "unlink": h.UnLink(); return true; case "JustifyLeft": case "JustifyCenter": case "JustifyRight": case "JustifyFull": h.mceJustify(k, k.substring(7).toLowerCase()); return true; default: i = this[k]; if (i) { i.call(this, j, l); return true } } return false }, Indent: function() { var g = this.editor, l = g.dom, j = g.selection, k, h, i; h = g.settings.indentation; i = /[a-z%]+$/i.exec(h); h = parseInt(h); if (g.settings.inline_styles && (!this.queryStateInsertUnorderedList() && !this.queryStateInsertOrderedList())) { f(j.getSelectedBlocks(), function(m) { l.setStyle(m, "paddingLeft", (parseInt(m.style.paddingLeft || 0) + h) + i) }); return } g.getDoc().execCommand("Indent", false, null); if (c) { l.getParent(j.getNode(), function(m) { if (m.nodeName == "BLOCKQUOTE") { m.dir = m.style.cssText = "" } }) } }, Outdent: function() { var h = this.editor, m = h.dom, k = h.selection, l, g, i, j; i = h.settings.indentation; j = /[a-z%]+$/i.exec(i); i = parseInt(i); if (h.settings.inline_styles && (!this.queryStateInsertUnorderedList() && !this.queryStateInsertOrderedList())) { f(k.getSelectedBlocks(), function(n) { g = Math.max(0, parseInt(n.style.paddingLeft || 0) - i); m.setStyle(n, "paddingLeft", g ? g + j : "") }); return } h.getDoc().execCommand("Outdent", false, null) }, mceSetContent: function(h, g) { this.editor.setContent(g) }, mceToggleVisualAid: function() { var g = this.editor; g.hasVisual = !g.hasVisual; g.addVisual() }, mceReplaceContent: function(h, g) { var i = this.editor.selection; i.setContent(g.replace(/\{\$selection\}/g, i.getContent({ format: "text" }))) }, mceInsertLink: function(i, h) { var g = this.editor, j = g.selection, k = g.dom.getParent(j.getNode(), "a"); if (d.is(h, "string")) { h = { href: h} } function l(m) { f(h, function(o, n) { g.dom.setAttrib(m, n, o) }) } if (!k) { g.execCommand("CreateLink", false, "javascript:mctmp(0);"); f(g.dom.select("a[href=javascript:mctmp(0);]"), function(m) { l(m) }) } else { if (h.href) { l(k) } else { g.dom.remove(k, 1) } } }, UnLink: function() { var g = this.editor, h = g.selection; if (h.isCollapsed()) { h.select(h.getNode()) } g.getDoc().execCommand("unlink", false, null); h.collapse(0) }, FontName: function(i, h) { var j = this, g = j.editor, k = g.selection, l; if (!h) { if (k.isCollapsed()) { k.select(k.getNode()) } } else { if (g.settings.convert_fonts_to_spans) { j._applyInlineStyle("span", { style: { fontFamily: h} }) } else { g.getDoc().execCommand("FontName", false, h) } } }, FontSize: function(j, i) { var h = this.editor, l = h.settings, k, g; if (l.convert_fonts_to_spans && i >= 1 && i <= 7) { g = d.explode(l.font_size_style_values); k = d.explode(l.font_size_classes); if (k) { i = k[i - 1] || i } else { i = g[i - 1] || i } } if (i >= 1 && i <= 7) { h.getDoc().execCommand("FontSize", false, i) } else { this._applyInlineStyle("span", { style: { fontSize: i} }) } }, queryCommandValue: function(h) { var g = this["queryValue" + h]; if (g) { return g.call(this, h) } return false }, queryCommandState: function(h) { var g; switch (h) { case "JustifyLeft": case "JustifyCenter": case "JustifyRight": case "JustifyFull": return this.queryStateJustify(h, h.substring(7).toLowerCase()); default: if (g = this["queryState" + h]) { return g.call(this, h) } } return -1 }, _queryState: function(h) { try { return this.editor.getDoc().queryCommandState(h) } catch (g) { } }, _queryVal: function(h) { try { return this.editor.getDoc().queryCommandValue(h) } catch (g) { } }, queryValueFontSize: function() { var h = this.editor, g = 0, i; if (i = h.dom.getParent(h.selection.getNode(), "span")) { g = i.style.fontSize } if (!g && (b || e)) { if (i = h.dom.getParent(h.selection.getNode(), "font")) { g = i.size } return g } return g || this._queryVal("FontSize") }, queryValueFontName: function() { var h = this.editor, g = 0, i; if (i = h.dom.getParent(h.selection.getNode(), "font")) { g = i.face } if (i = h.dom.getParent(h.selection.getNode(), "span")) { g = i.style.fontFamily.replace(/, /g, ",").replace(/[\'\"]/g, "").toLowerCase() } if (!g) { g = this._queryVal("FontName") } return g }, mceJustify: function(o, p) { var k = this.editor, m = k.selection, g = m.getNode(), q = g.nodeName, h, j, i = k.dom, l; if (k.settings.inline_styles && this.queryStateJustify(o, p)) { l = 1 } h = i.getParent(g, k.dom.isBlock); if (q == "IMG") { if (p == "full") { return } if (l) { if (p == "center") { i.setStyle(h || g.parentNode, "textAlign", "") } i.setStyle(g, "float", ""); this.mceRepaint(); return } if (p == "center") { if (h && /^(TD|TH)$/.test(h.nodeName)) { h = 0 } if (!h || h.childNodes.length > 1) { j = i.create("p"); j.appendChild(g.cloneNode(false)); if (h) { i.insertAfter(j, h) } else { i.insertAfter(j, g) } i.remove(g); g = j.firstChild; h = j } i.setStyle(h, "textAlign", p); i.setStyle(g, "float", "") } else { i.setStyle(g, "float", p); i.setStyle(h || g.parentNode, "textAlign", "") } this.mceRepaint(); return } if (k.settings.inline_styles && k.settings.forced_root_block) { if (l) { p = "" } f(m.getSelectedBlocks(i.getParent(m.getStart(), i.isBlock), i.getParent(m.getEnd(), i.isBlock)), function(n) { i.setAttrib(n, "align", ""); i.setStyle(n, "textAlign", p == "full" ? "justify" : p) }); return } else { if (!l) { k.getDoc().execCommand(o, false, null) } } if (k.settings.inline_styles) { if (l) { i.getParent(k.selection.getNode(), function(r) { if (r.style && r.style.textAlign) { i.setStyle(r, "textAlign", "") } }); return } f(i.select("*"), function(s) { var r = s.align; if (r) { if (r == "full") { r = "justify" } i.setStyle(s, "textAlign", r); i.setAttrib(s, "align", "") } }) } }, mceSetCSSClass: function(h, g) { this.mceSetStyleInfo(0, { command: "setattrib", name: "class", value: g }) }, getSelectedElement: function() { var w = this, o = w.editor, n = o.dom, s = o.selection, h = s.getRng(), l, k, u, p, j, g, q, i, x, v; if (s.isCollapsed() || h.item) { return s.getNode() } v = o.settings.merge_styles_invalid_parents; if (d.is(v, "string")) { v = new RegExp(v, "i") } if (c) { l = h.duplicate(); l.collapse(true); u = l.parentElement(); k = h.duplicate(); k.collapse(false); p = k.parentElement(); if (u != p) { l.move("character", 1); u = l.parentElement() } if (u == p) { l = h.duplicate(); l.moveToElementText(u); if (l.compareEndPoints("StartToStart", h) == 0 && l.compareEndPoints("EndToEnd", h) == 0) { return v && v.test(u.nodeName) ? null : u } } } else { function m(r) { return n.getParent(r, "*") } u = h.startContainer; p = h.endContainer; j = h.startOffset; g = h.endOffset; if (!h.collapsed) { if (u == p) { if (j - g < 2) { if (u.hasChildNodes()) { i = u.childNodes[j]; return v && v.test(i.nodeName) ? null : i } } } } if (u.nodeType != 3 || p.nodeType != 3) { return null } if (j == 0) { i = m(u); if (i && i.firstChild != u) { i = null } } if (j == u.nodeValue.length) { q = u.nextSibling; if (q && q.nodeType == 1) { i = u.nextSibling } } if (g == 0) { q = p.previousSibling; if (q && q.nodeType == 1) { x = q } } if (g == p.nodeValue.length) { x = m(p); if (x && x.lastChild != p) { x = null } } if (i == x) { return v && i && v.test(i.nodeName) ? null : i } } return null }, mceSetStyleInfo: function(n, m) { var q = this, h = q.editor, j = h.getDoc(), g = h.dom, i, k, r = h.selection, p = m.wrapper || "span", k = r.getBookmark(), o; function l(t, s) { if (t.nodeType == 1) { switch (m.command) { case "setattrib": return g.setAttrib(t, m.name, m.value); case "setstyle": return g.setStyle(t, m.name, m.value); case "removeformat": return g.setAttrib(t, "class", "") } } } o = h.settings.merge_styles_invalid_parents; if (d.is(o, "string")) { o = new RegExp(o, "i") } if ((i = q.getSelectedElement()) && !h.settings.force_span_wrappers) { l(i, 1) } else { j.execCommand("FontName", false, "__"); f(g.select("span,font"), function(u) { var s, t; if (g.getAttrib(u, "face") == "__" || u.style.fontFamily === "__") { s = g.create(p, { mce_new: "1" }); l(s); f(u.childNodes, function(v) { s.appendChild(v.cloneNode(true)) }); g.replace(s, u) } }) } f(g.select(p).reverse(), function(t) { var s = t.parentNode; if (!g.getAttrib(t, "mce_new")) { s = g.getParent(t, "*[mce_new]"); if (s) { g.remove(t, 1) } } }); f(g.select(p).reverse(), function(t) { var s = t.parentNode; if (!s || !g.getAttrib(t, "mce_new")) { return } if (h.settings.force_span_wrappers && s.nodeName != "SPAN") { return } if (s.nodeName == p.toUpperCase() && s.childNodes.length == 1) { return g.remove(s, 1) } if (t.nodeType == 1 && (!o || !o.test(s.nodeName)) && s.childNodes.length == 1) { l(s); g.setAttrib(t, "class", "") } }); f(g.select(p).reverse(), function(s) { if (g.getAttrib(s, "mce_new") || (g.getAttribs(s).length <= 1 && s.className === "")) { if (!g.getAttrib(s, "class") && !g.getAttrib(s, "style")) { return g.remove(s, 1) } g.setAttrib(s, "mce_new", "") } }); r.moveToBookmark(k) }, queryStateJustify: function(k, h) { var g = this.editor, j = g.selection.getNode(), i = g.dom; if (j && j.nodeName == "IMG") { if (i.getStyle(j, "float") == h) { return 1 } return j.parentNode.style.textAlign == h } j = i.getParent(g.selection.getStart(), function(l) { return l.nodeType == 1 && l.style.textAlign }); if (h == "full") { h = "justify" } if (g.settings.inline_styles) { return (j && j.style.textAlign == h) } return this._queryState(k) }, ForeColor: function(i, h) { var g = this.editor; if (g.settings.convert_fonts_to_spans) { this._applyInlineStyle("span", { style: { color: h} }); return } else { g.getDoc().execCommand("ForeColor", false, h) } }, HiliteColor: function(i, k) { var h = this, g = h.editor, j = g.getDoc(); if (g.settings.convert_fonts_to_spans) { this._applyInlineStyle("span", { style: { backgroundColor: k} }); return } function l(n) { if (!a) { return } try { j.execCommand("styleWithCSS", 0, n) } catch (m) { j.execCommand("useCSS", 0, !n) } } if (a || b) { l(true); j.execCommand("hilitecolor", false, k); l(false) } else { j.execCommand("BackColor", false, k) } }, FormatBlock: function(n, h) { var o = this, l = o.editor, p = l.selection, j = l.dom, g, k, m; function i(q) { return /^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(q.nodeName) } g = j.getParent(p.getNode(), function(q) { return i(q) }); if (g) { if ((c && i(g.parentNode)) || g.nodeName == "DIV") { k = l.dom.create(h); f(j.getAttribs(g), function(q) { j.setAttrib(k, q.nodeName, j.getAttrib(g, q.nodeName)) }); m = p.getBookmark(); j.replace(k, g, 1); p.moveToBookmark(m); l.nodeChanged(); return } } h = l.settings.forced_root_block ? (h || "<p>") : h; if (h.indexOf("<") == -1) { h = "<" + h + ">" } if (d.isGecko) { h = h.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi, "$1") } l.getDoc().execCommand("FormatBlock", false, h) }, mceCleanup: function() { var h = this.editor, i = h.selection, g = i.getBookmark(); h.setContent(h.getContent()); i.moveToBookmark(g) }, mceRemoveNode: function(j, k) { var h = this.editor, i = h.selection, g, l = k || i.getNode(); if (l == h.getBody()) { return } g = i.getBookmark(); h.dom.remove(l, 1); i.moveToBookmark(g); h.nodeChanged() }, mceSelectNodeDepth: function(i, j) { var g = this.editor, h = g.selection, k = 0; g.dom.getParent(h.getNode(), function(l) { if (l.nodeType == 1 && k++ == j) { h.select(l); g.nodeChanged(); return false } }, g.getBody()) }, mceSelectNode: function(h, g) { this.editor.selection.select(g) }, mceInsertContent: function(g, h) { this.editor.selection.setContent(h) }, mceInsertRawHTML: function(h, i) { var g = this.editor; g.selection.setContent("tiny_mce_marker"); g.setContent(g.getContent().replace(/tiny_mce_marker/g, i)) }, mceRepaint: function() { var i, g, j = this.editor; if (d.isGecko) { try { i = j.selection; g = i.getBookmark(true); if (i.getSel()) { i.getSel().selectAllChildren(j.getBody()) } i.collapse(true); i.moveToBookmark(g) } catch (h) { } } }, queryStateUnderline: function() { var g = this.editor, h = g.selection.getNode(); if (h && h.nodeName == "A") { return false } return this._queryState("Underline") }, queryStateOutdent: function() { var g = this.editor, h; if (g.settings.inline_styles) { if ((h = g.dom.getParent(g.selection.getStart(), g.dom.isBlock)) && parseInt(h.style.paddingLeft) > 0) { return true } if ((h = g.dom.getParent(g.selection.getEnd(), g.dom.isBlock)) && parseInt(h.style.paddingLeft) > 0) { return true } } return this.queryStateInsertUnorderedList() || this.queryStateInsertOrderedList() || (!g.settings.inline_styles && !!g.dom.getParent(g.selection.getNode(), "BLOCKQUOTE")) }, queryStateInsertUnorderedList: function() { return this.editor.dom.getParent(this.editor.selection.getNode(), "UL") }, queryStateInsertOrderedList: function() { return this.editor.dom.getParent(this.editor.selection.getNode(), "OL") }, queryStatemceBlockQuote: function() { return !!this.editor.dom.getParent(this.editor.selection.getStart(), function(g) { return g.nodeName === "BLOCKQUOTE" }) }, _applyInlineStyle: function(o, j, m) { var q = this, n = q.editor, l = n.dom, i, p = {}, k, r; o = o.toUpperCase(); if (m && m.check_classes && j["class"]) { m.check_classes.push(j["class"]) } function h() { f(l.select(o).reverse(), function(t) { var s = 0; f(l.getAttribs(t), function(u) { if (u.nodeName.substring(0, 1) != "_" && l.getAttrib(t, u.nodeName) != "") { s++ } }); if (s == 0) { l.remove(t, 1) } }) } function g() { var s; f(l.select("span,font"), function(t) { if (t.style.fontFamily == "mceinline" || t.face == "mceinline") { if (!s) { s = n.selection.getBookmark() } j._mce_new = "1"; l.replace(l.create(o, j), t, 1) } }); f(l.select(o + "[_mce_new]"), function(u) { function t(v) { if (v.nodeType == 1) { f(j.style, function(x, w) { l.setStyle(v, w, "") }); if (j["class"] && v.className && m) { f(m.check_classes, function(w) { if (l.hasClass(v, w)) { l.removeClass(v, w) } }) } } } f(l.select(o, u), t); if (u.parentNode && u.parentNode.nodeType == 1 && u.parentNode.childNodes.length == 1) { t(u.parentNode) } l.getParent(u.parentNode, function(v) { if (v.nodeType == 1) { if (j.style) { f(j.style, function(y, x) { var w; if (!p[x] && (w = l.getStyle(v, x))) { if (w === y) { l.setStyle(u, x, "") } p[x] = 1 } }) } if (j["class"] && v.className && m) { f(m.check_classes, function(w) { if (l.hasClass(v, w)) { l.removeClass(u, w) } }) } } return false }); u.removeAttribute("_mce_new") }); h(); n.selection.moveToBookmark(s); return !!s } n.focus(); n.getDoc().execCommand("FontName", false, "mceinline"); g(); if (k = q._applyInlineStyle.keyhandler) { n.onKeyUp.remove(k); n.onKeyPress.remove(k); n.onKeyDown.remove(k); n.onSetContent.remove(q._applyInlineStyle.chandler) } if (n.selection.isCollapsed()) { if (!c) { f(l.getParents(n.selection.getNode(), "span"), function(s) { f(j.style, function(u, t) { var w; if (w = l.getStyle(s, t)) { if (w == u) { l.setStyle(s, t, ""); r = 2; return false } r = 1; return false } }); if (r) { return false } }); if (r == 2) { i = n.selection.getBookmark(); h(); n.selection.moveToBookmark(i); window.setTimeout(function() { n.nodeChanged() }, 1); return } } q._pendingStyles = d.extend(q._pendingStyles || {}, j.style); q._applyInlineStyle.chandler = n.onSetContent.add(function() { delete q._pendingStyles }); q._applyInlineStyle.keyhandler = k = function(s) { if (q._pendingStyles) { j.style = q._pendingStyles; delete q._pendingStyles } if (g()) { n.onKeyDown.remove(q._applyInlineStyle.keyhandler); n.onKeyPress.remove(q._applyInlineStyle.keyhandler) } if (s.type == "keyup") { n.onKeyUp.remove(q._applyInlineStyle.keyhandler) } }; n.onKeyDown.add(k); n.onKeyPress.add(k); n.onKeyUp.add(k) } else { q._pendingStyles = 0 } } }) })(tinymce); (function(a) { a.create("tinymce.UndoManager", { index: 0, data: null, typing: 0, UndoManager: function(c) { var d = this, b = a.util.Dispatcher; d.editor = c; d.data = []; d.onAdd = new b(this); d.onUndo = new b(this); d.onRedo = new b(this) }, add: function(d) { var g = this, f, e = g.editor, c, h = e.settings, j; d = d || {}; d.content = d.content || e.getContent({ format: "raw", no_events: 1 }); d.content = d.content.replace(/^\s*|\s*$/g, ""); j = g.data[g.index > 0 && (g.index == 0 || g.index == g.data.length) ? g.index - 1 : g.index]; if (!d.initial && j && d.content == j.content) { return null } if (h.custom_undo_redo_levels) { if (g.data.length > h.custom_undo_redo_levels) { for (f = 0; f < g.data.length - 1; f++) { g.data[f] = g.data[f + 1] } g.data.length--; g.index = g.data.length } } if (h.custom_undo_redo_restore_selection && !d.initial) { d.bookmark = c = d.bookmark || e.selection.getBookmark() } if (g.index < g.data.length) { g.index++ } if (g.data.length === 0 && !d.initial) { return null } g.data.length = g.index + 1; g.data[g.index++] = d; if (d.initial) { g.index = 0 } if (g.data.length == 2 && g.data[0].initial) { g.data[0].bookmark = c } g.onAdd.dispatch(g, d); e.isNotDirty = 0; return d }, undo: function() { var e = this, c = e.editor, b = b, d; if (e.typing) { e.add(); e.typing = 0 } if (e.index > 0) { if (e.index == e.data.length && e.index > 1) { d = e.index; e.typing = 0; if (!e.add()) { e.index = d } --e.index } b = e.data[--e.index]; c.setContent(b.content, { format: "raw" }); c.selection.moveToBookmark(b.bookmark); e.onUndo.dispatch(e, b) } return b }, redo: function() { var d = this, c = d.editor, b = null; if (d.index < d.data.length - 1) { b = d.data[++d.index]; c.setContent(b.content, { format: "raw" }); c.selection.moveToBookmark(b.bookmark); d.onRedo.dispatch(d, b) } return b }, clear: function() { var b = this; b.data = []; b.index = 0; b.typing = 0; b.add({ initial: true }) }, hasUndo: function() { return this.index != 0 || this.typing }, hasRedo: function() { return this.index < this.data.length - 1 } }) })(tinymce); (function(i) { var h, c, a, b, g, f; h = i.dom.Event; c = i.isIE; a = i.isGecko; b = i.isOpera; g = i.each; f = i.extend; function e(k, l) { var j = l.ownerDocument.createRange(); j.setStart(k.endContainer, k.endOffset); j.setEndAfter(l); return j.cloneContents().textContent.length == 0 } function d(j) { j = j.innerHTML; j = j.replace(/<(img|hr|table|input|select|textarea)[ \>]/gi, "-"); j = j.replace(/<[^>]+>/g, ""); return j.replace(/[ \t\r\n]+/g, "") == "" } i.create("tinymce.ForceBlocks", { ForceBlocks: function(k) { var l = this, m = k.settings, n; l.editor = k; l.dom = k.dom; n = (m.forced_root_block || "p").toLowerCase(); m.element = n.toUpperCase(); k.onPreInit.add(l.setup, l); l.reOpera = new RegExp("(\\u00a0|&#160;|&nbsp;)</" + n + ">", "gi"); l.rePadd = new RegExp("<p( )([^>]+)><\\/p>|<p( )([^>]+)\\/>|<p( )([^>]+)>\\s+<\\/p>|<p><\\/p>|<p\\/>|<p>\\s+<\\/p>".replace(/p/g, n), "gi"); l.reNbsp2BR1 = new RegExp("<p( )([^>]+)>[\\s\\u00a0]+<\\/p>|<p>[\\s\\u00a0]+<\\/p>".replace(/p/g, n), "gi"); l.reNbsp2BR2 = new RegExp("<%p()([^>]+)>(&nbsp;|&#160;)<\\/%p>|<%p>(&nbsp;|&#160;)<\\/%p>".replace(/%p/g, n), "gi"); l.reBR2Nbsp = new RegExp("<p( )([^>]+)>\\s*<br \\/>\\s*<\\/p>|<p>\\s*<br \\/>\\s*<\\/p>".replace(/p/g, n), "gi"); function j(p, q) { if (b) { q.content = q.content.replace(l.reOpera, "</" + n + ">") } q.content = q.content.replace(l.rePadd, "<" + n + "$1$2$3$4$5$6>\u00a0</" + n + ">"); if (!c && !b && q.set) { q.content = q.content.replace(l.reNbsp2BR1, "<" + n + "$1$2><br /></" + n + ">"); q.content = q.content.replace(l.reNbsp2BR2, "<" + n + "$1$2><br /></" + n + ">") } else { q.content = q.content.replace(l.reBR2Nbsp, "<" + n + "$1$2>\u00a0</" + n + ">") } } k.onBeforeSetContent.add(j); k.onPostProcess.add(j); if (m.forced_root_block) { k.onInit.add(l.forceRoots, l); k.onSetContent.add(l.forceRoots, l); k.onBeforeGetContent.add(l.forceRoots, l) } }, setup: function() { var k = this, j = k.editor, l = j.settings; if (l.forced_root_block) { j.onKeyUp.add(k.forceRoots, k); j.onPreProcess.add(k.forceRoots, k) } if (l.force_br_newlines) { if (c) { j.onKeyPress.add(function(o, q) { var r, p = o.selection; if (q.keyCode == 13 && p.getNode().nodeName != "LI") { p.setContent('<br id="__" /> ', { format: "raw" }); r = o.dom.get("__"); r.removeAttribute("id"); p.select(r); p.collapse(); return h.cancel(q) } }) } return } if (!c && l.force_p_newlines) { j.onKeyPress.add(function(n, o) { if (o.keyCode == 13 && !o.shiftKey) { if (!k.insertPara(o)) { h.cancel(o) } } }); if (a) { j.onKeyDown.add(function(n, o) { if ((o.keyCode == 8 || o.keyCode == 46) && !o.shiftKey) { k.backspaceDelete(o, o.keyCode == 8) } }) } } function m(o, n) { var p = j.dom.create(n); g(o.attributes, function(q) { if (q.specified && q.nodeValue) { p.setAttribute(q.nodeName.toLowerCase(), q.nodeValue) } }); g(o.childNodes, function(q) { p.appendChild(q.cloneNode(true)) }); o.parentNode.replaceChild(p, o); return p } j.onPreProcess.add(function(n, p) { g(n.dom.select("p,h1,h2,h3,h4,h5,h6,div", p.node), function(o) { if (d(o)) { g(n.dom.select("span,em,strong,b,i", p.node), function(q) { if (!q.hasChildNodes()) { q.appendChild(n.getDoc().createTextNode("\u00a0")); return false } }) } }) }); if (c) { if (l.element != "P") { j.onKeyPress.add(function(n, o) { k.lastElm = n.selection.getNode().nodeName }); j.onKeyUp.add(function(p, r) { var t, q = p.selection, s = q.getNode(), o = p.getBody(); if (o.childNodes.length === 1 && s.nodeName == "P") { s = m(s, l.element); q.select(s); q.collapse(); p.nodeChanged() } else { if (r.keyCode == 13 && !r.shiftKey && k.lastElm != "P") { t = p.dom.getParent(s, "p"); if (t) { m(t, l.element); p.nodeChanged() } } } }) } } }, find: function(p, l, m) { var k = this.editor, j = k.getDoc().createTreeWalker(p, 4, null, false), o = -1; while (p = j.nextNode()) { o++; if (l == 0 && p == m) { return o } if (l == 1 && o == m) { return p } } return -1 }, forceRoots: function(p, D) { var u = this, p = u.editor, H = p.getBody(), E = p.getDoc(), K = p.selection, v = K.getSel(), w = K.getRng(), I = -2, o, B, j, k, F = -16777215; var G, l, J, A, x, m = H.childNodes, z, y, q; for (z = m.length - 1; z >= 0; z--) { G = m[z]; if (G.nodeType === 3 || (!u.dom.isBlock(G) && G.nodeType !== 8 && !/^(script|mce:script|style|mce:style)$/i.test(G.nodeName))) { if (!l) { if (G.nodeType != 3 || /[^\s]/g.test(G.nodeValue)) { if (I == -2 && w) { if (!c) { if (w.startContainer.nodeType == 1 && (y = w.startContainer.childNodes[w.startOffset]) && y.nodeType == 1) { q = y.getAttribute("id"); y.setAttribute("id", "__mce") } else { if (p.dom.getParent(w.startContainer, function(n) { return n === H })) { B = w.startOffset; j = w.endOffset; I = u.find(H, 0, w.startContainer); o = u.find(H, 0, w.endContainer) } } } else { k = E.body.createTextRange(); k.moveToElementText(H); k.collapse(1); J = k.move("character", F) * -1; k = w.duplicate(); k.collapse(1); A = k.move("character", F) * -1; k = w.duplicate(); k.collapse(0); x = (k.move("character", F) * -1) - A; I = A - J; o = x } } l = p.dom.create(p.settings.forced_root_block); G.parentNode.replaceChild(l, G); l.appendChild(G) } } else { if (l.hasChildNodes()) { l.insertBefore(G, l.firstChild) } else { l.appendChild(G) } } } else { l = null } } if (I != -2) { if (!c) { l = H.getElementsByTagName(p.settings.element)[0]; w = E.createRange(); if (I != -1) { w.setStart(u.find(H, 1, I), B) } else { w.setStart(l, 0) } if (o != -1) { w.setEnd(u.find(H, 1, o), j) } else { w.setEnd(l, 0) } if (v) { v.removeAllRanges(); v.addRange(w) } } else { try { w = v.createRange(); w.moveToElementText(H); w.collapse(1); w.moveStart("character", I); w.moveEnd("character", o); w.select() } catch (C) { } } } else { if (!c && (y = p.dom.get("__mce"))) { if (q) { y.setAttribute("id", q) } else { y.removeAttribute("id") } w = E.createRange(); w.setStartBefore(y); w.setEndBefore(y); K.setRng(w) } } }, getParentBlock: function(k) { var j = this.dom; return j.getParent(k, j.isBlock) }, insertPara: function(N) { var B = this, p = B.editor, J = p.dom, O = p.getDoc(), S = p.settings, C = p.selection.getSel(), D = C.getRangeAt(0), R = O.body; var G, H, E, L, K, m, k, o, u, j, z, Q, l, q, F, I = J.getViewPort(p.getWin()), x, A, w; G = O.createRange(); G.setStart(C.anchorNode, C.anchorOffset); G.collapse(true); H = O.createRange(); H.setStart(C.focusNode, C.focusOffset); H.collapse(true); E = G.compareBoundaryPoints(G.START_TO_END, H) < 0; L = E ? C.anchorNode : C.focusNode; K = E ? C.anchorOffset : C.focusOffset; m = E ? C.focusNode : C.anchorNode; k = E ? C.focusOffset : C.anchorOffset; if (L === m && /^(TD|TH)$/.test(L.nodeName)) { if (L.firstChild.nodeName == "BR") { J.remove(L.firstChild) } if (L.childNodes.length == 0) { p.dom.add(L, S.element, null, "<br />"); Q = p.dom.add(L, S.element, null, "<br />") } else { F = L.innerHTML; L.innerHTML = ""; p.dom.add(L, S.element, null, F); Q = p.dom.add(L, S.element, null, "<br />") } D = O.createRange(); D.selectNodeContents(Q); D.collapse(1); p.selection.setRng(D); return false } if (L == R && m == R && R.firstChild && p.dom.isBlock(R.firstChild)) { L = m = L.firstChild; K = k = 0; G = O.createRange(); G.setStart(L, 0); H = O.createRange(); H.setStart(m, 0) } L = L.nodeName == "HTML" ? O.body : L; L = L.nodeName == "BODY" ? L.firstChild : L; m = m.nodeName == "HTML" ? O.body : m; m = m.nodeName == "BODY" ? m.firstChild : m; o = B.getParentBlock(L); u = B.getParentBlock(m); j = o ? o.nodeName : S.element; if (B.dom.getParent(o, "ol,ul,pre")) { return true } if (o && (o.nodeName == "CAPTION" || /absolute|relative|fixed/gi.test(J.getStyle(o, "position", 1)))) { j = S.element; o = null } if (u && (u.nodeName == "CAPTION" || /absolute|relative|fixed/gi.test(J.getStyle(o, "position", 1)))) { j = S.element; u = null } if (/(TD|TABLE|TH|CAPTION)/.test(j) || (o && j == "DIV" && /left|right/gi.test(J.getStyle(o, "float", 1)))) { j = S.element; o = u = null } z = (o && o.nodeName == j) ? o.cloneNode(0) : p.dom.create(j); Q = (u && u.nodeName == j) ? u.cloneNode(0) : p.dom.create(j); Q.removeAttribute("id"); if (/^(H[1-6])$/.test(j) && e(D, o)) { Q = p.dom.create(S.element) } F = l = L; do { if (F == R || F.nodeType == 9 || B.dom.isBlock(F) || /(TD|TABLE|TH|CAPTION)/.test(F.nodeName)) { break } l = F } while ((F = F.previousSibling ? F.previousSibling : F.parentNode)); F = q = m; do { if (F == R || F.nodeType == 9 || B.dom.isBlock(F) || /(TD|TABLE|TH|CAPTION)/.test(F.nodeName)) { break } q = F } while ((F = F.nextSibling ? F.nextSibling : F.parentNode)); if (l.nodeName == j) { G.setStart(l, 0) } else { G.setStartBefore(l) } G.setEnd(L, K); z.appendChild(G.cloneContents() || O.createTextNode("")); try { H.setEndAfter(q) } catch (M) { } H.setStart(m, k); Q.appendChild(H.cloneContents() || O.createTextNode("")); D = O.createRange(); if (!l.previousSibling && l.parentNode.nodeName == j) { D.setStartBefore(l.parentNode) } else { if (G.startContainer.nodeName == j && G.startOffset == 0) { D.setStartBefore(G.startContainer) } else { D.setStart(G.startContainer, G.startOffset) } } if (!q.nextSibling && q.parentNode.nodeName == j) { D.setEndAfter(q.parentNode) } else { D.setEnd(H.endContainer, H.endOffset) } D.deleteContents(); if (b) { p.getWin().scrollTo(0, I.y) } if (z.firstChild && z.firstChild.nodeName == j) { z.innerHTML = z.firstChild.innerHTML } if (Q.firstChild && Q.firstChild.nodeName == j) { Q.innerHTML = Q.firstChild.innerHTML } if (d(z)) { z.innerHTML = "<br />" } function P(y, s) { var r = [], U, T, t; y.innerHTML = ""; if (S.keep_styles) { T = s; do { if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(T.nodeName)) { U = T.cloneNode(false); J.setAttrib(U, "id", ""); r.push(U) } } while (T = T.parentNode) } if (r.length > 0) { for (t = r.length - 1, U = y; t >= 0; t--) { U = U.appendChild(r[t]) } r[0].innerHTML = b ? "&nbsp;" : "<br />"; return r[0] } else { y.innerHTML = b ? "&nbsp;" : "<br />" } } if (d(Q)) { w = P(Q, m) } if (b && parseFloat(opera.version()) < 9.5) { D.insertNode(z); D.insertNode(Q) } else { D.insertNode(Q); D.insertNode(z) } Q.normalize(); z.normalize(); function v(r) { return O.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, false).nextNode() || r } D = O.createRange(); D.selectNodeContents(a ? v(w || Q) : w || Q); D.collapse(1); C.removeAllRanges(); C.addRange(D); x = p.dom.getPos(Q).y; A = Q.clientHeight; if (x < I.y || x + A > I.y + I.h) { p.getWin().scrollTo(0, x < I.y ? x : x - I.h + 25) } return false }, backspaceDelete: function(o, x) { var z = this, m = z.editor, s = m.getBody(), l = m.dom, k, p = m.selection, j = p.getRng(), q = j.startContainer, k, u, v; if (q && m.dom.isBlock(q) && !/^(TD|TH)$/.test(q.nodeName) && x) { if (q.childNodes.length == 0 || (q.childNodes.length == 1 && q.firstChild.nodeName == "BR")) { k = q; while ((k = k.previousSibling) && !m.dom.isBlock(k)) { } if (k) { if (q != s.firstChild) { u = m.dom.doc.createTreeWalker(k, NodeFilter.SHOW_TEXT, null, false); while (v = u.nextNode()) { k = v } j = m.getDoc().createRange(); j.setStart(k, k.nodeValue ? k.nodeValue.length : 0); j.setEnd(k, k.nodeValue ? k.nodeValue.length : 0); p.setRng(j); m.dom.remove(q) } return h.cancel(o) } } } function y(n) { var r; n = n.target; if (n && n.parentNode && n.nodeName == "BR" && (k = z.getParentBlock(n))) { r = n.previousSibling; h.remove(s, "DOMNodeInserted", y); if (r && r.nodeType == 3 && /\s+$/.test(r.nodeValue)) { return } if (n.previousSibling || n.nextSibling) { m.dom.remove(n) } } } h._add(s, "DOMNodeInserted", y); window.setTimeout(function() { h._remove(s, "DOMNodeInserted", y) }, 1) } }) })(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) { 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) } }, _decode: function(f) { return d.DOM.decode(f).replace(/\\n/g, "\n") } }) } (tinymce)); (function(a) { a.CommandManager = function() { var c = {}, b = {}, d = {}; function e(i, h, g, f) { if (typeof (h) == "string") { h = [h] } a.each(h, function(j) { i[j.toLowerCase()] = { func: g, scope: f} }) } a.extend(this, { add: function(h, g, f) { e(c, h, g, f) }, addQueryStateHandler: function(h, g, f) { e(b, h, g, f) }, addQueryValueHandler: function(h, g, f) { e(d, h, g, f) }, execCommand: function(g, j, i, h, f) { if (j = c[j.toLowerCase()]) { if (j.func.call(g || j.scope, i, h, f) !== false) { return true } } }, queryCommandValue: function() { if (cmd = d[cmd.toLowerCase()]) { return cmd.func.call(scope || cmd.scope, ui, value, args) } }, queryCommandState: function() { if (cmd = b[cmd.toLowerCase()]) { return cmd.func.call(scope || cmd.scope, ui, value, args) } } }) }; a.GlobalCommands = new a.CommandManager() })(tinymce); (function(b) { function a(i, d, h, m) { var j, g, e, l, f; function k(p, o) { do { if (p.parentNode == o) { return p } p = p.parentNode } while (p) } function c(o) { m(o); b.walk(o, m, "childNodes") } j = i.findCommonAncestor(d, h); e = k(d, j) || d; l = k(h, j) || h; for (g = d; g && g != e; g = g.parentNode) { for (f = g.nextSibling; f; f = f.nextSibling) { c(f) } } if (e != l) { for (g = e.nextSibling; g && g != l; g = g.nextSibling) { c(g) } } else { c(e) } for (g = h; g && g != l; g = g.parentNode) { for (f = g.previousSibling; f; f = f.previousSibling) { c(f) } } } b.GlobalCommands.add("RemoveFormat", function() { var m = this, l = m.dom, u = m.selection, d = u.getRng(1), e = [], h, f, j, q, g, o, c, i; function k(s) { var r; l.getParent(s, function(v) { if (l.is(v, m.getParam("removeformat_selector"))) { r = v } return l.isBlock(v) }, m.getBody()); return r } function p(r) { if (l.is(r, m.getParam("removeformat_selector"))) { e.push(r) } } function t(r) { p(r); b.walk(r, p, "childNodes") } h = u.getBookmark(); q = d.startContainer; o = d.endContainer; g = d.startOffset; c = d.endOffset; q = q.nodeType == 1 ? q.childNodes[Math.min(g, q.childNodes.length - 1)] : q; o = o.nodeType == 1 ? o.childNodes[Math.min(g == c ? c : c - 1, o.childNodes.length - 1)] : o; if (q == o) { f = k(q); if (q.nodeType == 3) { if (f && f.nodeType == 1) { i = q.splitText(g); i.splitText(c - g); l.split(f, i); u.moveToBookmark(h) } return } t(l.split(f, q) || q) } else { f = k(q); j = k(o); if (f) { if (q.nodeType == 3) { if (g == q.nodeValue.length) { q.nodeValue += "\uFEFF" } q = q.splitText(g) } } if (j) { if (o.nodeType == 3) { o.splitText(c) } } if (f && f == j) { l.replace(l.create("span", { id: "__end" }, o.cloneNode(true)), o) } if (f) { f = l.split(f, q) } else { f = q } if (i = l.get("__end")) { o = i; j = k(o) } if (j) { j = l.split(j, o) } else { j = o } a(l, f, j, p); if (q.nodeValue == "\uFEFF") { q.nodeValue = "" } t(o); t(q) } b.each(e, function(r) { l.remove(r, 1) }); l.remove("__end", 1); u.moveToBookmark(h) }) })(tinymce); (function(a) { a.GlobalCommands.add("mceBlockQuote", function() { var j = this, o = j.selection, f = j.dom, l, k, e, d, p, c, m, h, b; function g(i) { return f.getParent(i, function(q) { return q.nodeName === "BLOCKQUOTE" }) } l = f.getParent(o.getStart(), f.isBlock); k = f.getParent(o.getEnd(), f.isBlock); if (p = g(l)) { if (l != k || l.childNodes.length > 1 || (l.childNodes.length == 1 && l.firstChild.nodeName != "BR")) { d = o.getBookmark() } if (g(k)) { m = p.cloneNode(false); while (e = k.nextSibling) { m.appendChild(e.parentNode.removeChild(e)) } } if (m) { f.insertAfter(m, p) } b = o.getSelectedBlocks(l, k); for (h = b.length - 1; h >= 0; h--) { f.insertAfter(b[h], p) } if (/^\s*$/.test(p.innerHTML)) { f.remove(p, 1) } if (m && /^\s*$/.test(m.innerHTML)) { f.remove(m, 1) } if (!d) { if (!a.isIE) { c = j.getDoc().createRange(); c.setStart(l, 0); c.setEnd(l, 0); o.setRng(c) } else { o.select(l); o.collapse(0); if (f.getParent(o.getStart(), f.isBlock) != l) { c = o.getRng(); c.move("character", -1); c.select() } } } else { j.selection.moveToBookmark(d) } return } if (a.isIE && !l && !k) { j.getDoc().execCommand("Indent"); e = g(o.getNode()); e.style.margin = e.dir = ""; return } if (!l || !k) { return } if (l != k || l.childNodes.length > 1 || (l.childNodes.length == 1 && l.firstChild.nodeName != "BR")) { d = o.getBookmark() } a.each(o.getSelectedBlocks(g(o.getStart()), g(o.getEnd())), function(i) { if (i.nodeName == "BLOCKQUOTE" && !p) { p = i; return } if (!p) { p = f.create("blockquote"); i.parentNode.insertBefore(p, i) } if (i.nodeName == "BLOCKQUOTE" && p) { e = i.firstChild; while (e) { p.appendChild(e.cloneNode(true)); e = e.nextSibling } f.remove(i); return } p.appendChild(f.remove(i)) }); if (!d) { if (!a.isIE) { c = j.getDoc().createRange(); c.setStart(l, 0); c.setEnd(l, 0); o.setRng(c) } else { o.select(l); o.collapse(1) } } else { o.moveToBookmark(d) } }) })(tinymce); (function(a) { a.each(["Cut", "Copy", "Paste"], function(b) { a.GlobalCommands.add(b, function() { var c = this, e = c.getDoc(); try { e.execCommand(b, false, null); if (!e.queryCommandEnabled(b)) { throw "Error" } } catch (d) { if (a.isGecko) { c.windowManager.confirm(c.getLang("clipboard_no_support")/*, function(f) { if (f) { open("http://www.mozilla.org/editor/midasdemo/securityprefs.html", "_blank"); } }*/) } else { /*c.windowManager.alert(c.getLang("clipboard_no_support"))*/ } } }) }) })(tinymce); (function(a) { a.GlobalCommands.add("InsertHorizontalRule", function() { if (a.isOpera) { return this.getDoc().execCommand("InsertHorizontalRule", false, "") } this.selection.setContent("<hr />") }) })(tinymce); (function() { var a = tinymce.GlobalCommands; a.add(["mceEndUndoLevel", "mceAddUndoLevel"], function() { this.undoManager.add() }); a.add("Undo", function() { var b = this; if (b.settings.custom_undo_redo) { b.undoManager.undo(); b.nodeChanged(); return true } return false }); a.add("Redo", function() { var b = this; if (b.settings.custom_undo_redo) { b.undoManager.redo(); b.nodeChanged(); return true } return false }) })();