/**
*	User widget.
*	
*	@param	string	id			The widget id.
*	@param	boolean	openLogin	Open the login form by default.
*	@param	boolean	openRecover	Open the password recovery form by default.
*/
var UserWidget = function(id, openLogin, openRecover)
{
	var mailRegexp = /^[-a-z0-9_.]+@[-a-z0-9_.]+\.[a-z]{2,5}$/i
	var s = "#"+id+"-";
	var widget = jQuery("#"+id);
	
	var loginForm		= widget.find(s+"loginForm");
	var loginLink		= widget.find(s+"loginLink")
	var closeLink		= widget.find(s+"closeLink");
	var recoverLink		= widget.find(s+"pwRecoverLink");
	var recoverForm		= widget.find(s+"pwRecoverForm");
	
	var recoverOk 			= recoverForm.find(s+"pwRecoverOk");
	var recoverCancel 		= recoverForm.find(s+"pwRecoverCancel");
	var recoverSend			= recoverForm.find(s+"pwRecoverSend");
	var recoverMail			= recoverForm.find(s+"pwRecoverMail");	
	var recoverFormContent	= recoverForm.find(s+"pwRecoverInputs");
	var recoverMsgError		= recoverForm.find(s+"pwRecoverError");
	var recoverMsgOk		= recoverForm.find(s+"pwRecoverMsg");
	var recoverInfo			= recoverForm.find(s+"pwRecoverInfo");
	
	loginLink.attr("href", "javascript:void(null)");
	loginLink.show();
	loginForm.hide();
	closeLink.show();
	recoverForm.hide();
	recoverLink.show();
	recoverForm.find(s+"pwRecoverTitle").hide();
	recoverOk.show();
	recoverInfo.show();
		
	loginLink.click(function(event)
	{
		event.preventDefault();
		
		loginLink.blur();
		loginLink.slideUp(100);
		loginForm.slideDown(50, function() 
		{
			loginForm.animate({height:"+=50"}, 50, function() 
			{
				loginForm.animate({height:"-=50"}, 50);
			});
		});
		
		jQuery(s+"username").focus();
	});
	
	closeLink.click(function(event)
	{
		loginForm.slideUp(200);
		loginLink.slideDown(250);
	});
	
	recoverLink.click(function(event)
	{
		loginForm.slideUp(200);
		recoverForm.slideDown(200);
	});
	
	recoverCancel.click(function(event)
	{
		this.form.reset();
		recoverForm.slideUp(200);
		loginForm.slideDown(200);
		
		recoverMsgError.hide();
		recoverMsgOk.hide();
		recoverMail.val('');
	});
	
	recoverOk.click(function(event)
	{
		recoverForm.slideUp(200);
		loginForm.slideDown(200);
	});
	
	recoverSend.click(function(event)
	{
		event.preventDefault();

		recoverSend.before('<span class="loading"></span>');		
		jQuery.post(SITEURL+"/async.php?widget=user", {login_pw_recover_mail: recoverMail.val()}, function(data)
		{
			if(data == 'ok')
			{
				recoverMsgError.hide();
				
				recoverMsgOk.show(100);
				recoverFormContent.hide(100);
				recoverInfo.hide(100);
			}
			else
			{
				recoverMsgError.show();
				recoverMsgError.html(data);
				recoverMsgOk.hide();
				recoverFormContent.show();
				recoverInfo.show();
			}
			
			recoverForm.find('.loading').remove();
		});
		
	});
	

	if(openLogin)
	{
		recoverForm.hide();
		loginLink.triggerHandler('click');
	}

	if(openRecover)
	{
		loginLink.hide();
		recoverLink.triggerHandler('click');
	}
}
