2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
\r
3 For licensing, see LICENSE.html or http://ckeditor.com/license
\r
10 var loadImage = function( image, callback )
\r
12 var doCallback = function()
\r
14 img.removeAllListeners();
\r
15 loaded[ image ] = 1;
\r
19 var img = new CKEDITOR.dom.element( 'img' );
\r
20 img.on( 'load', doCallback );
\r
21 img.on( 'error', doCallback );
\r
22 img.setAttribute( 'src', image );
\r
26 * @namespace Load images into the browser cache.
\r
28 CKEDITOR.imageCacher =
\r
31 * Loads one or more images.
\r
32 * @param {Array} images The URLs of the images to be loaded.
\r
33 * @param {Function} [callback] A function to be called once all images
\r
35 * @return {CKEDITOR.event} An event object which fires the 'loaded'
\r
36 * event when all images are completely loaded. Additionally, the
\r
37 * "finished" property is set after the "loaded" event call.
\r
39 * var loader = CKEDITOR.imageCacher.load( [ '/image1.png', 'image2.png' ] );
\r
40 * if ( !loader.finished )
\r
42 * loader.on( 'load', function()
\r
44 * alert( 'All images are loaded' );
\r
48 load : function( images, callback )
\r
50 var pendingCount = images.length;
\r
52 var event = new CKEDITOR.event;
\r
53 event.on( 'loaded', function()
\r
59 event.on( 'loaded', callback );
\r
61 var checkPending = function()
\r
63 if ( --pendingCount === 0 )
\r
64 event.fire( 'loaded' );
\r
67 for ( var i = 0 ; i < images.length ; i++ )
\r
69 var image = images[ i ];
\r
71 if ( loaded[ image ] )
\r
74 loadImage( image, checkPending );
\r