var layout = (function() {

    var staticSpace = null;
    var staticPageElements = ['#header', '#footer', '#contentOptions'];

    function calcStaticSpace() {

        var calculatedStaticHeight = (function() {
            var h = 0;
            $.each(staticPageElements, function(i, obj) {
                h += $(obj).innerHeight();
            });
            return h;
        })();

        var hackPadding = 9; //Extra spacing to remove, @TODO - find out where this is coming from

        return (calculatedStaticHeight + hackPadding);
    }

    return {

        setContentPosition: function() {

            if (staticSpace == null) { staticSpace = calcStaticSpace(); } //Get static height only once and store it

            var windowHeight = $(window).height();

            //Get dynamic height amount from difference of window and static space
            var calculatedMiddleHeight = Math.round(windowHeight - staticSpace);

            //Get height of content
            var contentHeight = $("#contentWrapper").innerHeight();

            //Check if we need to expand holder, if yes set height
            if (calculatedMiddleHeight > contentHeight) {
                $("#contentHolder").css("height", calculatedMiddleHeight + "px");
                //Center content
                centerElementVerticalMargin($('#contentWrapper'), $('#contentHolder'));
            }

            $('#header').css("visibility", "visible");
            $('#content').css("visibility", "visible");
            $('#footer').css("visibility", "visible");
        }
    }
})();

var FontSettings = { light: "f300", normal: "f500", enabled: true };

//*** Cufon font replacement ***
(function() {

    if (typeof (Cufon) == "undefined" || Cufon == null || FontSettings.enabled !== true) {
        $('#content-container').css("visibility", "visible");
        return;
    }

    Cufon.callbackEach = function() {
    };

    Cufon.callbackFinished = function() {
        $('#content-container').css("visibility", "visible");
        //$('#content-container').show();
        //$('#content-container').fadeIn(1);
    };

    //Global Pieces
    Cufon.replace('h4,h5,h6', { fontFamily: FontSettings.light });
    Cufon.replace('#followLinks a', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#menu a', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#dateNav a, #dateNav .active', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#contentOptions .shareNav a', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#footer a.footerLink', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#credits .creditText', { fontFamily: FontSettings.normal, hover: true });

    //Daily View
    Cufon.replace('h1.poll', { fontFamily: FontSettings.light, hover: true });
    Cufon.replace('#photoItemHolder .title', { fontFamily: FontSettings.light });
    Cufon.replace('#photoItemHolder #imgControls a', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#photoItemHolder #textPagination a', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#contentData a.creditsLink', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#contentData .mediaAnswers .caption a', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#contentData .mediaAnswers p', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#quoteItemHolder .title', { fontFamily: FontSettings.light });
    Cufon.replace('#quoteItemHolder #creditsSection', { fontFamily: FontSettings.light });
    Cufon.replace('#ratingHolder .ratingOption a', { fontFamily: FontSettings.light });
    Cufon.replace('#videoItemHolder .title', { fontFamily: FontSettings.light });
    //Cufon.replace('#answerList .multiAnswerItem a', { fontFamily: FontSettings.normal, hover: true });

    //Calendar
    Cufon.replace('#calendarTable td .dateLabel', { fontFamily: FontSettings.light });
    Cufon.replace('#calendarTable td a', { fontFamily: FontSettings.light, hover: true });

    //About
    Cufon.replace('#missionHolder h2', { fontFamily: FontSettings.light });
    Cufon.replace('#missionHolder p', { fontFamily: FontSettings.normal, hover: true });

    //faq
    Cufon.replace('#faqHolder h2', { fontFamily: FontSettings.light });
    Cufon.replace('#faqHolder p', { fontFamily: FontSettings.normal, hover: true });

    //Privacy
    Cufon.replace('#privacyHolder h2', { fontFamily: FontSettings.light });

    //Subscribe
    Cufon.replace('#subscribeForm h2', { fontFamily: FontSettings.light });
    Cufon.replace('#subscribeForm p', { fontFamily: FontSettings.normal, hover: true });
    Cufon.replace('#subscribeForm label', { fontFamily: FontSettings.normal });
    Cufon.replace('#subscribeForm .error', { fontFamily: FontSettings.normal });

    //404
    Cufon.replace('#pageNotFound h2', { fontFamily: FontSettings.light });
    Cufon.replace('#pageNotFound a', { fontFamily: FontSettings.normal, hover: true });

})();

$(document).ready(function() {

    setupCreditsHover();

    layout.setContentPosition();

    $('#credits').track("sitecredits","externalLink", "click");
    $('#followLinks a[title=\'Twitter\']').track("twitter","externalLink", "click");
    $('#followLinks a[title=\'Twitter\']').track("twitter","externalLink", "click");
});

$(window).resize(layout.setContentPosition);

function setupCreditsHover() {

    $('#credits').hover(function() {
        $('#creditLabel').hide();
        $('#creditName').show();
    }, function() {
        $('#creditName').hide();
        $('#creditLabel').show();
    });
}