/* Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license */ /** * @fileOverview Spell Check As You Type (SCAYT). * Button name : Scayt. */ (function() { var commandName = 'scaytcheck', openPage = '', scayt_paused = null, scayt_control_id = null; // Checks if a value exists in an array function in_array(needle, haystack) { var found = false, key; for (key in haystack) { if ((haystack[key] === needle) || ( haystack[key] == needle)) { found = true; break; } } return found; } var onEngineLoad = function() { var editor = this; var createInstance = function() // Create new instance every time Document is created. { // Initialise Scayt instance. var oParams = {}; // Get the iframe. oParams.srcNodeRef = editor.document.getWindow().$.frameElement; // syntax : AppName.AppVersion@AppRevision oParams.assocApp = 'CKEDITOR.' + CKEDITOR.version + '@' + CKEDITOR.revision; oParams.customerid = editor.config.scayt_customerid || '1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2'; oParams.customDictionaryIds = editor.config.scayt_customDictionaryIds || ''; oParams.userDictionaryName = editor.config.scayt_userDictionaryName || ''; oParams.sLang = editor.config.scayt_sLang || 'en_US'; oParams.onBeforeChange = function() { if ( !editor.checkDirty() ) setTimeout( function(){ editor.resetDirty(); } ); }; var scayt_custom_params = window.scayt_custom_params; if ( typeof scayt_custom_params == 'object') { for ( var k in scayt_custom_params ) if ( ! ( k in Object.prototype ) ) { oParams[ k ] = scayt_custom_params[ k ]; } } // needs for restoring a specific scayt control settings if ( scayt_control_id ) oParams.id = scayt_control_id; var scayt_control = new window.scayt( oParams ); // Copy config. var lastInstance = plugin.instances[ editor.name ]; if ( lastInstance ) { scayt_control.sLang = lastInstance.sLang; scayt_control.option( lastInstance.option() ); scayt_control.paused = lastInstance.paused; } plugin.instances[ editor.name ] = scayt_control; //window.scayt.uiTags var menuGroup = 'scaytButton'; var uiTabs = window.scayt.uiTags; var fTabs = []; for (var i = 0,l=4; i= 0 ) // Load first time { this.setState( CKEDITOR.TRISTATE_DISABLED ); editor.on( 'showScaytState', function() { this.removeListener(); this.setState( plugin.isScaytEnabled( editor ) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF ); }, this); plugin.loadEngine( editor ); } } }; // Add scayt plugin. CKEDITOR.plugins.add( 'scayt', { requires : [ 'menubutton' ], beforeInit : function( editor ) { // Register own rbc menu group. editor.config.menu_groups = 'scayt_suggest,scayt_moresuggest,scayt_control,' + editor.config.menu_groups; }, init : function( editor ) { var moreSuggestions = {}; var mainSuggestions = {}; // Scayt command. var command = editor.addCommand( commandName, commandDefinition ); // Add Options dialog. CKEDITOR.dialog.add( commandName, CKEDITOR.getUrl( this.path + 'dialogs/options.js' ) ); // read ui tags var confuiTabs = editor.config.scayt_uiTabs || '1,1,1'; var uiTabs =[]; // string to array convert confuiTabs = confuiTabs.split( ',' ); // check array length ! always must be 3 filled with 1 or 0 for (var i=0,l=3; i *
  • 0 (zero): All suggestions are displayed in the main context menu.
  • *
  • Positive number: The maximum number of suggestions to shown in context * menu. Other entries will be shown in "More Suggestions" sub-menu.
  • *
  • Negative number: No suggestions are shown in the main context menu. All * entries will be listed in the "Suggestions" sub-menu.
  • * * @name CKEDITOR.config.scayt_maxSuggestions * @type Number * @default 5 * @example * // Display only three suggestions in the main context menu. * config.scayt_maxSuggestions = 3; * @example * // Do not show the suggestions directly. * config.scayt_maxSuggestions = -1; */ /** * Sets the customer ID for SCAYT. Required for migration from free version * with banner to paid version. * @name CKEDITOR.config.scayt_customerid * @type String * @default '' * @example * // Load SCAYT using my customer ID. * config.scayt_customerid = 'your-encrypted-customer-id'; */ /** * Enables/disables the "More Suggestions" sub-menu in the context menu. * The possible values are "on" or "off". * @name CKEDITOR.config.scayt_moreSuggestions * @type String * @default 'on' * @example * // Disables the "More Suggestions" sub-menu. * config.scayt_moreSuggestions = 'off'; */ /** * Customizes the display of SCAYT context menu commands ("Add Word", "Ignore" * and "Ignore All"). It must be a string with one or more of the following * words separated by a pipe ("|"): * * @name CKEDITOR.config.scayt_contextCommands * @type String * @default 'all' * @example * // Show only "Add Word" and "Ignore All" in the context menu. * config.scayt_contextCommands = 'add|ignoreall'; */ /** * Sets the default spellchecking language for SCAYT. * @name CKEDITOR.config.scayt_sLang * @type String * @default 'en_US' * @example * // Sets SCAYT to German. * config.scayt_sLang = 'de_DE'; */ /** * Sets the visibility of the SCAYT tabs in the settings dialog and toolbar * button. The value must contain a "1" (enabled) or "0" (disabled) number for * each of the following entries, in this precise order, separated by a * comma (","): "Options", "Languages" and "Dictionary". * @name CKEDITOR.config.scayt_uiTabs * @type String * @default '1,1,1' * @example * // Hide the "Languages" tab. * config.scayt_uiTabs = '1,0,1'; */ /** * Set the URL to SCAYT core. Required to switch to licensed version of SCAYT application. * Further details at http://wiki.spellchecker.net/doku.php?id=3rd:wysiwyg:fckeditor:wscckf3l . * @name CKEDITOR.config.scayt_srcUrl * @type String * @default '' * @example * config.scayt_srcUrl = "http://my-host/spellcheck/lf/scayt/scayt.js"; */ /** * Links SCAYT to custom dictionaries. It's a string containing dictionary ids * separared by commas (","). Available only for licensed version. * Further details at http://wiki.spellchecker.net/doku.php?id=custom_dictionary_support . * @name CKEDITOR.config.scayt_customDictionaryIds * @type String * @default '' * @example * config.scayt_customDictionaryIds = '3021,3456,3478"'; */ /** * Makes it possible to activate a custom dictionary on SCAYT. The user * dictionary name must be used. Available only for licensed version. * @name CKEDITOR.config.scayt_userDictionaryName * @type String * @default '' * @example * config.scayt_userDictionaryName = 'MyDictionary'; */