﻿//
$(
	function()
	{
		$('div.logindialog .tab').
			click
			(
				function(event)
				{
					LoginDialog_ShowDialog();

					return false;
				}
			);

		$('div.logindialog .loginform').
			focusin
			(
				function(event)
				{
					clearTimeout($LoginDialogTimer);

					$('div.logindialog').data('infocus', '1');
				}
			).
			focusout
			(
				function(event)
				{
					$('div.logindialog').data('infocus', '0');

					LoginDialog_SetTimeout();
				}
			);
		
		$('div.logindialog').
			mouseover
			(
				function(event)
				{
					clearTimeout($LoginDialogTimer);
				}
			).
			mouseout
			(
				function(event)
				{
					LoginDialog_SetTimeout();
				}
			);
	}
);

//
var $LoginDialogTimer = null;

//
function LoginDialog_SetTimeout()
{
	clearTimeout($LoginDialogTimer);
	$LoginDialogTimer = setTimeout('LoginDialog_HideDialog();', 2000);
}

//the function is generated on server side
//function LoginDialog_GetAuthToken()
//{
//}

//the function is called from LoginDialog_GetAuthToken()
function LoginDialog_AuthTokenRecieved(token)
{
	var pwdCtrl = $('div.logindialog .loginform input.password');
	var pwd = pwdCtrl.val();

	// do NOT send password to server!!!
	var fakePwd = '';
	for (var index = 0; index < pwd.length; index++)
	{
		fakePwd += 'x';
	}
	pwdCtrl.val(fakePwd);

	// send DIGEST to server
	$('div.logindialog .loginform input.digest').val(b64_md5(b64_md5(pwd) + token));

	//initiate postback
	__doPostBack($('div.logindialog .loginform input.loginbutton').attr('name'), '');
}

//
function LoginDialog_DoLogin()
{
	if (LoginDialog_ValidateDialog())
	{
		LoginDialog_GetAuthToken();
	}
}

//
function LoginDialog_ValidateDialog()
{
	var email = $('div.logindialog .loginform input.email').val();
	var password = $('div.logindialog .loginform input.password').val();
	
	// validate dialog
	if (
		email != 'undefined' && email != null && email != '' &&
		password != 'undefined' && password != null && password != ''
	)
	{
		return true;
	}

	return false;
}

//
function LoginDialog_ShowDialog()
{
	$('div.logindialog').animate({ width: '223', marginRight: '15' });
	$('div.logindialog .dialog').show('slow');
}

//
function LoginDialog_HideDialog()
{
	if ($('div.logindialog').data('infocus') != '1')
	{
		if ($('div.logindialog .dialog').css('display') != 'none')
		{
			$('div.logindialog .dialog').
				hide
				(
					'slow',
					function()
					{
						$('div.logindialog').animate({ width: '114', marginRight: '0' });
						
						$('div.logindialog .loginform input.email').val('');
						$('div.logindialog .loginform input.password').val('');
						$('div.logindialog .loginform input.check').attr('checked', 'checked');
					}
				);
		}
	}
}

