function CPreloader()
{
	this.classType = "Isometriq Preloader";
	this.toString  = function() { return( this.classType	); }
	this.valueOf   = function() { return( this				); }
	
	//----------
	
	this.Images = new Array();
	
	//----------
	
	this.SearchRollovers = function()
	{
		var lstImages = window.document.images;
		
		for (var i=0; i<lstImages.length; i++)
		{
			if (lstImages[i].name.substr( 0, 9 ) == "rollover:")
			{
				lstImages[i].id = lstImages[i].name;
				this.AddImage( lstImages[i].name );
			}
			else if (lstImages[i].id.substr( 0, 9 ) == "rollover:")
			{
				lstImages[i].name = lstImages[i].id;
				this.AddImage( lstImages[i].id );
			}
		}
	}
	
	this.AddImage = function( _strPath, _blnTag )
	{
		var indImage = this.Images.length;
		var objImage = new Image();
		var tagImage = null;
		
		if (_blnTag == null)
		{
			if (window.document.all)
				_blnTag = ((tagImage = window.document.all[_strPath]) != null);
			else if (window.document.getElementById)
				_blnTag = ((tagImage = window.document.getElementById( _strPath )) != null);
			else
				_blnTag = false;
		}
		
		if (_blnTag)
		{
			var indSlash = tagImage.src.lastIndexOf( "/" );
			
			if (tagImage.src.substr( indSlash + 1, 2 ) == "__")
				return;
			
			var indStart = indSlash = (indSlash==-1 ? 0 : indSlash);
			while (tagImage.src.substr( ++indStart, 1 ) == "_");
			
			var strFolder = tagImage.src.substring( 0, indSlash + 1 );
			var strFile   = tagImage.src.substring( indStart, tagImage.src.length );
			
			objImage.src = strFolder + "_" + strFile;
			this.Images[_strPath] = objImage;
			tagImage.onmouseover = function() {Preloader.SwapImage( this )}
			tagImage.onmouseout  = function() {Preloader.SwapImage( this )}
			
			var objImageActive    = new Image();
			objImageActive.src    = strFolder + "__" + strFile;
			this.Images[indImage] = objImageActive;
		}
		else
		{
			objImage.src          = _strPath;
			this.Images[indImage] = objImage;
		}
		
		return indImage;
	}
	
	this.AddImages = function()
	{
		var strFolder = arguments[0];
		var indImage  = this.Images.length;
		
		for (var indImage = 1; indImage<arguments.length; indImage++)
			this.AddImage( strFolder + arguments[indImage], null );
		
		return indImage;
	}
	
	this.SwapImage = function( _varImage )
	{
		if (_varImage == null)
			return;
		
		var tagImage;
		var type = typeof _varImage;
		
		if (type == "string")
		{
			if (window.document.all)
				tagImage = window.document.all[_varImage];
			else if (window.document.getElementById)
				tagImage = window.document.getElementById( _varImage );
			else
				tagImage = null;
		}
		else if (type == "object")
			tagImage = _varImage;
		
		if (tagImage == null)
			return;
		
		if (this.Images[tagImage.id] == null)
			return;
		
		var strSource                = this.Images[tagImage.id].src;
		this.Images[tagImage.id].src = tagImage.src;
		tagImage.src                 = strSource;
	}
	
	//----------
	
	return( this );
}
var Preloader = new CPreloader();
