$(document).ready(function() {

    fastOrder.ini();

    // better artgrp navigation
    // Ajax page-load is evil, see Ticket #1242
    // pageNav.ini();

    imageScaler.ini();

    mediaLightbox.ini();

    if ($.isFunction($.fancybox)) {
        $('a[rel="fancybox"]').fancybox({
            'width'              : 700,
            'height'             : 315,
            'showCloseButton'    : true,
            'hideOnOverlayClick' : false,
            'swf'                : {
                wmode: 'window',
                quality: 'high',
                bgcolor: '#ffffff',
                play: 'true',
                loop: 'true',
                scale: 'showall',
                menu: 'false',
                devicefont: 'false',
                salign: '',
                allowScriptAccess: 'always'
            }
    });
    }

});

var imageScaler = {
    container : '.articleShortToolTip img',

    ini : function() {
        if ($(imageScaler.container)) {
            $(imageScaler.container).each(function(key, elem) {
                if($(elem).width() > 120) {
                    $(elem).width(120);
                }
            });
        }
    }
};

var pageNav = {

    ini : function() {

        // loader
        $('.artgrpLoaderGfx')
                .html('<img src="/img/misc/artgrp-loader.gif" alt="" title="" />');

        // page nav links
        if ($('.pageNav a').length > 0) {
            $('.pageNav a').click(function() {

                var of = $(this).attr('rel');

                if (conf.artgrp) {
                    page = '/xhr/artgrp/artgrp.php';

                    $('.artgrpLoaderGfx').show();

                    $('#artgrppage').load(page, {
                                'of' : of,
                                'artgrp' : conf.artgrp
                            },
                            function(responseText, textStatus, XMLHttpRequest) {

                                if (textStatus == 'success') {
                                    $('.artgrpLoaderGfx').hide();
                                    pageNav.ini();
                                    fastOrder.ini();
                                    toolTip.ini();
                                }
                            });

                }

                return false;
            });
        }
    }

};

var fastOrder = {

    artId : false,

    showLinks : function() {
        $('.directOrderLink').show();
    },

    ini : function() {

        fastOrder.showLinks();
        fastOrder.registerLinks();

    },

    registerLinks : function() {

        toolTip.ini();

        $('a.directOrderLink').click(function() {
                    fastOrder.artId = $(this).attr("rel");

                    // order it
                    $('#dialogContainer').load('/xhr/order/directorder.php', {
                            'art' : fastOrder.artId
                            },
                            function(responseText, textStatus, XMLHttpRequest) {

                                if (textStatus == 'success') {

                                    $('#dialogContainer').dialog({
                                                close : function(event, ui) {
                                                    $(this).dialog('destroy');
                                                },
                                                autoOpen : true,
                                                bgiframe : true,
                                                width : 550,
                                                modal : true,
                                                draggable : false,
                                                resizable : false
                                            });

                                    // register form
                                    basket.registerForms();
                                }
                            });

                    return false;
                });

        return false;
    }
};


var mediaLightbox = {

    overlayName : 'lOverlay',
    lightboxName : 'lBorderContainer',
    lContentContainer : 'lContentContainer',

    buildInterface : function() {

        $('body').append('<div style="display: none;" id="' + mediaLightbox.overlayName + '"></div>');
        $('body').append('<div style="display: none;" id="' + mediaLightbox.lightboxName + '"></div>');
        $('#' + mediaLightbox.lightboxName).append('<div class="' + mediaLightbox.lContentContainer + '" style="width:auto;"></div>');
        $('.' + mediaLightbox.lContentContainer).append('<div class="lImage" id="currentMovie" style="display: none;"></div>');
        $('.' + mediaLightbox.lContentContainer).append('<div class="lFooter"><img id="lBrnClose" src="/img/icons/cross-icon-blue.gif" alt="close" /></div>');
    },

    ini : function() {
        mediaLightbox.buildInterface();

        $('.groupMovie').click(function(item) {

            $('#currentMovie').load(item.currentTarget.getAttribute('href'));

            $('#' + mediaLightbox.overlayName).show();
            $('#' + mediaLightbox.lightboxName).fadeIn("fast");
            $("#currentMovie").show();

            return false;
        });

        $('#' + mediaLightbox.overlayName).click( function() {
            mediaLightbox.hide();
            return false;
        });

        $('#lBrnClose').click( function() {
            mediaLightbox.hide();
            return false;
        });

        $(window).resize( function() {
            mediaLightbox.updateSizes();
        });

        $(document).keydown( function(event) {
            if (event.keyCode == '27') {
                mediaLightbox.hide();
            }
        });

        return false;

    },

    updateSizes : function() {
        dWidth  = $(document).width();
        dHeight = $(document).height();

        $('#' + mediaLightbox.overlayName).css({width: dWidth, height : dHeight});
    },

    hide : function() {

        $('#' + mediaLightbox.overlayName).hide();
        $('#' + mediaLightbox.lightboxName).hide();
    },

    startLoader : function() {

        $('#lLoadingOverlay')
            .css({opacity: 0.7})
            .show();

    },

    stopLoader : function() {

        $('#lLoadingOverlay').fadeOut(1000);

    }

};
