Вход Регистрация
Файл: public/js/3rd_party/ckeditor/plugins/wsc/dialogs/wsc.js
Строк: 249
<?php

/*
Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/

CKEDITOR.dialog.add( 'checkspell', function( editor )
{
    var 
number = CKEDITOR.tools.getNextNumber(),
        
iframeId = 'cke_frame_' + number,
        
textareaId = 'cke_data_' + number,
        
errorBoxId = 'cke_error_' + number,
        
interval,
        
protocol = document.location.protocol || 'http:',
        
errorMsg = editor.lang.spellCheck.notAvailable;

    var 
pasteArea = '<textarea'+
            
' style="display: none"' +
            
' id="' + textareaId + '"' +
            
' rows="10"' +
            
' cols="40">' +
        
' </textarea><div' +
            
' id="' + errorBoxId + '"' +
            
' style="display:none;color:red;font-size:16px;font-weight:bold;padding-top:160px;text-align:center;z-index:11;">' +
        
'</div><iframe' +
            
' src=""' +
            
' style="width:100%;background-color:#f1f1e3;"' +
            
' frameborder="0"' +
            
' name="' + iframeId + '"' +
            
' id="' + iframeId + '"' +
            
' allowtransparency="1">' +
        
'</iframe>';

    var 
wscCoreUrl = editor.config.wsc_customLoaderScript || ( protocol +
            
'//loader.webspellchecker.net/sproxy_fck/sproxy.php'
            
+ '?plugin=fck2'
            
+ '&customerid=' + editor.config.wsc_customerId
            
+ '&cmd=script&doc=wsc&schema=22'
        
);

    if ( 
editor.config.wsc_customLoaderScript )
        
errorMsg += '<p style="color:#000;font-size:11px;font-weight: normal;text-align:center;padding-top:10px">' +
            
editor.lang.spellCheck.errorLoading.replace( /%s/g, editor.config.wsc_customLoaderScript ) + '</p>';

    function 
burnSpelling( dialog, errorMsg )
    {
        var 
i = 0;
        return function ()
        {
            if ( 
typeof( window.doSpell ) == 'function' )
            {
                
//Call from window.setInteval expected at once.
                
if ( typeof( interval ) != 'undefined' )
                    
window.clearInterval( interval );

                
initAndSpell( dialog );
            }
            else if ( 
i++ == 180 )                                // Timeout: 180 * 250ms = 45s.
                
window._cancelOnError( errorMsg );
        };
    }

    
window._cancelOnError = function( m )
    {
        if ( 
typeof( window.WSC_Error ) == 'undefined' )
        {
            
CKEDITOR.document.getById( iframeId ).setStyle( 'display', 'none' );
            var 
errorBox = CKEDITOR.document.getById( errorBoxId );
            
errorBox.setStyle( 'display', 'block' );
            
errorBox.setHtml( m || editor.lang.spellCheck.notAvailable );
        }
    };

    function 
initAndSpell( dialog )
    {
        var 
LangComparer = new window._SP_FCK_LangCompare(),                            // Language abbr standarts comparer.
            
pluginPath = CKEDITOR.getUrl( editor.plugins.wsc.path + 'dialogs/' ),            // Service paths corecting/preparing.
            
framesetPath = pluginPath + 'tmpFrameset.html';

        
// global var is used in FCK specific core
        // change on equal var used in fckplugin.js
        
window.gFCKPluginName = 'wsc';

        
LangComparer.setDefaulLangCode( editor.config.defaultLanguage );

        
window.doSpell({
            
ctrl : textareaId,

            
lang : editor.config.wsc_lang || LangComparer.getSPLangCode(editor.langCode ),
            
intLang: editor.config.wsc_uiLang || LangComparer.getSPLangCode(editor.langCode ),
            
winType : iframeId,        // If not defined app will run on winpopup.

            // Callback binding section.
            
onCancel : function()
            {
                
dialog.hide();
            },
            
onFinish : function( dT )
            {
                
editor.focus();
                
dialog.getParentEditor().setData( dT.value );
                
dialog.hide();
            },

            
// Some manipulations with client static pages.
            
staticFrame : framesetPath,
            
framesetPath : framesetPath,
            
iframePath : pluginPath + 'ciframe.html',

            
// Styles defining.
            
schemaURI : pluginPath + 'wsc.css',

            
userDictionaryName: editor.config.wsc_userDictionaryName,
            
customDictionaryName: editor.config.wsc_customDictionaryIds && editor.config.wsc_customDictionaryIds.split(","),
            
domainName: editor.config.wsc_domainName

        
});

        
// Hide user message console (if application was loaded more then after timeout).
        
CKEDITOR.document.getById( errorBoxId ).setStyle( 'display', 'none' );
        
CKEDITOR.document.getById( iframeId ).setStyle( 'display', 'block' );
    }

    return {
        
title : editor.config.wsc_dialogTitle || editor.lang.spellCheck.title,
        
minWidth : 485,
        
minHeight : 380,
        
buttons : [ CKEDITOR.dialog.cancelButton ],
        
onShow : function()
        {
            var 
contentArea = this.getContentElement( 'general', 'content' ).getElement();
            
contentArea.setHtml( pasteArea );
            
contentArea.getChild( 2 ).setStyle( 'height', this._.contentSize.height + 'px' );

            if ( 
typeof( window.doSpell ) != 'function' )
            {
                
// Load script.
                
CKEDITOR.document.getHead().append(
                    
CKEDITOR.document.createElement( 'script',
                        {
                            
attributes :
                                {
                                    
type : 'text/javascript',
                                    
src : wscCoreUrl
                                
}
                        })
                );
            }

            var 
sData = editor.getData();                                            // Get the data to be checked.
            
CKEDITOR.document.getById( textareaId ).setValue( sData );

            
interval = window.setInterval( burnSpelling( this, errorMsg ), 250 );
        },
        
onHide : function()
        {
            
window.ooo = undefined;
            
window.int_framsetLoaded = undefined;
            
window.framesetLoaded = undefined;
            
window.is_window_opened = false;
        },
        
contents : [
            {
                
id : 'general',
                
label : editor.config.wsc_dialogTitle || editor.lang.spellCheck.title,
                
padding : 0,
                
elements : [
                    {
                        
type : 'html',
                        
id : 'content',
                        
html : ''
                    
}
                ]
            }
        ]
    };
});

// Expand the spell-check frame when dialog resized. (#6829)
CKEDITOR.dialog.on( 'resize', function( evt )
{
    var 
data = evt.data,
        
dialog = data.dialog;

    if ( 
dialog._.name == 'checkspell' )
    {
        var 
content = dialog.getContentElement( 'general', 'content' ).getElement(),
            
iframe = content && content.getChild( 2 );

        
iframe && iframe.setSize( 'height', data.height );
        
iframe && iframe.setSize( 'width', data.width );
    }
});
?>
Онлайн: 3
Реклама