
var Popup = {
	window: $('popup-window'),
	overlay: $('popup-overlay'),
	body: $('popup-body'),
	//pageBody: $('bg-body'),

	resizeOverlay: function() {
		var overlay = Popup.window.offsetHeight + Popup.window.offsetTop + 100;
		var page = Math.max((window.innerHeight || document.documentElement.clientHeight), Math.max($('bg-body').offsetHeight, Popup.body.offsetHeight + 154 + 16 + 30));
		Popup.overlay.style.height = Math.max(overlay, page) + 'px';
	},

	request: function(url, postBody) {
		$('popup-overlay').style.display = 'block';
		Popup.wait();
		new Ajax.Updater('popup-body', url, {
			postBody: postBody,
			evalScripts: false,
			onCreate: function() {
				Popup.waiting = setTimeout(function() {
					Popup.position();
					Effect.Appear('popup-window', { duration: .3 });
					Popup.waiting = false;
				}, 500);
			},
			onComplete: function() {
				Popup.position();
				if(Popup.waiting) {
					clearTimeout(Popup.waiting);
					Effect.Appear('popup-window', { duration: .3 });
					Popup.waiting = false;
				} else
					$('popup-window').style.display = 'block';
				Popup.body.innerHTML = Popup.addCloseBox(Popup.body.innerHTML);
				//Popup.body.innerHTML.evalScripts();
				Popup.resizeOverlay();
			}
		});
		return false;
	},

	displayHTML: function(html) {
		$('popup-overlay').style.display = 'block';
		Popup.position();
		Effect.Appear('popup-window', { duration: .3 });
		Popup.body.innerHTML = Popup.addCloseBox(html);
		setTimeout(Popup.resizeOverlay, 100);
		return false;
	},

	addCloseBox: function(html) {
		 return '<a href="" class="close" onclick="return Popup.close()"><img src="/styles/images/b_close.gif" /></a>' + html;
	},

	wait: function() {
		Popup.displayHTML('<div class="loading">Please Wait...</div>');
	},

	close: function() {
		Popup.overlay.style.display = 'none';
		$('popup-window').style.display = 'none';
		Popup.body.innerHTML = '<div class="loading"></div>';
		Popup.onClose();
		Popup.onClose = function() { };
		return false;
	},

	onClose: function() { },

	submit: function(form) {
		$(form).request({
			onComplete: function(response) {
				Popup.body.innerHTML = Popup.addCloseBox(response.responseText);
				response.responseText.evalScripts();
			}
		});
		return false;
	},

	position: function() {
		if(document.body && document.body.scrollTop) var top = document.body.scrollTop;
		else if(document.documentElement && document.documentElement.scrollTop) var top = document.documentElement.scrollTop;
		else if(window.pageYOffset) var top = window.pageYOffset;
		else var top = 0;
		$('popup-window').style.marginTop = (154 + top) + 'px';
	}
	
}

window.onresize = function() { Popup.resizeOverlay() }

if(typeof onPopupReady == 'function') onPopupReady();