function FlightBox() {
	//-----------------------------------------------------------------
	
	var bodyCt;
	var overlay;
	var overlayIframe;
	var overlayMessageBox;
	var contentBox;
	var zIndex = 3000;
	var isVisible = false;
	
	//-----------------------------------------------------------------
	/**
	 * 
	 * @return void
	 */
	function setBodyCt() {
		bodyCt = document.getElements("BODY")[0];
	}
	
	//-----------------------------------------------------------------
	/**
	 * 
	 * @return void
	 */
	function createContentBox() {
		contentBox = new Element('div');
		contentBox.id = "flightbox_contentContainer";
		contentBox.style.zIndex = zIndex++;
		bodyCt.appendChild(contentBox);
	}
	
	//-----------------------------------------------------------------
	/**
	 * 
	 * @return void
	 */
	createOverlay = function()
	{
		overlay = new Element('div');
		overlayIframe = new Element('iframe');
		overlayMessageBox = null;
		
		overlayIframe.id = 'flightbox_overlayIframe';
		overlayIframe.style.zIndex = zIndex++;
		
		overlayIframe.setOpacity(0.001);
		
		overlay.id = "flightbox_overlay";
		overlay.style.zIndex = zIndex++;
		overlay.setOpacity(0.6);
		
		bodyCt.appendChild(overlay);
		bodyCt.appendChild(overlayIframe);
	}
	
	//-----------------------------------------------------------------
	/**
	 * 
	 * @param {String} content
	 * @return void
	 */
	this.show = function(content)
	{
		if(!bodyCt) { setBodyCt(); }
		if(!overlay) { createOverlay(); }
		if(!contentBox) { createContentBox(); }
		var w = window.getSize().x;
		var h =  window.getScrollSize().y;
		overlay.style.width = w + "px";
		overlay.style.height = h + "px";
		
		overlayIframe.style.width = w + "px";
		overlayIframe.style.height = h + "px";
		
		overlayIframe.style.display = "block";
		overlay.style.display = "block";
		
		if(content) { contentBox.innerHTML = content; }
		if (Browser.Engine.name != "trident") { $(contentBox).setOpacity(0.001); }
		contentBox.style.display = "block";
		contentBox.style.left = (w/2) - (contentBox.offsetWidth/2) + "px";
		contentBox.style.top = (h/2) - (contentBox.offsetHeight/2) + "px";
		if (Browser.Engine.name != "trident") {
			$(contentBox).set('morph', { duration: 500, transition: Fx.Transitions.Sine.easeOut });
			contentBox.morph({ opacity: 1 });
		}
	}
	
	//-----------------------------------------------------------------
	/**
	 * 
	 * @return void
	 */
	this.hide = function()
	{
		contentBox.style.display = "none";
		overlay.style.display = "none";
		overlayIframe.style.display = "none";
		contentBox.innerHTML = '';
		isVisible = false;
	}
	
	//-----------------------------------------------------------------
}
