function processSlideshow(elem, imageList, imageDuration, fadeSpeed, current) 
{
    var listSize = imageList.length;
    if (!current || current >= listSize) current = 0;
    if (!imageDuration) imageDuration = 2000;
    if (!fadeSpeed) fadeSpeed = 1000;
    $(elem + " img").height("auto");
    $(elem + " img").attr("src", imageList[current]);
    $(elem + " img").animate({
        opacity: "1"
    }, imageDuration, test ).
    animate({
        opacity: "0.01"
    }, fadeSpeed, function()
    { 
        $(this).css("opacity", "0");
        processSlideshow(elem, imageList, imageDuration, fadeSpeed, current + 1)
    });

    function test() {
        if (current == (listSize - 1)) {
            $(elem).css("background", "transparent url(" + imageList[0] + ") no-repeat");
        } else {
            $(elem).css("background", "transparent url(" + imageList[current + 1] + ") no-repeat");
        }
    }
}
