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