/*
|----------------------------------------------------------------------------------------------------|
|  Biblioteca: Login()                                                                               |
|   Descrição: Efetua login utilizando tecnologia AJAX.                                              |
|  ================================================================================================  |
|      Criado: 27/03/2006 | Por: Mauro Willian                                                       |
|  Modificado: __/__/____ | Por:                                                                     |
|----------------------------------------------------------------------------------------------------|
*/

//##### Variáveis e objeto, globais e privados, da biblioteca #####
var _oAjax	= null;
var _oForm	= null;

/*
|----------------------------------------------------------------------------------------------------|
|      Função: fctLogin()                                                                            |
|   Descrição: Valida os campos e chama o action para efetuar o login no site.                       |
|  ================================================================================================  |
|       Parâmetros: objeto = Objeto form ou objeto pelo qual usaremos para procurar o form.          |
|  Tipo de Retorno: void                                                                             |
|----------------------------------------------------------------------------------------------------|
*/
function fctLogin(objeto)
{
	//Verificando se o objeto FORM já foi instanciado
	if (_oForm == null)
		_oForm	= _RecuperarForm(objeto);
	
	//Validando os campos
	/*if (!_oForm.varcEmail.value.isValidEmail())
	{
		alert('Por favor, informe o e-mail corretamente.');
		_oForm.varcEmail.focus();
		return;
	}*/
	if (_oForm.varcEmail.value.isEmpty())
	{
		alert('Por favor, informe um e-mail ou login de usuário.');
		_oForm.varcEmail.focus();
		return;
	}
	if (_oForm.varcSenha.value.isEmpty())
	{
		alert('Por favor, informe a senha.');
		_oForm.varcSenha.focus();
		return;
	}
	
	//Instanciando o objeto Ajax
	_oAjax	= new Ajax();
	//Configurando o objeto Ajax
	_oAjax.oParametros.Adicionar(new Parametro("varcEmail", _oForm.varcEmail.value));
	_oAjax.oParametros.Adicionar(new Parametro("varcSenha", _oForm.varcSenha.value));
	_oAjax.url			= 'http_actions/act_login.asp';
	_oAjax.metodo 	= "POST";
	_oAjax.callBack	= _CallBack;
	_oAjax.Enviar();
}

//##### Funções CallBack #####

/*
|----------------------------------------------------------------------------------------------------|
|           Função: _CallBack()                                                                      |
|        Descrição: Função que tratará o retorno do action de login.                                 |
|  ================================================================================================  |
|       Parâmetros: Nenhum                                                                           |
|  Tipo de Retorno: void                                                                             |
|----------------------------------------------------------------------------------------------------|
*/
function _CallBack()
{
	//Verificando o status da página
	if (_oAjax.VerificarStatus() == 4)
	{
		//Verificando se a transferencia foi realizada com sucesso
		if (_oAjax.oStatus.numero == 200)
		{
			//Recuperando o resultado como TEXTO
			var varcRetorno	= _oAjax.getText;
			
			if (varcRetorno == 'ok' || (_oForm.varcURL.value == 'http://www.abac.org.br/novo/cobranca.asp?inteMenuID=3' && varcRetorno == 'ok_cobranca'))
			{
				fctPosicionarLogin(false, '', '0')
				if (_oForm.bitPopup.value == '1')
				{
					//window.open(_oForm.varcURL.value);
					window.open(_oForm.varcURL.value, 'ABAC_NEWS', 'toolbar=yes,location=yes,directories=yes,resize=yes,resizable,menubar=yes,width=628,height=500,scrollbars=yes,top=0,left=0');
					location.reload();
				}
				else
				{
					location.href = _oForm.varcURL.value;
				}
			}
			else if (_oForm.varcURL.value != 'http://www.abac.org.br/novo/cobranca.asp?inteMenuID=3' && varcRetorno == 'ok_cobranca')
			{
				document.getElementById('txtMsgLogin').innerHTML	= 'E-mail inválido.';
				_oForm.varcEmail.select();
				_oForm.varcEmail.focus();
			}
			else if (varcRetorno == 'email')
			{
				document.getElementById('txtMsgLogin').innerHTML	= 'E-mail inválido.';
				_oForm.varcEmail.select();
				_oForm.varcEmail.focus();
			}
			else if (varcRetorno == 'usuario')
			{
				document.getElementById('txtMsgLogin').innerHTML	= 'Usuário inválido.';
				_oForm.varcEmail.select();
				_oForm.varcEmail.focus();
			}
			else if (varcRetorno == 'senha')
			{
				document.getElementById('txtMsgLogin').innerHTML	= 'Senha inválida.';
				_oForm.varcSenha.select();
				_oForm.varcSenha.focus();
			}
			else if (varcRetorno == 'inativo')
			{
				document.getElementById('txtMsgLogin').innerHTML	= 'Sua conta ainda não está ativa.';
				_oForm.varcEmail.select();
				_oForm.varcEmail.focus();
			}
			else if (varcRetorno == 'bloqueado')
			{
				document.getElementById('txtMsgLogin').innerHTML	= 'Acesso aos serviços do site bloqueado.';
				_oForm.varcEmail.select();
				_oForm.varcEmail.focus();
			}			
		}
	}
}

//##### Funções Auxiliares #####

/*
|----------------------------------------------------------------------------------------------------|
|           Função: _RecuperarForm()                                                                 |
|        Descrição: Retorna o objeto form do formulário atual.                                       |
|  ================================================================================================  |
|       Parâmetros: Nenhum                                                                           |
|  Tipo de Retorno: form                                                                             |
|----------------------------------------------------------------------------------------------------|
*/
function _RecuperarForm(obje)
{
	if (obje.tagName.toLowerCase() == 'form')
		return obje;
	else
	{
		var _formulario	= obje.parentNode;
		
		if (_formulario.tagName.toLowerCase() == 'form')
			return _formulario;
		else
			_formulario	= _RecuperarForm(_formulario);
	}
}