﻿// Esta função recebe como parâmetro o 'nome' do erro a ser apresentado e o objeto excError e executa a função CompleteError com os textos específicos do erro.
function OpenError(strErrorRequest, excError, strDescription) {
  if (strErrorRequest == 'Default') {
    CompleteError('Ocorreu um erro no sistema.', 'Acesse o sistema novamente e tente de novo. Se o erro percistir contacte o administrador.', excError, strDescription);
  }
  if (strErrorRequest == 'Ajax_error') {
    CompleteError('Error on AJAX.', 'It is not possible to create XMLHttp.', excError, strDescription);
  }
  if (strErrorRequest == 'Logon_blank_Username') {
    CompleteError('Campo Usuário em branco.', 'Por favor digite seu Username.', excError, strDescription);
  }
  if (strErrorRequest == 'Logon_blank_Password') {
    CompleteError('Campo Senha em branco.', 'Por favor digite sua Password.', excError, strDescription);
  }
  if (strErrorRequest == 'Logon_error') {
    CompleteError('Usuário ou Senha inválidos.', 'Verifique se o CAPSLOCK não está ativado em seu teclado. Se o problema persistir entre em contato com o administrador do sistema.', excError, strDescription);
  }
  if (strErrorRequest == 'Add_blank') {
    CompleteError('Nenhum dado foi fornecido para cadastro.', 'Preencha os campos abaixo com os dados que deseja cadastrar.', excError, strDescription);
  }
  if (strErrorRequest == 'Add_success') {
    CompleteError('Registro adicionado com sucesso.', '', excError, strDescription);
  }
  if (strErrorRequest == 'Add_noid') {
    CompleteError('Registro adicionado com sucesso.', 'O Id do registro não pôde ser retornado.', excError, strDescription);
  }
  if (strErrorRequest == 'Add_error') {
    CompleteError('Ocorreu um erro ao tentar cadastrar.', 'Acesse o sistema novamente e tente de novo.', excError, strDescription);
  }
  if (strErrorRequest == 'FieldSearch_blank') {
    CompleteError('Nenhum dado foi fornecido para busca.', 'Preencha os campos abaixo com os dados que deseja buscar.', excError, strDescription);
  }
  if (strErrorRequest == 'FieldSearch_notfound') {
    CompleteError('A busca não encontrou nenhum resultado.', 'Verifique os valores e seus respectivos campos e tente de novo.', excError, strDescription);
  }
  if (strErrorRequest == 'FieldSearch_error') {
    CompleteError('Ocorreu um erro ao realizar a busca.', 'Acesse o sistema novamente e tente de novo.', excError, strDescription);
  }
  if (strErrorRequest == 'KeywordSearch_blank') {
    CompleteError('Nenhum dado foi fornecido para busca.', 'Preencha o campo com os dados que deseja buscar.', excError, strDescription);
  }
  if (strErrorRequest == 'KeywordSearch_notfound') {
    CompleteError('A busca não encontrou nenhum resultado.', 'Tente de novo com outros valores.', excError, strDescription);
  }
  if (strErrorRequest == 'KeywordSearch_error') {
    CompleteError('Ocorreu um erro ao realizar a busca.', 'Acesse o sistema novamente e tente de novo.', excError, strDescription);
  }
  if (strErrorRequest == 'Read_notfound') {
    CompleteError('O registro não foi encontrado.', 'Acesse o sistema novamente e tente de novo.', excError, strDescription);
  }
  if (strErrorRequest == 'Read_error') {
    CompleteError('Ocorreu um erro ao tentar ler os dados do registro.', 'Acesse o sistema novamente e tente de novo.', excError, strDescription);
  }
  if (strErrorRequest == 'Update_blank') {
    CompleteError('O registro não pode ser substituido por um registro em branco.', 'Se quiser apagar o registro use o comando deletar.', excError, strDescription);
  }
  if (strErrorRequest == 'Update_success') {
    CompleteError('Registro atualizado com sucesso.', '', excError, strDescription);
  }
  if (strErrorRequest == 'Update_error') {
    CompleteError('Ocorreu um erro ao tentar atualizar.', 'Acesse o sistema novamente e tente de novo.', excError, strDescription);
  }
  if (strErrorRequest == 'Delete_blank') {
    CompleteError('Nenhum registro foi selecionado.', 'Para remover um registro selecione-o antes de clicar no botão deletar.', excError, strDescription);
  }
  if (strErrorRequest == 'Delete_success') {
    CompleteError('Registro removido com sucesso.', '', excError, strDescription);
  }
  if (strErrorRequest == 'Delete_error') {
    CompleteError('Ocorreu um erro ao tentar remover.', 'Acesse o sistema novamente e tente de novo.', excError, strDescription);
  }
  if (strErrorRequest == 'ShowTrash_empty') {
    CompleteError('Lixeira vazia.', 'Não existe nenhum registro na lixeira.', excError, strDescription);
  }
  if (strErrorRequest == 'MoveToTrash_success') {
    CompleteError('Registro movido para a lixeira com sucesso.', '', excError, strDescription);
  }
  if (strErrorRequest == 'Restore_success') {
    CompleteError('Registro restaurado com sucesso.', '', excError, strDescription);
  }
  if (strErrorRequest == 'Mail_success') {
    CompleteError('E-mail enviado com sucesso.', '', excError, strDescription);
  }
  if (strErrorRequest == 'Mail_error') {
    CompleteError('Ocorreu um erro ao tentar enviar o e-mail.', 'Acesse a página novamente e tente de novo.', excError, strDescription);
  }
}
// Função que adiciona um novo erro (com h2, p e code) dentro do divError.
// Também abre a janela de erro (elemento com ID = divError, teoricamente dentro do arquivo xxxError.ascx)
function CompleteError(strHeading, strText, excError, strDescription) {
  var divNewError = document.createElement('div');
  var h2Error = document.createElement('h2');
  h2Error.innerHTML = strHeading;
  var parError = document.createElement('p');
  parError.innerHTML = strText;
  divNewError.appendChild(h2Error);
  divNewError.appendChild(parError);
  // Verificamos se a variável usercontrol_param está definida porque a página de Logon (defalt.aspx) não puxa o usercontrol.js onde ela é definida.
  if (typeof(usercontrol_param) == 'undefined' || usercontrol_param == 'des') {
    if (excError) {
      var codError = document.createElement('code');
      codError.innerHTML = 'Error message: ' + excError.message;
	  divNewError.appendChild(codError);
	  var codError = document.createElement('code');
      codError.innerHTML = 'File Name: ' + excError.fileName;
	  divNewError.appendChild(codError);
	  var codError = document.createElement('code');
      codError.innerHTML = 'Line Number: ' + excError.lineNumber;
	  divNewError.appendChild(codError);
	  var codError = document.createElement('code');
      codError.innerHTML = 'Name: ' + excError.name;
	  divNewError.appendChild(codError);
	  var codError = document.createElement('code');
      codError.innerHTML = 'Number: ' + (excError.number & 0xFFFF);
	  divNewError.appendChild(codError);
	  var codError = document.createElement('code');
      codError.innerHTML = 'Stack: ' + excError.stack;
	  divNewError.appendChild(codError);
	}
	if (strDescription && strDescription != '') {
	  var codError = document.createElement('code');
      codError.innerHTML = 'Description: ' + strDescription;
	  divNewError.appendChild(codError);
	}
  }
  try {
    var divError = document.getElementById('divError');
    divError.style.display = 'block';
    if (typeof(usercontrol_param) == 'undefined' || usercontrol_param != 'des') {
      RemoveAllChild('divErrorMessage');
    }
	var divErrorMessage = document.getElementById('divErrorMessage');
    divErrorMessage.appendChild(divNewError);
  }
  catch(excError) {
	window.alert('Ocorreu um erro ao tentar mostrar o erro personalizado. Verificar se existe o divError na página. Detalhes: ' + excError.message);
  }
}
// Função para fechar a janela de erro (elemento com ID = divError, teoricamente dentro do arquivo xxxError.ascx).
function CloseError() {
  try {
    var divError = document.getElementById('divError');
	divError.style.display = 'none';
	RemoveAllChild('divErrorMessage');
  }
  catch(excError) {
	window.alert('Ocorreu um erro ao tentar fechar o erro personalizado. Verificar se existe o divError na página. Detalhes: ' + excError.message);
  }
}
