1 /*
  2 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
  3 For licensing, see LICENSE.html or http://ckeditor.com/license
  4 */
  5 CKEDITOR.dialog.add( 'hiddenfield', function( editor )
  6 {
  7 	return {
  8 		title : editor.lang.hidden.title,
  9 		minWidth : 350,
 10 		minHeight : 110,
 11 		onShow : function()
 12 		{
 13 			delete this.hiddenField;
 14
 15 			var element = this.getParentEditor().getSelection().getSelectedElement();
 16 			if ( element && element.getName() == "input" && element.getAttribute( 'type' ) == "checkbox" )
 17 			{
 18 				this.hiddenField = element;
 19 				this.setupContent( element );
 20 			}
 21 		},
 22 		onOk : function()
 23 		{
 24 			var editor,
 25 				element = this.hiddenField,
 26 				isInsertMode = !element;
 27
 28 			if ( isInsertMode )
 29 			{
 30 				editor = this.getParentEditor();
 31 				element = editor.document.createElement( 'input' );
 32 				element.setAttribute( 'type', 'hidden' );
 33 			}
 34
 35 			if ( isInsertMode )
 36 				editor.insertElement( element );
 37 			this.commitContent( element );
 38 		},
 39 		contents : [
 40 			{
 41 				id : 'info',
 42 				label : editor.lang.hidden.title,
 43 				title : editor.lang.hidden.title,
 44 				elements : [
 45 					{
 46 						id : '_cke_saved_name',
 47 						type : 'text',
 48 						label : editor.lang.hidden.name,
 49 						'default' : '',
 50 						accessKey : 'N',
 51 						setup : function( element )
 52 						{
 53 							this.setValue(
 54 									element.getAttribute( '_cke_saved_name' ) ||
 55 									element.getAttribute( 'name' ) ||
 56 									'' );
 57 						},
 58 						commit : function( element )
 59 						{
 60 							if ( this.getValue() )
 61 								element.setAttribute( '_cke_saved_name', this.getValue() );
 62 							else
 63 							{
 64 								element.removeAttribute( '_cke_saved_name' );
 65 								element.removeAttribute( 'name' );
 66 							}
 67 						}
 68 					},
 69 					{
 70 						id : 'value',
 71 						type : 'text',
 72 						label : editor.lang.hidden.value,
 73 						'default' : '',
 74 						accessKey : 'V',
 75 						setup : function( element )
 76 						{
 77 							this.setValue( element.getAttribute( 'value' ) || '' );
 78 						},
 79 						commit : function( element )
 80 						{
 81 							if ( this.getValue() )
 82 								element.setAttribute( 'value', this.getValue() );
 83 							else
 84 								element.removeAttribute( 'value' );
 85 						}
 86 					}
 87 				]
 88 			}
 89 		]
 90 	};
 91 });
 92