var dhtmlOn = 0;
var commercial = 1;
var tDiv;
var dHeight = 0;
var vHeight = 0;
var tHeight = 0;
var maxOffset = 0;
var cOff = 0;
var current = 1;
var scrollTimer = 0;
var scrollUpActive = 0;
var scrollDownActive = 1;
var highlightingUp = 0;
var highlightingDown = 0;
var slideShow = 0;
var slideInterval = 3000; // 3 seconds
var slideTimer = 0;
var preloadImg = 0;

// Replacement fields
var photoimg = 0;
var upImg = 0;
var downImg = 0;
var slideToggle = 0;
var r1, r2, r3, r4;
var r1pr, r2pr, r3pr, r4pr;
var r1hl, r2hl, r3hl, r4hl;
var r1fn, r2fn, r3fn, r4fn;
var r1am, r2am, r3am, r4am;
var filename;
var date;
var size;
var caption;
var footer;
var slideButtonTxt;

function showpic(n)
{
    if (! dhtmlOn)
    {
        return true;
    }
    // photoimg.src="/gstuff/loading.jpg";
    var hl = photoMeta[n].hl;
    var fn = photoMeta[n].fn;

    if (commercial)
    {
        var kw = photoMeta[n].kw;
        if (kw.indexOf("Sell8x10") == -1)
        {
            r1.style.display = "none";
        }
        else
        {
            var p1 = photoMeta[n].p8x10;
            r1pr.data = p1;
            r1hl.value = "8x10 Print: " + hl;
            r1fn.value = fn;
            r1am.value = p1;
            r1.style.display = "";
        }

        if (kw.indexOf("Sell16x20") == -1)
        {
            r2.style.display = "none";
        }
        else
        {
            var p2 = photoMeta[n].p16x20;
            r2pr.data = p2;
            r2hl.value = "16x20 Print: " + hl;
            r2fn.value = fn;
            r2am.value = p2;
            r2.style.display = "";
        }

        if (kw.indexOf("Sell20x30") == -1)
        {
            r3.style.display = "none";
        }
        else
        {
            var p3 = photoMeta[n].p20x30;
            r3pr.data = p3;
            r3hl.value = "20x30 Print: " + hl;
            r3fn.value = fn;
            r3am.value = p3;
            r3.style.display = "";
        }

        if (kw.indexOf("SellMediumRes") == -1)
        {
            r4.style.display = "none";
        }
        else
        {
            var p4 = photoMeta[n].pMRes;
            r4pr.data = p4;
            r4hl.value = "JPEG: " + hl;
            r4fn.value = fn;
            r4am.value = p4;
            r4.style.display = "";
        }

        if (kw.indexOf("SellHighRes") == -1)
        {
            r4.style.display = "none";
        }
        else
        {
            var p4 = photoMeta[n].pHRes;
            r4pr.data = p4;
            r4hl.value = "JPEG: " + hl;
            r4fn.value = fn;
            r4am.value = p4;
            r4.style.display = "";
        }
    }

    filename.data = fn;
    date.data = photoMeta[n].dt;
    size.data = photoMeta[n].dm + ", " + photoMeta[n].sz;
    caption.data = photoMeta[n].cp;
    footer.data = photoMeta[n].cw;
    photoimg.src = photoMeta[n].mf;

    // Scroll if necessary to ensure new thumbnail is visible...
    var tnCurr = document.getElementById(current + "-tn");
    var tnNew = document.getElementById(n + "-tn");
    var tOff = tnNew.offsetTop;

    if (tOff < cOff)
    {   // Thumbnail off top of viewport, scroll...
        scrollTo(tOff); 
    }
    else if ((tOff + tHeight) > (cOff + vHeight))
    {   // Thumbnail off bottom of viewport, scroll...
        scrollTo((tOff + tHeight) - vHeight);
    }

    tnCurr.style.backgroundColor = "rgb(64,64,64)";
    tnNew.style.backgroundColor = "rgb(24,24,24)";
    current = n;

    return false;
}

function photoLoaded()
{
	// Preload next image, if any
    if (current < numPhotos)
	{
		preloadImg.src = photoMeta[current + 1].mf;
	}

	if (slideTimer)
	{
        clearTimeout(slideTimer); // Avoid overlapping calls
	}
    if (slideShow)
    {
        slideTimer = setTimeout("nextpic()", slideInterval);
    }
}

function prevpic()
{
    var n = current - 1;
    if (n < 1)
    {
        n = numPhotos;
    }
    return showpic(n);
}

function nextpic()
{
    var n = current + 1;
    if (n > numPhotos)
    {
        n = 1;
    }
    return showpic(n);
}

function scrollTo(y)
{
    if (y < 0)
    {
        cOff = 0;
        stopScroll();
    }
    else if (y > maxOffset)
    {
        cOff = maxOffset;
        stopScroll();
    }
    else
    {
        cOff = y;
    }
    tDiv.style.top = -cOff + "px";
    resetScrollStatus();
}

