// -------------------------------------------------------------------
// DHTML Modal window- By Dynamic Drive, available at: http://www.dynamicdrive.com
// v1.0: Script created Feb 27th, 07'
// v1.01 May 5th, 07' Minor change to modal window positioning behavior (not a bug fix)
// v1.1: April 16th, 08' Brings it in sync with DHTML Window widget. See changelog.txt for the later for changes.
// REQUIRES: DHTML Window Widget (v1.01 or higher): http://www.dynamicdrive.com/dynamicindex8/dhtmlwindow/
// -------------------------------------------------------------------

if (typeof dhtmlwindow == "undefined")
    alert('ERROR: Modal Window script requires all files from "DHTML Window widget" in order to work!')

var dhtmlmodal = {
    veilstack: 0,
    open: function (t, contenttype, contentsource, title, attr, recalonload) {
        var d = dhtmlwindow //reference dhtmlwindow object
        this.interVeil = document.getElementById("interVeil") //Reference "veil" div
        this.veilstack++ //var to keep track of how many modal windows are open right now
        this.loadveil()
        if (recalonload == "recal" && d.scroll_top == 0)
            d.addEvent(window, function () { dhtmlmodal.adjustveil() }, "load")
        var t = d.open(t, contenttype, contentsource, title, attr, recalonload)
        t.controls.firstChild.style.display = "none" //Disable "minimize" button
        //t.controls.onclick = function () { dhtmlmodal.close(this._parent, true) } //OVERWRITE default control action with new one
        //t.show = function () { dhtmlmodal.show(this) } //OVERWRITE default t.show() method with new one
        //t.hide = function () { dhtmlmodal.close(this) } //OVERWRITE default t.hide() method with new one
        t.controls.onclick = function () { dhtmlmodal.close(this._parent) } //OVERWRITE default control action with new one
        t.close = function () { dhtmlmodal.close(this) } //OVERWRITE default t.close()
        t.show = function () { dhtmlmodal.show(this) } //OVERWRITE default t.show() method with new one
        t.hide = function () { dhtmlmodal.hide(this) } //OVERWRITE default t.hide() method with new one
        return t
    },

    loadveil: function () {
        var d = dhtmlwindow
        d.getviewpoint()
        this.docheightcomplete = (d.standardbody.offsetHeight > d.standardbody.scrollHeight) ? d.standardbody.offsetHeight : d.standardbody.scrollHeight
        this.interVeil.style.width = d.docwidth + "px" //set up veil over page
        this.interVeil.style.height = this.docheightcomplete + "px" //set up veil over page
        this.interVeil.style.left = 0 //Position veil over page
        this.interVeil.style.top = 0 //Position veil over page
        this.interVeil.style.visibility = "visible" //Show veil over page
        this.interVeil.style.display = "block" //Show veil over page
    },

    adjustveil: function () { //function to adjust veil when window is resized
        if (this.interVeil && this.interVeil.style.display == "block") //If veil is currently visible on the screen
            this.loadveil() //readjust veil
    },

    closeveil: function () { //function to close veil
        this.veilstack--
        if (this.veilstack == 0) //if this is the only modal window visible on the screen, and being closed
            this.interVeil.style.display = "none"
    },

    close: function (t, forceclose) { //DHTML modal close function
        try {
            t.contentDoc = (t.contentarea.datatype == "iframe") ? window.frames["_iframe-" + t.id].document : t.contentarea //return reference to modal window DIV (or document object in the case of iframe
        }
        catch (err) {
        }

        if (typeof forceclose != "undefined")
            t.onclose = function () { return true }
        if (dhtmlwindow.close(t)) //if close() returns true
            this.closeveil()
    },

    show: function (t) {
        dhtmlmodal.veilstack++
        dhtmlmodal.loadveil()
        dhtmlwindow.show(t)
    },

    hide: function (t) {
        t.contentDoc = (t.contentarea.datatype == "iframe") ? window.frames["_iframe-" + t.id].document : t.contentarea //return reference to modal window DIV (or document object in the case of iframe
        dhtmlwindow.hide(t)
        this.veilstack--
        if (this.veilstack == 0) //if this is the only modal window visible on the screen, and being closed
            this.interVeil.style.display = "none"
    }
} //END object declaration

document.write('<div id="interVeil"></div>')
dhtmlwindow.addEvent(window, function () { if (typeof dhtmlmodal != "undefined") dhtmlmodal.adjustveil() }, "resize")
