$(function() {

	var popupWindowCloseHandler = function(event) {
		event.preventDefault();
		$('body').children('.popup-window-box').fadeOut('fast').remove();
		$('body').children('.popup-window-shadow').fadeOut('fast').remove();
		$(document).unbind('keyup', popupWindowESCHandler);
	};

	var popupWindowESCHandler = function(event) {
		if (event.keyCode == 27) {
			popupWindowCloseHandler(event);
		}
	};

	var popupWindow = function(url) {

		var box = $(document.createElement('div'));


		box.addClass('popup-window-box');

		var shadow = $(document.createElement('div')).appendTo('body');
		shadow.addClass('popup-window-shadow')
			.append('<span></span>')
			.fadeIn('fast')
			.click(popupWindowCloseHandler);

		box.load(url, null, function() {
			box.appendTo('body');

			box.fadeIn('fast')
				.css('margin-left', '-'+ (box.width() / 2) +'px')
				.find('.popup-window-close')
					.click(popupWindowCloseHandler);

			box.css('top', ($(window).scrollTop() + (($(window).height() - box.height()) / 2)) +'px');

			$(document).bind('keyup', popupWindowESCHandler);
		});

	};

	$('.popup-window').click(function(event) {
		event.preventDefault();
		popupWindow(this.href);
	});
});
