// ------------------------------------------------------
// Valida campo do tipo TEXT, PASSWORD, SELECT, TEXTAREA
// ------------------------------------------------------
function vazio(campo, mensagem)
{
	
	campo.style.backgroundColor = '';
	if (campo.value=='' || campo.value==0)
	{
		alert('O campo '+mensagem+' deve ser preenchido!');
		campo.style.backgroundColor = "#FFFF99";
		campo.focus();
		return true;
	}
	return false;
}
// ------------------------------------------------------
// Valida campo do tipo RADIO
// ------------------------------------------------------
function vazio_radio(campo, mensagem)
{
	for (i=0; i<campo.length; i++)
		if (campo[i].checked)
			return false;
	alert('O campo '+mensagem+' deve ser preenchido');
	return true;
}
// ------------------------------------------------------
function valida_email(campo)
{
	posarr = campo.value.indexOf("@");
	pospon = campo.value.indexOf(".");
	if (posarr<1 || pospon<0 || Math.abs(pospon-posarr)==1)
	{
		alert('Por Favor Digite um EMail Válido!');
		campo.select();
		return false;
	}
	return true;
}

// ------------------------------------------------------
function show()
{
	if (window.event.srcElement.tagName=="INPUT" ||
		window.event.srcElement.tagName=="SELECT" ||
		window.event.srcElement.tagName=="TEXTAREA")
		window.event.srcElement.style.backgroundColor = "#D2D2D2";
}
// ------------------------------------------------------
function hide()
{
	if (window.event.srcElement.tagName=="INPUT" ||
		window.event.srcElement.tagName=="SELECT" ||
		window.event.srcElement.tagName=="TEXTAREA")
		window.event.srcElement.style.backgroundColor = "";
}

// JavaScript Document
/*** 
* Descrição.: formata um campo do formulário de 
* acordo com a máscara informada... 
* Parâmetros: - objForm (o Objeto Form) 
* - strField (string contendo o nome do textbox) 
* - sMask (mascara que define o formato que o dado será apresentado, 
* 		usando o algarismo "9" para definir números e o símbolo "!" para 
* 		qualquer caracter... 
* - evtKeyPress (evento) 
* Uso.......: <input type="textbox" name="xxx"..... 
* onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);"> 
* Observação: As máscaras podem ser representadas como os exemplos abaixo: 
* CEP -> 99.999-999 
* CPF -> 999.999.999-99 
* CNPJ -> 99.999.999/9999-99 
* Data -> 99/99/9999 
* Tel Resid -> (99) 999-9999 
* Tel Cel -> (99) 9999-9999 
* Processo -> 99.999999999/999-99 
* C/C -> 999999-! 
***/
function mask(objForm, strField, sMask, evtKeyPress)
{
	var i, nCount, sValue, fldLen, mskLen, bolMask, sCod, nTecla;
	
	if(document.all) // Internet Explorer
		nTecla = evtKeyPress.keyCode;
	else if(document.layers) // Nestcape
		nTecla = evtKeyPress.which;
	
	sValue = limpa_mask(objForm[strField]);
	
	fldLen = sValue.length;
	mskLen = sMask.length;
	
	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;
	
	while (i <= mskLen)
	{
		bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
	
		if (bolMask)
		{
			sCod += sMask.charAt(i);
			mskLen++;
		}
		else
		{
			sCod += sValue.charAt(nCount);
			nCount++;
		}
		i++;
	}
	
	objForm[strField].value = sCod;
	
	if (nTecla != 8) // backspace
		if (sMask.charAt(i-1) == "9") // apenas números...
			return ((nTecla > 47) && (nTecla < 58));// números de 0 a 9
	return true;
}
// Fim da Função Máscaras Gerais

function mask2(objField, sMask, evtKeyPress)
{
	var i, nCount, sValue, fldLen, mskLen, bolMask, sCod, nTecla;
	
	if(document.all) // Internet Explorer
		nTecla = evtKeyPress.keyCode;
	else if(document.layers) // Nestcape
		nTecla = evtKeyPress.which;
	
	sValue = limpa_mask(objField);
	
	fldLen = sValue.length;
	mskLen = sMask.length;
	
	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;
	
	while (i <= mskLen)
	{
		bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
	
		if (bolMask)
		{
			sCod += sMask.charAt(i);
			mskLen++;
		}
		else
		{
			sCod += sValue.charAt(nCount);
			nCount++;
		}
		i++;
	}
	
	objField.value = sCod;
	
	if (nTecla != 8) // backspace
		if (sMask.charAt(i-1) == "9") // apenas números...
			return ((nTecla > 47) && (nTecla < 58));// números de 0 a 9
	return true;
}
// Fim da Função Máscaras Gerais

