function slideshow() {

	D = document;
	D.CE = document.createElement;
	D.GE = D.getElementById;
    var current;
    var paused = false;
    var defaultDelay = 5;
    var delay = defaultDelay;
    var imgSet = new Array;
	var wh = window.innerHeight ?
		window.innerHeight :
		D.documentElement.clientHeight;
	var ww = window.innerWidth ?
		window.innerWidth :
		D.documentElement.clientWidth;
    ww = ww - 10;
    wh = wh - 60;

    this.startOver = function() {
        me = D.GE("startOver")
        me.parentNode.removeChild(me);
        current = 0;
        this.showSlide();
    }
    this.pause = function(what) {
        a = D.GE("pause");
        if(a) {
            if(what) {
                paused = true;
                a.href = "javascript:pause(false)";
                a.innerHTML = "Resume";
            } else {
                paused = false;
                a.href = "javascript:pause(true)";
                a.innerHTML = "Pause";
                this.showSlide();
            }
        }
    }
    this.preload = function() {
        var img;
        var n = imgSet.length;
        for(i=0;i<n;i++) {
            img = D.CE("img");
            img.src = imgSet[i].src;
            imgSet[i].image = img;
        }
    }

    this.showSlide = function() {
        if(!paused) {
            d.style.display = "none";
            if(d.firstChild) {
                d.removeChild(d.firstChild);
            }
            if(imgSet[current].image) {
                i = imgSet[current].image;
            } else {
                window.setTimeout(function (){this.showSlide()},1000);
                return;
            }
            h = imgSet[current].h;
            w = imgSet[current].w;

            wr = ww/w;
            hr = wh/h;
            if(wr>1 && hr>1) { ; } else if (wr>hr) { h = hr * h; w = hr * w; } else { h = wr * h; w = wr * w; }

            i.height = h;
            i.width = w;

            a = D.CE("a");
            a.href = i.src;
            a.target = "_blank";
            a.appendChild(i);

            d.appendChild(a);

            d.style.left = parseInt((ww-w)/2+2) + "px";
            d.style.top = parseInt((wh-h)/2+50) + "px";
            filename = i.src.split("/");
            last = filename.length - 1;
            filename = filename[last];
            delay = parseInt(dB.value);
            delay = delay > 1 ? delay : defaultDelay;
            dB.value = delay;
            h1.innerHTML = "Slide " + (current+1) + "/" + imgSet.length + ": " + filename;
            D.body.appendChild(d);
            d.style.display = "block";
            current++;
            if(current<imgSet.length) {
                window.setTimeout(function (){this.showSlide()},delay*1000);
            } else {
                a = D.CE("a");
                a.id = "startOver";
                a.href="javascript:this.startOver()";
                a.innerHTML="Start over";
                dC.appendChild(a);
            }
        }
    };

	allImages=D.getElementsByTagName("img");
	n = allImages.length;
    j=0;
	for(i=0; i<n; i++) {
        if(allImages[i].src.match("/thumbs/[0-9]{2}/")) {
            v = allImages[i].src.split("/");
            last = v.length - 1;
            res = allImages[i].title.replace(/.+ ([0-9]+ x [0-9]+).*/,"$1");
            res = res.split(" x ");
            imgSet[j++] = {
                "src" :  ROOT + "/view/" + v[last].replace(/([0-9]{5})-(.+)/,"$1/$2"),
                "h"   : res[1],
                "w"   : res[0]
            }
        }
	}

	D.body.innerHTML = '';
    dC = D.CE("div");
    dC.id = "controls";
    dC.style.background="#fff";
    h1 = D.CE("h1");
    h1.id="title";
    dB = D.CE("input");
    dB.type = "text";
    dB.id = "delayBox";
    dB.size = "2";
    dB.value = delay;
    dC.appendChild(h1);
    dC.appendChild(dB);
    dC.appendChild(D.createTextNode(" seconds"));
    D.body.appendChild(dC);

	d = D.CE("div");
    d.id = "slide";
	d.style.position = "absolute";
	d.style.border = "1px solid #fff";
	d.style.padding = "1px";

    a = D.CE("a");
    a.href='javascript:location.reload()';
    a.innerHTML="Return";
    dC.appendChild(a);

    a = D.CE("a");
    a.id = "pause";
    a.href="javascript:pause(true)";
    a.innerHTML="Pause";
    dC.appendChild(a);

    current = 0;
    if(imgSet.length>0) {
        window.setTimeout(function() {this.preload()},0);
        this.showSlide();
    }
}
