// JavaScript Document
function $(obj){
	return document.getElementById(obj);
}

var erro='';
function valida(campo,tamanho,funcao,mensagem){
	$(campo).style.borderColor='';
    if (funcao=='TM') {
	    if ($(campo).value.length<parseInt(tamanho)){
			erro=erro+'O campo '+mensagem+' deve conter no mínimo '+tamanho+' caracter(es)\n';
			$(campo).style.borderColor='red';
		}
	}
    if (funcao=='OPT') {
	    if ($(campo).value.length<parseInt(tamanho)){
			erro=erro+'O campo '+mensagem+' deve estar selecionado\n';
			$(campo).style.color='red';
		}
	}	
	else if (funcao=='DT') {
	    if (!is_date($(campo).value)) {
			erro=erro+mensagem+' é uma data inválida\n';	 
			$(campo).style.borderColor='red';
		}	
	}
	else if (funcao=='INT') {
	    if (!is_digit($(campo).value)) {
			erro=erro+mensagem+' não é um número válido\n';	 
			$(campo).style.borderColor='red';
		}	
	}
	else if (funcao=='NUM') {
	    if (!is_decimal($(campo).value)) {
			erro=erro+mensagem+' não é um número válido\n';	 
			$(campo).style.borderColor='red';
		}	
	}
	else if (funcao=='TIME') {
	    if (!is_time($(campo).value)) {
			erro=erro+mensagem+' não é um horário válido\n';	 
			$(campo).style.borderColor='red';
		}	
	}
	else if (funcao=='EMAIL') {
	    if (!is_email($(campo).value)) {
			erro=erro+mensagem+' não é um email válido\n';	 
			$(campo).style.borderColor='red';
		}	
	}
	else if (funcao=='CPF')	{
		if (!validacpf($(campo))) {
			erro=erro+mensagem+' Inválido\n';	 
			$(campo).style.borderColor='red';
		}	
	}
	else if (funcao=='CNPJ'){ 
		if (!validacnpj($(campo))){
			erro=erro+mensagem+' Inválido\n';
			$(campo).style.borderColor='red';
		}	
	}	
}

function is_date(pVal)
{
	if (pVal=='') return true;
	var reTipo = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
	return reTipo.test(pVal);
}
function is_digit(pVal)
{
	if (pVal=='') return true;
	var reTipo =  /^\d+$/;
	return reTipo.test(pVal);
}
function is_decimal(pVal)
{
	if (pVal=='') return true;
	var reTipo =  /^[+-]?((\d+|\d{1,3}(\,\d{3})+)(\.\d*)?|\.\d+)$/; 
//  var	reTipo = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;  //Validacao com Virgula
	return reTipo.test(pVal);
}
function is_time(pVal)
{
	if (pVal=='') return true;
	var reTipo =  /^([0-1]\d|2[0-3]):[0-5]\d$/;
	return reTipo.test(pVal);
}
function is_email(pVal)
{
	if (pVal=='') return true;
	var reTipo = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	return reTipo.test(pVal);
}

function validacpf(campo)
{ 
	var i; 
	s=campo.value;
//	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)
	{ 
		campo.select();
  		return false; 
	}
  	d1 = 11 - (d1 % 11); 
  	if (d1 > 9) d1 = 0; 
  		if (dv.charAt(0) != d1) 
  		{ 
			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) 
  		{ 
			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) 
	{ 
		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)) 
		{ 
			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)) 
		{ 
			campo.select();
			return false; 
		}
        return true; 
    } 
    else 
	{ 
		campo.select();
  		return false; 
	}
} 