DivPopup = Class.create({

    initialize: function(baseUrl) {
        var bubble = $('calculatorBubble');
        var displayState = false;
        var util = new Util();

        this.baseUrl = baseUrl;
        this.content = $('calculatorBubbleContent');

        this.close = function() {
            this.hideDialogs();
            bubble.hide();
            displayState = false;
            setPageActiveOnlyDiv();
        }

        this.showDialog = function(dialog) {
            this.hideDialogs();
            this.closeErrorMessages();
            if (! displayState) {
                setPageInactiveOnlyDiv();
                window.scrollTo(0, 0);
                bubble.show();
                displayState = true;
            }
            dialog.show();
        }

        this.hideDialogs = function() {
            //var dialogs = document.getElementsByClassName('divPopupDialog');
            var dialogs = $$('div.divPopupDialog');
            for (var i = 0; i < dialogs.length; i++) {
                $(dialogs[i]).hide();
            }
        }

        this.showErrorMessages = function(errorMessages) {
            this.closeErrorMessages();
            var errorMsgDiv = $('calculatorErrorMessage');
            for (var i = 0; i < errorMessages.length; i++) {
                var errorMsg = new Element('p');
                errorMsg.style.display = 'block';
                errorMsg.appendChild(document.createTextNode(errorMessages[i]));
                errorMsgDiv.appendChild(errorMsg);
            }
            errorMsgDiv.style.display = 'block';
        }

        this.closeErrorMessages = function() {
            var errorMsgDiv = $('calculatorErrorMessage');
            errorMsgDiv.update();
            errorMsgDiv.hide();
        }

        util.pngfix('calculatorBubbleTL', this.baseUrl + 'images/template/sprechblase_o_l.png', 50, 50);
        util.pngfix('calculatorBubbleTR', this.baseUrl + 'images/template/sprechblase_o_r_close.png', 50, 50);
        util.pngfix('calculatorBubbleBL', this.baseUrl + 'images/template/sprechblase_u_l.png', 50, 50);
        util.pngfix('calculatorBubbleBR', this.baseUrl + 'images/template/sprechblase_u_r.png', 50, 50);

        Event.observe($('calculatorBubbleTR'), 'click', this.close.bind(this));
    }
});