(function ($) {

    $.LightBox = {
        Initialize: function () {
            var LightBoxHTML = '<div id="lb_overlay" style="margin: 0 auto; z-index: 999999;"><img src="" /></div>';
            $(LightBoxHTML).insertAfter('#page');

            $('img[rel=lightboxclick], img[rel=lightboxclick]').each(function () {
                $(this).addClass("lightbox");

                if ($(this).attr('rel') == 'lightboxclick') {
                    $('<small>Click to Enlarge</small>').insertAfter(this);
                }
                if ($(this).attr('rel') == 'lightboxhover') {
                    $('<small>Hover to Enlarge</small>').insertAfter(this);
                }
            });
        },

        ClickLightBox: function () {
            var overlayAPI = null;

            $('img[rel=lightboxclick], a[rel=lightboxclick]').click(function () {
                var ImgSrc = $(this).attr('src');
                var lbOverlay = $('#lb_overlay');
                overlayAPI = lbOverlay.overlay({
                    api: true,
                    left: '22%',
                    mask: {
                        color: "#3F3F3F",
                        opacity: '0.8',
                        loadSpeed: 'normal'
                    },
                    speed: 'normal',
                    onBeforeLoad: function () {
                        $('iframe').css("visibility", "hidden");
                    },
                    onClose: function () {
                        $('iframe').css("visibility", "visible");
                        $('#lb_overlay').find('img').attr('src', '');
                    }
                });

                lbOverlay.find('img').attr('src', ImgSrc).addClass('click');

                if (!overlayAPI.isOpened()) {
                    overlayAPI.load();
                    $.LightBox.SetPosition();
                }

                return false;
            });

            $('#lb_overlay img.click').live('click', function () {
                if (overlayAPI.isOpened()) {
                    overlayAPI.close();
                }

                return false;
            });
        },

        HoverLightBox: function () {
            var overlayAPI = null;

            $('img[rel=lightboxhover], a[rel=lightboxhover]').mouseover(function () {
                var ImgSrc = $(this).attr('src');
                var lbOverlay = $('#lb_overlay');
                overlayAPI = lbOverlay.overlay({
                    api: true,
                    left: '22%',
                    mask: {
                        color: "#3F3F3F",
                        opacity: '0.8',
                        loadSpeed: 'normal'
                    },
                    speed: 'normal',
                    onBeforeLoad: function () {
                        $('iframe').css("visibility", "hidden");
                    },
                    onClose: function () {
                        $('iframe').css("visibility", "visible");
                        $('#lb_overlay').find('img').attr('src', '');
                    }
                });

                lbOverlay.find('img').attr('src', ImgSrc).addClass('hover');

                if (!overlayAPI.isOpened()) {
                    overlayAPI.load();
                    $.LightBox.SetPosition();
                }
            });

            $('#lb_overlay img.hover').live('hover', function () {
                if (overlayAPI.isOpened()) {
                    overlayAPI.close();
                }

                return false;
            });
        },

        SetPosition: function () {
            $('#lb_overlay').css({
                position: 'absolute',
                top: ($(window).scrollTop() + 100)
            });
        }
    }

})(jQuery);

$(function () {
    $.LightBox.Initialize();
    $.LightBox.ClickLightBox();
    $.LightBox.HoverLightBox();
});
