jQuery.extend({
    lightBox: function(settings) {
        settings = jQuery.extend({ bgColor: '#fff', opacity: 0.8, animateIn: 400 }, settings);
        function _initialize() { $('embed, object, select').css({ 'visibility': 'hidden' }); _displayOverlay() };
        function _displayOverlay() {
            var _pageSizes = _getPageSize(), _pageScroll = _getPageScroll(); $(document).bind('keypress keydown', function(event) { event.preventDefault() });
            var _overlay = $('<div class="welcome_overlay"></div>').css({ backgroundColor: settings.bgColor, opacity: settings.opacity, width: _pageSizes[0], height: _pageSizes[1] });
            $('body').append(_overlay); _overlay.fadeIn(600, function() { $('.tbox_container').css({ display: 'block' }); });
            $(window).resize(function() { var _pageSizes = _getPageSize(), _pageScroll = _getPageScroll(); $('.welcome_overlay').css({ width: _pageSizes[0], height: _pageSizes[1] }); $('.welcome_lightbox').css({ top: _pageScroll[1] + (_pageSizes[3] / 7), left: _pageScroll[0] }) });
        };
        function _displayMessage(cntr) { cntr.animate({ width: 400 }, 300, '', function() { $(this).animate({ height: '+=200px' }, 700, '', function() { $(this).find('.message_box').fadeIn(600, function() { $(this).parent().prevAll('.close').fadeIn(300).click(function() { _hideOverlay() }) }) }) }) };
        function _hideOverlay() { $('.welcome_lightbox').remove(); $('.welcome_overlay').fadeOut(settings.animateIn, function() { $(this).remove(); }); $('embed, object, select').css({ 'visibility': 'visible' }); $(document).unbind('keypress keydown') };
        function _getPageSize() {
            var xScroll, yScroll, windowWidth, windowHeight;
            if (window.innerHeight && window.scrollMaxY) { xScroll = window.innerWidth + window.scrollMaxX; yScroll = window.innerHeight + window.scrollMaxY; }
            else if (document.body.scrollHeight > document.body.offsetHeight) { xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; }
            else { xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; }
            if (self.innerHeight) {
                if (document.documentElement.clientWidth) windowWidth = document.documentElement.clientWidth;
                else windowWidth = self.innerWidth;
                windowHeight = self.innerHeight;
            } else if (document.documentElement && document.documentElement.clientHeight) {
                windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight;
            } else if (document.body) { windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight; }
            if (yScroll < windowHeight) pageHeight = windowHeight; else pageHeight = yScroll;
            if (xScroll < windowWidth) pageWidth = xScroll; else pageWidth = windowWidth;
            return new Array(pageWidth, pageHeight, windowWidth, windowHeight);
        };
        function _getPageScroll() {
            var xScroll, yScroll; if (self.pageYOffset) { yScroll = self.pageYOffset; xScroll = self.pageXOffset; }
            else if (document.documentElement && document.documentElement.scrollTop) { yScroll = document.documentElement.scrollTop; xScroll = document.documentElement.scrollLeft; }
            else if (document.body) { yScroll = document.body.scrollTop; xScroll = document.body.scrollLeft; }
            return new Array(xScroll, yScroll);
        };
        _initialize();
    }
});
