jQuery.fn.popup = function(closeCallback)
{
	return this.each(function()
	{		
		var element = $(this);

		if($('#PopupOverlay').length == 0)
		{
			$('body').append('<div id="PopupOverlay"></div>');			
		}	

		$('#PopupOverlay').show().fadeTo(200, 0.5);

		if(element.hasClass('IsPopup'))
		{
			element.parent().show('fast');
		}
		else
		{
			element.addClass('IsPopup');
			element.addClass('Popup');
			element.show();
			element.wrap('<div class="PopupWrapper" />');
			var wrapper = element.parent();		
	
			wrapper.append('<a href="#" class="ClosePopup">Close</a> <div class="PopupHeader"></div> <div class="PopupFooter"></div>');
			
			wrapper.css('margin-top', - (wrapper.height() / 2));
			wrapper.css('margin-left', - (wrapper.width() / 2));

	
			wrapper.find('.ClosePopup').click(function() 
			{
				if (closeCallback)
				{
					closeCallback();
				}

				wrapper.hide('fast');
				$('#PopupOverlay').fadeTo('fast', 0,function(){$(this).hide();});

				return false;
			});

			element.parent().show('fast');
		}
	});
}

$(function()
{
	//* Create the overlay here to prevent flicker in IE

	$('body').append('<div id="PopupOverlay"></div>');
	$('#PopupOverlay').fadeTo('fast', 0).hide();
});