~ubuntu-it-wiki/wiki-ubuntu-it/wiki-repo

« back to all changes in this revision

Viewing changes to applets/FCKeditor/editor/dialog/fck_scayt.html

  • Committer: Leo Iannacone
  • Date: 2011-06-02 15:05:37 UTC
  • Revision ID: l3on@ubuntu.com-20110602150537-ycrnf58qf67uf593
Added applets for gui editor

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 
2
<!--
 
3
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
 
4
 * Copyright (C) 2003-2010 Frederico Caldeira Knabben
 
5
 *
 
6
 * == BEGIN LICENSE ==
 
7
 *
 
8
 * Licensed under the terms of any of the following licenses at your
 
9
 * choice:
 
10
 *
 
11
 *  - GNU General Public License Version 2 or later (the "GPL")
 
12
 *    http://www.gnu.org/licenses/gpl.html
 
13
 *
 
14
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 
15
 *    http://www.gnu.org/licenses/lgpl.html
 
16
 *
 
17
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
 
18
 *    http://www.mozilla.org/MPL/MPL-1.1.html
 
19
 *
 
20
 * == END LICENSE ==
 
21
-->
 
22
<html>
 
23
        <head>
 
24
                <title>SCAYT Properties</title>
 
25
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
26
                <meta content="noindex, nofollow" name="robots">
 
27
                <script src="common/fck_dialog_common.js" type="text/javascript"></script>
 
28
                <link type="text/css" href="fck_scayt/scayt_dialog.css" rel="stylesheet" />
 
29
                <script type="text/javascript">
 
30
 
 
31
                        var dialog      = window.parent ;
 
32
                        var oEditor     = dialog.InnerDialogLoaded() ;
 
33
                        var FCKLang = oEditor.FCKLang;
 
34
                        var scayt = oEditor.scayt;
 
35
                        var scayt_control = oEditor.scayt_control;
 
36
                        var lang_list = {};
 
37
            var sLang;
 
38
                        var     fckLang;
 
39
            var chosed_lang;
 
40
                        var options;
 
41
                        var     tabs = scayt_control.uiTags || [1,1,0,1];
 
42
                        var     userDicActive = tabs[2] == 1;
 
43
                        var     captions;
 
44
                        var dic_buttons = [
 
45
                                // [0] contains buttons for creating
 
46
                                "dic_create,dic_restore",
 
47
                                // [1] contains buton for manipulation
 
48
                                "dic_rename,dic_delete"
 
49
                        ];
 
50
 
 
51
                        var get =
 
