/* Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or http://ckeditor.com/license */ (function() { if (!window.CKEDITOR || !window.CKEDITOR.dom) window.CKEDITOR || (window.CKEDITOR = function() { var a = /(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i, e = { timestamp: "F0RF", version: "4.4.7 (Standard)", revision: "3a35b3d", rnd: Math.floor(900 * Math.random()) + 100, _: { pending: [], basePathSrcPattern: a }, status: "unloaded", basePath: function() { var c = window.CKEDITOR_BASEPATH || ""; if (!c) for (var d = document.getElementsByTagName("script"), b = 0; b < d.length; b++) { var f = d[b].src.match(a); if (f) { c = f[1]; break } } - 1 == c.indexOf(":/") && "//" != c.slice(0, 2) && (c = 0 === c.indexOf("/") ? location.href.match(/^.*?:\/\/[^\/]*/)[0] + c : location.href.match(/^[^\?]*\/(?:)/)[0] + c); if (!c) throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.'; return c }(), getUrl: function(a) { -1 == a.indexOf(":/") && 0 !== a.indexOf("/") && (a = this.basePath + a); this.timestamp && ("/" != a.charAt(a.length - 1) && !/[&?]t=/.test(a)) && (a += (0 <= a.indexOf("?") ? "&" : "?") + "t=" + this.timestamp); return a }, domReady: function() { function a() { try { document.addEventListener ? (document.removeEventListener("DOMContentLoaded", a, !1), d()) : document.attachEvent && "complete" === document.readyState && (document.detachEvent("onreadystatechange", a), d()) } catch (b) {} } function d() { for (var a; a = b.shift();) a() } var b = []; return function(d) { function g() { try { document.documentElement.doScroll("left") } catch (k) { setTimeout(g, 1); return } a() } b.push(d); "complete" === document.readyState && setTimeout(a, 1); if (1 == b.length) if (document.addEventListener) document.addEventListener("DOMContentLoaded", a, !1), window.addEventListener("load", a, !1); else if (document.attachEvent) { document.attachEvent("onreadystatechange", a); window.attachEvent("onload", a); d = !1; try { d = !window.frameElement } catch (e) {} document.documentElement.doScroll && d && g() } } }() }, b = window.CKEDITOR_GETURL; if (b) { var g = e.getUrl; e.getUrl = function(a) { return b.call(e, a) || g.call(e, a) } } return e }()), CKEDITOR.event || (CKEDITOR.event = function() {}, CKEDITOR.event.implementOn = function(a) { var e = CKEDITOR.event.prototype, b; for (b in e) a[b] == null && (a[b] = e[b]) }, CKEDITOR.event.prototype = function() { function a(a) { var c = e(this); return c[a] || (c[a] = new b(a)) } var e = function(a) { a = a.getPrivate && a.getPrivate() || a._ || (a._ = {}); return a.events || (a.events = {}) }, b = function(a) { this.name = a; this.listeners = [] }; b.prototype = { getListenerIndex: function(a) { for (var c = 0, d = this.listeners; c < d.length; c++) if (d[c].fn == a) return c; return -1 } }; return { define: function(b, c) { var d = a.call(this, b); CKEDITOR.tools.extend(d, c, true) }, on: function(b, c, d, j, f) { function h(a, k, f, h) { a = { name: b, sender: this, editor: a, data: k, listenerData: j, stop: f, cancel: h, removeListener: e }; return c.call(d, a) === false ? false : a.data } function e() { n.removeListener(b, c) } var k = a.call(this, b); if (k.getListenerIndex(c) < 0) { k = k.listeners; d || (d = this); isNaN(f) && (f = 10); var n = this; h.fn = c; h.priority = f; for (var o = k.length - 1; o >= 0; o--) if (k[o].priority <= f) { k.splice(o + 1, 0, h); return { removeListener: e } } k.unshift(h) } return { removeListener: e } }, once: function() { var a = Array.prototype.slice.call(arguments), c = a[1]; a[1] = function(a) { a.removeListener(); return c.apply(this, arguments) }; return this.on.apply(this, a) }, capture: function() { CKEDITOR.event.useCapture = 1; var a = this.on.apply(this, arguments); CKEDITOR.event.useCapture = 0; return a }, fire: function() { var a = 0, c = function() { a = 1 }, d = 0, b = function() { d = 1 }; return function(f, h, i) { var k = e(this)[f], f = a, n = d; a = d = 0; if (k) { var o = k.listeners; if (o.length) for (var o = o.slice(0), q, m = 0; m < o.length; m++) { if (k.errorProof) try { q = o[m].call(this, i, h, c, b) } catch (l) {} else q = o[m].call(this, i, h, c, b); q === false ? d = 1 : typeof q != "undefined" && (h = q); if (a || d) break } } h = d ? false : typeof h == "undefined" ? true : h; a = f; d = n; return h } }(), fireOnce: function(a, c, d) { c = this.fire(a, c, d); delete e(this)[a]; return c }, removeListener: function(a, c) { var d = e(this)[a]; if (d) { var b = d.getListenerIndex(c); b >= 0 && d.listeners.splice(b, 1) } }, removeAllListeners: function() { var a = e(this), c; for (c in a) delete a[c] }, hasListeners: function(a) { return (a = e(this)[a]) && a.listeners.length > 0 } } }()), CKEDITOR.editor || (CKEDITOR.editor = function() { CKEDITOR._.pending.push([this, arguments]); CKEDITOR.event.call(this) }, CKEDITOR.editor.prototype.fire = function(a, e) { a in { instanceReady: 1, loaded: 1 } && (this[a] = true); return CKEDITOR.event.prototype.fire.call(this, a, e, this) }, CKEDITOR.editor.prototype.fireOnce = function(a, e) { a in { instanceReady: 1, loaded: 1 } && (this[a] = true); return CKEDITOR.event.prototype.fireOnce.call(this, a, e, this) }, CKEDITOR.event.implementOn(CKEDITOR.editor.prototype)), CKEDITOR.env || (CKEDITOR.env = function() { var a = navigator.userAgent.toLowerCase(), e = { ie: a.indexOf("trident/") > -1, webkit: a.indexOf(" applewebkit/") > -1, air: a.indexOf(" adobeair/") > -1, mac: a.indexOf("macintosh") > -1, quirks: document.compatMode == "BackCompat" && (!document.documentMode || document.documentMode < 10), mobile: a.indexOf("mobile") > -1, iOS: /(ipad|iphone|ipod)/.test(a), isCustomDomain: function() { if (!this.ie) return false; var a = document.domain, d = window.location.hostname; return a != d && a != "[" + d + "]" }, secure: location.protocol == "https:" }; e.gecko = navigator.product == "Gecko" && !e.webkit && !e.ie; if (e.webkit) a.indexOf("chrome") > -1 ? e.chrome = true : e.safari = true; var b = 0; if (e.ie) { b = e.quirks || !document.documentMode ? parseFloat(a.match(/msie (\d+)/)[1]) : document.documentMode; e.ie9Compat = b == 9; e.ie8Compat = b == 8; e.ie7Compat = b == 7; e.ie6Compat = b < 7 || e.quirks } if (e.gecko) { var g = a.match(/rv:([\d\.]+)/); if (g) { g = g[1].split("."); b = g[0] * 1E4 + (g[1] || 0) * 100 + (g[2] || 0) * 1 } } e.air && (b = parseFloat(a.match(/ adobeair\/(\d+)/)[1])); e.webkit && (b = parseFloat(a.match(/ applewebkit\/(\d+)/)[1])); e.version = b; e.isCompatible = e.iOS && b >= 534 || !e.mobile && (e.ie && b > 6 || e.gecko && b >= 2E4 || e.air && b >= 1 || e.webkit && b >= 522 || false); e.hidpi = window.devicePixelRatio >= 2; e.needsBrFiller = e.gecko || e.webkit || e.ie && b > 10; e.needsNbspFiller = e.ie && b < 11; e.cssClass = "cke_browser_" + (e.ie ? "ie" : e.gecko ? "gecko" : e.webkit ? "webkit" : "unknown"); if (e.quirks) e.cssClass = e.cssClass + " cke_browser_quirks"; if (e.ie) e.cssClass = e.cssClass + (" cke_browser_ie" + (e.quirks ? "6 cke_browser_iequirks" : e.version)); if (e.air) e.cssClass = e.cssClass + " cke_browser_air"; if (e.iOS) e.cssClass = e.cssClass + " cke_browser_ios"; if (e.hidpi) e.cssClass = e.cssClass + " cke_hidpi"; return e }()), "unloaded" == CKEDITOR.status && function() { CKEDITOR.event.implementOn(CKEDITOR); CKEDITOR.loadFullCore = function() { if (CKEDITOR.status != "basic_ready") CKEDITOR.loadFullCore._load = 1; else { delete CKEDITOR.loadFullCore; var a = document.createElement("script"); a.type = "text/javascript"; a.src = CKEDITOR.basePath + "ckeditor.js"; document.getElementsByTagName("head")[0].appendChild(a) } }; CKEDITOR.loadFullCoreTimeout = 0; CKEDITOR.add = function(a) { (this._.pending || (this._.pending = [])).push(a) }; (function() { CKEDITOR.domReady(function() { var a = CKEDITOR.loadFullCore, e = CKEDITOR.loadFullCoreTimeout; if (a) { CKEDITOR.status = "basic_ready"; a && a._load ? a() : e && setTimeout(function() { CKEDITOR.loadFullCore && CKEDITOR.loadFullCore() }, e * 1E3) } }) })(); CKEDITOR.status = "basic_loaded" }(), CKEDITOR.dom = {}, function() { var a = [], e = CKEDITOR.env.gecko ? "-moz-" : CKEDITOR.env.webkit ? "-webkit-" : CKEDITOR.env.ie ? "-ms-" : "", b = /&/g, g = />/g, c = /" + c + "") : d.push(''); return d.join("") }, htmlEncode: function(a) { return ("" + a).replace(b, "&").replace(g, ">").replace(c, "<") }, htmlDecode: function(a) { return a.replace(j, "&").replace(f, ">").replace(h, "<") }, htmlEncodeAttr: function(a) { return a.replace(d, """).replace(c, "<").replace(g, ">") }, htmlDecodeAttr: function(a) { return a.replace(i, '"').replace(h, "<").replace(f, ">") }, getNextNumber: function() { var a = 0; return function() { return ++a } }(), getNextId: function() { return "cke_" + this.getNextNumber() }, override: function(a, c) { var d = c(a); d.prototype = a.prototype; return d }, setTimeout: function(a, c, d, b, f) { f || (f = window); d || (d = f); return f.setTimeout(function() { b ? a.apply(d, [].concat(b)) : a.apply(d) }, c || 0) }, trim: function() { var a = /(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g; return function(c) { return c.replace(a, "") } }(), ltrim: function() { var a = /^[ \t\n\r]+/g; return function(c) { return c.replace(a, "") } }(), rtrim: function() { var a = /[ \t\n\r]+$/g; return function(c) { return c.replace(a, "") } }(), indexOf: function(a, c) { if (typeof c == "function") for (var d = 0, b = a.length; d < b; d++) { if (c(a[d])) return d } else { if (a.indexOf) return a.indexOf(c); d = 0; for (b = a.length; d < b; d++) if (a[d] === c) return d } return -1 }, search: function(a, c) { var d = CKEDITOR.tools.indexOf(a, c); return d >= 0 ? a[d] : null }, bind: function(a, c) { return function() { return a.apply(c, arguments) } }, createClass: function(a) { var c = a.$, d = a.base, b = a.privates || a._, f = a.proto, a = a.statics; !c && (c = function() { d && this.base.apply(this, arguments) }); if (b) var g = c, c = function() { var a = this._ || (this._ = {}), c; for (c in b) { var d = b[c]; a[c] = typeof d == "function" ? CKEDITOR.tools.bind(d, this) : d } g.apply(this, arguments) }; if (d) { c.prototype = this.prototypedCopy(d.prototype); c.prototype.constructor = c; c.base = d; c.baseProto = d.prototype; c.prototype.base = function() { this.base = d.prototype.base; d.apply(this, arguments); this.base = arguments.callee } } f && this.extend(c.prototype, f, true); a && this.extend(c, a, true); return c }, addFunction: function(c, d) { return a.push(function() { return c.apply(d || this, arguments) }) - 1 }, removeFunction: function(c) { a[c] = null }, callFunction: function(c) { var d = a[c]; return d && d.apply(window, Array.prototype.slice.call(arguments, 1)) }, cssLength: function() { var a = /^-?\d+\.?\d*px$/, c; return function(d) { c = CKEDITOR.tools.trim(d + "") + "px"; return a.test(c) ? c : d || "" } }(), convertToPx: function() { var a; return function(c) { if (!a) { a = CKEDITOR.dom.element.createFromHtml('
', CKEDITOR.document); CKEDITOR.document.getBody().append(a) } if (!/%$/.test(c)) { a.setStyle("width", c); return a.$.clientWidth } return c } }(), repeat: function(a, c) { return Array(c + 1).join(a) }, tryThese: function() { for (var a, c = 0, d = arguments.length; c < d; c++) { var b = arguments[c]; try { a = b(); break } catch (f) {} } return a }, genKey: function() { return Array.prototype.slice.call(arguments).join("-") }, defer: function(a) { return function() { var c = arguments, d = this; window.setTimeout(function() { a.apply(d, c) }, 0) } }, normalizeCssText: function(a, c) { var d = [], b, f = CKEDITOR.tools.parseCssText(a, true, c); for (b in f) d.push(b + ":" + f[b]); d.sort(); return d.length ? d.join(";") + ";" : "" }, convertRgbToHex: function(a) { return a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi, function(a, c, d, b) { a = [c, d, b]; for (c = 0; c < 3; c++) a[c] = ("0" + parseInt(a[c], 10).toString(16)).slice(-2); return "#" + a.join("") }) }, parseCssText: function(a, c, d) { var b = {}; if (d) { d = new CKEDITOR.dom.element("span"); d.setAttribute("style", a); a = CKEDITOR.tools.convertRgbToHex(d.getAttribute("style") || "") } if (!a || a == ";") return b; a.replace(/"/g, '"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function(a, d, f) { if (c) { d = d.toLowerCase(); d == "font-family" && (f = f.toLowerCase().replace(/["']/g, "").replace(/\s*,\s*/g, ",")); f = CKEDITOR.tools.trim(f) } b[d] = f }); return b }, writeCssText: function(a, c) { var d, b = []; for (d in a) b.push(d + ":" + a[d]); c && b.sort(); return b.join("; ") }, objectCompare: function(a, c, d) { var b; if (!a && !c) return true; if (!a || !c) return false; for (b in a) if (a[b] != c[b]) return false; if (!d) for (b in c) if (a[b] != c[b]) return false; return true }, objectKeys: function(a) { var c = [], d; for (d in a) c.push(d); return c }, convertArrayToObject: function(a, c) { var d = {}; arguments.length == 1 && (c = true); for (var b = 0, f = a.length; b < f; ++b) d[a[b]] = c; return d }, fixDomain: function() { for (var a;;) try { a = window.parent.document.domain; break } catch (c) { a = a ? a.replace(/.+?(?:\.|$)/, "") : document.domain; if (!a) break; document.domain = a } return !!a }, eventsBuffer: function(a, c) { function d() { f = (new Date).getTime(); b = false; c() } var b, f = 0; return { input: function() { if (!b) { var c = (new Date).getTime() - f; c < a ? b = setTimeout(d, a - c) : d() } }, reset: function() { b && clearTimeout(b); b = f = 0 } } }, enableHtml5Elements: function(a, c) { for (var d = ["abbr", "article", "aside", "audio", "bdi", "canvas", "data", "datalist", "details", "figcaption", "figure", "footer", "header", "hgroup", "mark", "meter", "nav", "output", "progress", "section", "summary", "time", "video"], b = d.length, f; b--;) { f = a.createElement(d[b]); c && a.appendChild(f) } }, checkIfAnyArrayItemMatches: function(a, c) { for (var d = 0, b = a.length; d < b; ++d) if (a[d].match(c)) return true; return false }, checkIfAnyObjectPropertyMatches: function(a, c) { for (var d in a) if (d.match(c)) return true; return false }, transparentImageData: "data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" } }(), CKEDITOR.dtd = function() { var a = CKEDITOR.tools.extend, e = function(a, c) { for (var d = CKEDITOR.tools.clone(a), b = 1; b < arguments.length; b++) { var c = arguments[b], f; for (f in c) delete d[f] } return d }, b = {}, g = {}, c = { address: 1, article: 1, aside: 1, blockquote: 1, details: 1, div: 1, dl: 1, fieldset: 1, figure: 1, footer: 1, form: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, header: 1, hgroup: 1, hr: 1, main: 1, menu: 1, nav: 1, ol: 1, p: 1, pre: 1, section: 1, table: 1, ul: 1 }, d = { command: 1, link: 1, meta: 1, noscript: 1, script: 1, style: 1 }, j = {}, f = { "#": 1 }, h = { center: 1, dir: 1, noframes: 1 }; a(b, { a: 1, abbr: 1, area: 1, audio: 1, b: 1, bdi: 1, bdo: 1, br: 1, button: 1, canvas: 1, cite: 1, code: 1, command: 1, datalist: 1, del: 1, dfn: 1, em: 1, embed: 1, i: 1, iframe: 1, img: 1, input: 1, ins: 1, kbd: 1, keygen: 1, label: 1, map: 1, mark: 1, meter: 1, noscript: 1, object: 1, output: 1, progress: 1, q: 1, ruby: 1, s: 1, samp: 1, script: 1, select: 1, small: 1, span: 1, strong: 1, sub: 1, sup: 1, textarea: 1, time: 1, u: 1, "var": 1, video: 1, wbr: 1 }, f, { acronym: 1, applet: 1, basefont: 1, big: 1, font: 1, isindex: 1, strike: 1, style: 1, tt: 1 }); a(g, c, b, h); e = { a: e(b, { a: 1, button: 1 }), abbr: b, address: g, area: j, article: g, aside: g, audio: a({ source: 1, track: 1 }, g), b: b, base: j, bdi: b, bdo: b, blockquote: g, body: g, br: j, button: e(b, { a: 1, button: 1 }), canvas: b, caption: g, cite: b, code: b, col: j, colgroup: { col: 1 }, command: j, datalist: a({ option: 1 }, b), dd: g, del: b, details: a({ summary: 1 }, g), dfn: b, div: g, dl: { dt: 1, dd: 1 }, dt: g, em: b, embed: j, fieldset: a({ legend: 1 }, g), figcaption: g, figure: a({ figcaption: 1 }, g), footer: g, form: g, h1: b, h2: b, h3: b, h4: b, h5: b, h6: b, head: a({ title: 1, base: 1 }, d), header: g, hgroup: { h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1 }, hr: j, html: a({ head: 1, body: 1 }, g, d), i: b, iframe: f, img: j, input: j, ins: b, kbd: b, keygen: j, label: b, legend: b, li: g, link: j, main: g, map: g, mark: b, menu: a({ li: 1 }, g), meta: j, meter: e(b, { meter: 1 }), nav: g, noscript: a({ link: 1, meta: 1, style: 1 }, b), object: a({ param: 1 }, b), ol: { li: 1 }, optgroup: { option: 1 }, option: f, output: b, p: b, param: j, pre: b, progress: e(b, { progress: 1 }), q: b, rp: b, rt: b, ruby: a({ rp: 1, rt: 1 }, b), s: b, samp: b, script: f, section: g, select: { optgroup: 1, option: 1 }, small: b, source: j, span: b, strong: b, style: f, sub: b, summary: b, sup: b, table: { caption: 1, colgroup: 1, thead: 1, tfoot: 1, tbody: 1, tr: 1 }, tbody: { tr: 1 }, td: g, textarea: f, tfoot: { tr: 1 }, th: g, thead: { tr: 1 }, time: e(b, { time: 1 }), title: f, tr: { th: 1, td: 1 }, track: j, u: b, ul: { li: 1 }, "var": b, video: a({ source: 1, track: 1 }, g), wbr: j, acronym: b, applet: a({ param: 1 }, g), basefont: j, big: b, center: g, dialog: j, dir: { li: 1 }, font: b, isindex: j, noframes: g, strike: b, tt: b }; a(e, { $block: a({ audio: 1, dd: 1, dt: 1, figcaption: 1, li: 1, video: 1 }, c, h), $blockLimit: { article: 1, aside: 1, audio: 1, body: 1, caption: 1, details: 1, dir: 1, div: 1, dl: 1, fieldset: 1, figcaption: 1, figure: 1, footer: 1, form: 1, header: 1, hgroup: 1, main: 1, menu: 1, nav: 1, ol: 1, section: 1, table: 1, td: 1, th: 1, tr: 1, ul: 1, video: 1 ,img:1}, $cdata: { script: 1, style: 1 }, $editable: { address: 1, article: 1, aside: 1, blockquote: 1, body: 1, details: 1, div: 1, fieldset: 1, figcaption: 1, footer: 1, form: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, header: 1, hgroup: 1, main: 1, nav: 1, p: 1, pre: 1, section: 1,img:1 }, $empty: { area: 1, base: 1, basefont: 1, br: 1, col: 1, command: 1, dialog: 1, embed: 1, hr: 1, img: 1, input: 1, isindex: 1, keygen: 1, link: 1, meta: 1, param: 1, source: 1, track: 1, wbr: 1 }, $inline: b, $list: { dl: 1, ol: 1, ul: 1 }, $listItem: { dd: 1, dt: 1, li: 1 }, $nonBodyContent: a({ body: 1, head: 1, html: 1 }, e.head), $nonEditable: { applet: 1, audio: 1, button: 1, embed: 1, iframe: 1, map: 1, object: 1, option: 1, param: 1, script: 1, textarea: 1, video: 1 }, $object: { applet: 1, audio: 1, button: 1, hr: 1, iframe: 1, img: 1, input: 1, object: 1, select: 1, table: 1, textarea: 1, video: 1 }, $removeEmpty: { abbr: 1, acronym: 1, b: 1, bdi: 1, bdo: 1, big: 1, cite: 1, code: 1, del: 1, dfn: 1, em: 1, font: 1, i: 1, ins: 1, label: 1, kbd: 1, mark: 1, meter: 1, output: 1, q: 1, ruby: 1, s: 1, samp: 1, small: 1, span: 1, strike: 1, strong: 1, sub: 1, sup: 1, time: 1, tt: 1, u: 1, "var": 1 }, $tabIndex: { a: 1, area: 1, button: 1, input: 1, object: 1, select: 1, textarea: 1 }, $tableContent: { caption: 1, col: 1, colgroup: 1, tbody: 1, td: 1, tfoot: 1, th: 1, thead: 1, tr: 1 }, $transparent: { a: 1, audio: 1, canvas: 1, del: 1, ins: 1, map: 1, noscript: 1, object: 1, video: 1 }, $intermediate: { caption: 1, colgroup: 1, dd: 1, dt: 1, figcaption: 1, legend: 1, li: 1, optgroup: 1, option: 1, rp: 1, rt: 1, summary: 1, tbody: 1, td: 1, tfoot: 1, th: 1, thead: 1, tr: 1 } }); return e }(), CKEDITOR.dom.event = function(a) { this.$ = a }, CKEDITOR.dom.event.prototype = { getKey: function() { return this.$.keyCode || this.$.which }, getKeystroke: function() { var a = this.getKey(); if (this.$.ctrlKey || this.$.metaKey) a = a + CKEDITOR.CTRL; this.$.shiftKey && (a = a + CKEDITOR.SHIFT); this.$.altKey && (a = a + CKEDITOR.ALT); return a }, preventDefault: function(a) { var e = this.$; e.preventDefault ? e.preventDefault() : e.returnValue = false; a && this.stopPropagation() }, stopPropagation: function() { var a = this.$; a.stopPropagation ? a.stopPropagation() : a.cancelBubble = true }, getTarget: function() { var a = this.$.target || this.$.srcElement; return a ? new CKEDITOR.dom.node(a) : null }, getPhase: function() { return this.$.eventPhase || 2 }, getPageOffset: function() { var a = this.getTarget().getDocument().$; return { x: this.$.pageX || this.$.clientX + (a.documentElement.scrollLeft || a.body.scrollLeft), y: this.$.pageY || this.$.clientY + (a.documentElement.scrollTop || a.body.scrollTop) } } }, CKEDITOR.CTRL = 1114112, CKEDITOR.SHIFT = 2228224, CKEDITOR.ALT = 4456448, CKEDITOR.EVENT_PHASE_CAPTURING = 1, CKEDITOR.EVENT_PHASE_AT_TARGET = 2, CKEDITOR.EVENT_PHASE_BUBBLING = 3, CKEDITOR.dom.domObject = function(a) { if (a) this.$ = a }, CKEDITOR.dom.domObject.prototype = function() { var a = function(a, b) { return function(g) { typeof CKEDITOR != "undefined" && a.fire(b, new CKEDITOR.dom.event(g)) } }; return { getPrivate: function() { var a; if (!(a = this.getCustomData("_"))) this.setCustomData("_", a = {}); return a }, on: function(e) { var b = this.getCustomData("_cke_nativeListeners"); if (!b) { b = {}; this.setCustomData("_cke_nativeListeners", b) } if (!b[e]) { b = b[e] = a(this, e); this.$.addEventListener ? this.$.addEventListener(e, b, !!CKEDITOR.event.useCapture) : this.$.attachEvent && this.$.attachEvent("on" + e, b) } return CKEDITOR.event.prototype.on.apply(this, arguments) }, removeListener: function(a) { CKEDITOR.event.prototype.removeListener.apply(this, arguments); if (!this.hasListeners(a)) { var b = this.getCustomData("_cke_nativeListeners"), g = b && b[a]; if (g) { this.$.removeEventListener ? this.$.removeEventListener(a, g, false) : this.$.detachEvent && this.$.detachEvent("on" + a, g); delete b[a] } } }, removeAllListeners: function() { var a = this.getCustomData("_cke_nativeListeners"), b; for (b in a) { var g = a[b]; this.$.detachEvent ? this.$.detachEvent("on" + b, g) : this.$.removeEventListener && this.$.removeEventListener(b, g, false); delete a[b] } CKEDITOR.event.prototype.removeAllListeners.call(this) } } }(), function(a) { var e = {}; CKEDITOR.on("reset", function() { e = {} }); a.equals = function(a) { try { return a && a.$ === this.$ } catch (g) { return false } }; a.setCustomData = function(a, g) { var c = this.getUniqueId(); (e[c] || (e[c] = {}))[a] = g; return this }; a.getCustomData = function(a) { var g = this.$["data-cke-expando"]; return (g = g && e[g]) && a in g ? g[a] : null }; a.removeCustomData = function(a) { var g = this.$["data-cke-expando"], g = g && e[g], c, d; if (g) { c = g[a]; d = a in g; delete g[a] } return d ? c : null }; a.clearCustomData = function() { this.removeAllListeners(); var a = this.$["data-cke-expando"]; a && delete e[a] }; a.getUniqueId = function() { return this.$["data-cke-expando"] || (this.$["data-cke-expando"] = CKEDITOR.tools.getNextNumber()) }; CKEDITOR.event.implementOn(a) }(CKEDITOR.dom.domObject.prototype), CKEDITOR.dom.node = function(a) { return a ? new CKEDITOR.dom[a.nodeType == CKEDITOR.NODE_DOCUMENT ? "document" : a.nodeType == CKEDITOR.NODE_ELEMENT ? "element" : a.nodeType == CKEDITOR.NODE_TEXT ? "text" : a.nodeType == CKEDITOR.NODE_COMMENT ? "comment" : a.nodeType == CKEDITOR.NODE_DOCUMENT_FRAGMENT ? "documentFragment" : "domObject"](a) : this }, CKEDITOR.dom.node.prototype = new CKEDITOR.dom.domObject, CKEDITOR.NODE_ELEMENT = 1, CKEDITOR.NODE_DOCUMENT = 9, CKEDITOR.NODE_TEXT = 3, CKEDITOR.NODE_COMMENT = 8, CKEDITOR.NODE_DOCUMENT_FRAGMENT = 11, CKEDITOR.POSITION_IDENTICAL = 0, CKEDITOR.POSITION_DISCONNECTED = 1, CKEDITOR.POSITION_FOLLOWING = 2, CKEDITOR.POSITION_PRECEDING = 4, CKEDITOR.POSITION_IS_CONTAINED = 8, CKEDITOR.POSITION_CONTAINS = 16, CKEDITOR.tools.extend(CKEDITOR.dom.node.prototype, { appendTo: function(a, e) { a.append(this, e); return a }, clone: function(a, e) { var b = this.$.cloneNode(a), g = function(c) { c["data-cke-expando"] && (c["data-cke-expando"] = false); if (c.nodeType == CKEDITOR.NODE_ELEMENT) { e || c.removeAttribute("id", false); if (a) for (var c = c.childNodes, d = 0; d < c.length; d++) g(c[d]) } }; g(b); return new CKEDITOR.dom.node(b) }, hasPrevious: function() { return !!this.$.previousSibling }, hasNext: function() { return !!this.$.nextSibling }, insertAfter: function(a) { a.$.parentNode.insertBefore(this.$, a.$.nextSibling); return a }, insertBefore: function(a) { a.$.parentNode.insertBefore(this.$, a.$); return a }, insertBeforeMe: function(a) { this.$.parentNode.insertBefore(a.$, this.$); return a }, getAddress: function(a) { for (var e = [], b = this.getDocument().$.documentElement, g = this.$; g && g != b;) { var c = g.parentNode; c && e.unshift(this.getIndex.call({ $: g }, a)); g = c } return e }, getDocument: function() { return new CKEDITOR.dom.document(this.$.ownerDocument || this.$.parentNode.ownerDocument) }, getIndex: function(a) { function e(a, c) { var b = c ? a.nextSibling : a.previousSibling; return !b || b.nodeType != CKEDITOR.NODE_TEXT ? null : b.nodeValue ? b : e(b, c) } var b = this.$, g = -1, c; if (!this.$.parentNode || a && b.nodeType == CKEDITOR.NODE_TEXT && !b.nodeValue && !e(b) && !e(b, true)) return -1; do if (!a || !(b != this.$ && b.nodeType == CKEDITOR.NODE_TEXT && (c || !b.nodeValue))) { g++; c = b.nodeType == CKEDITOR.NODE_TEXT } while (b = b.previousSibling); return g }, getNextSourceNode: function(a, e, b) { if (b && !b.call) var g = b, b = function(a) { return !a.equals(g) }; var a = !a && this.getFirst && this.getFirst(), c; if (!a) { if (this.type == CKEDITOR.NODE_ELEMENT && b && b(this, true) === false) return null; a = this.getNext() } for (; !a && (c = (c || this).getParent());) { if (b && b(c, true) === false) return null; a = c.getNext() } return !a || b && b(a) === false ? null : e && e != a.type ? a.getNextSourceNode(false, e, b) : a }, getPreviousSourceNode: function(a, e, b) { if (b && !b.call) var g = b, b = function(a) { return !a.equals(g) }; var a = !a && this.getLast && this.getLast(), c; if (!a) { if (this.type == CKEDITOR.NODE_ELEMENT && b && b(this, true) === false) return null; a = this.getPrevious() } for (; !a && (c = (c || this).getParent());) { if (b && b(c, true) === false) return null; a = c.getPrevious() } return !a || b && b(a) === false ? null : e && a.type != e ? a.getPreviousSourceNode(false, e, b) : a }, getPrevious: function(a) { var e = this.$, b; do b = (e = e.previousSibling) && e.nodeType != 10 && new CKEDITOR.dom.node(e); while (b && a && !a(b)); return b }, getNext: function(a) { var e = this.$, b; do b = (e = e.nextSibling) && new CKEDITOR.dom.node(e); while (b && a && !a(b)); return b }, getParent: function(a) { var e = this.$.parentNode; return e && (e.nodeType == CKEDITOR.NODE_ELEMENT || a && e.nodeType == CKEDITOR.NODE_DOCUMENT_FRAGMENT) ? new CKEDITOR.dom.node(e) : null }, getParents: function(a) { var e = this, b = []; do b[a ? "push" : "unshift"](e); while (e = e.getParent()); return b }, getCommonAncestor: function(a) { if (a.equals(this)) return this; if (a.contains && a.contains(this)) return a; var e = this.contains ? this : this.getParent(); do if (e.contains(a)) return e; while (e = e.getParent()); return null }, getPosition: function(a) { var e = this.$, b = a.$; if (e.compareDocumentPosition) return e.compareDocumentPosition(b); if (e == b) return CKEDITOR.POSITION_IDENTICAL; if (this.type == CKEDITOR.NODE_ELEMENT && a.type == CKEDITOR.NODE_ELEMENT) { if (e.contains) { if (e.contains(b)) return CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING; if (b.contains(e)) return CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING } if ("sourceIndex" in e) return e.sourceIndex < 0 || b.sourceIndex < 0 ? CKEDITOR.POSITION_DISCONNECTED : e.sourceIndex < b.sourceIndex ? CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING } for (var e = this.getAddress(), a = a.getAddress(), b = Math.min(e.length, a.length), g = 0; g <= b - 1; g++) if (e[g] != a[g]) { if (g < b) return e[g] < a[g] ? CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING; break } return e.length < a.length ? CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING }, getAscendant: function(a, e) { var b = this.$, g, c; if (!e) b = b.parentNode; if (typeof a == "function") { c = true; g = a } else { c = false; g = function(c) { c = typeof c.nodeName == "string" ? c.nodeName.toLowerCase() : ""; return typeof a == "string" ? c == a : c in a } } for (; b;) { if (g(c ? new CKEDITOR.dom.node(b) : b)) return new CKEDITOR.dom.node(b); try { b = b.parentNode } catch (d) { b = null } } return null }, hasAscendant: function(a, e) { var b = this.$; if (!e) b = b.parentNode; for (; b;) { if (b.nodeName && b.nodeName.toLowerCase() == a) return true; b = b.parentNode } return false }, move: function(a, e) { a.append(this.remove(), e) }, remove: function(a) { var e = this.$, b = e.parentNode; if (b) { if (a) for (; a = e.firstChild;) b.insertBefore(e.removeChild(a), e); b.removeChild(e) } return this }, replace: function(a) { this.insertBefore(a); a.remove() }, trim: function() { this.ltrim(); this.rtrim() }, ltrim: function() { for (var a; this.getFirst && (a = this.getFirst());) { if (a.type == CKEDITOR.NODE_TEXT) { var e = CKEDITOR.tools.ltrim(a.getText()), b = a.getLength(); if (e) { if (e.length < b) { a.split(b - e.length); this.$.removeChild(this.$.firstChild) } } else { a.remove(); continue } } break } }, rtrim: function() { for (var a; this.getLast && (a = this.getLast());) { if (a.type == CKEDITOR.NODE_TEXT) { var e = CKEDITOR.tools.rtrim(a.getText()), b = a.getLength(); if (e) { if (e.length < b) { a.split(e.length); this.$.lastChild.parentNode.removeChild(this.$.lastChild) } } else { a.remove(); continue } } break } if (CKEDITOR.env.needsBrFiller)(a = this.$.lastChild) && (a.type == 1 && a.nodeName.toLowerCase() == "br") && a.parentNode.removeChild(a) }, isReadOnly: function() { var a = this; this.type != CKEDITOR.NODE_ELEMENT && (a = this.getParent()); if (a && typeof a.$.isContentEditable != "undefined") return !(a.$.isContentEditable || a.data("cke-editable")); for (; a;) { if (a.data("cke-editable")) break; if (a.getAttribute("contentEditable") == "false") return true; if (a.getAttribute("contentEditable") == "true") break; a = a.getParent() } return !a } }), CKEDITOR.dom.window = function(a) { CKEDITOR.dom.domObject.call(this, a) }, CKEDITOR.dom.window.prototype = new CKEDITOR.dom.domObject, CKEDITOR.tools.extend(CKEDITOR.dom.window.prototype, { focus: function() { this.$.focus() }, getViewPaneSize: function() { var a = this.$.document, e = a.compatMode == "CSS1Compat"; return { width: (e ? a.documentElement.clientWidth : a.body.clientWidth) || 0, height: (e ? a.documentElement.clientHeight : a.body.clientHeight) || 0 } }, getScrollPosition: function() { var a = this.$; if ("pageXOffset" in a) return { x: a.pageXOffset || 0, y: a.pageYOffset || 0 }; a = a.document; return { x: a.documentElement.scrollLeft || a.body.scrollLeft || 0, y: a.documentElement.scrollTop || a.body.scrollTop || 0 } }, getFrame: function() { var a = this.$.frameElement; return a ? new CKEDITOR.dom.element.get(a) : null } }), CKEDITOR.dom.document = function(a) { CKEDITOR.dom.domObject.call(this, a) }, CKEDITOR.dom.document.prototype = new CKEDITOR.dom.domObject, CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype, { type: CKEDITOR.NODE_DOCUMENT, appendStyleSheet: function(a) { if (this.$.createStyleSheet) this.$.createStyleSheet(a); else { var e = new CKEDITOR.dom.element("link"); e.setAttributes({ rel: "stylesheet", type: "text/css", href: a }); this.getHead().append(e) } }, appendStyleText: function(a) { if (this.$.createStyleSheet) { var e = this.$.createStyleSheet(""); e.cssText = a } else { var b = new CKEDITOR.dom.element("style", this); b.append(new CKEDITOR.dom.text(a, this)); this.getHead().append(b) } return e || b.$.sheet }, createElement: function(a, e) { var b = new CKEDITOR.dom.element(a, this); if (e) { e.attributes && b.setAttributes(e.attributes); e.styles && b.setStyles(e.styles) } return b }, createText: function(a) { return new CKEDITOR.dom.text(a, this) }, focus: function() { this.getWindow().focus() }, getActive: function() { var a; try { a = this.$.activeElement } catch (e) { return null } return new CKEDITOR.dom.element(a) }, getById: function(a) { return (a = this.$.getElementById(a)) ? new CKEDITOR.dom.element(a) : null }, getByAddress: function(a, e) { for (var b = this.$.documentElement, g = 0; b && g < a.length; g++) { var c = a[g]; if (e) for (var d = -1, j = 0; j < b.childNodes.length; j++) { var f = b.childNodes[j]; if (!(e === true && f.nodeType == 3 && f.previousSibling && f.previousSibling.nodeType == 3)) { d++; if (d == c) { b = f; break } } } else b = b.childNodes[c] } return b ? new CKEDITOR.dom.node(b) : null }, getElementsByTag: function(a, e) {!(CKEDITOR.env.ie && document.documentMode <= 8) && e && (a = e + ":" + a); return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a)) }, getHead: function() { var a = this.$.getElementsByTagName("head")[0]; return a = a ? new CKEDITOR.dom.element(a) : this.getDocumentElement().append(new CKEDITOR.dom.element("head"), true) }, getBody: function() { return new CKEDITOR.dom.element(this.$.body) }, getDocumentElement: function() { return new CKEDITOR.dom.element(this.$.documentElement) }, getWindow: function() { return new CKEDITOR.dom.window(this.$.parentWindow || this.$.defaultView) }, write: function(a) { this.$.open("text/html", "replace"); CKEDITOR.env.ie && (a = a.replace(/(?:^\s*]*?>)|^/i, '$&\n