var numero = 1;
function imgchanger_create(id, prefix, images)
{
    var el = document.getElementById(id);
    var changer = {container: el, prefix: prefix, images: images};

    changer.dbgel = document.getElementById('dbg');
    changer.dbg = function(s) {
        if(changer.dbgel) {
            n = s + ' <br />' + changer.dbgel.innerHTML;
            n=n.substr(0, 500);
            changer.dbgel.innerHTML = n;
	}
    }

    changer.prepare = function() {
        oldimgsrc = el.src.replace(new RegExp("/^.*" + prefix + "/", ""), "");
        
        img = document.createElement('img');
        img.onload = function() {
            setTimeout(function() { 
                changer.img.style.position = "absolute";
                changer.img.style.top = el.offsetTop + 'px';
                changer.img.style.left = el.offsetLeft + 'px';
                el.parentNode.appendChild(changer.img);
            }, 1);
            setTimeout(function() { changer.transition(); }, 500); 
        }
        
        do {
            rnd = numero++;
            if(numero == changer.images.length) numero = 0;
            
    	} while(changer.images[rnd] == oldimgsrc);
				
				
        changer.img = img;
        changer.img.style.opacity = 0;
        changer.img.style.filter = "Alpha(Opacity=0)";

    	img.src = prefix + changer.images[rnd];
    }
    changer.transition = function() {

        var opacity = 0;
        var olddiv = changer.container;
        var newdiv = changer.img;
        var fadeinterval = setInterval(function() {
            opacity += 0.03;
            olddiv.style.opacity = Math.max(1 - opacity, 0);
            olddiv.style.filter = "Alpha(Opacity=" + Math.max(Math.floor((1 - opacity) * 100), 0) + ")";
            newdiv.style.opacity = Math.min(opacity, 1);
            newdiv.style.filter = "Alpha(Opacity=" + Math.min(Math.round(opacity * 100), 100) + ")";
            if(opacity >= 1) {
                clearInterval(fadeinterval);
                olddiv.style.visiblity = "hidden";//parentNode.removeChild(olddiv);
                newdiv.style.opacity = "";
                newdiv.style.filter = "";
                changer.container = el = newdiv;
                setTimeout(function() { changer.prepare(); }, 2000+Math.random()*1000);
            }
        }, 50);
    }

    setTimeout(function() { changer.prepare(); }, 500);
}
