
/**
* setup some local variables
*/
var slideId             = null;
var slidePrevId         = null;
var slideNextId         = null;
var slideLinkId         = null;
var slideImage          = new Array();
var slideLink           = new Array();
var slideTitle          = new Array();
var slideDescription    = new Array();
var slideIndex          = 0;

/**
* initialize the slider by setting up the appropriate images for swapping
*
* @param image id
* @param link id
* @param previous id
* @param next id
* @param title id
* @param description id
* @param "image" or "image|link" or "image|title|description" or "image|link|title|description"
* @param [...] more images
*/
function initializeSlider()
{
    if (document.getElementById)
    {
        slideId             = arguments[0];
        slideLinkId         = arguments[1];
        slidePrevId         = arguments[2];
        slideNextId         = arguments[3];
        slideTitleId        = arguments[4];
        slideDescriptionId  = arguments[5];

        if (document.getElementById(slideId))
        {
            // force starting index
            slideIndex = 0;
            var match = null;

            // snatch up the images to remember
            for (var i = 0; i < (arguments.length - 6); i++)
            {
                match = arguments[i+6].split('|');

                if (match && (match.length == 2))
                {
                    slideImage[i]       = match[0];
                    slideLink[i]        = match[1];
                    slideTitle[i]       = null;
                    slideDescription[i] = null;
                }
                else if (match && (match.length == 3))
                {
                    slideImage[i]       = match[0];
                    slideLink[i]        = 'javascript:void(0);';
                    slideTitle[i]       = match[1];
                    slideDescription[i] = match[2];
                }
                else if (match && (match.length == 4))
                {
                    slideImage[i]       = match[0];
                    slideLink[i]        = match[1];
                    slideTitle[i]       = match[2];
                    slideDescription[i] = match[3];
                }
                else
                {
                    slideImage[i]       = arguments[i+6];
                    slideLink[i]        = 'javascript:void(0);';
                    slideTitle[i]       = null;
                    slideDescription[i] = null;
                }
            }

            // force first slide
            document.getElementById(slideId).setAttribute('src', slideImage[slideIndex]);
            document.getElementById(slideLinkId).setAttribute('href',slideLink[slideIndex]);

            if (slideTitle[slideIndex] != null) document.getElementById(slideTitleId).innerHTML = slideTitle[slideIndex];
            if (slideDescription[slideIndex] != null) document.getElementById(slideDescriptionId).innerHTML = slideDescription[slideIndex];

            updateSlideControls();
        }
    }
}

/**
* update the slide controls (hide/show controls)
*
* @param void
* @return void
*/
function updateSlideControls()
{
    if (slideImage.length > 1)
    {
        if (slideIndex <= 0)
        {
            // hide previous
            document.getElementById(slidePrevId).style.visibility = 'hidden';

            // show next
            document.getElementById(slideNextId).style.visibility = 'visible';
        }
        else if (slideIndex >= (slideImage.length - 1))
        {
            // hide next
            document.getElementById(slideNextId).style.visibility = 'hidden';

            // show previous
            document.getElementById(slidePrevId).style.visibility = 'visible';
        }
        else
        {
             // show next
            document.getElementById(slideNextId).style.visibility = 'visible';

            // show previous
            document.getElementById(slidePrevId).style.visibility = 'visible';
        }
    }
    else
    {
        // no slides to work with
        document.getElementById(slideNextId).style.visibility = 'hidden';
        document.getElementById(slidePrevId).style.visibility = 'hidden';
    }
}

/**
* move to the next slide
*
* @param void
* @return void
*/
function nextSlide()
{
    if ((document.getElementById) && (slideId != null))
    {
        if (slideIndex < (slideImage.length - 1))
        {
            // there's at least one more slide
            slideIndex++;
            document.getElementById(slideId).setAttribute('src', slideImage[slideIndex]);
            document.getElementById(slideLinkId).setAttribute('href',slideLink[slideIndex]);

            if (slideTitle[slideIndex] != null) document.getElementById(slideTitleId).innerHTML = slideTitle[slideIndex];
            if (slideDescription[slideIndex] != null) document.getElementById(slideDescriptionId).innerHTML = slideDescription[slideIndex];

            updateSlideControls();
        }
    }
}

/**
* move to the previous slide
*
* @param void
* @return void
*/
function previousSlide()
{
    if ((document.getElementById) && (slideId != null))
    {
        if (slideIndex > 0)
        {
            // there's at least one previous slide
            slideIndex--;
            document.getElementById(slideId).setAttribute('src', slideImage[slideIndex]);
            document.getElementById(slideLinkId).setAttribute('href',slideLink[slideIndex]);

            if (slideTitle[slideIndex] != null) document.getElementById(slideTitleId).innerHTML = slideTitle[slideIndex];
            if (slideDescription[slideIndex] != null) document.getElementById(slideDescriptionId).innerHTML = slideDescription[slideIndex];

            updateSlideControls();
        }
    }
}

