﻿function login(serverclass) {

    var Constructor = function() {
        $('EmailLogin').focus();
        $('PasswordLogin').onkeydown = function(e) {
            var ev = window.event || e;
            var key = ev.which || ev.keyCode;

            if (key == 13) oLogin.verificarLogin();
        };
    };

	this.showEnviarSenha = function() {
		$('boxEnviarSenha').style.display = 'block';
		$('siteSombra').style.display = 'block';
		$('txtMailReenviar').focus();
	};

	this.hideEnviarSenha = function() {
		$('boxEnviarSenha').style.display = 'none';
		$('siteSombra').style.display = 'none';
		$set('txtMailReenviar', '');
	};

	this.enviarSenha = function() {
		if ($get('txtMailReenviar') == '') return alert('Informe um endereço de e-mail');
		if (!$get('txtMailReenviar').isEmail()) return alert('Endereço de e-mail inválido');
		var checkMail = serverclass.checkMail($get('txtMailReenviar'));
		if (checkMail.error) return alert(checkMail.error.message);
		if (checkMail.value) {
			serverclass.enviarSenha($get('txtMailReenviar'), function(res) {
				if (res.error) return alert(res.error.message);
				if (res.value) {
					alert('A senha foi enviada com sucesso\nConfira seu e-mail');
					oLogin.hideEnviarSenha();
				} else alert('Falha inesperada ao enviar senha');
			});
		} else { alert('O e-mail fornecido não existe'); }
	};

	var checkMail = function() {
		if (!$get('EmailCadastrese').isEmail()) { alert('Campo e-mail está com formato inválido.'); return false; }
		var res = serverclass.checkMail($get('EmailCadastrese'));
		if (res.error) {
			alert('Erro ao validar E-Mail');
			return false;
		}

		if (res.value) {
			alert('O e-mail ' + $get('EmailCadastrese') + ' já possui cadastro!\nEfetue o Login de sua conta');
			$set('EmailLogin', $get('EmailCadastrese'));
			$set('EmailCadastrese', '');
			$('PasswordLogin').focus();
			return false;
		}
		return true;
	};

	this.cadastrarPF = function() {
		//if ($get('EmailCadastrese').trim() == '') return alert('O e-mail deve ser preenchido');
		if ($get('EmailCadastrese').trim() != '' && !checkMail()) return;
		window.location = 'CadastroPF.aspx?Email=' + $get('EmailCadastrese');
	};

	this.cadastrarPJ = function() {
		//if ($get('EmailCadastrese').trim() == '') return alert('O e-mail deve ser preenchido');
		if ($get('EmailCadastrese').trim() != '' && !checkMail()) return;
		window.location = 'CadastroPJ.aspx?Email=' + $get('EmailCadastrese');
	};

	this.verificarLogin = function() {
	    var email = $get('EmailLogin').trim();
	    var senha = $get('PasswordLogin').trim();
	    var lembrar = $('LembrarLogin').checked;
	    if (email.trim() == '' || senha.trim() == '') return alert('Email e senha não podem ficar em branco');

	    serverclass.verificarLogin(email, senha, lembrar, function(res) {
	        if (res.error) return alert(res.error.message);
	        if (res.value != '') location.href = res.value;
	        else return alert("Email ou senha inválidos");

	    });
	};

    this.doLogout = function() {
    };
    
    Constructor();
};

var oLogin;
$load(function() {
	oLogin = new login(UI_Login);
	$('siteSombra').style.height = document.body.offsetHeight + 'px';
});