var WindowStatus = new Class({

    screen_cover: false,
    screen_cover_shown: false,
    screen_message: false,
    screen_message_shown: false,
    
    initialize: function(){
        window.addEvent('resize', function(){
            this._reposition();
        }.bind(this));
    },
    
    addMessage: function(message){
        if(this.screen_message_shown){
            this.screen_message.getElement('.screen_message_text').set('html', message);
        }else{
            this._coverScreen();
                        
            var close = new Element('a', {
                'href': '#',
                'events' : {
                    'click' : function(e){
                        e.stop();
                        this.clear();
                    }.bind(this)
                }
            }).set('html', 'close');
            
            var message = new Element('div', {
                'class' : 'screen_message_text'
            }).set('html', message);
            
            this.screen_message = new Element('div', {
                'class' : 'screen_message',
                'styles' : {
                    'background' : 'yellow',
                    'top' : '100px',
                    'left' : '200px',
                    'z-index' : Joshua.getIndex()
                }
            }).adopt(message, close).inject(document.body);
            
            this.screen_message_shown = true;
            
            this._reposition();
        }
        
        return this;
    },
    
    clear: function(){
        $(document.body).setStyle('overflow', 'auto');
        this.screen_cover.dispose();
        this.screen_cover           = false;
        this.screen_cover_shown     = false;
        
        this.screen_message.dispose();
        this.screen_message         = false;
        this.screen_message_shown   = false;
        
        return this;
    },
    
    _coverScreen: function(){
        $(document.body).setStyle('overflow', 'hidden');
        this.screen_size = window.getScrollSize();
        
        this.screen_cover = new Element('div', {
            'styles' : {
                'height' : this.screen_size.y,
                'width' : this.screen_size.x,
                'position' : 'absolute',
                'top' : '0px',
                'left' : '0px',
                'z-index' : Joshua.getIndex(),
                'background-color': '#000',
                'opacity' : .7
            }
        }).inject(document.body);
        
        return this;
    },
    
    _reposition: function(){
        var screen_size = window.getScrollSize();
        var screen_view = window.getSize();
                    
        if(this.screen_cover){
            
            this.screen_cover.setStyles({
                'height' : screen_size.y,
                'width' : screen_size.x
            });
        }
        
        if(this.screen_message_shown){
            var sm_size = this.screen_message.getSize();
            var top = Math.max(0, (screen_view.y - sm_size.y) / 2);
            var left = Math.max(0, (screen_size.x - sm_size.x) / 2);
            this.screen_message.setStyles({
                'top' : top,
                'left' : left
            });
        }
        
        return this;
    }
});