|
@@ -0,0 +1,751 @@
|
|
|
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
|
|
|
+<!--
|
|
|
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
|
|
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
|
|
|
+ *
|
|
|
+ * == BEGIN LICENSE ==
|
|
|
+ *
|
|
|
+ * Licensed under the terms of any of the following licenses at your
|
|
|
+ * choice:
|
|
|
+ *
|
|
|
+ * - GNU General Public License Version 2 or later (the "GPL")
|
|
|
+ * http://www.gnu.org/licenses/gpl.html
|
|
|
+ *
|
|
|
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
|
|
+ * http://www.gnu.org/licenses/lgpl.html
|
|
|
+ *
|
|
|
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
|
|
|
+ * http://www.mozilla.org/MPL/MPL-1.1.html
|
|
|
+ *
|
|
|
+ * == END LICENSE ==
|
|
|
+-->
|
|
|
+<html>
|
|
|
+ <head>
|
|
|
+ <title>SCAYT Properties</title>
|
|
|
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
|
+ <meta content="noindex, nofollow" name="robots">
|
|
|
+ <script src="common/fck_dialog_common.js" type="text/javascript"></script>
|
|
|
+ <link type="text/css" href="fck_scayt/scayt_dialog.css" rel="stylesheet" />
|
|
|
+ <script type="text/javascript">
|
|
|
+
|
|
|
+ var dialog = window.parent ;
|
|
|
+ var oEditor = dialog.InnerDialogLoaded() ;
|
|
|
+ var FCKLang = oEditor.FCKLang;
|
|
|
+ var scayt = oEditor.scayt;
|
|
|
+ var scayt_control = oEditor.scayt_control;
|
|
|
+ var lang_list = {};
|
|
|
+ var sLang;
|
|
|
+ var fckLang;
|
|
|
+ var chosed_lang;
|
|
|
+ var options;
|
|
|
+ var tabs = scayt_control.uiTags || [1,1,0,1];
|
|
|
+ var userDicActive = tabs[2] == 1;
|
|
|
+ var captions;
|
|
|
+ var dic_buttons = [
|
|
|
+ // [0] contains buttons for creating
|
|
|
+ "dic_create,dic_restore",
|
|
|
+ // [1] contains buton for manipulation
|
|
|
+ "dic_rename,dic_delete"
|
|
|
+ ];
|
|
|
+
|
|
|
+ var get =
|
|
|
+ new function(){
|
|
|
+
|
|
|
+ var mergeObjs = function(obj1, obj2)
|
|
|
+ {
|
|
|
+ for (var k in obj1)
|
|
|
+ obj2[k] = obj1[k];
|
|
|
+
|
|
|
+ return obj2;
|
|
|
+ };
|
|
|
+
|
|
|
+ var removeWhitespaces = function( s )
|
|
|
+ {
|
|
|
+ s = s.replace( new RegExp("^ +| +$"), '' ) ;
|
|
|
+ return s ;
|
|
|
+ };
|
|
|
+
|
|
|
+ var addEvent = function( el ,sEventName, fTodo )
|
|
|
+ {
|
|
|
+ if (el.addEventListener) {
|
|
|
+ el.addEventListener (sEventName,fTodo,false);
|
|
|
+
|
|
|
+ } else if (el.attachEvent) {
|
|
|
+ el.attachEvent ("on"+sEventName,fTodo);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ el["on"+sEventName] = fTodo;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ var getElementsByClassName = function (node,classname ,strTag) {
|
|
|
+ strTag = strTag || "*";
|
|
|
+ node = node || document;
|
|
|
+ if (node.getElementsByClassName)
|
|
|
+ return node.getElementsByClassName(classname);
|
|
|
+ else {
|
|
|
+ var objColl = node.getElementsByTagName(strTag);
|
|
|
+ if (!objColl.length && strTag == "*" && node.all) objColl = node.all;
|
|
|
+ var arr = new Array();
|
|
|
+ var delim = classname.indexOf('|') != -1 ? '|' : ' ';
|
|
|
+ var arrClass = classname.split(delim);
|
|
|
+ for (var i = 0, j = objColl.length; i < j; i++) {
|
|
|
+ var arrObjClass = objColl[i].className.split(' ');
|
|
|
+ if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
|
|
|
+ var c = 0;
|
|
|
+ comparisonLoop:
|
|
|
+ for ( var k = 0, l = arrObjClass.length ; k < l ; k++ )
|
|
|
+ {
|
|
|
+ for ( var m = 0, n = arrClass.length ; m < n ; m++ )
|
|
|
+ {
|
|
|
+ if ( arrClass[m] == arrObjClass[k] )
|
|
|
+ c++ ;
|
|
|
+
|
|
|
+ if ( ( delim == '|' && c == 1 ) || ( delim == ' ' && c == arrClass.length ) )
|
|
|
+ {
|
|
|
+ arr.push( objColl[i] ) ;
|
|
|
+ break comparisonLoop ;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return arr;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ var hasClassName = function ( sClassName, elem ) {
|
|
|
+ //.split(/\s+/);
|
|
|
+ var aCnames = elem.className.split(/\s+/) || [];
|
|
|
+ for (var i=0, l=aCnames.length; i<l ; i++){
|
|
|
+ if (sClassName == aCnames[i])
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ var single = {
|
|
|
+ addClass : function ( sClassName ) {
|
|
|
+ //console.info( sClassName, this.className, );
|
|
|
+ if ( hasClassName(sClassName , this) )
|
|
|
+ return this;
|
|
|
+ var s = removeWhitespaces(this.className + " " +sClassName);
|
|
|
+ this.className = s;
|
|
|
+ return this;
|
|
|
+
|
|
|
+ },
|
|
|
+ removeClass : function ( sClassName ) {
|
|
|
+ var s = removeWhitespaces(this.className.replace(sClassName,""));
|
|
|
+ this.className = s;
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+ setStyle : function( oStyles )
|
|
|
+ {
|
|
|
+ for ( var style in oStyles )
|
|
|
+ {
|
|
|
+ this.style[style] = oStyles[style] ;
|
|
|
+ }
|
|
|
+ return this ;
|
|
|
+ },
|
|
|
+ bindOnclick : function ( handler ) {
|
|
|
+ //addEvent( this, "click" , handler);
|
|
|
+ this.onclick = handler;
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+ bindOnchange : function ( handler ) {
|
|
|
+ //addEvent( this, "change" , handler);
|
|
|
+ this.onchange = handler;
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+ getAttr : function ( sAttrName )
|
|
|
+ {
|
|
|
+ if ( !sAttrName )
|
|
|
+ return null;
|
|
|
+
|
|
|
+ return this[sAttrName];
|
|
|
+ },
|
|
|
+ setAttr : function ( sAttrName , attrVal )
|
|
|
+ {
|
|
|
+ if ( !sAttrName || !attrVal )
|
|
|
+ return null;
|
|
|
+
|
|
|
+ this[sAttrName] = attrVal;
|
|
|
+
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+ remAttr : function ( sAttrName )
|
|
|
+ {
|
|
|
+ if ( !sAttrName )
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ var singleCaller = function ( sMethod,args ) {
|
|
|
+ for ( var i=0, l=this.length; i<l ; i++ ){
|
|
|
+ var oItem = mergeObjs( single, this[i] );
|
|
|
+ oItem[sMethod].apply(this[i],args);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
+ var collection = {
|
|
|
+
|
|
|
+ addClass : function ( sClassName ){
|
|
|
+ singleCaller.call(this, "addClass", [sClassName])
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+ removeClass : function ( sClassName ) {
|
|
|
+ singleCaller.call(this, "removeClass", [sClassName])
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+ setStyle : function ( oStyles ) {
|
|
|
+ singleCaller.call(this, "setStyle", [oStyles])
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+ bindOnclick : function ( f ) {
|
|
|
+ singleCaller.call(this, "bindOnclick", [f])
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+ bindOnchange : function ( f ) {
|
|
|
+ singleCaller.call(this, "bindOnchange", [f])
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+
|
|
|
+ forEach : function ( fTodo ) {
|
|
|
+ //el,i
|
|
|
+ for (var i=0, l=this.length; i<l ; i++){
|
|
|
+ fTodo.apply(this[i], [this[i],i ]);
|
|
|
+ }
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ this.byClass = function( sClassName ){
|
|
|
+ var o = getElementsByClassName(document, sClassName );
|
|
|
+ return o ? mergeObjs( collection, o ) : o;
|
|
|
+ };
|
|
|
+
|
|
|
+ this.byId = function( sId ){
|
|
|
+ var o = document.getElementById( sId );
|
|
|
+ return o ? mergeObjs( single, o ) : o;
|
|
|
+ };
|
|
|
+
|
|
|
+ this.gup = function ( name ){
|
|
|
+ name = name.replace( /[\[]/, '\\\[' ).replace( /[\]]/, '\\\]' ) ;
|
|
|
+ var regexS = '[\\?&]' + name + '=([^&#]*)' ;
|
|
|
+ var regex = new RegExp( regexS ) ;
|
|
|
+ var results = regex.exec( window.location.href ) ;
|
|
|
+
|
|
|
+ if( results == null )
|
|
|
+ return '' ;
|
|
|
+ else
|
|
|
+ return results[ 1 ] ;
|
|
|
+ };
|
|
|
+ this.wrap = function ( o ) {
|
|
|
+ return o ? mergeObjs( single, o ) : o;
|
|
|
+ };
|
|
|
+ this.forEach = function ( oScope, fTodo ){
|
|
|
+ collection.forEach.apply( oScope,[fTodo] );
|
|
|
+ };
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // Add the dialog tabs.
|
|
|
+ tabs[0] == 1 && dialog.AddTab( 'options', 'Options' ) ;
|
|
|
+ tabs[1] == 1 && dialog.AddTab( 'langs', 'Languages' ) ;
|
|
|
+ tabs[2] == 1 && dialog.AddTab( 'dictionary', 'Dictionary' ) ;
|
|
|
+ tabs[3] == 1 && dialog.AddTab( 'about', 'About' ) ;
|
|
|
+
|
|
|
+ // Function called when a dialog tab is selected.
|
|
|
+ function OnDialogTabChange( tabCode )
|
|
|
+ {
|
|
|
+ ShowE('inner_options' , ( tabCode == 'options' ) ) ;
|
|
|
+ ShowE('inner_langs' , ( tabCode == 'langs' ) ) ;
|
|
|
+ ShowE('inner_dictionary' , ( tabCode == 'dictionary' ) ) ;
|
|
|
+ ShowE('inner_about' , ( tabCode == 'about' ) ) ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ window.onload = function()
|
|
|
+ {
|
|
|
+ // Things to do when the page is loaded.
|
|
|
+
|
|
|
+ if ( document.location.search.length )
|
|
|
+ dialog.SetSelectedTab( document.location.search.substr(1) ) ;
|
|
|
+
|
|
|
+ dialog.SetOkButton( true ) ;
|
|
|
+
|
|
|
+
|
|
|
+ if (!scayt) throw "SCAYT is undefined";
|
|
|
+ if (!scayt_control) throw "SCAYT_CONTROL is undefined";
|
|
|
+
|
|
|
+ // show alowed tabs
|
|
|
+ tabs = scayt_control.uiTags || [1,1,1,0];
|
|
|
+
|
|
|
+
|
|
|
+ sLang = scayt_control.getLang();
|
|
|
+ fckLang = "en";
|
|
|
+ options = scayt_control.option();
|
|
|
+ // apply captions
|
|
|
+ scayt.getCaption( fckLang, function( caps )
|
|
|
+ {
|
|
|
+ //console.info( "scayt.getCaption runned" )
|
|
|
+ captions = caps;
|
|
|
+ apllyCaptions();
|
|
|
+ //lang_list = scayt.getLangList();
|
|
|
+ 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"}};
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // ** animate options
|
|
|
+ get.byClass("_scayt_option").forEach(function(el,i){
|
|
|
+
|
|
|
+ if ('undefined' != typeof(options[el.name])) {
|
|
|
+ // *** set default values
|
|
|
+
|
|
|
+ if ( 1 == options[ el.name ] ){
|
|
|
+ //el.setAttribute("checked","true");
|
|
|
+ get.wrap(el).setAttr("checked" ,true)
|
|
|
+ //document.all_options[el.name].checked = "true";
|
|
|
+ //el.checked = true;
|
|
|
+ //alert( options[ dojo.attr(el ,'name') ] + " el " )
|
|
|
+ }
|
|
|
+ //console.info(options)
|
|
|
+ // *** bind events
|
|
|
+ get.wrap(el).bindOnclick( function(ev){
|
|
|
+
|
|
|
+ var that = get.wrap(this);
|
|
|
+ var isCheck = that.getAttr("checked");
|
|
|
+ //console.info(isCheck)
|
|
|
+ if ( isCheck == false ) {
|
|
|
+
|
|
|
+ //that.setAttr("checked",false);
|
|
|
+ options[ this.name ] = 0;
|
|
|
+ }else{
|
|
|
+ //that.setAttr("checked",true);
|
|
|
+ options[ this.name ] = 1;
|
|
|
+ }
|
|
|
+ //console.info(options)
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ // * Create languages tab
|
|
|
+ // ** convert langs obj to array
|
|
|
+ var lang_arr = [];
|
|
|
+
|
|
|
+ for (var k in lang_list.rtl){
|
|
|
+ // find curent lang
|
|
|
+ if ( k == sLang)
|
|
|
+ chosed_lang = lang_list.rtl[k] + "::" + k;
|
|
|
+ lang_arr[lang_arr.length] = lang_list.rtl[k] + "::" + k;
|
|
|
+
|
|
|
+ }
|
|
|
+ for (var k in lang_list.ltr){
|
|
|
+ // find curent lang
|
|
|
+ if ( k == sLang)
|
|
|
+ chosed_lang = lang_list.ltr[k] + "::" + k;
|
|
|
+ lang_arr[lang_arr.length] = lang_list.ltr[k] + "::" + k;
|
|
|
+ }
|
|
|
+ lang_arr.sort();
|
|
|
+
|
|
|
+ // ** find lang containers
|
|
|
+
|
|
|
+ var lcol = get.byId("lcolid");
|
|
|
+ var rcol = get.byId("rcolid");
|
|
|
+ // ** place langs in DOM
|
|
|
+
|
|
|
+ get.forEach(lang_arr , function( l , i ){
|
|
|
+
|
|
|
+ //console.info( l,i );
|
|
|
+
|
|
|
+ var l_arr = l.split('::');
|
|
|
+ var l_name = l_arr[0];
|
|
|
+ var l_code = l_arr[1];
|
|
|
+ var row = document.createElement('div');
|
|
|
+ row.id = l_code;
|
|
|
+ row.className = "li";
|
|
|
+ // split langs on half
|
|
|
+ var col = ( i < lang_arr.length/2 ) ? lcol:rcol ;
|
|
|
+
|
|
|
+ // append row
|
|
|
+ //console.dir( col )
|
|
|
+ col.appendChild(row);
|
|
|
+ var row_dom = get.byId( l_code )
|
|
|
+ row_dom.innerHTML = l_name;
|
|
|
+
|
|
|
+ var checkActiveLang = function( id ){
|
|
|
+ return chosed_lang.split("::")[1] == id;
|
|
|
+ };
|
|
|
+ // bind click
|
|
|
+ row_dom.bindOnclick(function(ev){
|
|
|
+
|
|
|
+ if ( checkActiveLang(this.id) ) return false;
|
|
|
+ var elId = this.id;
|
|
|
+ get.byId(this.id)
|
|
|
+ .addClass("Button")
|
|
|
+ .removeClass("DarkBackground");
|
|
|
+
|
|
|
+ window.setTimeout( function (){ get.byId(elId).setStyle({opacity:"0.5",cursor:"no-drop"}); } ,300 );
|
|
|
+
|
|
|
+ get.byId(chosed_lang.split("::")[1])
|
|
|
+ .addClass("DarkBackground")
|
|
|
+ .removeClass("Button")
|
|
|
+ .setStyle({opacity:"1",cursor:"pointer"});
|
|
|
+
|
|
|
+ chosed_lang = this.innerHTML + "::" + this.id;
|
|
|
+ return true;
|
|
|
+ })
|
|
|
+ .setStyle({
|
|
|
+ cursor:"pointer"
|
|
|
+ });
|
|
|
+ // select current lang
|
|
|
+ if (l == chosed_lang)
|
|
|
+ row_dom.addClass("Button").setStyle({opacity:"0.5",cursor:"no-drop"});
|
|
|
+ else
|
|
|
+ row_dom.addClass("DarkBackground").setStyle({opacity:"1"});
|
|
|
+
|
|
|
+ });
|
|
|
+ // * user dictionary
|
|
|
+ if ( userDicActive ){
|
|
|
+ initUserDictionary()
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ var buttons = [ 'dic_create','dic_delete','dic_rename','dic_restore' ];
|
|
|
+ var labels = [ 'mixedCase','mixedWithDigits','allCaps','ignoreDomainNames' ];
|
|
|
+
|
|
|
+
|
|
|
+ function apllyCaptions ( )
|
|
|
+ {
|
|
|
+
|
|
|
+ // fill tabs headers
|
|
|
+ // add missing captions
|
|
|
+
|
|
|
+ get.byClass("PopupTab").forEach(function(el,i){
|
|
|
+
|
|
|
+ if ( tabs[i] == 1 ){
|
|
|
+ el.style.display = "block";
|
|
|
+ }
|
|
|
+ el.innerHTML = captions['tab_'+el.id];
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ // Fill options labels.
|
|
|
+ for ( i in labels )
|
|
|
+ {
|
|
|
+ var label = 'label_' + labels[ i ],
|
|
|
+ labelElement = document.getElementById( label );
|
|
|
+
|
|
|
+ if ( 'undefined' != typeof labelElement
|
|
|
+ && 'undefined' != typeof captions[ label ] && captions[ label ] !== ""
|
|
|
+ && 'undefined' != typeof options[labels[ i ]] )
|
|
|
+ {
|
|
|
+ labelElement.innerHTML = captions[ label ];
|
|
|
+ var labelParent = labelElement.parentNode;
|
|
|
+ labelParent.style.display = "block";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // fill dictionary section
|
|
|
+ for ( var i in buttons )
|
|
|
+ {
|
|
|
+ var button = buttons[ i ];
|
|
|
+ get.byId( button ).innerHTML = '<span>' + captions[ 'button_' + button] +'</span>' ;
|
|
|
+ }
|
|
|
+ get.byId("dname").innerHTML = captions['label_dname'];
|
|
|
+ get.byId( 'dic_info' ).innerHTML = captions[ 'dic_info' ];
|
|
|
+
|
|
|
+ // fill about tab
|
|
|
+ var about = '<p>' + captions[ 'about_throwt_image' ] + '</p>'+
|
|
|
+ '<p>' + captions[ 'version' ] + scayt.version.toString() + '</p>' +
|
|
|
+ '<p>' + captions[ 'about_throwt_copy' ] + '</p>';
|
|
|
+
|
|
|
+ get.byId( 'scayt_about' ).innerHTML = about;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ function initUserDictionary () {
|
|
|
+
|
|
|
+ scayt.getNameUserDictionary(
|
|
|
+ function( o )
|
|
|
+ {
|
|
|
+ var dic_name = o.dname;
|
|
|
+ if ( dic_name )
|
|
|
+ {
|
|
|
+ get.byId( 'dic_name' ).value = dic_name;
|
|
|
+ display_dic_buttons( dic_buttons[1] );
|
|
|
+ }
|
|
|
+ else
|
|
|
+ display_dic_buttons( dic_buttons[0] );
|
|
|
+
|
|
|
+ },
|
|
|
+ function ()
|
|
|
+ {
|
|
|
+ get.byId( 'dic_name' ).value("");
|
|
|
+ dic_error_message(captions["err_dic_enable"] || "Used dictionary are unaveilable now.")
|
|
|
+ }
|
|
|
+ );
|
|
|
+
|
|
|
+ dic_success_message("");
|
|
|
+
|
|
|
+ // ** bind event listeners
|
|
|
+ get.byClass("button").bindOnclick(function( ){
|
|
|
+
|
|
|
+ // get dic name
|
|
|
+ var dic_name = get.byId('dic_name').value ;
|
|
|
+ // check common dictionary rules
|
|
|
+ if (!dic_name) {
|
|
|
+ dic_error_message(" Dictionary name should not be empty. ");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ //apply handler
|
|
|
+ window[this.id].apply( window, [this, dic_name, dic_buttons ] );
|
|
|
+
|
|
|
+ //console.info( typeof window[this.id], window[this.id].calle )
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ dic_create = function( el, dic_name , dic_buttons )
|
|
|
+ {
|
|
|
+ // comma separated button's ids include repeats if exists
|
|
|
+ var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
|
|
|
+
|
|
|
+ var err_massage = captions["err_dic_create"];
|
|
|
+ var suc_massage = captions["succ_dic_create"];
|
|
|
+ //console.info("--plugin ");
|
|
|
+
|
|
|
+ scayt.createUserDictionary(dic_name,
|
|
|
+ function(arg)
|
|
|
+ {
|
|
|
+ //console.info( "dic_create callback called with args" , arg );
|
|
|
+ hide_dic_buttons ( all_buttons );
|
|
|
+ display_dic_buttons ( dic_buttons[1] );
|
|
|
+ suc_massage = suc_massage.replace("%s" , arg.dname );
|
|
|
+ dic_success_message (suc_massage);
|
|
|
+ },
|
|
|
+ function(arg)
|
|
|
+ {
|
|
|
+ //console.info( "dic_create errorback called with args" , arg )
|
|
|
+ err_massage = err_massage.replace("%s" ,arg.dname );
|
|
|
+ dic_error_message ( err_massage + "( "+ (arg.message || "") +")");
|
|
|
+ });
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ dic_rename = function( el, dic_name , dic_buttons )
|
|
|
+ {
|
|
|
+ //
|
|
|
+ // try to rename dictionary
|
|
|
+ // @TODO: rename dict
|
|
|
+ //console.info ( captions["err_dic_rename"] )
|
|
|
+ var err_massage = captions["err_dic_rename"] || "";
|
|
|
+ var suc_massage = captions["succ_dic_rename"] || "";
|
|
|
+ scayt.renameUserDictionary(dic_name,
|
|
|
+ function(arg)
|
|
|
+ {
|
|
|
+ //console.info( "dic_rename callback called with args" , arg );
|
|
|
+ suc_massage = suc_massage.replace("%s" , arg.dname );
|
|
|
+ set_dic_name( dic_name );
|
|
|
+ dic_success_message ( suc_massage );
|
|
|
+ },
|
|
|
+ function(arg)
|
|
|
+ {
|
|
|
+ //console.info( "dic_rename errorback called with args" , arg )
|
|
|
+ err_massage = err_massage.replace("%s" , arg.dname );
|
|
|
+ set_dic_name( dic_name );
|
|
|
+ dic_error_message( err_massage + "( " + ( arg.message || "" ) + " )" );
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ dic_delete = function ( el, dic_name , dic_buttons )
|
|
|
+ {
|
|
|
+ var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
|
|
|
+ var err_massage = captions["err_dic_delete"];
|
|
|
+ var suc_massage = captions["succ_dic_delete"];
|
|
|
+
|
|
|
+ // try to delete dictionary
|
|
|
+ // @TODO: delete dict
|
|
|
+ scayt.deleteUserDictionary(
|
|
|
+ function(arg)
|
|
|
+ {
|
|
|
+ //console.info( "dic_delete callback " , dic_name ,arg );
|
|
|
+ suc_massage = suc_massage.replace("%s" , arg.dname );
|
|
|
+ hide_dic_buttons ( all_buttons );
|
|
|
+ display_dic_buttons ( dic_buttons[0] );
|
|
|
+ set_dic_name( "" ); // empty input field
|
|
|
+ dic_success_message( suc_massage );
|
|
|
+ },
|
|
|
+ function(arg)
|
|
|
+ {
|
|
|
+ //console.info( " dic_delete errorback called with args" , arg )
|
|
|
+ err_massage = err_massage.replace("%s" , arg.dname );
|
|
|
+ dic_error_message(err_massage);
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ dic_restore = dialog.dic_restore || function ( el, dic_name , dic_buttons )
|
|
|
+ {
|
|
|
+ // try to restore existing dictionary
|
|
|
+ var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
|
|
|
+ var err_massage = captions["err_dic_restore"];
|
|
|
+ var suc_massage = captions["succ_dic_restore"];
|
|
|
+
|
|
|
+ scayt.restoreUserDictionary(dic_name,
|
|
|
+ function(arg)
|
|
|
+ {
|
|
|
+ //console.info( "dic_restore callback called with args" , arg );
|
|
|
+ suc_massage = suc_massage.replace("%s" , arg.dname );
|
|
|
+ hide_dic_buttons ( all_buttons );
|
|
|
+ display_dic_buttons(dic_buttons[1]);
|
|
|
+ dic_success_message( suc_massage );
|
|
|
+ },
|
|
|
+ function(arg)
|
|
|
+ {
|
|
|
+ //console.info( " dic_restore errorback called with args" , arg )
|
|
|
+ err_massage = err_massage.replace("%s" , arg.dname );
|
|
|
+ dic_error_message( err_massage );
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ function dic_error_message( m )
|
|
|
+ {
|
|
|
+ if ( !m )
|
|
|
+ return ;
|
|
|
+
|
|
|
+ get.byId('dic_message').innerHTML = '<span class="error">' + m + '</span>' ;
|
|
|
+ }
|
|
|
+
|
|
|
+ function dic_success_message( m )
|
|
|
+ {
|
|
|
+ if ( !m )
|
|
|
+ return ;
|
|
|
+
|
|
|
+ get.byId('dic_message').innerHTML = '<span class="success">' + m + '</span>' ;
|
|
|
+ }
|
|
|
+
|
|
|
+ function display_dic_buttons ( sIds ){
|
|
|
+ sIds = new String( sIds );
|
|
|
+ get.forEach( sIds.split(','), function ( id,i) {
|
|
|
+ get.byId(id).setStyle({display:"inline"});
|
|
|
+ });
|
|
|
+ }
|
|
|
+ function hide_dic_buttons ( sIds ){
|
|
|
+ sIds = new String( sIds );
|
|
|
+ get.forEach( sIds.split(','), function ( id,i) {
|
|
|
+ get.byId(id).setStyle({display:"none"});
|
|
|
+ });
|
|
|
+ }
|
|
|
+ function set_dic_name ( dic_name ) {
|
|
|
+ get.byId('dic_name').value = dic_name;
|
|
|
+ }
|
|
|
+ function display_dic_tab () {
|
|
|
+ get.byId("dic_tab").style.display = "block";
|
|
|
+ }
|
|
|
+
|
|
|
+ function Ok()
|
|
|
+ {
|
|
|
+ // Things to do when the Ok button is clicked.
|
|
|
+ var c = 0;
|
|
|
+ // set upp options if any was set
|
|
|
+ var o = scayt_control.option();
|
|
|
+ //console.info(options)
|
|
|
+ for ( var oN in options ) {
|
|
|
+
|
|
|
+ if ( o[oN] != options[oN] && c == 0){
|
|
|
+ //console.info( "set option " )
|
|
|
+ scayt_control.option( options );
|
|
|
+ c++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //setup languge if it was change
|
|
|
+ var csLang = chosed_lang.split("::")[1];
|
|
|
+ if ( csLang && sLang != csLang ){
|
|
|
+ scayt_control.setLang( csLang );
|
|
|
+ //console.info(sLang+" -> "+csLang , scayt_control)
|
|
|
+ c++;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( c > 0 ) scayt_control.refresh();
|
|
|
+
|
|
|
+ return dialog.Cancel();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ </script>
|
|
|
+
|
|
|
+ <style type="text/css">
|
|
|
+ body, td, input, textarea, select, label { font-family: Arial, Verdana, Geneva, helvetica, sans-serif; font-size: 11px; }
|
|
|
+ </style>
|
|
|
+
|
|
|
+ </head>
|
|
|
+ <body style="OVERFLOW: hidden" scroll="no">
|
|
|
+ <div class="tab_container" id="inner_options">
|
|
|
+
|
|
|
+ <ul id="scayt_options">
|
|
|
+ <li class="_scayt_options">
|
|
|
+ <input class="_scayt_option" type="checkbox" value="0" name="allCaps" />
|
|
|
+ <label for="allCaps" id="label_allCaps"></label>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <input class="_scayt_option" type="checkbox" value="0" name="ignoreDomainNames" />
|
|
|
+ <label for="ignoreDomainNames" id="label_ignoreDomainNames"></label>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <input class="_scayt_option" type="checkbox" value="0" name="mixedCase" />
|
|
|
+ <label for="mixedCase" id="label_mixedCase"></label>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <input class="_scayt_option" type="checkbox" value="0" name="mixedWithDigits" />
|
|
|
+ <label for="mixedWithDigits" id="label_mixedWithDigits"></label>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ <div class="tab_container" id="inner_langs">
|
|
|
+
|
|
|
+ <div class="lcol" id="lcolid"></div>
|
|
|
+ <div class="rcol" id="rcolid"></div>
|
|
|
+ </div>
|
|
|
+ <div class="tab_container" id="inner_dictionary">
|
|
|
+
|
|
|
+ <div id="dic_message"></div>
|
|
|
+ <div id="_off_dic_tab" class="dictionary" >
|
|
|
+ <div style="padding-left:10px;">
|
|
|
+ <label id="dname" for="dname"></label>
|
|
|
+ <input type="text" size="14" maxlength="15" value="" id="dic_name" name="dic_name"/>
|
|
|
+ </div>
|
|
|
+ <div class="dic_buttons">
|
|
|
+ <a href="#" id="dic_create" class="button"> </a>
|
|
|
+ <a href="#" id="dic_delete" class="button"> </a>
|
|
|
+ <a href="#" id="dic_rename" class="button"> </a>
|
|
|
+ <a href="#" id="dic_restore" class="button"> </a>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div id="dic_info"></div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div id="inner_about" class="tab_container">
|
|
|
+ <div id="scayt_about"></div>
|
|
|
+ </div>
|
|
|
+ </body>
|
|
|
+</html>
|