var largeLoadingImageFile = "/images/loading.gif";
var medLoadingImageFile = "/images/medloader.gif";
var smallLoadingImageFile = "/images/smallloader.gif";
var LoadingImage = {
	preload: function(type)
	{
		var img = new Image();
		if (type == "L")
		{
			img.onload = function () { LoadingImage.preload("M"); }
			img.src = largeLoadingImageFile;
		}
		else if (type == "M")
		{
			img.onload = function () { LoadingImage.preload("S"); }
			img.src = medLoadingImageFile;
		}
		else if (type == "S")
		{
			img.src = smallLoadingImageFile;
		}
	},
	open: function(options)
	{
		options = options || { };
		var loadingImageFile = "";
		if (options.type == "L")
		{
			loadingImageFile = largeLoadingImageFile;
		}
		else if (options.type == "M")
		{
			loadingImageFile = medLoadingImageFile;
		}
		else if (options.type == "S")
		{
			loadingImageFile = smallLoadingImageFile;
		}
		else
		{
			loadingImageFile = largeLoadingImageFile;
		}
		var imgTag = $("loadingImage");
		if (imgTag)
		{
			imgTag.setAttribute("src", loadingImageFile);
			imgTag.show();
		}
		else
		{
			var imgTag = new Element("img", {"id": "loadingImage", "src": loadingImageFile});
			$$("body")[0].insert(imgTag);
			imgTag.setStyle({zIndex: 999, position: "absolute"});
		}
		
		if (options.element)
		{
			var el = $(options.element);
			if (el)
			{
				var elOffsets = el.cumulativeOffset();
				var elDim = el.getDimensions();
				
				var imgDim = imgTag.getDimensions();
				
				options.position = {};
				options.position.top = elOffsets.top+(elDim.height/2)-(imgDim.height/2);
				options.position.left = elOffsets.left+(elDim.width/2)-(imgDim.width/2);
			}
		}
		var top = 0;
		var left = 0;
		if (options.position)
		{
			top = options.position.top;
			left = options.position.left;
		}
		else
		{
			var dim = document.viewport.getDimensions();
			var scr = document.viewport.getScrollOffsets();
			var imgDim = imgTag.getDimensions();
		
			top = ((dim.height/2)+scr.top-imgDim.height/2);
			left = ((dim.width/2)+scr.left-imgDim.width/2);
		}
		imgTag.setStyle({top: top + "px", left: left + "px"});
	},
	close: function()
	{
		var img = $("loadingImage");
		if (img)
		{
			img.hide();
		}
	}
};
LoadingImage.preload("L");
