//======================================
//Nome: GenJsValidateText
//Linguagem: JavaScript
//Descrição: Essa função recebe um texto e o valida respeitando os parâmetros passados
//
//Autor: Equipe Biblioteca Marlin
//
//Data: 12/06/2002
//
//Parâmetros de entrada:
//	- pStrFormattedR	=> Texto de retorno no formato YYYYMMDD
//	- pStrToValidate	=> Texto a ser validado
//	- pIntTamMin		=> Tamanho mínimo do campo
//	- pIntTamMax		=> Tamanho máximo do campo
//	- pIntTrim			=> Indica se é para retirar os espaços das extremidades do texto
//								1 - Retirar espaços da esquerda e direita
//								2 - Não retirar espaços das extremidades
//								3 - Retirar espaços da esquerda
//								4 - Retirar espaços da direita
//	- pIntCase			=> Indica se é para transformar o texto quanto ao caso sensitivo
//								1 - Mantêm texto original
//								2 - Transforma letras minúsculas em maiúsculas
//								3 - Transforma letras maiúsculas em minúsculas
//	- pIntPlic			=> Define o que fazer com o caracter aspas simples
//								1 - Elimina o caracter
//								2 - Ignora o caracter
//								3 - Mantêm o texto original mas retorna erro
//	- pIntQuote			=> Define o que fazer com o caracter aspas dupla
//								1 - Elimina o caracter
//								2 - Ignora o caracter
//								3 - Mantêm o texto original mas retorna erro
//	- 
//Retorno: Código de erro
//
//Informações adicionais:
//	+ Funções:
//		- FncJsVerifyIntParameter(pParam)
//		- GenJsReplace(pStrToReplace,pStrFind,pStrReplace)
//		-
//	+ Includes:
//		-
//	+ Objetos:
//		-
//	+ Stored Procedures:
//		-
//Historico Alteracao:
//	- 12/06/2002 Thyago Consort
//	-
//======================================
function GenJsValidateText (pStrFormattedR, pStrToValidate, pIntTamMin, pIntTamMax, pIntTrim, pIntCase, pIntPlic, pIntQuote) {
  var lStrFormatted;
  var p = new Array;

  pStrFormattedR[0] = pStrToValidate;

  lStrFormatted = pStrToValidate;
	

  // Verifica parâmetros de entrada e valores default
  p[0] = pIntTamMin;
  if (!FncJsVerifyIntParameter(p, 0)) { return -11; }
  pIntTamMin = p[0];
  p[0] = pIntTamMax;
  if (!FncJsVerifyIntParameter(p, 0)) { return -11; }
  pIntTamMax = p[0];
  p[0] = pIntTrim;
  if (!FncJsVerifyIntParameter(p, 2)) { return -11; }
  pIntTrim = p[0];
  p[0] = pIntCase;
  if (!FncJsVerifyIntParameter(p, 1)) { return -11; }
  pIntCase = p[0];
  p[0] = pIntPlic;
  if (!FncJsVerifyIntParameter(p, 2)) { return -11; }
  pIntPlic = p[0];
  p[0] = pIntQuote;
  if (!FncJsVerifyIntParameter(p, 2)) { return -11; }
  pIntQuote = p[0];

  // Testa Trim
  switch (pIntTrim) {
  case 1: // AllTrim
    lStrFormatted = lStrFormatted.replace(/^\s*/, '');
    lStrFormatted = lStrFormatted.replace(/\s*$/, '');
    break; 
  
  case 2: // No Trim
    break; 
	
  case 3: // LTrim
    lStrFormatted = lStrFormatted.replace(/^\s*/, '');
    break; 

  case 4: // RTrim
    lStrFormatted = lStrFormatted.replace(/\s*$/, '');
    break; 

  default: 
    return -11;
  }

  // Testa Case
  switch (pIntCase) {
  case 1: // NoCase
    break; 
  
  case 2: // UCase
    lStrFormatted = lStrFormatted.toUpperCase();	
    break; 
	
  case 3: // LCase
    lStrFormatted = lStrFormatted.toLowerCase();	
    break; 

  default: 
    return -11;
  }

  // Testa Plic
  switch (pIntPlic) {
  case 1: // Remove
    lStrFormatted = lStrFormatted.replace(/\'/g, "");
    break; 
  
  case 2: // Ignore
    break; 
	
  case 3: // Reject
    if (lStrFormatted.indexOf("'") != -1) { return -200; }
    break; 

  default: 
    return -11;
  }

  // Testa Aspas
  switch (pIntQuote) {
  case 1: // Remove
    lStrFormatted = lStrFormatted.replace(/\"/g, "");
    break;

  case 2: // Ignore
    break;
	
  case 3: // Reject
    if (lStrFormatted.indexOf('"') != -1) { return -201; }
    break;

  default:
    return -11;
  }


  // Testa o tamanho
  if (lStrFormatted.length < pIntTamMin) { return -202; }
  if ((pIntTamMax > 0) && (lStrFormatted.length > pIntTamMax)) { return -203; }

  pStrFormattedR[0] = lStrFormatted;

  return 0;
}