//======================================
//Nome: GenJsValidateAlfaNumeric
//Linguagem: JScript
//Descrição: Essa função recebe uma string e valida sua máscara
//
//Autor: Equipe Biblioteca Marlin
//
//Data: 12/06/2002
//
//Parâmetros de entrada:
//	- pStrFormattedR	=> String de retorno
//	- pStrToValidate	=> String a ser validada
//	- pIntTamMin		=> Tamanho mínimo da string
//	- pIntTamMax		=> Tamanho máximo da string
//	- pIntUnderScore	=> Se o caracter underscore será aceito
//								0 - não é aceito
//								1 - é aceito
//	- 
//Retorno: Código de erro
//
//Informações adicionais:
//	+ Funções:
//		- FncIntVerifyIntParameter(pIntParameter, pIntDefValue)
//		-
//	+ Includes:
//		-
//	+ Objetos:
//		-
//	+ Stored Procedures:
//		-
//Historico Alteracao:
//	- 04/07/2002 Thyago Consort
//	-
//======================================
function GenJsValidateAlfaNumeric(pStrFormattedR, pStrToValidate, pIntTamMin, pIntTamMax, pIntUnderScore){
	var lObjRegExp;
	var lStrRegExp;
	var lStrFormatted;
	var p = new Array;

	lStrFormatted = pStrToValidate;

	lStrFormatted = lStrFormatted.replace(/^\s*/, '');
	lStrFormatted = lStrFormatted.replace(/\s*$/, '');
	
	pStrFormattedR[0] = pStrToValidate;
	
	//Verificando 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] = pIntUnderScore;
	if (!FncJsVerifyIntParameter(p,0)) {
 		return -11;
        }  
	pIntUnderScore = p[0];
	
	if (lStrFormatted == "") {
        if (pIntTamMin > 0) { 
			return -310;
        }
        return 0;
    }
	
	lStrRegExp = "^[(A-Z)(a-z)(0-9)";
	if (pIntUnderScore == 1){
		lStrRegExp = lStrRegExp + "_";
	}
	lStrRegExp = lStrRegExp + "]*$";
	
	lObjRegExp = new RegExp(lStrRegExp);
	if (!lObjRegExp.test(lStrFormatted)) {
		return -311;
	}
	
	pStrFormattedR[0] = lStrFormatted.replace("-",'');
	
	// Testa o tamanho
	if (lStrFormatted.length < pIntTamMin) { return -312; }
	if ((pIntTamMax > 0) && (lStrFormatted.length > pIntTamMax)) { return -313; }
	
	return 0;
}
