| Server IP : 180.180.241.3 / Your IP : 216.73.216.35 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /AppServ/www/umedia3/js/ckeditor/_source/core/ |
Upload File : |
/*
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.skins} object, which is used to
* manage skins loading.
*/
/**
* Manages skins loading.
* @namespace
* @example
*/
CKEDITOR.skins = (function()
{
// Holds the list of loaded skins.
var loaded = {};
var preloaded = {};
var paths = {};
var loadedPart = function( skinName, part, callback )
{
// Get the skin definition.
var skinDefinition = loaded[ skinName ];
var appendSkinPath = function( fileNames )
{
for ( var n = 0 ; n < fileNames.length ; n++ )
{
fileNames[ n ] = CKEDITOR.getUrl( paths[ skinName ] + fileNames[ n ] );
}
};
// Check if we need to preload images from it.
if ( !preloaded[ skinName ] )
{
var preload = skinDefinition.preload;
if ( preload && preload.length > 0 )
{
appendSkinPath( preload );
CKEDITOR.imageCacher.load( preload, function()
{
preloaded[ skinName ] = 1;
loadedPart( skinName, part, callback );
} );
return;
}
// Mark it as preloaded.
preloaded[ skinName ] = 1;
}
// Get the part definition.
part = skinDefinition[ part ];
var partIsLoaded = !part || !!part._isLoaded;
// Call the callback immediately if already loaded.
if ( partIsLoaded )
callback && callback();
else
{
// Put the callback in a queue.
var pending = part._pending || ( part._pending = [] );
pending.push( callback );
// We may have more than one skin part load request. Just the first
// one must do the loading job.
if ( pending.length > 1 )
return;
// Check whether the "css" and "js" properties have been defined
// for that part.
var cssIsLoaded = !part.css || !part.css.length;
var jsIsLoaded = !part.js || !part.js.length;
// This is the function that will trigger the callback calls on
// load.
var checkIsLoaded = function()
{
if ( cssIsLoaded && jsIsLoaded )
{
// Mark the part as loaded.
part._isLoaded = 1;
// Call all pending callbacks.
for ( var i = 0 ; i < pending.length ; i++ )
{
if ( pending[ i ] )
pending[ i ]();
}
}
};
// Load the "css" pieces.
if ( !cssIsLoaded )
{
appendSkinPath( part.css );
for ( var c = 0 ; c < part.css.length ; c++ )
CKEDITOR.document.appendStyleSheet( part.css[ c ] );
cssIsLoaded = 1;
}
// Load the "js" pieces.
if ( !jsIsLoaded )
{
appendSkinPath( part.js );
CKEDITOR.scriptLoader.load( part.js, function()
{
jsIsLoaded = 1;
checkIsLoaded();
});
}
// We may have nothing to load, so check it immediately.
checkIsLoaded();
}
};
return /** @lends CKEDITOR.skins */ {
/**
* Registers a skin definition.
* @param {String} skinName The skin name.
* @param {Object} skinDefinition The skin definition.
* @example
*/
add : function( skinName, skinDefinition )
{
loaded[ skinName ] = skinDefinition;
skinDefinition.skinPath = paths[ skinName ]
|| ( paths[ skinName ] =
CKEDITOR.getUrl(
'_source/' + // @Packager.RemoveLine
'skins/' + skinName + '/' ) );
},
/**
* Loads a skin part. Skins are defined in parts, which are basically
* separated CSS files. This function is mainly used by the core code and
* should not have much use out of it.
* @param {String} skinName The name of the skin to be loaded.
* @param {String} skinPart The skin part to be loaded. Common skin parts
* are "editor" and "dialog".
* @param {Function} [callback] A function to be called once the skin
* part files are loaded.
* @example
*/
load : function( editor, skinPart, callback )
{
var skinName = editor.skinName,
skinPath = editor.skinPath;
if ( loaded[ skinName ] )
{
loadedPart( skinName, skinPart, callback );
// Get the skin definition.
var skinDefinition = loaded[ skinName ];
// Trigger init function if any.
if ( skinDefinition.init )
skinDefinition.init( editor );
}
else
{
paths[ skinName ] = skinPath;
CKEDITOR.scriptLoader.load( skinPath + 'skin.js', function()
{
loadedPart( skinName, skinPart, callback );
// Get the skin definition.
var skinDefinition = loaded[ skinName ];
// Trigger init function if any.
if ( skinDefinition.init )
skinDefinition.init( editor );
});
}
}
};
})();