function ImageQueue(root, fadeTime) {
	var images = new Array();
	var rootElement = root;
	var fadeTime = fadeTime != undefined?fadeTime:500;
	var adding = false;
	this.add = function(imageURL, localFade) {
	    if ( adding ) {
	        return;
	    }
	    adding = true;
		var localeFadeTime = localFade != undefined?localFade:fadeTime;
		var image = new Image();
		image.src = imageURL;
		$(image).css('border',0);
		var imgDiv = document.createElement('div');
		$(imgDiv).append(image);
        var pos = $(rootElement).offset();  
		$(imgDiv).css({
			'background-color': findBackgroundColor(rootElement),
			'position':'absolute',
			'left':0 + "px",
			'top':0 + "px",
			'opacity':0,
			'border':0
		});
		$(rootElement).append(imgDiv);
		images.unshift(imgDiv);
		$(imgDiv).animate({ 'opacity':1 }, localeFadeTime, function() {
			if ( images.length > 1 ) {
				var last = images.pop();
				$(last).fadeOut(localeFadeTime, function() {
					$(last).remove();
				});
			}
	        adding = false;
		});
	}

    function findBackgroundColor(el) {    
        var elName;
        if ( el[0] != undefined ) {
            elName = el[0].URL;
        }
        if ( elName != undefined ) {
            return '#FFFFFF';
        }
        var color = $(el).css('background-color');
        if ( color != 'transparent' ) {
            return color;
        }
        return findBackgroundColor($(el).parent());
    }
};