/*
script Ajax da gerencia de Idioma
Autor: Rafael Silvério Matos
Data: 16/05/2007
versão: 0.0.1
*/

ClientAuthentication = ({	
	
	authenticationMsg: '<div class="msg"><b>Verificando dados. Por favor aguarde...</b></div>',
	loadingMsg: '<div class="msg">' + Site.loadingImg + '<span>Carregando, aguarde...</span></div>',
	updatePassMsg: '<div class="msg">' + Site.loadingImg + '<span>Alterando a senha, aguarde...</span></div>',
	effectSpeed: 'fast',
	
	memoryCall: 
	{
		options: '',
		parametros: ''
	},
	
	initialize: function() {
		$('#frmLogin input#login').get(0).focus();
	}, // fim initialize()
	
	initFormNovaSenha: function()
	{
		$('#frmRecuperarSenha').validate({
			rules: {
				login: "required"
			},
			messages: {
				login: "Informe o login"
			}
		});
	}, // fim function initFormNovaSenha
	
	cleanMemoryCall: function() 
	{
		ClientAuthentication.memoryCall.options = '';
		ClientAuthentication.memoryCall.parametros = '';
	},
	
	login: function() 
	{

		// inserir mensagem
		$('#frmLogin').fadeOut(ClientAuthentication.effectSpeed, function(){
			$(this).before(ClientAuthentication.authenticationMsg);		// inserir mensagem
			
			var controller = new AppController({
				modulo: 'ClientAuthentication',
				metodo: 'login',
				callBack:function(retorno){
					if (retorno == true)
					{
						if (typeof(System) != 'undefined')
						{
							/* Executar chamada guardada na memoria */
							controller.options = ClientAuthentication.memoryCall.options;		// redefinir options de chamada original
							controller.callAjax(ClientAuthentication.memoryCall.parametros);	// executar chamada ajax
							ClientAuthentication.cleanMemoryCall();								// limpar chamada da memoria
						} // fim if
						else
						{
							window.location.href = 'comissao.php';
						} // fim else
					} // fim if
					else
					{
						alert(retorno);		// exibir mensagem de erro
						$('div.msg').fadeOut(ClientAuthentication.effectSpeed, function(){
							$('div.msg').remove();		// remover mensagem
							$('#frmLogin').fadeIn(ClientAuthentication.effectSpeed);		// aparecer o formulario
						});	// fim $('div#msg').fadeOut()
					} // fim else
				} // fim callBack
			}); // fim AppController
			
			controller.exec(ClientAuthentication.serialize() + '&authentication=cliente', false);		// executar chamada pulando a verificação de login
		});
	},	// fim login
	
	logout: function() {
		
		var controller = new AppController({
			modulo: 'ClientAuthentication',
			metodo: 'logout',
			callBack:function(retorno){
				window.location.href = 'comissao.php';
			} // fim callBack
		}); // fim AppController
		
		controller.exec('authentication=cliente', false);		// executar chamada pulando a verificação de login
	},	// fim logout
	
	loginCheck: function(parametros, options) {
		
		var controller = new AppController({
			modulo: 'ClientAuthentication',
			metodo: 'loginCheck',
			callBack:function(retorno){
				if (retorno == true)
				{
					controller.options = options;		// redefinir options de chamada original
					controller.callAjax(parametros);	// executar chamada ajax
				}
				else
				{
					// se não estiver logado, bloquear a tela e exibir formulario de login
					alert('Sessão expirada! Efetue novamente o Login.');
					
					/* Guardar parametros de chamada */
					ClientAuthentication.memoryCall.options = options;			
					ClientAuthentication.memoryCall.parametros = parametros;	
					
					window.location.href = 'comissao.php';
				}
			} // fim callBack
		}); // fim AppController
		
		controller.exec('authentication=cliente', false);		// executar chamada pulando a verificação de login
	}, // fim loginCheck()	
	
	closeAlterarSenha: function()
	{
		$('#conteudo').html(ClientAuthentication.loadingMsg);
		
		$.ajax({
			type		: 'POST',
			url			: 'comissao.php?acao=visualizar',
			dataType	: 'html',
			complete	: function(retorno) 
			{
				$('#conteudo').html(retorno.responseText);
				ArquivoComissao.initListView();
			} // fim complete
		}); // fim ajax
	}, // fim function closeAlterarSenha
	
	showFormAlterarSenha : function()
	{
		$('#conteudo').html(ClientAuthentication.loadingMsg);
		
		var controller = new AppController({
			modulo: 'ClientAuthentication',
			metodo: 'showFormAlterarSenha',				
			callBack:function(retorno){
				$('#conteudo').html(retorno);
				$('#frmAlterarSenha input#senha').get(0).focus();		// colocar o cursor no campo senha atual
			}	
		});

		controller.exec();
	},
	
	validarSenha : function()
	{
		campo1 = '#frmAlterarSenha #novaSenha';
		campo2 = '#frmAlterarSenha #novaSenha2';
		
		if($(campo1).val().length < 6)
		{
			alert('A senha deve ter no mínimo 6 caracteres!');
			return false;
		} // fim if
		
		if($(campo1).val() != $(campo2).val())
		{
			alert('Confirmação de senha inválida!');
			return false;
		} // fim if
		
		return true;
	},
	
	alterarSenha : function()
	{
		if(ClientAuthentication.validarSenha())
		{
			$('#frmAlterarSenha').hide();											// esconder formulario
			$('#frmAlterarSenha').before(ClientAuthentication.updatePassMsg);		// inserir mensagem
			
			var parametros = 'senha='+$('#frmAlterarSenha #senha').val()+'&novaSenha='+$('#frmAlterarSenha #novaSenha').val();
			
			var controller = new AppController({
				modulo: 'ClientAuthentication',
				metodo: 'alterarSenha',				
				callBack:function(retorno)
				{
					if(retorno == true)
					{
						alert('Senha alterada com sucesso!');		// alerta OK

						$('div.msg').remove();						// remover mensagem
						ClientAuthentication.closeAlterarSenha();	// fechar formulario de alterar senha
					} // fim if
					else
					{
						$('div.msg').remove();						// remover mensagem
						$('#frmAlterarSenha').show();				// mostrar formulario
						alert(retorno);
					} // fim else
				} // fim function callback
			});
	
			controller.exec(parametros);		// executar chamada
		} // fim if
	}, // fim function alterarSenha
	
	serialize: function() {
		
		var parametros = 'login=' + escape($('#frmLogin input#login').val()) + '&senha=' + escape($('#frmLogin input#senha').val());
		
		return parametros;
	} // fim serialize
});