﻿function ViewerControls(viewerElement)
{
    this.m_Controls = FP_getObjectByID('viewerControls', viewerElement);
    this.m_Start = FP_getObjectByID('startLink', this.m_Controls);
    this.m_Previous = FP_getObjectByID('prevLink', this.m_Controls);
    this.m_Index = FP_getObjectByID('indexLink', this.m_Controls);
    this.m_Next = FP_getObjectByID('nextLink', this.m_Controls);
    this.m_Last = FP_getObjectByID('endLink', this.m_Controls);
}

ViewerControls.prototype.Update = function(index, imageCount)
{
    var firstImage = index == 0;
    var lastImage = index == (imageCount - 1);
    
    this.m_Start.style.visibility = firstImage ? "hidden" : "visible";
    this.m_Previous.style.visibility = firstImage ? "hidden" : "visible";
    this.m_Next.style.visibility = lastImage ? "hidden" : "visible";
    this.m_Last.style.visibility = lastImage ? "hidden" : "visible";
}

ViewerControls.prototype.visible = function(show)
{
    if(this.m_Controls)
    {
        var visible = (show == true ? "visible" : "hidden");
        this.m_Controls.style.visibility = visible;
        this.m_Index.style.visibility = visible;
        if(show != true)
        {
            // Only explicitly hide the controls - they will be made visible in Update() when an image is shown.
            this.m_Start.style.visibility = visible;
            this.m_Previous.style.visibility = visible;
            this.m_Next.style.visibility = visible;
            this.m_Last.style.visibility = visible;
        }
    }
}