var _smallNAImage = new Image();
var _largeNAImage = new Image();
var _smallCNAImage = new Image();
var _largeCNAImage = new Image();
var _images = new Array();
var _alertErrorMessages = false;
var _infiniteTries = true;
var _maxTimeout = 10000;

function init()
{
	_smallNAImage.src = "/images/products/small/null.gif";/*noimage.gif*/
	_largeNAImage.src = "/images/products/large/null.gif";/*noimage.gif*/
	_smallCNAImage.src = "/images/products/small/null.gif";/*curna.gif*/
	_largeCNAImage.src = "/images/products/large/null.gif";/*curna.gif*/
}
init();

function loadImage(imageURL,ctrlName,useSmallNAImage,stretchImage,imageMaxWidth,imageMaxHeight)
{

	//return;
	try
	{
		var timeoutStr = "";
		if(imageURL.length > 0)
		{
			var img = new Image();
			img.src = imageURL;
			_images[_images.length] = img;
			timeoutStr = "checkImage(\""+ctrlName+"\","+useSmallNAImage+","+stretchImage+","+imageMaxWidth+","+imageMaxHeight+","+(_images.length-1)+",0);";
		}
		else
		{
			var img = new Image();
			img.alt = "?";
			img.width = 0;
			img.height = 0;
			_images[_images.length] = img;
			timeoutStr = "setImage(\""+ctrlName+"\","+useSmallNAImage+","+stretchImage+","+imageMaxWidth+","+imageMaxHeight+","+(_images.length-1)+",false);";
		}
		setTimeout(timeoutStr,100);		
	}
	catch(e)
	{
		if(_alertErrorMessages)
			alert(e.message);
	}
}

function checkImage(ctrlName,useSmallNAImage,stretchImage,imageMaxWidth,imageMaxHeight,imgIndex,elapsedTime)
{
	try
	{
		if(_images[imgIndex].complete)
			setTimeout("setImage(\""+ctrlName+"\","+useSmallNAImage+","+stretchImage+","+imageMaxWidth+","+imageMaxHeight+","+imgIndex+",null);",300);
		else
		{
			if(elapsedTime < _maxTimeout)
			{
				elapsedTime += 100;
				setTimeout("checkImage(\""+ctrlName+"\","+useSmallNAImage+","+stretchImage+","+imageMaxWidth+","+imageMaxHeight+","+imgIndex+","+elapsedTime+");",100);				
			}
			else
			{
				_images[imgIndex].width = 0;
				_images[imgIndex].height = 0;
				_images[imgIndex].alt = "?";
				setTimeout("setImage(\""+ctrlName+"\","+useSmallNAImage+","+stretchImage+","+imageMaxWidth+","+imageMaxHeight+","+imgIndex+",true);",100);
			}
		}
	}
	catch(e)
	{
		if(_alertErrorMessages)
			alert(e.message);
	}
}

function setImage(ctrlName,useSmallNAImage,stretchImage,imageMaxWidth,imageMaxHeight,imgIndex,isTemporarilyNA)
{
	try
	{
		var ctrl = document.getElementById(ctrlName);
		if(ctrl != null)
		{
			if((_images[imgIndex].width == 0 && _images[imgIndex].height == 0) || _images[imgIndex].alt == "?")
			{
				var img = (useSmallNAImage ? (isTemporarilyNA ? _smallCNAImage : _smallNAImage) : (isTemporarilyNA ? _largeCNAImage :_largeNAImage));
				//var alt = (isTemporarilyNA ? "Image is Temporarily Not Available - Trying To Load..." : "Image Not Available");
				ctrl.src = img.src;
				ctrl.width = img.width;
				ctrl.height = img.height;
				//ctrl.alt = alt;
				if(isTemporarilyNA && _infiniteTries)
				{
					checkImage(ctrlName,useSmallNAImage,stretchImage,imageMaxWidth,imageMaxHeight,imgIndex,0);
					_images[imgIndex].alt = "";
				}
			}
			else
			{
				ctrl.src = _images[imgIndex].src;
				var preferredSize = 0;
				if(_images[imgIndex].width > (preferredSize = imageMaxWidth) || _images[imgIndex].height > (preferredSize = imageMaxHeight))
				{
					var scale = preferredSize / Math.max(_images[imgIndex].width,_images[imgIndex].height);
					ctrl.width = _images[imgIndex].width * scale;
					ctrl.height = _images[imgIndex].height * scale;	
				}
				else
				{
					ctrl.width = _images[imgIndex].width;
					ctrl.height = _images[imgIndex].height;
				}
				//ctrl.alt = "";
			}
			if(stretchImage)
			{
				ctrl.height = imageMaxHeight;
				ctrl.width = imageMaxWidth;
			}
		}
	}
	catch(e)
	{
		if(_alertErrorMessages)
			alert(e.message);
	}
}