<!--

function ImagePreload( p_aImages, p_pfnPercent, p_pfnFinished )
{   // Call-back routines
     this.m_pfnPercent = p_pfnPercent;
     this.m_pfnFinished = p_pfnFinished;

     // Class Member Vars
     this.m_nLoaded = 0;
     this.m_nProcessed = 0;
     this.m_aImages = new Array;
     this.m_nICount = p_aImages.length;

     // Preload Array of Images
     for( var i = 0; i < p_aImages.length; i++ )
         this.Preload( p_aImages[i] );
		 
	 
}

ImagePreload.prototype.Preload = function( p_oImage )
{   var oImage = new Image;
     this.m_aImages.push( oImage );

     oImage.onload = ImagePreload.prototype.OnLoad;
     oImage.onerror = ImagePreload.prototype.OnError;
     oImage.onabort = ImagePreload.prototype.OnAbort;

     oImage.oImagePreload = this;
     oImage.bLoaded = false;
     oImage.source = p_oImage;
     oImage.src = p_oImage;
	  
}

ImagePreload.prototype.OnComplete = function()
{   this.m_nProcessed++;
     if ( this.m_nProcessed == this.m_nICount )
         this.m_pfnFinished();
     else
         this.m_pfnPercent( Math.round( (this.m_nProcessed / this.m_nICount) * 100 ) );
}

ImagePreload.prototype.OnLoad = function()
{   // 'this' pointer points to oImage Object
     this.bLoaded = true;
     this.oImagePreload.m_nLoaded++;
     this.oImagePreload.OnComplete();
	
}

ImagePreload.prototype.OnError = function()
{   // 'this' pointer points to oImage Object
     this.bError = true;
     this.oImagePreload.OnComplete();
}

ImagePreload.prototype.OnAbort = function()
{   // 'this' pointer points to oImage Object
     this.bAbort = true;
     this.oImagePreload.OnComplete();
}

//-->