// ------------------------------------------------------------
function limpa_mask(campo)
{
	sValue = campo.value;
	while (sValue.indexOf('-')>=0)
		sValue = sValue.toString().replace( "-", "" );
	while (sValue.indexOf('.')>=0)
		sValue = sValue.toString().replace( ".", "" );
	while (sValue.indexOf('/')>=0)
		sValue = sValue.toString().replace( "/", "" );
	while (sValue.indexOf('(')>=0)
		sValue = sValue.toString().replace( "(", "" );
	while (sValue.indexOf(')')>=0)
		sValue = sValue.toString().replace( ")", "" );
	while (sValue.indexOf(' ')>=0)
		sValue = sValue.toString().replace( " ", "" );
	return sValue;
}

// ------------------------------------------------------------
function validacpf(campo)
{ 
	var i; 
	s = limpa_mask(campo);
	if (s.length==0)
		return true;
 	var c = s.substr(0,9); 
  	var dv = s.substr(9,2); 
  	var d1 = 0; 
  	for (i = 0; i < 9; i++) 
  		d1 += c.charAt(i)*(10-i); 
	if (d1 == 0)
	{ 
  		alert("CPF Invalido");
		campo.select();
  		return false; 
	}
  	d1 = 11 - (d1 % 11); 
  	if (d1 > 9) d1 = 0; 
  		if (dv.charAt(0) != d1) 
  		{ 
  			alert("CPF Invalido") 
			campo.select();
  			return false; 
  		} 
  	d1 *= 2; 
  	for (i = 0; i < 9; i++) 
  		d1 += c.charAt(i)*(11-i); 
	d1 = 11 - (d1 % 11); 
  	if (d1 > 9) d1 = 0; 
  		if (dv.charAt(1) != d1) 
  		{ 
  			alert("CPF Invalido") 
			campo.select();
			return false; 
		} 
  	return true; 
} 

// ------------------------------------------------------------
function validacnpj(campo) 
{ 
	var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais; 
    digitos_iguais = 1;
	cnpj = limpa_mask(campo);
    if (cnpj.length < 14 && cnpj.length < 15) 
	{ 
  		alert("CNPJ Invalido");
		campo.select();
  		return false; 
	}
    for (i = 0; i < cnpj.length - 1; i++) 
    	if (cnpj.charAt(i) != cnpj.charAt(i + 1)) 
        { 
         	digitos_iguais = 0; 
            break; 
        } 
    if (!digitos_iguais) 
    { 
		tamanho = cnpj.length - 2 
		numeros = cnpj.substring(0,tamanho); 
		digitos = cnpj.substring(tamanho); 
		soma = 0; 
		pos = tamanho - 7; 
		for (i = tamanho; i >= 1; i--) 
		{ 
			soma += numeros.charAt(tamanho - i) * pos--; 
			if (pos < 2) 
				pos = 9; 
		} 
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; 
		if (resultado != digitos.charAt(0)) 
		{ 
			alert("CNPJ Invalido");
			campo.select();
			return false; 
		}
		tamanho = tamanho + 1; 
		numeros = cnpj.substring(0,tamanho); 
		soma = 0; 
		pos = tamanho - 7; 
		for (i = tamanho; i >= 1; i--) 
		{ 
		  soma += numeros.charAt(tamanho - i) * pos--; 
		  if (pos < 2) 
				pos = 9; 
		} 
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; 
        if (resultado != digitos.charAt(1)) 
		{ 
			alert("CNPJ Invalido");
			campo.select();
			return false; 
		}
        return true; 
    } 
    else 
	{ 
  		alert("CNPJ Invalido");
		campo.select();
  		return false; 
	}
} 

//------------------------------------
// CONVERTE EDIT PARA MAIUSCULA
//------------------------------------
function maiuscula(obj){
 	with (obj){
		value = value.toUpperCase(); 
	}
 }

//------------------------------------
// CONVERTE EDIT PARA MINUSCULA
//------------------------------------
function minuscula(obj){
 	obj.value = obj.value.toLowerCase(); 
 }
 
//------------------------------------
// FORMATAR MOEDA
//------------------------------------
 
function Limpar(valor, validos) {
// retira caracteres invalidos da string
var result = "";
var aux;
for (var i=0; i < valor.length; i++) {
aux = validos.indexOf(valor.substring(i, i+1));
if (aux>=0) {
result += aux;
}
}
return result;
}

//Formata número tipo moeda usando o evento onKeyDown

function Formata(campo,tammax,teclapres,decimal) {
var tecla = teclapres.keyCode;
vr = Limpar(campo.value,"0123456789");
tam = vr.length;
dec=decimal

if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

if (tecla == 8 )
{ tam = tam - 1 ; }

if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
{

if ( tam <= dec )
{ campo.value = vr ; }

if ( (tam > dec) && (tam <= 5) ){
campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam ) ; }
if ( (tam >= 6) && (tam <= 8) ){
campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; 
}
if ( (tam >= 9) && (tam <= 11) ){
campo.value = vr.substr( 0, tam - 8 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; }
if ( (tam >= 12) && (tam <= 14) ){
campo.value = vr.substr( 0, tam - 11 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; }
if ( (tam >= 15) && (tam <= 17) ){
campo.value = vr.substr( 0, tam - 14 ) + "." + vr.substr( tam - 14, 3 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - 2, tam ) ;}
} 

}