﻿function InitializeImageGallery()
{
    var _prevPageLink = $('#prevPageLink');
    var _nextPageLink = $('#nextPageLink');

    // Initially set opacity on thumbnails and set additional styling for hover effect on thumbnails.
    var onMouseOutOpacity = 0.85;

    $('#thumbs ul.thumbs li, div.navigation a.pageLink').opacityrollover(
    {
        mouseOutOpacity: onMouseOutOpacity,
        mouseOverOpacity: 1.0,
        fadeSpeed: 'fast',
        exemptionSelector: '.selected'
    });

    // Initialize Advanced Galleriffic Gallery
    var gallery = $('#thumbs').galleriffic(
    {
        delay: 2500,
        numThumbs: 8,
        preloadAhead: 8,
        enableTopPager: false,
        enableBottomPager: false,
        imageContainerSel: '#slideshow',
        controlsContainerSel: '#controls',
        captionContainerSel: '#caption',
        loadingContainerSel: '#loading',
        renderSSControls: true,
        renderNavControls: true,
        playLinkText: 'Play Slideshow',
        pauseLinkText: 'Pause Slideshow',
        prevLinkText: '&lsaquo; Previous Photo',
        nextLinkText: 'Next Photo &rsaquo;',
        nextPageLinkText: 'Next &rsaquo;',
        prevPageLinkText: '&lsaquo; Prev',
        enableHistory: true,
        autoStart: false,
        syncTransitions: true,
        defaultTransitionDuration: 900,
        onSlideChange: function (prevIndex, nextIndex)
        {
            // 'this' refers to the gallery, which is an extension of $('#thumbs')
            this.find('ul.thumbs').children().eq(prevIndex).fadeTo('fast', onMouseOutOpacity).end().eq(nextIndex).fadeTo('fast', 1.0);

            // Update the photo index display
            this.$captionContainer.find('div.photo-index').html('Photo ' + (nextIndex + 1) + ' of ' + this.data.length);
        },
        onPageTransitionOut: function (callback)
        {
            this.fadeTo('fast', 0.0, callback);
        },
        onPageTransitionIn: function ()
        {
            _prevPageLink.css('visibility', 'hidden');
            _nextPageLink.css('visibility', 'hidden');

            // Show appropriate next / prev page links
            if (this.displayedPage > 0)
            {
                _prevPageLink.css('visibility', 'visible');
            }

            var lastPage = this.getNumPages() - 1;
            if (this.displayedPage < lastPage)
            {
                _nextPageLink.css('visibility', 'visible');
            }

            this.fadeTo('fast', 1.0);
        }
    });

    $("#imageGalleryLoading").hide();

    $("#imageGallery").show();

    /**************** Event handlers for custom next / prev page links **********************/
    _prevPageLink.click(function (e)
    {
        gallery.previousPage();
        e.preventDefault();
    });

    _nextPageLink.click(function (e)
    {
        gallery.nextPage();
        e.preventDefault();
    });
}


$(document).ready(function ()
{
    $("#layoutContainer a[rel='external']").attr("target", "_blank");

    var currentPage = (location.pathname == "/") ? ('/default.aspx') : (location.pathname);

    $("#cph div.navigation a[href$='" + currentPage + "']").addClass('currentPage');

    // We only want these styles applied when javascript is enabled
    $('div.content').css('display', 'block');

    InitializeImageGallery();
});
