2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
\r
3 * Copyright (C) 2003-2009 Frederico Caldeira Knabben
\r
5 * == BEGIN LICENSE ==
\r
7 * Licensed under the terms of any of the following licenses at your
\r
10 * - GNU General Public License Version 2 or later (the "GPL")
\r
11 * http://www.gnu.org/licenses/gpl.html
\r
13 * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
\r
14 * http://www.gnu.org/licenses/lgpl.html
\r
16 * - Mozilla Public License Version 1.1 or later (the "MPL")
\r
17 * http://www.mozilla.org/MPL/MPL-1.1.html
\r
21 * Preload a list of images, firing an event when complete.
\r
24 var FCKImagePreloader = function()
\r
26 this._Images = new Array() ;
\r
29 FCKImagePreloader.prototype =
\r
31 AddImages : function( images )
\r
33 if ( typeof( images ) == 'string' )
\r
34 images = images.split( ';' ) ;
\r
36 this._Images = this._Images.concat( images ) ;
\r
41 var aImages = this._Images ;
\r
42 this._PreloadCount = aImages.length ;
\r
44 for ( var i = 0 ; i < aImages.length ; i++ )
\r
46 var eImg = document.createElement( 'img' ) ;
\r
47 FCKTools.AddEventListenerEx( eImg, 'load', _FCKImagePreloader_OnImage, this ) ;
\r
48 FCKTools.AddEventListenerEx( eImg, 'error', _FCKImagePreloader_OnImage, this ) ;
\r
49 eImg.src = aImages[i] ;
\r
51 _FCKImagePreloader_ImageCache.push( eImg ) ;
\r
56 // All preloaded images must be placed in a global array, otherwise the preload
\r
57 // magic will not happen.
\r
58 var _FCKImagePreloader_ImageCache = new Array() ;
\r
60 function _FCKImagePreloader_OnImage( ev, imagePreloader )
\r
62 if ( (--imagePreloader._PreloadCount) == 0 && imagePreloader.OnComplete )
\r
63 imagePreloader.OnComplete() ;
\r