/*
 Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/*
 Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/*
 Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.dialog.add("hiddenfield", function(d) {
	return {
		title: d.lang.forms.hidden.title,
		hiddenField: null,
		minWidth: 350,
		minHeight: 110,
		onShow: function() {
			delete this.hiddenField;
			var a = this.getParentEditor(),
				b = a.getSelection(),
				c = b.getSelectedElement();
			c && c.data("cke-real-element-type") && "hiddenfield" == c.data("cke-real-element-type") && (this.hiddenField = c, c = a.restoreRealElement(this.hiddenField), this.setupContent(c), b.selectElement(this.hiddenField))
		},
		onOk: function() {
			var a = this.getValueOf("info", "_cke_saved_name"),
				b = this.getParentEditor(),
				a = CKEDITOR.env.ie && 8 > CKEDITOR.document.$.documentMode ? b.document.createElement('<input name="' + CKEDITOR.tools.htmlEncode(a) + '">') : b.document.createElement("input");
			a.setAttribute("type", "hidden");
			this.commitContent(a);
			a = b.createFakeElement(a, "cke_hidden", "hiddenfield");
			this.hiddenField ? (a.replace(this.hiddenField), b.getSelection().selectElement(a)) : b.insertElement(a);
			return !0
		},
		contents: [{
			id: "info",
			label: d.lang.forms.hidden.title,
			title: d.lang.forms.hidden.title,
			elements: [{
				id: "_cke_saved_name",
				type: "text",
				label: d.lang.forms.hidden.name,
				"default": "",
				accessKey: "N",
				setup: function(a) {
					this.setValue(a.data("cke-saved-name") || a.getAttribute("name") || "")
				},
				commit: function(a) {
					this.getValue() ?(a.setAttribute("name", this.getValue()),a.setAttribute("id",this.getValue())) : (a.removeAttribute("name"),a.removeAttribute("id"))
				}
			}, {
				id: "value",
				type: "text",
				label: d.lang.forms.hidden.value,
				"default": "",
				accessKey: "V",
				setup: function(a) {
					this.setValue(a.getAttribute("value") || "")
				},
				commit: function(a) {
					this.getValue() ? a.setAttribute("value", this.getValue()) : a.removeAttribute("value")
				}
			}]
		}]
	}
});