'+(c.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+
-"
"}]}]}]},{id:"Link",requiredContent:"a[href]",label:c.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:c.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var d=decodeURI(this.getValue());b.data("cke-saved-href",d);b.setAttribute("href",d);if(this.getValue()||!c.config.image_removeLinkByEmptyURL)this.getDialog().addLink=
-!0}}},{type:"button",id:"browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:c.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:c.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:c.lang.common.target,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.targetNew,"_blank"],[c.lang.common.targetTop,"_top"],[c.lang.common.targetSelf,"_self"],[c.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")||
-"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:c.lang.image.upload,elements:[{type:"file",id:"upload",label:c.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:c.lang.image.btnUpload,"for":["Upload","upload"]}]},{id:"advanced",label:c.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"],
-children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:c.lang.common.id,setup:function(a,b){a==f&&this.setValue(b.getAttribute("id"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:c.lang.common.langDir,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.langDirLtr,"ltr"],[c.lang.common.langDirRtl,"rtl"]],setup:function(a,b){a==f&&this.setValue(b.getAttribute("dir"))},
-commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",requiredContent:"img[lang]",label:c.lang.common.langCode,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]},{type:"text",id:"txtGenLongDescr",requiredContent:"img[longdesc]",label:c.lang.common.longDescr,setup:function(a,b){a==f&&this.setValue(b.getAttribute("longDesc"))},
-commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",requiredContent:"img(cke-xyz)",label:c.lang.common.cssClass,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("class"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",requiredContent:"img[title]",label:c.lang.common.advisoryTitle,
-"default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("title"))},commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle",requiredContent:"img{cke-xyz}",label:c.lang.common.cssStyle,validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),"default":"",setup:function(a,
-b){if(a==f){var c=b.getAttribute("style");!c&&b.$.style.cssText&&(c=b.$.style.cssText);this.setValue(c);var e=b.$.style.height,c=b.$.style.width,e=(e?e:"").match(k),c=(c?c:"").match(k);this.attributesInStyle={height:!!e,width:!!c}}},onChange:function(){i.call(this,"info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));g(this)},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("style",this.getValue())}}]}]}};
-CKEDITOR.dialog.add("image",function(c){return r(c,"image")});CKEDITOR.dialog.add("imagebutton",function(c){return r(c,"imagebutton")})})();
\ No newline at end of file
+ */
+(function () {
+ var r = function (c, j) {
+ function r() {
+ var a = arguments, b = this.getContentElement("advanced", "txtdlgGenStyle");
+ b && b.commit.apply(b, a);
+ this.foreach(function (b) {
+ b.commit && "txtdlgGenStyle" != b.id && b.commit.apply(b, a)
+ })
+ }
+
+ function i(a) {
+ if (!s) {
+ s = 1;
+ var b = this.getDialog(), d = b.imageElement;
+ if (d) {
+ this.commit(f, d);
+ for (var a = [].concat(a), e = a.length, c, g = 0; g < e; g++)(c = b.getContentElement.apply(b, a[g].split(":"))) && c.setup(f, d)
+ }
+ s = 0
+ }
+ }
+
+ var f = 1, k = /^\s*(\d+)((px)|\%)?\s*$/i, v = /(^\s*(\d+)((px)|\%)?\s*$)|^$/i, o = /^\d+px$/,
+ w = function () {
+ var a = this.getValue(), b = this.getDialog(), d = a.match(k);
+ d && ("%" == d[2] && l(b, !1), a = d[1]);
+ b.lockRatio && (d = b.originalElement, "true" == d.getCustomData("isReady") && ("txtHeight" == this.id ? (a && "0" != a && (a = Math.round(d.$.width * (a / d.$.height))), isNaN(a) || b.setValueOf("info", "txtWidth", a)) : (a && "0" != a && (a = Math.round(d.$.height * (a / d.$.width))), isNaN(a) || b.setValueOf("info", "txtHeight", a))));
+ g(b)
+ }, g = function (a) {
+ if (!a.originalElement || !a.preview)return 1;
+ a.commitContent(4, a.preview);
+ return 0
+ }, s, l = function (a, b) {
+ if (!a.getContentElement("info", "ratioLock"))return null;
+ var d = a.originalElement;
+ if (!d)return null;
+ if ("check" == b) {
+ if (!a.userlockRatio && "true" == d.getCustomData("isReady")) {
+ var e = a.getValueOf("info", "txtWidth"), c = a.getValueOf("info", "txtHeight"), d = 1E3 * d.$.width / d.$.height, f = 1E3 * e / c;
+ a.lockRatio = !1;
+ !e && !c ? a.lockRatio = !0 : !isNaN(d) && !isNaN(f) && Math.round(d) == Math.round(f) && (a.lockRatio = !0)
+ }
+ } else void 0 != b ? a.lockRatio = b : (a.userlockRatio = 1, a.lockRatio = !a.lockRatio);
+ e = CKEDITOR.document.getById(p);
+ a.lockRatio ?
+ e.removeClass("cke_btn_unlocked") : e.addClass("cke_btn_unlocked");
+ e.setAttribute("aria-checked", a.lockRatio);
+ CKEDITOR.env.hc && e.getChild(0).setHtml(a.lockRatio ? CKEDITOR.env.ie ? "■" : "▣" : CKEDITOR.env.ie ? "□" : "▢");
+ return a.lockRatio
+ }, x = function (a) {
+ var b = a.originalElement;
+ if ("true" == b.getCustomData("isReady")) {
+ var d = a.getContentElement("info", "txtWidth"), e = a.getContentElement("info", "txtHeight");
+ d && d.setValue(b.$.width);
+ e && e.setValue(b.$.height)
+ }
+ g(a)
+ }, y = function (a, b) {
+ function d(a, b) {
+ var d = a.match(k);
+ return d ?
+ ("%" == d[2] && (d[1] += "%", l(e, !1)), d[1]) : b
+ }
+
+ if (a == f) {
+ var e = this.getDialog(), c = "", g = "txtWidth" == this.id ? "width" : "height", h = b.getAttribute(g);
+ h && (c = d(h, c));
+ c = d(b.getStyle(g), c);
+ this.setValue(c)
+ }
+ }, t, q = function () {
+ var a = this.originalElement;
+ a.setCustomData("isReady", "true");
+ a.removeListener("load", q);
+ a.removeListener("error", h);
+ a.removeListener("abort", h);
+ CKEDITOR.document.getById(m).setStyle("display", "none");
+ this.dontResetSize || x(this);
+ this.firstLoad && CKEDITOR.tools.setTimeout(function () {
+ l(this, "check")
+ },
+ 0, this);
+ this.dontResetSize = this.firstLoad = !1
+ }, h = function () {
+ var a = this.originalElement;
+ a.removeListener("load", q);
+ a.removeListener("error", h);
+ a.removeListener("abort", h);
+ a = CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path + "images/noimage.png");
+ this.preview && this.preview.setAttribute("src", a);
+ CKEDITOR.document.getById(m).setStyle("display", "none");
+ l(this, !1)
+ }, n = function (a) {
+ return CKEDITOR.tools.getNextId() + "_" + a
+ }, p = n("btnLockSizes"), u = n("btnResetSize"), m = n("ImagePreviewLoader"), A = n("previewLink"),
+ z = n("previewImage");
+ return{title: c.lang.image["image" == j ? "title" : "titleButton"], minWidth: 420, minHeight: 360, onShow: function () {
+ this.linkEditMode = this.imageEditMode = this.linkElement = this.imageElement = !1;
+ this.lockRatio = !0;
+ this.userlockRatio = 0;
+ this.dontResetSize = !1;
+ this.firstLoad = !0;
+ this.addLink = !1;
+ var a = this.getParentEditor(), b = a.getSelection(), d = (b = b && b.getSelectedElement()) && a.elementPath(b).contains("a", 1);
+ CKEDITOR.document.getById(m).setStyle("display", "none");
+ t = new CKEDITOR.dom.element("img", a.document);
+ this.preview = CKEDITOR.document.getById(z);
+ this.originalElement = a.document.createElement("img");
+ this.originalElement.setAttribute("alt", "");
+ this.originalElement.setCustomData("isReady", "false");
+ if (d) {
+ this.linkElement = d;
+ this.linkEditMode = !0;
+ var c = d.getChildren();
+ if (1 == c.count()) {
+ var g = c.getItem(0).getName();
+ if ("img" == g || "input" == g)this.imageElement = c.getItem(0), "img" == this.imageElement.getName() ? this.imageEditMode = "img" : "input" == this.imageElement.getName() && (this.imageEditMode = "input")
+ }
+ "image" == j &&
+ this.setupContent(2, d)
+ }
+ if (this.customImageElement)this.imageEditMode = "img", this.imageElement = this.customImageElement, delete this.customImageElement; else if (b && "img" == b.getName() && !b.data("cke-realelement") || b && "input" == b.getName() && "image" == b.getAttribute("type"))this.imageEditMode = b.getName(), this.imageElement = b;
+ this.imageEditMode ? (this.cleanImageElement = this.imageElement, this.imageElement = this.cleanImageElement.clone(!0, !0), this.setupContent(f, this.imageElement)) : this.imageElement = a.document.createElement("img");
+ l(this, !0);
+ CKEDITOR.tools.trim(this.getValueOf("info", "txtUrl")) || (this.preview.removeAttribute("src"), this.preview.setStyle("display", "none"))
+ }, onOk: function () {
+ if (this.imageEditMode) {
+ var a = this.imageEditMode;
+ "image" == j && "input" == a && confirm(c.lang.image.button2Img) ? (this.imageElement = c.document.createElement("img"), this.imageElement.setAttribute("alt", ""), c.insertElement(this.imageElement)) : "image" != j && "img" == a && confirm(c.lang.image.img2Button) ? (this.imageElement = c.document.createElement("input"),
+ this.imageElement.setAttributes({type: "image", alt: ""}), c.insertElement(this.imageElement)) : (this.imageElement = this.cleanImageElement, delete this.cleanImageElement)
+ } else"image" == j ? this.imageElement = c.document.createElement("img") : (this.imageElement = c.document.createElement("input"), this.imageElement.setAttribute("type", "image")), this.imageElement.setAttribute("alt", "");
+ this.linkEditMode || (this.linkElement = c.document.createElement("a"));
+ this.commitContent(f, this.imageElement);
+ this.commitContent(2, this.linkElement);
+ this.imageElement.getAttribute("style") || this.imageElement.removeAttribute("style");
+ this.imageEditMode ? !this.linkEditMode && this.addLink ? (c.insertElement(this.linkElement), this.imageElement.appendTo(this.linkElement)) : this.linkEditMode && !this.addLink && (c.getSelection().selectElement(this.linkElement), c.insertElement(this.imageElement)) : this.addLink ? this.linkEditMode ? c.insertElement(this.imageElement) : (c.insertElement(this.linkElement), this.linkElement.append(this.imageElement, !1)) : c.insertElement(this.imageElement)
+ },
+ onLoad: function () {
+ "image" != j && this.hidePage("Link");
+ var a = this._.element.getDocument();
+ this.getContentElement("info", "ratioLock") && (this.addFocusable(a.getById(u), 5), this.addFocusable(a.getById(p), 5));
+ this.commitContent = r
+ }, onHide: function () {
+ this.preview && this.commitContent(8, this.preview);
+ this.originalElement && (this.originalElement.removeListener("load", q), this.originalElement.removeListener("error", h), this.originalElement.removeListener("abort", h), this.originalElement.remove(), this.originalElement = !1);
+ delete this.imageElement
+ }, contents: [
+ {id: "info", label: c.lang.image.infoTab, accessKey: "I", elements: [
+ {type: "vbox", padding: 0, children: [
+ {type: "hbox", widths: ["280px", "110px"], align: "right", children: [
+ {id: "txtUrl", type: "text", label: c.lang.common.url, required: !0, onChange: function () {
+ var a = this.getDialog(), b = this.getValue();
+ if (0 < b.length) {
+ var a = this.getDialog(), d = a.originalElement;
+ a.preview.removeStyle("display");
+ d.setCustomData("isReady", "false");
+ var c = CKEDITOR.document.getById(m);
+ c && c.setStyle("display",
+ "");
+ d.on("load", q, a);
+ d.on("error", h, a);
+ d.on("abort", h, a);
+ d.setAttribute("src", b);
+ t.setAttribute("src", b);
+ a.preview.setAttribute("src", t.$.src);
+ g(a)
+ } else a.preview && (a.preview.removeAttribute("src"), a.preview.setStyle("display", "none"))
+ }, setup: function (a, b) {
+ if (a == f) {
+ var d = b.data("cke-saved-src") || b.getAttribute("src");
+ this.getDialog().dontResetSize = !0;
+ this.setValue(d);
+ this.setInitValue()
+ }
+ }, commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) ? (b.data("cke-saved-src", this.getValue()), b.setAttribute("src",
+ this.getValue())) : 8 == a && (b.setAttribute("src", ""), b.removeAttribute("src"))
+ }, validate: CKEDITOR.dialog.validate.notEmpty(c.lang.image.urlMissing)},
+ {type: "button", id: "browse", style: "display:inline-block;margin-top:10px;", align: "center", label: c.lang.common.browseServer, hidden: !0, filebrowser: "info:txtUrl"}
+ ]}
+ ]},
+ {id: "txtAlt", type: "text", label: c.lang.image.alt, accessKey: "T", "default": "", onChange: function () {
+ g(this.getDialog())
+ }, setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("alt"))
+ }, commit: function (a, b) {
+ a == f ? (this.getValue() || this.isChanged()) && b.setAttribute("alt", this.getValue()) : 4 == a ? b.setAttribute("alt", this.getValue()) : 8 == a && b.removeAttribute("alt")
+ }},
+ {type: "hbox", children: [
+ {id: "basic", type: "vbox", children: [
+ {type: "hbox", requiredContent: "img{width,height}", widths: ["50%", "50%"], children: [
+ {type: "vbox", padding: 1, children: [
+ {type: "text", width: "45px", id: "txtWidth", label: c.lang.common.width, onKeyUp: w, onChange: function () {
+ i.call(this, "advanced:txtdlgGenStyle")
+ }, validate: function () {
+ var a = this.getValue().match(v);
+ (a = !!(a && 0 !== parseInt(a[1], 10))) || alert(c.lang.common.invalidWidth);
+ return a
+ }, setup: y, commit: function (a, b, d) {
+ var c = this.getValue();
+ a == f ? (c ? b.setStyle("width", CKEDITOR.tools.cssLength(c)) : b.removeStyle("width"), !d && b.removeAttribute("width")) : 4 == a ? c.match(k) ? b.setStyle("width", CKEDITOR.tools.cssLength(c)) : (a = this.getDialog().originalElement, "true" == a.getCustomData("isReady") && b.setStyle("width", a.$.width + "px")) : 8 == a && (b.removeAttribute("width"), b.removeStyle("width"))
+ }},
+ {type: "text", id: "txtHeight",
+ width: "45px", label: c.lang.common.height, onKeyUp: w, onChange: function () {
+ i.call(this, "advanced:txtdlgGenStyle")
+ }, validate: function () {
+ var a = this.getValue().match(v);
+ (a = !!(a && 0 !== parseInt(a[1], 10))) || alert(c.lang.common.invalidHeight);
+ return a
+ }, setup: y, commit: function (a, b, d) {
+ var c = this.getValue();
+ a == f ? (c ? b.setStyle("height", CKEDITOR.tools.cssLength(c)) : b.removeStyle("height"), !d && b.removeAttribute("height")) : 4 == a ? c.match(k) ? b.setStyle("height", CKEDITOR.tools.cssLength(c)) : (a = this.getDialog().originalElement,
+ "true" == a.getCustomData("isReady") && b.setStyle("height", a.$.height + "px")) : 8 == a && (b.removeAttribute("height"), b.removeStyle("height"))
+ }}
+ ]},
+ {id: "ratioLock", type: "html", style: "margin-top:30px;width:40px;height:40px;", onLoad: function () {
+ var a = CKEDITOR.document.getById(u), b = CKEDITOR.document.getById(p);
+ a && (a.on("click", function (a) {
+ x(this);
+ a.data && a.data.preventDefault()
+ }, this.getDialog()), a.on("mouseover", function () {
+ this.addClass("cke_btn_over")
+ }, a), a.on("mouseout", function () {
+ this.removeClass("cke_btn_over")
+ },
+ a));
+ b && (b.on("click", function (a) {
+ l(this);
+ var b = this.originalElement, c = this.getValueOf("info", "txtWidth");
+ if (b.getCustomData("isReady") == "true" && c) {
+ b = b.$.height / b.$.width * c;
+ if (!isNaN(b)) {
+ this.setValueOf("info", "txtHeight", Math.round(b));
+ g(this)
+ }
+ }
+ a.data && a.data.preventDefault()
+ }, this.getDialog()), b.on("mouseover", function () {
+ this.addClass("cke_btn_over")
+ }, b), b.on("mouseout", function () {
+ this.removeClass("cke_btn_over")
+ }, b))
+ }, html: '
' + (c.config.image_previewText || "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.") +
+ "
"}
+ ]}
+ ]}
+ ]},
+ {id: "Link", requiredContent: "a[href]", label: c.lang.image.linkTab, padding: 0, elements: [
+ {id: "txtUrl", type: "text", label: c.lang.common.url, style: "width: 100%", "default": "", setup: function (a, b) {
+ if (2 == a) {
+ var c = b.data("cke-saved-href");
+ c || (c = b.getAttribute("href"));
+ this.setValue(c)
+ }
+ }, commit: function (a, b) {
+ if (2 == a && (this.getValue() || this.isChanged())) {
+ var d = decodeURI(this.getValue());
+ b.data("cke-saved-href", d);
+ b.setAttribute("href", d);
+ if (this.getValue() || !c.config.image_removeLinkByEmptyURL)this.getDialog().addLink = !0
+ }
+ }},
+ {type: "button", id: "browse", filebrowser: {action: "Browse", target: "Link:txtUrl", url: c.config.filebrowserImageBrowseLinkUrl}, style: "float:right", hidden: !0, label: c.lang.common.browseServer},
+ {id: "cmbTarget", type: "select", requiredContent: "a[target]", label: c.lang.common.target, "default": "", items: [
+ [c.lang.common.notSet, ""],
+ [c.lang.common.targetNew, "_blank"],
+ [c.lang.common.targetTop, "_top"],
+ [c.lang.common.targetSelf, "_self"],
+ [c.lang.common.targetParent, "_parent"]
+ ], setup: function (a, b) {
+ 2 == a && this.setValue(b.getAttribute("target") ||
+ "")
+ }, commit: function (a, b) {
+ 2 == a && (this.getValue() || this.isChanged()) && b.setAttribute("target", this.getValue())
+ }}
+ ]},
+ {id: "Upload", hidden: !0, filebrowser: "uploadButton", label: c.lang.image.upload, elements: [
+ {type: "file", id: "upload", label: c.lang.image.btnUpload, style: "height:40px", size: 38},
+ {type: "fileButton", id: "uploadButton", filebrowser: "info:txtUrl", label: c.lang.image.btnUpload, "for": ["Upload", "upload"]}
+ ]},
+ {id: "advanced", label: c.lang.common.advancedTab, elements: [
+ {type: "hbox", widths: ["50%", "25%", "25%"],
+ children: [
+ {type: "text", id: "linkId", requiredContent: "img[id]", label: c.lang.common.id, setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("id"))
+ }, commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("id", this.getValue())
+ }},
+ {id: "cmbLangDir", type: "select", requiredContent: "img[dir]", style: "width : 100px;", label: c.lang.common.langDir, "default": "", items: [
+ [c.lang.common.notSet, ""],
+ [c.lang.common.langDirLtr, "ltr"],
+ [c.lang.common.langDirRtl, "rtl"]
+ ], setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("dir"))
+ },
+ commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("dir", this.getValue())
+ }},
+ {type: "text", id: "txtLangCode", requiredContent: "img[lang]", label: c.lang.common.langCode, "default": "", setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("lang"))
+ }, commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("lang", this.getValue())
+ }}
+ ]},
+ {type: "text", id: "txtGenLongDescr", requiredContent: "img[longdesc]", label: c.lang.common.longDescr, setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("longDesc"))
+ },
+ commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("longDesc", this.getValue())
+ }},
+ {type: "hbox", widths: ["50%", "50%"], children: [
+ {type: "text", id: "txtGenClass", requiredContent: "img(cke-xyz)", label: c.lang.common.cssClass, "default": "", setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("class"))
+ }, commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("class", this.getValue())
+ }},
+ {type: "text", id: "txtGenTitle", requiredContent: "img[title]", label: c.lang.common.advisoryTitle,
+ "default": "", onChange: function () {
+ g(this.getDialog())
+ }, setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("title"))
+ }, commit: function (a, b) {
+ a == f ? (this.getValue() || this.isChanged()) && b.setAttribute("title", this.getValue()) : 4 == a ? b.setAttribute("title", this.getValue()) : 8 == a && b.removeAttribute("title")
+ }}
+ ]},
+ {type: "text", id: "txtdlgGenStyle", requiredContent: "img{cke-xyz}", label: c.lang.common.cssStyle, validate: CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle), "default": "", setup: function (a, b) {
+ if (a == f) {
+ var c = b.getAttribute("style");
+ !c && b.$.style.cssText && (c = b.$.style.cssText);
+ this.setValue(c);
+ var e = b.$.style.height, c = b.$.style.width, e = (e ? e : "").match(k), c = (c ? c : "").match(k);
+ this.attributesInStyle = {height: !!e, width: !!c}
+ }
+ }, onChange: function () {
+ i.call(this, "info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));
+ g(this)
+ }, commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("style", this.getValue())
+ }}
+ ]}
+ ]}
+ };
+ CKEDITOR.dialog.add("image", function (c) {
+ return r(c, "image")
+ });
+ CKEDITOR.dialog.add("imagebutton", function (c) {
+ return r(c, "imagebutton")
+ })
+})();
\ No newline at end of file
diff --git a/plugins/redmine_ckeditor/assets/ckeditor/plugins/link/dialogs/link.js b/plugins/redmine_ckeditor/assets/ckeditor/plugins/link/dialogs/link.js
index 84a5c8b5c..dfd773de0 100644
--- a/plugins/redmine_ckeditor/assets/ckeditor/plugins/link/dialogs/link.js
+++ b/plugins/redmine_ckeditor/assets/ckeditor/plugins/link/dialogs/link.js
@@ -1,37 +1,492 @@
/*
Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-*/
-CKEDITOR.dialog.add("link",function(n){var p,q;function r(a){return a.replace(/'/g,"\\$&")}function t(a){var g,c=p,d,e;g=[q,"("];for(var b=0;b0?this.getElement().show():this.getElement().hide()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");for(var b=0;b0?this.getElement().show():this.getElement().hide()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'
'+(c.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+
-"
"}]}]}]},{id:"Link",requiredContent:"a[href]",label:c.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:c.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var d=decodeURI(this.getValue());b.data("cke-saved-href",d);b.setAttribute("href",d);if(this.getValue()||!c.config.image_removeLinkByEmptyURL)this.getDialog().addLink=
-!0}}},{type:"button",id:"browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:c.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:c.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:c.lang.common.target,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.targetNew,"_blank"],[c.lang.common.targetTop,"_top"],[c.lang.common.targetSelf,"_self"],[c.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")||
-"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:c.lang.image.upload,elements:[{type:"file",id:"upload",label:c.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:c.lang.image.btnUpload,"for":["Upload","upload"]}]},{id:"advanced",label:c.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"],
-children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:c.lang.common.id,setup:function(a,b){a==f&&this.setValue(b.getAttribute("id"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:c.lang.common.langDir,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.langDirLtr,"ltr"],[c.lang.common.langDirRtl,"rtl"]],setup:function(a,b){a==f&&this.setValue(b.getAttribute("dir"))},
-commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",requiredContent:"img[lang]",label:c.lang.common.langCode,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]},{type:"text",id:"txtGenLongDescr",requiredContent:"img[longdesc]",label:c.lang.common.longDescr,setup:function(a,b){a==f&&this.setValue(b.getAttribute("longDesc"))},
-commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",requiredContent:"img(cke-xyz)",label:c.lang.common.cssClass,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("class"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",requiredContent:"img[title]",label:c.lang.common.advisoryTitle,
-"default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("title"))},commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle",requiredContent:"img{cke-xyz}",label:c.lang.common.cssStyle,validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),"default":"",setup:function(a,
-b){if(a==f){var c=b.getAttribute("style");!c&&b.$.style.cssText&&(c=b.$.style.cssText);this.setValue(c);var e=b.$.style.height,c=b.$.style.width,e=(e?e:"").match(k),c=(c?c:"").match(k);this.attributesInStyle={height:!!e,width:!!c}}},onChange:function(){i.call(this,"info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));g(this)},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("style",this.getValue())}}]}]}};
-CKEDITOR.dialog.add("image",function(c){return r(c,"image")});CKEDITOR.dialog.add("imagebutton",function(c){return r(c,"imagebutton")})})();
\ No newline at end of file
+ */
+(function () {
+ var r = function (c, j) {
+ function r() {
+ var a = arguments, b = this.getContentElement("advanced", "txtdlgGenStyle");
+ b && b.commit.apply(b, a);
+ this.foreach(function (b) {
+ b.commit && "txtdlgGenStyle" != b.id && b.commit.apply(b, a)
+ })
+ }
+
+ function i(a) {
+ if (!s) {
+ s = 1;
+ var b = this.getDialog(), d = b.imageElement;
+ if (d) {
+ this.commit(f, d);
+ for (var a = [].concat(a), e = a.length, c, g = 0; g < e; g++)(c = b.getContentElement.apply(b, a[g].split(":"))) && c.setup(f, d)
+ }
+ s = 0
+ }
+ }
+
+ var f = 1, k = /^\s*(\d+)((px)|\%)?\s*$/i, v = /(^\s*(\d+)((px)|\%)?\s*$)|^$/i, o = /^\d+px$/,
+ w = function () {
+ var a = this.getValue(), b = this.getDialog(), d = a.match(k);
+ d && ("%" == d[2] && l(b, !1), a = d[1]);
+ b.lockRatio && (d = b.originalElement, "true" == d.getCustomData("isReady") && ("txtHeight" == this.id ? (a && "0" != a && (a = Math.round(d.$.width * (a / d.$.height))), isNaN(a) || b.setValueOf("info", "txtWidth", a)) : (a && "0" != a && (a = Math.round(d.$.height * (a / d.$.width))), isNaN(a) || b.setValueOf("info", "txtHeight", a))));
+ g(b)
+ }, g = function (a) {
+ if (!a.originalElement || !a.preview)return 1;
+ a.commitContent(4, a.preview);
+ return 0
+ }, s, l = function (a, b) {
+ if (!a.getContentElement("info", "ratioLock"))return null;
+ var d = a.originalElement;
+ if (!d)return null;
+ if ("check" == b) {
+ if (!a.userlockRatio && "true" == d.getCustomData("isReady")) {
+ var e = a.getValueOf("info", "txtWidth"), c = a.getValueOf("info", "txtHeight"), d = 1E3 * d.$.width / d.$.height, f = 1E3 * e / c;
+ a.lockRatio = !1;
+ !e && !c ? a.lockRatio = !0 : !isNaN(d) && !isNaN(f) && Math.round(d) == Math.round(f) && (a.lockRatio = !0)
+ }
+ } else void 0 != b ? a.lockRatio = b : (a.userlockRatio = 1, a.lockRatio = !a.lockRatio);
+ e = CKEDITOR.document.getById(p);
+ a.lockRatio ?
+ e.removeClass("cke_btn_unlocked") : e.addClass("cke_btn_unlocked");
+ e.setAttribute("aria-checked", a.lockRatio);
+ CKEDITOR.env.hc && e.getChild(0).setHtml(a.lockRatio ? CKEDITOR.env.ie ? "■" : "▣" : CKEDITOR.env.ie ? "□" : "▢");
+ return a.lockRatio
+ }, x = function (a) {
+ var b = a.originalElement;
+ if ("true" == b.getCustomData("isReady")) {
+ var d = a.getContentElement("info", "txtWidth"), e = a.getContentElement("info", "txtHeight");
+ d && d.setValue(b.$.width);
+ e && e.setValue(b.$.height)
+ }
+ g(a)
+ }, y = function (a, b) {
+ function d(a, b) {
+ var d = a.match(k);
+ return d ?
+ ("%" == d[2] && (d[1] += "%", l(e, !1)), d[1]) : b
+ }
+
+ if (a == f) {
+ var e = this.getDialog(), c = "", g = "txtWidth" == this.id ? "width" : "height", h = b.getAttribute(g);
+ h && (c = d(h, c));
+ c = d(b.getStyle(g), c);
+ this.setValue(c)
+ }
+ }, t, q = function () {
+ var a = this.originalElement;
+ a.setCustomData("isReady", "true");
+ a.removeListener("load", q);
+ a.removeListener("error", h);
+ a.removeListener("abort", h);
+ CKEDITOR.document.getById(m).setStyle("display", "none");
+ this.dontResetSize || x(this);
+ this.firstLoad && CKEDITOR.tools.setTimeout(function () {
+ l(this, "check")
+ },
+ 0, this);
+ this.dontResetSize = this.firstLoad = !1
+ }, h = function () {
+ var a = this.originalElement;
+ a.removeListener("load", q);
+ a.removeListener("error", h);
+ a.removeListener("abort", h);
+ a = CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path + "images/noimage.png");
+ this.preview && this.preview.setAttribute("src", a);
+ CKEDITOR.document.getById(m).setStyle("display", "none");
+ l(this, !1)
+ }, n = function (a) {
+ return CKEDITOR.tools.getNextId() + "_" + a
+ }, p = n("btnLockSizes"), u = n("btnResetSize"), m = n("ImagePreviewLoader"), A = n("previewLink"),
+ z = n("previewImage");
+ return{title: c.lang.image["image" == j ? "title" : "titleButton"], minWidth: 420, minHeight: 360, onShow: function () {
+ this.linkEditMode = this.imageEditMode = this.linkElement = this.imageElement = !1;
+ this.lockRatio = !0;
+ this.userlockRatio = 0;
+ this.dontResetSize = !1;
+ this.firstLoad = !0;
+ this.addLink = !1;
+ var a = this.getParentEditor(), b = a.getSelection(), d = (b = b && b.getSelectedElement()) && a.elementPath(b).contains("a", 1);
+ CKEDITOR.document.getById(m).setStyle("display", "none");
+ t = new CKEDITOR.dom.element("img", a.document);
+ this.preview = CKEDITOR.document.getById(z);
+ this.originalElement = a.document.createElement("img");
+ this.originalElement.setAttribute("alt", "");
+ this.originalElement.setCustomData("isReady", "false");
+ if (d) {
+ this.linkElement = d;
+ this.linkEditMode = !0;
+ var c = d.getChildren();
+ if (1 == c.count()) {
+ var g = c.getItem(0).getName();
+ if ("img" == g || "input" == g)this.imageElement = c.getItem(0), "img" == this.imageElement.getName() ? this.imageEditMode = "img" : "input" == this.imageElement.getName() && (this.imageEditMode = "input")
+ }
+ "image" == j &&
+ this.setupContent(2, d)
+ }
+ if (this.customImageElement)this.imageEditMode = "img", this.imageElement = this.customImageElement, delete this.customImageElement; else if (b && "img" == b.getName() && !b.data("cke-realelement") || b && "input" == b.getName() && "image" == b.getAttribute("type"))this.imageEditMode = b.getName(), this.imageElement = b;
+ this.imageEditMode ? (this.cleanImageElement = this.imageElement, this.imageElement = this.cleanImageElement.clone(!0, !0), this.setupContent(f, this.imageElement)) : this.imageElement = a.document.createElement("img");
+ l(this, !0);
+ CKEDITOR.tools.trim(this.getValueOf("info", "txtUrl")) || (this.preview.removeAttribute("src"), this.preview.setStyle("display", "none"))
+ }, onOk: function () {
+ if (this.imageEditMode) {
+ var a = this.imageEditMode;
+ "image" == j && "input" == a && confirm(c.lang.image.button2Img) ? (this.imageElement = c.document.createElement("img"), this.imageElement.setAttribute("alt", ""), c.insertElement(this.imageElement)) : "image" != j && "img" == a && confirm(c.lang.image.img2Button) ? (this.imageElement = c.document.createElement("input"),
+ this.imageElement.setAttributes({type: "image", alt: ""}), c.insertElement(this.imageElement)) : (this.imageElement = this.cleanImageElement, delete this.cleanImageElement)
+ } else"image" == j ? this.imageElement = c.document.createElement("img") : (this.imageElement = c.document.createElement("input"), this.imageElement.setAttribute("type", "image")), this.imageElement.setAttribute("alt", "");
+ this.linkEditMode || (this.linkElement = c.document.createElement("a"));
+ this.commitContent(f, this.imageElement);
+ this.commitContent(2, this.linkElement);
+ this.imageElement.getAttribute("style") || this.imageElement.removeAttribute("style");
+ this.imageEditMode ? !this.linkEditMode && this.addLink ? (c.insertElement(this.linkElement), this.imageElement.appendTo(this.linkElement)) : this.linkEditMode && !this.addLink && (c.getSelection().selectElement(this.linkElement), c.insertElement(this.imageElement)) : this.addLink ? this.linkEditMode ? c.insertElement(this.imageElement) : (c.insertElement(this.linkElement), this.linkElement.append(this.imageElement, !1)) : c.insertElement(this.imageElement)
+ },
+ onLoad: function () {
+ "image" != j && this.hidePage("Link");
+ var a = this._.element.getDocument();
+ this.getContentElement("info", "ratioLock") && (this.addFocusable(a.getById(u), 5), this.addFocusable(a.getById(p), 5));
+ this.commitContent = r
+ }, onHide: function () {
+ this.preview && this.commitContent(8, this.preview);
+ this.originalElement && (this.originalElement.removeListener("load", q), this.originalElement.removeListener("error", h), this.originalElement.removeListener("abort", h), this.originalElement.remove(), this.originalElement = !1);
+ delete this.imageElement
+ }, contents: [
+ {id: "info", label: c.lang.image.infoTab, accessKey: "I", elements: [
+ {type: "vbox", padding: 0, children: [
+ {type: "hbox", widths: ["280px", "110px"], align: "right", children: [
+ {id: "txtUrl", type: "text", label: c.lang.common.url, required: !0, onChange: function () {
+ var a = this.getDialog(), b = this.getValue();
+ if (0 < b.length) {
+ var a = this.getDialog(), d = a.originalElement;
+ a.preview.removeStyle("display");
+ d.setCustomData("isReady", "false");
+ var c = CKEDITOR.document.getById(m);
+ c && c.setStyle("display",
+ "");
+ d.on("load", q, a);
+ d.on("error", h, a);
+ d.on("abort", h, a);
+ d.setAttribute("src", b);
+ t.setAttribute("src", b);
+ a.preview.setAttribute("src", t.$.src);
+ g(a)
+ } else a.preview && (a.preview.removeAttribute("src"), a.preview.setStyle("display", "none"))
+ }, setup: function (a, b) {
+ if (a == f) {
+ var d = b.data("cke-saved-src") || b.getAttribute("src");
+ this.getDialog().dontResetSize = !0;
+ this.setValue(d);
+ this.setInitValue()
+ }
+ }, commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) ? (b.data("cke-saved-src", this.getValue()), b.setAttribute("src",
+ this.getValue())) : 8 == a && (b.setAttribute("src", ""), b.removeAttribute("src"))
+ }, validate: CKEDITOR.dialog.validate.notEmpty(c.lang.image.urlMissing)},
+ {type: "button", id: "browse", style: "display:inline-block;margin-top:10px;", align: "center", label: c.lang.common.browseServer, hidden: !0, filebrowser: "info:txtUrl"}
+ ]}
+ ]},
+ {id: "txtAlt", type: "text", label: c.lang.image.alt, accessKey: "T", "default": "", onChange: function () {
+ g(this.getDialog())
+ }, setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("alt"))
+ }, commit: function (a, b) {
+ a == f ? (this.getValue() || this.isChanged()) && b.setAttribute("alt", this.getValue()) : 4 == a ? b.setAttribute("alt", this.getValue()) : 8 == a && b.removeAttribute("alt")
+ }},
+ {type: "hbox", children: [
+ {id: "basic", type: "vbox", children: [
+ {type: "hbox", requiredContent: "img{width,height}", widths: ["50%", "50%"], children: [
+ {type: "vbox", padding: 1, children: [
+ {type: "text", width: "45px", id: "txtWidth", label: c.lang.common.width, onKeyUp: w, onChange: function () {
+ i.call(this, "advanced:txtdlgGenStyle")
+ }, validate: function () {
+ var a = this.getValue().match(v);
+ (a = !!(a && 0 !== parseInt(a[1], 10))) || alert(c.lang.common.invalidWidth);
+ return a
+ }, setup: y, commit: function (a, b, d) {
+ var c = this.getValue();
+ a == f ? (c ? b.setStyle("width", CKEDITOR.tools.cssLength(c)) : b.removeStyle("width"), !d && b.removeAttribute("width")) : 4 == a ? c.match(k) ? b.setStyle("width", CKEDITOR.tools.cssLength(c)) : (a = this.getDialog().originalElement, "true" == a.getCustomData("isReady") && b.setStyle("width", a.$.width + "px")) : 8 == a && (b.removeAttribute("width"), b.removeStyle("width"))
+ }},
+ {type: "text", id: "txtHeight",
+ width: "45px", label: c.lang.common.height, onKeyUp: w, onChange: function () {
+ i.call(this, "advanced:txtdlgGenStyle")
+ }, validate: function () {
+ var a = this.getValue().match(v);
+ (a = !!(a && 0 !== parseInt(a[1], 10))) || alert(c.lang.common.invalidHeight);
+ return a
+ }, setup: y, commit: function (a, b, d) {
+ var c = this.getValue();
+ a == f ? (c ? b.setStyle("height", CKEDITOR.tools.cssLength(c)) : b.removeStyle("height"), !d && b.removeAttribute("height")) : 4 == a ? c.match(k) ? b.setStyle("height", CKEDITOR.tools.cssLength(c)) : (a = this.getDialog().originalElement,
+ "true" == a.getCustomData("isReady") && b.setStyle("height", a.$.height + "px")) : 8 == a && (b.removeAttribute("height"), b.removeStyle("height"))
+ }}
+ ]},
+ {id: "ratioLock", type: "html", style: "margin-top:30px;width:40px;height:40px;", onLoad: function () {
+ var a = CKEDITOR.document.getById(u), b = CKEDITOR.document.getById(p);
+ a && (a.on("click", function (a) {
+ x(this);
+ a.data && a.data.preventDefault()
+ }, this.getDialog()), a.on("mouseover", function () {
+ this.addClass("cke_btn_over")
+ }, a), a.on("mouseout", function () {
+ this.removeClass("cke_btn_over")
+ },
+ a));
+ b && (b.on("click", function (a) {
+ l(this);
+ var b = this.originalElement, c = this.getValueOf("info", "txtWidth");
+ if (b.getCustomData("isReady") == "true" && c) {
+ b = b.$.height / b.$.width * c;
+ if (!isNaN(b)) {
+ this.setValueOf("info", "txtHeight", Math.round(b));
+ g(this)
+ }
+ }
+ a.data && a.data.preventDefault()
+ }, this.getDialog()), b.on("mouseover", function () {
+ this.addClass("cke_btn_over")
+ }, b), b.on("mouseout", function () {
+ this.removeClass("cke_btn_over")
+ }, b))
+ }, html: '
' + (c.config.image_previewText || "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.") +
+ "
"}
+ ]}
+ ]}
+ ]},
+ {id: "Link", requiredContent: "a[href]", label: c.lang.image.linkTab, padding: 0, elements: [
+ {id: "txtUrl", type: "text", label: c.lang.common.url, style: "width: 100%", "default": "", setup: function (a, b) {
+ if (2 == a) {
+ var c = b.data("cke-saved-href");
+ c || (c = b.getAttribute("href"));
+ this.setValue(c)
+ }
+ }, commit: function (a, b) {
+ if (2 == a && (this.getValue() || this.isChanged())) {
+ var d = decodeURI(this.getValue());
+ b.data("cke-saved-href", d);
+ b.setAttribute("href", d);
+ if (this.getValue() || !c.config.image_removeLinkByEmptyURL)this.getDialog().addLink = !0
+ }
+ }},
+ {type: "button", id: "browse", filebrowser: {action: "Browse", target: "Link:txtUrl", url: c.config.filebrowserImageBrowseLinkUrl}, style: "float:right", hidden: !0, label: c.lang.common.browseServer},
+ {id: "cmbTarget", type: "select", requiredContent: "a[target]", label: c.lang.common.target, "default": "", items: [
+ [c.lang.common.notSet, ""],
+ [c.lang.common.targetNew, "_blank"],
+ [c.lang.common.targetTop, "_top"],
+ [c.lang.common.targetSelf, "_self"],
+ [c.lang.common.targetParent, "_parent"]
+ ], setup: function (a, b) {
+ 2 == a && this.setValue(b.getAttribute("target") ||
+ "")
+ }, commit: function (a, b) {
+ 2 == a && (this.getValue() || this.isChanged()) && b.setAttribute("target", this.getValue())
+ }}
+ ]},
+ {id: "Upload", hidden: !0, filebrowser: "uploadButton", label: c.lang.image.upload, elements: [
+ {type: "file", id: "upload", label: c.lang.image.btnUpload, style: "height:40px", size: 38},
+ {type: "fileButton", id: "uploadButton", filebrowser: "info:txtUrl", label: c.lang.image.btnUpload, "for": ["Upload", "upload"]}
+ ]},
+ {id: "advanced", label: c.lang.common.advancedTab, elements: [
+ {type: "hbox", widths: ["50%", "25%", "25%"],
+ children: [
+ {type: "text", id: "linkId", requiredContent: "img[id]", label: c.lang.common.id, setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("id"))
+ }, commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("id", this.getValue())
+ }},
+ {id: "cmbLangDir", type: "select", requiredContent: "img[dir]", style: "width : 100px;", label: c.lang.common.langDir, "default": "", items: [
+ [c.lang.common.notSet, ""],
+ [c.lang.common.langDirLtr, "ltr"],
+ [c.lang.common.langDirRtl, "rtl"]
+ ], setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("dir"))
+ },
+ commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("dir", this.getValue())
+ }},
+ {type: "text", id: "txtLangCode", requiredContent: "img[lang]", label: c.lang.common.langCode, "default": "", setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("lang"))
+ }, commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("lang", this.getValue())
+ }}
+ ]},
+ {type: "text", id: "txtGenLongDescr", requiredContent: "img[longdesc]", label: c.lang.common.longDescr, setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("longDesc"))
+ },
+ commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("longDesc", this.getValue())
+ }},
+ {type: "hbox", widths: ["50%", "50%"], children: [
+ {type: "text", id: "txtGenClass", requiredContent: "img(cke-xyz)", label: c.lang.common.cssClass, "default": "", setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("class"))
+ }, commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("class", this.getValue())
+ }},
+ {type: "text", id: "txtGenTitle", requiredContent: "img[title]", label: c.lang.common.advisoryTitle,
+ "default": "", onChange: function () {
+ g(this.getDialog())
+ }, setup: function (a, b) {
+ a == f && this.setValue(b.getAttribute("title"))
+ }, commit: function (a, b) {
+ a == f ? (this.getValue() || this.isChanged()) && b.setAttribute("title", this.getValue()) : 4 == a ? b.setAttribute("title", this.getValue()) : 8 == a && b.removeAttribute("title")
+ }}
+ ]},
+ {type: "text", id: "txtdlgGenStyle", requiredContent: "img{cke-xyz}", label: c.lang.common.cssStyle, validate: CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle), "default": "", setup: function (a, b) {
+ if (a == f) {
+ var c = b.getAttribute("style");
+ !c && b.$.style.cssText && (c = b.$.style.cssText);
+ this.setValue(c);
+ var e = b.$.style.height, c = b.$.style.width, e = (e ? e : "").match(k), c = (c ? c : "").match(k);
+ this.attributesInStyle = {height: !!e, width: !!c}
+ }
+ }, onChange: function () {
+ i.call(this, "info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));
+ g(this)
+ }, commit: function (a, b) {
+ a == f && (this.getValue() || this.isChanged()) && b.setAttribute("style", this.getValue())
+ }}
+ ]}
+ ]}
+ };
+ CKEDITOR.dialog.add("image", function (c) {
+ return r(c, "image")
+ });
+ CKEDITOR.dialog.add("imagebutton", function (c) {
+ return r(c, "imagebutton")
+ })
+})();
\ No newline at end of file