(function(d) { var a = /^\s*|\s*$/g, e, c = "B".replace(/A(.)|B/, "$1") === "$1"; var b = { majorVersion: "3", minorVersion: "4.1", releaseDate: "2011-03-24", _init: function() { var s = this, q = document, o = navigator, g = o.userAgent, m, f, l, k, j, r; s.isOpera = d.opera && opera.buildNumber; s.isWebKit = /WebKit/.test(g); s.isIE = !s.isWebKit && !s.isOpera && (/MSIE/gi).test(g) && (/Explorer/gi).test(o.appName); s.isIE6 = s.isIE && /MSIE [56]/.test(g); s.isGecko = !s.isWebKit && /Gecko/.test(g); s.isMac = g.indexOf("Mac") != -1; s.isAir = /adobeair/i.test(g); s.isIDevice = /(iPad|iPhone)/.test(g); if (d.tinyMCEPreInit) { s.suffix = tinyMCEPreInit.suffix; s.baseURL = tinyMCEPreInit.base; s.query = tinyMCEPreInit.query; return } s.suffix = ""; f = q.getElementsByTagName("base"); for (m = 0; m < f.length; m++) { if (r = f[m].href) { if (/^https?:\/\/[^\/]+$/.test(r)) { r += "/" } k = r ? r.match(/.*\//)[0] : "" } } function h(i) { if (i.src && /tiny_mce(|_gzip|_jquery|_prototype|_full)(_dev|_src)?.js/.test(i.src)) { if (/_(src|dev)\.js/g.test(i.src)) { s.suffix = "_src" } if ((j = i.src.indexOf("?")) != -1) { s.query = i.src.substring(j + 1) } s.baseURL = i.src.substring(0, i.src.lastIndexOf("/")); if (k && s.baseURL.indexOf("://") == -1 && s.baseURL.indexOf("/") !== 0) { s.baseURL = k + s.baseURL } return s.baseURL } return null } f = q.getElementsByTagName("script"); for (m = 0; m < f.length; m++) { if (h(f[m])) { return } } l = q.getElementsByTagName("head")[0]; if (l) { f = l.getElementsByTagName("script"); for (m = 0; m < f.length; m++) { if (h(f[m])) { return } } } return }, is: function(g, f) { if (!f) { return g !== e } if (f == "array" && (g.hasOwnProperty && g instanceof Array)) { return true } return typeof(g) == f }, makeMap: function(f, j, h) { var g; f = f || []; j = j || ","; if (typeof(f) == "string") { f = f.split(j) } h = h || {}; g = f.length; while (g--) { h[f[g]] = {} } return h }, each: function(i, f, h) { var j, g; if (!i) { return 0 } h = h || i; if (i.length !== e) { for (j = 0, g = i.length; j < g; j++) { if (f.call(h, i[j], j, i) === false) { return 0 } } } else { for (j in i) { if (i.hasOwnProperty(j)) { if (f.call(h, i[j], j, i) === false) { return 0 } } } } return 1 }, map: function(g, h) { var i = []; b.each(g, function(f) { i.push(h(f)) }); return i }, grep: function(g, h) { var i = []; b.each(g, function(f) { if (!h || h(f)) { i.push(f) } }); return i }, inArray: function(g, h) { var j, f; if (g) { for (j = 0, f = g.length; j < f; j++) { if (g[j] === h) { return j } } } return -1 }, extend: function(k, j) { var h, g, f = arguments; for (h = 1, g = f.length; h < g; h++) { j = f[h]; b.each(j, function(i, l) { if (i !== e) { k[l] = i } }) } return k }, trim: function(f) { return (f ? "" + f : "").replace(a, "") }, create: function(o, f, j) { var n = this, g, i, k, l, h, m = 0; o = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(o); k = o[3].match(/(^|\.)(\w+)$/i)[2]; i = n.createNS(o[3].replace(/\.\w+$/, ""), j); if (i[k]) { return } if (o[2] == "static") { i[k] = f; if (this.onCreate) { this.onCreate(o[2], o[3], i[k]) } return } if (!f[k]) { f[k] = function() {}; m = 1 } i[k] = f[k]; n.extend(i[k].prototype, f); if (o[5]) { g = n.resolve(o[5]).prototype; l = o[5].match(/\.(\w+)$/i)[1]; h = i[k]; if (m) { i[k] = function() { return g[l].apply(this, arguments) } } else { i[k] = function() { this.parent = g[l]; return h.apply(this, arguments) } } i[k].prototype[k] = i[k]; n.each(g, function(p, q) { i[k].prototype[q] = g[q] }); n.each(f, function(p, q) { if (g[q]) { i[k].prototype[q] = function() { this.parent = g[q]; return p.apply(this, arguments) } } else { if (q != k) { i[k].prototype[q] = p } } }) } n.each(f["static"], function(p, q) { i[k][q] = p }); if (this.onCreate) { this.onCreate(o[2], o[3], i[k].prototype) } }, walk: function(i, h, j, g) { g = g || this; if (i) { if (j) { i = i[j] } b.each(i, function(k, f) { if (h.call(g, k, f, j) === false) { return false } b.walk(k, h, j, g) }) } }, createNS: function(j, h) { var g, f; h = h || d; j = j.split("."); for (g = 0; g < j.length; g++) { f = j[g]; if (!h[f]) { h[f] = {} } h = h[f] } return h }, resolve: function(j, h) { var g, f; h = h || d; j = j.split("."); for (g = 0, f = j.length; g < f; g++) { h = h[j[g]]; if (!h) { break } } return h }, addUnload: function(j, i) { var h = this; j = { func: j, scope: i || this }; if (!h.unloads) { function g() { var f = h.unloads, l, m; if (f) { for (m in f) { l = f[m]; if (l && l.func) { l.func.call(l.scope, 1) } } if (d.detachEvent) { d.detachEvent("onbeforeunload", k); d.detachEvent("onunload", g) } else { if (d.removeEventListener) { d.removeEventListener("unload", g, false) } } h.unloads = l = f = w = g = 0; if (d.CollectGarbage) { CollectGarbage() } } } function k() { var l = document; if (l.readyState == "interactive") { function f() { l.detachEvent("onstop", f); if (g) { g() } l = 0 } if (l) { l.attachEvent("onstop", f) } d.setTimeout(function() { if (l) { l.detachEvent("onstop", f) } }, 0) } } if (d.attachEvent) { d.attachEvent("onunload", g); d.attachEvent("onbeforeunload", k) } else { if (d.addEventListener) { d.addEventListener("unload", g, false) } } h.unloads = [j] } else { h.unloads.push(j) } return j }, removeUnload: function(i) { var g = this.unloads, h = null; b.each(g, function(j, f) { if (j && j.func == i) { g.splice(f, 1); h = i; return false } }); return h }, explode: function(f, g) { return f ? b.map(f.split(g || ","), b.trim) : f }, _addVer: function(g) { var f; if (!this.query) { return g } f = (g.indexOf("?") == -1 ? "?" : "&") + this.query; if (g.indexOf("#") == -1) { return g + f } return g.replace("#", f + "#") }, _replace: function(h, f, g) { if (c) { return g.replace(h, function() { var l = f, j = arguments, k; for (k = 0; k < j.length - 2; k++) { if (j[k] === e) { l = l.replace(new RegExp("\\$" + k, "g"), "") } else { l = l.replace(new RegExp("\\$" + k, "g"), j[k]) } } return l }) } return g.replace(h, f) } }; b._init(); d.tinymce = d.tinyMCE = b })(window); tinymce.create("tinymce.util.Dispatcher", { scope: null, listeners: null, Dispatcher: function(a) { this.scope = a || this; this.listeners = [] }, add: function(a, b) { this.listeners.push({ cb: a, scope: b || this.scope }); return a }, addToTop: function(a, b) { this.listeners.unshift({ cb: a, scope: b || this.scope }); return a }, remove: function(a) { var b = this.listeners, c = null; tinymce.each(b, function(e, d) { if (a == e.cb) { c = a; b.splice(d, 1); return false } }); return c }, dispatch: function() { var f, d = arguments, e, b = this.listeners, g; for (e = 0; e < b.length; e++) { g = b[e]; f = g.cb.apply(g.scope, d); if (f === false) { break } } return f } }); (function() { var a = tinymce.each; tinymce.create("tinymce.util.URI", { URI: function(e, g) { var f = this, h, d, c; e = tinymce.trim(e); g = f.settings = g || {}; if (/^(mailto|tel|news|javascript|about|data):/i.test(e) || /^\s*#/.test(e)) { f.source = e; return } if (e.indexOf("/") === 0 && e.indexOf("//") !== 0) { e = (g.base_uri ? g.base_uri.protocol || "http" : "http") + "://mce_host" + e } if (!/^\w*:?\/\//.test(e)) { e = (g.base_uri.protocol || "http") + "://mce_host" + f.toAbsPath(g.base_uri.path, e) } e = e.replace(/@@/g, "(mce_at)"); e = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e); a(["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"], function(b, j) { var k = e[j]; if (k) { k = k.replace(/\(mce_at\)/g, "@@") } f[b] = k }); if (c = g.base_uri) { if (!f.protocol) { f.protocol = c.protocol } if (!f.userInfo) { f.userInfo = c.userInfo } if (!f.port && f.host == "mce_host") { f.port = c.port } if (!f.host || f.host == "mce_host") { f.host = c.host } f.source = "" } }, setPath: function(c) { var b = this; c = /^(.*?)\/?(\w+)?$/.exec(c); b.path = c[0]; b.directory = c[1]; b.file = c[2]; b.source = ""; b.getURI() }, toRelative: function(b) { var c = this, d; if (b === "./") { return b } b = new tinymce.util.URI(b, { base_uri: c }); if ((b.host != "mce_host" && c.host != b.host && b.host) || c.port != b.port || c.protocol != b.protocol) { return b.getURI() } d = c.toRelPath(c.path, b.path); if (b.query) { d += "?" + b.query } if (b.anchor) { d += "#" + b.anchor } return d }, toAbsolute: function(b, c) { var b = new tinymce.util.URI(b, { base_uri: this }); return b.getURI(this.host == b.host && this.protocol == b.protocol ? c : 0) }, toRelPath: function(g, h) { var c, f = 0, d = "", e, b; g = g.substring(0, g.lastIndexOf("/")); g = g.split("/"); c = h.split("/"); if (g.length >= c.length) { for (e = 0, b = g.length; e < b; e++) { if (e >= c.length || g[e] != c[e]) { f = e + 1; break } } } if (g.length < c.length) { for (e = 0, b = c.length; e < b; e++) { if (e >= g.length || g[e] != c[e]) { f = e + 1; break } } } if (f == 1) { return h } for (e = 0, b = g.length - (f - 1); e < b; e++) { d += "../" } for (e = f - 1, b = c.length; e < b; e++) { if (e != f - 1) { d += "/" + c[e] } else { d += c[e] } } return d }, toAbsPath: function(e, f) { var c, b = 0, h = [], d, g; d = /\/$/.test(f) ? "/" : ""; e = e.split("/"); f = f.split("/"); a(e, function(i) { if (i) { h.push(i) } }); e = h; for (c = f.length - 1, h = []; c >= 0; c--) { if (f[c].length == 0 || f[c] == ".") { continue } if (f[c] == "..") { b++; continue } if (b > 0) { b--; continue } h.push(f[c]) } c = e.length - b; if (c <= 0) { g = h.reverse().join("/") } else { g = e.slice(0, c).join("/") + "/" + h.reverse().join("/") } if (g.indexOf("/") !== 0) { g = "/" + g } if (d && g.lastIndexOf("/") !== g.length - 1) { g += d } return g }, getURI: function(d) { var c, b = this; if (!b.source || d) { c = ""; if (!d) { if (b.protocol) { c += b.protocol + "://" } if (b.userInfo) { c += b.userInfo + "@" } if (b.host) { c += b.host } if (b.port) { c += ":" + b.port } } if (b.path) { c += b.path } if (b.query) { c += "?" + b.query } if (b.anchor) { c += "#" + b.anchor } b.source = c } return b.source } }) })(); (function() { var a = tinymce.each; tinymce.create("static tinymce.util.Cookie", { getHash: function(d) { var b = this.get(d), c; if (b) { a(b.split("&"), function(e) { e = e.split("="); c = c || {}; c[unescape(e[0])] = unescape(e[1]) }) } return c }, setHash: function(j, b, g, f, i, c) { var h = ""; a(b, function(e, d) { h += (!h ? "" : "&") + escape(d) + "=" + escape(e) }); this.set(j, h, g, f, i, c) }, get: function(i) { var h = document.cookie, g, f = i + "=", d; if (!h) { return } d = h.indexOf("; " + f); if (d == -1) { d = h.indexOf(f); if (d != 0) { return null } } else { d += 2 } g = h.indexOf(";", d); if (g == -1) { g = h.length } return unescape(h.substring(d + f.length, g)) }, set: function(i, b, g, f, h, c) { document.cookie = i + "=" + escape(b) + ((g) ? "; expires=" + g.toGMTString() : "") + ((f) ? "; path=" + escape(f) : "") + ((h) ? "; domain=" + h : "") + ((c) ? "; secure" : "") }, remove: function(e, b) { var c = new Date(); c.setTime(c.getTime() - 1000); this.set(e, "", c, b, c) } }) })(); (function() { function serialize(o, quote) { var i, v, t; quote = quote || '"'; if (o == null) { return "null" } t = typeof o; if (t == "string") { v = "\bb\tt\nn\ff\rr\"\"''\\\\"; return quote + o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function(a, b) { if (quote === '"' && a === "'") { return a } i = v.indexOf(b); if (i + 1) { return "\\" + v.charAt(i + 1) } a = b.charCodeAt().toString(16); return "\\u" + "0000".substring(a.length) + a }) + quote } if (t == "object") { if (o.hasOwnProperty && o instanceof Array) { for (i = 0, v = "["; i < o.length; i++) { v += (i > 0 ? "," : "") + serialize(o[i], quote) } return v + "]" } v = "{"; for (i in o) { v += typeof o[i] != "function" ? (v.length > 1 ? "," + quote : quote) + i + quote + ":" + serialize(o[i], quote) : "" } return v + "}" } return "" + o } tinymce.util.JSON = { serialize: serialize, parse: function(s) { try { return eval("(" + s + ")") } catch (ex) {} } } })(); tinymce.create("static tinymce.util.XHR", { send: function(g) { var a, e, b = window, h = 0; g.scope = g.scope || this; g.success_scope = g.success_scope || g.scope; g.error_scope = g.error_scope || g.scope; g.async = g.async === false ? false : true; g.data = g.data || ""; function d(i) { a = 0; try { a = new ActiveXObject(i) } catch (c) {} return a } a = b.XMLHttpRequest ? new XMLHttpRequest() : d("Microsoft.XMLHTTP") || d("Msxml2.XMLHTTP"); if (a) { if (a.overrideMimeType) { a.overrideMimeType(g.content_type) } a.open(g.type || (g.data ? "POST" : "GET"), g.url, g.async); if (g.content_type) { a.setRequestHeader("Content-Type", g.content_type) } a.setRequestHeader("X-Requested-With", "XMLHttpRequest"); a.send(g.data); function f() { if (!g.async || a.readyState == 4 || h++ > 10000) { if (g.success && h < 10000 && a.status == 200) { g.success.call(g.success_scope, "" + a.responseText, a, g) } else { if (g.error) { g.error.call(g.error_scope, h > 10000 ? "TIMED_OUT" : "GENERAL", a, g) } } a = null } else { b.setTimeout(f, 10) } } if (!g.async) { return f() } e = b.setTimeout(f, 10) } } }); (function() { var c = tinymce.extend, b = tinymce.util.JSON, a = tinymce.util.XHR; tinymce.create("tinymce.util.JSONRequest", { JSONRequest: function(d) { this.settings = c({}, d); this.count = 0 }, send: function(f) { var e = f.error, d = f.success; f = c(this.settings, f); f.success = function(h, g) { h = b.parse(h); if (typeof(h) == "undefined") { h = { error: "JSON Parse error." } } if (h.error) { e.call(f.error_scope || f.scope, h.error, g) } else { d.call(f.success_scope || f.scope, h.result) } }; f.error = function(h, g) { if (e) { e.call(f.error_scope || f.scope, h, g) } }; f.data = b.serialize({ id: f.id || "c" + (this.count++), method: f.method, params: f.params }); f.content_type = "application/json"; a.send(f) }, "static": { sendRPC: function(d) { return new tinymce.util.JSONRequest().send(d) } } }) }()); (function(j) { var a, g, d, k = /[&\"\u007E-\uD7FF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, b = /[<>&\u007E-\uD7FF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, f = /[<>&\"\']/g, c = /&(#)?([\w]+);/g, i = { 128: "\u20AC", 130: "\u201A", 131: "\u0192", 132: "\u201E", 133: "\u2026", 134: "\u2020", 135: "\u2021", 136: "\u02C6", 137: "\u2030", 138: "\u0160", 139: "\u2039", 140: "\u0152", 142: "\u017D", 145: "\u2018", 146: "\u2019", 147: "\u201C", 148: "\u201D", 149: "\u2022", 150: "\u2013", 151: "\u2014", 152: "\u02DC", 153: "\u2122", 154: "\u0161", 155: "\u203A", 156: "\u0153", 158: "\u017E", 159: "\u0178" }; g = { '"': """, "'": "'", "<": "<", ">": ">", "&": "&" }; d = { "<": "<", ">": ">", "&": "&", """: '"', "'": "'" }; function h(l) { var m; m = document.createElement("div"); m.innerHTML = l; return m.textContent || m.innerText || l } function e(m, p) { var n, o, l, q = {}; if (m) { m = m.split(","); p = p || 10; for (n = 0; n < m.length; n += 2) { o = String.fromCharCode(parseInt(m[n], p)); if (!g[o]) { l = "&" + m[n + 1] + ";"; q[o] = l; q[l] = o } } return q } } a = e("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro", 32); j.html = j.html || {}; j.html.Entities = { encodeRaw: function(m, l) { return m.replace(l ? k : b, function(n) { return g[n] || n }) }, encodeAllRaw: function(l) { return ("" + l).replace(f, function(m) { return g[m] || m }) }, encodeNumeric: function(m, l) { return m.replace(l ? k : b, function(n) { if (n.length > 1) { return "&#" + (((n.charCodeAt(0) - 55296) * 1024) + (n.charCodeAt(1) - 56320) + 65536) + ";" } return g[n] || "&#" + n.charCodeAt(0) + ";" }) }, encodeNamed: function(n, l, m) { m = m || a; return n.replace(l ? k : b, function(o) { return g[o] || m[o] || o }) }, getEncodeFunc: function(l, o) { var p = j.html.Entities; o = e(o) || a; function m(r, q) { return r.replace(q ? k : b, function(s) { return g[s] || o[s] || "&#" + s.charCodeAt(0) + ";" || s }) } function n(r, q) { return p.encodeNamed(r, q, o) } l = j.makeMap(l.replace(/\+/g, ",")); if (l.named && l.numeric) { return m } if (l.named) { if (o) { return n } return p.encodeNamed } if (l.numeric) { return p.encodeNumeric } return p.encodeRaw }, decode: function(l) { return l.replace(c, function(n, m, o) { if (m) { o = parseInt(o); if (o > 65535) { o -= 65536; return String.fromCharCode(55296 + (o >> 10), 56320 + (o & 1023)) } else { return i[o] || String.fromCharCode(o) } } return d[n] || a[n] || h(n) }) } } })(tinymce); tinymce.html.Styles = function(d, f) { var k = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi, h = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi, b = /\s*([^:]+):\s*([^;]+);?/g, l = /\s+$/, m = /rgb/, e, g, a = {}, j; d = d || {}; j = "\\\" \\' \\; \\: ; : _".split(" "); for (g = 0; g < j.length; g++) { a[j[g]] = "_" + g; a["_" + g] = j[g] } function c(n, q, p, i) { function o(r) { r = parseInt(r).toString(16); return r.length > 1 ? r : "0" + r } return "#" + o(q) + o(p) + o(i) } return { toHex: function(i) { return i.replace(k, c) }, parse: function(r) { var y = {}, p, n, v, q, u = d.url_converter, x = d.url_converter_scope || this; function o(C, F) { var E, B, A, D; E = y[C + "-top" + F]; if (!E) { return } B = y[C + "-right" + F]; if (E != B) { return } A = y[C + "-bottom" + F]; if (B != A) { return } D = y[C + "-left" + F]; if (A != D) { return } y[C + F] = D; delete y[C + "-top" + F]; delete y[C + "-right" + F]; delete y[C + "-bottom" + F]; delete y[C + "-left" + F] } function t(B) { var C = y[B], A; if (!C || C.indexOf(" ") < 0) { return } C = C.split(" "); A = C.length; while (A--) { if (C[A] !== C[0]) { return false } } y[B] = C[0]; return true } function z(C, B, A, D) { if (!t(B)) { return } if (!t(A)) { return } if (!t(D)) { return } y[C] = y[B] + " " + y[A] + " " + y[D]; delete y[B]; delete y[A]; delete y[D] } function s(A) { q = true; return a[A] } function i(B, A) { if (q) { B = B.replace(/_[0-9]/g, function(C) { return a[C] }) } if (!A) { B = B.replace(/\\([\'\";:])/g, "$1") } return B } if (r) { r = r.replace(/\\[\"\';:_]/g, s).replace(/\"[^\"]+\"|\'[^\']+\'/g, function(A) { return A.replace(/[;:]/g, s) }); while (p = b.exec(r)) { n = p[1].replace(l, "").toLowerCase(); v = p[2].replace(l, ""); if (n && v.length > 0) { if (n === "font-weight" && v === "700") { v = "bold" } else { if (n === "color" || n === "background-color") { v = v.toLowerCase() } } v = v.replace(k, c); v = v.replace(h, function(B, A, E, D, F, C) { F = F || C; if (F) { F = i(F); return "'" + F.replace(/\'/g, "\\'") + "'" } A = i(A || E || D); if (u) { A = u.call(x, A, "style") } return "url('" + A.replace(/\'/g, "\\'") + "')" }); y[n] = q ? i(v, true) : v } b.lastIndex = p.index + p[0].length } o("border", ""); o("border", "-width"); o("border", "-color"); o("border", "-style"); o("padding", ""); o("margin", ""); z("border", "border-width", "border-style", "border-color"); if (y.border === "medium none") { delete y.border } } return y }, serialize: function(p, r) { var o = "", n, q; function i(t) { var x, u, s, t, v; x = f.styles[t]; if (x) { for (u = 0, s = x.length; u < s; u++) { t = x[u]; v = p[t]; if (v !== e) { o += (o.length > 0 ? " " : "") + t + ": " + v + ";" } } } } if (r && f && f.styles) { i("*"); i(n) } else { for (n in p) { q = p[n]; if (q !== e) { o += (o.length > 0 ? " " : "") + n + ": " + q + ";" } } } return o } } }; (function(l) { var g = {}, i, k, f, d, b, e, c = l.makeMap, j = l.each; function h(n, m) { return n.split(m || ",") } function a(q, p) { var n, o = {}; function m(r) { return r.replace(/[A-Z]+/g, function(s) { return m(q[s]) }) } for (n in q) { if (q.hasOwnProperty(n)) { q[n] = m(q[n]) } } m(p).replace(/#/g, "#text").replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g, function(u, s, r, t) { r = h(r, "|"); o[s] = { attributes: c(r), attributesOrder: r, children: c(t, "|", { "#comment": {} }) } }); return o } k = "h1,h2,h3,h4,h5,h6,hr,p,div,address,pre,form,table,tbody,thead,tfoot,th,tr,td,li,ol,ul,caption,blockquote,center,dl,dt,dd,dir,fieldset,noscript,menu,isindex,samp,header,footer,article,section,hgroup"; k = c(k, ",", c(k.toUpperCase())); g = a({ Z: "H|K|N|O|P", Y: "X|form|R|Q", ZG: "E|span|width|align|char|charoff|valign", X: "p|T|div|U|W|isindex|fieldset|table", ZF: "E|align|char|charoff|valign", W: "pre|hr|blockquote|address|center|noframes", ZE: "abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height", ZD: "[E][S]", U: "ul|ol|dl|menu|dir", ZC: "p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q", T: "h1|h2|h3|h4|h5|h6", ZB: "X|S|Q", S: "R|P", ZA: "a|G|J|M|O|P", R: "a|H|K|N|O", Q: "noscript|P", P: "ins|del|script", O: "input|select|textarea|label|button", N: "M|L", M: "em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym", L: "sub|sup", K: "J|I", J: "tt|i|b|u|s|strike", I: "big|small|font|basefont", H: "G|F", G: "br|span|bdo", F: "object|applet|img|map|iframe", E: "A|B|C", D: "accesskey|tabindex|onfocus|onblur", C: "onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup", B: "lang|xml:lang|dir", A: "id|class|style|title" }, "script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]"); i = c("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected,preload,autoplay,loop,controls"); f = c("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,source"); d = l.extend(c("td,th,iframe,video,object"), f); b = c("pre,script,style"); e = c("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"); l.html.Schema = function(p) { var x = this, m = {}, n = {}, u = [], o; p = p || {}; if (p.verify_html === false) { p.valid_elements = "*[*]" } if (p.valid_styles) { o = {}; j(p.valid_styles, function(z, y) { o[y] = l.explode(z) }) } function v(y) { return new RegExp("^" + y.replace(/([?+*])/g, ".$1") + "$") } function r(F) { var E, A, T, P, U, z, C, O, R, K, S, W, I, D, Q, y, M, B, V, X, J, N, H = /^([#+-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/, L = /^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/, G = /[*?+]/; if (F) { F = h(F); if (m["@"]) { M = m["@"].attributes; B = m["@"].attributesOrder } for (E = 0, A = F.length; E < A; E++) { z = H.exec(F[E]); if (z) { Q = z[1]; K = z[2]; y = z[3]; R = z[4]; I = {}; D = []; C = { attributes: I, attributesOrder: D }; if (Q === "#") { C.paddEmpty = true } if (Q === "-") { C.removeEmpty = true } if (M) { for (X in M) { I[X] = M[X] } D.push.apply(D, B) } if (R) { R = h(R, "|"); for (T = 0, P = R.length; T < P; T++) { z = L.exec(R[T]); if (z) { O = {}; W = z[1]; S = z[2].replace(/::/g, ":"); Q = z[3]; N = z[4]; if (W === "!") { C.attributesRequired = C.attributesRequired || []; C.attributesRequired.push(S); O.required = true } if (W === "-") { delete I[S]; D.splice(l.inArray(D, S), 1); continue } if (Q) { if (Q === "=") { C.attributesDefault = C.attributesDefault || []; C.attributesDefault.push({ name: S, value: N }); O.defaultValue = N } if (Q === ":") { C.attributesForced = C.attributesForced || []; C.attributesForced.push({ name: S, value: N }); O.forcedValue = N } if (Q === "<") { O.validValues = c(N, "?") } } if (G.test(S)) { C.attributePatterns = C.attributePatterns || []; O.pattern = v(S); C.attributePatterns.push(O) } else { if (!I[S]) { D.push(S) } I[S] = O } } } } if (!M && K == "@") { M = I; B = D } if (y) { C.outputName = K; m[y] = C } if (G.test(K)) { C.pattern = v(K); u.push(C) } else { m[K] = C } } } } } function t(y) { m = {}; u = []; r(y); j(g, function(A, z) { n[z] = A.children }) } function q(z) { var y = /^(~)?(.+)$/; if (z) { j(h(z), function(C) { var B = y.exec(C), D = B[1] === "~" ? "span" : "div", A = B[2]; n[A] = n[D]; j(n, function(E, F) { if (E[D]) { E[A] = E[D] } }) }) } } function s(z) { var y = /^([+\-]?)(\w+)\[([^\]]+)\]$/; if (z) { j(h(z), function(D) { var C = y.exec(D), A, B; if (C) { B = C[1]; if (B) { A = n[C[2]] } else { A = n[C[2]] = { "#comment": {} } } A = n[C[2]]; j(h(C[3], "|"), function(E) { if (B === "-") { delete A[E] } else { A[E] = {} } }) } }) } } if (!p.valid_elements) { j(g, function(z, y) { m[y] = { attributes: z.attributes, attributesOrder: z.attributesOrder }; n[y] = z.children }); j(h("strong/b,em/i"), function(y) { y = h(y, "/"); m[y[1]].outputName = y[0] }); m.img.attributesDefault = [{ name: "alt", value: "" }]; j(h("ol,ul,li,sub,sup,blockquote,tr,div,span,font,a,table,tbody"), function(y) { m[y].removeEmpty = true }); j(h("p,h1,h2,h3,h4,h5,h6,th,td,pre,div,address,caption"), function(y) { m[y].paddEmpty = true }) } else { t(p.valid_elements) } q(p.custom_elements); s(p.valid_children); r(p.extended_valid_elements); s("+ol[ul|ol],+ul[ul|ol]"); if (p.invalid_elements) { l.each(l.explode(p.invalid_elements), function(y) { if (m[y]) { delete m[y] } }) } x.children = n; x.styles = o; x.getBoolAttrs = function() { return i }; x.getBlockElements = function() { return k }; x.getShortEndedElements = function() { return f }; x.getSelfClosingElements = function() { return e }; x.getNonEmptyElements = function() { return d }; x.getWhiteSpaceElements = function() { return b }; x.isValidChild = function(y, A) { var z = n[y]; return !!(z && z[A]) }; x.getElementRule = function(y) { var A = m[y], z; if (A) { return A } z = u.length; while (z--) { A = u[z]; if (A.pattern.test(y)) { return A } } }; x.addValidElements = r; x.setValidElements = t; x.addCustomElements = q; x.addValidChildren = s }; l.html.Schema.boolAttrMap = i; l.html.Schema.blockElementsMap = k })(tinymce); (function(a) { a.html.SaxParser = function(c, e) { var b = this, d = function() {}; c = c || {}; b.schema = e = e || new a.html.Schema(); if (c.fix_self_closing !== false) { c.fix_self_closing = true } a.each("comment cdata text start end pi doctype".split(" "), function(f) { if (f) { b[f] = c[f] || d } }); b.parse = function(q) { var A = this, f, m = 0, G, j, l = [], B, K, t, N, F, k, p, x, I, r, E, o, J, n, H, M, L, z, D, h, g, u, s = 0, v = a.html.Entities.decode, y; function C(O) { var Q, P; Q = l.length; while (Q--) { if (l[Q].name === O) { break } } if (Q >= 0) { for (P = l.length - 1; P >= Q; P--) { O = l[P]; if (O.valid) { A.end(O.name) } } l.length = Q } } D = new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([^\\s\\/<>]+)\\s*((?:[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*)>))", "g"); h = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:\\.|[^\"])*)\")|(?:\'((?:\\.|[^\'])*)\')|([^>\s]+)))?/g; g = { script: /<\/script[^>]*>/gi, style: /<\/style[^>]*>/gi, noscript: /<\/noscript[^>]*>/gi }; F = e.getShortEndedElements(); z = e.getSelfClosingElements(); k = e.getBoolAttrs(); x = c.validate; y = c.fix_self_closing; while (f = D.exec(q)) { if (m < f.index) { A.text(v(q.substr(m, f.index - m))) } if (G = f[6]) { C(G.toLowerCase()) } else { if (G = f[7]) { G = G.toLowerCase(); p = G in F; if (y && z[G] && l.length > 0 && l[l.length - 1].name === G) { C(G) } if (!x || (I = e.getElementRule(G))) { r = true; if (x) { J = I.attributes; n = I.attributePatterns } if (o = f[8]) { B = []; B.map = {}; o.replace(h, function(P, O, T, S, R) { var U, Q; O = O.toLowerCase(); T = O in k ? O : v(T || S || R || ""); if (x && O.indexOf("data-") !== 0) { U = J[O]; if (!U && n) { Q = n.length; while (Q--) { U = n[Q]; if (U.pattern.test(O)) { break } } if (Q === -1) { U = null } } if (!U) { return } if (U.validValues && !(T in U.validValues)) { return } } B.map[O] = T; B.push({ name: O, value: T }) }) } else { B = []; B.map = {} } if (x) { H = I.attributesRequired; M = I.attributesDefault; L = I.attributesForced; if (L) { K = L.length; while (K--) { E = L[K]; N = E.name; u = E.value; if (u === "{$uid}") { u = "mce_" + s++ } B.map[N] = u; B.push({ name: N, value: u }) } } if (M) { K = M.length; while (K--) { E = M[K]; N = E.name; if (!(N in B.map)) { u = E.value; if (u === "{$uid}") { u = "mce_" + s++ } B.map[N] = u; B.push({ name: N, value: u }) } } } if (H) { K = H.length; while (K--) { if (H[K] in B.map) { break } } if (K === -1) { r = false } } if (B.map["data-mce-bogus"]) { r = false } } if (r) { A.start(G, B, p) } } else { r = false } if (j = g[G]) { j.lastIndex = m = f.index + f[0].length; if (f = j.exec(q)) { if (r) { t = q.substr(m, f.index - m) } m = f.index + f[0].length } else { t = q.substr(m); m = q.length } if (r && t.length > 0) { A.text(t, true) } if (r) { A.end(G) } D.lastIndex = m; continue } if (!p) { if (!o || o.indexOf("/") != o.length - 1) { l.push({ name: G, valid: r }) } else { if (r) { A.end(G) } } } } else { if (G = f[1]) { A.comment(G) } else { if (G = f[2]) { A.cdata(G) } else { if (G = f[3]) { A.doctype(G) } else { if (G = f[4]) { A.pi(G, f[5]) } } } } } } m = f.index + f[0].length } if (m < q.length) { A.text(v(q.substr(m))) } for (K = l.length - 1; K >= 0; K--) { G = l[K]; if (G.valid) { A.end(G.name) } } } } })(tinymce); (function(d) { var c = /^[ \t\r\n]*$/, e = { "#text": 3, "#comment": 8, "#cdata": 4, "#pi": 7, "#doctype": 10, "#document-fragment": 11 }; function a(k, l, j) { var i, h, f = j ? "lastChild" : "firstChild", g = j ? "prev" : "next"; if (k[f]) { return k[f] } if (k !== l) { i = k[g]; if (i) { return i } for (h = k.parent; h && h !== l; h = h.parent) { i = h[g]; if (i) { return i } } } } function b(f, g) { this.name = f; this.type = g; if (g === 1) { this.attributes = []; this.attributes.map = {} } } d.extend(b.prototype, { replace: function(g) { var f = this; if (g.parent) { g.remove() } f.insert(g, f); f.remove(); return f }, attr: function(h, l) { var f = this, g, j, k; if (typeof h !== "string") { for (j in h) { f.attr(j, h[j]) } return f } if (g = f.attributes) { if (l !== k) { if (l === null) { if (h in g.map) { delete g.map[h]; j = g.length; while (j--) { if (g[j].name === h) { g = g.splice(j, 1); return f } } } return f } if (h in g.map) { j = g.length; while (j--) { if (g[j].name === h) { g[j].value = l; break } } } else { g.push({ name: h, value: l }) } g.map[h] = l; return f } else { return g.map[h] } } }, clone: function() { var g = this, n = new b(g.name, g.type), h, f, m, j, k; if (m = g.attributes) { k = []; k.map = {}; for (h = 0, f = m.length; h < f; h++) { j = m[h]; if (j.name !== "id") { k[k.length] = { name: j.name, value: j.value }; k.map[j.name] = j.value } } n.attributes = k } n.value = g.value; n.shortEnded = g.shortEnded; return n }, wrap: function(g) { var f = this; f.parent.insert(g, f); g.append(f); return f }, unwrap: function() { var f = this, h, g; for (h = f.firstChild; h;) { g = h.next; f.insert(h, f, true); h = g } f.remove() }, remove: function() { var f = this, h = f.parent, g = f.next, i = f.prev; if (h) { if (h.firstChild === f) { h.firstChild = g; if (g) { g.prev = null } } else { i.next = g } if (h.lastChild === f) { h.lastChild = i; if (i) { i.next = null } } else { g.prev = i } f.parent = f.next = f.prev = null } return f }, append: function(h) { var f = this, g; if (h.parent) { h.remove() } g = f.lastChild; if (g) { g.next = h; h.prev = g; f.lastChild = h } else { f.lastChild = f.firstChild = h } h.parent = f; return h }, insert: function(h, f, i) { var g; if (h.parent) { h.remove() } g = f.parent || this; if (i) { if (f === g.firstChild) { g.firstChild = h } else { f.prev.next = h } h.prev = f.prev; h.next = f; f.prev = h } else { if (f === g.lastChild) { g.lastChild = h } else { f.next.prev = h } h.next = f.next; h.prev = f; f.next = h } h.parent = g; return h }, getAll: function(g) { var f = this, h, i = []; for (h = f.firstChild; h; h = a(h, f)) { if (h.name === g) { i.push(h) } } return i }, empty: function() { var g = this, f, h, j; if (g.firstChild) { f = []; for (j = g.firstChild; j; j = a(j, g)) { f.push(j) } h = f.length; while (h--) { j = f[h]; j.parent = j.firstChild = j.lastChild = j.next = j.prev = null } } g.firstChild = g.lastChild = null; return g }, isEmpty: function(j) { var f = this, h = f.firstChild, g; if (h) { do { if (h.type === 1) { if (h.attributes.map["data-mce-bogus"]) { continue } if (j[h.name]) { return false } g = h.attributes.length; while (g--) { if (h.attributes[g].name.indexOf("data-") === 0) { return false } } } if ((h.type === 3 && !c.test(h.value))) { return false } } while (h = a(h, f)) } return true } }); d.extend(b, { create: function(g, f) { var i, h; i = new b(g, e[g] || 1); if (f) { for (h in f) { i.attr(h, f[h]) } } return i } }); d.html.Node = b })(tinymce); (function(b) { var a = b.html.Node; b.html.DomParser = function(g, h) { var f = this, e = {}, d = [], i = {}, c = {}; g = g || {}; g.root_name = g.root_name || "body"; f.schema = h = h || new b.html.Schema(); function j(m) { var o, p, x, v, z, n, q, l, t, u, k, s, y, r; s = b.makeMap("tr,td,th,tbody,thead,tfoot,table"); k = h.getNonEmptyElements(); for (o = 0; o < m.length; o++) { p = m[o]; if (!p.parent) { continue } v = [p]; for (x = p.parent; x && !h.isValidChild(x.name, p.name) && !s[x.name]; x = x.parent) { v.push(x) } if (x && v.length > 1) { v.reverse(); z = n = f.filterNode(v[0].clone()); for (t = 0; t < v.length - 1; t++) { if (h.isValidChild(n.name, v[t].name)) { q = f.filterNode(v[t].clone()); n.append(q) } else { q = n } for (l = v[t].firstChild; l && l != v[t + 1];) { r = l.next; q.append(l); l = r } n = q } if (!z.isEmpty(k)) { x.insert(z, v[0], true); x.insert(p, z) } else { x.insert(p, v[0], true) } x = v[0]; if (x.isEmpty(k) || x.firstChild === x.lastChild && x.firstChild.name === "br") { x.empty().remove() } } else { if (p.parent) { if (p.name === "li") { y = p.prev; if (y && (y.name === "ul" || y.name === "ul")) { y.append(p); continue } y = p.next; if (y && (y.name === "ul" || y.name === "ul")) { y.insert(p, y.firstChild, true); continue } p.wrap(f.filterNode(new a("ul", 1))); continue } if (h.isValidChild(p.parent.name, "div") && h.isValidChild("div", p.name)) { p.wrap(f.filterNode(new a("div", 1))) } else { if (p.name === "style" || p.name === "script") { p.empty().remove() } else { p.unwrap() } } } } } } f.filterNode = function(m) { var l, k, n; if (k in e) { n = i[k]; if (n) { n.push(m) } else { i[k] = [m] } } l = d.length; while (l--) { k = d[l].name; if (k in m.attributes.map) { n = c[k]; if (n) { n.push(m) } else { c[k] = [m] } } } return m }; f.addNodeFilter = function(k, l) { b.each(b.explode(k), function(m) { var n = e[m]; if (!n) { e[m] = n = [] } n.push(l) }) }; f.addAttributeFilter = function(k, l) { b.each(b.explode(k), function(m) { var n; for (n = 0; n < d.length; n++) { if (d[n].name === m) { d[n].callbacks.push(l); return } } d.push({ name: m, callbacks: [l] }) }) }; f.parse = function(u, m) { var n, D, y, x, A, z, v, q, C, G, o, B, F = [], s, k, r, p, t; m = m || {}; i = {}; c = {}; o = b.extend(b.makeMap("script,style,head,title,meta,param"), h.getBlockElements()); t = h.getNonEmptyElements(); p = h.children; r = h.getWhiteSpaceElements(); B = /^[ \t\r\n]+/; s = /[ \t\r\n]+$/; k = /[ \t\r\n]+/g; function E(l, H) { var I = new a(l, H), J; if (l in e) { J = i[l]; if (J) { J.push(I) } else { i[l] = [I] } } return I } n = new b.html.SaxParser({ validate: g.validate, fix_self_closing: false, cdata: function(l) { y.append(E("#cdata", 4)).value = l }, text: function(I, l) { var H; if (!r[y.name]) { I = I.replace(k, " "); if (y.lastChild && o[y.lastChild.name]) { I = I.replace(B, "") } } if (I.length !== 0) { H = E("#text", 3); H.raw = !! l; y.append(H).value = I } }, comment: function(l) { y.append(E("#comment", 8)).value = l }, pi: function(l, H) { y.append(E(l, 7)).value = H }, doctype: function(l) { y.append(E("#doctype", 10)).value = l }, start: function(l, P, I) { var N, K, J, H, L, Q, O, M; J = h.getElementRule(l); if (J) { N = E(J.outputName || l, 1); N.attributes = P; N.shortEnded = I; y.append(N); M = p[y.name]; if (M && p[N.name] && !M[N.name]) { F.push(N) } K = d.length; while (K--) { L = d[K].name; if (L in P.map) { C = c[L]; if (C) { C.push(N) } else { c[L] = [N] } } } if (o[l]) { for (H = N.prev; H && H.type === 3;) { Q = H.value.replace(s, ""); if (Q.length > 0) { H.value = Q; H = H.prev } else { O = H.prev; H.remove(); H = O } } } if (!I) { y = N } } }, end: function(l) { var L, I, K, H, J; I = h.getElementRule(l); if (I) { if (o[l]) { if (!r[y.name]) { for (L = y.firstChild; L && L.type === 3;) { K = L.value.replace(B, ""); if (K.length > 0) { L.value = K; L = L.next } else { H = L.next; L.remove(); L = H } } for (L = y.lastChild; L && L.type === 3;) { K = L.value.replace(s, ""); if (K.length > 0) { L.value = K; L = L.prev } else { H = L.prev; L.remove(); L = H } } } L = y.prev; if (L && L.type === 3) { K = L.value.replace(B, ""); if (K.length > 0) { L.value = K } else { L.remove() } } } if (I.removeEmpty || I.paddEmpty) { if (y.isEmpty(t)) { if (I.paddEmpty) { y.empty().append(new a("#text", "3")).value = "\u00a0" } else { if (!y.attributes.map.name) { J = y.parent; y.empty().remove(); y = J; return } } } } y = y.parent } } }, h); D = y = new a(g.root_name, 11); n.parse(u); j(F); for (G in i) { C = e[G]; x = i[G]; v = x.length; while (v--) { if (!x[v].parent) { x.splice(v, 1) } } for (A = 0, z = C.length; A < z; A++) { C[A](x, G, m) } } for (A = 0, z = d.length; A < z; A++) { C = d[A]; if (C.name in c) { x = c[C.name]; v = x.length; while (v--) { if (!x[v].parent) { x.splice(v, 1) } } for (v = 0, q = C.callbacks.length; v < q; v++) { C.callbacks[v](x, C.name, m) } } } return D }; if (g.remove_trailing_brs) { f.addNodeFilter("br", function(n, m) { var r, q = n.length, o, u = h.getBlockElements(), k = h.getNonEmptyElements(), s, p, t; for (r = 0; r < q; r++) { o = n[r]; s = o.parent; if (u[o.parent.name] && o === s.lastChild) { p = o.prev; while (p) { t = p.name; if (t !== "span" || p.attr("data-mce-type") !== "bookmark") { if (t !== "br") { break } if (t === "br") { o = null; break } } p = p.prev } if (o) { o.remove(); if (s.isEmpty(k)) { elementRule = h.getElementRule(s.name); if (elementRule.removeEmpty) { s.remove() } else { if (elementRule.paddEmpty) { s.empty().append(new b.html.Node("#text", 3)).value = "\u00a0" } } } } } } }) } } })(tinymce); tinymce.html.Writer = function(e) { var c = [], a, b, d, f, g; e = e || {}; a = e.indent; b = tinymce.makeMap(e.indent_before || ""); d = tinymce.makeMap(e.indent_after || ""); f = tinymce.html.Entities.getEncodeFunc(e.entity_encoding || "raw", e.entities); g = e.element_format == "html"; return { start: function(m, k, p) { var n, j, h, o; if (a && b[m] && c.length > 0) { o = c[c.length - 1]; if (o.length > 0 && o !== "\n") { c.push("\n") } } c.push("<", m); if (k) { for (n = 0, j = k.length; n < j; n++) { h = k[n]; c.push(" ", h.name, '="', f(h.value, true), '"') } } if (!p || g) { c[c.length] = ">" } else { c[c.length] = " />" } }, end: function(h) { var i; c.push(""); if (a && d[h] && c.length > 0) { i = c[c.length - 1]; if (i.length > 0 && i !== "\n") { c.push("\n") } } }, text: function(i, h) { if (i.length > 0) { c[c.length] = h ? i : f(i) } }, cdata: function(h) { c.push("") }, comment: function(h) { c.push("") }, pi: function(h, i) { if (i) { c.push("") } else { c.push("") } }, doctype: function(h) { c.push("") }, reset: function() { c.length = 0 }, getContent: function() { return c.join("").replace(/\n$/, "") } } }; (function(a) { a.html.Serializer = function(c, d) { var b = this, e = new a.html.Writer(c); c = c || {}; c.validate = "validate" in c ? c.validate : true; b.schema = d = d || new a.html.Schema(); b.writer = e; b.serialize = function(h) { var g, i; i = c.validate; g = { 3: function(k, j) { e.text(k.value, k.raw) }, 8: function(j) { e.comment(j.value) }, 7: function(j) { e.pi(j.name, j.value) }, 10: function(j) { e.doctype(j.value) }, 4: function(j) { e.cdata(j.value) }, 11: function(j) { if ((j = j.firstChild)) { do { f(j) } while (j = j.next) } } }; e.reset(); function f(k) { var t = g[k.type], j, o, s, r, p, u, n, m, q; if (!t) { j = k.name; o = k.shortEnded; s = k.attributes; if (i && s && s.length > 1) { u = []; u.map = {}; q = d.getElementRule(k.name); for (n = 0, m = q.attributesOrder.length; n < m; n++) { r = q.attributesOrder[n]; if (r in s.map) { p = s.map[r]; u.map[r] = p; u.push({ name: r, value: p }) } } for (n = 0, m = s.length; n < m; n++) { r = s[n].name; if (!(r in u.map)) { p = s.map[r]; u.map[r] = p; u.push({ name: r, value: p }) } } s = u } e.start(k.name, s, o); if (!o) { if ((k = k.firstChild)) { do { f(k) } while (k = k.next) } e.end(j) } } else { t(k) } } if (h.type == 1 && !c.inner) { f(h) } else { g[11](h) } return e.getContent() } } })(tinymce); (function(d) { var f = d.each, c = d.is, e = d.isWebKit, a = d.isIE, h = d.html.Entities, b = /^([a-z0-9],?)+$/i, g = d.html.Schema.blockElementsMap; d.create("tinymce.dom.DOMUtils", { doc: null, root: null, files: null, pixelStyles: /^(top|left|bottom|right|width|height|borderWidth)$/, props: { "for": "htmlFor", "class": "className", className: "className", checked: "checked", disabled: "disabled", maxlength: "maxLength", readonly: "readOnly", selected: "selected", value: "value", id: "id", name: "name", type: "type" }, DOMUtils: function(m, k) { var j = this, i; j.doc = m; j.win = window; j.files = {}; j.cssFlicker = false; j.counter = 0; j.stdMode = !d.isIE || m.documentMode >= 8; j.boxModel = !d.isIE || m.compatMode == "CSS1Compat" || j.stdMode; j.hasOuterHTML = "outerHTML" in m.createElement("a"); j.settings = k = d.extend({ keep_values: false, hex_colors: 1 }, k); j.styles = new d.html.Styles({ url_converter: k.url_converter, url_converter_scope: k.url_converter_scope }, k.schema); if (d.isIE6) { try { m.execCommand("BackgroundImageCache", false, true) } catch (l) { j.cssFlicker = true } } if (a) { ("abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video").replace(/\w+/g, function(n) { m.createElement(n) }) } d.addUnload(j.destroy, j) }, getRoot: function() { var i = this, j = i.settings; return (j && i.get(j.root_element)) || i.doc.body }, getViewPort: function(j) { var k, i; j = !j ? this.win : j; k = j.document; i = this.boxModel ? k.documentElement : k.body; return { x: j.pageXOffset || i.scrollLeft, y: j.pageYOffset || i.scrollTop, w: j.innerWidth || i.clientWidth, h: j.innerHeight || i.clientHeight } }, getRect: function(l) { var k, i = this, j; l = i.get(l); k = i.getPos(l); j = i.getSize(l); return { x: k.x, y: k.y, w: j.w, h: j.h } }, getSize: function(l) { var j = this, i, k; l = j.get(l); i = j.getStyle(l, "width"); k = j.getStyle(l, "height"); if (i.indexOf("px") === -1) { i = 0 } if (k.indexOf("px") === -1) { k = 0 } return { w: parseInt(i) || l.offsetWidth || l.clientWidth, h: parseInt(k) || l.offsetHeight || l.clientHeight } }, getParent: function(k, j, i) { return this.getParents(k, j, i, false) }, getParents: function(s, m, k, q) { var j = this, i, l = j.settings, p = []; s = j.get(s); q = q === undefined; if (l.strict_root) { k = k || j.getRoot() } if (c(m, "string")) { i = m; if (m === "*") { m = function(o) { return o.nodeType == 1 } } else { m = function(o) { return j.is(o, i) } } } while (s) { if (s == k || !s.nodeType || s.nodeType === 9) { break } if (!m || m(s)) { if (q) { p.push(s) } else { return s } } s = s.parentNode } return q ? p : null }, get: function(i) { var j; if (i && this.doc && typeof(i) == "string") { j = i; i = this.doc.getElementById(i); if (i && i.id !== j) { return this.doc.getElementsByName(j)[1] } } return i }, getNext: function(j, i) { return this._findSib(j, i, "nextSibling") }, getPrev: function(j, i) { return this._findSib(j, i, "previousSibling") }, select: function(k, j) { var i = this; return d.dom.Sizzle(k, i.get(j) || i.get(i.settings.root_element) || i.doc, []) }, is: function(l, j) { var k; if (l.length === undefined) { if (j === "*") { return l.nodeType == 1 } if (b.test(j)) { j = j.toLowerCase().split(/,/); l = l.nodeName.toLowerCase(); for (k = j.length - 1; k >= 0; k--) { if (j[k] == l) { return true } } return false } } return d.dom.Sizzle.matches(j, l.nodeType ? [l] : l).length > 0 }, add: function(l, o, i, k, m) { var j = this; return this.run(l, function(r) { var q, n; q = c(o, "string") ? j.doc.createElement(o) : o; j.setAttribs(q, i); if (k) { if (k.nodeType) { q.appendChild(k) } else { j.setHTML(q, k) } } return !m ? r.appendChild(q) : q }) }, create: function(k, i, j) { return this.add(this.doc.createElement(k), k, i, j, 1) }, createHTML: function(q, i, m) { var p = "", l = this, j; p += "<" + q; for (j in i) { if (i.hasOwnProperty(j)) { p += " " + j + '="' + l.encode(i[j]) + '"' } } if (typeof(m) != "undefined") { return p + ">" + m + "" } return p + " />" }, remove: function(i, j) { return this.run(i, function(l) { var k, m; k = l.parentNode; if (!k) { return null } if (j) { while (m = l.firstChild) { if (!d.isIE || m.nodeType !== 3 || m.nodeValue) { k.insertBefore(m, l) } else { l.removeChild(m) } } } return k.removeChild(l) }) }, setStyle: function(l, i, j) { var k = this; return k.run(l, function(o) { var n, m; n = o.style; i = i.replace(/-(\D)/g, function(q, p) { return p.toUpperCase() }); if (k.pixelStyles.test(i) && (d.is(j, "number") || /^[\-0-9\.]+$/.test(j))) { j += "px" } switch (i) { case "opacity": if (a) { n.filter = j === "" ? "" : "alpha(opacity=" + (j * 100) + ")"; if (!l.currentStyle || !l.currentStyle.hasLayout) { n.display = "inline-block" } } n[i] = n["-moz-opacity"] = n["-khtml-opacity"] = j || ""; break; case "float": a ? n.styleFloat = j : n.cssFloat = j; break; default: n[i] = j || "" } if (k.settings.update_styles) { k.setAttrib(o, "data-mce-style") } }) }, getStyle: function(l, i, k) { l = this.get(l); if (!l) { return false } if (this.doc.defaultView && k) { i = i.replace(/[A-Z]/g, function(m) { return "-" + m }); try { return this.doc.defaultView.getComputedStyle(l, null).getPropertyValue(i) } catch (j) { return null } } i = i.replace(/-(\D)/g, function(n, m) { return m.toUpperCase() }); if (i == "float") { i = a ? "styleFloat" : "cssFloat" } if (l.currentStyle && k) { return l.currentStyle[i] } return l.style[i] }, setStyles: function(l, m) { var j = this, k = j.settings, i; i = k.update_styles; k.update_styles = 0; f(m, function(o, p) { j.setStyle(l, p, o) }); k.update_styles = i; if (k.update_styles) { j.setAttrib(l, k.cssText) } }, removeAllAttribs: function(i) { return this.run(i, function(l) { var j = l.attributes; for (var k = j.length - 1; k >= 0; k--) { l.removeAttributeNode(j.item(k)) } }) }, setAttrib: function(k, l, i) { var j = this; if (!k || !l) { return } if (j.settings.strict) { l = l.toLowerCase() } return this.run(k, function(n) { var m = j.settings; switch (l) { case "style": if (!c(i, "string")) { f(i, function(o, p) { j.setStyle(n, p, o) }); return } if (m.keep_values) { if (i && !j._isRes(i)) { n.setAttribute("data-mce-style", i, 2) } else { n.removeAttribute("data-mce-style", 2) } } n.style.cssText = i; break; case "class": n.className = i || ""; break; case "src": case "href": if (m.keep_values) { if (m.url_converter) { i = m.url_converter.call(m.url_converter_scope || j, i, l, n) } j.setAttrib(n, "data-mce-" + l, i, 2) } break; case "shape": n.setAttribute("data-mce-style", i); break } if (c(i) && i !== null && i.length !== 0) { n.setAttribute(l, "" + i, 2) } else { n.removeAttribute(l, 2) } }) }, setAttribs: function(j, k) { var i = this; return this.run(j, function(l) { f(k, function(m, o) { i.setAttrib(l, o, m) }) }) }, getAttrib: function(l, m, k) { var i, j = this; l = j.get(l); if (!l || l.nodeType !== 1) { return false } if (!c(k)) { k = "" } if (/^(src|href|style|coords|shape)$/.test(m)) { i = l.getAttribute("data-mce-" + m); if (i) { return i } } if (a && j.props[m]) { i = l[j.props[m]]; i = i && i.nodeValue ? i.nodeValue : i } if (!i) { i = l.getAttribute(m, 2) } if (/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(m)) { if (l[j.props[m]] === true && i === "") { return m } return i ? m : "" } if (l.nodeName === "FORM" && l.getAttributeNode(m)) { return l.getAttributeNode(m).nodeValue } if (m === "style") { i = i || l.style.cssText; if (i) { i = j.serializeStyle(j.parseStyle(i), l.nodeName); if (j.settings.keep_values && !j._isRes(i)) { l.setAttribute("data-mce-style", i) } } } if (e && m === "class" && i) { i = i.replace(/(apple|webkit)\-[a-z\-]+/gi, "") } if (a) { switch (m) { case "rowspan": case "colspan": if (i === 1) { i = "" } break; case "size": if (i === "+0" || i === 20 || i === 0) { i = "" } break; case "width": case "height": case "vspace": case "checked": case "disabled": case "readonly": if (i === 0) { i = "" } break; case "hspace": if (i === -1) { i = "" } break; case "maxlength": case "tabindex": if (i === 32768 || i === 2147483647 || i === "32768") { i = "" } break; case "multiple": case "compact": case "noshade": case "nowrap": if (i === 65535) { return m } return k; case "shape": i = i.toLowerCase(); break; default: if (m.indexOf("on") === 0 && i) { i = d._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/, "$1", "" + i) } } } return (i !== undefined && i !== null && i !== "") ? "" + i : k }, getPos: function(q, l) { var j = this, i = 0, p = 0, m, o = j.doc, k; q = j.get(q); l = l || o.body; if (q) { if (a && !j.stdMode) { q = q.getBoundingClientRect(); m = j.boxModel ? o.documentElement : o.body; i = j.getStyle(j.select("html")[0], "borderWidth"); i = (i == "medium" || j.boxModel && !j.isIE6) && 2 || i; return { x: q.left + m.scrollLeft - i, y: q.top + m.scrollTop - i } } k = q; while (k && k != l && k.nodeType) { i += k.offsetLeft || 0; p += k.offsetTop || 0; k = k.offsetParent } k = q.parentNode; while (k && k != l && k.nodeType) { i -= k.scrollLeft || 0; p -= k.scrollTop || 0; k = k.parentNode } } return { x: i, y: p } }, parseStyle: function(i) { return this.styles.parse(i) }, serializeStyle: function(j, i) { return this.styles.serialize(j, i) }, loadCSS: function(i) { var k = this, l = k.doc, j; if (!i) { i = "" } j = k.select("head")[0]; f(i.split(","), function(m) { var n; if (k.files[m]) { return } k.files[m] = true; n = k.create("link", { rel: "stylesheet", href: d._addVer(m) }); if (a && l.documentMode && l.recalc) { n.onload = function() { if (l.recalc) { l.recalc() } n.onload = null } } j.appendChild(n) }) }, addClass: function(i, j) { return this.run(i, function(k) { var l; if (!j) { return 0 } if (this.hasClass(k, j)) { return k.className } l = this.removeClass(k, j); return k.className = (l != "" ? (l + " ") : "") + j }) }, removeClass: function(k, l) { var i = this, j; return i.run(k, function(n) { var m; if (i.hasClass(n, l)) { if (!j) { j = new RegExp("(^|\\s+)" + l + "(\\s+|$)", "g") } m = n.className.replace(j, " "); m = d.trim(m != " " ? m : ""); n.className = m; if (!m) { n.removeAttribute("class"); n.removeAttribute("className") } return m } return n.className }) }, hasClass: function(j, i) { j = this.get(j); if (!j || !i) { return false } return (" " + j.className + " ").indexOf(" " + i + " ") !== -1 }, show: function(i) { return this.setStyle(i, "display", "block") }, hide: function(i) { return this.setStyle(i, "display", "none") }, isHidden: function(i) { i = this.get(i); return !i || i.style.display == "none" || this.getStyle(i, "display") == "none" }, uniqueId: function(i) { return (!i ? "mce_" : i) + (this.counter++) }, setHTML: function(k, j) { var i = this; return i.run(k, function(m) { if (a) { while (m.firstChild) { m.removeChild(m.firstChild) } try { m.innerHTML = "
" + j; m.removeChild(m.firstChild) } catch (l) { m = i.create("div"); m.innerHTML = "
" + j; f(m.childNodes, function(o, n) { if (n) { m.appendChild(o) } }) } } else { m.innerHTML = j } return j }) }, getOuterHTML: function(k) { var j, i = this; k = i.get(k); if (!k) { return null } if (k.nodeType === 1 && i.hasOuterHTML) { return k.outerHTML } j = (k.ownerDocument || i.doc).createElement("body"); j.appendChild(k.cloneNode(true)); return j.innerHTML }, setOuterHTML: function(l, j, m) { var i = this; function k(p, o, r) { var s, q; q = r.createElement("body"); q.innerHTML = o; s = q.lastChild; while (s) { i.insertAfter(s.cloneNode(true), p); s = s.previousSibling } i.remove(p) } return this.run(l, function(o) { o = i.get(o); if (o.nodeType == 1) { m = m || o.ownerDocument || i.doc; if (a) { try { if (a && o.nodeType == 1) { o.outerHTML = j } else { k(o, j, m) } } catch (n) { k(o, j, m) } } else { k(o, j, m) } } }) }, decode: h.decode, encode: h.encodeAllRaw, insertAfter: function(i, j) { j = this.get(j); return this.run(i, function(l) { var k, m; k = j.parentNode; m = j.nextSibling; if (m) { k.insertBefore(l, m) } else { k.appendChild(l) } return l }) }, isBlock: function(j) { var i = j.nodeType; if (i) { return !!(i === 1 && g[j.nodeName]) } return !!g[j] }, replace: function(m, l, i) { var j = this; if (c(l, "array")) { m = m.cloneNode(true) } return j.run(l, function(k) { if (i) { f(d.grep(k.childNodes), function(n) { m.appendChild(n) }) } return k.parentNode.replaceChild(m, k) }) }, rename: function(l, i) { var k = this, j; if (l.nodeName != i.toUpperCase()) { j = k.create(i); f(k.getAttribs(l), function(m) { k.setAttrib(j, m.nodeName, k.getAttrib(l, m.nodeName)) }); k.replace(j, l, 1) } return j || l }, findCommonAncestor: function(k, i) { var l = k, j; while (l) { j = i; while (j && l != j) { j = j.parentNode } if (l == j) { break } l = l.parentNode } if (!l && k.ownerDocument) { return k.ownerDocument.documentElement } return l }, toHex: function(i) { var k = /^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(i); function j(l) { l = parseInt(l).toString(16); return l.length > 1 ? l : "0" + l } if (k) { i = "#" + j(k[1]) + j(k[2]) + j(k[3]); return i } return i }, getClasses: function() { var n = this, j = [], m, o = {}, p = n.settings.class_filter, l; if (n.classes) { return n.classes } function q(i) { f(i.imports, function(s) { q(s) }); f(i.cssRules || i.rules, function(s) { switch (s.type || 1) { case 1: if (s.selectorText) { f(s.selectorText.split(","), function(r) { r = r.replace(/^\s*|\s*$|^\s\./g, ""); if (/\.mce/.test(r) || !/\.[\w\-]+$/.test(r)) { return } l = r; r = d._replace(/.*\.([a-z0-9_\-]+).*/i, "$1", r); if (p && !(r = p(r, l))) { return } if (!o[r]) { j.push({ "class": r }); o[r] = 1 } }) } break; case 3: q(s.styleSheet); break } }) } try { f(n.doc.styleSheets, q) } catch (k) {} if (j.length > 0) { n.classes = j } return j }, run: function(l, k, j) { var i = this, m; if (i.doc && typeof(l) === "string") { l = i.get(l) } if (!l) { return false } j = j || this; if (!l.nodeType && (l.length || l.length === 0)) { m = []; f(l, function(o, n) { if (o) { if (typeof(o) == "string") { o = i.doc.getElementById(o) } m.push(k.call(j, o, n)) } }); return m } return k.call(j, l) }, getAttribs: function(j) { var i; j = this.get(j); if (!j) { return [] } if (a) { i = []; if (j.nodeName == "OBJECT") { return j.attributes } if (j.nodeName === "OPTION" && this.getAttrib(j, "selected")) { i.push({ specified: 1, nodeName: "selected" }) } j.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi, "").replace(/[\w:\-]+/gi, function(k) { i.push({ specified: 1, nodeName: k }) }); return i } return j.attributes }, destroy: function(j) { var i = this; if (i.events) { i.events.destroy() } i.win = i.doc = i.root = i.events = null; if (!j) { d.removeUnload(i.destroy) } }, createRng: function() { var i = this.doc; return i.createRange ? i.createRange() : new d.dom.Range(this) }, nodeIndex: function(n, o) { var i = 0, l, m, k, j; if (n) { for (l = n.nodeType, n = n.previousSibling, m = n; n; n = n.previousSibling) { k = n.nodeType; if (o && k == 3) { j = false; try { j = n.nodeValue.length } catch (p) {} if (k == l || !j) { continue } } i++; l = k } } return i }, split: function(m, l, p) { var q = this, i = q.createRng(), n, k, o; function j(t) { var s, r = t.childNodes; if (t.nodeType == 1 && t.getAttribute("data-mce-type") == "bookmark") { return } for (s = r.length - 1; s >= 0; s--) { j(r[s]) } if (t.nodeType != 9) { if (t.nodeType == 3 && t.nodeValue.length > 0) { if (!q.isBlock(t.parentNode) || d.trim(t.nodeValue).length > 0) { return } } if (t.nodeType == 1) { r = t.childNodes; if (r.length == 1 && r[0] && r[0].nodeType == 1 && r[0].getAttribute("data-mce-type") == "bookmark") { t.parentNode.insertBefore(r[0], t) } if (r.length || /^(br|hr|input|img)$/i.test(t.nodeName)) { return } } q.remove(t) } return t } if (m && l) { i.setStart(m.parentNode, q.nodeIndex(m)); i.setEnd(l.parentNode, q.nodeIndex(l)); n = i.extractContents(); i = q.createRng(); i.setStart(l.parentNode, q.nodeIndex(l) + 1); i.setEnd(m.parentNode, q.nodeIndex(m) + 1); k = i.extractContents(); o = m.parentNode; o.insertBefore(j(n), m); if (p) { o.replaceChild(p, l) } else { o.insertBefore(l, m) } o.insertBefore(j(k), m); q.remove(m); return p || l } }, bind: function(m, i, l, k) { var j = this; if (!j.events) { j.events = new d.dom.EventUtils() } return j.events.add(m, i, l, k || this) }, unbind: function(l, i, k) { var j = this; if (!j.events) { j.events = new d.dom.EventUtils() } return j.events.remove(l, i, k) }, _findSib: function(l, i, j) { var k = this, m = i; if (l) { if (c(m, "string")) { m = function(n) { return k.is(n, i) } } for (l = l[j]; l; l = l[j]) { if (m(l)) { return l } } } return null }, _isRes: function(i) { return /^(top|left|bottom|right|width|height)/i.test(i) || /;\s*(top|left|bottom|right|width|height)/i.test(i) } }); d.DOM = new d.dom.DOMUtils(document, { process_html: 0 }) })(tinymce); (function(a) { function b(c) { var N = this, e = c.doc, S = 0, E = 1, j = 2, D = true, R = false, U = "startOffset", h = "startContainer", P = "endContainer", z = "endOffset", k = tinymce.extend, n = c.nodeIndex; k(N, { startContainer: e, startOffset: 0, endContainer: e, endOffset: 0, collapsed: D, commonAncestorContainer: e, START_TO_START: 0, START_TO_END: 1, END_TO_END: 2, END_TO_START: 3, setStart: q, setEnd: s, setStartBefore: g, setStartAfter: I, setEndBefore: J, setEndAfter: u, collapse: A, selectNode: x, selectNodeContents: F, compareBoundaryPoints: v, deleteContents: p, extractContents: H, cloneContents: d, insertNode: C, surroundContents: M, cloneRange: K }); function q(V, t) { B(D, V, t) } function s(V, t) { B(R, V, t) } function g(t) { q(t.parentNode, n(t)) } function I(t) { q(t.parentNode, n(t) + 1) } function J(t) { s(t.parentNode, n(t)) } function u(t) { s(t.parentNode, n(t) + 1) } function A(t) { if (t) { N[P] = N[h]; N[z] = N[U] } else { N[h] = N[P]; N[U] = N[z] } N.collapsed = D } function x(t) { g(t); u(t) } function F(t) { q(t, 0); s(t, t.nodeType === 1 ? t.childNodes.length : t.nodeValue.length) } function v(Y, t) { var ab = N[h], W = N[U], aa = N[P], V = N[z], Z = t.startContainer, ad = t.startOffset, X = t.endContainer, ac = t.endOffset; if (Y === 0) { return G(ab, W, Z, ad) } if (Y === 1) { return G(aa, V, Z, ad) } if (Y === 2) { return G(aa, V, X, ac) } if (Y === 3) { return G(ab, W, X, ac) } } function p() { m(j) } function H() { return m(S) } function d() { return m(E) } function C(Y) { var V = this[h], t = this[U], X, W; if ((V.nodeType === 3 || V.nodeType === 4) && V.nodeValue) { if (!t) { V.parentNode.insertBefore(Y, V) } else { if (t >= V.nodeValue.length) { c.insertAfter(Y, V) } else { X = V.splitText(t); V.parentNode.insertBefore(Y, X) } } } else { if (V.childNodes.length > 0) { W = V.childNodes[t] } if (W) { V.insertBefore(Y, W) } else { V.appendChild(Y) } } } function M(V) { var t = N.extractContents(); N.insertNode(V); V.appendChild(t); N.selectNode(V) } function K() { return k(new b(c), { startContainer: N[h], startOffset: N[U], endContainer: N[P], endOffset: N[z], collapsed: N.collapsed, commonAncestorContainer: N.commonAncestorContainer }) } function O(t, V) { var W; if (t.nodeType == 3) { return t } if (V < 0) { return t } W = t.firstChild; while (W && V > 0) { --V; W = W.nextSibling } if (W) { return W } return t } function l() { return (N[h] == N[P] && N[U] == N[z]) } function G(X, Z, V, Y) { var aa, W, t, ab, ad, ac; if (X == V) { if (Z == Y) { return 0 } if (Z < Y) { return -1 } return 1 } aa = V; while (aa && aa.parentNode != X) { aa = aa.parentNode } if (aa) { W = 0; t = X.firstChild; while (t != aa && W < Z) { W++; t = t.nextSibling } if (Z <= W) { return -1 } return 1 } aa = X; while (aa && aa.parentNode != V) { aa = aa.parentNode } if (aa) { W = 0; t = V.firstChild; while (t != aa && W < Y) { W++; t = t.nextSibling } if (W < Y) { return -1 } return 1 } ab = c.findCommonAncestor(X, V); ad = X; while (ad && ad.parentNode != ab) { ad = ad.parentNode } if (!ad) { ad = ab } ac = V; while (ac && ac.parentNode != ab) { ac = ac.parentNode } if (!ac) { ac = ab } if (ad == ac) { return 0 } t = ab.firstChild; while (t) { if (t == ad) { return -1 } if (t == ac) { return 1 } t = t.nextSibling } } function B(V, Y, X) { var t, W; if (V) { N[h] = Y; N[U] = X } else { N[P] = Y; N[z] = X } t = N[P]; while (t.parentNode) { t = t.parentNode } W = N[h]; while (W.parentNode) { W = W.parentNode } if (W == t) { if (G(N[h], N[U], N[P], N[z]) > 0) { N.collapse(V) } } else { N.collapse(V) } N.collapsed = l(); N.commonAncestorContainer = c.findCommonAncestor(N[h], N[P]) } function m(ab) { var aa, X = 0, ad = 0, V, Z, W, Y, t, ac; if (N[h] == N[P]) { return f(ab) } for (aa = N[P], V = aa.parentNode; V; aa = V, V = V.parentNode) { if (V == N[h]) { return r(aa, ab) }++X } for (aa = N[h], V = aa.parentNode; V; aa = V, V = V.parentNode) { if (V == N[P]) { return T(aa, ab) }++ad } Z = ad - X; W = N[h]; while (Z > 0) { W = W.parentNode; Z-- } Y = N[P]; while (Z < 0) { Y = Y.parentNode; Z++ } for (t = W.parentNode, ac = Y.parentNode; t != ac; t = t.parentNode, ac = ac.parentNode) { W = t; Y = ac } return o(W, Y, ab) } function f(Z) { var ab, Y, X, aa, t, W, V; if (Z != j) { ab = e.createDocumentFragment() } if (N[U] == N[z]) { return ab } if (N[h].nodeType == 3) { Y = N[h].nodeValue; X = Y.substring(N[U], N[z]); if (Z != E) { N[h].deleteData(N[U], N[z] - N[U]); N.collapse(D) } if (Z == j) { return } ab.appendChild(e.createTextNode(X)); return ab } aa = O(N[h], N[U]); t = N[z] - N[U]; while (t > 0) { W = aa.nextSibling; V = y(aa, Z); if (ab) { ab.appendChild(V) }--t; aa = W } if (Z != E) { N.collapse(D) } return ab } function r(ab, Y) { var aa, Z, V, t, X, W; if (Y != j) { aa = e.createDocumentFragment() } Z = i(ab, Y); if (aa) { aa.appendChild(Z) } V = n(ab); t = V - N[U]; if (t <= 0) { if (Y != E) { N.setEndBefore(ab); N.collapse(R) } return aa } Z = ab.previousSibling; while (t > 0) { X = Z.previousSibling; W = y(Z, Y); if (aa) { aa.insertBefore(W, aa.firstChild) }--t; Z = X } if (Y != E) { N.setEndBefore(ab); N.collapse(R) } return aa } function T(Z, Y) { var ab, V, aa, t, X, W; if (Y != j) { ab = e.createDocumentFragment() } aa = Q(Z, Y); if (ab) { ab.appendChild(aa) } V = n(Z); ++V; t = N[z] - V; aa = Z.nextSibling; while (t > 0) { X = aa.nextSibling; W = y(aa, Y); if (ab) { ab.appendChild(W) }--t; aa = X } if (Y != E) { N.setStartAfter(Z); N.collapse(D) } return ab } function o(Z, t, ac) { var W, ae, Y, aa, ab, V, ad, X; if (ac != j) { ae = e.createDocumentFragment() } W = Q(Z, ac); if (ae) { ae.appendChild(W) } Y = Z.parentNode; aa = n(Z); ab = n(t); ++aa; V = ab - aa; ad = Z.nextSibling; while (V > 0) { X = ad.nextSibling; W = y(ad, ac); if (ae) { ae.appendChild(W) } ad = X; --V } W = i(t, ac); if (ae) { ae.appendChild(W) } if (ac != E) { N.setStartAfter(Z); N.collapse(D) } return ae } function i(aa, ab) { var W = O(N[P], N[z] - 1), ac, Z, Y, t, V, X = W != N[P]; if (W == aa) { return L(W, X, R, ab) } ac = W.parentNode; Z = L(ac, R, R, ab); while (ac) { while (W) { Y = W.previousSibling; t = L(W, X, R, ab); if (ab != j) { Z.insertBefore(t, Z.firstChild) } X = D; W = Y } if (ac == aa) { return Z } W = ac.previousSibling; ac = ac.parentNode; V = L(ac, R, R, ab); if (ab != j) { V.appendChild(Z) } Z = V } } function Q(aa, ab) { var X = O(N[h], N[U]), Y = X != N[h], ac, Z, W, t, V; if (X == aa) { return L(X, Y, D, ab) } ac = X.parentNode; Z = L(ac, R, D, ab); while (ac) { while (X) { W = X.nextSibling; t = L(X, Y, D, ab); if (ab != j) { Z.appendChild(t) } Y = D; X = W } if (ac == aa) { return Z } X = ac.nextSibling; ac = ac.parentNode; V = L(ac, R, D, ab); if (ab != j) { V.appendChild(Z) } Z = V } } function L(t, Y, ab, ac) { var X, W, Z, V, aa; if (Y) { return y(t, ac) } if (t.nodeType == 3) { X = t.nodeValue; if (ab) { V = N[U]; W = X.substring(V); Z = X.substring(0, V) } else { V = N[z]; W = X.substring(0, V); Z = X.substring(V) } if (ac != E) { t.nodeValue = Z } if (ac == j) { return } aa = t.cloneNode(R); aa.nodeValue = W; return aa } if (ac == j) { return } return t.cloneNode(R) } function y(V, t) { if (t != j) { return t == E ? V.cloneNode(D) : V } V.parentNode.removeChild(V) } } a.Range = b })(tinymce.dom); (function() { function a(g) { var i = this, j = "\uFEFF", e, h, d = g.dom, c = true, f = false; function b() { var n = g.getRng(), k = d.createRng(), m, o; m = n.item ? n.item(0) : n.parentElement(); if (m.ownerDocument != d.doc) { return k } o = g.isCollapsed(); if (n.item || !m.hasChildNodes()) { if (o) { k.setStart(m, 0); k.setEnd(m, 0) } else { k.setStart(m.parentNode, d.nodeIndex(m)); k.setEnd(k.startContainer, k.startOffset + 1) } return k } function l(s) { var u, q, t, p, A = 0, x, y, z, r, v; r = n.duplicate(); r.collapse(s); u = d.create("a"); z = r.parentElement(); if (!z.hasChildNodes()) { k[s ? "setStart" : "setEnd"](z, 0); return } z.appendChild(u); r.moveToElementText(u); v = n.compareEndPoints(s ? "StartToStart" : "EndToEnd", r); if (v > 0) { k[s ? "setStartAfter" : "setEndAfter"](z); d.remove(u); return } p = tinymce.grep(z.childNodes); x = p.length - 1; while (A <= x) { y = Math.floor((A + x) / 2); z.insertBefore(u, p[y]); r.moveToElementText(u); v = n.compareEndPoints(s ? "StartToStart" : "EndToEnd", r); if (v > 0) { A = y + 1 } else { if (v < 0) { x = y - 1 } else { found = true; break } } } q = v > 0 || y == 0 ? u.nextSibling : u.previousSibling; if (q.nodeType == 1) { d.remove(u); t = d.nodeIndex(q); q = q.parentNode; if (!s || y > 0) { t++ } } else { if (v > 0 || y == 0) { r.setEndPoint(s ? "StartToStart" : "EndToEnd", n); t = r.text.length } else { r.setEndPoint(s ? "StartToStart" : "EndToEnd", n); t = q.nodeValue.length - r.text.length } d.remove(u) } k[s ? "setStart" : "setEnd"](q, t) } l(true); if (!o) { l() } return k } this.addRange = function(k) { var p, n, m, r, u, s, t = g.dom.doc, o = t.body; function l(B) { var x, A, v, z, y; v = d.create("a"); x = B ? m : u; A = B ? r : s; z = p.duplicate(); if (x == t || x == t.documentElement) { x = o; A = 0 } if (x.nodeType == 3) { x.parentNode.insertBefore(v, x); z.moveToElementText(v); z.moveStart("character", A); d.remove(v); p.setEndPoint(B ? "StartToStart" : "EndToEnd", z) } else { y = x.childNodes; if (y.length) { if (A >= y.length) { d.insertAfter(v, y[y.length - 1]) } else { x.insertBefore(v, y[A]) } z.moveToElementText(v) } else { v = t.createTextNode(j); x.appendChild(v); z.moveToElementText(v.parentNode); z.collapse(c) } p.setEndPoint(B ? "StartToStart" : "EndToEnd", z); d.remove(v) } } this.destroy(); m = k.startContainer; r = k.startOffset; u = k.endContainer; s = k.endOffset; p = o.createTextRange(); if (m == u && m.nodeType == 1 && r == s - 1) { if (r == s - 1) { try { n = o.createControlRange(); n.addElement(m.childNodes[r]); n.select(); return } catch (q) {} } } l(true); l(); p.select() }; this.getRangeAt = function() { if (!e || !tinymce.dom.RangeUtils.compareRanges(h, g.getRng())) { e = b(); h = g.getRng() } try { e.startContainer.nextSibling } catch (k) { e = b(); h = null } return e }; this.destroy = function() { h = e = null } } tinymce.dom.TridentSelection = a })(); (function() { var p = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, j = 0, d = Object.prototype.toString, o = false, i = true; [0, 0].sort(function() { i = false; return 0 }); var b = function(v, e, z, A) { z = z || []; e = e || document; var C = e; if (e.nodeType !== 1 && e.nodeType !== 9) { return [] } if (!v || typeof v !== "string") { return z } var x = [], s, E, H, r, u = true, t = b.isXML(e), B = v, D, G, F, y; do { p.exec(""); s = p.exec(B); if (s) { B = s[3]; x.push(s[1]); if (s[2]) { r = s[3]; break } } } while (s); if (x.length > 1 && k.exec(v)) { if (x.length === 2 && f.relative[x[0]]) { E = h(x[0] + x[1], e) } else { E = f.relative[x[0]] ? [e] : b(x.shift(), e); while (x.length) { v = x.shift(); if (f.relative[v]) { v += x.shift() } E = h(v, E) } } } else { if (!A && x.length > 1 && e.nodeType === 9 && !t && f.match.ID.test(x[0]) && !f.match.ID.test(x[x.length - 1])) { D = b.find(x.shift(), e, t); e = D.expr ? b.filter(D.expr, D.set)[0] : D.set[0] } if (e) { D = A ? { expr: x.pop(), set: a(A) } : b.find(x.pop(), x.length === 1 && (x[0] === "~" || x[0] === "+") && e.parentNode ? e.parentNode : e, t); E = D.expr ? b.filter(D.expr, D.set) : D.set; if (x.length > 0) { H = a(E) } else { u = false } while (x.length) { G = x.pop(); F = G; if (!f.relative[G]) { G = "" } else { F = x.pop() } if (F == null) { F = e } f.relative[G](H, F, t) } } else { H = x = [] } } if (!H) { H = E } if (!H) { b.error(G || v) } if (d.call(H) === "[object Array]") { if (!u) { z.push.apply(z, H) } else { if (e && e.nodeType === 1) { for (y = 0; H[y] != null; y++) { if (H[y] && (H[y] === true || H[y].nodeType === 1 && b.contains(e, H[y]))) { z.push(E[y]) } } } else { for (y = 0; H[y] != null; y++) { if (H[y] && H[y].nodeType === 1) { z.push(E[y]) } } } } } else { a(H, z) } if (r) { b(r, C, z, A); b.uniqueSort(z) } return z }; b.uniqueSort = function(r) { if (c) { o = i; r.sort(c); if (o) { for (var e = 1; e < r.length; e++) { if (r[e] === r[e - 1]) { r.splice(e--, 1) } } } } return r }; b.matches = function(e, r) { return b(e, null, null, r) }; b.find = function(y, e, z) { var x; if (!y) { return [] } for (var t = 0, s = f.order.length; t < s; t++) { var v = f.order[t], u; if ((u = f.leftMatch[v].exec(y))) { var r = u[1]; u.splice(1, 1); if (r.substr(r.length - 1) !== "\\") { u[1] = (u[1] || "").replace(/\\/g, ""); x = f.find[v](u, e, z); if (x != null) { y = y.replace(f.match[v], ""); break } } } } if (!x) { x = e.getElementsByTagName("*") } return { set: x, expr: y } }; b.filter = function(C, B, F, u) { var s = C, H = [], z = B, x, e, y = B && B[0] && b.isXML(B[0]); while (C && B.length) { for (var A in f.filter) { if ((x = f.leftMatch[A].exec(C)) != null && x[2]) { var r = f.filter[A], G, E, t = x[1]; e = false; x.splice(1, 1); if (t.substr(t.length - 1) === "\\") { continue } if (z === H) { H = [] } if (f.preFilter[A]) { x = f.preFilter[A](x, z, F, H, u, y); if (!x) { e = G = true } else { if (x === true) { continue } } } if (x) { for (var v = 0; (E = z[v]) != null; v++) { if (E) { G = r(E, x, v, z); var D = u ^ !! G; if (F && G != null) { if (D) { e = true } else { z[v] = false } } else { if (D) { H.push(E); e = true } } } } } if (G !== undefined) { if (!F) { z = H } C = C.replace(f.match[A], ""); if (!e) { return [] } break } } } if (C === s) { if (e == null) { b.error(C) } else { break } } s = C } return z }; b.error = function(e) { throw "Syntax error, unrecognized expression: " + e }; var f = b.selectors = { order: ["ID", "NAME", "TAG"], match: { ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/, POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ }, leftMatch: {}, attrMap: { "class": "className", "for": "htmlFor" }, attrHandle: { href: function(e) { return e.getAttribute("href") } }, relative: { "+": function(x, r) { var t = typeof r === "string", v = t && !/\W/.test(r), y = t && !v; if (v) { r = r.toLowerCase() } for (var s = 0, e = x.length, u; s < e; s++) { if ((u = x[s])) { while ((u = u.previousSibling) && u.nodeType !== 1) {} x[s] = y || u && u.nodeName.toLowerCase() === r ? u || false : u === r } } if (y) { b.filter(r, x, true) } }, ">": function(x, r) { var u = typeof r === "string", v, s = 0, e = x.length; if (u && !/\W/.test(r)) { r = r.toLowerCase(); for (; s < e; s++) { v = x[s]; if (v) { var t = v.parentNode; x[s] = t.nodeName.toLowerCase() === r ? t : false } } } else { for (; s < e; s++) { v = x[s]; if (v) { x[s] = u ? v.parentNode : v.parentNode === r } } if (u) { b.filter(r, x, true) } } }, "": function(t, r, v) { var s = j++, e = q, u; if (typeof r === "string" && !/\W/.test(r)) { r = r.toLowerCase(); u = r; e = n } e("parentNode", r, s, t, u, v) }, "~": function(t, r, v) { var s = j++, e = q, u; if (typeof r === "string" && !/\W/.test(r)) { r = r.toLowerCase(); u = r; e = n } e("previousSibling", r, s, t, u, v) } }, find: { ID: function(r, s, t) { if (typeof s.getElementById !== "undefined" && !t) { var e = s.getElementById(r[1]); return e ? [e] : [] } }, NAME: function(s, v) { if (typeof v.getElementsByName !== "undefined") { var r = [], u = v.getElementsByName(s[1]); for (var t = 0, e = u.length; t < e; t++) { if (u[t].getAttribute("name") === s[1]) { r.push(u[t]) } } return r.length === 0 ? null : r } }, TAG: function(e, r) { return r.getElementsByTagName(e[1]) } }, preFilter: { CLASS: function(t, r, s, e, x, y) { t = " " + t[1].replace(/\\/g, "") + " "; if (y) { return t } for (var u = 0, v; (v = r[u]) != null; u++) { if (v) { if (x ^ (v.className && (" " + v.className + " ").replace(/[\t\n]/g, " ").indexOf(t) >= 0)) { if (!s) { e.push(v) } } else { if (s) { r[u] = false } } } } return false }, ID: function(e) { return e[1].replace(/\\/g, "") }, TAG: function(r, e) { return r[1].toLowerCase() }, CHILD: function(e) { if (e[1] === "nth") { var r = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(e[2] === "even" && "2n" || e[2] === "odd" && "2n+1" || !/\D/.test(e[2]) && "0n+" + e[2] || e[2]); e[2] = (r[1] + (r[2] || 1)) - 0; e[3] = r[3] - 0 } e[0] = j++; return e }, ATTR: function(u, r, s, e, v, x) { var t = u[1].replace(/\\/g, ""); if (!x && f.attrMap[t]) { u[1] = f.attrMap[t] } if (u[2] === "~=") { u[4] = " " + u[4] + " " } return u }, PSEUDO: function(u, r, s, e, v) { if (u[1] === "not") { if ((p.exec(u[3]) || "").length > 1 || /^\w/.test(u[3])) { u[3] = b(u[3], null, null, r) } else { var t = b.filter(u[3], r, s, true ^ v); if (!s) { e.push.apply(e, t) } return false } } else { if (f.match.POS.test(u[0]) || f.match.CHILD.test(u[0])) { return true } } return u }, POS: function(e) { e.unshift(true); return e } }, filters: { enabled: function(e) { return e.disabled === false && e.type !== "hidden" }, disabled: function(e) { return e.disabled === true }, checked: function(e) { return e.checked === true }, selected: function(e) { e.parentNode.selectedIndex; return e.selected === true }, parent: function(e) { return !!e.firstChild }, empty: function(e) { return !e.firstChild }, has: function(s, r, e) { return !!b(e[3], s).length }, header: function(e) { return (/h\d/i).test(e.nodeName) }, text: function(e) { return "text" === e.type }, radio: function(e) { return "radio" === e.type }, checkbox: function(e) { return "checkbox" === e.type }, file: function(e) { return "file" === e.type }, password: function(e) { return "password" === e.type }, submit: function(e) { return "submit" === e.type }, image: function(e) { return "image" === e.type }, reset: function(e) { return "reset" === e.type }, button: function(e) { return "button" === e.type || e.nodeName.toLowerCase() === "button" }, input: function(e) { return (/input|select|textarea|button/i).test(e.nodeName) } }, setFilters: { first: function(r, e) { return e === 0 }, last: function(s, r, e, t) { return r === t.length - 1 }, even: function(r, e) { return e % 2 === 0 }, odd: function(r, e) { return e % 2 === 1 }, lt: function(s, r, e) { return r < e[3] - 0 }, gt: function(s, r, e) { return r > e[3] - 0 }, nth: function(s, r, e) { return e[3] - 0 === r }, eq: function(s, r, e) { return e[3] - 0 === r } }, filter: { PSEUDO: function(s, y, x, z) { var e = y[1], r = f.filters[e]; if (r) { return r(s, x, y, z) } else { if (e === "contains") { return (s.textContent || s.innerText || b.getText([s]) || "").indexOf(y[3]) >= 0 } else { if (e === "not") { var t = y[3]; for (var v = 0, u = t.length; v < u; v++) { if (t[v] === s) { return false } } return true } else { b.error("Syntax error, unrecognized expression: " + e) } } } }, CHILD: function(e, t) { var x = t[1], r = e; switch (x) { case "only": case "first": while ((r = r.previousSibling)) { if (r.nodeType === 1) { return false } } if (x === "first") { return true } r = e; case "last": while ((r = r.nextSibling)) { if (r.nodeType === 1) { return false } } return true; case "nth": var s = t[2], A = t[3]; if (s === 1 && A === 0) { return true } var v = t[0], z = e.parentNode; if (z && (z.sizcache !== v || !e.nodeIndex)) { var u = 0; for (r = z.firstChild; r; r = r.nextSibling) { if (r.nodeType === 1) { r.nodeIndex = ++u } } z.sizcache = v } var y = e.nodeIndex - A; if (s === 0) { return y === 0 } else { return (y % s === 0 && y / s >= 0) } } }, ID: function(r, e) { return r.nodeType === 1 && r.getAttribute("id") === e }, TAG: function(r, e) { return (e === "*" && r.nodeType === 1) || r.nodeName.toLowerCase() === e }, CLASS: function(r, e) { return (" " + (r.className || r.getAttribute("class")) + " ").indexOf(e) > -1 }, ATTR: function(v, t) { var s = t[1], e = f.attrHandle[s] ? f.attrHandle[s](v) : v[s] != null ? v[s] : v.getAttribute(s), x = e + "", u = t[2], r = t[4]; return e == null ? u === "!=" : u === "=" ? x === r : u === "*=" ? x.indexOf(r) >= 0 : u === "~=" ? (" " + x + " ").indexOf(r) >= 0 : !r ? x && e !== false : u === "!=" ? x !== r : u === "^=" ? x.indexOf(r) === 0 : u === "$=" ? x.substr(x.length - r.length) === r : u === "|=" ? x === r || x.substr(0, r.length + 1) === r + "-" : false }, POS: function(u, r, s, v) { var e = r[2], t = f.setFilters[e]; if (t) { return t(u, s, r, v) } } } }; var k = f.match.POS, g = function(r, e) { return "\\" + (e - 0 + 1) }; for (var m in f.match) { f.match[m] = new RegExp(f.match[m].source + (/(?![^\[]*\])(?![^\(]*\))/.source)); f.leftMatch[m] = new RegExp(/(^(?:.|\r|\n)*?)/.source + f.match[m].source.replace(/\\(\d+)/g, g)) } var a = function(r, e) { r = Array.prototype.slice.call(r, 0); if (e) { e.push.apply(e, r); return e } return r }; try { Array.prototype.slice.call(document.documentElement.childNodes, 0)[0].nodeType } catch (l) { a = function(u, t) { var r = t || [], s = 0; if (d.call(u) === "[object Array]") { Array.prototype.push.apply(r, u) } else { if (typeof u.length === "number") { for (var e = u.length; s < e; s++) { r.push(u[s]) } } else { for (; u[s]; s++) { r.push(u[s]) } } } return r } } var c; if (document.documentElement.compareDocumentPosition) { c = function(r, e) { if (!r.compareDocumentPosition || !e.compareDocumentPosition) { if (r == e) { o = true } return r.compareDocumentPosition ? -1 : 1 } var s = r.compareDocumentPosition(e) & 4 ? -1 : r === e ? 0 : 1; if (s === 0) { o = true } return s } } else { if ("sourceIndex" in document.documentElement) { c = function(r, e) { if (!r.sourceIndex || !e.sourceIndex) { if (r == e) { o = true } return r.sourceIndex ? -1 : 1 } var s = r.sourceIndex - e.sourceIndex; if (s === 0) { o = true } return s } } else { if (document.createRange) { c = function(t, r) { if (!t.ownerDocument || !r.ownerDocument) { if (t == r) { o = true } return t.ownerDocument ? -1 : 1 } var s = t.ownerDocument.createRange(), e = r.ownerDocument.createRange(); s.setStart(t, 0); s.setEnd(t, 0); e.setStart(r, 0); e.setEnd(r, 0); var u = s.compareBoundaryPoints(Range.START_TO_END, e); if (u === 0) { o = true } return u } } } } b.getText = function(e) { var r = "", t; for (var s = 0; e[s]; s++) { t = e[s]; if (t.nodeType === 3 || t.nodeType === 4) { r += t.nodeValue } else { if (t.nodeType !== 8) { r += b.getText(t.childNodes) } } } return r }; (function() { var r = document.createElement("div"), s = "script" + (new Date()).getTime(); r.innerHTML = ""; var e = document.documentElement; e.insertBefore(r, e.firstChild); if (document.getElementById(s)) { f.find.ID = function(u, v, x) { if (typeof v.getElementById !== "undefined" && !x) { var t = v.getElementById(u[1]); return t ? t.id === u[1] || typeof t.getAttributeNode !== "undefined" && t.getAttributeNode("id").nodeValue === u[1] ? [t] : undefined : [] } }; f.filter.ID = function(v, t) { var u = typeof v.getAttributeNode !== "undefined" && v.getAttributeNode("id"); return v.nodeType === 1 && u && u.nodeValue === t } } e.removeChild(r); e = r = null })(); (function() { var e = document.createElement("div"); e.appendChild(document.createComment("")); if (e.getElementsByTagName("*").length > 0) { f.find.TAG = function(r, v) { var u = v.getElementsByTagName(r[1]); if (r[1] === "*") { var t = []; for (var s = 0; u[s]; s++) { if (u[s].nodeType === 1) { t.push(u[s]) } } u = t } return u } } e.innerHTML = ""; if (e.firstChild && typeof e.firstChild.getAttribute !== "undefined" && e.firstChild.getAttribute("href") !== "#") { f.attrHandle.href = function(r) { return r.getAttribute("href", 2) } } e = null })(); if (document.querySelectorAll) { (function() { var e = b, s = document.createElement("div"); s.innerHTML = "

"; if (s.querySelectorAll && s.querySelectorAll(".TEST").length === 0) { return } b = function(x, v, t, u) { v = v || document; if (!u && v.nodeType === 9 && !b.isXML(v)) { try { return a(v.querySelectorAll(x), t) } catch (y) {} } return e(x, v, t, u) }; for (var r in e) { b[r] = e[r] } s = null })() }(function() { var e = document.createElement("div"); e.innerHTML = "
"; if (!e.getElementsByClassName || e.getElementsByClassName("e").length === 0) { return } e.lastChild.className = "e"; if (e.getElementsByClassName("e").length === 1) { return } f.order.splice(1, 0, "CLASS"); f.find.CLASS = function(r, s, t) { if (typeof s.getElementsByClassName !== "undefined" && !t) { return s.getElementsByClassName(r[1]) } }; e = null })(); function n(r, x, v, A, y, z) { for (var t = 0, s = A.length; t < s; t++) { var e = A[t]; if (e) { e = e[r]; var u = false; while (e) { if (e.sizcache === v) { u = A[e.sizset]; break } if (e.nodeType === 1 && !z) { e.sizcache = v; e.sizset = t } if (e.nodeName.toLowerCase() === x) { u = e; break } e = e[r] } A[t] = u } } } function q(r, x, v, A, y, z) { for (var t = 0, s = A.length; t < s; t++) { var e = A[t]; if (e) { e = e[r]; var u = false; while (e) { if (e.sizcache === v) { u = A[e.sizset]; break } if (e.nodeType === 1) { if (!z) { e.sizcache = v; e.sizset = t } if (typeof x !== "string") { if (e === x) { u = true; break } } else { if (b.filter(x, [e]).length > 0) { u = e; break } } } e = e[r] } A[t] = u } } } b.contains = document.compareDocumentPosition ? function(r, e) { return !!(r.compareDocumentPosition(e) & 16) } : function(r, e) { return r !== e && (r.contains ? r.contains(e) : true) }; b.isXML = function(e) { var r = (e ? e.ownerDocument || e : 0).documentElement; return r ? r.nodeName !== "HTML" : false }; var h = function(e, y) { var t = [], u = "", v, s = y.nodeType ? [y] : y; while ((v = f.match.PSEUDO.exec(e))) { u += v[0]; e = e.replace(f.match.PSEUDO, "") } e = f.relative[e] ? e + "*" : e; for (var x = 0, r = s.length; x < r; x++) { b(e, s[x], t) } return b.filter(u, t) }; window.tinymce.dom.Sizzle = b })(); (function(d) { var f = d.each, c = d.DOM, b = d.isIE, e = d.isWebKit, a; d.create("tinymce.dom.EventUtils", { EventUtils: function() { this.inits = []; this.events = [] }, add: function(m, p, l, j) { var g, h = this, i = h.events, k; if (p instanceof Array) { k = []; f(p, function(o) { k.push(h.add(m, o, l, j)) }); return k } if (m && m.hasOwnProperty && m instanceof Array) { k = []; f(m, function(n) { n = c.get(n); k.push(h.add(n, p, l, j)) }); return k } m = c.get(m); if (!m) { return } g = function(n) { if (h.disabled) { return } n = n || window.event; if (n && b) { if (!n.target) { n.target = n.srcElement } d.extend(n, h._stoppers) } if (!j) { return l(n) } return l.call(j, n) }; if (p == "unload") { d.unloads.unshift({ func: g }); return g } if (p == "init") { if (h.domLoaded) { g() } else { h.inits.push(g) } return g } i.push({ obj: m, name: p, func: l, cfunc: g, scope: j }); h._add(m, p, g); return l }, remove: function(l, m, k) { var h = this, g = h.events, i = false, j; if (l && l.hasOwnProperty && l instanceof Array) { j = []; f(l, function(n) { n = c.get(n); j.push(h.remove(n, m, k)) }); return j } l = c.get(l); f(g, function(o, n) { if (o.obj == l && o.name == m && (!k || (o.func == k || o.cfunc == k))) { g.splice(n, 1); h._remove(l, m, o.cfunc); i = true; return false } }); return i }, clear: function(l) { var j = this, g = j.events, h, k; if (l) { l = c.get(l); for (h = g.length - 1; h >= 0; h--) { k = g[h]; if (k.obj === l) { j._remove(k.obj, k.name, k.cfunc); k.obj = k.cfunc = null; g.splice(h, 1) } } } }, cancel: function(g) { if (!g) { return false } this.stop(g); return this.prevent(g) }, stop: function(g) { if (g.stopPropagation) { g.stopPropagation() } else { g.cancelBubble = true } return false }, prevent: function(g) { if (g.preventDefault) { g.preventDefault() } else { g.returnValue = false } return false }, destroy: function() { var g = this; f(g.events, function(j, h) { g._remove(j.obj, j.name, j.cfunc); j.obj = j.cfunc = null }); g.events = []; g = null }, _add: function(h, i, g) { if (h.attachEvent) { h.attachEvent("on" + i, g) } else { if (h.addEventListener) { h.addEventListener(i, g, false) } else { h["on" + i] = g } } }, _remove: function(i, j, h) { if (i) { try { if (i.detachEvent) { i.detachEvent("on" + j, h) } else { if (i.removeEventListener) { i.removeEventListener(j, h, false) } else { i["on" + j] = null } } } catch (g) {} } }, _pageInit: function(h) { var g = this; if (g.domLoaded) { return } g.domLoaded = true; f(g.inits, function(i) { i() }); g.inits = [] }, _wait: function(i) { var g = this, h = i.document; if (i.tinyMCE_GZ && tinyMCE_GZ.loaded) { g.domLoaded = 1; return } if (h.attachEvent) { h.attachEvent("onreadystatechange", function() { if (h.readyState === "complete") { h.detachEvent("onreadystatechange", arguments.callee); g._pageInit(i) } }); if (h.documentElement.doScroll && i == i.top) { (function() { if (g.domLoaded) { return } try { h.documentElement.doScroll("left") } catch (j) { setTimeout(arguments.callee, 0); return } g._pageInit(i) })() } } else { if (h.addEventListener) { g._add(i, "DOMContentLoaded", function() { g._pageInit(i) }) } } g._add(i, "load", function() { g._pageInit(i) }) }, _stoppers: { preventDefault: function() { this.returnValue = false }, stopPropagation: function() { this.cancelBubble = true } } }); a = d.dom.Event = new d.dom.EventUtils(); a._wait(window); d.addUnload(function() { a.destroy() }) })(tinymce); (function(a) { a.dom.Element = function(f, d) { var b = this, e, c; b.settings = d = d || {}; b.id = f; b.dom = e = d.dom || a.DOM; if (!a.isIE) { c = e.get(b.id) } a.each(("getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get").split(/,/), function(g) { b[g] = function() { var h = [f], j; for (j = 0; j < arguments.length; j++) { h.push(arguments[j]) } h = e[g].apply(e, h); b.update(g); return h } }); a.extend(b, { on: function(i, h, g) { return a.dom.Event.add(b.id, i, h, g) }, getXY: function() { return { x: parseInt(b.getStyle("left")), y: parseInt(b.getStyle("top")) } }, getSize: function() { var g = e.get(b.id); return { w: parseInt(b.getStyle("width") || g.clientWidth), h: parseInt(b.getStyle("height") || g.clientHeight) } }, moveTo: function(g, h) { b.setStyles({ left: g, top: h }) }, moveBy: function(g, i) { var h = b.getXY(); b.moveTo(h.x + g, h.y + i) }, resizeTo: function(g, i) { b.setStyles({ width: g, height: i }) }, resizeBy: function(g, j) { var i = b.getSize(); b.resizeTo(i.w + g, i.h + j) }, update: function(h) { var g; if (a.isIE6 && d.blocker) { h = h || ""; if (h.indexOf("get") === 0 || h.indexOf("has") === 0 || h.indexOf("is") === 0) { return } if (h == "remove") { e.remove(b.blocker); return } if (!b.blocker) { b.blocker = e.uniqueId(); g = e.add(d.container || e.getRoot(), "iframe", { id: b.blocker, style: "position:absolute;", frameBorder: 0, src: 'javascript:""' }); e.setStyle(g, "opacity", 0) } else { g = e.get(b.blocker) } e.setStyles(g, { left: b.getStyle("left", 1), top: b.getStyle("top", 1), width: b.getStyle("width", 1), height: b.getStyle("height", 1), display: b.getStyle("display", 1), zIndex: parseInt(b.getStyle("zIndex", 1) || 0) - 1 }) } } }) } })(tinymce); (function(c) { function e(f) { return f.replace(/[\n\r]+/g, "") } var b = c.is, a = c.isIE, d = c.each; c.create("tinymce.dom.Selection", { Selection: function(i, h, g) { var f = this; f.dom = i; f.win = h; f.serializer = g; d(["onBeforeSetContent", "onBeforeGetContent", "onSetContent", "onGetContent"], function(j) { f[j] = new c.util.Dispatcher(f) }); if (!f.win.getSelection) { f.tridentSel = new c.dom.TridentSelection(f) } if (c.isIE && i.boxModel) { this._fixIESelection() } c.addUnload(f.destroy, f) }, getContent: function(g) { var f = this, h = f.getRng(), l = f.dom.create("body"), j = f.getSel(), i, k, m; g = g || {}; i = k = ""; g.get = true; g.format = g.format || "html"; f.onBeforeGetContent.dispatch(f, g); if (g.format == "text") { return f.isCollapsed() ? "" : (h.text || (j.toString ? j.toString() : "")) } if (h.cloneContents) { m = h.cloneContents(); if (m) { l.appendChild(m) } } else { if (b(h.item) || b(h.htmlText)) { l.innerHTML = h.item ? h.item(0).outerHTML : h.htmlText } else { l.innerHTML = h.toString() } } if (/^\s/.test(l.innerHTML)) { i = " " } if (/\s+$/.test(l.innerHTML)) { k = " " } g.getInner = true; g.content = f.isCollapsed() ? "" : i + f.serializer.serialize(l, g) + k; f.onGetContent.dispatch(f, g); return g.content }, setContent: function(k, j) { var h = this, f = h.getRng(), i, l = h.win.document, m, g; j = j || { format: "html" }; j.set = true; k = j.content = k; if (!j.no_events) { h.onBeforeSetContent.dispatch(h, j) } k = j.content; if (f.insertNode) { k += '_'; if (f.startContainer == l && f.endContainer == l) { l.body.innerHTML = k } else { f.deleteContents(); if (l.body.childNodes.length == 0) { l.body.innerHTML = k } else { if (f.createContextualFragment) { f.insertNode(f.createContextualFragment(k)) } else { m = l.createDocumentFragment(); g = l.createElement("div"); m.appendChild(g); g.outerHTML = k; f.insertNode(m) } } } i = h.dom.get("__caret"); f = l.createRange(); f.setStartBefore(i); f.setEndBefore(i); h.setRng(f); h.dom.remove("__caret"); h.setRng(f) } else { if (f.item) { l.execCommand("Delete", false, null); f = h.getRng() } f.pasteHTML(k) } if (!j.no_events) { h.onSetContent.dispatch(h, j) } }, getStart: function() { var g = this.getRng(), h, f, j, i; if (g.duplicate || g.item) { if (g.item) { return g.item(0) } j = g.duplicate(); j.collapse(1); h = j.parentElement(); f = i = g.parentElement(); while (i = i.parentNode) { if (i == h) { h = f; break } } return h } else { h = g.startContainer; if (h.nodeType == 1 && h.hasChildNodes()) { h = h.childNodes[Math.min(h.childNodes.length - 1, g.startOffset)] } if (h && h.nodeType == 3) { return h.parentNode } return h } }, getEnd: function() { var g = this, h = g.getRng(), i, f; if (h.duplicate || h.item) { if (h.item) { return h.item(0) } h = h.duplicate(); h.collapse(0); i = h.parentElement(); if (i && i.nodeName == "BODY") { return i.lastChild || i } return i } else { i = h.endContainer; f = h.endOffset; if (i.nodeType == 1 && i.hasChildNodes()) { i = i.childNodes[f > 0 ? f - 1 : f] } if (i && i.nodeType == 3) { return i.parentNode } return i } }, getBookmark: function(r, s) { var v = this, m = v.dom, g, j, i, n, h, o, p, l = "\uFEFF", u; function f(x, y) { var t = 0; d(m.select(x), function(A, z) { if (A == y) { t = z } }); return t } if (r == 2) { function k() { var x = v.getRng(true), t = m.getRoot(), y = {}; function z(C, H) { var B = C[H ? "startContainer" : "endContainer"], G = C[H ? "startOffset" : "endOffset"], A = [], D, F, E = 0; if (B.nodeType == 3) { if (s) { for (D = B.previousSibling; D && D.nodeType == 3; D = D.previousSibling) { G += D.nodeValue.length } } A.push(G) } else { F = B.childNodes; if (G >= F.length && F.length) { E = 1; G = Math.max(0, F.length - 1) } A.push(v.dom.nodeIndex(F[G], s) + E) } for (; B && B != t; B = B.parentNode) { A.push(v.dom.nodeIndex(B, s)) } return A } y.start = z(x, true); if (!v.isCollapsed()) { y.end = z(x) } return y } return k() } if (r) { return { rng: v.getRng() } } g = v.getRng(); i = m.uniqueId(); n = tinyMCE.activeEditor.selection.isCollapsed(); u = "overflow:hidden;line-height:0px"; if (g.duplicate || g.item) { if (!g.item) { j = g.duplicate(); try { g.collapse(); g.pasteHTML('' + l + ""); if (!n) { j.collapse(false); g.moveToElementText(j.parentElement()); if (g.compareEndPoints("StartToEnd", j) == 0) { j.move("character", -1) } j.pasteHTML('' + l + "") } } catch (q) { return null } } else { o = g.item(0); h = o.nodeName; return { name: h, index: f(h, o) } } } else { o = v.getNode(); h = o.nodeName; if (h == "IMG") { return { name: h, index: f(h, o) } } j = g.cloneRange(); if (!n) { j.collapse(false); j.insertNode(m.create("span", { "data-mce-type": "bookmark", id: i + "_end", style: u }, l)) } g.collapse(true); g.insertNode(m.create("span", { "data-mce-type": "bookmark", id: i + "_start", style: u }, l)) } v.moveToBookmark({ id: i, keep: 1 }); return { id: i } }, moveToBookmark: function(n) { var r = this, l = r.dom, i, h, f, q, j, s, o, p; if (r.tridentSel) { r.tridentSel.destroy() } if (n) { if (n.start) { f = l.createRng(); q = l.getRoot(); function g(z) { var t = n[z ? "start" : "end"], v, x, y, u; if (t) { y = t[0]; for (x = q, v = t.length - 1; v >= 1; v--) { u = x.childNodes; if (t[v] > u.length - 1) { return } x = u[t[v]] } if (x.nodeType === 3) { y = Math.min(t[0], x.nodeValue.length) } if (x.nodeType === 1) { y = Math.min(t[0], x.childNodes.length) } if (z) { f.setStart(x, y) } else { f.setEnd(x, y) } } return true } if (g(true) && g()) { r.setRng(f) } } else { if (n.id) { function k(A) { var u = l.get(n.id + "_" + A), z, t, x, y, v = n.keep; if (u) { z = u.parentNode; if (A == "start") { if (!v) { t = l.nodeIndex(u) } else { z = u.firstChild; t = 1 } j = s = z; o = p = t } else { if (!v) { t = l.nodeIndex(u) } else { z = u.firstChild; t = 1 } s = z; p = t } if (!v) { y = u.previousSibling; x = u.nextSibling; d(c.grep(u.childNodes), function(B) { if (B.nodeType == 3) { B.nodeValue = B.nodeValue.replace(/\uFEFF/g, "") } }); while (u = l.get(n.id + "_" + A)) { l.remove(u, 1) } if (y && x && y.nodeType == x.nodeType && y.nodeType == 3 && !c.isOpera) { t = y.nodeValue.length; y.appendData(x.nodeValue); l.remove(x); if (A == "start") { j = s = y; o = p = t } else { s = y; p = t } } } } } function m(t) { if (l.isBlock(t) && !t.innerHTML) { t.innerHTML = !a ? '
' : " " } return t } k("start"); k("end"); if (j) { f = l.createRng(); f.setStart(m(j), o); f.setEnd(m(s), p); r.setRng(f) } } else { if (n.name) { r.select(l.select(n.name)[n.index]) } else { if (n.rng) { r.setRng(n.rng) } } } } } }, select: function(k, j) { var i = this, l = i.dom, g = l.createRng(), f; if (k) { f = l.nodeIndex(k); g.setStart(k.parentNode, f); g.setEnd(k.parentNode, f + 1); if (j) { function h(m, o) { var n = new c.dom.TreeWalker(m, m); do { if (m.nodeType == 3 && c.trim(m.nodeValue).length != 0) { if (o) { g.setStart(m, 0) } else { g.setEnd(m, m.nodeValue.length) } return } if (m.nodeName == "BR") { if (o) { g.setStartBefore(m) } else { g.setEndBefore(m) } return } } while (m = (o ? n.next() : n.prev())) } h(k, 1); h(k) } i.setRng(g) } return k }, isCollapsed: function() { var f = this, h = f.getRng(), g = f.getSel(); if (!h || h.item) { return false } if (h.compareEndPoints) { return h.compareEndPoints("StartToEnd", h) === 0 } return !g || h.collapsed }, collapse: function(f) { var h = this, g = h.getRng(), i; if (g.item) { i = g.item(0); g = h.win.document.body.createTextRange(); g.moveToElementText(i) } g.collapse( !! f); h.setRng(g) }, getSel: function() { var g = this, f = this.win; return f.getSelection ? f.getSelection() : f.document.selection }, getRng: function(l) { var g = this, h, i, k, j = g.win.document; if (l && g.tridentSel) { return g.tridentSel.getRangeAt(0) } try { if (h = g.getSel()) { i = h.rangeCount > 0 ? h.getRangeAt(0) : (h.createRange ? h.createRange() : j.createRange()) } } catch (f) {} if (c.isIE && i && i.setStart && j.selection.createRange().item) { k = j.selection.createRange().item(0); i = j.createRange(); i.setStartBefore(k); i.setEndAfter(k) } if (!i) { i = j.createRange ? j.createRange() : j.body.createTextRange() } if (g.selectedRange && g.explicitRange) { if (i.compareBoundaryPoints(i.START_TO_START, g.selectedRange) === 0 && i.compareBoundaryPoints(i.END_TO_END, g.selectedRange) === 0) { i = g.explicitRange } else { g.selectedRange = null; g.explicitRange = null } } return i }, setRng: function(i) { var h, g = this; if (!g.tridentSel) { h = g.getSel(); if (h) { g.explicitRange = i; h.removeAllRanges(); h.addRange(i); g.selectedRange = h.getRangeAt(0) } } else { if (i.cloneRange) { g.tridentSel.addRange(i); return } try { i.select() } catch (f) {} } }, setNode: function(g) { var f = this; f.setContent(f.dom.getOuterHTML(g)); return g }, getNode: function() { var h = this, g = h.getRng(), i = h.getSel(), l, k = g.startContainer, f = g.endContainer; if (!g) { return h.dom.getRoot() } if (g.setStart) { l = g.commonAncestorContainer; if (!g.collapsed) { if (g.startContainer == g.endContainer) { if (g.endOffset - g.startOffset < 2) { if (g.startContainer.hasChildNodes()) { l = g.startContainer.childNodes[g.startOffset] } } } if (k.nodeType === 3 && f.nodeType === 3) { function j(p, m) { var o = p; while (p && p.nodeType === 3 && p.length === 0) { p = m ? p.nextSibling : p.previousSibling } return p || o } if (k.length === g.startOffset) { k = j(k.nextSibling, true) } else { k = k.parentNode } if (g.endOffset === 0) { f = j(f.previousSibling, false) } else { f = f.parentNode } if (k && k === f) { return k } } } if (l && l.nodeType == 3) { return l.parentNode } return l } return g.item ? g.item(0) : g.parentElement() }, getSelectedBlocks: function(g, f) { var i = this, j = i.dom, m, h, l, k = []; m = j.getParent(g || i.getStart(), j.isBlock); h = j.getParent(f || i.getEnd(), j.isBlock); if (m) { k.push(m) } if (m && h && m != h) { l = m; while ((l = l.nextSibling) && l != h) { if (j.isBlock(l)) { k.push(l) } } } if (h && m != h) { k.push(h) } return k }, destroy: function(g) { var f = this; f.win = null; if (f.tridentSel) { f.tridentSel.destroy() } if (!g) { c.removeUnload(f.destroy) } }, _fixIESelection: function() { var g = this.dom, m = g.doc, h = m.body, j, n, f; m.documentElement.unselectable = true; function i(o, r) { var p = h.createTextRange(); try { p.moveToPoint(o, r) } catch (q) { p = null } return p } function l(p) { var o; if (p.button) { o = i(p.x, p.y); if (o) { if (o.compareEndPoints("StartToStart", n) > 0) { o.setEndPoint("StartToStart", n) } else { o.setEndPoint("EndToEnd", n) } o.select() } } else { k() } } function k() { var o = m.selection.createRange(); if (n && !o.item && o.compareEndPoints("StartToEnd", o) === 0) { n.select() } g.unbind(m, "mouseup", k); g.unbind(m, "mousemove", l); n = j = 0 } g.bind(m, ["mousedown", "contextmenu"], function(o) { if (o.target.nodeName === "HTML") { if (j) { k() } f = m.documentElement; if (f.scrollHeight > f.clientHeight) { return } j = 1; n = i(o.x, o.y); if (n) { g.bind(m, "mouseup", k); g.bind(m, "mousemove", l); g.win.focus(); n.select() } } }) } }) })(tinymce); (function(a) { a.dom.Serializer = function(e, i, f) { var h, b, d = a.isIE, g = a.each, c; if (!e.apply_source_formatting) { e.indent = false } e.remove_trailing_brs = true; i = i || a.DOM; f = f || new a.html.Schema(e); e.entity_encoding = e.entity_encoding || "named"; h = new a.util.Dispatcher(self); b = new a.util.Dispatcher(self); c = new a.html.DomParser(e, f); c.addAttributeFilter("src,href,style", function(k, j) { var o = k.length, l, q, n = "data-mce-" + j, p = e.url_converter, r = e.url_converter_scope, m; while (o--) { l = k[o]; q = l.attributes.map[n]; if (q !== m) { l.attr(j, q.length > 0 ? q : null); l.attr(n, null) } else { q = l.attributes.map[j]; if (j === "style") { q = i.serializeStyle(i.parseStyle(q), l.name) } else { if (p) { q = p.call(r, q, j, l.name) } } l.attr(j, q.length > 0 ? q : null) } } }); c.addAttributeFilter("class", function(j, k) { var l = j.length, m, n; while (l--) { m = j[l]; n = m.attr("class").replace(/\s*mce(Item\w+|Selected)\s*/g, ""); m.attr("class", n.length > 0 ? n : null) } }); c.addAttributeFilter("data-mce-type", function(j, l, k) { var m = j.length, n; while (m--) { n = j[m]; if (n.attributes.map["data-mce-type"] === "bookmark" && !k.cleanup) { n.remove() } } }); c.addNodeFilter("script,style", function(k, l) { var m = k.length, n, o; function j(p) { return p.replace(/()/g, "\n").replace(/^[\r\n]*|[\r\n]*$/g, "").replace(/^\s*(\/\/\s*|\]\]>|-->|\]\]-->)\s*$/g, "") } while (m--) { n = k[m]; o = n.firstChild ? n.firstChild.value : ""; if (l === "script") { n.attr("type", (n.attr("type") || "text/javascript").replace(/^mce\-/, "")); if (o.length > 0) { n.firstChild.value = "// " } } else { if (o.length > 0) { n.firstChild.value = "" } } } }); c.addNodeFilter("#comment", function(j, k) { var l = j.length, m; while (l--) { m = j[l]; if (m.value.indexOf("[CDATA[") === 0) { m.name = "#cdata"; m.type = 4; m.value = m.value.replace(/^\[CDATA\[|\]\]$/g, "") } else { if (m.value.indexOf("mce:protected ") === 0) { m.name = "#text"; m.type = 3; m.raw = true; m.value = unescape(m.value).substr(14) } } } }); c.addNodeFilter("xml:namespace,input", function(j, k) { var l = j.length, m; while (l--) { m = j[l]; if (m.type === 7) { m.remove() } else { if (m.type === 1) { if (k === "input" && !("type" in m.attributes.map)) { m.attr("type", "text") } } } } }); if (e.fix_list_elements) { c.addNodeFilter("ul,ol", function(k, l) { var m = k.length, n, j; while (m--) { n = k[m]; j = n.parent; if (j.name === "ul" || j.name === "ol") { if (n.prev && n.prev.name === "li") { n.prev.append(n) } } } }) } c.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style", function(j, k) { var l = j.length; while (l--) { j[l].attr(k, null) } }); return { schema: f, addNodeFilter: c.addNodeFilter, addAttributeFilter: c.addAttributeFilter, onPreProcess: h, onPostProcess: b, serialize: function(o, m) { var l, p, k, j, n; if (d && i.select("script,style,select").length > 0) { n = o.innerHTML; o = o.cloneNode(false); i.setHTML(o, n) } else { o = o.cloneNode(true) } l = o.ownerDocument.implementation; if (l.createHTMLDocument) { p = l.createHTMLDocument(""); g(o.nodeName == "BODY" ? o.childNodes : [o], function(q) { p.body.appendChild(p.importNode(q, true)) }); if (o.nodeName != "BODY") { o = p.body.firstChild } else { o = p.body } k = i.doc; i.doc = p } m = m || {}; m.format = m.format || "html"; if (!m.no_events) { m.node = o; h.dispatch(self, m) } j = new a.html.Serializer(e, f); m.content = j.serialize(c.parse(m.getInner ? o.innerHTML : a.trim(i.getOuterHTML(o), m), m)); if (!m.no_events) { b.dispatch(self, m) } if (k) { i.doc = k } m.node = null; return m.content }, addRules: function(j) { f.addValidElements(j) }, setRules: function(j) { f.setValidElements(j) } } } })(tinymce); (function(a) { a.dom.ScriptLoader = function(h) { var c = 0, k = 1, i = 2, l = {}, j = [], f = {}, d = [], g = 0, e; function b(m, v) { var x = this, q = a.DOM, s, o, r, n; function p() { q.remove(n); if (s) { s.onreadystatechange = s.onload = s = null } v() } function u() { if (typeof(console) !== "undefined" && console.log) { console.log("Failed to load: " + m) } } n = q.uniqueId(); if (a.isIE6) { o = new a.util.URI(m); r = location; if (o.host == r.hostname && o.port == r.port && (o.protocol + ":") == r.protocol && o.protocol.toLowerCase() != "file") { a.util.XHR.send({ url: a._addVer(o.getURI()), success: function(y) { var t = q.create("script", { type: "text/javascript" }); t.text = y; document.getElementsByTagName("head")[0].appendChild(t); q.remove(t); p() }, error: u }); return } } s = q.create("script", { id: n, type: "text/javascript", src: a._addVer(m) }); if (!a.isIE) { s.onload = p } s.onerror = u; if (!a.isOpera) { s.onreadystatechange = function() { var t = s.readyState; if (t == "complete" || t == "loaded") { p() } } }(document.getElementsByTagName("head")[0] || document.body).appendChild(s) } this.isDone = function(m) { return l[m] == i }; this.markDone = function(m) { l[m] = i }; this.add = this.load = function(m, q, n) { var o, p = l[m]; if (p == e) { j.push(m); l[m] = c } if (q) { if (!f[m]) { f[m] = [] } f[m].push({ func: q, scope: n || this }) } }; this.loadQueue = function(n, m) { this.loadScripts(j, n, m) }; this.loadScripts = function(m, q, p) { var o; function n(r) { a.each(f[r], function(s) { s.func.call(s.scope) }); f[r] = e } d.push({ func: q, scope: p || this }); o = function() { var r = a.grep(m); m.length = 0; a.each(r, function(s) { if (l[s] == i) { n(s); return } if (l[s] != k) { l[s] = k; g++; b(s, function() { l[s] = i; g--; n(s); o() }) } }); if (!g) { a.each(d, function(s) { s.func.call(s.scope) }); d.length = 0 } }; o() } }; a.ScriptLoader = new a.dom.ScriptLoader() })(tinymce); tinymce.dom.TreeWalker = function(a, c) { var b = a; function d(i, f, e, j) { var h, g; if (i) { if (!j && i[f]) { return i[f] } if (i != c) { h = i[e]; if (h) { return h } for (g = i.parentNode; g && g != c; g = g.parentNode) { h = g[e]; if (h) { return h } } } } } this.current = function() { return b }; this.next = function(e) { return (b = d(b, "firstChild", "nextSibling", e)) }; this.prev = function(e) { return (b = d(b, "lastChild", "previousSibling", e)) } }; (function(a) { a.dom.RangeUtils = function(c) { var b = "\uFEFF"; this.walk = function(d, r) { var h = d.startContainer, k = d.startOffset, s = d.endContainer, l = d.endOffset, i, f, n, g, q, p, e; e = c.select("td.mceSelected,th.mceSelected"); if (e.length > 0) { a.each(e, function(t) { r([t]) }); return } function o(v, u, t) { var x = []; for (; v && v != t; v = v[u]) { x.push(v) } return x } function m(u, t) { do { if (u.parentNode == t) { return u } u = u.parentNode } while (u) } function j(v, u, x) { var t = x ? "nextSibling" : "previousSibling"; for (g = v, q = g.parentNode; g && g != u; g = q) { q = g.parentNode; p = o(g == v ? g : g[t], t); if (p.length) { if (!x) { p.reverse() } r(p) } } } if (h.nodeType == 1 && h.hasChildNodes()) { h = h.childNodes[k] } if (s.nodeType == 1 && s.hasChildNodes()) { s = s.childNodes[Math.min(l - 1, s.childNodes.length - 1)] } i = c.findCommonAncestor(h, s); if (h == s) { return r([h]) } for (g = h; g; g = g.parentNode) { if (g == s) { return j(h, i, true) } if (g == i) { break } } for (g = s; g; g = g.parentNode) { if (g == h) { return j(s, i) } if (g == i) { break } } f = m(h, i) || h; n = m(s, i) || s; j(h, f, true); p = o(f == h ? f : f.nextSibling, "nextSibling", n == s ? n.nextSibling : n); if (p.length) { r(p) } j(s, n) } }; a.dom.RangeUtils.compareRanges = function(c, b) { if (c && b) { if (c.item || c.duplicate) { if (c.item && b.item && c.item(0) === b.item(0)) { return true } if (c.isEqual && b.isEqual && b.isEqual(c)) { return true } } else { return c.startContainer == b.startContainer && c.startOffset == b.startOffset } } return false } })(tinymce); (function(b) { var a = b.dom.Event, c = b.each; b.create("tinymce.ui.KeyboardNavigation", { KeyboardNavigation: function(e, f) { var p = this, m = e.root, l = e.items, n = e.enableUpDown, i = e.enableLeftRight || !e.enableUpDown, k = e.excludeFromTabOrder, j, h, o, d, g; f = f || b.DOM; j = function(q) { g = q.target.id }; h = function(q) { f.setAttrib(q.target.id, "tabindex", "-1") }; d = function(q) { var r = f.get(g); f.setAttrib(r, "tabindex", "0"); r.focus() }; p.focus = function() { f.get(g).focus() }; p.destroy = function() { c(l, function(q) { f.unbind(f.get(q.id), "focus", j); f.unbind(f.get(q.id), "blur", h) }); f.unbind(f.get(m), "focus", d); f.unbind(f.get(m), "keydown", o); l = f = m = p.focus = j = h = o = d = null; p.destroy = function() {} }; p.moveFocus = function(u, r) { var q = -1, t = p.controls, s; if (!g) { return } c(l, function(x, v) { if (x.id === g) { q = v; return false } }); q += u; if (q < 0) { q = l.length - 1 } else { if (q >= l.length) { q = 0 } } s = l[q]; f.setAttrib(g, "tabindex", "-1"); f.setAttrib(s.id, "tabindex", "0"); f.get(s.id).focus(); if (e.actOnFocus) { e.onAction(s.id) } if (r) { a.cancel(r) } }; o = function(y) { var u = 37, t = 39, x = 38, z = 40, q = 27, s = 14, r = 13, v = 32; switch (y.keyCode) { case u: if (i) { p.moveFocus(-1) } break; case t: if (i) { p.moveFocus(1) } break; case x: if (n) { p.moveFocus(-1) } break; case z: if (n) { p.moveFocus(1) } break; case q: if (e.onCancel) { e.onCancel(); a.cancel(y) } break; case s: case r: case v: if (e.onAction) { e.onAction(g); a.cancel(y) } break } }; c(l, function(s, q) { var r; if (!s.id) { s.id = f.uniqueId("_mce_item_") } if (k) { f.bind(s.id, "blur", h); r = "-1" } else { r = (q === 0 ? "0" : "-1") } f.setAttrib(s.id, "tabindex", r); f.bind(f.get(s.id), "focus", j) }); if (l[0]) { g = l[0].id } f.setAttrib(m, "tabindex", "-1"); f.bind(f.get(m), "focus", d); f.bind(f.get(m), "keydown", o) } }) })(tinymce); (function(c) { var b = c.DOM, a = c.is; c.create("tinymce.ui.Control", { Control: function(f, e, d) { this.id = f; this.settings = e = e || {}; this.rendered = false; this.onRender = new c.util.Dispatcher(this); this.classPrefix = ""; this.scope = e.scope || this; this.disabled = 0; this.active = 0; this.editor = d }, setAriaProperty: function(f, e) { var d = b.get(this.id + "_aria") || b.get(this.id); if (d) { b.setAttrib(d, "aria-" + f, !! e) } }, focus: function() { b.get(this.id).focus() }, setDisabled: function(d) { if (d != this.disabled) { this.setAriaProperty("disabled", d); this.setState("Disabled", d); this.setState("Enabled", !d); this.disabled = d } }, isDisabled: function() { return this.disabled }, setActive: function(d) { if (d != this.active) { this.setState("Active", d); this.active = d; this.setAriaProperty("pressed", d) } }, isActive: function() { return this.active }, setState: function(f, d) { var e = b.get(this.id); f = this.classPrefix + f; if (d) { b.addClass(e, f) } else { b.removeClass(e, f) } }, isRendered: function() { return this.rendered }, renderHTML: function() {}, renderTo: function(d) { b.setHTML(d, this.renderHTML()) }, postRender: function() { var e = this, d; if (a(e.disabled)) { d = e.disabled; e.disabled = -1; e.setDisabled(d) } if (a(e.active)) { d = e.active; e.active = -1; e.setActive(d) } }, remove: function() { b.remove(this.id); this.destroy() }, destroy: function() { c.dom.Event.clear(this.id) } }) })(tinymce); tinymce.create("tinymce.ui.Container:tinymce.ui.Control", { Container: function(c, b, a) { this.parent(c, b, a); this.controls = []; this.lookup = {} }, add: function(a) { this.lookup[a.id] = a; this.controls.push(a); return a }, get: function(a) { return this.lookup[a] } }); tinymce.create("tinymce.ui.Separator:tinymce.ui.Control", { Separator: function(b, a) { this.parent(b, a); this.classPrefix = "mceSeparator"; this.setDisabled(true) }, renderHTML: function() { return tinymce.DOM.createHTML("span", { "class": this.classPrefix, role: "separator", "aria-orientation": "vertical", tabindex: "-1" }) } }); (function(d) { var c = d.is, b = d.DOM, e = d.each, a = d.walk; d.create("tinymce.ui.MenuItem:tinymce.ui.Control", { MenuItem: function(g, f) { this.parent(g, f); this.classPrefix = "mceMenuItem" }, setSelected: function(f) { this.setState("Selected", f); this.setAriaProperty("checked", !! f); this.selected = f }, isSelected: function() { return this.selected }, postRender: function() { var f = this; f.parent(); if (c(f.selected)) { f.setSelected(f.selected) } } }) })(tinymce); (function(d) { var c = d.is, b = d.DOM, e = d.each, a = d.walk; d.create("tinymce.ui.Menu:tinymce.ui.MenuItem", { Menu: function(h, g) { var f = this; f.parent(h, g); f.items = {}; f.collapsed = false; f.menuCount = 0; f.onAddItem = new d.util.Dispatcher(this) }, expand: function(g) { var f = this; if (g) { a(f, function(h) { if (h.expand) { h.expand() } }, "items", f) } f.collapsed = false }, collapse: function(g) { var f = this; if (g) { a(f, function(h) { if (h.collapse) { h.collapse() } }, "items", f) } f.collapsed = true }, isCollapsed: function() { return this.collapsed }, add: function(f) { if (!f.settings) { f = new d.ui.MenuItem(f.id || b.uniqueId(), f) } this.onAddItem.dispatch(this, f); return this.items[f.id] = f }, addSeparator: function() { return this.add({ separator: true }) }, addMenu: function(f) { if (!f.collapse) { f = this.createMenu(f) } this.menuCount++; return this.add(f) }, hasMenus: function() { return this.menuCount !== 0 }, remove: function(f) { delete this.items[f.id] }, removeAll: function() { var f = this; a(f, function(g) { if (g.removeAll) { g.removeAll() } else { g.remove() } g.destroy() }, "items", f); f.items = {} }, createMenu: function(g) { var f = new d.ui.Menu(g.id || b.uniqueId(), g); f.onAddItem.add(this.onAddItem.dispatch, this.onAddItem); return f } }) })(tinymce); (function(e) { var d = e.is, c = e.DOM, f = e.each, a = e.dom.Event, b = e.dom.Element; e.create("tinymce.ui.DropMenu:tinymce.ui.Menu", { DropMenu: function(h, g) { g = g || {}; g.container = g.container || c.doc.body; g.offset_x = g.offset_x || 0; g.offset_y = g.offset_y || 0; g.vp_offset_x = g.vp_offset_x || 0; g.vp_offset_y = g.vp_offset_y || 0; if (d(g.icons) && !g.icons) { g["class"] += " mceNoIcons" } this.parent(h, g); this.onShowMenu = new e.util.Dispatcher(this); this.onHideMenu = new e.util.Dispatcher(this); this.classPrefix = "mceMenu" }, createMenu: function(j) { var h = this, i = h.settings, g; j.container = j.container || i.container; j.parent = h; j.constrain = j.constrain || i.constrain; j["class"] = j["class"] || i["class"]; j.vp_offset_x = j.vp_offset_x || i.vp_offset_x; j.vp_offset_y = j.vp_offset_y || i.vp_offset_y; j.keyboard_focus = i.keyboard_focus; g = new e.ui.DropMenu(j.id || c.uniqueId(), j); g.onAddItem.add(h.onAddItem.dispatch, h.onAddItem); return g }, focus: function() { var g = this; if (g.keyboardNav) { g.keyboardNav.focus() } }, update: function() { var i = this, j = i.settings, g = c.get("menu_" + i.id + "_tbl"), l = c.get("menu_" + i.id + "_co"), h, k; h = j.max_width ? Math.min(g.clientWidth, j.max_width) : g.clientWidth; k = j.max_height ? Math.min(g.clientHeight, j.max_height) : g.clientHeight; if (!c.boxModel) { i.element.setStyles({ width: h + 2, height: k + 2 }) } else { i.element.setStyles({ width: h, height: k }) } if (j.max_width) { c.setStyle(l, "width", h) } if (j.max_height) { c.setStyle(l, "height", k); if (g.clientHeight < j.max_height) { c.setStyle(l, "overflow", "hidden") } } }, showMenu: function(p, n, r) { var z = this, A = z.settings, o, g = c.getViewPort(), u, l, v, q, i = 2, k, j, m = z.classPrefix; z.collapse(1); if (z.isMenuVisible) { return } if (!z.rendered) { o = c.add(z.settings.container, z.renderNode()); f(z.items, function(h) { h.postRender() }); z.element = new b("menu_" + z.id, { blocker: 1, container: A.container }) } else { o = c.get("menu_" + z.id) } if (!e.isOpera) { c.setStyles(o, { left: -65535, top: -65535 }) } c.show(o); z.update(); p += A.offset_x || 0; n += A.offset_y || 0; g.w -= 4; g.h -= 4; if (A.constrain) { u = o.clientWidth - i; l = o.clientHeight - i; v = g.x + g.w; q = g.y + g.h; if ((p + A.vp_offset_x + u) > v) { p = r ? r - u : Math.max(0, (v - A.vp_offset_x) - u) } if ((n + A.vp_offset_y + l) > q) { n = Math.max(0, (q - A.vp_offset_y) - l) } } c.setStyles(o, { left: p, top: n }); z.element.update(); z.isMenuVisible = 1; z.mouseClickFunc = a.add(o, "click", function(s) { var h; s = s.target; if (s && (s = c.getParent(s, "tr")) && !c.hasClass(s, m + "ItemSub")) { h = z.items[s.id]; if (h.isDisabled()) { return } k = z; while (k) { if (k.hideMenu) { k.hideMenu() } k = k.settings.parent } if (h.settings.onclick) { h.settings.onclick(s) } return a.cancel(s) } }); if (z.hasMenus()) { z.mouseOverFunc = a.add(o, "mouseover", function(x) { var h, t, s; x = x.target; if (x && (x = c.getParent(x, "tr"))) { h = z.items[x.id]; if (z.lastMenu) { z.lastMenu.collapse(1) } if (h.isDisabled()) { return } if (x && c.hasClass(x, m + "ItemSub")) { t = c.getRect(x); h.showMenu((t.x + t.w - i), t.y - i, t.x); z.lastMenu = h; c.addClass(c.get(h.id).firstChild, m + "ItemActive") } } }) } a.add(o, "keydown", z._keyHandler, z); z.onShowMenu.dispatch(z); if (A.keyboard_focus) { z._setupKeyboardNav() } }, hideMenu: function(j) { var g = this, i = c.get("menu_" + g.id), h; if (!g.isMenuVisible) { return } if (g.keyboardNav) { g.keyboardNav.destroy() } a.remove(i, "mouseover", g.mouseOverFunc); a.remove(i, "click", g.mouseClickFunc); a.remove(i, "keydown", g._keyHandler); c.hide(i); g.isMenuVisible = 0; if (!j) { g.collapse(1) } if (g.element) { g.element.hide() } if (h = c.get(g.id)) { c.removeClass(h.firstChild, g.classPrefix + "ItemActive") } g.onHideMenu.dispatch(g) }, add: function(i) { var g = this, h; i = g.parent(i); if (g.isRendered && (h = c.get("menu_" + g.id))) { g._add(c.select("tbody", h)[0], i) } return i }, collapse: function(g) { this.parent(g); this.hideMenu(1) }, remove: function(g) { c.remove(g.id); this.destroy(); return this.parent(g) }, destroy: function() { var g = this, h = c.get("menu_" + g.id); if (g.keyboardNav) { g.keyboardNav.destroy() } a.remove(h, "mouseover", g.mouseOverFunc); a.remove(c.select("a", h), "focus", g.mouseOverFunc); a.remove(h, "click", g.mouseClickFunc); a.remove(h, "keydown", g._keyHandler); if (g.element) { g.element.remove() } c.remove(h) }, renderNode: function() { var i = this, j = i.settings, l, h, k, g; g = c.create("div", { role: "listbox", id: "menu_" + i.id, "class": j["class"], style: "position:absolute;left:0;top:0;z-index:200000;outline:0" }); if (i.settings.parent) { c.setAttrib(g, "aria-parent", "menu_" + i.settings.parent.id) } k = c.add(g, "div", { role: "presentation", id: "menu_" + i.id + "_co", "class": i.classPrefix + (j["class"] ? " " + j["class"] : "") }); i.element = new b("menu_" + i.id, { blocker: 1, container: j.container }); if (j.menu_line) { c.add(k, "span", { "class": i.classPrefix + "Line" }) } l = c.add(k, "table", { role: "presentation", id: "menu_" + i.id + "_tbl", border: 0, cellPadding: 0, cellSpacing: 0 }); h = c.add(l, "tbody"); f(i.items, function(m) { i._add(h, m) }); i.rendered = true; return g }, _setupKeyboardNav: function() { var i, h, g = this; i = c.select("#menu_" + g.id)[0]; h = c.select("a[role=option]", "menu_" + g.id); h.splice(0, 0, i); g.keyboardNav = new e.ui.KeyboardNavigation({ root: "menu_" + g.id, items: h, onCancel: function() { g.hideMenu() }, enableUpDown: true }); i.focus() }, _keyHandler: function(g) { var h = this, i; switch (g.keyCode) { case 37: if (h.settings.parent) { h.hideMenu(); h.settings.parent.focus(); a.cancel(g) } break; case 39: if (h.mouseOverFunc) { h.mouseOverFunc(g) } break } }, _add: function(j, h) { var i, q = h.settings, p, l, k, m = this.classPrefix, g; if (q.separator) { l = c.add(j, "tr", { id: h.id, "class": m + "ItemSeparator" }); c.add(l, "td", { "class": m + "ItemSeparator" }); if (i = l.previousSibling) { c.addClass(i, "mceLast") } return } i = l = c.add(j, "tr", { id: h.id, "class": m + "Item " + m + "ItemEnabled" }); i = k = c.add(i, q.titleItem ? "th" : "td"); i = p = c.add(i, "a", { id: h.id + "_aria", role: q.titleItem ? "presentation" : "option", href: "javascript:;", onclick: "return false;", onmousedown: "return false;" }); if (q.parent) { c.setAttrib(p, "aria-haspopup", "true"); c.setAttrib(p, "aria-owns", "menu_" + h.id) } c.addClass(k, q["class"]); g = c.add(i, "span", { "class": "mceIcon" + (q.icon ? " mce_" + q.icon : "") }); if (q.icon_src) { c.add(g, "img", { src: q.icon_src }) } i = c.add(i, q.element || "span", { "class": "mceText", title: h.settings.title }, h.settings.title); if (h.settings.style) { c.setAttrib(i, "style", h.settings.style) } if (j.childNodes.length == 1) { c.addClass(l, "mceFirst") } if ((i = l.previousSibling) && c.hasClass(i, m + "ItemSeparator")) { c.addClass(l, "mceFirst") } if (h.collapse) { c.addClass(l, m + "ItemSub") } if (i = l.previousSibling) { c.removeClass(i, "mceLast") } c.addClass(l, "mceLast") } }) })(tinymce); (function(b) { var a = b.DOM; b.create("tinymce.ui.Button:tinymce.ui.Control", { Button: function(e, d, c) { this.parent(e, d, c); this.classPrefix = "mceButton" }, renderHTML: function() { var f = this.classPrefix, e = this.settings, d, c; c = a.encode(e.label || ""); d = ''; if (e.image) { d += '' + a.encode(e.title) + '' + c } else { d += '' + (c ? '' + c + "" : "") } d += '"; d += ""; return d }, postRender: function() { var c = this, d = c.settings; b.dom.Event.add(c.id, "click", function(f) { if (!c.isDisabled()) { return d.onclick.call(d.scope, f) } }) } }) })(tinymce); (function(d) { var c = d.DOM, b = d.dom.Event, e = d.each, a = d.util.Dispatcher; d.create("tinymce.ui.ListBox:tinymce.ui.Control", { ListBox: function(i, h, f) { var g = this; g.parent(i, h, f); g.items = []; g.onChange = new a(g); g.onPostRender = new a(g); g.onAdd = new a(g); g.onRenderMenu = new d.util.Dispatcher(this); g.classPrefix = "mceListBox" }, select: function(h) { var g = this, j, i; if (h == undefined) { return g.selectByIndex(-1) } if (h && h.call) { i = h } else { i = function(f) { return f == h } } if (h != g.selectedValue) { e(g.items, function(k, f) { if (i(k.value)) { j = 1; g.selectByIndex(f); return false } }); if (!j) { g.selectByIndex(-1) } } }, selectByIndex: function(f) { var g = this, h, i; if (f != g.selectedIndex) { h = c.get(g.id + "_text"); i = g.items[f]; if (i) { g.selectedValue = i.value; g.selectedIndex = f; c.setHTML(h, c.encode(i.title)); c.removeClass(h, "mceTitle"); c.setAttrib(g.id, "aria-valuenow", i.title) } else { c.setHTML(h, c.encode(g.settings.title)); c.addClass(h, "mceTitle"); g.selectedValue = g.selectedIndex = null; c.setAttrib(g.id, "aria-valuenow", g.settings.title) } h = 0 } }, add: function(i, f, h) { var g = this; h = h || {}; h = d.extend(h, { title: i, value: f }); g.items.push(h); g.onAdd.dispatch(g, h) }, getLength: function() { return this.items.length }, renderHTML: function() { var i = "", f = this, g = f.settings, j = f.classPrefix; i = ''; i += ""; i += ""; i += ""; return i }, showMenu: function() { var g = this, j, i, h = c.get(this.id), f; if (g.isDisabled() || g.items.length == 0) { return } if (g.menu && g.menu.isMenuVisible) { return g.hideMenu() } if (!g.isMenuRendered) { g.renderMenu(); g.isMenuRendered = true } j = c.getPos(this.settings.menu_container); i = c.getPos(h); f = g.menu; f.settings.offset_x = i.x; f.settings.offset_y = i.y; f.settings.keyboard_focus = !d.isOpera; if (g.oldID) { f.items[g.oldID].setSelected(0) } e(g.items, function(k) { if (k.value === g.selectedValue) { f.items[k.id].setSelected(1); g.oldID = k.id } }); f.showMenu(0, h.clientHeight); b.add(c.doc, "mousedown", g.hideMenu, g); c.addClass(g.id, g.classPrefix + "Selected") }, hideMenu: function(g) { var f = this; if (f.menu && f.menu.isMenuVisible) { c.removeClass(f.id, f.classPrefix + "Selected"); if (g && g.type == "mousedown" && (g.target.id == f.id + "_text" || g.target.id == f.id + "_open")) { return } if (!g || !c.getParent(g.target, ".mceMenu")) { c.removeClass(f.id, f.classPrefix + "Selected"); b.remove(c.doc, "mousedown", f.hideMenu, f); f.menu.hideMenu() } } }, renderMenu: function() { var g = this, f; f = g.settings.control_manager.createDropMenu(g.id + "_menu", { menu_line: 1, "class": g.classPrefix + "Menu mceNoIcons", max_width: 150, max_height: 150 }); f.onHideMenu.add(function() { g.hideMenu(); g.focus() }); f.add({ title: g.settings.title, "class": "mceMenuItemTitle", onclick: function() { if (g.settings.onselect("") !== false) { g.select("") } } }); e(g.items, function(h) { if (h.value === undefined) { f.add({ title: h.title, "class": "mceMenuItemTitle", onclick: function() { if (g.settings.onselect("") !== false) { g.select("") } } }) } else { h.id = c.uniqueId(); h.onclick = function() { if (g.settings.onselect(h.value) !== false) { g.select(h.value) } }; f.add(h) } }); g.onRenderMenu.dispatch(g, f); g.menu = f }, postRender: function() { var f = this, g = f.classPrefix; b.add(f.id, "click", f.showMenu, f); b.add(f.id, "keydown", function(h) { if (h.keyCode == 32) { f.showMenu(h); b.cancel(h) } }); b.add(f.id, "focus", function() { if (!f._focused) { f.keyDownHandler = b.add(f.id, "keydown", function(h) { if (h.keyCode == 40) { f.showMenu(); b.cancel(h) } }); f.keyPressHandler = b.add(f.id, "keypress", function(i) { var h; if (i.keyCode == 13) { h = f.selectedValue; f.selectedValue = null; b.cancel(i); f.settings.onselect(h) } }) } f._focused = 1 }); b.add(f.id, "blur", function() { b.remove(f.id, "keydown", f.keyDownHandler); b.remove(f.id, "keypress", f.keyPressHandler); f._focused = 0 }); if (d.isIE6 || !c.boxModel) { b.add(f.id, "mouseover", function() { if (!c.hasClass(f.id, g + "Disabled")) { c.addClass(f.id, g + "Hover") } }); b.add(f.id, "mouseout", function() { if (!c.hasClass(f.id, g + "Disabled")) { c.removeClass(f.id, g + "Hover") } }) } f.onPostRender.dispatch(f, c.get(f.id)) }, destroy: function() { this.parent(); b.clear(this.id + "_text"); b.clear(this.id + "_open") } }) })(tinymce); (function(d) { var c = d.DOM, b = d.dom.Event, e = d.each, a = d.util.Dispatcher; d.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox", { NativeListBox: function(g, f) { this.parent(g, f); this.classPrefix = "mceNativeListBox" }, setDisabled: function(f) { c.get(this.id).disabled = f; this.setAriaProperty("disabled", f) }, isDisabled: function() { return c.get(this.id).disabled }, select: function(h) { var g = this, j, i; if (h == undefined) { return g.selectByIndex(-1) } if (h && h.call) { i = h } else { i = function(f) { return f == h } } if (h != g.selectedValue) { e(g.items, function(k, f) { if (i(k.value)) { j = 1; g.selectByIndex(f); return false } }); if (!j) { g.selectByIndex(-1) } } }, selectByIndex: function(f) { c.get(this.id).selectedIndex = f + 1; this.selectedValue = this.items[f] ? this.items[f].value : null }, add: function(j, g, f) { var i, h = this; f = f || {}; f.value = g; if (h.isRendered()) { c.add(c.get(this.id), "option", f, j) } i = { title: j, value: g, attribs: f }; h.items.push(i); h.onAdd.dispatch(h, i) }, getLength: function() { return this.items.length }, renderHTML: function() { var g, f = this; g = c.createHTML("option", { value: "" }, "-- " + f.settings.title + " --"); e(f.items, function(h) { g += c.createHTML("option", { value: h.value }, h.title) }); g = c.createHTML("select", { id: f.id, "class": "mceNativeListBox", "aria-labelledby": f.id + "_aria" }, g); g += c.createHTML("span", { id: f.id + "_aria", style: "display: none" }, f.settings.title); return g }, postRender: function() { var g = this, h, i = true; g.rendered = true; function f(k) { var j = g.items[k.target.selectedIndex - 1]; if (j && (j = j.value)) { g.onChange.dispatch(g, j); if (g.settings.onselect) { g.settings.onselect(j) } } } b.add(g.id, "change", f); b.add(g.id, "keydown", function(k) { var j; b.remove(g.id, "change", h); i = false; j = b.add(g.id, "blur", function() { if (i) { return } i = true; b.add(g.id, "change", f); b.remove(g.id, "blur", j) }); if (k.keyCode == 13 || k.keyCode == 32) { f(k); return b.cancel(k) } }); g.onPostRender.dispatch(g, c.get(g.id)) } }) })(tinymce); (function(c) { var b = c.DOM, a = c.dom.Event, d = c.each; c.create("tinymce.ui.MenuButton:tinymce.ui.Button", { MenuButton: function(g, f, e) { this.parent(g, f, e); this.onRenderMenu = new c.util.Dispatcher(this); f.menu_container = f.menu_container || b.doc.body }, showMenu: function() { var g = this, j, i, h = b.get(g.id), f; if (g.isDisabled()) { return } if (!g.isMenuRendered) { g.renderMenu(); g.isMenuRendered = true } if (g.isMenuVisible) { return g.hideMenu() } j = b.getPos(g.settings.menu_container); i = b.getPos(h); f = g.menu; f.settings.offset_x = i.x; f.settings.offset_y = i.y; f.settings.vp_offset_x = i.x; f.settings.vp_offset_y = i.y; f.settings.keyboard_focus = g._focused; f.showMenu(0, h.clientHeight); a.add(b.doc, "mousedown", g.hideMenu, g); g.setState("Selected", 1); g.isMenuVisible = 1 }, renderMenu: function() { var f = this, e; e = f.settings.control_manager.createDropMenu(f.id + "_menu", { menu_line: 1, "class": this.classPrefix + "Menu", icons: f.settings.icons }); e.onHideMenu.add(function() { f.hideMenu(); f.focus() }); f.onRenderMenu.dispatch(f, e); f.menu = e }, hideMenu: function(g) { var f = this; if (g && g.type == "mousedown" && b.getParent(g.target, function(h) { return h.id === f.id || h.id === f.id + "_open" })) { return } if (!g || !b.getParent(g.target, ".mceMenu")) { f.setState("Selected", 0); a.remove(b.doc, "mousedown", f.hideMenu, f); if (f.menu) { f.menu.hideMenu() } } f.isMenuVisible = 0 }, postRender: function() { var e = this, f = e.settings; a.add(e.id, "click", function() { if (!e.isDisabled()) { if (f.onclick) { f.onclick(e.value) } e.showMenu() } }) } }) })(tinymce); (function(c) { var b = c.DOM, a = c.dom.Event, d = c.each; c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton", { SplitButton: function(g, f, e) { this.parent(g, f, e); this.classPrefix = "mceSplitButton" }, renderHTML: function() { var i, f = this, g = f.settings, e; i = ""; if (g.image) { e = b.createHTML("img ", { src: g.image, role: "presentation", "class": "mceAction " + g["class"] }) } else { e = b.createHTML("span", { "class": "mceAction " + g["class"] }, "") } e += b.createHTML("span", { "class": "mceVoiceLabel mceIconOnly", id: f.id + "_voice", style: "display:none;" }, g.title); i += "" + b.createHTML("a", { role: "button", id: f.id + "_action", tabindex: "-1", href: "javascript:;", "class": "mceAction " + g["class"], onclick: "return false;", onmousedown: "return false;", title: g.title }, e) + ""; e = b.createHTML("span", { "class": "mceOpen " + g["class"] }, ''); i += "" + b.createHTML("a", { role: "button", id: f.id + "_open", tabindex: "-1", href: "javascript:;", "class": "mceOpen " + g["class"], onclick: "return false;", onmousedown: "return false;", title: g.title }, e) + ""; i += ""; i = b.createHTML("table", { id: f.id, role: "presentation", tabindex: "0", "class": "mceSplitButton mceSplitButtonEnabled " + g["class"], cellpadding: "0", cellspacing: "0", title: g.title }, i); return b.createHTML("span", { role: "button", "aria-labelledby": f.id + "_voice", "aria-haspopup": "true" }, i) }, postRender: function() { var e = this, g = e.settings, f; if (g.onclick) { f = function(h) { if (!e.isDisabled()) { g.onclick(e.value); a.cancel(h) } }; a.add(e.id + "_action", "click", f); a.add(e.id, ["click", "keydown"], function(h) { var k = 32, m = 14, i = 13, j = 38, l = 40; if ((h.keyCode === 32 || h.keyCode === 13 || h.keyCode === 14) && !h.altKey && !h.ctrlKey && !h.metaKey) { f(); a.cancel(h) } else { if (h.type === "click" || h.keyCode === l) { e.showMenu(); a.cancel(h) } } }) } a.add(e.id + "_open", "click", function(h) { e.showMenu(); a.cancel(h) }); a.add([e.id, e.id + "_open"], "focus", function() { e._focused = 1 }); a.add([e.id, e.id + "_open"], "blur", function() { e._focused = 0 }); if (c.isIE6 || !b.boxModel) { a.add(e.id, "mouseover", function() { if (!b.hasClass(e.id, "mceSplitButtonDisabled")) { b.addClass(e.id, "mceSplitButtonHover") } }); a.add(e.id, "mouseout", function() { if (!b.hasClass(e.id, "mceSplitButtonDisabled")) { b.removeClass(e.id, "mceSplitButtonHover") } }) } }, destroy: function() { this.parent(); a.clear(this.id + "_action"); a.clear(this.id + "_open"); a.clear(this.id) } }) })(tinymce); (function(d) { var c = d.DOM, a = d.dom.Event, b = d.is, e = d.each; d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton", { ColorSplitButton: function(i, h, f) { var g = this; g.parent(i, h, f); g.settings = h = d.extend({ colors: "000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF", grid_width: 8, default_color: "#888888" }, g.settings); g.onShowMenu = new d.util.Dispatcher(g); g.onHideMenu = new d.util.Dispatcher(g); g.value = h.default_color }, showMenu: function() { var f = this, g, j, i, h; if (f.isDisabled()) { return } if (!f.isMenuRendered) { f.renderMenu(); f.isMenuRendered = true } if (f.isMenuVisible) { return f.hideMenu() } i = c.get(f.id); c.show(f.id + "_menu"); c.addClass(i, "mceSplitButtonSelected"); h = c.getPos(i); c.setStyles(f.id + "_menu", { left: h.x, top: h.y + i.clientHeight, zIndex: 200000 }); i = 0; a.add(c.doc, "mousedown", f.hideMenu, f); f.onShowMenu.dispatch(f); if (f._focused) { f._keyHandler = a.add(f.id + "_menu", "keydown", function(k) { if (k.keyCode == 27) { f.hideMenu() } }); c.select("a", f.id + "_menu")[0].focus() } f.isMenuVisible = 1 }, hideMenu: function(g) { var f = this; if (g && g.type == "mousedown" && c.getParent(g.target, function(h) { return h.id === f.id + "_open" })) { return } if (!g || !c.getParent(g.target, ".mceSplitButtonMenu")) { c.removeClass(f.id, "mceSplitButtonSelected"); a.remove(c.doc, "mousedown", f.hideMenu, f); a.remove(f.id + "_menu", "keydown", f._keyHandler); c.hide(f.id + "_menu") } f.onHideMenu.dispatch(f); f.isMenuVisible = 0; f.editor.focus() }, renderMenu: function() { var p = this, h, k = 0, q = p.settings, g, j, l, o, f; o = c.add(q.menu_container, "div", { role: "listbox", id: p.id + "_menu", "class": q.menu_class + " " + q["class"], style: "position:absolute;left:0;top:-1000px;" }); h = c.add(o, "div", { "class": q["class"] + " mceSplitButtonMenu" }); c.add(h, "span", { "class": "mceMenuLine" }); g = c.add(h, "table", { role: "presentation", "class": "mceColorSplitMenu" }); j = c.add(g, "tbody"); k = 0; e(b(q.colors, "array") ? q.colors : q.colors.split(","), function(i) { i = i.replace(/^#/, ""); if (!k--) { l = c.add(j, "tr"); k = q.grid_width - 1 } g = c.add(l, "td"); g = c.add(g, "a", { role: "option", href: "javascript:;", style: { backgroundColor: "#" + i }, title: p.editor.getLang("colors." + i, i), "data-mce-color": "#" + i }); if (p.editor.forcedHighContrastMode) { g = c.add(g, "canvas", { width: 16, height: 16, "aria-hidden": "true" }); if (g.getContext && (f = g.getContext("2d"))) { f.fillStyle = "#" + i; f.fillRect(0, 0, 16, 16) } else { c.remove(g) } } }); if (q.more_colors_func) { g = c.add(j, "tr"); g = c.add(g, "td", { colspan: q.grid_width, "class": "mceMoreColors" }); g = c.add(g, "a", { role: "option", id: p.id + "_more", href: "javascript:;", onclick: "return false;", "class": "mceMoreColors" }, q.more_colors_title); a.add(g, "click", function(i) { q.more_colors_func.call(q.more_colors_scope || this); return a.cancel(i) }) } c.addClass(h, "mceColorSplitMenu"); new d.ui.KeyboardNavigation({ root: p.id + "_menu", items: c.select("a", p.id + "_menu"), onCancel: function() { p.hideMenu(); p.focus() } }); a.add(p.id + "_menu", "mousedown", function(i) { return a.cancel(i) }); a.add(p.id + "_menu", "click", function(i) { var m; i = c.getParent(i.target, "a", j); if (i && i.nodeName.toLowerCase() == "a" && (m = i.getAttribute("data-mce-color"))) { p.setColor(m) } return a.cancel(i) }); return o }, setColor: function(f) { this.displayColor(f); this.hideMenu(); this.settings.onselect(f) }, displayColor: function(g) { var f = this; c.setStyle(f.id + "_preview", "backgroundColor", g); f.value = g }, postRender: function() { var f = this, g = f.id; f.parent(); c.add(g + "_action", "div", { id: g + "_preview", "class": "mceColorPreview" }); c.setStyle(f.id + "_preview", "backgroundColor", f.value) }, destroy: function() { this.parent(); a.clear(this.id + "_menu"); a.clear(this.id + "_more"); c.remove(this.id + "_menu") } }) })(tinymce); (function(b) { var d = b.DOM, c = b.each, a = b.dom.Event; b.create("tinymce.ui.ToolbarGroup:tinymce.ui.Container", { renderHTML: function() { var f = this, i = [], e = f.controls, j = b.each, g = f.settings; i.push('
'); i.push(""); i.push('"); j(e, function(h) { i.push(h.renderHTML()) }); i.push(""); i.push("
"); return i.join("") }, focus: function() { this.keyNav.focus() }, postRender: function() { var f = this, e = []; c(f.controls, function(g) { c(g.controls, function(h) { if (h.id) { e.push(h) } }) }); f.keyNav = new b.ui.KeyboardNavigation({ root: f.id, items: e, onCancel: function() { f.editor.focus() }, excludeFromTabOrder: !f.settings.tab_focus_toolbar }) }, destroy: function() { var e = this; e.parent(); e.keyNav.destroy(); a.clear(e.id) } }) })(tinymce); (function(a) { var c = a.DOM, b = a.each; a.create("tinymce.ui.Toolbar:tinymce.ui.Container", { renderHTML: function() { var m = this, f = "", j, k, n = m.settings, e, d, g, l; l = m.controls; for (e = 0; e < l.length; e++) { k = l[e]; d = l[e - 1]; g = l[e + 1]; if (e === 0) { j = "mceToolbarStart"; if (k.Button) { j += " mceToolbarStartButton" } else { if (k.SplitButton) { j += " mceToolbarStartSplitButton" } else { if (k.ListBox) { j += " mceToolbarStartListBox" } } } f += c.createHTML("td", { "class": j }, c.createHTML("span", null, "")) } if (d && k.ListBox) { if (d.Button || d.SplitButton) { f += c.createHTML("td", { "class": "mceToolbarEnd" }, c.createHTML("span", null, "")) } } if (c.stdMode) { f += '' + k.renderHTML() + "" } else { f += "" + k.renderHTML() + "" } if (g && k.ListBox) { if (g.Button || g.SplitButton) { f += c.createHTML("td", { "class": "mceToolbarStart" }, c.createHTML("span", null, "")) } } } j = "mceToolbarEnd"; if (k.Button) { j += " mceToolbarEndButton" } else { if (k.SplitButton) { j += " mceToolbarEndSplitButton" } else { if (k.ListBox) { j += " mceToolbarEndListBox" } } } f += c.createHTML("td", { "class": j }, c.createHTML("span", null, "")); return c.createHTML("table", { id: m.id, "class": "mceToolbar" + (n["class"] ? " " + n["class"] : ""), cellpadding: "0", cellspacing: "0", align: m.settings.align || "", role: "presentation", tabindex: "-1" }, "" + f + "") } }) })(tinymce); (function(b) { var a = b.util.Dispatcher, c = b.each; b.create("tinymce.AddOnManager", { AddOnManager: function() { var d = this; d.items = []; d.urls = {}; d.lookup = {}; d.onAdd = new a(d) }, get: function(d) { return this.lookup[d] }, requireLangPack: function(e) { var d = b.settings; if (d && d.language && d.language_load !== false) { b.ScriptLoader.add(this.urls[e] + "/langs/" + d.language + ".js") } }, add: function(e, d) { this.items.push(d); this.lookup[e] = d; this.onAdd.dispatch(this, e, d); return d }, load: function(h, e, d, g) { var f = this; if (f.urls[h]) { return } if (e.indexOf("/") != 0 && e.indexOf("://") == -1) { e = b.baseURL + "/" + e } f.urls[h] = e.substring(0, e.lastIndexOf("/")); if (!f.lookup[h]) { b.ScriptLoader.add(e, d, g) } } }); b.PluginManager = new b.AddOnManager(); b.ThemeManager = new b.AddOnManager() }(tinymce)); (function(j) { var g = j.each, d = j.extend, k = j.DOM, i = j.dom.Event, f = j.ThemeManager, b = j.PluginManager, e = j.explode, h = j.util.Dispatcher, a, c = 0; j.documentBaseURL = window.location.href.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""); if (!/[\/\\]$/.test(j.documentBaseURL)) { j.documentBaseURL += "/" } j.baseURL = new j.util.URI(j.documentBaseURL).toAbsolute(j.baseURL); j.baseURI = new j.util.URI(j.baseURL); j.onBeforeUnload = new h(j); i.add(window, "beforeunload", function(l) { j.onBeforeUnload.dispatch(j, l) }); j.onAddEditor = new h(j); j.onRemoveEditor = new h(j); j.EditorManager = d(j, { editors: [], i18n: {}, activeEditor: null, init: function(q) { var n = this, p, l = j.ScriptLoader, u, o = [], m; function r(x, y, t) { var v = x[y]; if (!v) { return } if (j.is(v, "string")) { t = v.replace(/\.\w+$/, ""); t = t ? j.resolve(t) : 0; v = j.resolve(v) } return v.apply(t || this, Array.prototype.slice.call(arguments, 2)) } q = d({ theme: "simple", language: "en" }, q); n.settings = q; i.add(document, "init", function() { var s, v; r(q, "onpageload"); switch (q.mode) { case "exact": s = q.elements || ""; if (s.length > 0) { g(e(s), function(x) { if (k.get(x)) { m = new j.Editor(x, q); o.push(m); m.render(1) } else { g(document.forms, function(y) { g(y.elements, function(z) { if (z.name === x) { x = "mce_editor_" + c++; k.setAttrib(z, "id", x); m = new j.Editor(x, q); o.push(m); m.render(1) } }) }) } }) } break; case "textareas": case "specific_textareas": function t(y, x) { return x.constructor === RegExp ? x.test(y.className) : k.hasClass(y, x) } g(k.select("textarea"), function(x) { if (q.editor_deselector && t(x, q.editor_deselector)) { return } if (!q.editor_selector || t(x, q.editor_selector)) { u = k.get(x.name); if (!x.id && !u) { x.id = x.name } if (!x.id || n.get(x.id)) { x.id = k.uniqueId() } m = new j.Editor(x.id, q); o.push(m); m.render(1) } }); break } if (q.oninit) { s = v = 0; g(o, function(x) { v++; if (!x.initialized) { x.onInit.add(function() { s++; if (s == v) { r(q, "oninit") } }) } else { s++ } if (s == v) { r(q, "oninit") } }) } }) }, get: function(l) { if (l === a) { return this.editors } return this.editors[l] }, getInstanceById: function(l) { return this.get(l) }, add: function(m) { var l = this, n = l.editors; n[m.id] = m; n.push(m); l._setActive(m); l.onAddEditor.dispatch(l, m); return m }, remove: function(n) { var m = this, l, o = m.editors; if (!o[n.id]) { return null } delete o[n.id]; for (l = 0; l < o.length; l++) { if (o[l] == n) { o.splice(l, 1); break } } if (m.activeEditor == n) { m._setActive(o[0]) } n.destroy(); m.onRemoveEditor.dispatch(m, n); return n }, execCommand: function(r, p, o) { var q = this, n = q.get(o), l; switch (r) { case "mceFocus": n.focus(); return true; case "mceAddEditor": case "mceAddControl": if (!q.get(o)) { new j.Editor(o, q.settings).render() } return true; case "mceAddFrameControl": l = o.window; l.tinyMCE = tinyMCE; l.tinymce = j; j.DOM.doc = l.document; j.DOM.win = l; n = new j.Editor(o.element_id, o); n.render(); if (j.isIE) { function m() { n.destroy(); l.detachEvent("onunload", m); l = l.tinyMCE = l.tinymce = null } l.attachEvent("onunload", m) } o.page_window = null; return true; case "mceRemoveEditor": case "mceRemoveControl": if (n) { n.remove() } return true; case "mceToggleEditor": if (!n) { q.execCommand("mceAddControl", 0, o); return true } if (n.isHidden()) { n.show() } else { n.hide() } return true } if (q.activeEditor) { return q.activeEditor.execCommand(r, p, o) } return false }, execInstanceCommand: function(p, o, n, m) { var l = this.get(p); if (l) { return l.execCommand(o, n, m) } return false }, triggerSave: function() { g(this.editors, function(l) { l.save() }) }, addI18n: function(n, q) { var l, m = this.i18n; if (!j.is(n, "string")) { g(n, function(r, p) { g(r, function(t, s) { g(t, function(v, u) { if (s === "common") { m[p + "." + u] = v } else { m[p + "." + s + "." + u] = v } }) }) }) } else { g(q, function(r, p) { m[n + "." + p] = r }) } }, _setActive: function(l) { this.selectedInstance = this.activeEditor = l } }) })(tinymce); (function(m) { var n = m.DOM, j = m.dom.Event, f = m.extend, k = m.util.Dispatcher, i = m.each, a = m.isGecko, b = m.isIE, e = m.isWebKit, d = m.is, h = m.ThemeManager, c = m.PluginManager, o = m.inArray, l = m.grep, g = m.explode; m.create("tinymce.Editor", { Editor: function(r, q) { var p = this; p.id = p.editorId = r; p.execCommands = {}; p.queryStateCommands = {}; p.queryValueCommands = {}; p.isNotDirty = false; p.plugins = {}; i(["onPreInit", "onBeforeRenderUI", "onPostRender", "onInit", "onRemove", "onActivate", "onDeactivate", "onClick", "onEvent", "onMouseUp", "onMouseDown", "onDblClick", "onKeyDown", "onKeyUp", "onKeyPress", "onContextMenu", "onSubmit", "onReset", "onPaste", "onPreProcess", "onPostProcess", "onBeforeSetContent", "onBeforeGetContent", "onSetContent", "onGetContent", "onLoadContent", "onSaveContent", "onNodeChange", "onChange", "onBeforeExecCommand", "onExecCommand", "onUndo", "onRedo", "onVisualAid", "onSetProgressState"], function(s) { p[s] = new k(p) }); p.settings = q = f({ id: r, language: "en", docs_language: "en", theme: "simple", skin: "default", delta_width: 0, delta_height: 0, popup_css: "", plugins: "", document_base_url: m.documentBaseURL, add_form_submit_trigger: 1, submit_patch: 1, add_unload_trigger: 1, convert_urls: 1, relative_urls: 1, remove_script_host: 1, table_inline_editing: 0, object_resizing: 1, cleanup: 1, accessibility_focus: 1, custom_shortcuts: 1, custom_undo_redo_keyboard_shortcuts: 1, custom_undo_redo_restore_selection: 1, custom_undo_redo: 1, doctype: m.isIE6 ? '' : "", visual_table_class: "mceItemTable", visual: 1, font_size_style_values: "xx-small,x-small,small,medium,large,x-large,xx-large", apply_source_formatting: 1, directionality: "ltr", forced_root_block: "p", hidden_input: 1, padd_empty_editor: 1, render_ui: 1, init_theme: 1, force_p_newlines: 1, indentation: "30px", keep_styles: 1, fix_table_elements: 1, inline_styles: 1, convert_fonts_to_spans: true, indent: "simple", indent_before: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr", indent_after: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr", validate: true, entity_encoding: "named", url_converter: p.convertURL, url_converter_scope: p, ie7_compat: true }, q); p.documentBaseURI = new m.util.URI(q.document_base_url || m.documentBaseURL, { base_uri: tinyMCE.baseURI }); p.baseURI = m.baseURI; p.contentCSS = []; p.execCallback("setup", p) }, render: function(r) { var u = this, v = u.settings, x = u.id, p = m.ScriptLoader; if (!j.domLoaded) { j.add(document, "init", function() { u.render() }); return } tinyMCE.settings = v; if (!u.getElement()) { return } if (m.isIDevice) { return } if (!/TEXTAREA|INPUT/i.test(u.getElement().nodeName) && v.hidden_input && n.getParent(x, "form")) { n.insertAfter(n.create("input", { type: "hidden", name: x }), x) } if (m.WindowManager) { u.windowManager = new m.WindowManager(u) } if (v.encoding == "xml") { u.onGetContent.add(function(s, t) { if (t.save) { t.content = n.encode(t.content) } }) } if (v.add_form_submit_trigger) { u.onSubmit.addToTop(function() { if (u.initialized) { u.save(); u.isNotDirty = 1 } }) } if (v.add_unload_trigger) { u._beforeUnload = tinyMCE.onBeforeUnload.add(function() { if (u.initialized && !u.destroyed && !u.isHidden()) { u.save({ format: "raw", no_events: true }) } }) } m.addUnload(u.destroy, u); if (v.submit_patch) { u.onBeforeRenderUI.add(function() { var s = u.getElement().form; if (!s) { return } if (s._mceOldSubmit) { return } if (!s.submit.nodeType && !s.submit.length) { u.formElement = s; s._mceOldSubmit = s.submit; s.submit = function() { m.triggerSave(); u.isNotDirty = 1; return u.formElement._mceOldSubmit(u.formElement) } } s = null }) } function q() { if (v.language && v.language_load !== false) { p.add(m.baseURL + "/langs/" + v.language + ".js") } if (v.theme && v.theme.charAt(0) != "-" && !h.urls[v.theme]) { h.load(v.theme, "themes/" + v.theme + "/editor_template" + m.suffix + ".js") } i(g(v.plugins), function(s) { if (s && s.charAt(0) != "-" && !c.urls[s]) { if (s == "safari") { return } c.load(s, "plugins/" + s + "/editor_plugin" + m.suffix + ".js") } }); p.loadQueue(function() { if (!u.removed) { u.init() } }) } q() }, init: function() { var r, F = this, G = F.settings, C, z, B = F.getElement(), q, p, D, x, A, E, y; m.add(F); G.aria_label = G.aria_label || n.getAttrib(B, "aria-label", F.getLang("aria.rich_text_area")); if (G.theme) { G.theme = G.theme.replace(/-/, ""); q = h.get(G.theme); F.theme = new q(); if (F.theme.init && G.init_theme) { F.theme.init(F, h.urls[G.theme] || m.documentBaseURL.replace(/\/$/, "")) } } i(g(G.plugins.replace(/\-/g, "")), function(H) { var I = c.get(H), t = c.urls[H] || m.documentBaseURL.replace(/\/$/, ""), s; if (I) { s = new I(F, t); F.plugins[H] = s; if (s.init) { s.init(F, t) } } }); if (G.popup_css !== false) { if (G.popup_css) { G.popup_css = F.documentBaseURI.toAbsolute(G.popup_css) } else { G.popup_css = F.baseURI.toAbsolute("themes/" + G.theme + "/skins/" + G.skin + "/dialog.css") } } if (G.popup_css_add) { G.popup_css += "," + F.documentBaseURI.toAbsolute(G.popup_css_add) } F.controlManager = new m.ControlManager(F); if (G.custom_undo_redo) { F.onBeforeExecCommand.add(function(t, H, u, I, s) { if (H != "Undo" && H != "Redo" && H != "mceRepaint" && (!s || !s.skip_undo)) { F.undoManager.beforeChange() } }); F.onExecCommand.add(function(t, H, u, I, s) { if (H != "Undo" && H != "Redo" && H != "mceRepaint" && (!s || !s.skip_undo)) { F.undoManager.add() } }) } F.onExecCommand.add(function(s, t) { if (!/^(FontName|FontSize)$/.test(t)) { F.nodeChanged() } }); if (a) { function v(s, t) { if (!t || !t.initial) { F.execCommand("mceRepaint") } } F.onUndo.add(v); F.onRedo.add(v); F.onSetContent.add(v) } F.onBeforeRenderUI.dispatch(F, F.controlManager); if (G.render_ui) { C = G.width || B.style.width || B.offsetWidth; z = G.height || B.style.height || B.offsetHeight; F.orgDisplay = B.style.display; E = /^[0-9\.]+(|px)$/i; if (E.test("" + C)) { C = Math.max(parseInt(C) + (q.deltaWidth || 0), 100) } if (E.test("" + z)) { z = Math.max(parseInt(z) + (q.deltaHeight || 0), 100) } q = F.theme.renderUI({ targetNode: B, width: C, height: z, deltaWidth: G.delta_width, deltaHeight: G.delta_height }); F.editorContainer = q.editorContainer } if (document.domain && location.hostname != document.domain) { m.relaxedDomain = document.domain } n.setStyles(q.sizeContainer || q.editorContainer, { width: C, height: z }); if (G.content_css) { m.each(g(G.content_css), function(s) { F.contentCSS.push(F.documentBaseURI.toAbsolute(s)) }) } z = (q.iframeHeight || z) + (typeof(z) == "number" ? (q.deltaHeight || 0) : ""); if (z < 100) { z = 100 } F.iframeHTML = G.doctype + ''; if (G.document_base_url != m.documentBaseURL) { F.iframeHTML += '' } if (G.ie7_compat) { F.iframeHTML += '' } else { F.iframeHTML += '' } F.iframeHTML += ''; if (!a || !/Firefox\/2/.test(navigator.userAgent)) { for (y = 0; y < F.contentCSS.length; y++) { F.iframeHTML += '' } F.contentCSS = [] } x = G.body_id || "tinymce"; if (x.indexOf("=") != -1) { x = F.getParam("body_id", "", "hash"); x = x[F.id] || x } A = G.body_class || ""; if (A.indexOf("=") != -1) { A = F.getParam("body_class", "", "hash"); A = A[F.id] || "" } F.iframeHTML += ''; if (m.relaxedDomain && (b || (m.isOpera && parseFloat(opera.version()) < 11))) { D = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.tinyMCE.get("' + F.id + '");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()' } r = n.add(q.iframeContainer, "iframe", { id: F.id + "_ifr", src: D || 'javascript:""', frameBorder: "0", title: G.aria_label, style: { width: "100%", height: z } }); F.contentAreaContainer = q.iframeContainer; n.get(q.editorContainer).style.display = F.orgDisplay; n.get(F.id).style.display = "none"; n.setAttrib(F.id, "aria-hidden", true); if (!m.relaxedDomain || !D) { F.setupIframe() } B = r = q = null }, setupIframe: function() { var r = this, x = r.settings, y = n.get(r.id), z = r.getDoc(), v, p; if (!b || !m.relaxedDomain) { z.open(); z.write(r.iframeHTML); z.close(); if (m.relaxedDomain) { z.domain = m.relaxedDomain } } if (!b) { try { if (!x.readonly) { z.designMode = "On" } } catch (q) {} } if (b) { p = r.getBody(); n.hide(p); if (!x.readonly) { p.contentEditable = true } n.show(p) } r.schema = new m.html.Schema(x); r.dom = new m.dom.DOMUtils(r.getDoc(), { keep_values: true, url_converter: r.convertURL, url_converter_scope: r, hex_colors: x.force_hex_style_colors, class_filter: x.class_filter, update_styles: 1, fix_ie_paragraphs: 1, schema: r.schema }); r.parser = new m.html.DomParser(x, r.schema); r.parser.addAttributeFilter("name", function(s, t) { var B = s.length, D, A, C, E; while (B--) { E = s[B]; if (E.name === "a" && E.firstChild) { C = E.parent; D = E.lastChild; do { A = D.prev; C.insert(D, E); D = A } while (D) } } }); r.parser.addAttributeFilter("src,href,style", function(s, t) { var A = s.length, B, D = r.dom, C; while (A--) { B = s[A]; C = B.attr(t); if (t === "style") { B.attr("data-mce-style", D.serializeStyle(D.parseStyle(C), B.name)) } else { B.attr("data-mce-" + t, r.convertURL(C, t, B.name)) } } }); r.parser.addNodeFilter("script", function(s, t) { var A = s.length; while (A--) { s[A].attr("type", "mce-text/javascript") } }); r.parser.addNodeFilter("#cdata", function(s, t) { var A = s.length, B; while (A--) { B = s[A]; B.type = 8; B.name = "#comment"; B.value = "[CDATA[" + B.value + "]]" } }); r.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div", function(t, A) { var B = t.length, C, s = r.schema.getNonEmptyElements(); while (B--) { C = t[B]; if (C.isEmpty(s)) { C.empty().append(new m.html.Node("br", 1)).shortEnded = true } } }); r.serializer = new m.dom.Serializer(x, r.dom, r.schema); r.selection = new m.dom.Selection(r.dom, r.getWin(), r.serializer); r.formatter = new m.Formatter(this); r.formatter.register({ alignleft: [{ selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li", styles: { textAlign: "left" } }, { selector: "img,table", collapsed: false, styles: { "float": "left" } }], aligncenter: [{ selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li", styles: { textAlign: "center" } }, { selector: "img", collapsed: false, styles: { display: "block", marginLeft: "auto", marginRight: "auto" } }, { selector: "table", collapsed: false, styles: { marginLeft: "auto", marginRight: "auto" } }], alignright: [{ selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li", styles: { textAlign: "right" } }, { selector: "img,table", collapsed: false, styles: { "float": "right" } }], alignfull: [{ selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li", styles: { textAlign: "justify" } }], bold: [{ inline: "strong", remove: "all" }, { inline: "span", styles: { fontWeight: "bold" } }, { inline: "b", remove: "all" }], italic: [{ inline: "em", remove: "all" }, { inline: "span", styles: { fontStyle: "italic" } }, { inline: "i", remove: "all" }], underline: [{ inline: "span", styles: { textDecoration: "underline" }, exact: true }, { inline: "u", remove: "all" }], strikethrough: [{ inline: "span", styles: { textDecoration: "line-through" }, exact: true }, { inline: "strike", remove: "all" }], forecolor: { inline: "span", styles: { color: "%value" }, wrap_links: false }, hilitecolor: { inline: "span", styles: { backgroundColor: "%value" }, wrap_links: false }, fontname: { inline: "span", styles: { fontFamily: "%value" } }, fontsize: { inline: "span", styles: { fontSize: "%value" } }, fontsize_class: { inline: "span", attributes: { "class": "%value" } }, blockquote: { block: "blockquote", wrapper: 1, remove: "all" }, subscript: { inline: "sub" }, superscript: { inline: "sup" }, removeformat: [{ selector: "b,strong,em,i,font,u,strike", remove: "all", split: true, expand: false, block_expand: true, deep: true }, { selector: "span", attributes: ["style", "class"], remove: "empty", split: true, expand: false, deep: true }, { selector: "*", attributes: ["style", "class"], split: false, expand: false, deep: true }] }); i("p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp".split(/\s/), function(s) { r.formatter.register(s, { block: s, remove: "all" }) }); r.formatter.register(r.settings.formats); r.undoManager = new m.UndoManager(r); r.undoManager.onAdd.add(function(t, s) { if (t.hasUndo()) { return r.onChange.dispatch(r, s, t) } }); r.undoManager.onUndo.add(function(t, s) { return r.onUndo.dispatch(r, s, t) }); r.undoManager.onRedo.add(function(t, s) { return r.onRedo.dispatch(r, s, t) }); r.forceBlocks = new m.ForceBlocks(r, { forced_root_block: x.forced_root_block }); r.editorCommands = new m.EditorCommands(r); r.serializer.onPreProcess.add(function(s, t) { return r.onPreProcess.dispatch(r, t, s) }); r.serializer.onPostProcess.add(function(s, t) { return r.onPostProcess.dispatch(r, t, s) }); r.onPreInit.dispatch(r); if (!x.gecko_spellcheck) { r.getBody().spellcheck = 0 } if (!x.readonly) { r._addEvents() } r.controlManager.onPostRender.dispatch(r, r.controlManager); r.onPostRender.dispatch(r); if (x.directionality) { r.getBody().dir = x.directionality } if (x.nowrap) { r.getBody().style.whiteSpace = "nowrap" } if (x.handle_node_change_callback) { r.onNodeChange.add(function(t, s, A) { r.execCallback("handle_node_change_callback", r.id, A, -1, -1, true, r.selection.isCollapsed()) }) } if (x.save_callback) { r.onSaveContent.add(function(s, A) { var t = r.execCallback("save_callback", r.id, A.content, r.getBody()); if (t) { A.content = t } }) } if (x.onchange_callback) { r.onChange.add(function(t, s) { r.execCallback("onchange_callback", r, s) }) } if (x.protect) { r.onBeforeSetContent.add(function(s, t) { if (x.protect) { i(x.protect, function(A) { t.content = t.content.replace(A, function(B) { return "" }) }) } }) } if (x.convert_newlines_to_brs) { r.onBeforeSetContent.add(function(s, t) { if (t.initial) { t.content = t.content.replace(/\r?\n/g, "
") } }) } if (x.preformatted) { r.onPostProcess.add(function(s, t) { t.content = t.content.replace(/^\s*/, ""); t.content = t.content.replace(/<\/pre>\s*$/, ""); if (t.set) { t.content = '
' + t.content + "
" } }) } if (x.verify_css_classes) { r.serializer.attribValueFilter = function(C, A) { var B, t; if (C == "class") { if (!r.classesRE) { t = r.dom.getClasses(); if (t.length > 0) { B = ""; i(t, function(s) { B += (B ? "|" : "") + s["class"] }); r.classesRE = new RegExp("(" + B + ")", "gi") } } return !r.classesRE || /(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(A) || r.classesRE.test(A) ? A : "" } return A } } if (x.cleanup_callback) { r.onBeforeSetContent.add(function(s, t) { t.content = r.execCallback("cleanup_callback", "insert_to_editor", t.content, t) }); r.onPreProcess.add(function(s, t) { if (t.set) { r.execCallback("cleanup_callback", "insert_to_editor_dom", t.node, t) } if (t.get) { r.execCallback("cleanup_callback", "get_from_editor_dom", t.node, t) } }); r.onPostProcess.add(function(s, t) { if (t.set) { t.content = r.execCallback("cleanup_callback", "insert_to_editor", t.content, t) } if (t.get) { t.content = r.execCallback("cleanup_callback", "get_from_editor", t.content, t) } }) } if (x.save_callback) { r.onGetContent.add(function(s, t) { if (t.save) { t.content = r.execCallback("save_callback", r.id, t.content, r.getBody()) } }) } if (x.handle_event_callback) { r.onEvent.add(function(s, t, A) { if (r.execCallback("handle_event_callback", t, s, A) === false) { j.cancel(t) } }) } r.onSetContent.add(function() { r.addVisual(r.getBody()) }); if (x.padd_empty_editor) { r.onPostProcess.add(function(s, t) { t.content = t.content.replace(/^(]*>( | |\s|\u00a0|)<\/p>[\r\n]*|
[\r\n]*)$/, "") }) } if (a) { function u(s, t) { i(s.dom.select("a"), function(B) { var A = B.parentNode; if (s.dom.isBlock(A) && A.lastChild === B) { s.dom.add(A, "br", { "data-mce-bogus": 1 }) } }) } r.onExecCommand.add(function(s, t) { if (t === "CreateLink") { u(s) } }); r.onSetContent.add(r.selection.onSetContent.add(u)); if (!x.readonly) { try { z.designMode = "Off"; z.designMode = "On" } catch (q) {} } } setTimeout(function() { if (r.removed) { return } r.load({ initial: true, format: "html" }); r.startContent = r.getContent({ format: "raw" }); r.undoManager.add(); r.initialized = true; r.onInit.dispatch(r); r.execCallback("setupcontent_callback", r.id, r.getBody(), r.getDoc()); r.execCallback("init_instance_callback", r); r.focus(true); r.nodeChanged({ initial: 1 }); i(r.contentCSS, function(s) { r.dom.loadCSS(s) }); if (x.auto_focus) { setTimeout(function() { var s = m.get(x.auto_focus); s.selection.select(s.getBody(), 1); s.selection.collapse(1); s.getWin().focus() }, 100) } }, 1); y = null }, focus: function(s) { var x, q = this, v = q.settings.content_editable, r, p, u = q.getDoc(); if (!s) { r = q.selection.getRng(); if (r.item) { p = r.item(0) } if (!v) { q.getWin().focus() } if (p && p.ownerDocument == u) { r = u.body.createControlRange(); r.addElement(p); r.select() } } if (m.activeEditor != q) { if ((x = m.activeEditor) != null) { x.onDeactivate.dispatch(x, q) } q.onActivate.dispatch(q, x) } m._setActive(q) }, execCallback: function(u) { var p = this, r = p.settings[u], q; if (!r) { return } if (p.callbackLookup && (q = p.callbackLookup[u])) { r = q.func; console.log(r); q = q.scope } if (d(r, "string")) { q = r.replace(/\.\w+$/, ""); q = q ? m.resolve(q) : 0; r = m.resolve(r); p.callbackLookup = p.callbackLookup || {}; p.callbackLookup[u] = { func: r, scope: q } } return r.apply(q || p, Array.prototype.slice.call(arguments, 1)) }, translate: function(p) { var r = this.settings.language || "en", q = m.i18n; if (!p) { return "" } return q[r + "." + p] || p.replace(/{\#([^}]+)\}/g, function(t, s) { return q[r + "." + s] || "{#" + s + "}" }) }, getLang: function(q, p) { return m.i18n[(this.settings.language || "en") + "." + q] || (d(p) ? p : "{#" + q + "}") }, getParam: function(u, r, p) { var s = m.trim, q = d(this.settings[u]) ? this.settings[u] : r, t; if (p === "hash") { t = {}; if (d(q, "string")) { i(q.indexOf("=") > 0 ? q.split(/[;,](?![^=;,]*(?:[;,]|$))/) : q.split(","), function(x) { x = x.split("="); if (x.length > 1) { t[s(x[0])] = s(x[1]) } else { t[s(x[0])] = s(x) } }) } else { t = q } return t } return q }, nodeChanged: function(r) { var p = this, q = p.selection, u = q.getStart() || p.getBody(); if (p.initialized) { r = r || {}; u = b && u.ownerDocument != p.getDoc() ? p.getBody() : u; r.parents = []; p.dom.getParent(u, function(s) { if (s.nodeName == "BODY") { return true } r.parents.push(s) }); p.onNodeChange.dispatch(p, r ? r.controlManager || p.controlManager : p.controlManager, u, q.isCollapsed(), r) } }, addButton: function(r, q) { var p = this; p.buttons = p.buttons || {}; p.buttons[r] = q }, addCommand: function(p, r, q) { this.execCommands[p] = { func: r, scope: q || this } }, addQueryStateHandler: function(p, r, q) { this.queryStateCommands[p] = { func: r, scope: q || this } }, addQueryValueHandler: function(p, r, q) { this.queryValueCommands[p] = { func: r, scope: q || this } }, addShortcut: function(r, u, p, s) { var q = this, v; if (!q.settings.custom_shortcuts) { return false } q.shortcuts = q.shortcuts || {}; if (d(p, "string")) { v = p; p = function() { q.execCommand(v, false, null) } } if (d(p, "object")) { v = p; p = function() { q.execCommand(v[0], v[1], v[2]) } } i(g(r), function(t) { var x = { func: p, scope: s || this, desc: u, alt: false, ctrl: false, shift: false }; i(g(t, "+"), function(y) { switch (y) { case "alt": case "ctrl": case "shift": x[y] = true; break; default: x.charCode = y.charCodeAt(0); x.keyCode = y.toUpperCase().charCodeAt(0) } }); q.shortcuts[(x.ctrl ? "ctrl" : "") + "," + (x.alt ? "alt" : "") + "," + (x.shift ? "shift" : "") + "," + x.keyCode] = x }); return true }, execCommand: function(x, v, z, p) { var r = this, u = 0, y, q; if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(x) && (!p || !p.skip_focus)) { r.focus() } y = {}; r.onBeforeExecCommand.dispatch(r, x, v, z, y); if (y.terminate) { return false } if (r.execCallback("execcommand_callback", r.id, r.selection.getNode(), x, v, z)) { r.onExecCommand.dispatch(r, x, v, z, p); return true } if (y = r.execCommands[x]) { q = y.func.call(y.scope, v, z); if (q !== true) { r.onExecCommand.dispatch(r, x, v, z, p); return q } } i(r.plugins, function(s) { if (s.execCommand && s.execCommand(x, v, z)) { r.onExecCommand.dispatch(r, x, v, z, p); u = 1; return false } }); if (u) { return true } if (r.theme && r.theme.execCommand && r.theme.execCommand(x, v, z)) { r.onExecCommand.dispatch(r, x, v, z, p); return true } if (r.editorCommands.execCommand(x, v, z)) { r.onExecCommand.dispatch(r, x, v, z, p); return true } r.getDoc().execCommand(x, v, z); r.onExecCommand.dispatch(r, x, v, z, p) }, queryCommandState: function(u) { var q = this, v, r; if (q._isHidden()) { return } if (v = q.queryStateCommands[u]) { r = v.func.call(v.scope); if (r !== true) { return r } } v = q.editorCommands.queryCommandState(u); if (v !== -1) { return v } try { return this.getDoc().queryCommandState(u) } catch (p) {} }, queryCommandValue: function(v) { var q = this, u, r; if (q._isHidden()) { return } if (u = q.queryValueCommands[v]) { r = u.func.call(u.scope); if (r !== true) { return r } } u = q.editorCommands.queryCommandValue(v); if (d(u)) { return u } try { return this.getDoc().queryCommandValue(v) } catch (p) {} }, show: function() { var p = this; n.show(p.getContainer()); n.hide(p.id); p.load() }, hide: function() { var p = this, q = p.getDoc(); if (b && q) { q.execCommand("SelectAll") } p.save(); n.hide(p.getContainer()); n.setStyle(p.id, "display", p.orgDisplay) }, isHidden: function() { return !n.isHidden(this.id) }, setProgressState: function(p, q, r) { this.onSetProgressState.dispatch(this, p, q, r); return p }, load: function(s) { var p = this, r = p.getElement(), q; if (r) { s = s || {}; s.load = true; q = p.setContent(d(r.value) ? r.value : r.innerHTML, s); s.element = r; if (!s.no_events) { p.onLoadContent.dispatch(p, s) } s.element = r = null; return q } }, save: function(u) { var p = this, s = p.getElement(), q, r; if (!s || !p.initialized) { return } u = u || {}; u.save = true; if (!u.no_events) { p.undoManager.typing = false; p.undoManager.add() } u.element = s; q = u.content = p.getContent(u); if (!u.no_events) { p.onSaveContent.dispatch(p, u) } q = u.content; if (!/TEXTAREA|INPUT/i.test(s.nodeName)) { s.innerHTML = q; if (r = n.getParent(p.id, "form")) { i(r.elements, function(t) { if (t.name == p.id) { t.value = q; return false } }) } } else { s.value = q } u.element = s = null; return q }, setContent: function(t, s) { var r = this, q, p = r.getBody(); s = s || {}; s.format = s.format || "html"; s.set = true; s.content = t; if (!s.no_events) { r.onBeforeSetContent.dispatch(r, s) } t = s.content; if (!m.isIE && (t.length === 0 || /^\s+$/.test(t))) { p.innerHTML = '
'; return } if (s.format !== "raw") { t = new m.html.Serializer({}, r.schema).serialize(r.parser.parse(t)) } s.content = m.trim(t); r.dom.setHTML(p, s.content); if (!s.no_events) { r.onSetContent.dispatch(r, s) } return s.content }, getContent: function(q) { var p = this, r; q = q || {}; q.format = q.format || "html"; q.get = true; if (!q.no_events) { p.onBeforeGetContent.dispatch(p, q) } if (q.format == "raw") { r = p.getBody().innerHTML } else { r = p.serializer.serialize(p.getBody(), q) } q.content = m.trim(r); if (!q.no_events) { p.onGetContent.dispatch(p, q) } return q.content }, isDirty: function() { var p = this; return m.trim(p.startContent) != m.trim(p.getContent({ format: "raw", no_events: 1 })) && !p.isNotDirty }, getContainer: function() { var p = this; if (!p.container) { p.container = n.get(p.editorContainer || p.id + "_parent") } return p.container }, getContentAreaContainer: function() { return this.contentAreaContainer }, getElement: function() { return n.get(this.settings.content_element || this.id) }, getWin: function() { var p = this, q; if (!p.contentWindow) { q = n.get(p.id + "_ifr"); if (q) { p.contentWindow = q.contentWindow } } return p.contentWindow }, getDoc: function() { var q = this, p; if (!q.contentDocument) { p = q.getWin(); if (p) { q.contentDocument = p.document } } return q.contentDocument }, getBody: function() { return this.bodyElement || this.getDoc().body }, convertURL: function(p, x, v) { var q = this, r = q.settings; if (r.urlconverter_callback) { return q.execCallback("urlconverter_callback", p, v, true, x) } if (!r.convert_urls || (v && v.nodeName == "LINK") || p.indexOf("file:") === 0) { return p } if (r.relative_urls) { return q.documentBaseURI.toRelative(p) } p = q.documentBaseURI.toAbsolute(p, r.remove_script_host); return p }, addVisual: function(r) { var p = this, q = p.settings; r = r || p.getBody(); if (!d(p.hasVisual)) { p.hasVisual = q.visual } i(p.dom.select("table,a", r), function(t) { var s; switch (t.nodeName) { case "TABLE": s = p.dom.getAttrib(t, "border"); if (!s || s == "0") { if (p.hasVisual) { p.dom.addClass(t, q.visual_table_class) } else { p.dom.removeClass(t, q.visual_table_class) } } return; case "A": s = p.dom.getAttrib(t, "name"); if (s) { if (p.hasVisual) { p.dom.addClass(t, "mceItemAnchor") } else { p.dom.removeClass(t, "mceItemAnchor") } } return } }); p.onVisualAid.dispatch(p, r, p.hasVisual) }, remove: function() { var p = this, q = p.getContainer(); p.removed = 1; p.hide(); p.execCallback("remove_instance_callback", p); p.onRemove.dispatch(p); p.onExecCommand.listeners = []; m.remove(p); n.remove(q) }, destroy: function(q) { var p = this; if (p.destroyed) { return } if (!q) { m.removeUnload(p.destroy); tinyMCE.onBeforeUnload.remove(p._beforeUnload); if (p.theme && p.theme.destroy) { p.theme.destroy() } p.controlManager.destroy(); p.selection.destroy(); p.dom.destroy(); if (!p.settings.content_editable) { j.clear(p.getWin()); j.clear(p.getDoc()) } j.clear(p.getBody()); j.clear(p.formElement) } if (p.formElement) { p.formElement.submit = p.formElement._mceOldSubmit; p.formElement._mceOldSubmit = null } p.contentAreaContainer = p.formElement = p.container = p.settings.content_element = p.bodyElement = p.contentDocument = p.contentWindow = null; if (p.selection) { p.selection = p.selection.win = p.selection.dom = p.selection.dom.doc = null } p.destroyed = 1 }, _addEvents: function() { var B = this, r, C = B.settings, q = B.dom, x = { mouseup: "onMouseUp", mousedown: "onMouseDown", click: "onClick", keyup: "onKeyUp", keydown: "onKeyDown", keypress: "onKeyPress", submit: "onSubmit", reset: "onReset", contextmenu: "onContextMenu", dblclick: "onDblClick", paste: "onPaste" }; function p(t, D) { var s = t.type; if (B.removed) { return } if (B.onEvent.dispatch(B, t, D) !== false) { B[x[t.fakeType || t.type]].dispatch(B, t, D) } } i(x, function(t, s) { switch (s) { case "contextmenu": q.bind(B.getDoc(), s, p); break; case "paste": q.bind(B.getBody(), s, function(D) { p(D) }); break; case "submit": case "reset": q.bind(B.getElement().form || n.getParent(B.id, "form"), s, p); break; default: q.bind(C.content_editable ? B.getBody() : B.getDoc(), s, p) } }); q.bind(C.content_editable ? B.getBody() : (a ? B.getDoc() : B.getWin()), "focus", function(s) { B.focus(true) }); if (m.isGecko) { q.bind(B.getDoc(), "DOMNodeInserted", function(t) { var s; t = t.target; if (t.nodeType === 1 && t.nodeName === "IMG" && (s = t.getAttribute("data-mce-src"))) { t.src = B.documentBaseURI.toAbsolute(s) } }) } if (a) { function u() { var E = this, G = E.getDoc(), F = E.settings; if (a && !F.readonly) { if (E._isHidden()) { try { if (!F.content_editable) { G.designMode = "On" } } catch (D) {} } try { G.execCommand("styleWithCSS", 0, false) } catch (D) { if (!E._isHidden()) { try { G.execCommand("useCSS", 0, true) } catch (D) {} } } if (!F.table_inline_editing) { try { G.execCommand("enableInlineTableEditing", false, false) } catch (D) {} } if (!F.object_resizing) { try { G.execCommand("enableObjectResizing", false, false) } catch (D) {} } } } B.onBeforeExecCommand.add(u); B.onMouseDown.add(u) } if (m.isWebKit) { B.onClick.add(function(s, t) { t = t.target; if (t.nodeName == "IMG" || (t.nodeName == "A" && q.hasClass(t, "mceItemAnchor"))) { B.selection.getSel().setBaseAndExtent(t, 0, t, 1); B.nodeChanged() } }) } B.onMouseUp.add(B.nodeChanged); B.onKeyUp.add(function(s, t) { var D = t.keyCode; if ((D >= 33 && D <= 36) || (D >= 37 && D <= 40) || D == 13 || D == 45 || D == 46 || D == 8 || (m.isMac && (D == 91 || D == 93)) || t.ctrlKey) { B.nodeChanged() } }); B.onReset.add(function() { B.setContent(B.startContent, { format: "raw" }) }); if (C.custom_shortcuts) { if (C.custom_undo_redo_keyboard_shortcuts) { B.addShortcut("ctrl+z", B.getLang("undo_desc"), "Undo"); B.addShortcut("ctrl+y", B.getLang("redo_desc"), "Redo") } B.addShortcut("ctrl+b", B.getLang("bold_desc"), "Bold"); B.addShortcut("ctrl+i", B.getLang("italic_desc"), "Italic"); B.addShortcut("ctrl+u", B.getLang("underline_desc"), "Underline"); for (r = 1; r <= 6; r++) { B.addShortcut("ctrl+" + r, "", ["FormatBlock", false, "h" + r]) } B.addShortcut("ctrl+7", "", ["FormatBlock", false, "

"]); B.addShortcut("ctrl+8", "", ["FormatBlock", false, "

"]); B.addShortcut("ctrl+9", "", ["FormatBlock", false, "
"]); function v(t) { var s = null; if (!t.altKey && !t.ctrlKey && !t.metaKey) { return s } i(B.shortcuts, function(D) { if (m.isMac && D.ctrl != t.metaKey) { return } else { if (!m.isMac && D.ctrl != t.ctrlKey) { return } } if (D.alt != t.altKey) { return } if (D.shift != t.shiftKey) { return } if (t.keyCode == D.keyCode || (t.charCode && t.charCode == D.charCode)) { s = D; return false } }); return s } B.onKeyUp.add(function(s, t) { var D = v(t); if (D) { return j.cancel(t) } }); B.onKeyPress.add(function(s, t) { var D = v(t); if (D) { return j.cancel(t) } }); B.onKeyDown.add(function(s, t) { var D = v(t); if (D) { D.func.call(D.scope); return j.cancel(t) } }) } if (m.isIE) { q.bind(B.getDoc(), "controlselect", function(D) { var t = B.resizeInfo, s; D = D.target; if (D.nodeName !== "IMG") { return } if (t) { q.unbind(t.node, t.ev, t.cb) } if (!q.hasClass(D, "mceItemNoResize")) { ev = "resizeend"; s = q.bind(D, ev, function(F) { var E; F = F.target; if (E = q.getStyle(F, "width")) { q.setAttrib(F, "width", E.replace(/[^0-9%]+/g, "")); q.setStyle(F, "width", "") } if (E = q.getStyle(F, "height")) { q.setAttrib(F, "height", E.replace(/[^0-9%]+/g, "")); q.setStyle(F, "height", "") } }) } else { ev = "resizestart"; s = q.bind(D, "resizestart", j.cancel, j) } t = B.resizeInfo = { node: D, ev: ev, cb: s } }); B.onKeyDown.add(function(s, D) { var t; switch (D.keyCode) { case 8: t = B.getDoc().selection; if (t.createRange && t.createRange().item) { s.dom.remove(t.createRange().item(0)); return j.cancel(D) } } }) } if (m.isOpera) { B.onClick.add(function(s, t) { j.prevent(t) }) } if (C.custom_undo_redo) { function y() { B.undoManager.typing = false; B.undoManager.add() } q.bind(B.getDoc(), "focusout", function(s) { if (!B.removed && B.undoManager.typing) { y() } }); B.dom.bind(B.dom.getRoot(), "dragend", function(s) { y() }); B.onKeyUp.add(function(t, F) { var s, E, D; if (b && F.keyCode == 8) { s = B.selection.getRng(); if (s.parentElement) { E = s.parentElement(); D = B.selection.getBookmark(); E.innerHTML = E.innerHTML; B.selection.moveToBookmark(D) } } if ((F.keyCode >= 33 && F.keyCode <= 36) || (F.keyCode >= 37 && F.keyCode <= 40) || F.keyCode == 13 || F.keyCode == 45 || F.ctrlKey) { y() } }); B.onKeyDown.add(function(t, H) { var s, F, E, G = H.keyCode; if (b && G == 46) { s = B.selection.getRng(); if (s.parentElement) { F = s.parentElement(); if (!B.undoManager.typing) { B.undoManager.beforeChange(); B.undoManager.typing = true; B.undoManager.add() } if (H.ctrlKey) { s.moveEnd("word", 1); s.select() } B.selection.getSel().clear(); if (s.parentElement() == F) { E = B.selection.getBookmark(); try { F.innerHTML = F.innerHTML } catch (D) {} B.selection.moveToBookmark(E) } H.preventDefault(); return } } if ((G >= 33 && G <= 36) || (G >= 37 && G <= 40) || G == 13 || G == 45) { if (m.isIE && G == 13) { B.undoManager.beforeChange() } if (B.undoManager.typing) { y() } return } if ((G < 16 || G > 20) && G != 224 && G != 91 && !B.undoManager.typing) { B.undoManager.beforeChange(); B.undoManager.add(); B.undoManager.typing = true } }); B.onMouseDown.add(function() { if (B.undoManager.typing) { y() } }) } if (m.isGecko) { function A() { var s = B.dom.getAttribs(B.selection.getStart().cloneNode(false)); return function() { var t = B.selection.getStart(); B.dom.removeAllAttribs(t); i(s, function(D) { t.setAttributeNode(D.cloneNode(true)) }) } } function z() { var t = B.selection; return !t.isCollapsed() && t.getStart() != t.getEnd() } B.onKeyPress.add(function(s, D) { var t; if ((D.keyCode == 8 || D.keyCode == 46) && z()) { t = A(); B.getDoc().execCommand("delete", false, null); t(); return j.cancel(D) } }); B.dom.bind(B.getDoc(), "cut", function(t) { var s; if (z()) { s = A(); B.onKeyUp.addToTop(j.cancel, j); setTimeout(function() { s(); B.onKeyUp.remove(j.cancel, j) }, 0) } }) } }, _isHidden: function() { var p; if (!a) { return 0 } p = this.selection.getSel(); return (!p || !p.rangeCount || p.rangeCount == 0) } }) })(tinymce); (function(c) { var d = c.each, e, a = true, b = false; c.EditorCommands = function(n) { var l = n.dom, p = n.selection, j = { state: {}, exec: {}, value: {} }, k = n.settings, o; function q(y, x, v) { var u; y = y.toLowerCase(); if (u = j.exec[y]) { u(y, x, v); return a } return b } function m(v) { var u; v = v.toLowerCase(); if (u = j.state[v]) { return u(v) } return -1 } function h(v) { var u; v = v.toLowerCase(); if (u = j.value[v]) { return u(v) } return b } function t(u, v) { v = v || "exec"; d(u, function(y, x) { d(x.toLowerCase().split(","), function(z) { j[v][z] = y }) }) } c.extend(this, { execCommand: q, queryCommandState: m, queryCommandValue: h, addCommands: t }); function f(x, v, u) { if (v === e) { v = b } if (u === e) { u = null } return n.getDoc().execCommand(x, v, u) } function s(u) { return n.formatter.match(u) } function r(u, v) { n.formatter.toggle(u, v ? { value: v } : e) } function i(u) { o = p.getBookmark(u) } function g() { p.moveToBookmark(o) } t({ "mceResetDesignMode,mceBeginUndoLevel": function() {}, "mceEndUndoLevel,mceAddUndoLevel": function() { n.undoManager.add() }, "Cut,Copy,Paste": function(y) { var x = n.getDoc(), u; try { f(y) } catch (v) { u = a } if (u || !x.queryCommandSupported(y)) { if (c.isGecko) { n.windowManager.confirm(n.getLang("clipboard_msg"), function(z) { if (z) { open("http://www.mozilla.org/editor/midasdemo/securityprefs.html", "_blank") } }) } else { n.windowManager.alert(n.getLang("clipboard_no_support")) } } }, unlink: function(u) { if (p.isCollapsed()) { p.select(p.getNode()) } f(u); p.collapse(b) }, "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull": function(u) { var v = u.substring(7); d("left,center,right,full".split(","), function(x) { if (v != x) { n.formatter.remove("align" + x) } }); r("align" + v); q("mceRepaint") }, "InsertUnorderedList,InsertOrderedList": function(x) { var u, v; f(x); u = l.getParent(p.getNode(), "ol,ul"); if (u) { v = u.parentNode; if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(v.nodeName)) { i(); l.split(v, u); g() } } }, "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function(u) { r(u) }, "ForeColor,HiliteColor,FontName": function(x, v, u) { r(x, u) }, FontSize: function(y, x, v) { var u, z; if (v >= 1 && v <= 7) { z = c.explode(k.font_size_style_values); u = c.explode(k.font_size_classes); if (u) { v = u[v - 1] || v } else { v = z[v - 1] || v } } r(y, v) }, RemoveFormat: function(u) { n.formatter.remove(u) }, mceBlockQuote: function(u) { r("blockquote") }, FormatBlock: function(x, v, u) { return r(u || "p") }, mceCleanup: function() { var u = p.getBookmark(); n.setContent(n.getContent({ cleanup: a }), { cleanup: a }); p.moveToBookmark(u) }, mceRemoveNode: function(y, x, v) { var u = v || p.getNode(); if (u != n.getBody()) { i(); n.dom.remove(u, a); g() } }, mceSelectNodeDepth: function(y, x, v) { var u = 0; l.getParent(p.getNode(), function(z) { if (z.nodeType == 1 && u++ == v) { p.select(z); return b } }, n.getBody()) }, mceSelectNode: function(x, v, u) { p.select(u) }, mceInsertContent: function(z, D, E) { var C, u, x, F, y, u, A, G, B; function v(H, J) { var I, K = new c.dom.TreeWalker(H, J); while ((I = K.current())) { if ((I.nodeType == 3 && c.trim(I.nodeValue).length) || I.nodeName == "BR" || I.nodeName == "IMG") { return I } K.prev() } } B = { content: E, format: "html" }; p.onBeforeSetContent.dispatch(p, B); E = B.content; if (E.indexOf("{$caret}") == -1) { E += "{$caret}" } p.setContent('\uFEFF', { no_events: false }); l.setOuterHTML("__mce", E.replace(/\{\$caret\}/, '\uFEFF')); C = l.select("#__mce")[0]; x = l.getRoot(); if (C.previousSibling && l.isBlock(C.previousSibling) || C.parentNode == x) { y = v(C.previousSibling, x); if (y) { if (y.nodeName == "BR") { y.parentNode.insertBefore(C, y) } else { l.insertAfter(C, y) } } } while (C) { if (C === x) { l.setOuterHTML(F, new c.html.Serializer({}, n.schema).serialize(new c.html.DomParser({ remove_trailing_brs: true }, n.schema).parse(l.getOuterHTML(F)))); break } F = C; C = C.parentNode } C = l.select("#__mce")[0]; if (C) { y = v(C.previousSibling, x); l.remove(C); if (y) { u = l.createRng(); if (y.nodeType == 3) { u.setStart(y, y.length); u.setEnd(y, y.length) } else { if (y.nodeName == "BR") { u.setStartBefore(y); u.setEndBefore(y) } else { u.setStartAfter(y); u.setEndAfter(y) } } p.setRng(u); if (!c.isIE) { y = l.create("span", null, "\u00a0"); u.insertNode(y); A = l.getRect(y); G = l.getViewPort(n.getWin()); if ((A.y > G.y + G.h || A.y < G.y) || (A.x > G.x + G.w || A.x < G.x)) { n.getBody().scrollLeft = A.x; n.getBody().scrollTop = A.y } l.remove(y) } p.collapse(true) } } p.onSetContent.dispatch(p, B); n.addVisual() }, mceInsertRawHTML: function(x, v, u) { p.setContent("tiny_mce_marker"); n.setContent(n.getContent().replace(/tiny_mce_marker/g, function() { return u })) }, mceSetContent: function(x, v, u) { n.setContent(u) }, "Indent,Outdent": function(y) { var v, u, x; v = k.indentation; u = /[a-z%]+$/i.exec(v); v = parseInt(v); if (!m("InsertUnorderedList") && !m("InsertOrderedList")) { d(p.getSelectedBlocks(), function(z) { if (y == "outdent") { x = Math.max(0, parseInt(z.style.paddingLeft || 0) - v); l.setStyle(z, "paddingLeft", x ? x + u : "") } else { l.setStyle(z, "paddingLeft", (parseInt(z.style.paddingLeft || 0) + v) + u) } }) } else { f(y) } }, mceRepaint: function() { var v; if (c.isGecko) { try { i(a); if (p.getSel()) { p.getSel().selectAllChildren(n.getBody()) } p.collapse(a); g() } catch (u) {} } }, mceToggleFormat: function(x, v, u) { n.formatter.toggle(u) }, InsertHorizontalRule: function() { n.execCommand("mceInsertContent", false, "
") }, mceToggleVisualAid: function() { n.hasVisual = !n.hasVisual; n.addVisual() }, mceReplaceContent: function(x, v, u) { n.execCommand("mceInsertContent", false, p.setContent(u.replace(/\{\$selection\}/g, p.getContent({ format: "text" })))) }, mceInsertLink: function(A, z, y) { var x = l.getParent(p.getNode(), "a"), v, u; if (c.is(y, "string")) { y = { href: y } } y.href = y.href.replace(" ", "%20"); if (!x) { if (c.isWebKit) { v = l.getParent(p.getNode(), "img"); if (v) { u = v.style.cssFloat; v.style.cssFloat = null } } f("CreateLink", b, "javascript:mctmp(0);"); if (u) { v.style.cssFloat = u } d(l.select("a[href='javascript:mctmp(0);']"), function(B) { l.setAttribs(B, y) }) } else { if (y.href) { l.setAttribs(x, y) } else { n.dom.remove(x, a) } } }, selectAll: function() { var v = l.getRoot(), u = l.createRng(); u.setStart(v, 0); u.setEnd(v, v.childNodes.length); n.selection.setRng(u) } }); t({ "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull": function(u) { return s("align" + u.substring(7)) }, "Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function(u) { return s(u) }, mceBlockQuote: function() { return s("blockquote") }, Outdent: function() { var u; if (k.inline_styles) { if ((u = l.getParent(p.getStart(), l.isBlock)) && parseInt(u.style.paddingLeft) > 0) { return a } if ((u = l.getParent(p.getEnd(), l.isBlock)) && parseInt(u.style.paddingLeft) > 0) { return a } } return m("InsertUnorderedList") || m("InsertOrderedList") || (!k.inline_styles && !! l.getParent(p.getNode(), "BLOCKQUOTE")) }, "InsertUnorderedList,InsertOrderedList": function(u) { return l.getParent(p.getNode(), u == "insertunorderedlist" ? "UL" : "OL") } }, "state"); t({ "FontSize,FontName": function(x) { var v = 0, u; if (u = l.getParent(p.getNode(), "span")) { if (x == "fontsize") { v = u.style.fontSize } else { v = u.style.fontFamily.replace(/, /g, ",").replace(/[\'\"]/g, "").toLowerCase() } } return v } }, "value"); if (k.custom_undo_redo) { t({ Undo: function() { n.undoManager.undo() }, Redo: function() { n.undoManager.redo() } }) } } })(tinymce); (function(b) { var a = b.util.Dispatcher; b.UndoManager = function(e) { var c, d = 0, g = []; function f() { return b.trim(e.getContent({ format: "raw", no_events: 1 })) } return c = { typing: false, onAdd: new a(c), onUndo: new a(c), onRedo: new a(c), beforeChange: function() { if (g[d]) { g[d].beforeBookmark = e.selection.getBookmark(2, true) } }, add: function(l) { var h, j = e.settings, k; l = l || {}; l.content = f(); k = g[d]; if (k && k.content == l.content) { return null } if (j.custom_undo_redo_levels) { if (g.length > j.custom_undo_redo_levels) { for (h = 0; h < g.length - 1; h++) { g[h] = g[h + 1] } g.length--; d = g.length } } l.bookmark = e.selection.getBookmark(2, true); if (d < g.length - 1) { g.length = d + 1 } g.push(l); d = g.length - 1; c.onAdd.dispatch(c, l); e.isNotDirty = 0; return l }, undo: function() { var j, h; if (c.typing) { c.add(); c.typing = false } if (d > 0) { j = g[--d]; e.setContent(j.content, { format: "raw" }); e.selection.moveToBookmark(j.beforeBookmark); c.onUndo.dispatch(c, j) } return j }, redo: function() { var h; if (d < g.length - 1) { h = g[++d]; e.setContent(h.content, { format: "raw" }); e.selection.moveToBookmark(h.bookmark); c.onRedo.dispatch(c, h) } return h }, clear: function() { g = []; d = 0; c.typing = false }, hasUndo: function() { return d > 0 || this.typing }, hasRedo: function() { return d < g.length - 1 && !this.typing } } } })(tinymce); (function(m) { var k = m.dom.Event, c = m.isIE, a = m.isGecko, b = m.isOpera, j = m.each, i = m.extend, d = true, h = false; function l(p) { var q, o, n; do { if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(p.nodeName)) { if (q) { o = p.cloneNode(false); o.appendChild(q); q = o } else { q = n = p.cloneNode(false) } q.removeAttribute("id") } } while (p = p.parentNode); if (q) { return { wrapper: q, inner: n } } } function g(o, p) { var n = p.ownerDocument.createRange(); n.setStart(o.endContainer, o.endOffset); n.setEndAfter(p); return n.cloneContents().textContent.length == 0 } function f(o) { o = o.innerHTML; o = o.replace(/<(img|hr|table|input|select|textarea)[ \>]/gi, "-"); o = o.replace(/<[^>]+>/g, ""); return o.replace(/[ \u00a0\t\r\n]+/g, "") == "" } function e(p, r, n) { var o, q; if (f(n)) { o = r.getParent(n, "ul,ol"); if (!r.getParent(o.parentNode, "ul,ol")) { r.split(o, n); q = r.create("p", 0, '
'); r.replace(q, n); p.select(q, 1) } return h } return d } m.create("tinymce.ForceBlocks", { ForceBlocks: function(n) { var o = this, p = n.settings, q; o.editor = n; o.dom = n.dom; q = (p.forced_root_block || "p").toLowerCase(); p.element = q.toUpperCase(); n.onPreInit.add(o.setup, o); if (p.forced_root_block) { n.onInit.add(o.forceRoots, o); n.onSetContent.add(o.forceRoots, o); n.onBeforeGetContent.add(o.forceRoots, o); n.onExecCommand.add(function(r, s) { if (s == "mceInsertContent") { o.forceRoots(); r.nodeChanged() } }) } }, setup: function() { var o = this, n = o.editor, q = n.settings, u = n.dom, p = n.selection; if (q.forced_root_block) { n.onBeforeExecCommand.add(o.forceRoots, o); n.onKeyUp.add(o.forceRoots, o); n.onPreProcess.add(o.forceRoots, o) } if (q.force_br_newlines) { if (c) { n.onKeyPress.add(function(s, t) { var v; if (t.keyCode == 13 && p.getNode().nodeName != "LI") { p.setContent('
', { format: "raw" }); v = u.get("__"); v.removeAttribute("id"); p.select(v); p.collapse(); return k.cancel(t) } }) } } if (q.force_p_newlines) { if (!c) { n.onKeyPress.add(function(s, t) { if (t.keyCode == 13 && !t.shiftKey && !o.insertPara(t)) { k.cancel(t) } }) } else { m.addUnload(function() { o._previousFormats = 0 }); n.onKeyPress.add(function(s, t) { o._previousFormats = 0; if (t.keyCode == 13 && !t.shiftKey && s.selection.isCollapsed() && q.keep_styles) { o._previousFormats = l(s.selection.getStart()) } }); n.onKeyUp.add(function(t, x) { if (x.keyCode == 13 && !x.shiftKey) { var v = t.selection.getStart(), s = o._previousFormats; if (!v.hasChildNodes() && s) { v = u.getParent(v, u.isBlock); if (v && v.nodeName != "LI") { v.innerHTML = ""; if (o._previousFormats) { v.appendChild(s.wrapper); s.inner.innerHTML = "\uFEFF" } else { v.innerHTML = "\uFEFF" } p.select(v, 1); p.collapse(true); t.getDoc().execCommand("Delete", false, null); o._previousFormats = 0 } } } }) } if (a) { n.onKeyDown.add(function(s, t) { if ((t.keyCode == 8 || t.keyCode == 46) && !t.shiftKey) { o.backspaceDelete(t, t.keyCode == 8) } }) } } if (m.isWebKit) { function r(t) { var s = p.getRng(), v, z = u.create("div", null, " "), y, x = u.getViewPort(t.getWin()).h; s.insertNode(v = u.create("br")); s.setStartAfter(v); s.setEndAfter(v); p.setRng(s); if (p.getSel().focusNode == v.previousSibling) { p.select(u.insertAfter(u.doc.createTextNode("\u00a0"), v)); p.collapse(d) } u.insertAfter(z, v); y = u.getPos(z).y; u.remove(z); if (y > x) { t.getWin().scrollTo(0, y) } } n.onKeyPress.add(function(s, t) { if (t.keyCode == 13 && (t.shiftKey || (q.force_br_newlines && !u.getParent(p.getNode(), "h1,h2,h3,h4,h5,h6,ol,ul")))) { r(s); k.cancel(t) } }) } if (c) { if (q.element != "P") { n.onKeyPress.add(function(s, t) { o.lastElm = p.getNode().nodeName }); n.onKeyUp.add(function(t, v) { var y, x = p.getNode(), s = t.getBody(); if (s.childNodes.length === 1 && x.nodeName == "P") { x = u.rename(x, q.element); p.select(x); p.collapse(); t.nodeChanged() } else { if (v.keyCode == 13 && !v.shiftKey && o.lastElm != "P") { y = u.getParent(x, "p"); if (y) { u.rename(y, q.element); t.nodeChanged() } } } }) } } }, find: function(v, q, r) { var p = this.editor, o = p.getDoc().createTreeWalker(v, 4, null, h), u = -1; while (v = o.nextNode()) { u++; if (q == 0 && v == r) { return u } if (q == 1 && u == r) { return v } } return -1 }, forceRoots: function(x, I) { var z = this, x = z.editor, M = x.getBody(), J = x.getDoc(), P = x.selection, A = P.getSel(), B = P.getRng(), N = -2, v, G, o, p, K = -16777215; var L, q, O, F, C, u = M.childNodes, E, D, y; for (E = u.length - 1; E >= 0; E--) { L = u[E]; if (L.nodeType === 1 && L.getAttribute("data-mce-type")) { q = null; continue } if (L.nodeType === 3 || (!z.dom.isBlock(L) && L.nodeType !== 8 && !/^(script|mce:script|style|mce:style)$/i.test(L.nodeName))) { if (!q) { if (L.nodeType != 3 || /[^\s]/g.test(L.nodeValue)) { if (N == -2 && B) { if (!c || B.setStart) { if (B.startContainer.nodeType == 1 && (D = B.startContainer.childNodes[B.startOffset]) && D.nodeType == 1) { y = D.getAttribute("id"); D.setAttribute("id", "__mce") } else { if (x.dom.getParent(B.startContainer, function(n) { return n === M })) { G = B.startOffset; o = B.endOffset; N = z.find(M, 0, B.startContainer); v = z.find(M, 0, B.endContainer) } } } else { if (B.item) { p = J.body.createTextRange(); p.moveToElementText(B.item(0)); B = p } p = J.body.createTextRange(); p.moveToElementText(M); p.collapse(1); O = p.move("character", K) * -1; p = B.duplicate(); p.collapse(1); F = p.move("character", K) * -1; p = B.duplicate(); p.collapse(0); C = (p.move("character", K) * -1) - F; N = F - O; v = C } } q = x.dom.create(x.settings.forced_root_block); L.parentNode.replaceChild(q, L); q.appendChild(L) } } else { if (q.hasChildNodes()) { q.insertBefore(L, q.firstChild) } else { q.appendChild(L) } } } else { q = null } } if (N != -2) { if (!c || B.setStart) { q = M.getElementsByTagName(x.settings.element)[0]; B = J.createRange(); if (N != -1) { B.setStart(z.find(M, 1, N), G) } else { B.setStart(q, 0) } if (v != -1) { B.setEnd(z.find(M, 1, v), o) } else { B.setEnd(q, 0) } if (A) { A.removeAllRanges(); A.addRange(B) } } else { try { B = A.createRange(); B.moveToElementText(M); B.collapse(1); B.moveStart("character", N); B.moveEnd("character", v); B.select() } catch (H) {} } } else { if ((!c || B.setStart) && (D = x.dom.get("__mce"))) { if (y) { D.setAttribute("id", y) } else { D.removeAttribute("id") } B = J.createRange(); B.setStartBefore(D); B.setEndBefore(D); P.setRng(B) } } }, getParentBlock: function(p) { var o = this.dom; return o.getParent(p, o.isBlock) }, insertPara: function(S) { var G = this, x = G.editor, O = x.dom, T = x.getDoc(), X = x.settings, H = x.selection.getSel(), I = H.getRangeAt(0), W = T.body; var L, M, J, Q, P, u, p, v, A, o, E, V, q, z, K, N = O.getViewPort(x.getWin()), D, F, C; x.undoManager.beforeChange(); L = T.createRange(); L.setStart(H.anchorNode, H.anchorOffset); L.collapse(d); M = T.createRange(); M.setStart(H.focusNode, H.focusOffset); M.collapse(d); J = L.compareBoundaryPoints(L.START_TO_END, M) < 0; Q = J ? H.anchorNode : H.focusNode; P = J ? H.anchorOffset : H.focusOffset; u = J ? H.focusNode : H.anchorNode; p = J ? H.focusOffset : H.anchorOffset; if (Q === u && /^(TD|TH)$/.test(Q.nodeName)) { if (Q.firstChild.nodeName == "BR") { O.remove(Q.firstChild) } if (Q.childNodes.length == 0) { x.dom.add(Q, X.element, null, "
"); V = x.dom.add(Q, X.element, null, "
") } else { K = Q.innerHTML; Q.innerHTML = ""; x.dom.add(Q, X.element, null, K); V = x.dom.add(Q, X.element, null, "
") } I = T.createRange(); I.selectNodeContents(V); I.collapse(1); x.selection.setRng(I); return h } if (Q == W && u == W && W.firstChild && x.dom.isBlock(W.firstChild)) { Q = u = Q.firstChild; P = p = 0; L = T.createRange(); L.setStart(Q, 0); M = T.createRange(); M.setStart(u, 0) } Q = Q.nodeName == "HTML" ? T.body : Q; Q = Q.nodeName == "BODY" ? Q.firstChild : Q; u = u.nodeName == "HTML" ? T.body : u; u = u.nodeName == "BODY" ? u.firstChild : u; v = G.getParentBlock(Q); A = G.getParentBlock(u); o = v ? v.nodeName : X.element; if (K = G.dom.getParent(v, "li,pre")) { if (K.nodeName == "LI") { return e(x.selection, G.dom, K) } return d } if (v && (v.nodeName == "CAPTION" || /absolute|relative|fixed/gi.test(O.getStyle(v, "position", 1)))) { o = X.element; v = null } if (A && (A.nodeName == "CAPTION" || /absolute|relative|fixed/gi.test(O.getStyle(v, "position", 1)))) { o = X.element; A = null } if (/(TD|TABLE|TH|CAPTION)/.test(o) || (v && o == "DIV" && /left|right/gi.test(O.getStyle(v, "float", 1)))) { o = X.element; v = A = null } E = (v && v.nodeName == o) ? v.cloneNode(0) : x.dom.create(o); V = (A && A.nodeName == o) ? A.cloneNode(0) : x.dom.create(o); V.removeAttribute("id"); if (/^(H[1-6])$/.test(o) && g(I, v)) { V = x.dom.create(X.element) } K = q = Q; do { if (K == W || K.nodeType == 9 || G.dom.isBlock(K) || /(TD|TABLE|TH|CAPTION)/.test(K.nodeName)) { break } q = K } while ((K = K.previousSibling ? K.previousSibling : K.parentNode)); K = z = u; do { if (K == W || K.nodeType == 9 || G.dom.isBlock(K) || /(TD|TABLE|TH|CAPTION)/.test(K.nodeName)) { break } z = K } while ((K = K.nextSibling ? K.nextSibling : K.parentNode)); if (q.nodeName == o) { L.setStart(q, 0) } else { L.setStartBefore(q) } L.setEnd(Q, P); E.appendChild(L.cloneContents() || T.createTextNode("")); try { M.setEndAfter(z) } catch (R) {} M.setStart(u, p); V.appendChild(M.cloneContents() || T.createTextNode("")); I = T.createRange(); if (!q.previousSibling && q.parentNode.nodeName == o) { I.setStartBefore(q.parentNode) } else { if (L.startContainer.nodeName == o && L.startOffset == 0) { I.setStartBefore(L.startContainer) } else { I.setStart(L.startContainer, L.startOffset) } } if (!z.nextSibling && z.parentNode.nodeName == o) { I.setEndAfter(z.parentNode) } else { I.setEnd(M.endContainer, M.endOffset) } I.deleteContents(); if (b) { x.getWin().scrollTo(0, N.y) } if (E.firstChild && E.firstChild.nodeName == o) { E.innerHTML = E.firstChild.innerHTML } if (V.firstChild && V.firstChild.nodeName == o) { V.innerHTML = V.firstChild.innerHTML } if (f(E)) { E.innerHTML = "
" } function U(y, s) { var r = [], Z, Y, t; y.innerHTML = ""; if (X.keep_styles) { Y = s; do { if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(Y.nodeName)) { Z = Y.cloneNode(h); O.setAttrib(Z, "id", ""); r.push(Z) } } while (Y = Y.parentNode) } if (r.length > 0) { for (t = r.length - 1, Z = y; t >= 0; t--) { Z = Z.appendChild(r[t]) } r[0].innerHTML = b ? "\u00a0" : "
"; return r[0] } else { y.innerHTML = b ? "\u00a0" : "
" } } if (f(V)) { C = U(V, u) } if (b && parseFloat(opera.version()) < 9.5) { I.insertNode(E); I.insertNode(V) } else { I.insertNode(V); I.insertNode(E) } V.normalize(); E.normalize(); function B(r) { return T.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, h).nextNode() || r } I = T.createRange(); I.selectNodeContents(a ? B(C || V) : C || V); I.collapse(1); H.removeAllRanges(); H.addRange(I); D = x.dom.getPos(V).y; if (D < N.y || D + 25 > N.y + N.h) { x.getWin().scrollTo(0, D < N.y ? D : D - N.h + 25) } x.undoManager.add(); return h }, backspaceDelete: function(v, C) { var D = this, u = D.editor, z = u.getBody(), s = u.dom, q, x = u.selection, p = x.getRng(), y = p.startContainer, q, A, B, o; if (!C && p.collapsed && y.nodeType == 1 && p.startOffset == y.childNodes.length) { o = new m.dom.TreeWalker(y.lastChild, y); for (q = y.lastChild; q; q = o.prev()) { if (q.nodeType == 3) { p.setStart(q, q.nodeValue.length); p.collapse(true); x.setRng(p); return } } } if (y && u.dom.isBlock(y) && !/^(TD|TH)$/.test(y.nodeName) && C) { if (y.childNodes.length == 0 || (y.childNodes.length == 1 && y.firstChild.nodeName == "BR")) { q = y; while ((q = q.previousSibling) && !u.dom.isBlock(q)) {} if (q) { if (y != z.firstChild) { A = u.dom.doc.createTreeWalker(q, NodeFilter.SHOW_TEXT, null, h); while (B = A.nextNode()) { q = B } p = u.getDoc().createRange(); p.setStart(q, q.nodeValue ? q.nodeValue.length : 0); p.setEnd(q, q.nodeValue ? q.nodeValue.length : 0); x.setRng(p); u.dom.remove(y) } return k.cancel(v) } } } } }) })(tinymce); (function(c) { var b = c.DOM, a = c.dom.Event, d = c.each, e = c.extend; c.create("tinymce.ControlManager", { ControlManager: function(f, j) { var h = this, g; j = j || {}; h.editor = f; h.controls = {}; h.onAdd = new c.util.Dispatcher(h); h.onPostRender = new c.util.Dispatcher(h); h.prefix = j.prefix || f.id + "_"; h._cls = {}; h.onPostRender.add(function() { d(h.controls, function(i) { i.postRender() }) }) }, get: function(f) { return this.controls[this.prefix + f] || this.controls[f] }, setActive: function(h, f) { var g = null; if (g = this.get(h)) { g.setActive(f) } return g }, setDisabled: function(h, f) { var g = null; if (g = this.get(h)) { g.setDisabled(f) } return g }, add: function(g) { var f = this; if (g) { f.controls[g.id] = g; f.onAdd.dispatch(g, f) } return g }, createControl: function(i) { var h, g = this, f = g.editor; d(f.plugins, function(j) { if (j.createControl) { h = j.createControl(i, g); if (h) { return false } } }); switch (i) { case "|": case "separator": return g.createSeparator() } if (!h && f.buttons && (h = f.buttons[i])) { return g.createButton(i, h) } return g.add(h) }, createDropMenu: function(f, n, h) { var m = this, i = m.editor, j, g, k, l; n = e({ "class": "mceDropDown", constrain: i.settings.constrain_menus }, n); n["class"] = n["class"] + " " + i.getParam("skin") + "Skin"; if (k = i.getParam("skin_variant")) { n["class"] += " " + i.getParam("skin") + "Skin" + k.substring(0, 1).toUpperCase() + k.substring(1) } f = m.prefix + f; l = h || m._cls.dropmenu || c.ui.DropMenu; j = m.controls[f] = new l(f, n); j.onAddItem.add(function(r, q) { var p = q.settings; p.title = i.getLang(p.title, p.title); if (!p.onclick) { p.onclick = function(o) { if (p.cmd) { i.execCommand(p.cmd, p.ui || false, p.value) } } } }); i.onRemove.add(function() { j.destroy() }); if (c.isIE) { j.onShowMenu.add(function() { i.focus(); g = i.selection.getBookmark(1) }); j.onHideMenu.add(function() { if (g) { i.selection.moveToBookmark(g); g = 0 } }) } return m.add(j) }, createListBox: function(m, i, l) { var h = this, g = h.editor, j, k, f; if (h.get(m)) { return null } i.title = g.translate(i.title); i.scope = i.scope || g; if (!i.onselect) { i.onselect = function(n) { g.execCommand(i.cmd, i.ui || false, n || i.value) } } i = e({ title: i.title, "class": "mce_" + m, scope: i.scope, control_manager: h }, i); m = h.prefix + m; if (g.settings.use_native_selects) { k = new c.ui.NativeListBox(m, i) } else { f = l || h._cls.listbox || c.ui.ListBox; k = new f(m, i, g) } h.controls[m] = k; if (c.isWebKit) { k.onPostRender.add(function(p, o) { a.add(o, "mousedown", function() { g.bookmark = g.selection.getBookmark(1) }); a.add(o, "focus", function() { g.selection.moveToBookmark(g.bookmark); g.bookmark = null }) }) } if (k.hideMenu) { g.onMouseDown.add(k.hideMenu, k) } return h.add(k) }, createButton: function(m, i, l) { var h = this, g = h.editor, j, k, f; if (h.get(m)) { return null } i.title = g.translate(i.title); i.label = g.translate(i.label); i.scope = i.scope || g; if (!i.onclick && !i.menu_button) { i.onclick = function() { g.execCommand(i.cmd, i.ui || false, i.value) } } i = e({ title: i.title, "class": "mce_" + m, unavailable_prefix: g.getLang("unavailable", ""), scope: i.scope, control_manager: h }, i); m = h.prefix + m; if (i.menu_button) { f = l || h._cls.menubutton || c.ui.MenuButton; k = new f(m, i, g); g.onMouseDown.add(k.hideMenu, k) } else { f = h._cls.button || c.ui.Button; k = new f(m, i) } return h.add(k) }, createMenuButton: function(h, f, g) { f = f || {}; f.menu_button = 1; return this.createButton(h, f, g) }, createSplitButton: function(m, i, l) { var h = this, g = h.editor, j, k, f; if (h.get(m)) { return null } i.title = g.translate(i.title); i.scope = i.scope || g; if (!i.onclick) { i.onclick = function(n) { g.execCommand(i.cmd, i.ui || false, n || i.value) } } if (!i.onselect) { i.onselect = function(n) { g.execCommand(i.cmd, i.ui || false, n || i.value) } } i = e({ title: i.title, "class": "mce_" + m, scope: i.scope, control_manager: h }, i); m = h.prefix + m; f = l || h._cls.splitbutton || c.ui.SplitButton; k = h.add(new f(m, i, g)); g.onMouseDown.add(k.hideMenu, k); return k }, createColorSplitButton: function(f, n, h) { var l = this, j = l.editor, i, k, m, g; if (l.get(f)) { return null } n.title = j.translate(n.title); n.scope = n.scope || j; if (!n.onclick) { n.onclick = function(o) { if (c.isIE) { g = j.selection.getBookmark(1) } j.execCommand(n.cmd, n.ui || false, o || n.value) } } if (!n.onselect) { n.onselect = function(o) { j.execCommand(n.cmd, n.ui || false, o || n.value) } } n = e({ title: n.title, "class": "mce_" + f, menu_class: j.getParam("skin") + "Skin", scope: n.scope, more_colors_title: j.getLang("more_colors") }, n); f = l.prefix + f; m = h || l._cls.colorsplitbutton || c.ui.ColorSplitButton; k = new m(f, n, j); j.onMouseDown.add(k.hideMenu, k); j.onRemove.add(function() { k.destroy() }); if (c.isIE) { k.onShowMenu.add(function() { j.focus(); g = j.selection.getBookmark(1) }); k.onHideMenu.add(function() { if (g) { j.selection.moveToBookmark(g); g = 0 } }) } return l.add(k) }, createToolbar: function(k, h, j) { var i, g = this, f; k = g.prefix + k; f = j || g._cls.toolbar || c.ui.Toolbar; i = new f(k, h, g.editor); if (g.get(k)) { return null } return g.add(i) }, createToolbarGroup: function(k, h, j) { var i, g = this, f; k = g.prefix + k; f = j || this._cls.toolbarGroup || c.ui.ToolbarGroup; i = new f(k, h, g.editor); if (g.get(k)) { return null } return g.add(i) }, createSeparator: function(g) { var f = g || this._cls.separator || c.ui.Separator; return new f() }, setControlType: function(g, f) { return this._cls[g.toLowerCase()] = f }, destroy: function() { d(this.controls, function(f) { f.destroy() }); this.controls = null } }) })(tinymce); (function(d) { var a = d.util.Dispatcher, e = d.each, c = d.isIE, b = d.isOpera; d.create("tinymce.WindowManager", { WindowManager: function(f) { var g = this; g.editor = f; g.onOpen = new a(g); g.onClose = new a(g); g.params = {}; g.features = {} }, open: function(z, h) { var v = this, k = "", n, m, i = v.editor.settings.dialog_type == "modal", q, o, j, g = d.DOM.getViewPort(), r; z = z || {}; h = h || {}; o = b ? g.w : screen.width; j = b ? g.h : screen.height; z.name = z.name || "mc_" + new Date().getTime(); z.width = parseInt(z.width || 320); z.height = parseInt(z.height || 240); z.resizable = true; z.left = z.left || parseInt(o / 2) - (z.width / 2); z.top = z.top || parseInt(j / 2) - (z.height / 2); h.inline = false; h.mce_width = z.width; h.mce_height = z.height; h.mce_auto_focus = z.auto_focus; if (i) { if (c) { z.center = true; z.help = false; z.dialogWidth = z.width + "px"; z.dialogHeight = z.height + "px"; z.scroll = z.scrollbars || false } } e(z, function(p, f) { if (d.is(p, "boolean")) { p = p ? "yes" : "no" } if (!/^(name|url)$/.test(f)) { if (c && i) { k += (k ? ";" : "") + f + ":" + p } else { k += (k ? "," : "") + f + "=" + p } } }); v.features = z; v.params = h; v.onOpen.dispatch(v, z, h); r = z.url || z.file; r = d._addVer(r); try { if (c && i) { q = 1; window.showModalDialog(r, window, k) } else { q = window.open(r, z.name, k) } } catch (l) {} if (!q) { alert(v.editor.getLang("popup_blocked")) } }, close: function(f) { f.close(); this.onClose.dispatch(this) }, createInstance: function(i, h, g, m, l, k) { var j = d.resolve(i); return new j(h, g, m, l, k) }, confirm: function(h, f, i, g) { g = g || window; f.call(i || this, g.confirm(this._decode(this.editor.getLang(h, h)))) }, alert: function(h, f, j, g) { var i = this; g = g || window; g.alert(i._decode(i.editor.getLang(h, h))); if (f) { f.call(j || i) } }, resizeBy: function(f, g, h) { h.resizeBy(f, g) }, _decode: function(f) { return d.DOM.decode(f).replace(/\\n/g, "\n") } }) }(tinymce)); (function(a) { a.Formatter = function(V) { var M = {}, O = a.each, c = V.dom, q = V.selection, t = a.dom.TreeWalker, K = new a.dom.RangeUtils(c), d = V.schema.isValidChild, F = c.isBlock, l = V.settings.forced_root_block, s = c.nodeIndex, E = "\uFEFF", e = /^(src|href|style)$/, S = false, B = true, p, P = { apply: [], remove: [] }; function z(W) { return W instanceof Array } function m(X, W) { return c.getParents(X, W, c.getRoot()) } function b(W) { return W.nodeType === 1 && (W.face === "mceinline" || W.style.fontFamily === "mceinline") } function R(W) { return W ? M[W] : M } function k(W, X) { if (W) { if (typeof(W) !== "string") { O(W, function(Z, Y) { k(Y, Z) }) } else { X = X.length ? X : [X]; O(X, function(Y) { if (Y.deep === p) { Y.deep = !Y.selector } if (Y.split === p) { Y.split = !Y.selector || Y.inline } if (Y.remove === p && Y.selector && !Y.inline) { Y.remove = "none" } if (Y.selector && Y.inline) { Y.mixed = true; Y.block_expand = true } if (typeof(Y.classes) === "string") { Y.classes = Y.classes.split(/\s+/) } }); M[W] = X } } } var i = function(X) { var W; V.dom.getParent(X, function(Y) { W = V.dom.getStyle(Y, "text-decoration"); return W && W !== "none" }); return W }; var I = function(W) { var X; if (W.nodeType === 1 && W.parentNode && W.parentNode.nodeType === 1) { X = i(W.parentNode); if (V.dom.getStyle(W, "color") && X) { V.dom.setStyle(W, "text-decoration", X) } else { if (V.dom.getStyle(W, "textdecoration") === X) { V.dom.setStyle(W, "text-decoration", null) } } } }; function T(Y, af, aa) { var ab = R(Y), ag = ab[0], ae, X, ad, ac = q.isCollapsed(); function Z(ak) { var aj = ak.startContainer, an = ak.startOffset, am, al; if (aj.nodeType == 1 || aj.nodeValue === "") { aj = aj.nodeType == 1 ? aj.childNodes[an] : aj; if (aj) { am = new t(aj, aj.parentNode); for (al = am.current(); al; al = am.next()) { if (al.nodeType == 3 && !f(al)) { ak.setStart(al, 0); break } } } } return ak } function W(ak, aj) { aj = aj || ag; if (ak) { O(aj.styles, function(am, al) { c.setStyle(ak, al, r(am, af)) }); O(aj.attributes, function(am, al) { c.setAttrib(ak, al, r(am, af)) }); O(aj.classes, function(al) { al = r(al, af); if (!c.hasClass(ak, al)) { c.addClass(ak, al) } }) } } function ah(ak) { var aj = [], am, al; am = ag.inline || ag.block; al = c.create(am); W(al); K.walk(ak, function(an) { var ao; function ap(aq) { var au = aq.nodeName.toLowerCase(), at = aq.parentNode.nodeName.toLowerCase(), ar; if (g(au, "br")) { ao = 0; if (ag.block) { c.remove(aq) } return } if (ag.wrapper && x(aq, Y, af)) { ao = 0; return } if (ag.block && !ag.wrapper && G(au)) { aq = c.rename(aq, am); W(aq); aj.push(aq); ao = 0; return } if (ag.selector) { O(ab, function(av) { if ("collapsed" in av && av.collapsed !== ac) { return } if (c.is(aq, av.selector) && !b(aq)) { W(aq, av); ar = true } }); if (!ag.inline || ar) { ao = 0; return } } if (d(am, au) && d(at, am) && !(aq.nodeType === 3 && aq.nodeValue.length === 1 && aq.nodeValue.charCodeAt(0) === 65279)) { if (!ao) { ao = al.cloneNode(S); aq.parentNode.insertBefore(ao, aq); aj.push(ao) } ao.appendChild(aq) } else { ao = 0; O(a.grep(aq.childNodes), ap); ao = 0 } } O(an, ap) }); if (ag.wrap_links === false) { O(aj, function(an) { function ao(at) { var ar, aq, ap; if (at.nodeName === "A") { aq = al.cloneNode(S); aj.push(aq); ap = a.grep(at.childNodes); for (ar = 0; ar < ap.length; ar++) { aq.appendChild(ap[ar]) } at.appendChild(aq) } O(a.grep(at.childNodes), ao) } ao(an) }) } O(aj, function(ap) { var an; function aq(at) { var ar = 0; O(at.childNodes, function(au) { if (!f(au) && !H(au)) { ar++ } }); return ar } function ao(ar) { var au, at; O(ar.childNodes, function(av) { if (av.nodeType == 1 && !H(av) && !b(av)) { au = av; return S } }); if (au && h(au, ag)) { at = au.cloneNode(S); W(at); c.replace(at, ar, B); c.remove(au, 1) } return at || ar } an = aq(ap); if ((aj.length > 1 || !F(ap)) && an === 0) { c.remove(ap, 1); return } if (ag.inline || ag.wrapper) { if (!ag.exact && an === 1) { ap = ao(ap) } O(ab, function(ar) { O(c.select(ar.inline, ap), function(au) { var at; if (ar.wrap_links === false) { at = au.parentNode; do { if (at.nodeName === "A") { return } } while (at = at.parentNode) } U(ar, af, au, ar.exact ? au : null) }) }); if (x(ap.parentNode, Y, af)) { c.remove(ap, 1); ap = 0; return B } if (ag.merge_with_parents) { c.getParent(ap.parentNode, function(ar) { if (x(ar, Y, af)) { c.remove(ap, 1); ap = 0; return B } }) } if (ap) { ap = u(C(ap), ap); ap = u(ap, C(ap, B)) } } }) } if (ag) { if (aa) { X = c.createRng(); X.setStartBefore(aa); X.setEndAfter(aa); ah(o(X, ab)) } else { if (!ac || !ag.inline || c.select("td.mceSelected,th.mceSelected").length) { var ai = V.selection.getNode(); ae = q.getBookmark(); ah(o(q.getRng(B), ab)); if (ag.styles && (ag.styles.color || ag.styles.textDecoration)) { a.walk(ai, I, "childNodes"); I(ai) } q.moveToBookmark(ae); q.setRng(Z(q.getRng(B))); V.nodeChanged() } else { Q("apply", Y, af) } } } } function A(Y, ah, ab) { var ac = R(Y), aj = ac[0], ag, af, X; function aa(am) { var al = am.startContainer, ar = am.startOffset, aq, ap, an, ao; if (al.nodeType == 3 && ar >= al.nodeValue.length - 1) { al = al.parentNode; ar = s(al) + 1 } if (al.nodeType == 1) { an = al.childNodes; al = an[Math.min(ar, an.length - 1)]; aq = new t(al); if (ar > an.length - 1) { aq.next() } for (ap = aq.current(); ap; ap = aq.next()) { if (ap.nodeType == 3 && !f(ap)) { ao = c.create("a", null, E); ap.parentNode.insertBefore(ao, ap); am.setStart(ap, 0); q.setRng(am); c.remove(ao); return } } } } function Z(ao) { var an, am, al; an = a.grep(ao.childNodes); for (am = 0, al = ac.length; am < al; am++) { if (U(ac[am], ah, ao, ao)) { break } } if (aj.deep) { for (am = 0, al = an.length; am < al; am++) { Z(an[am]) } } } function ad(al) { var am; O(m(al.parentNode).reverse(), function(an) { var ao; if (!am && an.id != "_start" && an.id != "_end") { ao = x(an, Y, ah); if (ao && ao.split !== false) { am = an } } }); return am } function W(ao, al, aq, au) { var av, at, ar, an, ap, am; if (ao) { am = ao.parentNode; for (av = al.parentNode; av && av != am; av = av.parentNode) { at = av.cloneNode(S); for (ap = 0; ap < ac.length; ap++) { if (U(ac[ap], ah, at, at)) { at = 0; break } } if (at) { if (ar) { at.appendChild(ar) } if (!an) { an = at } ar = at } } if (au && (!aj.mixed || !F(ao))) { al = c.split(ao, al) } if (ar) { aq.parentNode.insertBefore(ar, aq); an.appendChild(aq) } } return al } function ai(al) { return W(ad(al), al, al, true) } function ae(an) { var am = c.get(an ? "_start" : "_end"), al = am[an ? "firstChild" : "lastChild"]; if (H(al)) { al = al[an ? "firstChild" : "lastChild"] } c.remove(am, true); return al } function ak(al) { var am, an; al = o(al, ac, B); if (aj.split) { am = J(al, B); an = J(al); if (am != an) { am = N(am, "span", { id: "_start", "data-mce-type": "bookmark" }); an = N(an, "span", { id: "_end", "data-mce-type": "bookmark" }); ai(am); ai(an); am = ae(B); an = ae() } else { am = an = ai(am) } al.startContainer = am.parentNode; al.startOffset = s(am); al.endContainer = an.parentNode; al.endOffset = s(an) + 1 } K.walk(al, function(ao) { O(ao, function(ap) { Z(ap); if (ap.nodeType === 1 && V.dom.getStyle(ap, "text-decoration") === "underline" && ap.parentNode && i(ap.parentNode) === "underline") { U({ deep: false, exact: true, inline: "span", styles: { textDecoration: "underline" } }, null, ap) } }) }) } if (ab) { X = c.createRng(); X.setStartBefore(ab); X.setEndAfter(ab); ak(X); return } if (!q.isCollapsed() || !aj.inline || c.select("td.mceSelected,th.mceSelected").length) { ag = q.getBookmark(); ak(q.getRng(B)); q.moveToBookmark(ag); if (j(Y, ah, q.getStart())) { aa(q.getRng(true)) } V.nodeChanged() } else { Q("remove", Y, ah) } } function D(X, Z, Y) { var W = R(X); if (j(X, Z, Y) && (!("toggle" in W[0]) || W[0]["toggle"])) { A(X, Z, Y) } else { T(X, Z, Y) } } function x(X, W, ac, aa) { var Y = R(W), ad, ab, Z; function ae(ai, ak, al) { var ah, aj, af = ak[al], ag; if (af) { if (af.length === p) { for (ah in af) { if (af.hasOwnProperty(ah)) { if (al === "attributes") { aj = c.getAttrib(ai, ah) } else { aj = L(ai, ah) } if (aa && !aj && !ak.exact) { return } if ((!aa || ak.exact) && !g(aj, r(af[ah], ac))) { return } } } } else { for (ag = 0; ag < af.length; ag++) { if (al === "attributes" ? c.getAttrib(ai, af[ag]) : L(ai, af[ag])) { return ak } } } } return ak } if (Y && X) { for (ab = 0; ab < Y.length; ab++) { ad = Y[ab]; if (h(X, ad) && ae(X, ad, "attributes") && ae(X, ad, "styles")) { if (Z = ad.classes) { for (ab = 0; ab < Z.length; ab++) { if (!c.hasClass(X, Z[ab])) { return } } } return ad } } } } function j(Y, ab, aa) { var X, Z; function W(ac) { ac = c.getParent(ac, function(ad) { return !!x(ad, Y, ab, true) }); return x(ac, Y, ab) } if (aa) { return W(aa) } if (q.isCollapsed()) { for (Z = P.apply.length - 1; Z >= 0; Z--) { if (P.apply[Z].name == Y) { return true } } for (Z = P.remove.length - 1; Z >= 0; Z--) { if (P.remove[Z].name == Y) { return false } } return W(q.getNode()) } aa = q.getNode(); if (W(aa)) { return B } X = q.getStart(); if (X != aa) { if (W(X)) { return B } } return S } function v(ad, ac) { var aa, ab = [], Z = {}, Y, X, W; if (q.isCollapsed()) { for (X = 0; X < ad.length; X++) { for (Y = P.remove.length - 1; Y >= 0; Y--) { W = ad[X]; if (P.remove[Y].name == W) { Z[W] = true; break } } } for (Y = P.apply.length - 1; Y >= 0; Y--) { for (X = 0; X < ad.length; X++) { W = ad[X]; if (!Z[W] && P.apply[Y].name == W) { Z[W] = true; ab.push(W) } } } } aa = q.getStart(); c.getParent(aa, function(ag) { var af, ae; for (af = 0; af < ad.length; af++) { ae = ad[af]; if (!Z[ae] && x(ag, ae, ac)) { Z[ae] = true; ab.push(ae) } } }); return ab } function y(aa) { var ac = R(aa), Z, Y, ab, X, W; if (ac) { Z = q.getStart(); Y = m(Z); for (X = ac.length - 1; X >= 0; X--) { W = ac[X].selector; if (!W) { return B } for (ab = Y.length - 1; ab >= 0; ab--) { if (c.is(Y[ab], W)) { return B } } } } return S } a.extend(this, { get: R, register: k, apply: T, remove: A, toggle: D, match: j, matchAll: v, matchNode: x, canApply: y }); function h(W, X) { if (g(W, X.inline)) { return B } if (g(W, X.block)) { return B } if (X.selector) { return c.is(W, X.selector) } } function g(X, W) { X = X || ""; W = W || ""; X = "" + (X.nodeName || X); W = "" + (W.nodeName || W); return X.toLowerCase() == W.toLowerCase() } function L(X, W) { var Y = c.getStyle(X, W); if (W == "color" || W == "backgroundColor") { Y = c.toHex(Y) } if (W == "fontWeight" && Y == 700) { Y = "bold" } return "" + Y } function r(W, X) { if (typeof(W) != "string") { W = W(X) } else { if (X) { W = W.replace(/%(\w+)/g, function(Z, Y) { return X[Y] || Z }) } } return W } function f(W) { return W && W.nodeType === 3 && /^([\s\r\n]+|)$/.test(W.nodeValue) } function N(Y, X, W) { var Z = c.create(X, W); Y.parentNode.insertBefore(Z, Y); Z.appendChild(Y); return Z } function o(W, ag, Z) { var Y = W.startContainer, ad = W.startOffset, aj = W.endContainer, ae = W.endOffset, ai, af, ac; function ah(am, an, ak, al) { var ao, ap; al = al || c.getRoot(); for (;;) { ao = am.parentNode; if (ao == al || (!ag[0].block_expand && F(ao))) { return am } for (ai = ao[an]; ai && ai != am; ai = ai[ak]) { if (ai.nodeType == 1 && !H(ai)) { return am } if (ai.nodeType == 3 && !f(ai)) { return am } } am = am.parentNode } return am } function ab(ak, al) { if (al === p) { al = ak.nodeType === 3 ? ak.length : ak.childNodes.length } while (ak && ak.hasChildNodes()) { ak = ak.childNodes[al]; if (ak) { al = ak.nodeType === 3 ? ak.length : ak.childNodes.length } } return { node: ak, offset: al } } if (Y.nodeType == 1 && Y.hasChildNodes()) { af = Y.childNodes.length - 1; Y = Y.childNodes[ad > af ? af : ad]; if (Y.nodeType == 3) { ad = 0 } } if (aj.nodeType == 1 && aj.hasChildNodes()) { af = aj.childNodes.length - 1; aj = aj.childNodes[ae > af ? af : ae - 1]; if (aj.nodeType == 3) { ae = aj.nodeValue.length } } if (H(Y.parentNode)) { Y = Y.parentNode } if (H(Y)) { Y = Y.nextSibling || Y } if (H(aj.parentNode)) { ae = c.nodeIndex(aj); aj = aj.parentNode } if (H(aj) && aj.previousSibling) { aj = aj.previousSibling; ae = aj.length } if (ag[0].inline) { ac = ab(aj, ae); if (ac.node) { while (ac.node && ac.offset === 0 && ac.node.previousSibling) { ac = ab(ac.node.previousSibling) } if (ac.node && ac.offset > 0 && ac.node.nodeType === 3 && ac.node.nodeValue.charAt(ac.offset - 1) === " ") { if (ac.offset > 1) { aj = ac.node; aj.splitText(ac.offset - 1) } else { if (ac.node.previousSibling) { aj = ac.node.previousSibling } } } } } if (ag[0].inline || ag[0].block_expand) { Y = ah(Y, "firstChild", "nextSibling"); aj = ah(aj, "lastChild", "previousSibling") } if (ag[0].selector && ag[0].expand !== S && !ag[0].inline) { function aa(al, ak) { var am, an, ap, ao; if (al.nodeType == 3 && al.nodeValue.length == 0 && al[ak]) { al = al[ak] } am = m(al); for (an = 0; an < am.length; an++) { for (ap = 0; ap < ag.length; ap++) { ao = ag[ap]; if ("collapsed" in ao && ao.collapsed !== W.collapsed) { continue } if (c.is(am[an], ao.selector)) { return am[an] } } } return al } Y = aa(Y, "previousSibling"); aj = aa(aj, "nextSibling") } if (ag[0].block || ag[0].selector) { function X(al, ak, an) { var am; if (!ag[0].wrapper) { am = c.getParent(al, ag[0].block) } if (!am) { am = c.getParent(al.nodeType == 3 ? al.parentNode : al, F) } if (am && ag[0].wrapper) { am = m(am, "ul,ol").reverse()[0] || am } if (!am) { am = al; while (am[ak] && !F(am[ak])) { am = am[ak]; if (g(am, "br")) { break } } } return am || al } Y = X(Y, "previousSibling"); aj = X(aj, "nextSibling"); if (ag[0].block) { if (!F(Y)) { Y = ah(Y, "firstChild", "nextSibling") } if (!F(aj)) { aj = ah(aj, "lastChild", "previousSibling") } } } if (Y.nodeType == 1) { ad = s(Y); Y = Y.parentNode } if (aj.nodeType == 1) { ae = s(aj) + 1; aj = aj.parentNode } return { startContainer: Y, startOffset: ad, endContainer: aj, endOffset: ae } } function U(ac, ab, Z, W) { var Y, X, aa; if (!h(Z, ac)) { return S } if (ac.remove != "all") { O(ac.styles, function(ae, ad) { ae = r(ae, ab); if (typeof(ad) === "number") { ad = ae; W = 0 } if (!W || g(L(W, ad), ae)) { c.setStyle(Z, ad, "") } aa = 1 }); if (aa && c.getAttrib(Z, "style") == "") { Z.removeAttribute("style"); Z.removeAttribute("data-mce-style") } O(ac.attributes, function(af, ad) { var ae; af = r(af, ab); if (typeof(ad) === "number") { ad = af; W = 0 } if (!W || g(c.getAttrib(W, ad), af)) { if (ad == "class") { af = c.getAttrib(Z, ad); if (af) { ae = ""; O(af.split(/\s+/), function(ag) { if (/mce\w+/.test(ag)) { ae += (ae ? " " : "") + ag } }); if (ae) { c.setAttrib(Z, ad, ae); return } } } if (ad == "class") { Z.removeAttribute("className") } if (e.test(ad)) { Z.removeAttribute("data-mce-" + ad) } Z.removeAttribute(ad) } }); O(ac.classes, function(ad) { ad = r(ad, ab); if (!W || c.hasClass(W, ad)) { c.removeClass(Z, ad) } }); X = c.getAttribs(Z); for (Y = 0; Y < X.length; Y++) { if (X[Y].nodeName.indexOf("_") !== 0) { return S } } } if (ac.remove != "none") { n(Z, ac); return B } } function n(Y, Z) { var W = Y.parentNode, X; if (Z.block) { if (!l) { function aa(ac, ab, ad) { ac = C(ac, ab, ad); return !ac || (ac.nodeName == "BR" || F(ac)) } if (F(Y) && !F(W)) { if (!aa(Y, S) && !aa(Y.firstChild, B, 1)) { Y.insertBefore(c.create("br"), Y.firstChild) } if (!aa(Y, B) && !aa(Y.lastChild, S, 1)) { Y.appendChild(c.create("br")) } } } else { if (W == c.getRoot()) { if (!Z.list_block || !g(Y, Z.list_block)) { O(a.grep(Y.childNodes), function(ab) { if (d(l, ab.nodeName.toLowerCase())) { if (!X) { X = N(ab, l) } else { X.appendChild(ab) } } else { X = 0 } }) } } } } if (Z.selector && Z.inline && !g(Z.inline, Y)) { return } c.remove(Y, 1) } function C(X, W, Y) { if (X) { W = W ? "nextSibling" : "previousSibling"; for (X = Y ? X : X[W]; X; X = X[W]) { if (X.nodeType == 1 || !f(X)) { return X } } } } function H(W) { return W && W.nodeType == 1 && W.getAttribute("data-mce-type") == "bookmark" } function u(aa, Z) { var W, Y, X; function ac(af, ae) { if (af.nodeName != ae.nodeName) { return S } function ad(ah) { var ai = {}; O(c.getAttribs(ah), function(aj) { var ak = aj.nodeName.toLowerCase(); if (ak.indexOf("_") !== 0 && ak !== "style") { ai[ak] = c.getAttrib(ah, ak) } }); return ai } function ag(ak, aj) { var ai, ah; for (ah in ak) { if (ak.hasOwnProperty(ah)) { ai = aj[ah]; if (ai === p) { return S } if (ak[ah] != ai) { return S } delete aj[ah] } } for (ah in aj) { if (aj.hasOwnProperty(ah)) { return S } } return B } if (!ag(ad(af), ad(ae))) { return S } if (!ag(c.parseStyle(c.getAttrib(af, "style")), c.parseStyle(c.getAttrib(ae, "style")))) { return S } return B } if (aa && Z) { function ab(ae, ad) { for (Y = ae; Y; Y = Y[ad]) { if (Y.nodeType == 3 && Y.nodeValue.length !== 0) { return ae } if (Y.nodeType == 1 && !H(Y)) { return Y } } return ae } aa = ab(aa, "previousSibling"); Z = ab(Z, "nextSibling"); if (ac(aa, Z)) { for (Y = aa.nextSibling; Y && Y != Z;) { X = Y; Y = Y.nextSibling; aa.appendChild(X) } c.remove(Z); O(a.grep(Z.childNodes), function(ad) { aa.appendChild(ad) }); return aa } } return Z } function G(W) { return /^(h[1-6]|p|div|pre|address|dl|dt|dd)$/.test(W) } function J(X, aa) { var W, Z, Y; W = X[aa ? "startContainer" : "endContainer"]; Z = X[aa ? "startOffset" : "endOffset"]; if (W.nodeType == 1) { Y = W.childNodes.length - 1; if (!aa && Z) { Z-- } W = W.childNodes[Z > Y ? Y : Z] } return W } function Q(ab, X, aa) { var Y, W = P[ab], ac = P[ab == "apply" ? "remove" : "apply"]; function ad() { return P.apply.length || P.remove.length } function Z() { P.apply = []; P.remove = [] } function ae(af) { O(P.apply.reverse(), function(ag) { T(ag.name, ag.vars, af); if (ag.name === "forecolor" && ag.vars.value) { I(af.parentNode) } }); O(P.remove.reverse(), function(ag) { A(ag.name, ag.vars, af) }); c.remove(af, 1); Z() } for (Y = W.length - 1; Y >= 0; Y--) { if (W[Y].name == X) { return } } W.push({ name: X, vars: aa }); for (Y = ac.length - 1; Y >= 0; Y--) { if (ac[Y].name == X) { ac.splice(Y, 1) } } if (ad()) { V.getDoc().execCommand("FontName", false, "mceinline"); P.lastRng = q.getRng(); O(c.select("font,span"), function(ag) { var af; if (b(ag)) { af = q.getBookmark(); ae(ag); q.moveToBookmark(af); V.nodeChanged() } }); if (!P.isListening && ad()) { P.isListening = true; O("onKeyDown,onKeyUp,onKeyPress,onMouseUp".split(","), function(af) { V[af].addToTop(function(ag, ah) { if (ad() && !a.dom.RangeUtils.compareRanges(P.lastRng, q.getRng())) { O(c.select("font,span"), function(aj) { var ak, ai; if (b(aj)) { ak = aj.firstChild; if (ak) { ae(aj); ai = c.createRng(); ai.setStart(ak, ak.nodeValue.length); ai.setEnd(ak, ak.nodeValue.length); q.setRng(ai); ag.nodeChanged() } else { c.remove(aj) } } }); if (ah.type == "keyup" || ah.type == "mouseup") { Z() } } }) }) } } } } })(tinymce); tinymce.onAddEditor.add(function(e, a) { var d, h, g, c = a.settings; if (c.inline_styles) { h = e.explode(c.font_size_style_values); function b(j, i) { e.each(i, function(l, k) { if (l) { g.setStyle(j, k, l) } }); g.rename(j, "span") } d = { font: function(j, i) { b(i, { backgroundColor: i.style.backgroundColor, color: i.color, fontFamily: i.face, fontSize: h[parseInt(i.size) - 1] }) }, u: function(j, i) { b(i, { textDecoration: "underline" }) }, strike: function(j, i) { b(i, { textDecoration: "line-through" }) } }; function f(i, j) { g = i.dom; if (c.convert_fonts_to_spans) { e.each(g.select("font,u,strike", j.node), function(k) { d[k.nodeName.toLowerCase()](a.dom, k) }) } } a.onPreProcess.add(f); a.onSetContent.add(f); a.onInit.add(function() { a.selection.onSetContent.add(f) }) } });