52
                                new function(){
 
53
 
 
54
                                        var mergeObjs = function(obj1, obj2)
 
55
                                        {
 
56
                                                for (var k in obj1)
 
57
                                                        obj2[k] = obj1[k];
 
58
 
 
59
                                                return obj2;
 
60
                                        };
 
61
 
 
62
                                        var removeWhitespaces = function( s )
 
63
                                        {
 
64
                                                s = s.replace( new RegExp("^ +| +$"), '' ) ;
 
65
                                                return s ;
 
66
                                        };
 
67
 
 
68
                                        var addEvent = function( el ,sEventName, fTodo )
 
69
                                        {
 
70
                                                if (el.addEventListener) {
 
71
                                                        el.addEventListener (sEventName,fTodo,false);
 
72
 
 
73
                                                } else if (el.attachEvent) {
 
74
                                                        el.attachEvent ("on"+sEventName,fTodo);
 
75
 
 
76
                                                } else {
 
77
                                                        el["on"+sEventName] = fTodo;
 
78
                                                }
 
79
                                        };
 
80
 
 
81
                                        var getElementsByClassName = function (node,classname ,strTag) {
 
82
                                                strTag = strTag || "*";
 
83
                                                node = node || document;
 
84
                                                if (node.getElementsByClassName)
 
85
                                                        return node.getElementsByClassName(classname);
 
86
                                                else {
 
87
                                                        var objColl = node.getElementsByTagName(strTag);
 
88
                                                        if (!objColl.length &&  strTag == "*" &&  node.all) objColl = node.all;
 
89
                                                        var arr = new Array();
 
90
                                                        var delim = classname.indexOf('|') != -1  ? '|' : ' ';
 
91
                                                        var arrClass = classname.split(delim);
 
92
                                                        for (var i = 0, j = objColl.length; i < j; i++) {
 
93
                                                                var arrObjClass = objColl[i].className.split(' ');
 
94
                                                                if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
 
95
                                                                var c = 0;
 
96
                                                                comparisonLoop:
 
97
                                                                        for ( var k = 0, l = arrObjClass.length ; k < l ; k++ )
 
98
                                                                        {
 
99
                                                                                for ( var m = 0, n = arrClass.length ; m < n ; m++ )
 
100
                                                                                {
 
101
                                                                                        if ( arrClass[m] == arrObjClass[k] )
 
102
                                                                                                c++ ;
 
103
 
 
104
                                                                                        if ( ( delim == '|' && c == 1 ) || ( delim == ' ' && c == arrClass.length ) )
 
105
                                                                                        {
 
106
                                                                                                arr.push( objColl[i] ) ;
 
107
                                                                                                break comparisonLoop ;
 
108
                                                                                        }
 
109
                                                                                }
 
110
                                                                        }
 
111
                                                        }
 
112
                                                        return arr;
 
113
                                                }
 
114
                                        };
 
115
 
 
116
                                        var hasClassName = function ( sClassName, elem ) {
 
117
                                                //.split(/\s+/);
 
118
                                                var aCnames = elem.className.split(/\s+/) || [];
 
119
                                                for (var i=0, l=aCnames.length; i<l ; i++){
 
120
                                                        if (sClassName == aCnames[i])
 
121
                                                                return true;
 
122
                                                }
 
123
                                                return false;
 
124
                                        }
 
125
 
 
126
                                        var single = {
 
127
                                                addClass        : function ( sClassName ) {
 
128
                                                        //console.info( sClassName, this.className, );
 
129
                                                        if ( hasClassName(sClassName , this) )
 
130
                                                                return this;
 
131
                                                        var s = removeWhitespaces(this.className + " " +sClassName);
 
132
                                                        this.className = s;
 
133
                                                        return this;
 
134
 
 
135
                                                },
 
136
                                                removeClass : function ( sClassName ) {
 
137
                                                        var s = removeWhitespaces(this.className.replace(sClassName,""));
 
138
                                                        this.className = s;
 
139
                                                        return this;
 
140
                                                },
 
141
                                                setStyle : function( oStyles )
 
142
                                                {
 
143
                                                        for ( var style in oStyles )
 
144
                                                        {
 
145
                                                                this.style[style] = oStyles[style] ;
 
146
                                                        }
 
147
                                                        return this ;
 
148
                                                },
 
149
                                                bindOnclick             : function ( handler ) {
 
150
                                                        //addEvent( this, "click" , handler);
 
151
                                                        this.onclick = handler;
 
152
                                                        return this;
 
153
                                                },
 
154
                                                bindOnchange    : function ( handler ) {
 
155
                                                        //addEvent( this, "change" , handler);
 
156
                                                        this.onchange = handler;
 
157
                                                        return this;
 
158
                                                },
 
159
                                                getAttr : function ( sAttrName )
 
160
                                                {
 
161
                                                        if ( !sAttrName )
 
162
                                                                return null;
 
163
 
 
164
                                                        return this[sAttrName];
 
165
                                                },
 
166
                                                setAttr : function ( sAttrName , attrVal )
 
167
                                                {
 
168
                                                        if ( !sAttrName || !attrVal )
 
169
                                                                return null;
 
170
 
 
171
                                                        this[sAttrName] = attrVal;
 
172
 
 
173
                                                        return this;
 
174
                                                },
 
175
                                                remAttr : function ( sAttrName )
 
176
                                                {
 
177
                                                        if ( !sAttrName )
 
178
                                                                return null;
 
179
                                                }
 
180
                                        };
 
181
 
 
182
                                        var singleCaller = function ( sMethod,args ) {
 
183
                                                for ( var i=0, l=this.length; i<l ; i++ ){
 
184
                                                        var oItem = mergeObjs( single, this[i] );
 
185
                                                        oItem[sMethod].apply(this[i],args);
 
186
                                                }
 
187
                                        };
 
188
 
 
189
 
 
190
                                        var collection = {
 
191
 
 
192
                                                addClass        : function ( sClassName ){
 
193
                                                        singleCaller.call(this, "addClass", [sClassName])
 
194
                                                        return this;
 
195
                                                },
 
196
                                                removeClass     : function ( sClassName ) {
 
197
                                                        singleCaller.call(this, "removeClass", [sClassName])
 
198
                                                        return this;
 
199
                                                },
 
200
                                                setStyle                : function ( oStyles ) {
 
201
                                                        singleCaller.call(this, "setStyle", [oStyles])
 
202
                                                        return this;
 
203
                                                },
 
204
                                                bindOnclick             : function ( f ) {
 
205
                                                        singleCaller.call(this, "bindOnclick", [f])
 
206
                                                        return this;
 
207
                                                },
 
208
                                                bindOnchange    : function ( f ) {
 
209
                                                        singleCaller.call(this, "bindOnchange", [f])
 
210
                                                        return this;
 
211
                                                },
 
212
 
 
213
                                                forEach : function ( fTodo ) {
 
214
                                                        //el,i
 
215
                                                        for (var i=0, l=this.length; i<l ; i++){
 
216
                                                                fTodo.apply(this[i], [this[i],i ]);
 
217
                                                        }
 
218
                                                        return this;
 
219
                                                }
 
220
 
 
221
                                        };
 
222
 
 
223
 
 
224
 
 
225
                                        this.byClass = function( sClassName ){
 
226
                                                var o = getElementsByClassName(document, sClassName );
 
227
                                                return o ? mergeObjs( collection, o ) : o;
 
228
                                        };
 
229
 
 
230
                                        this.byId = function( sId ){
 
231
                                                var o = document.getElementById( sId );
 
232
                                                return o ? mergeObjs( single, o ) : o;
 
233
                                        };
 
234
 
 
235
                                        this.gup = function ( name ){
 
236
                                        name = name.replace( /[\[]/, '\\\[' ).replace( /[\]]/, '\\\]' ) ;
 
237
                                        var regexS = '[\\?&]' + name + '=([^&#]*)' ;
 
238
                                        var regex = new RegExp( regexS ) ;
 
239
                                        var results = regex.exec( window.location.href ) ;
 
240
 
 
241
                                        if( results == null )
 
242
                                            return '' ;
 
243
                                        else
 
244
                                            return results[ 1 ] ;
 
245
                                        };
 
246
                                        this.wrap = function ( o ) {
 
247
                                                return o ? mergeObjs( single, o ) : o;
 
248
                                        };
 
249
                                        this.forEach = function ( oScope, fTodo ){
 
250
                                                collection.forEach.apply( oScope,[fTodo] );
 
251
                                        };
 
252
 
 
253
                                 };
 
