
var submenuLayer = 1000;
var iaz_preserved_elements = [];
var iaz_preserved_zindexes = [];

function setup_avatar_menu() {

	$('.usericon').hover(function(){
		$('.avatar_menu_button', this).show();
	}, function() {
		var submenu = $(this).parent().parent().find("div.sub_menu");
		if(submenu.css('display') == "none" && $(this).parent().attr('id') != 'avatar') {
			$('.avatar_menu_button', this).hide();
		}
	});

	// avatar contextual menu
	$(".avatar_menu_button img").click(function(e) { 
		
		var submenu = $(this).parent().parent().find("div.sub_menu");
		
		// close submenu if arrow is clicked & menu already open
		if(submenu.css('display') == "block") {
//			submenu.fadeOut();
		} else {
			// get avatar dimensions
			var avatar = $(this).parent().parent().parent().find("img.usericonimg");
			//alert( "avatarWidth: " + avatar.width() + ", avatarHeight: " + avatar.height() );
			
			// move submenu position so it aligns with arrow graphic
			if (e.pageX < 840) { // popup menu to left of arrow if we're at edge of page
			if ($(this).parent().parent().parent().attr('id') != 'avatar')
				submenuTop = avatar.height() + "px";
			else
				submenuTop = avatar.height() + 24 + "px";
			submenu.css("top", submenuTop)
					.css("left", 0 + "px")
					.fadeIn('normal');	
			} else {
			submenu.css("top", submenuTop)
					.css("left",(avatar.width()-166) + "px")
					.fadeIn('normal');		
			}	
			
			// force z-index - workaround for IE z-index bug			
/*			avatar.css("z-index",  submenuLayer);
			avatar.find("a.icon img").css("z-index",  submenuLayer);
			submenu.css("z-index", submenuLayer+1);
						
			submenuLayer++; */
			

		   // default values
		   var context = $("body");

		   // undo past ie_apply_zindex()
		   for (i = iaz_preserved_elements.length-1; i >= 0; i--) {
		      iaz_preserved_elements[i].css({'z-index': iaz_preserved_zindexes[i]});
		   }
		   iaz_preserved_elements = [];
		   iaz_preserved_zindexes = [];

		   // find relative-positioned ancestors of element within context
		   submenu.parents().each(
		      function() {
		         if ('relative' == $(this).css('position')) {
		            // preserve ancestor's current z-index
		            iaz_preserved_elements.push($(this));
		            iaz_preserved_zindexes.push($(this).css('z-index') );

		            // apply z-index to ancestor
		            $(this).css({'z-index': submenuLayer});
		         }
		         if ($(this) == context) { return false; }
		      }
		   );
			
		}
		
		// hide any other open submenus and reset arrows
		$("div.sub_menu:visible").not(submenu).hide();
	})
	
	// hide avatar menu if click occurs outside of menu	
	// and hide arrow button						
	$(document).click(function(event) { 		
			var target = $(event.target);
			if (target.parents(".usericon").length == 0) {				
				$(".usericon div.sub_menu").fadeOut();
				$('.avatar_menu_button:not(div#avatar div.avatar_menu_button)').hide();
			}
	});			   
	

}

$(document).ready(function() {

	setup_avatar_menu();						   
								   
});

