js.module('usermenu');

usermenu = {
	links : [
	        '',
			'/.?page=grp_general&skip=0&show=',
			'/.?page=grp_personal&skip=0&show=',
			'/.?page=grp_production&skip=0&show=',
			'/.?page=bonus_transfer&touser=',
			'/.?page=mailto&touser='
	        ],
	show : function(link)
	{
		if(!link) return;

		var m = $('usermenu');

		m.curr_link = link;

		if(m.curr_link == link && visual.visible(m))
		{
			this.hide();
			return;
		}
	
		visual.hide(m);
		
		if(m.oldresize)
		{
			window.onresize = m.oldresize;
		}

		m.oldresize=null;
		
		var pos = visual.findPos(link);

		var l = pos[0];
		var t = pos[1];
		
		t-=130;

		if(l+link.offsetWidth-2+270>visual.windowWidth()) //right-pointing popup
		{
			m.className = "usermenu umright";
			l-=253;
		}
		else //left-pointing poppup
		{
			m.className = "usermenu umleft";
			l+=link.offsetWidth-2;
		}
		
		m.style.top = t;
		m.style.left = l;
		
		$A(m, 'curr_user', $A(link, 'uid'));
		
		$$('userlink_login', $A(link, 'login'));
		$$('userlink_fio', $A(link, 'fio'));
		$$('userlink_phone', $A(link, 'phone') ? js.strings.phoneshort + ': ' + $A(link, 'phone') : '');
		$$('userlink_level', '<img title="'+js.strings.leveltip+': '+js.strings.leveltips[$A(link, 'level')]+'" src="/images/office/struct/'+$A(link, 'level')+'.gif">');
		$$('userlink_rank', '<img title="'+js.strings.ranktip+': '+js.strings.ranktips[$A(link, 'rank')]+'" src="/images/office/ranks/'+$A(link, 'rank')+'.gif">');
		$$('userlink_prodlevel', '<img title="'+js.strings.prodleveltip+': '+$A(link, 'prodlevel')+'" src="/images/office/prodlevels/'+$A(link, 'prodlevel')+'.gif">');
		$$('userlink_attest', '<img title="'+js.strings.attesttip+': '+js.strings.attesttips[$A(link, 'attest')]+'" src="/images/attest/'+$A(link, 'attest')+'.gif">');

		if($A(link, 'phone'))
		{
			visual.show('userlink_phone');
			$('userlink_varsepar').style.height = 5;
		}
		else
		{
			visual.hide('userlink_phone');
			$('userlink_varsepar').style.height = 15;
		}
		
		m.oldresize = window.onresize;
		window.onresize = usermenu.adjust;

		m.oldonmousedown = document.body.onmousedown;
		document.body.onmousedown = usermenu.checkHide;
		
		for(var i=1;i<=5;i++)
		{
			var tmp = $('um_nw_link_'+i);
			if(tmp)
			{
				$A(tmp,'href',this.links[i]+$A(link,'uid'));
			}
			var tmp2 = $('um_tw_link_'+i);
			if(tmp2)
			{
				$A(tmp2,'href',this.links[i]+$A(link,'uid'));
			}
		}
		
		visual.show(m);
	}
	,
	adjust : function()
	{
		var m = $('usermenu');

		link = m.curr_link;

		if(!link) return;

		var pos = visual.findPos(link);

		var l = pos[0];
		var t = pos[1];
		
		t-=130;

		if(l+link.offsetWidth-2+270>visual.windowWidth()) //right-pointing popup
		{
			m.className = "usermenu umright";
			l-=253;
		}
		else //left-pointing poppup
		{
			m.className = "usermenu umleft";
			l+=link.offsetWidth-2;
		}
		
		m.style.top = t;
		m.style.left = l;
	}
	,
	checkHide : function(e)
	{
		if(!e && event)
			e=event;

		var m = $('usermenu');
		
		if(!e) return;
		if(!m) return;
		
		var toel = e.toElement ? e.toElement : e.target ? e.target : e.srcElement;

		if(toel == m || toel.parentNode == m) return;

		par = toel;

		while(par)
		{
			if(par==m || par==m.curr_link)
				return;
			par = par.parentNode;
		}

		usermenu.hide();
	}
	,
	hide : function()
	{
		var m = $('usermenu');
		if(!m) return;

		if(m.oldonmousedown)
		{
			document.onmousedown = m.oldonmousedown;
			m.oldonmousedown = null;
		}

		visual.hide(m);
	}
	,
	go : function(act)
	{
		var uid = $A('usermenu', 'curr_user');
		var url = "#";
		
		switch(act)
		{
			case 1:
				url = '/?page=grp_general&skip=0&show='+uid;
				break;
			case 2:
				url = '/?page=grp_personal&skip=0&show='+uid;
				break;
			case 3:
				url = '/?page=grp_production&skip=0&show='+uid;
				break;
			case 4:
				url = '/?page=bonus_transfer&touser='+uid;
				break;
			case 5:
				url = '/?page=mailto&touser='+uid;
				break;
		}

		visual.redirect(url);
		
		return false;
	}
};