/// <reference path="libraries/jquery-vsdoc2.js" />

var runOnceScript = false;

function pageLoad() {
$(document).ready(function () {

    if (!runOnceScript) {

        // Display home category style in unknown
        $('div#prizelist-layout div#unknown-style').attr('id', 'home-style');
        $('div#prizelist-layout li.item-unknown').attr('class', 'item-home');

        $('div#utility-panel input:submit').click(function () {
            ValidationItems();
            if ($('div#utility-panel div.sign-in fieldset div.validation-summary:visible').length > 1) {
                $('div#utility-panel div.sign-in fieldset div.validation-summary:first').hide();
            }
            if (Page_IsValid) {
                $('body').css('cursor', 'progress');
            };
        });

        if ($('div#utility-panel span.validation-item:visible')) {
            $('body').css('cursor', 'default');
        };

        // Hide forgotten password panel and toggle link
        $('div#utility-panel div.sign-in ul.secondary-link').prepend('<li><a href="/" id="forgotten-password-link">Password forgotten?</a></li>');
        $('div#utility-panel div.forgotten').hide();
        $('div#utility-panel div.sign-in a#forgotten-password-link').click(function (event) {
            event.preventDefault();
            if ($('div#utility-panel div.forgotten').is(':visible')) {
                $('div#utility-panel div.forgotten').slideUp('slow');
            } else {
                $('div#utility-panel div.forgotten').slideDown('slow');
            }
        });

        function ValidationItems() {
            $('div#utility-panel fieldset ul li').each(function () {
                if ($('span.validation-item', this).is(':visible')) {
                    $('span.validation-item', this).text("");
                } else {
                    $('span.validation-item', this).text("");
                };
            });
        }

        //Add display layout option to filter bar
        $('div#prizelist-layout div.prize-list div.filter-bar').prepend('<div id="display-method"><a href="/" title="Change to icon layout">Change to icon layout</a></div>');

        if ($.session('display-layout') == 'icon') {
            $('div#prizelist-layout div.prize-list div.panel-container ol').addClass('display-icon-method').removeClass('display-list-method');
            $('div#prizelist-layout div.prize-list div#display-method a').addClass('swap').text('Change to list layout').attr('title', 'Change to list layout');
            displayIcon();
        } else {
            displayList();
        };

        // Change the layout of the prize list.
        $('div#prizelist-layout div.prize-list div#display-method a').toggle(function (event) {
            event.preventDefault();
            if ($(this).attr('class') == 'swap') {
                var listObject = $(this);
                clickList(listObject);
            } else {
                var iconObject = $(this);
                clickIcon(iconObject);
            };
        }, function (event) {
            event.preventDefault();
            if ($(this).attr('class') == 'swap') {
                var listObject = $(this);
                clickList(listObject);
            } else {
                var iconObject = $(this);
                clickIcon(iconObject);
            };
        });


        function clickIcon(object) {
            $.session('display-layout', 'icon');
            $(object).addClass('swap').text('Change to list layout').attr('title', 'Change to list layout');
            $('div#prizelist-layout div.prize-list div.panel-container ol').fadeOut('slow', function () {
                $(this).removeClass('display-list-method').addClass('display-icon-method').fadeIn('slow');
                displayIcon();
            });
        };

        function clickList(object) {
            $.session('display-layout', 'list');
            $(object).removeClass('swap').text('Change to icon layout').attr('title', 'Change to icon layout'); ;
            $('div#prizelist-layout div.prize-list div.panel-container ol').fadeOut('slow', function () {
                $(this).addClass('display-list-method').removeClass('display-icon-method').fadeIn('slow');
                displayList();
            });
        };

        function displayList() {
            $('div#prizelist-layout div.prize-list ol li, div#prizelist-layout div.prize-list ol li a').unbind();

            $('div#prizelist-layout div.prize-list ol.display-list-method').livequery(function () {
                $('div#prizelist-layout div.prize-list ol li').hover(function () {
                    $('a span.link', this).css('text-decoration', 'none');
                    $('a', this).css('cursor', 'pointer');
                }, function () {
                    $('a span.link', this).css('text-decoration', 'underline');
                    $('a', this).css('cursor', 'default');
                });
            }, function () {
                $(this).unbind('mouseover').unbind('mouseout');
            });
        };

        function displayIcon() {
            $('div#prizelist-layout div.prize-list ol li, div#prizelist-layout div.prize-list ol li a').unbind();

            $('div#prizelist-layout div.prize-list ol.display-icon-method').livequery(function () {
                overlayHeading();
                $('a', this).unbind().hover(function () {
                    var headingTitle = $('span.heading', this).text();
                    $('span.standard-overlay', this).css('position', 'absolute').append('<span class="button-overlay"><span class="heading-title">' + headingTitle + '</span></span>');
                    $('span.prize-image-medium', this).css('position', 'relative').prepend('<span class="shade-background"></span>');
                    $('span.shade-background', this).css('position', 'absolute').css('height', '100px').css('width', '120px').animate({ opacity: 0.5 }, 0);
                    $('span.button-overlay', this).css('z-index', '2');
                }, function () {
                    $('span.shade-background', this).remove();
                    $('span.button-overlay', this).remove();
                });
            }, function () {
                $(this).unbind('mouseover').unbind('mouseout');
            });
        };

        // Truncate title copy for icon view
        function overlayHeading() {
            $('div#prizelist-layout div.prize-list ol.display-icon-method span.heading').each(function () {
                $(this).jTruncate({ stringlength: 40, trailText: '...', displayType: 'text' });
            });
        };

        // Truncate title copy for list view
        $('div#prizelist-layout div.prize-list ol.display-list-method span.heading').each(function () {
            $(this).jTruncate({ stringlength: 70, trailText: '...', displayType: 'text' });
        });
        runOnceScript = true;

    };
});

}