254
 
 
255
 
 
256
 
 
257
                        // Add the dialog tabs.
 
258
                        tabs[0] == 1 && dialog.AddTab( 'options', 'Options' ) ;
 
259
                        tabs[1] == 1 && dialog.AddTab( 'langs', 'Languages' ) ;
 
260
                        tabs[2] == 1 && dialog.AddTab( 'dictionary', 'Dictionary' ) ;
 
261
                        tabs[3] == 1 && dialog.AddTab( 'about', 'About' ) ;
 
262
 
 
263
                        // Function called when a dialog tab is selected.
 
264
                        function OnDialogTabChange( tabCode )
 
265
                        {
 
266
                                ShowE('inner_options'   , ( tabCode == 'options' ) ) ;
 
267
                                ShowE('inner_langs'     , ( tabCode == 'langs' ) ) ;
 
268
                                ShowE('inner_dictionary'                , ( tabCode == 'dictionary' ) ) ;
 
269
                                ShowE('inner_about'     , ( tabCode == 'about' ) ) ;
 
270
                        }
 
271
 
 
272
 
 
273
 
 
274
 
 
275
 
 
276
                        window.onload = function()
 
277
                        {
 
278
                                // Things to do when the page is loaded.
 
279
 
 
280
                                if ( document.location.search.length )
 
281
                                        dialog.SetSelectedTab( document.location.search.substr(1) ) ;
 
282
 
 
283
                                dialog.SetOkButton( true ) ;
 
284
 
 
285
 
 
286
                        if (!scayt) throw "SCAYT is undefined";
 
287
                        if (!scayt_control) throw "SCAYT_CONTROL is undefined";
 
288
 
 
289
                                        // show alowed tabs
 
290
                                        tabs = scayt_control.uiTags || [1,1,1,0];
 
291
 
 
292
 
 
293
                                        sLang = scayt_control.getLang();
 
294
                        fckLang = "en";
 
295
                                        options = scayt_control.option();
 
296
                                        // apply captions
 
297
                                        scayt.getCaption( fckLang, function( caps )
 
298
                                        {
 
299
                                                //console.info( "scayt.getCaption runned" )
 
300
                                                captions = caps;
 
301
                                                apllyCaptions();
 
302
                                                //lang_list = scayt.getLangList();
 
303
                                lang_list = scayt.getLangList() ;//|| {ltr: {"en_US" : "English","en_GB" : "British English","pt_BR" : "Brazilian Portuguese","da_DK" : "Danish","nl_NL" : "Dutch","en_CA" : "English Canadian","fi_FI" : "Finnish","fr_FR" : "French","fr_CA" : "French Canadian","de_DE" : "German","el_GR" : "Greek","hu_HU" : "Hungarian","it_IT" : "Italian","nb_NO" : "Norwegian","pl_PL" : "Polish","pt_PT" : "Portuguese","ru_RU" : "Russian","es_ES" : "Spanish","sv_SE" : "Swedish","tr_TR" : "Turkish","uk_UA" : "Ukrainian","cy_GB" : "Welsh"},rtl: {"ar_EG" : "Arabic"}};
 
304
 
 
305
 
 
306
 
 
307
 
 
308
                                // ** animate options
 
309
                                get.byClass("_scayt_option").forEach(function(el,i){
 
310
 
 
311
                                                        if ('undefined' != typeof(options[el.name])) {
 
312
                                        // *** set default values
 
313
 
 
314
                                        if ( 1 == options[ el.name ] ){
 
315
                                           //el.setAttribute("checked","true");
 
316
                                                                   get.wrap(el).setAttr("checked" ,true)
 
317
                                                                   //document.all_options[el.name].checked = "true";
 
318
                                                                   //el.checked = true;
 
319
                                                                   //alert( options[ dojo.attr(el ,'name') ] + " el " )
 
320
                                        }
 
321
                                                                //console.info(options)
 
322
                                        // *** bind events
 
323
                                        get.wrap(el).bindOnclick( function(ev){
 
324
 
 
325
                                                                        var that = get.wrap(this);
 
326
                                                                        var isCheck = that.getAttr("checked");
 
327
                                                                        //console.info(isCheck)
 
328
                                            if ( isCheck == false ) {
 
329
 
 
330
                                                                                //that.setAttr("checked",false);
 
331
                                                                                options[ this.name ] = 0;
 
332
                                            }else{
 
333
                                                //that.setAttr("checked",true);
 
334
                                                                                options[ this.name ] = 1;
 
335
                                            }
 
336
                                                                        //console.info(options)
 
337
                                        });
 
338
                                    }
 
339
                                });
 
340
 
 
341
 
 
342
                                // * Create languages tab
 
343
                                // ** convert langs obj to array
 
344
                                var lang_arr = [];
 
345
 
 
346
                                for (var k in lang_list.rtl){
 
347
                                    // find curent lang
 
348
                                    if ( k == sLang)
 
349
                                        chosed_lang = lang_list.rtl[k] + "::" + k;
 
350
                                    lang_arr[lang_arr.length] = lang_list.rtl[k] + "::" + k;
 
351
 
 
352
                                }
 
353
                                for (var k in lang_list.ltr){
 
354
                                     // find curent lang
 
355
                                     if ( k == sLang)
 
356
                                        chosed_lang = lang_list.ltr[k] + "::" + k;
 
357
                                    lang_arr[lang_arr.length] = lang_list.ltr[k] + "::" + k;
 
358
                                }
 
359
                                lang_arr.sort();
 
360
 
 
361
                                // ** find lang containers
 
362
 
 
363
                                var lcol = get.byId("lcolid");
 
364
                                var rcol = get.byId("rcolid");
 
365
                                // ** place langs in DOM
 
366
 
 
367
                                get.forEach(lang_arr , function( l , i ){
 
368
 
 
369
                                                        //console.info( l,i );
 
370
 
 
371
                                                        var l_arr = l.split('::');
 
372
                                    var l_name = l_arr[0];
 
373
                                    var l_code = l_arr[1];
 
374
                                    var row = document.createElement('div');
 
375
                                    row.id = l_code;
 
376
                                    row.className = "li";
 
377
                                    // split langs on half
 
378
                                    var col = ( i < lang_arr.length/2 ) ? lcol:rcol ;
 
379
 
 
380
                                    // append row
 
381
                                    //console.dir( col )
 
382
                                    col.appendChild(row);
 
383
                                    var row_dom = get.byId( l_code )
 
384
                                    row_dom.innerHTML = l_name;
 
385
 
 
386
                                    var checkActiveLang = function( id ){
 
387
                                        return chosed_lang.split("::")[1] == id;
 
388
                                    };
 
389
                                    // bind click
 
390
                                    row_dom.bindOnclick(function(ev){
 
391
 
 
392
                                        if ( checkActiveLang(this.id) ) return false;
 
393
                                        var elId = this.id;
 
394
                                                                get.byId(this.id)
 
395
                                        .addClass("Button")
 
396
                                        .removeClass("DarkBackground");
 
397
 
 
398
                                        window.setTimeout( function (){ get.byId(elId).setStyle({opacity:"0.5",cursor:"no-drop"});  } ,300 );
 
399
 
 
400
                                        get.byId(chosed_lang.split("::")[1])
 
401
                                            .addClass("DarkBackground")
 
402
                                            .removeClass("Button")
 
403
                                            .setStyle({opacity:"1",cursor:"pointer"});
 
404
 
 
405
                                        chosed_lang = this.innerHTML + "::" + this.id;
 
406
                                        return true;
 
407
                                    })
 
408
                                                        .setStyle({
 
409
                                        cursor:"pointer"
 
410
                                    });
 
411
                                    // select current lang
 
412
                                    if (l == chosed_lang)
 
413
                                        row_dom.addClass("Button").setStyle({opacity:"0.5",cursor:"no-drop"});
 
414
                                    else
 
415
                                        row_dom.addClass("DarkBackground").setStyle({opacity:"1"});
 
416
 
 
417
                                });
 
418
                                                // * user dictionary
 
419
                                                if ( userDicActive ){
 
420
                                                        initUserDictionary()
 
421
 
 
422
                                                }
 
423
                                        });
 
424
 
 
425
 
 
426
 
 
427
                        }
 
