1 /* 2 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. 3 For licensing, see LICENSE.html or http://ckeditor.com/license 4 */ 5 6 (function() 7 { 8 var loaded = {}; 9 10 var loadImage = function( image, callback ) 11 { 12 var doCallback = function() 13 { 14 loaded[ image ] = 1; 15 callback(); 16 }; 17 18 var img = new CKEDITOR.dom.element( 'img' ); 19 img.on( 'load', doCallback ); 20 img.on( 'error', doCallback ); 21 img.setAttribute( 'src', image ); 22 }; 23 24 /** 25 * Load images into the browser cache. 26 * @namespace 27 * @example 28 */ 29 CKEDITOR.imageCacher = 30 { 31 /** 32 * Loads one or more images. 33 * @param {Array} images The URLs for the images to be loaded. 34 * @param {Function} callback The function to be called once all images 35 * are loaded. 36 */ 37 load : function( images, callback ) 38 { 39 var pendingCount = images.length; 40 41 var checkPending = function() 42 { 43 if ( --pendingCount === 0 ) 44 callback(); 45 }; 46 47 for ( var i = 0 ; i < images.length ; i++ ) 48 { 49 var image = images[ i ]; 50 51 if ( loaded[ image ] ) 52 checkPending(); 53 else 54 loadImage( image, checkPending ); 55 } 56 } 57 }; 58 })(); 59