function ImagePreloader(images, call_back, imurl)

{

   // store the call_back

   this.call_back = call_back;

 

   // initialize internal state.

   this.nLoaded = 0;

   this.nProcessed = 0;

   this.aImages = new Array;

 

   // record the number of images.

   this.nImages = images.length;

 

   // for each image, call preload()

   for ( var i = 0; i < images.length; i++ ) 

      this.preload(images[i], imurl);

}


ImagePreloader.prototype.preload = function(image, imurli)

{

   // create new Image object and add to array

   var oImage = new Image;

   this.aImages.push(oImage);

   

   // set up event handlers for the Image object

   oImage.onload = ImagePreloader.prototype.onload;

   oImage.onerror = ImagePreloader.prototype.onerror;

   oImage.onabort = ImagePreloader.prototype.onabort;

   

   // assign pointer back to this.

   oImage.oImagePreloader = this;

   oImage.bLoaded = false;

   

   // assign the .src property of the Image object

   oImage.src = "http://nilana.bg/" + imurli +image;
//   alert ("http://nilana.bg/" + imurli +image);

}

ImagePreloader.prototype.onComplete = function()

{

   this.nProcessed++;

   if ( this.nProcessed == this.nImages )

   {

      this.call_back(this.aImages, this.nLoaded);

   }

}

ImagePreloader.prototype.onload = function()

{

   this.bLoaded = true;

   this.oImagePreloader.nLoaded++;

   this.oImagePreloader.onComplete();

}

ImagePreloader.prototype.onerror = function()

{

   this.bError = true;

   this.oImagePreloader.onComplete();

}

ImagePreloader.prototype.onabort = function()

{

   this.bAbort = true;

   this.oImagePreloader.onComplete();

}


