function ImageCache(imagesToLoad,readyEventHandler){this.ReadyEventHandler=readyEventHandler;this.Loaded=0;this.Processed=0;this.ImagesToLoad=0;if(imagesToLoad[0]){this.ImagesToLoad=imagesToLoad[0].length;}this.ProcessedImages=new Array();for(var i=0;i<this.ImagesToLoad;i++){this.PreloadImage(imagesToLoad[0][i]);}return this;};ImageCache.prototype.PreloadImage=function(inputImage){var TempImage=new Image();this.ProcessedImages.push(TempImage);TempImage.onload=ImageCache.prototype.OnLoad;TempImage.onerror=ImageCache.prototype.OnError;TempImage.onabort=ImageCache.prototype.OnAbort;TempImage.ImageCachePointer=this;TempImage.IsLoaded=false;TempImage.src=inputImage;};ImageCache.prototype.OnComplete=function(){this.Processed++;if(this.Processed==this.ImagesToLoad){this.ReadyEventHandler(this.ProcessedImages.length,this.Loaded);}};ImageCache.prototype.OnLoad=function(){this.IsLoaded=true;this.ImageCachePointer.Loaded++;this.ImageCachePointer.OnComplete();};ImageCache.prototype.OnError=function(){this.IsError=true;this.ImageCachePointer.OnComplete();};ImageCache.prototype.OnAbort=function(){this.IsAborted=true;this.ImageCachePointer.OnComplete();}