428
 
 
429
 
 
430
 
 
431
 
 
432
                        var buttons = [ 'dic_create','dic_delete','dic_rename','dic_restore' ];
 
433
                        var labels  = [ 'mixedCase','mixedWithDigits','allCaps','ignoreDomainNames' ];
 
434
 
 
435
 
 
436
                        function apllyCaptions ( )
 
437
                        {
 
438
 
 
439
                                // fill tabs headers
 
440
                                // add missing captions
 
441
 
 
442
                                get.byClass("PopupTab").forEach(function(el,i){
 
443
 
 
444
                                        if ( tabs[i] == 1 ){
 
445
                                                el.style.display = "block";
 
446
                                        }
 
447
                                        el.innerHTML = captions['tab_'+el.id];
 
448
 
 
449
                                });
 
450
 
 
451
                                // Fill options labels.
 
452
                                for ( i in labels )
 
453
                                {
 
454
                                        var label = 'label_' + labels[ i ],
 
455
                                                labelElement = document.getElementById( label );
 
456
 
 
457
                                        if (  'undefined' != typeof labelElement
 
458
                                           && 'undefined' != typeof captions[ label ] && captions[ label ] !== ""
 
459
                                           && 'undefined' != typeof options[labels[ i ]] )
 
460
                                        {
 
461
                                                labelElement.innerHTML = captions[ label ];
 
462
                                                var labelParent = labelElement.parentNode;
 
463
                                                labelParent.style.display = "block";
 
464
                                        }
 
465
                                }
 
466
                                // fill dictionary section
 
467
                                for ( var i in buttons )
 
468
                                {
 
469
                                        var button = buttons[ i ];
 
470
                                        get.byId( button ).innerHTML = '<span>' + captions[ 'button_' + button]  +'</span>' ;
 
471
                                }
 
472
                                get.byId("dname").innerHTML = captions['label_dname'];
 
473
                                get.byId( 'dic_info' ).innerHTML = captions[ 'dic_info' ];
 
474
 
 
475
                                // fill about tab
 
476
                                var about = '<p>' + captions[ 'about_throwt_image' ] + '</p>'+
 
477
                                        '<p>' + captions[ 'version' ]  + scayt.version.toString() + '</p>' +
 
478
                                        '<p>' + captions[ 'about_throwt_copy' ] + '</p>';
 
479
 
 
480
                                get.byId( 'scayt_about' ).innerHTML = about;
 
481
 
 
482
                        }
 
