/**
 * Configura os eventos e as ações comuns a todo o portal
 */
$(document).ready(function () {

  /**
   * Exibe a data atual
   */
  $('.data').showDate(showDateOptions);

  /**
   * Exibe a hora atual (o relógio digital)
   */
  $('.relogio').jclock();

  /**
   * Validação dos dados do formulário de login (utiliza estilos da jQuery UI)
   */
  $('#form_acesso').submit(function (eventoPadraoObj) {

    var dadosValidos = true,
        msgs = [],
        msg;

    /**
     * Campos (objetos)
     */
    var campos = {
      'email': $('#input_email_acesso'),
      'senha': $('#input_senha_acesso'),
      'lembrar': $('#input_lembrar_acesso')
    };

    /**
     * Valores dos campos
     */
    var valCampos = {
      'email': $.trim(campos.email.val()),
      'senha': campos.senha.val(),
      'lembrar': campos.lembrar.is(':checked')
    };

    /**
     * Variáveis para o envio via POST
     */
    var valCamposPOST = {
      'email_acesso': valCampos.email,
      'senha_acesso': valCampos.senha,
      'lembrar_acesso': valCampos.lembrar,
      'ajax': true
    };

    /**
     * Verifica se o e-mail foi informado e se é válido
     */
    if (!(validaComprimentoTxt(valCampos.email, 6, 255) &&
          validaEmail(valCampos.email))) {
      dadosValidos = false;

      campos.email.addClass('ui-state-error');
      msgs.push('O e-mail não foi informado ou é inválido. Um exemplo de e-mail válido é: conta@provedor.com.br.');
    } else campos.email.removeClass('ui-state-error');

    /**
     * Verifica se a senha foi informada e se é válida
     */
    if (valCampos.senha.isEmpty()) {
      dadosValidos = false;

      campos.senha.addClass('ui-state-error');
      msgs.push('A senha não foi informada.');
    } else campos.senha.removeClass('ui-state-error');

    /**
     * Envia os dados para o manipulador do login
     */
    if (dadosValidos) {
      $.post('../login/login.php', valCamposPOST, function (dadosRet) {

        if (dadosRet == 0) {
          //
          //TODO: Redirecionamento inteligente
          //
          //window.location.reload(true);
          location.href = location.href;
        } else {
          msg = '<br />' + dadosRet;

          $('#dialogo').html(msg);
          $('#dialogo').dialog('option', 'width', 600);
          $('#dialogo').dialog('option', 'title', 'Erro no acesso');
          $('#dialogo').dialog('open');
        }

      });
    } else {
      msg = '';

      $.each(msgs, function() { msg += '<br />' + this + '<br />'; });

      msg += '<br />';

      $('#dialogo').html(msg);
      $('#dialogo').dialog('option', 'width', 600);
      $('#dialogo').dialog('option', 'title', 'Erro no acesso');
      $('#dialogo').dialog('open');
    }

    eventoPadraoObj.preventDefault();

  });

  /**
   * Redefinição de senha do usuário
   */
  $('#redefinir_senha a').click(function (eventoPadraoObj) {

    //
    //TODO
    //

    eventoPadraoObj.preventDefault();

  });

  /**
   * Validação do voto na enquete
   */
  $('#form_enquete').submit(function (eventoPadraoObj) {

    var opcVoto = $("input[name='enquete']:checked").val(),
        msg;

    if (opcVoto) {
      msg = '<br />Obrigado por votar!<br /><br />';

      limpaForm('form_enquete');

      $('#dialogo').html(msg);
      $('#dialogo').dialog('option', 'title', 'Votação na enquete');
    } else {
      msg = '<br />Você não selecionou a sua opção de voto.<br /><br />';

      $('#dialogo').html(msg);
      $('#dialogo').dialog('option', 'title', 'Erro na votação da enquete');
    }

    $('#dialogo').dialog('option', 'width', 400);
    $('#dialogo').dialog('open');

    eventoPadraoObj.preventDefault();

  });

});
