// -------------------------------------------------------------------
// DHTML Window Widget- By Dynamic Drive, available at: http://www.dynamicdrive.com
// v1.0: Script created Feb 15th, 07'
// v1.01: Feb 21th, 07' (see changelog.txt)
// v1.02: March 26th, 07' (see changelog.txt)
// v1.03: May 5th, 07' (see changelog.txt)
// v1.1:  Oct 29th, 07' (see changelog.txt)
//
// See: http://www.dynamicdrive.com/dynamicindex8/dhtmlwindow/
//
// -------------------------------------------------------------------

var dhtmlWindow = {

	gfxFolder: 'dhtmlWindow/gfx/',
	imageFiles: ['min.gif', 'close.gif', 'restore.gif', 'resize.gif'], //Path to 4 images used by script, in that order
	
	ajaxBustCache: true, //Bust caching when fetching a file via Ajax?
	ajaxLoadingHTML: '<strong>Loading Page. Please wait...</strong>', //HTML to show while window fetches Ajax Content?
	
	showShim: 0,
	showOverlay: 0,
	showDrag: 0,
	
	minimizeOrder: 0,
	zIndexValue: 100,
	tObjects: [], //object to contain references to dhtml window divs, for cleanup purposes
	lastActiveT: {}, //reference to last active DHTML window
	
	init:function(t, attr){
		
		if (!document.getElementById("dhtmlWindowHolder")) { // add container that holds all dhtml window divs on page
			var _domHolder = document.createElement("div")
			_domHolder.setAttribute("id", "dhtmlWindowHolder")
				var _domHolderSpan = document.createElement("span")
				_domHolderSpan.style.display = 'none'
			_domHolder.appendChild(_domHolderSpan)
			document.body.appendChild(_domHolder)
		}
		
		function getValue(Name){
			var config = new RegExp(Name+"=([^,]+)", "i") //get name/value config pair (ie: width=400px,)
			return (config.test(attr)) ? parseInt(RegExp.$1) : 0 //return value portion (int), or 0 (false) if none found
		}
		
		var domWindow = document.createElement("div") //create dhtml window div
		domWindow.id = t
		domWindow.className = "dhtmlWindow"
		var domWindowData = ''
		domWindowData = '<div class="' + domWindow.className + '_innerborder"><div class="drag-handle">'
		domWindowData +=  'Dialog Window <div class="drag-controls">'
		if (getValue("minimize")) domWindowData +=  '<img src="' + this.gfxFolder + this.imageFiles[0] + '" title="Minimize" />'
		domWindowData += '<img src="' + this.gfxFolder + this.imageFiles[1] + '" title="Close" />'
		domWindowData += '</div>'
		domWindowData += '</div>'
		domWindowData += '<div class="drag-contentarea"></div>'
		domWindowData += '<div class="drag-statusarea"><div class="drag-resizearea" style="background: transparent url(' + this.gfxFolder + this.imageFiles[3] + ') top right no-repeat">&nbsp;</div></div>'
		domWindowData += '</div></div>'
		domWindow.innerHTML = domWindowData
		document.getElementById("dhtmlWindowHolder").appendChild(domWindow)
		//this.zIndexValue = (this.zIndexValue)? this.zIndexValue+1 : 100 //z-index value for DHTML window: starts at 0, increments whenever a window has focus
		var t = document.getElementById(t)
		var divs = t.getElementsByTagName("div")
		for (var i=0; i<divs.length; i++){ //go through divs inside dhtml window and extract all those with class = "drag-" prefix
			if (/drag-/.test(divs[i].className))
				t[divs[i].className.replace(/drag-/, "")] = divs[i] //take out the "drag-" prefix for shorter access by name
		}
		//t.style.zIndex = this.zIndexValue //set z-index of this dhtml window
		t.handle._parent = t //store back reference to dhtml window
		t.resizearea._parent = t //same
		t.controls._parent = t //same
		t.onclose = function(){return true} //custom event handler "onclose"
		t.onmousedown = function(){dhtmlWindow.setFocus(this)} //Increase z-index of window when focus is on it
		t.handle.onmousedown = dhtmlWindow.setupDrag //set up drag behavior when mouse down on handle div
		t.resizearea.onmousedown = dhtmlWindow.setupDrag //set up drag behavior when mouse down on resize div
		t.controls.onclick = dhtmlWindow.enableControls
		t.show = function(){dhtmlWindow.show(this)} //public function for showing dhtml window
		t.hide = function(){dhtmlWindow.hide(this)} //public function for hiding dhtml window
		t.close = function(){dhtmlWindow.close(this)} //public function for closing dhtml window (also empties DHTML window content)
		t.setSize = function(w, h){dhtmlWindow.setSize(this, w, h)} //public function for setting window dimensions
		t.moveTo = function(x, y){dhtmlWindow.moveTo(this, x, y)} //public function for moving dhtml window (relative to viewpoint)
		t.isResize = function(bol){dhtmlWindow.isResize(this, bol)} //public function for specifying if window is resizable
		t.isScrolling = function(bol){dhtmlWindow.isScrolling(this, bol)} //public function for specifying if window content contains scrollbars
		t.load = function(contenttype, contentsource, title){dhtmlWindow.load(this, contenttype, contentsource, title)} //public function for loading content into window
		this.tObjects[this.tObjects.length] = t
		
		return t //return reference to dhtml window div
	},
	
	open:function(t, contenttype, contentsource, title, attr, recalonload){
		var d = dhtmlWindow //reference dhtml window object
		
		function getValue(Name){
			var config = new RegExp(Name+"=([^,]+)", "i") //get name/value config pair (ie: width = 400px,)
			return (config.test(attr)) ? parseInt(RegExp.$1) : 0 //return value portion (int), or 0 (false) if none found
		}
		
		if (document.getElementById(t) == null) //if window doesn't exist yet, create it
			t = this.init(t, attr) //return reference to dhtml window div
		else
			t = document.getElementById(t)
		this.setFocus(t)
		t.setSize(getValue(("width")), (getValue("height"))) //Set dimensions of window
		var xpos = getValue("center") ? "middle" : getValue("left") //Get x coord of window
		var ypos = getValue("center") ? "middle" : getValue("top") //Get y coord of window
		t.moveTo(xpos, ypos) //Position window
		if (typeof recalonload != "undefined" && recalonload == "recal" && this.scroll_top == 0){ //reposition window when page fully loads with updated window viewpoints?
			if (window.attachEvent && !window.opera) //In IE, add another 400 milisecs on page load (viewpoint properties may return 0 b4 then)
				this.addEvent(window, function(){setTimeout(function(){t.moveTo(xpos, ypos)}, 400)}, "load")
			else
				this.addEvent(window, function(){t.moveTo(xpos, ypos)}, "load")
		}
	
		t.isResize(getValue("resize")) //Set whether window is resizable
		t.isScrolling(getValue("scrolling")) //Set whether window should contain scrollbars
		
		t.showShim = getValue("showShim") //Set whether a shim is displayed under the window to cover form fuields
		t.showOverlay = getValue("showOverlay") //Set whether an overlay is displayed to simulate a 'modal' window
		t.showDrag = getValue("showDrag") //Set whether the window content is displayed while dragging
		
		t.moveTo(xpos, ypos) //Position window
		t.style.visibility = "visible"
		t.style.display = "block"
		t.contentarea.style.display = "block"
		t.load(contenttype, contentsource, title)
		if (t.state == "minimized" && t.controls.firstChild.title == "Restore"){ //If window exists and is currently minimized?
			t.controls.firstChild.setAttribute("src", dhtmlWindow.gfxFolder + dhtmlWindow.imageFiles[0]) //Change "restore" icon within window interface to "minimize" icon
			t.controls.firstChild.setAttribute("title", "Minimize")
			t.state = "fullview" //indicate the state of the window as being "fullview"
		}
		
		t.onResize = dhtmlWindow.onResize
		
		this.updateShim(t)
		this.updateOverlay(t)
		
		window.onresize = function () {dhtmlWindow.updateOverlay(t)}
		
		return t
	},
	
	setSize:function(t, w, h){ //set window size (min is 150px wide by 100px tall)
		t.style.width = Math.max(parseInt(w), 150) + "px"
		t.contentarea.style.height = Math.max(parseInt(h), 100) + "px"
	},
	
	moveTo:function(t, x, y){ //move window. Position includes current viewpoint of document
		this.getViewPoint() //Get current viewpoint numbers
		t.style.left = (x == "middle") ? this.scroll_left + (this.docwidth - t.offsetWidth) / 2 + "px" : this.scroll_left + parseInt(x) + "px"
		t.style.top = (y == "middle") ? this.scroll_top + (this.docheight - t.offsetHeight) / 2 + "px" : this.scroll_top + parseInt(y) + "px"
		
		this.updateShim(t)
		this.updateOverlay(t)
	},
	
	isResize:function(t, bol){ //show or hide resize inteface (part of the status bar)
		t.statusarea.style.display = (bol) ? "block" : "none"
		t.resizeBool = (bol) ? 1 : 0
	},
	
	isScrolling:function(t, bol){ //set whether loaded content contains scrollbars
		t.contentarea.style.overflow = (bol) ? "auto" : "hidden"
	},
	
	load:function(t, contenttype, contentsource, title){ //loads content into window plus set its title (3 content types: "inline", "iframe", or "ajax")
		if (t.isClosed){
			alert("DHTML Window has been closed, so no window to load contents into. Open/Create the window again.")
			return
		}
		var contenttype = contenttype.toLowerCase() //convert string to lower case
		if (typeof title != "undefined")
			t.handle.firstChild.nodeValue = title
		if (contenttype == "inline")
			t.contentarea.innerHTML = contentsource
		else if (contenttype == "div"){
			var inlinedivref = document.getElementById(contentsource)
			t.contentarea.innerHTML = (inlinedivref.defaultHTML || inlinedivref.innerHTML) //Populate window with contents of inline div on page
			if (!inlinedivref.defaultHTML)
				inlinedivref.defaultHTML = inlinedivref.innerHTML //save HTML within inline DIV
			inlinedivref.innerHTML = "" //then, remove HTML within inline DIV (to prevent duplicate IDs, NAME attributes etc in contents of DHTML window
			inlinedivref.style.display = "none" //hide that div
		}
		else if (contenttype == "iframe"){
			t.contentarea.style.overflow = "hidden" //disable window scrollbars, as iframe already contains scrollbars
			if (!t.contentarea.firstChild || t.contentarea.firstChild.tagName != "IFRAME") //If iframe tag doesn't exist already, create it first
				t.contentarea.innerHTML = '<iframe frameborder = "0" src = "" style = "margin:0; padding:0; width:100%; height: 100%;" name = "_iframe-'+t.id+'"></iframe>'
				window.frames["_iframe-" + t.id].location.replace(contentsource) //set location of iframe window to specified URL
			}
		else if (contenttype == "ajax"){
			this.ajax_connect(contentsource, t) //populate window with external contents fetched via Ajax
		}
		t.contentarea.datatype = contenttype //store contenttype of current window for future reference
	},
	
	onResize:function(){
		this.getViewPoint() //Get current viewpoint numbers
	},
	
	setupDrag:function(e){
		var d = dhtmlWindow //reference dhtml window object
		var t = this._parent //reference dhtml window div
		d.etarget = this //remember div mouse is currently held down on ("handle" or "resize" div)
		var e = window.event || e
		d.initmousex = e.clientX //store x position of mouse onmousedown
		d.initmousey = e.clientY
		d.initx = parseInt(t.offsetLeft) //store offset x of window div onmousedown
		d.inity = parseInt(t.offsetTop)
		d.width = parseInt(t.offsetWidth) //store width of window div
		d.contentheight = parseInt(t.contentarea.offsetHeight) //store height of window div's content div
		if (t.contentarea.datatype == "iframe"){ //if content of this window div is "iframe"
			if (!(typeof t.showDrag == "undefined"? dhtmlWindow.showDrag : t.showDrag))
			{
				t.style.backgroundColor = "#F8F8F8" //colorize and hide content div (while window is being dragged)
				t.contentarea.style.visibility = "hidden"
			}
		}
		document.onmousemove = d.getDistance //get distance travelled by mouse as it moves
		document.onmouseup = function(){
			if (t.contentarea.datatype == "iframe"){ //restore color and visibility of content div onmouseup
				t.contentarea.style.backgroundColor = "white"
				t.contentarea.style.visibility = "visible"
			}
			d.stop()
		}
		return false
	},
	
	getDistance:function(e){
		var d = dhtmlWindow
		var etarget = d.etarget
		var e = window.event || e
		d.distancex = e.clientX - d.initmousex //horizontal distance travelled relative to starting point
		d.distancey = e.clientY - d.initmousey
		if (etarget.className == "drag-handle") //if target element is "handle" div
			d.move(etarget._parent, e)
		else if (etarget.className == "drag-resizearea") //if target element is "resize" div
			d.resize(etarget._parent, e)
		return false //cancel default dragging behavior
	},
	
	getViewPoint:function(){ //get window viewpoint numbers
		var ie = document.all && !window.opera
		var domclientWidth = document.documentElement && parseInt(document.documentElement.clientWidth) || 100000 //Preliminary doc width in non IE browsers
		this.standardbody = (document.compatMode == "CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
		this.scroll_top = (ie)? this.standardbody.scrollTop : window.pageYOffset
		this.scroll_left = (ie)? this.standardbody.scrollLeft : window.pageXOffset
		this.docwidth = (ie)? this.standardbody.clientWidth : (/Safari/i.test(navigator.userAgent))? window.innerWidth : Math.min(domclientWidth, window.innerWidth-16)
		this.docheight = (ie)? this.standardbody.clientHeight: window.innerHeight
	},
	
	rememberAttrs:function(t){ //remember certain attributes of the window when it's minimized or closed, such as dimensions, position on page
		this.getViewPoint() //Get current window viewpoint numbers
		t.lastx = parseInt((t.style.left || t.offsetLeft))-dhtmlWindow.scroll_left //store last known x coord of window just before minimizing
		t.lasty = parseInt((t.style.top || t.offsetTop))-dhtmlWindow.scroll_top
		t.lastwidth = parseInt(t.style.width) //store last known width of window just before minimizing/ closing
	},
	
	move:function(t, e){
		t.style.left = dhtmlWindow.distancex + dhtmlWindow.initx + "px"
		t.style.top = dhtmlWindow.distancey + dhtmlWindow.inity + "px"
		
		this.updateShim(t)
		this.updateOverlay(t)
	},
	
	resize:function(t, e){
		t.style.width = Math.max(dhtmlWindow.width+dhtmlWindow.distancex, 150) + "px"
		t.contentarea.style.height = Math.max(dhtmlWindow.contentheight + dhtmlWindow.distancey, 100) + "px"
		
		this.updateShim(t)
		this.updateOverlay(t)
	},
	
	enableControls:function(e){
		var d = dhtmlWindow
		var sourceobj = window.event? window.event.srcElement : e.target //Get element within "handle" div mouse is currently on (the controls)
		if (/Minimize/i.test(sourceobj.getAttribute("title"))) //if this is the "minimize" control
			d.minimize(sourceobj, this._parent)
		else if (/Restore/i.test(sourceobj.getAttribute("title"))) //if this is the "restore" control
			d.restore(sourceobj, this._parent)
		else if (/Close/i.test(sourceobj.getAttribute("title"))) //if this is the "close" control
			d.close(this._parent)
		return false
	},
	
	minimize:function(button, t){
		dhtmlWindow.rememberAttrs(t)
		button.setAttribute("src", dhtmlWindow.gfxFolder + dhtmlWindow.imageFiles[2])
		button.setAttribute("title", "Restore")
		t.state = "minimized" //indicate the state of the window as being "minimized"
		t.contentarea.style.display = "none"
		t.statusarea.style.display = "none"
		if (typeof t.minimizeOrder == "undefined"){ //stack order of minmized window on screen relative to any other minimized windows
			dhtmlWindow.minimizeOrder++ //increment order
			t.minimizeOrder = dhtmlWindow.minimizeOrder
		}
		t.style.left = "10px" //left coord of minmized window
		t.style.width = "200px"
		var windowspacing = t.minimizeOrder * 10 //spacing (gap) between each minmized window(s)
		t.style.top = dhtmlWindow.scroll_top + dhtmlWindow.docheight - (t.handle.offsetHeight * t.minimizeOrder) - windowspacing + "px"
		
		this.updateShim(t)
		this.updateOverlay(t)
	},
	
	restore:function(button, t){
		dhtmlWindow.getViewPoint()
		button.setAttribute("src", dhtmlWindow.gfxFolder + dhtmlWindow.imageFiles[0])
		button.setAttribute("title", "Minimize")
		t.state = "fullview" //indicate the state of the window as being "fullview"
		t.style.display = "block"
		t.contentarea.style.display = "block"
		if (t.resizeBool) //if this window is resizable, enable the resize icon
			t.statusarea.style.display = "block"
		t.style.left = parseInt(t.lastx)+dhtmlWindow.scroll_left + "px" //position window to last known x coord just before minimizing
		t.style.top = parseInt(t.lasty)+dhtmlWindow.scroll_top + "px"
		t.style.width = parseInt(t.lastwidth) + "px"
		
		this.updateShim(t)
		this.updateOverlay(t)
	},
	
	close:function(t){
		try{
			var closewinbol = t.onclose()
		}
		catch(err){ //In non IE browsers, all errors are caught, so just run the below
			var closewinbol = true
		}
		finally{ //In IE, not all errors are caught, so check if variable isn't defined in IE in those cases
			if (typeof closewinbol == "undefined"){
				alert("An error has occured somwhere inside your \"onclose\" event handler")
				var closewinbol = true
			}
		}
		if (closewinbol){ //if custom event handler function returns true
			if (t.state != "minimized") //if this window isn't currently minimized
				dhtmlWindow.rememberAttrs(t) //remember window's dimensions/position on the page before closing
			if (window.frames["_iframe-" + t.id]) //if this is an IFRAME DHTML window
				window.frames["_iframe-" + t.id].location.replace("about:blank")
			else
				t.contentarea.innerHTML = ""
			t.style.display = "none"
			t.isClosed = true //tell script this window is closed (for detection in t.show())
			
			this.updateShim(t)
			this.updateOverlay(t)
		}
		
		window.onresize = null
		
		return closewinbol
	},
	
	setOpacity:function(targetobject, value){ //Sets the opacity of targetobject based on the passed in value setting (0 to 1 and in between)
		if (!targetobject)
			return
		if (targetobject.filters && targetobject.filters[0]){ //IE syntax
			if (typeof targetobject.filters[0].opacity == "number") //IE6
				targetobject.filters[0].opacity = value * 100
			else //IE 5.5
				targetobject.style.filter = "alpha(opacity=" + value * 100 + ")"
			}
		else if (typeof targetobject.style.MozOpacity != "undefined") //Old Mozilla syntax
			targetobject.style.MozOpacity = value
		else if (typeof targetobject.style.opacity != "undefined") //Standard opacity syntax
			targetobject.style.opacity = value
	},
	
	setFocus:function(t){ //Sets focus to the currently active window
		this.zIndexValue++
		t.style.zIndex = this.zIndexValue
		t.isClosed = false //tell script this window isn't closed (for detection in t.show())
		this.setOpacity(this.lastActiveT.handle, 0.5) //unfocus last active window
		this.setOpacity(t.handle, 1) //focus currently active window
		this.lastActiveT = t //remember last active window
	},
	
	show:function(t){
		if (t.isClosed){
			alert("DHTML Window has been closed, so nothing to show. Open/Create the window again.")
			return
		}
		if (t.lastx) //If there exists previously stored information such as last x position on window attributes (meaning it's been minimized or closed)
			dhtmlWindow.restore(t.controls.firstChild, t) //restore the window using that info
		else {
			t.style.display = "block"
			this.updateShim(t)
		}
		this.setFocus(t)
		t.state = "fullview" //indicate the state of the window as being "fullview"
	},
	
	hide:function(t){
		t.style.display = "none"
		this.updateShim(t)
		this.updateOverlay(t)
	},
	
	ajax_connect:function(url, t){
		var page_request = false
		var bustcacheparameter = ""
		if (window.XMLHttpRequest) // if Mozilla, IE7, Safari etc
			page_request = new XMLHttpRequest()
		else if (window.ActiveXObject){ // if IE6 or below
			try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
			} 
			catch (e){
				try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
				}
				catch (e){}
			}
		}
		else
			return false
		t.contentarea.innerHTML = this.ajaxLoadingHTML
		page_request.onreadystatechange = function(){dhtmlWindow.ajax_loadpage(page_request, t)}
		if (this.ajaxBustCache) //if bust caching of external page
			bustcacheparameter = (url.indexOf("?") != -1)? "&" + new Date().getTime() : "?" + new Date().getTime()
		page_request.open('GET', url + bustcacheparameter, true)
		page_request.send(null)
	},
	
	ajax_loadpage:function(page_request, t){
		if (page_request.readyState ==  4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1)){
		t.contentarea.innerHTML = page_request.responseText
		}
	},
	
	stop:function(){
		dhtmlWindow.updateOverlay(this) // update overlay
		dhtmlWindow.etarget = null //clean up
		document.onmousemove = null
		document.onmouseup = null
	},
	
	addEvent:function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
		var tasktype = (window.addEventListener) ? tasktype : "on" + tasktype
		if (target.addEventListener)
			target.addEventListener(tasktype, functionref, false)
		else if (target.attachEvent)
			target.attachEvent(tasktype, functionref)
	},
	
	cleanup:function(){
		for (var i = 0; i < dhtmlWindow.tObjects.length; i++){
			dhtmlWindow.tObjects[i].handle._parent = dhtmlWindow.tObjects[i].resizearea._parent = dhtmlWindow.tObjects[i].controls._parent = null
		}
		window.onload = null
	},
	
	updateShim:function(t) {
		if (typeof t.showShim == "undefined" ? dhtmlWindow.showShim : t.showShim) {
			
			if (!document.getElementById('ifdwshim')) {
				var newNode = document.createElement("iFrame");
				newNode.setAttribute("id", "ifdwshim");
				newNode.setAttribute("src", "javascript:false");
				newNode.setAttribute("scrolling", "no");
				newNode.setAttribute("frameborder", "0");
				newNode.setAttribute("width", "0");
				document.body.appendChild(newNode);
			}
		
			var oShim = document.getElementById("ifdwshim");
			
			if (t.state == "minimized") {
				oShim.style.display = "none"
			} else {
				oShim.style.position = "absolute"
				oShim.style.pixelWidth = t.clientWidth
				oShim.style.pixelHeight = t.clientHeight
				oShim.style.pixelTop = t.style.pixelTop
				oShim.style.pixelLeft = t.style.pixelLeft
				oShim.style.zIndex = t.style.zIndex - 1
				oShim.style.display = t.style.display
			}
			
		}
	},
	
	updateOverlay:function(t) {
		if (typeof t.showOverlay == "undefined" ? dhtmlWindow.showOverlay : t.showOverlay) {
		
			if (!document.getElementById("dhtmlWindowOverlay")) { // add overlay to body
				var _domOverlay = document.createElement("div")
				_domOverlay.setAttribute("id", "dhtmlWindowOverlay")
				document.body.appendChild(_domOverlay)
			}
			
			var oOverlay = document.getElementById("dhtmlWindowOverlay")
			
			if (oOverlay) {
				if (!t.isClosed) {
					
					// get size of visible document
					if (navigator.userAgent.toLowerCase().indexOf("msie") != -1) {
						// MSIE
						var overlayWidth = document.documentElement.scrollLeft + document.documentElement.offsetWidth
						var overlayHeight = document.documentElement.scrollTop + document.documentElement.offsetHeight
					} else {
						// Other
						var overlayWidth = document.documentElement.scrollLeft + document.documentElement.offsetWidth
						var overlayHeight = document.documentElement.scrollTop + document.documentElement.scrollHeight
					}
					
					// size adjusments
					if (t.style.left) {
						leftPos = parseInt(t.style.left)
						if ((t.clientWidth + leftPos) > overlayWidth) overlayWidth = (t.clientWidth + leftPos)
					}
					if (t.style.top) {
						topPos = parseInt(t.style.top)
						if ((t.clientHeight + topPos) > overlayHeight) overlayHeight = (t.clientHeight + topPos) + 2
					}
					if (document.documentElement.scrollHeight > overlayHeight) overlayHeight = document.documentElement.scrollHeight 
					if (document.documentElement.scrollWidth > overlayWidth) overlayWidth = document.documentElement.scrollWidth 
					
					// set size of overlay
					oOverlay.style.width = overlayWidth + 'px'
					oOverlay.style.height = overlayHeight + 'px'
					// show overlay
					oOverlay.style.display = 'block'
				} else {
					// hide overlay
					oOverlay.style.display = 'none'
				}
			}
		}
	}

} //End dhtmlWindow object

window.onunload = dhtmlWindow.cleanup

// ---------------- AUTO RESIZE SUPPORT ----------------

function openIframeDlgWin(sURL, sTitle, sDlgID, sOptions) {
	var oDlgWin = null
	
	// default title shown in caption bar
	if (!sTitle) sTitle = 'Dialog'
	// default identifier (must be unique)
	if (!sDlgID) sDlgID = 'ifrmDlgWnd_' +  new Date().getTime()
	// default options
	if (!sOptions) sOptions = 'center=1,width=0px,height=0px,minimize=0,resize=1,scrolling=1,showShim=1,showOverlay=1,showDrag=0'
	
	// add Dialog ID to URL (to be used in popup header
	sURL = sURL + (sURL.indexOf("?") >= 0 ? '&sDlgID=' : '?sDlgID=') + sDlgID
	
	// open iframe dialog window
	oDlgWin = dhtmlWindow.open(sDlgID, 'iframe', sURL, sTitle, sOptions)
	
	return oDlgWin
}

function newIFrameDlg(sURL,sTitle) {
	parent._oDlg = openIframeDlgWin(sURL, sTitle)
}

function getIframeDlgWin(sDlgID) {
	return window.frames["_iframe-" + sDlgID]
}