483
 
 
484
 
 
485
                        function initUserDictionary () {
 
486
 
 
487
                                scayt.getNameUserDictionary(
 
488
                                        function( o )
 
489
                                        {
 
490
                                                var dic_name = o.dname;
 
491
                                                if ( dic_name )
 
492
                                                {
 
493
                                                        get.byId( 'dic_name' ).value = dic_name;
 
494
                                                        display_dic_buttons( dic_buttons[1] );
 
495
                                                }
 
496
                                                else
 
497
                                                        display_dic_buttons( dic_buttons[0] );
 
498
 
 
499
                                        },
 
500
                                        function ()
 
501
                                        {
 
502
                                                get.byId( 'dic_name' ).value("");
 
503
                                                dic_error_message(captions["err_dic_enable"] || "Used dictionary are unaveilable now.")
 
504
                                        }
 
505
                                );
 
506
 
 
507
                                dic_success_message("");
 
508
 
 
509
                                 // ** bind event listeners
 
510
                get.byClass("button").bindOnclick(function( ){
 
511
 
 
512
                                        // get dic name
 
513
                                        var dic_name = get.byId('dic_name').value ;
 
514
                                        // check common dictionary rules
 
515
                                        if (!dic_name) {
 
516
                                                dic_error_message(" Dictionary name should not be empty. ");
 
517
                                                return false;
 
518
                                        }
 
519
                                        //apply handler
 
520
                                        window[this.id].apply( window, [this, dic_name, dic_buttons ] );
 
521
 
 
522
                                        //console.info( typeof window[this.id], window[this.id].calle )
 
523
                                        return false;
 
524
                                });
 
525
 
 
526
                        }
 
