if (typeof (jslib.messagebox) == 'undefined') {
    jslib.namespace("jslib.messagebox");

    jslib.messagebox.__overdiv = null;
    jslib.messagebox.__iframe = null;
    jslib.messagebox.__div = null;
    jslib.messagebox.__title = null;
    jslib.messagebox.__message = null;
    jslib.messagebox.__buttonDiv = null;
    jslib.messagebox.__okButton = null;
    jslib.messagebox.__cancelButton = null;
    jslib.messagebox.__noButton = null;
    jslib.messagebox.__bottomDiv = null;

    jslib.messagebox.okText = '';
    jslib.messagebox.cancelText = '';
    jslib.messagebox.noText = '';
    jslib.messagebox.bottomText = '';

    jslib.messagebox.__init = function() {
        jslib.messagebox.__iframe = document.createElement('iframe');
        jslib.messagebox.__iframe.style.display = 'none';
        jslib.messagebox.__iframe.style.position = 'absolute';
        jslib.messagebox.__iframe.style.zIndex = 99998;
        jslib.messagebox.__iframe.style.top = '0px';
        jslib.messagebox.__iframe.style.left = '0px';
        jslib.messagebox.__iframe.style.width = '100%';
        jslib.messagebox.__iframe.style.height = '100%';
        jslib.messagebox.__iframe.style.backgroundColor = '#ffffff';
        jslib.messagebox.__iframe.style.filter = 'alpha(opacity=0)';
        jslib.messagebox.__iframe.style.opacity = 0;

        jslib.messagebox.__div = document.createElement('div');
        jslib.messagebox.__div.style.display = 'none';
        jslib.messagebox.__div.id = "jslib_messagebox";
		jslib.messagebox.__div.className = "jslib_messagebox";
        jslib.messagebox.__div.style.zIndex = 100000;
        jslib.messagebox.__div.style.position = "absolute";

        jslib.messagebox.__title = document.createElement('div');
        jslib.messagebox.__title.id = "jslib_messagebox_title";
        jslib.messagebox.__title.className = "jslib_messagebox_title";
        jslib.messagebox.__div.appendChild(jslib.messagebox.__title);

        jslib.messagebox.__message = document.createElement('div');
        jslib.messagebox.__message.id = "jslib_messagebox_message";
        jslib.messagebox.__message.className = "jslib_messagebox_message";
        jslib.messagebox.__div.appendChild(jslib.messagebox.__message);

        jslib.messagebox.__buttonDiv = document.createElement('div');
        jslib.messagebox.__buttonDiv.id = "jslib_messagebox_button";
		jslib.messagebox.__buttonDiv.className = "jslib_messagebox_button";

        jslib.messagebox.__cancelButton = document.createElement('div');
        jslib.messagebox.__cancelButton.id = "jslib_messagebox_cancel";
		jslib.messagebox.__cancelButton.className = "jslib_messagebox_cancel";
        jslib.messagebox.__cancelButton.innerHTML = jslib.messagebox.cancelText;
        jslib.messagebox.__buttonDiv.appendChild(jslib.messagebox.__cancelButton);

        jslib.messagebox.__noButton = document.createElement('div');
        jslib.messagebox.__noButton.id = "jslib_messagebox_no";
		jslib.messagebox.__noButton.className = "jslib_messagebox_no";
        jslib.messagebox.__noButton.innerHTML = jslib.messagebox.noText;
        jslib.messagebox.__buttonDiv.appendChild(jslib.messagebox.__noButton);

        jslib.messagebox.__okButton = document.createElement('div');
        jslib.messagebox.__okButton.id = "jslib_messagebox_ok";
		jslib.messagebox.__okButton.className = "jslib_messagebox_ok";
        jslib.messagebox.__okButton.innerHTML = jslib.messagebox.okText;
        jslib.messagebox.__buttonDiv.appendChild(jslib.messagebox.__okButton);

        jslib.messagebox.__div.appendChild(jslib.messagebox.__buttonDiv);

        jslib.messagebox.__bottomDiv = document.createElement('div');
        jslib.messagebox.__bottomDiv.id = "jslib_messagebox_bottom";
		jslib.messagebox.__bottomDiv.className = "jslib_messagebox_bottom";
        jslib.messagebox.__bottomDiv.innerHTML = jslib.messagebox.bottomText;
        jslib.messagebox.__div.appendChild(jslib.messagebox.__bottomDiv);

        jslib.messagebox.__overdiv = document.createElement('div');
        jslib.messagebox.__overdiv.style.display = 'none';
        jslib.messagebox.__overdiv.style.position = 'absolute';
        jslib.messagebox.__overdiv.style.zIndex = 99999;
        jslib.messagebox.__overdiv.style.top = '0px';
        jslib.messagebox.__overdiv.style.left = '0px';
        jslib.messagebox.__overdiv.style.width = '100%';
        jslib.messagebox.__overdiv.style.height = '100%';
        jslib.messagebox.__overdiv.style.backgroundColor = '#000000';
        jslib.messagebox.__overdiv.style.filter = 'alpha(opacity=75)';
        jslib.messagebox.__overdiv.style.opacity = 0.75;

        document.body.appendChild(jslib.messagebox.__iframe);
        document.body.appendChild(jslib.messagebox.__overdiv);
        document.body.appendChild(jslib.messagebox.__div);

        jslib.event.attach(window, "onscroll", jslib.messagebox.__setposition);
    }

    jslib.messagebox.__position = function() {
        var p = {};

        if (window.innerWidth) {
            p.width = window.innerWidth - 18;
        } else if (document.documentElement && document.documentElement.clientWidth) {
            p.width = document.documentElement.clientWidth;
        } else {
            p.width = document.body.clientWidth;
        }

        if (window.innerHeight) {
            p.height = window.innerHeight - 18;
        } else if (document.documentElement && document.documentElement.clientHeight) {
            p.height = document.documentElement.clientHeight;
        } else {
            p.height = document.body.clientHeight;
        }

        if (typeof (window.pageXOffset) == "number") {
            p.left = window.pageXOffset;
        } else if (document.documentElement) {
            p.left = document.documentElement.scrollLeft;
        } else if (document.body) {
            p.left = document.body.scrollLeft;
        } else if (window.scrollX) {
            p.left = window.scrollX;
        }

        if (typeof (window.pageYOffset) == "number") {
            p.top = window.pageYOffset;
        } else if (document.documentElement) {
            p.top = document.documentElement.scrollTop;
        } else if (document.body) {
            p.top = document.body.scrollTop;
        } else if (window.scrollY) {
            p.top = window.scrollY;
        }
        return p;
    }

    jslib.messagebox.__showoverlay = function() {
        var height;
        if (window.innerHeight && window.scrollMaxY) {
            height = window.innerHeight + window.scrollMaxY;
        } else if (document.body.scrollHeight > document.body.offsetHeight) {
            height = document.body.scrollHeight;
        } else {
            height = document.body.offsetHeight;
        }
        jslib.messagebox.__iframe.style.height = height + 'px';
        jslib.messagebox.__iframe.style.display = '';
        jslib.messagebox.__overdiv.style.height = height + 'px';
        jslib.messagebox.__overdiv.style.display = '';

    }

    jslib.messagebox.hidden = function() {
        if (jslib.messagebox.__div) {
            jslib.messagebox.__div.style.display = 'none';
            jslib.messagebox.__overdiv.style.display = 'none';
            jslib.messagebox.__iframe.style.display = 'none';
        }
    }

    jslib.messagebox.__setposition = function() {
        if (jslib.messagebox.__div.style.display != 'none') {
            var p = jslib.messagebox.__position();
            var w = jslib.messagebox.__div.offsetWidth;
            var h = jslib.messagebox.__div.offsetHeight;
            jslib.messagebox.__div.style.left = ((p.width - w) / 2) + 'px';
            jslib.messagebox.__div.style.top = (p.top + (p.height - h) / 2) + 'px';
        }
    }

    jslib.messagebox.show = function(width, height, title, message, okhandler, nohandler, cancelhandler, bottomhandler) {
        if (jslib.messagebox.__div == null) {
            jslib.messagebox.__init();
        }
        if (title) {
            jslib.messagebox.__title.style.display = '';
            jslib.messagebox.__title.innerHTML = title;
        } else {
            jslib.messagebox.__title.style.display = 'none';
        }
        if (message) {
            jslib.messagebox.__message.style.display = '';
            jslib.messagebox.__message.innerHTML = message;
        } else {
            jslib.messagebox.__message.style.display = 'none';
        }
        var flag = false;
        if (okhandler) {
            jslib.messagebox.__okButton.style.display = '';
            jslib.messagebox.__okButton.onclick = okhandler;
            flag = true;
        } else {
            jslib.messagebox.__okButton.style.display = 'none';
        }
        if (nohandler) {
            jslib.messagebox.__noButton.style.display = '';
            jslib.messagebox.__noButton.onclick = nohandler;
            flag = true;
        } else {
            jslib.messagebox.__noButton.style.display = 'none';
        }
        if (cancelhandler) {
            jslib.messagebox.__cancelButton.style.display = '';
            jslib.messagebox.__cancelButton.onclick = cancelhandler;
            flag = true;
        } else {
            jslib.messagebox.__cancelButton.style.display = 'none';
        }
        jslib.messagebox.__buttonDiv.style.display = flag ? '' : 'none';
        if (bottomhandler) {
            jslib.messagebox.__bottomDiv.style.display = '';
            jslib.messagebox.__bottomDiv.innerHTML = jslib.messagebox.bottomText;
            jslib.messagebox.__bottomDiv.onclick = bottomhandler;
        } else {
            jslib.messagebox.__bottomDiv.style.display = 'none';
        }
        //position
        var p = jslib.messagebox.__position();
        if (width > 0) {
            jslib.messagebox.__div.style.width = width + 'px';
        } else {
            jslib.messagebox.__div.style.width = 'auto';
        }
        if (height > 0) {
            jslib.messagebox.__div.style.height = height + 'px';
        } else {
            jslib.messagebox.__div.style.height = 'auto';
        }

        var w = width || jslib.messagebox.__div.offsetWidth;
        var h = height || jslib.messagebox.__div.offsetHeight;

        jslib.messagebox.__div.style.left = ((p.width - w) / 2) + 'px';
        jslib.messagebox.__div.style.top = (p.top + (p.height - h) / 2) + 'px';
        jslib.messagebox.__div.style.display = 'block';
        jslib.messagebox.__showoverlay();

        if (width == 0 || height == 0) setTimeout(jslib.messagebox.__setposition, 100);
    }
}
