﻿//Global access for flash
var global = this;

//**** Load Events When Document Ready ****
$(document).ready(function() {

    // *** Credits **********************************
    (function() {

        $('#contentData a.creditsLink').click(function(e) {
            e.preventDefault();
            $(slideShow.getCurrItem()).find(".credits").fadeToggle(500);
        });

        $('#slideShow').bind("changed", function() {
            $('#contentData').find(".credits").fadeOut(500);
        });

    })();

    // *** Fullscreen **********************************
    (function() {


        //Handle hover of flash button to html link
        $('#fullScreenHolder').hover(function() {

            $('#slideShow a.fullScreenLink').addClass("hover");
            Cufon.refresh('#photoItemHolder #imgControls a');

        }, function() {

            $('#slideShow a.fullScreenLink').removeClass("hover");
            Cufon.refresh('#photoItemHolder #imgControls a');

        });

        //Set the accessor function for flash on global scope
        global.getFullScreenImage = function() {
            var imgSrc = slideShow.getCurrFullLink();
            return imgSrc;
        };

        //When item changed, check for full screen version, and hide/show full screen link
        $('#slideShow').bind("changed", function() {

            var imgSrc = slideShow.getCurrFullLink();

            if (!imgSrc || imgSrc === "") {
                $('#imgControls').find('#fullScreenHolder, a.fullScreenLink').fadeOut(800);
            }
            else {
                $('#imgControls').find('#fullScreenHolder, a.fullScreenLink').fadeIn(800);
            }
        });

    })();

    // *** Slide Show *************************************
    var slideShow = $.slideFader($('#slideShow'), ".imgBox");


    // *** Scroll Paging **********************************
    (function() {

        //Init
        $('#description p:last').addClass("last");

        //Member vars
        var screen = $('#textScreen');
        var text = $('#description');
        var screenH = screen.height();
        var textH = text.height();

        var pages = Math.ceil(textH / screenH);

        var currPage = 1;

        //Functions
        var gotoPage = function(newPage) {

            var currPos = text.position().top;

            var pagesToMove = newPage - currPage;
            var distance = screenH * pagesToMove;

            var newPos = currPos - distance;

            text.animate({ top: newPos + "px" }, 450);

            currPage = newPage;

            updateLinks();
        };

        var updateLinks = function() {
            $('#textPagination a').removeClass("current");
            $('#textPagination a[href=#' + currPage + ']').addClass("current");
        };

        //* Main *

        var holder = $('<div id="textPagination" />');

        //Build page links
        for (var i = 1; pages > 1 && i <= pages; i++) {
            var className = i === 1 ? "current" : "";
            var link = $('<a class="' + className + '" href="#' + i + '">' + i + '</a>');

            //When link clicked, grab href and go to that page
            link.click(function(e) {
                e.preventDefault();

                var pageLink = $(this).attr('href');
                var pageNumber = pageLink.slice(pageLink.lastIndexOf('#') + 1); //Get number of page from link

                gotoPage(pageNumber);
            });

            holder.append(link);
        }

        $('#textSection').prepend(holder);

    })();


    // *** Helpers **********************************
    jQuery.fn.fadeToggle = function(speed, easing, callback) {
        return this.animate({ opacity: 'toggle' }, speed, easing, callback);
    };

});