// Image Preloader

function ImagePreloader(theImage, index, callback)
{
	// store the callback
	this.callback = callback;
	this.index = index;

	this.preload(theImage);
}

ImagePreloader.prototype.preload = function(image)
{
	// create new Image object and save it
	this.oImage = new Image;
	this.bLoaded = false;
	this.bError = false;
	this.bAbort = false;
	// assign pointer back to this.
	var oImagePreloader = this;
	
	// set up event handlers for the Image object
	this.oImage.onload = function()
	{
		oImagePreloader.bLoaded = true;
		oImagePreloader.onComplete();
	}
	
	this.oImage.onerror = function()
	{
		oImagePreloader.bError = true;
		oImagePreloader.onComplete();
	}

	this.oImage.onabort = function()
	{
		oImagePreloader.bAbort = true;
		oImagePreloader.onComplete();
	}

	// assign the .src property of the Image object
	this.oImage.src = image;
}

ImagePreloader.prototype.onComplete = function()
{
	this.callback(this.index, this.oImage, this.bLoaded);
}