﻿
var KarsaImage = {

    Preload : function(images, callback)
    {
       this.callback = callback;
       this.nLoaded = 0;
       this.nProcessed = 0;
       this.aImages = new Array;
       this.nImages = images.length;
       for ( var i = 0; i < images.length; i++ ) 
          this.preloadImage(images[i]);
    }, 
    
    preloadImage : function(image){
       var oImage = new Image;
       this.aImages.push(oImage);
       oImage.onload = this.onload;
       oImage.onerror = this.onerror;
       oImage.onabort = this.onabort;
       oImage.oImagePreloader = this;
       oImage.bLoaded = false;
       oImage.src = image;
    },
    
    onComplete : function()
    {
       this.nProcessed++;
       if ( this.nProcessed == this.nImages )
       {
          this.callback(this.aImages, this.nLoaded);
       }
    }, 

    onload : function()
    {
       this.bLoaded = true;
       this.oImagePreloader.nLoaded++;
       this.oImagePreloader.onComplete();
    },

    onerror : function()
    {
       this.bError = true;
       this.oImagePreloader.onComplete();
    },

    onabort : function()
    {
       this.bAbort = true;
       this.oImagePreloader.onComplete();
    }
    
}