527
 
 
528
                        dic_create = function( el, dic_name , dic_buttons )
 
529
                        {
 
530
                                // comma separated button's ids include repeats if exists
 
531
                                var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
 
532
 
 
533
                                var err_massage = captions["err_dic_create"];
 
534
                                var suc_massage = captions["succ_dic_create"];
 
535
                                //console.info("--plugin ");
 
536
 
 
537
                                scayt.createUserDictionary(dic_name,
 
538
                                        function(arg)
 
539
                                                {
 
540
                                                        //console.info( "dic_create callback called with args" , arg );
 
541
                                                        hide_dic_buttons ( all_buttons );
 
542
                                                        display_dic_buttons ( dic_buttons[1] );
 
543
                                                        suc_massage = suc_massage.replace("%s" , arg.dname );
 
544
                                                        dic_success_message (suc_massage);
 
545
                                                },
 
546
                                        function(arg)
 
547
                                                {
 
548
                                                        //console.info( "dic_create errorback called with args" , arg )
 
549
                                                        err_massage = err_massage.replace("%s" ,arg.dname );
 
550
                                                        dic_error_message ( err_massage + "( "+ (arg.message || "") +")");
 
551
                                                });
 
552
 
 
553
                        };
 
554
 
 
555
                        dic_rename = function( el, dic_name , dic_buttons )
 
