1CKEDITOR.dialog.add( 'wrapDialolg', function( editor ) {
2    var wr_lang  = editor.config.wrap_lang;
3    var installed_lang =editor.lang.wrap;
4    var icon_path =  DOKU_BASE + 'lib/plugins/wrap/images/';
5    var toolbar_path =  icon_path + 'toolbar/';
6    var icons16_path =  icon_path +  'note/16/';
7
8    var cols = installed_lang['column'] || wr_lang['column'] ||  'columns';
9    var box = installed_lang['box'] ||  wr_lang['box'] || 'simple centered box';
10    var info_box = installed_lang['info'] ||  wr_lang['info']  || 'info box';
11     var tip_box = installed_lang['tip'] ||  wr_lang['tip'] ||  'tip box';
12     var important_box = installed_lang['important'] ||  wr_lang['important']  || 'important box';
13     var alert_box = installed_lang['alert'] ||  wr_lang['alert']  || 'alert box';
14     var help_box = installed_lang['help'] ||  wr_lang['help']  || 'help box';
15     var download_box = installed_lang['download'] ||  wr_lang['download']  || 'download box';
16     var todo_box = installed_lang['todo'] ||  wr_lang['todo']  || 'todo box';
17     var clear_floats = installed_lang['clear'] ||  wr_lang['clear']  || 'clear floats';
18     var emphasized = installed_lang['em'] ||  wr_lang['em'] ||  'especially emphasised';
19     var highlighted = installed_lang['hi'] ||  wr_lang['hi']  || 'highlighted';
20     var less_significant = installed_lang['lo'] ||  wr_lang['lo'] || 'less significant';
21    var reset =  installed_lang['reset'] ||  wr_lang['reset'] || 'Reset';
22    var Columns = '<img src= "' + toolbar_path + 'column.png" title="' +cols+'">';
23    var Box = '<img src= "' + toolbar_path + 'box.png" title="' +box + '">';
24    var InfoBox = '<img src= "' +  icons16_path + 'info.png" title="'+info_box+'">';
25    var TipBox = '<img src= "' +  icons16_path + 'tip.png" title="'+tip_box+'">';
26    var ImportantBox = '<img src= "' +  icons16_path + 'important.png" title="'+important_box+'">';
27    var AlertBox='<img src= "' +  icons16_path + 'alert.png" title="'+alert_box+'">';
28    var HelpBox='<img src= "' +  icons16_path + 'help.png" title="'+help_box+'">';
29    var DownloadBox='<img src= "' +  icons16_path + 'download.png" title="'+download_box+'">';
30    var ToDoBox='<img src= "' +  icons16_path + 'todo.png" title="'+todo_box+'">';
31    var Clear ='<img src= "' +  toolbar_path + 'clear.png" title="'+clear_floats+'">';
32    var Emphasis ='<img src= "' +  toolbar_path + 'em.png" title="'+emphasized+'">';
33    var Hi ='<img src= "' +  toolbar_path + 'hi.png" title="'+highlighted+'">';
34    var Lo ='<img src= "' +  toolbar_path + 'lo.png" title="'+less_significant+'">';
35
36    return {
37        title: 'wrap Properties',
38        minWidth: 460,
39        minHeight: 200,
40        contents: [
41			{
42                id: 'tab-basic',
43                label: 'Basic wrap',
44                elements: [
45                    {
46						type: 'radio',
47						id: 'div_types',
48                        label: editor.lang.wrap.boxes_title||'Box types:',
49						//label: editor.lang.wrap.selectOption,
50						items: [ [Box, 'box' ] , [ InfoBox, 'info' ] ,[TipBox,'tip'],[ImportantBox,'important'],[AlertBox,'alert'],
51                                       [HelpBox ,'help box'],[DownloadBox,'download'],[ ToDoBox,'todo']],
52						style: 'color: black',
53						'default': '',
54					},
55                    {
56					    type: 'radio',
57						id: 'specials',
58                       label: editor.lang.wrap.specials_title || 'Special types and Styles',
59						items: [[ Columns, 'column' ], [Clear,'clear floats'],[Emphasis,'em'],[Hi,'hi'],[Lo,'lo']],
60						style: 'color: black',
61						'default': '',
62					},
63					{
64						type: 'checkbox',
65						id: 'reset',
66						label:  reset,
67						'default': false,
68						 onClick: function() {
69							var nodes = jQuery(":radio" )
70							for(var i = 0; i<nodes.length; i++) {
71								if(nodes[i].checked)
72									nodes[i].checked = false;
73							}
74                            this.setValue(false);
75
76						   }
77					},
78					{
79                        type: 'text',
80                        id: 'wrap',
81                        label: editor.lang.wrap.content || 'Content (optional):',
82              			'default': ''
83                    }
84                ]
85            }
86        ],
87		// Invoked when the dialog is loaded.
88		onShow: function() {
89			// Get the selection from the editor.
90		    var text = editor.getSelection().getSelectedText();
91            if(text) {
92                this.getContentElement( 'tab-basic', 'wrap').disable();
93                this.setValueOf( 'tab-basic', 'wrap',text);
94            }
95               else this.text = false;
96		},
97
98        onOk: function() {
99            var dialog = this;
100
101           var syntaxDiv = editor.config.wrapSyntaxDiv ?  editor.config.wrapSyntaxDiv : 'WRAP';
102           var syntaxSpan = editor.config.wrapSyntaxSpan ?  editor.config.wrapSyntaxSpan : 'wrap';
103           var syntaxDiv = syntaxDiv;
104           var syntaxSpan = syntaxSpan;
105            var open = "";
106            var close = "";
107
108			var TypeValue = dialog.getValueOf( 'tab-basic', 'div_types' );
109            if(!TypeValue) TypeValue = dialog.getValueOf( 'tab-basic', 'specials' );
110            if(TypeValue == 0) return;
111             switch (TypeValue) {
112                        case 'column':
113                            open   =  '<'+syntaxDiv+' group>\n<'+syntaxDiv+' half column>\n';
114                            close =  '\n</'+syntaxDiv+'>\n\n<'+syntaxDiv+' half column>\n\n</'+syntaxDiv+'>\n</'+syntaxDiv+'>\n';
115                            break;
116                        case 'box':
117                           open   = '<'+syntaxDiv+' center round box 60%>\n';
118                           close =   '\n</'+syntaxDiv+'>\n';
119                           break;
120                        case 'info':
121                            open =   '<'+syntaxDiv+' center round info 60%>\n';
122                            close =   '\n</'+syntaxDiv+'>\n';
123                            break;
124                        case 'tip':
125                            open =  '<'+syntaxDiv+' center round tip 60%>\n';
126                            close =   '\n</'+syntaxDiv+'>\n';
127                            break;
128                        case 'important':
129                            open =   '<'+syntaxDiv+' center round important 60%>\n';
130                            close =  '\n</'+syntaxDiv+'>\n';
131                            break;
132                        case 'alert':
133                            open  =  '<'+syntaxDiv+' center round alert 60%>\n';
134                            close =  '\n</'+syntaxDiv+'>\n';
135                            break;
136                        case 'help':
137                            open  =  '<'+syntaxDiv+' center round help 60%>\n';
138                            close =  '\n</'+syntaxDiv+'>\n';
139                            break;
140                        case 'download' :
141                            open =    '<'+syntaxDiv+' center round download 60%>\n';
142                            close =   '\n</'+syntaxDiv+'>\n';
143                            break;
144                        case 'todo':
145                            open =    '<'+syntaxDiv+' center round todo 60%>\n';
146                            close =   '\n</'+syntaxDiv+'>\n';
147                            break;
148                        case 'clear':
149                            open =  '<'+syntaxDiv+' clear/>\n';
150                            close = "";
151                            break;
152                        case 'em':
153                            open =    '<'+syntaxSpan+' em>';
154                            close =   '</'+syntaxSpan+'>';
155                            break;
156                        case 'hi':
157                          open =    '<'+syntaxSpan+' hi>';
158                          close =   '</'+syntaxSpan+'>';
159                          break;
160                        case 'lo':
161                            open =    '<'+syntaxSpan+' lo>';
162                            close =   '</'+syntaxSpan+'>';
163                            break;
164                }
165
166			var wrapText = this.text ? this.text: dialog.getValueOf( 'tab-basic', 'wrap' );
167			editor.insertText ( open + wrapText + close);
168
169        }
170    };
171});