var preloadImages = new Array();
var preloadCache = new Array();
var preloadImageNumber = 1;	// Wie viele Bilder bei einem Aufruf.
var preloadIntervalMs = 1500;	// In welchem Millisekunden-Intervall sollen die Bilder vorgeladen werden?
var preloadTimer = null;
var preloadCacheMaxEntries = 500;	// Wieviele Einträge (=Bilder) darf der preloadCache maximal haben? 


function preload( /* loadImagesAtOnce=0 */ ) {
	var loadImagesAtOnce = arguments[0] ? arguments[0] : 0;
	var img, path, limit;

	limit = preloadImages.length;
	for( var i=0;i<limit && i<loadImagesAtOnce; i++) {
		img = new Image( 100,50 );
		path = preloadImages.shift();
		img.src = path;
		preloadCache.push( img );
	}

	limit = preloadImages.length;
	for( var i=0;i<limit && i<preloadImageNumber; i++) {
		img = new Image( 100,50 );
		path = preloadImages.shift();
		img.src = path;
		preloadCache.push( img );
	}
	
	if( preloadCache.length > preloadCacheMaxEntries ){
		// Lösche überzählige Einträge - am Beginn.
		var surplus = preloadCache.length - preloadCacheMaxEntries;
		preloadCache.splice( 0, surplus );
	}
	
	if( preloadImages.length == 0 ){
		if( preloadTimer ){
			clearTimeout( preloadTimer );
			preloadTimer = null;
		}
	}else{
		preloadTimer = setTimeout( preload, preloadIntervalMs );
	}
}

function preloadStop(){
	if( preloadTimer ){
		clearTimeout( preloadTimer );
		preloadTimer = null;
	}
}
