(function($) {
        $.fn.popupMenu = function(params) {
        	params = $.extend({listID:'', positionMode: 'relative', marginBottom:5}, params);
        	
        	// Attributes
        	var _listID = params.listID;
        	var _ID     = '#'+$(this).attr('id');
 
        	var _positionMode = params.positionMode;
        	var _marginBottom = params.marginBottom; // space between the button and the drop down list
 
        	//alert(_listID+' '+_ID);
        	
        	if ($(_ID).length>0 && $(_listID).length>0) { init(); }
        	
        	function init() {
        		$(_ID).click(function() { toggleMyAccountPopup(); });
        		$(_ID).css('position', 'static');
        		
        		initDropDownList();
        	}
        	
        	function toggleMyAccountPopup() {
				if ($(_listID).css('display')=='none') {
					//$(_ID).addclass('focusOn');
					$(_listID).fadeIn('500');
					$(_listID).fadeTo('10',0.9);
				}
				else {
					//$(_ID).removeClass('focusOn');
					$(_listID).fadeTo('0',1);
					$(_listID).hide();
				}
			}
			
			function initDropDownList() {
				if (_positionMode=='relative') { var position = $(_ID).position(); }
				else {
					$('body').append($(_listID));
					var position = $(_ID).offset();
				}

				$(_listID).css('left', position.left);
				$(_listID).css('top' , position.top+$(_ID).outerHeight()+_marginBottom);
				$(_listID).css('position', 'absolute');
				$(_listID).css('display' , 'none');
				$(_listID).css('minWidth', $(_ID).outerWidth());
				
				//var bodyPosition = findPos(document.getElementsByTagName('body')[0]);
				//alert(bodyPosition.x+' '+bodyPosition.y);
				
				/*if ((position.left + $(_listID).outerWidth()) > $('body').outerWidth()) { 
					$(_listID).css('left', $('body').outerWidth() - $(_listID).outerWidth() - 10);
				}
				else { $(_listID).css('left', position.left); }*/
				//alert(_listID + '('+position.left+', '+position.top+')');
				
				$(_listID).mouseleave(function() { $(_listID).hide(); });
			}
			
			
			function findPos(obj) {
		        var curleft = obj.offsetLeft || 0;
		        var curtop = obj.offsetTop || 0;
		        while (obj = obj.offsetParent) {
		                curleft += obj.offsetLeft
		                curtop += obj.offsetTop
		        }
		        return {x:curleft,y:curtop};
			}
        }
})(jQuery);