556
                        {
 
557
                                //
 
558
                                // try to rename dictionary
 
559
                                // @TODO: rename dict
 
560
                                //console.info ( captions["err_dic_rename"] )
 
561
                                var err_massage = captions["err_dic_rename"] || "";
 
562
                                var suc_massage = captions["succ_dic_rename"] || "";
 
563
                                scayt.renameUserDictionary(dic_name,
 
564
                                        function(arg)
 
565
                                                {
 
566
                                                        //console.info( "dic_rename callback called with args" , arg );
 
567
                                                        suc_massage = suc_massage.replace("%s" , arg.dname );
 
568
                                                        set_dic_name( dic_name );
 
569
                                                        dic_success_message ( suc_massage );
 
570
                                                },
 
571
                                        function(arg)
 
572
                                                {
 
573
                                                        //console.info( "dic_rename errorback called with args" , arg )
 
574
                                                        err_massage = err_massage.replace("%s" , arg.dname  );
 
575
                                                        set_dic_name( dic_name );
 
576
                                                        dic_error_message( err_massage + "( " + ( arg.message || "" ) + " )" );
 
577
                                                });
 
578
                        };
 
579
 
 
580
                        dic_delete = function ( el, dic_name , dic_buttons )
 
581
                        {
 
582
                                var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
 
583
                                var err_massage = captions["err_dic_delete"];
 
584
                                var suc_massage = captions["succ_dic_delete"];
 
585
 
 
586
                                // try to delete dictionary
 
587
                                // @TODO: delete dict
 
588
                                scayt.deleteUserDictionary(
 
589
                                        function(arg)
 
590
                                                {
 
591
                                                        //console.info( "dic_delete callback " , dic_name ,arg );
 
592
                                                        suc_massage = suc_massage.replace("%s" , arg.dname );
 
593
                                                        hide_dic_buttons ( all_buttons );
 
594
                                                        display_dic_buttons ( dic_buttons[0] );
 
595
                                                        set_dic_name( "" ); // empty input field
 
596
                                                        dic_success_message( suc_massage );
 
597
                                                },
 
598
                                        function(arg)
 
599
                                                {
 
600
                                                        //console.info( " dic_delete errorback called with args" , arg )
 
601
                                                        err_massage = err_massage.replace("%s" , arg.dname );
 
602
                                                        dic_error_message(err_massage);
 
603
                                                });
 
604
                        };
 
605
 
 
606
                        dic_restore = dialog.dic_restore || function ( el, dic_name , dic_buttons )
 
607
                        {
 
608
                                // try to restore existing dictionary
 
609
                                var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
 
610
                                var err_massage = captions["err_dic_restore"];
 
611
                                var suc_massage = captions["succ_dic_restore"];
 
612
 
 
613
                                scayt.restoreUserDictionary(dic_name,
 
614
                                        function(arg)
 
615
                                                {
 
616
                                                        //console.info( "dic_restore callback called with args" , arg );
 
617
                                                        suc_massage = suc_massage.replace("%s" , arg.dname );
 
618
                                                        hide_dic_buttons ( all_buttons );
 
619
                                                        display_dic_buttons(dic_buttons[1]);
 
620
                                                        dic_success_message( suc_massage );
 
621
                                                },
 
622
                                        function(arg)
 
623
                                                {
 
624
                                                        //console.info( " dic_restore errorback called with args" , arg )
 
625
                                                        err_massage = err_massage.replace("%s" , arg.dname );
 
626
                                                        dic_error_message( err_massage );
 
627
                                                });
 
628
                        };
 
629
 
 
630
                        function dic_error_message( m )
 
631
                        {
 
632
                                if ( !m )
 
633
                                        return ;
 
634
 
 
635
                                get.byId('dic_message').innerHTML =  '<span class="error">' + m + '</span>' ;
 
636
                        }
 
637
 
 
638
            function dic_success_message( m )
 
639
            {
 
640
                                if ( !m )
 
641
                                        return ;
 
642
 
 
643
                                get.byId('dic_message').innerHTML = '<span class="success">' + m + '</span>' ;
 
644
                        }
 
645
 
 
646
                        function display_dic_buttons ( sIds ){
 
647
                                sIds = new String( sIds );
 
648
                                get.forEach( sIds.split(','), function ( id,i) {
 
649
                                        get.byId(id).setStyle({display:"inline"});
 
650
                                });
 
651
                        }
 
