﻿var _ImageFiles = new Array();
var offset = 0;
var _Thumbnails;
var _Arrows;
var _tags = new Array();
var _anchors = new Array();
var _urls = new Array();

function InitializeGallery(imageFiles, thumbnails, arrows, tags, anchors, urls)
{
    var request = window.location.href;
    
    _ImageFiles = imageFiles;
    offset = GetOffset(request);
    _Thumbnails = thumbnails;
    _Arrows = arrows;
    
    //the following are not used by all galleries
    if (tags)
    {
        _tags = tags;
    }
    
    if (anchors)
    {
        _anchors = anchors;
    }
    
    if (urls)
    {
        _urls = urls;
    }
}

function FillGallery()
{
    //thumbnails
    FillThumbnails();
    
    //arrows
    SetArrows();
}

function FillThumbnails()
{
    for (var i = (0); i < _Thumbnails.length; i++)
    {
        var objThumbnail = document.getElementById(_Thumbnails[i]);
        
        if (objThumbnail)
            {
            if (offset + i < _ImageFiles.length)
            {   
                objThumbnail.src = _ImageFiles[offset + i];
                objThumbnail.style.display = 'inline';
                
                FillOptionalProperties(objThumbnail, i);
            }
            else
            {
                objThumbnail.style.display = 'none';
            }
        }
    }
}

function FillOptionalProperties(objThumbnail, index)
{
    if (_tags.length > offset + index)
    {
        objThumbnail.alt = _tags[offset + index];
    }
    
    if (_urls && _anchors)
    {
        var objAnchor = document.getElementById(_anchors[index]);
        
        if (objAnchor)
        {
            objAnchor.href = 'http://www.' + _urls[offset + index];
        }
    }
}

function SetArrows()
{
    var numThumbnails = _Thumbnails.length;
    
    //Left Arrow
    var objLeftArrow = document.getElementById(_Arrows[0]);
    
    if (objLeftArrow)
    {
        objLeftArrow.style.display = (offset > 0 ? 
            "inline" : "none");
    }
    
    //Right Arrow
    var objRightArrow = document.getElementById(_Arrows[1]);
    
    if (objRightArrow)
    {
        objRightArrow.style.display = (offset + numThumbnails < _ImageFiles.length ? 
            "inline" : "none");
    }
}

function GetOffset(request)
{
    var paramIndex = request.indexOf('offset=');
    
    if (paramIndex > -1)
    {
        //account for the offset=
        paramIndex+= 7;
        
        var paramLen = request.indexOf('&',paramIndex) - paramIndex;
        
        return parseInt(paramLen > 0 ? 
        request.substring(paramIndex, paramLen) : 
        request.substring(paramIndex));
    }
    else
    {
        return 0;
    }
}

function MovePage(direction)
{
    var numThumbnails = _Thumbnails.length;
    
    offset = (direction == 1 ? 
        (offset + numThumbnails) :
        (offset - numThumbnails > 0 ?
                offset - numThumbnails : 0));
                
    FillGallery();
}