function scrollBy(y)
{
    scrollTo(cOff + y);
}

function stopScroll()
{
    if (scrollTimer)
    {
        clearInterval(scrollTimer);
        resetScrollStatus();
    }
    return false;
}

function resetScrollStatus()
{
    if (cOff == 0)
    {
        scrollUpActive = 0;
        upImg.src = "resources/scrollUpI.gif";
    }
    else if (! highlightingUp)
    {
        scrollUpActive = 1;
        upImg.src = "resources/scrollUpA.gif";
    }
    if (cOff == maxOffset)
    {
        scrollDownActive = 0;
        downImg.src = "resources/scrollDownI.gif";
    }
    else if (! highlightingDown)
    {
        scrollDownActive = 1;
        downImg.src = "resources/scrollDownA.gif";
    }
}

function startScroll(y)
{
    stopScroll();
    if (y < 0)
    {
        if (! scrollUpActive)
        {
            return false;;
        }
    }
    if (y > 0)
    {
        if (! scrollDownActive)
        {
            return false;;
        }
    }
    y *= tHeight;
    scrollBy(y);
    scrollTimer = setInterval("scrollBy(" + y + ")", 200);
    return false;
}

function upHighlight(on)
{
    if (on && scrollUpActive)
    {
        upImg.src = "resources/scrollUpH.gif"; 
        highlightingUp = 1;
    }
    else
    {
        highlightingUp = 0;
        resetScrollStatus();
    }
    return false;
}

function downHighlight(on)
{
    if (on && scrollDownActive)
    {
        downImg.src = "resources/scrollDownH.gif"; 
        highlightingDown = 1;
    }
    else
    {
        highlightingDown = 0;
        resetScrollStatus();
    }
    return false;
}

function toggleSlideshow()
{
	if (slideShow)
	{
        // Stop slideshow
        slideShow = 0;
        clearTimeout(slideTimer);
		slideToggle.src = "resources/slideOffH.gif";
    }
	else
	{
		// Start slideshow
		slideShow = 1;
		slideTimer = setTimeout("nextpic()", slideInterval);
		slideToggle.src = "resources/slideOnH.gif";
	}
	return false;
}

function slideToggleHighlight(on)
{
    if (on)
    {
		if (slideShow)
		{
            slideToggle.src = "resources/slideOnH.gif"; 
		}
		else
		{
            slideToggle.src = "resources/slideOffH.gif"; 
		}

    }
    else
    {
	    if (slideShow)
		{
            slideToggle.src = "resources/slideOn.gif"; 
		}
		else
		{
            slideToggle.src = "resources/slideOff.gif"; 
		}
    }
    return false;
}

    


window.onload=function()
{
    if (document.getElementById && document.createTextNode)
    {
        var scroll = document.getElementById("thumbscroll");
        vHeight = scroll.offsetHeight;
        tDiv = document.getElementById("thumbdiv");
        var tDivHeight = tDiv.offsetHeight;
        maxOffset = tDivHeight - vHeight;
        var pics = tDiv.getElementsByTagName("a");
        tHeight = document.getElementById("1-tn").offsetHeight;
        photoimg = document.getElementById("photoimg");
        upImg = document.getElementById("scrollUpImg");
        downImg = document.getElementById("scrollDownImg");
		slideToggle = document.getElementById("slideToggle");
        if (commercial)
        {
            r1 = document.getElementById("r1");
            r1pr = document.getElementById("r1price").childNodes[0];
            r1hl = document.getElementById("r1headline");
            r1fn = document.getElementById("r1filename");
            r1am = document.getElementById("r1amount");
            r2 = document.getElementById("r2");
            r2pr = document.getElementById("r2price").childNodes[0];
            r2hl = document.getElementById("r2headline");
            r2fn = document.getElementById("r2filename");
            r2am = document.getElementById("r2amount");
            r3 = document.getElementById("r3");
            r3pr = document.getElementById("r3price").childNodes[0];
            r3hl = document.getElementById("r3headline");
            r3fn = document.getElementById("r3filename");
            r3am = document.getElementById("r3amount");
            r4 = document.getElementById("r4");
            r4pr = document.getElementById("r4price").childNodes[0];
            r4hl = document.getElementById("r4headline");
            r4fn = document.getElementById("r4filename");
            r4am = document.getElementById("r4amount");
        }
        filename = document.getElementById("filename").childNodes[0];
        date = document.getElementById("date").childNodes[0];
        size = document.getElementById("size").childNodes[0];
        caption = document.getElementById("caption").childNodes[0];
        footer = document.getElementById("copyright").childNodes[0];
        dhtmlOn = 1;
		preloadImg = new Image();
        showpic(1);
    }
}

