/**
 * Copyright (c) 2009 Avot Media BV
 */
var Popup = new Class({
	/**
	 * Initializes the Popup class and creates the required HTML
	 */
	initialize: function()
	{
		var instance = this;
		var backgroundOverlay = new Element('div', {
			id: 'popupOverlay',
			opacity: 0.6,
			styles: {
				width: $(document.body).getWidth() + 'px',
				height: $(document.body).getHeight() + 'px'
			}
		});
		var popupContainer = new Element('div', {
			id: 'popupContainer',
			styles: {
				top: 100,
				left: (($(document.body).getWidth() / 2) - 420)
			}
		}).adopt(new Element('div', {
			id: 'popupContent'
		}));
		$(document.body).adopt(backgroundOverlay, popupContainer);
		var popupText = new Request({
			onRequest: function()
			{
				/* Do something */
			},
			onSuccess: function(responseText, responseXML)
			{
				$('popupContent').set('html', responseText).adopt(new Element('div').addClass('popupFooter').set('html', '<a href="javascript:void(0);" onclick="specsPopup.hide(); return false;" class="popupFooterLink"><span>X</span></a>'));
			}
		}).get(window.baseurl + 'home/specs');
		$('popupContainer').fade('hide');
	},
	/**
	 * Shows
	 */
	show: function()
	{
		document.addEvent('keydown', this.keyDown);
		$('popupContainer').get('tween').removeEvent('onComplete', this.hideAll);
		$$($('popupOverlay'), $('popupContainer'), $('popupContent')).setStyle('display', 'block');
		$('popupContainer').fade('in');
	},
	/**
	 * Hides the popup
	 */
	hide: function()
	{
		document.removeEvent('keydown', this.keyDown);
		$('popupContainer').get('tween').addEvent('onComplete', this.hideAll);
		$('popupContainer').fade('out');
	},
	/**
	 * Changes the display setting of all divs to none
	 */
	hideAll: function()
	{
		$$($('popupOverlay'), $('popupContainer'), $('popupContent')).setStyle('display', 'none');
	},
	/**
	 * Event listener for keydown events
	 */
	keyDown: function(event)
	{
		if ([27, 88, 67].contains(event.code)) specsPopup.hide();
		// Prevent default keyboard action (like navigating inside the page)
		return false;
	}
});