652
                        function hide_dic_buttons ( sIds ){
 
653
                                sIds = new String( sIds );
 
654
                                get.forEach( sIds.split(','), function ( id,i) {
 
655
                                        get.byId(id).setStyle({display:"none"});
 
656
                                });
 
657
                        }
 
658
                        function set_dic_name ( dic_name ) {
 
659
                                get.byId('dic_name').value = dic_name;
 
660
                        }
 
661
                        function display_dic_tab () {
 
662
                                get.byId("dic_tab").style.display = "block";
 
663
                        }
 
664
 
 
665
                        function Ok()
 
666
                        {
 
667
                                // Things to do when the Ok button is clicked.
 
668
                                var c = 0;
 
669
                            // set upp options if any was set
 
670
                            var o = scayt_control.option();
 
671
                                //console.info(options)
 
672
                            for ( var oN in options ) {
 
673
 
 
674
                                if ( o[oN] != options[oN] && c == 0){
 
675
                                                //console.info( "set option " )
 
676
                                    scayt_control.option( options );
 
677
                                    c++;
 
678
                                }
 
679
                            }
 
680
                            //setup languge if it was change
 
681
                            var csLang = chosed_lang.split("::")[1];
 
682
                            if ( csLang && sLang != csLang ){
 
683
                                scayt_control.setLang( csLang );
 
684
                                        //console.info(sLang+" -> "+csLang , scayt_control)
 
685
                                c++;
 
686
                            }
 
687
 
 
688
                            if ( c > 0 )  scayt_control.refresh();
 
689
 
 
690
                            return dialog.Cancel();
 
691
 
 
692
                        }
 
693
 
 
694
                </script>
 
695
        </head>
 
696
        <body style="OVERFLOW: hidden" scroll="no">
 
697
                <div class="tab_container" id="inner_options">
 
698
 
 
699
           <ul id="scayt_options">
 
700
               <li class="_scayt_options">
 
701
                   <input class="_scayt_option" type="checkbox" value="0" name="allCaps" />
 
702
                   <label for="allCaps" id="label_allCaps"></label>
 
703
               </li>
 
704
               <li>
 
705
                   <input class="_scayt_option" type="checkbox" value="0" name="ignoreDomainNames" />
 
706
                   <label for="ignoreDomainNames" id="label_ignoreDomainNames"></label>
 
707
               </li>
 
708
               <li>
 
709
                   <input class="_scayt_option" type="checkbox" value="0" name="mixedCase" />
 
710
                   <label for="mixedCase" id="label_mixedCase"></label>
 
711
               </li>
 
712
               <li>
 
713
                   <input class="_scayt_option" type="checkbox" value="0" name="mixedWithDigits" />
 
714
                   <label for="mixedWithDigits" id="label_mixedWithDigits"></label>
 
715
               </li>
 
716
           </ul>
 
717
                </div>
 
718
                <div class="tab_container" id="inner_langs">
 
719
 
 
720
                   <div class="lcol" id="lcolid"></div>
 
721
           <div class="rcol" id="rcolid"></div>
 
722
                </div>
 
723
                <div class="tab_container" id="inner_dictionary">
 
724
 
 
725
                   <div id="dic_message"></div>
 
726
                        <div id="_off_dic_tab" class="dictionary" >
 
727
                                <div style="padding-left:10px;">
 
728
                                                        <label id="dname" for="dname"></label>
 
729
                                                        <input type="text" size="14" maxlength="15" value="" id="dic_name" name="dic_name"/>
 
730
                                                </div>
 
731
                                                <div class="dic_buttons">
 
732
                                                        <a href="#" id="dic_create" class="button">  </a>
 
733
                                                        <a href="#" id="dic_delete" class="button">  </a>
 
734
                                                        <a href="#" id="dic_rename" class="button">  </a>
 
735
                                                        <a href="#" id="dic_restore" class="button">  </a>
 
736
                                                </div>
 
737
 
 
738
                                                <div id="dic_info"></div>
 
739
 
 
740
                        </div>
 
741
                </div>
 
742
                <div id="inner_about" class="tab_container">
 
743
                   <div id="scayt_about"></div>
 
744
                </div>
 
745
        </body>
 
746
</html>