function shuffle(el, force)
{
    var oldimg = el;
    if(typeof(force) == 'undefined' || !force) {
        setTimeout(function() { shuffle(oldimg, 'FORCE'); }, 5000);
        return;
    }
    var newimg = document.createElement('img');
    newimg.alt = el.alt;
    newimg.width = el.width;
    newimg.height = el.height;
    newimg.style.filter = "Alpha(Opacity=0)";
    newimg.style.opacity = "0";
    
    range = el.getAttribute('range');
    if(!range) return;

    newimg.setAttribute('range', range);
    
    range = range.split('-');
    rand = Math.floor(Math.random() * Number(range[1])) + Number(range[0]);
    newimg.onload = function() {
        oldimg.parentNode.appendChild(newimg);
        var opacity = 0;
        var fadeinterval = setInterval(function() {
            opacity += 0.03;
            oldimg.style.opacity = Math.max(1 - opacity, 0);
            oldimg.style.filter = "Alpha(Opacity=" + Math.max(Math.floor((1 - opacity) * 100), 0) + ")";
            newimg.style.opacity = Math.min(opacity, 1);
            newimg.style.filter = "Alpha(Opacity=" + Math.min(Math.round(opacity * 100), 100) + ")";
            if(opacity >= 1) {
                clearInterval(fadeinterval);
                newimg.parentNode.removeChild(oldimg);
                newimg.style.opacity = "";
                newimg.style.filter = "";
                shuffle(newimg);
            }
        }, 20);
    };
    newimg.onerror = function() { setTimeout(function() { shuffle(oldimg, 'FORCE'); }, 1000); }
    newimg.src = el.src.replace(/[0-9]+\.png/, rand + '.png');
}