// ------------------------------------------------------
// Valida campo do tipo TEXT, PASSWORD, SELECT, TEXTAREA
// ------------------------------------------------------
function vazio(campo, mensagem)
{
	campo.style.backgroundColor = '';
	if (campo.value=="")
	{
		alert('O campo '+mensagem+' deve ser preenchido!');
		campo.style.backgroundColor = "red";
		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('Campo email invá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 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; 
	}
} 