var ImgLoader = Class.create();

ImgLoader.images = { };
ImgLoader.interval = null;

ImgLoader.update = function() {
	test = true;
	
	for (elem in ImgLoader.images) {
		if (!ImgLoader.images[elem].loaded) {
			if (ImgLoader.images[elem].image.complete) {
				img = '<img src="' + ImgLoader.images[elem].image.src + '" border="0"';
				if (ImgLoader.images[elem].toSize)
					img += ' width="' + ImgLoader.images[elem].width + '"';
				img += '>';
				$(elem).update(img);
				ImgLoader.images[elem].image.loaded = true;
			}
			else
				test = false;
		}
	}
	
	if (test) {
		clearInterval(ImgLoader.interval);
		ImgLoader.interval = null;
		ImgLoader.images = { };
	}
}

ImgLoader.prototype = {
	initialize: function(elem, src, width, height) {
		if ($(elem) == null) return;
			
		image = new Image();
		image.src = src;
		
		toSize = arguments.length == 5 ? true : false;
		ImgLoader.images[elem] = { 'image': image, 'elem': $('elem'), loaded: false, 'width': width, 'toSize': toSize };
		
		$(elem).innerHTML = 
			'<div style="width: ' + width + 'px; height: ' + (Math.round(height/2) + 8) + 'px; padding-top: ' + (Math.round(height/2) - 8) + 
			'px; text-align: center"><img src="/images/ajax_indicator.gif" alt="loading..." border="0" style="border: none"></div>';
	
		if (ImgLoader.interval == null)
			ImgLoader.interval = setInterval('ImgLoader.update()', 500);
	}
}