/**
 * Left Nav Scrolling Menu Javascript
 */

var scrollTopIndices = new Array();
var numVisible = 10;

function initScrollTopIndices(parentId)
{
    if (scrollTopIndices[parentId] == undefined) {
        var startIndexId = 'menu_'+parentId+'_startIndex';
        var startIndexEle = document.getElementById(startIndexId);
        var startIndex = Number(startIndexEle.innerHTML);
        
        if (startIndex < 1) {
            startIndex = 1;
        }
        
        scrollTopIndices[parentId] = startIndex;
    }
}

function swapImage(imgId, imgSrc)
{
    var imgEle = document.getElementById(imgId);
    imgEle.setAttribute("src", imgSrc);
}

function activeUpImage(parentId)
{
    swapImage("up_arrow_"+parentId, "/images/arrowUp.gif");
}

function grayUpImage(parentId)
{
    swapImage("up_arrow_"+parentId, "/images/arrowUpGrey.gif");
}

function activeDnImage(parentId)
{
    swapImage("dn_arrow_"+parentId, "/images/arrowDn.gif");
}

function grayDnImage(parentId)
{
    swapImage("dn_arrow_"+parentId, "/images/arrowDnGrey.gif");
}

function scrollMenu(parentId, hideIdx, showIdx)
{
    var hideId = 'menu_'+parentId+'_'+hideIdx;
    var showId = 'menu_'+parentId+'_'+showIdx;
    
    var hideEle = document.getElementById(hideId);
    var showEle = document.getElementById(showId);

    hideEle.style.display = 'none';
    showEle.style.display = 'block';
}

function scrollUp(parentId, lastIdx)
{
    initScrollTopIndices(parentId);
    
    var topIdx = scrollTopIndices[parentId];
    
    var hideIdx = numVisible + topIdx - 1;
    var showIdx = topIdx - 1;
    
    if ((showIdx >= 1) && (hideIdx > numVisible)) {
        
        scrollMenu(parentId, hideIdx, showIdx);
        scrollTopIndices[parentId] = showIdx;
    
        if (showIdx == 1) {
            grayUpImage(parentId);
        } else {
            activeUpImage(parentId);
        }
        
        activeDnImage(parentId);
    }
}


function scrollDown(parentId, lastIdx)
{
    initScrollTopIndices(parentId);
    
    var topIdx = scrollTopIndices[parentId];
    
    var hideIdx = topIdx;
    var showIdx = topIdx + numVisible;

    if ((showIdx <= lastIdx) && (hideIdx <= (lastIdx - numVisible))) {
        
        scrollMenu(parentId, hideIdx, showIdx);
        scrollTopIndices[parentId] = hideIdx + 1;
        
        if (showIdx == 15) {
            grayDnImage(parentId);
        } else {
            activeDnImage(parentId);
        }
        
        activeUpImage(parentId);
    }
}