(
	function ($)
	{
		$.fn.basePopup = function (options, hashtable)
		{
			var signifierContainer = $(options.signifierContainer);
			
			var closeAll = function ()
			{
				$(".popupContainer").hide ();
			}
			
			var cancelClose = function (event)
			{
				event.stopImmediatePropagation ();
			}
			
			$(".popupContainer").mousedown (cancelClose);
			$(".popupClose").click (closeAll);
			$(document).mousedown (closeAll);
			
			var itemClicked = function (event)
			{
				var signifier = $(this);
				var signifierOffset = signifier.position ();
				closeAll (true);
				
				for (var signifierClass in hashtable)
				{
					if ($(this).hasClass (signifierClass))
					{
						var signified = hashtable [signifierClass];
						var signifiedItem = $(signified.signified);
						var contentLeft = $(signifierClass).position ().left;
						var containerLeft = signifierContainer.position ().left;
						
						if (signifiedItem.hasClass ("locationRight"))
						{
							signifiedItem.css ('left', contentLeft - containerLeft - signifiedItem.outerWidth () + signifier.outerWidth (true) + 20);
						}
						
						signifiedItem.show ();
						
						if (signified.onShow)
						{
							signified.onShow ();
						}
					}
				}
				
				event.stopImmediatePropagation ();
				
				return false;
			}
			
			return this.each (
				function ()
				{
					$(this).click (itemClicked);
				}
			);
		}
	}
) (jQuery);

$(document).ready (
	function ()
	{
		$('a[rel="popupSignifier"]').basePopup (
			{
				'signifierContainer'		: '#BaseItems'
			},
			{
				'.popupSignifierFind'		: { signified : '.signifiedFind'		},
				'.popupSignifierFeeds'		: { signified : '.signifiedFeeds'		},
				'.popupSignifierShare'		: { signified : '.signifiedShare'		},
				'.popupSignifierDelicious'	: { signified : '.signifiedDelicious'	, onShow : function () { deliciousList1.listLoad () } },
				'.popupSignifierTwitter'	: { signified : '.signifiedTwitter'		, onShow : function () { twitterList1.listLoad () } }
			}
		);
	}
);