var ModalView = new Class(
{
    Implements: Options,

    options:
	{
	    opacity: 0.4
	},

    overlay: null,

    initialize: function(options) {
        this.ie6 = (typeof document.addEventListener != 'function');
        this.setOptions(options);
        window.addEvent('domready', function() {
            this.createOverlay();
            window.addEvent('resize', this.setPosition.bind(this));
        }
		.bind(this));
    },

    show: function(element) {
        this.overlay.setStyle('opacity', this.options.opacity);
        if (this.ie6) { this.installIE(); }
        this.element = $(element);
        this.element.setStyles({
            visibility: "visible",
            display: "block",
            zIndex: 10000
        });
        this.setPosition();
        var d = $('community_module');
        if (d) d.setStyles({ visibility: "hidden" });
    },

    hide: function() {
        this.element.setStyle('visibility', 'hidden');
        this.element.setStyle('display', 'none');
        this.overlay.setStyle('opacity', 0);
        if (this.ie6) { this.uninstallIE(); }
        var d = $('community_module');
        if (d) d.setStyles({ visibility: "visible" });
    },

    createOverlay: function() {
        this.overlay = $(document.createElement("div"));
        this.overlay.addClass('modal_overlay');
        this.overlay.setStyle('opacity', 0);
        document.body.appendChild(this.overlay);
    },

    installIE: function() {
        window.scrollTo(0, 0);
        $$("select").each(function(element) {
            element.setStyles({ visibility: 'hidden' });
        });
    },

    uninstallIE: function() {
        $$("select").each(function(element) {
            element.setStyles({ visibility: '' });
        });
    },

    setPosition: function() {
        if (this.element) {
            if (this.ie6) {
                this.overlay.style.width = document.body.scrollWidth + 'px';
                this.overlay.style.height = document.body.scrollHeight + 'px';
            }
            var docWidth = $(document.body).getWidth();
            var width = this.element.getWidth();
            this.element.setStyles(
			{
			    left: Math.round((docWidth / 2.0) - (width / 2.0)) + "px"
			});
            window.scrollTo(0, 0);
        }

    }
});

// Brochure/Email a friend modal
var Modal = Modal = new ModalView();
function open_modal(modal_name) 
{
	Modal.show(modal_name);
}