// #############################################
// ##### VALIDAÇÃO DE CAMPOS DO FORMULÁRIO #####
// #############################################

function emailValido(prmEmail){
	var regExp = /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/;
	return regExp.test(prmEmail);
}

function ValidaEmail(campo, txt) {
	//Valida Título
	if ((campo.value=="") || (campo.value.length==0) || (campo.value=="Null")) {
		alert('Você esqueceu de preencher o campo ' + txt);
		//alert('Você esqueceu de preencher o campo '+campo.name);
		campo.focus();
		return false;
	} else {
		if (!emailValido(campo.value)){
			alert('Informe um valor válido para o campo ' + txt);
			campo.focus();
			return false;
		} else {
			return true;
		}
	}
}

function ValidaNumero(campo,txt) {
	//Valida campos inteiros
	if (campo.value=="") {
		alert('Você esqueceu de preencher o campo ' + txt);
		//alert('Você esqueceu de preencher o campo '+campo.name);
		campo.focus();
		return false;
	} else {
		if (!isnumer(campo.value)){
			alert('Informe um valor válido para o campo' + txt);
			campo.focus();
			return false;
		} else {
			return true;
		}
	}
}

function ValidaVazio(campo,txt) {
	//Valida Título
	if ((campo.value=="") || (campo.value.length==0) || (campo.value=="Null")) {
		alert('Você esqueceu de preencher o campo ' + txt);
		//alert('Você esqueceu de preencher o campo '+campo.name);
		campo.focus();
		return false;
	} else return true;
}

//Valida Combo box
function ValidaComboBox(campo,txt) {
	if ((campo[campo.selectedIndex].value == "") || (campo[campo.selectedIndex].value == "0"))  {
		alert('Você esqueceu de selecionar o campo ' + txt);
			campo.focus();
		return false;	
		} else return true;
}

function ValidaMax(campo,txt,limite) {
	//Valida Título
	if (campo.value.length > limite) {
		alert('Você excedeu o tamanho de ' + limite + ' do campo ' + txt);
		//alert('Você excedeu o tamanho do campo '+campo.name);
		campo.focus();
		return false;
	} else return true;
}

/* ####### Função para verificação de selects em formulários */
function ValidaSelect(elemento, texto, tipo) {
// o Tipo define o que é esperado
	if (elemento.value == "0"){
		alert("Informe "+ texto);
		elemento.focus();
		return false;
	}
  return true;
}


function isnumer(numero){
//Função para verificar se o um valor digitado é número ou não
	var i;
	var letra = 0; //integer para verificar quantas letras achou
	for (i = 0; i < numero.length; i++) {   
	        var ch = numero.charAt(i);
	        if ((ch < "0" || ch > "9")) {
				letra = letra + 1;
	        }
		}
		if (letra == 0 ) {
			return(true);
		}else {
			return(false);
		}
}
//Testa se pelo menos um checkbox ou radio foi selecionado
function testaCheck(campo, mensagem){
	var conta = 0;
	if (typeof(campo.length)!="undefined"){
		for (var i=0; i<campo.length; i++) {
			if (campo[i].checked) {
				if (campo[i].value != '') {conta++}
			}
		}
	}else{
		if (campo.checked) {conta++;}
	}
	if (conta == 0) {
		alert(mensagem);
		return false;		
	} else {
		return true;
	}
}


// #############################
// ##### VALIDAÇÃO DE DATA #####
// #############################
var diasMes = new Array(12);
diasMes[1] = 31;
diasMes[2] = 29;
diasMes[3] = 31;
diasMes[4] = 30;
diasMes[5] = 31;
diasMes[6] = 30;
diasMes[7] = 31;
diasMes[8] = 31;
diasMes[9] = 30;
diasMes[10] = 31;
diasMes[11] = 30;
diasMes[12] = 31;

function diasFevereiro (ano) {  
    return ( ((ano % 4 == 0) && ( (!(ano % 100 == 0)) || (ano % 400 == 0) ) ) ? 29 : 28 );
}

function dataValida(data) {
  var i;  
  if ((barra1 = data.value.indexOf('/')) < 1) {
	data.focus();
	alert('Data inválida');
  	return false;
  }
  if ((barra2 = data.value.substring(barra1+1, data.value.length).indexOf('/')) < 1) {
	data.focus();
	alert('Data inválida');
  	return false;
  }
  if (barra2+barra1+1 != data.value.lastIndexOf('/')) {
	data.focus();
	alert('Data inválida');
  	return false;
  }
  dia = data.value.substring(0,barra1);
  mes = data.value.substring(barra1+1, barra2+barra1+1);
  ano = data.value.substring(barra2+barra1+2, data.value.length);
  var dataTemp = dia + mes + ano;
  for (i = 0; i < dataTemp.length; i++) {   
        var ch = dataTemp.charAt(i);
        if ((ch < "0" || ch > "9")) {
			data.focus();
			alert('Data inválida');
		  	return false;
		}
  }
  if ((mes == 2) && (dia > diasFevereiro(ano))) {
	data.focus();
	alert('Data inválida');
  	return false;
  }
  if ((dia>diasMes[parseFloat(mes)]) || (dia<1) || (mes<1) || (mes>12) || (ano<1900) || (ano>2078)) {
	data.focus();
	alert('Data inválida');
  	return false;
  }
  return true;
}



netscape = "";
ver = navigator.appVersion; len = ver.length;
for(iln = 0; iln < len; iln++) if (ver.charAt(iln) == "(") break;
netscape = (ver.charAt(iln+1).toUpperCase() != "C");

function FormataCampo(campo, mascara) { 
	var Texto,OldValue,j
	
	Texto = '';
	OldValue = campo.value;
	
	OldValue = RemoveMascara(OldValue);
	
	// Determina quando é Netscape ou Internet Explorer
	k = (netscape) ? DnEvents.which : window.event.keyCode;
				
	if (mascara.length == OldValue.length  ||  ((k < 48) || (k > 57)) ) {
		if (netscape) 
			DnEvents.which = 0 ;
		else
			window.event.keyCode = 0;
		return;	
	}
	
	campo.value = "";
	Texto = "";
	j = -1;
	
	for(var i=0; i < mascara.length;i++) {
			if (mascara.substr(i,1) != '#' &&
			   mascara.substr(i,1) != 'd' &&
			   mascara.substr(i,1) != 'M' &&
			   mascara.substr(i,1) != 'y' &&
			   Texto.length == mascara.substr(0,i).length ) {
					Texto = Texto + mascara.substr(i,1);
				}	
			else {
				j++;
				Texto = Texto + OldValue.substr(j,1);
			}
				
			
	}
	campo.value = Texto;

}
				
function RemoveMascara(Texto){
var j,Car

j = 0;
//
//Remove caracteres especiais da mascara
//
while (j < Texto.length) {
	Car = Texto.substr(j,1)
	if (Car >= 0 && Car <= 9) {
	   j++;
	}
	else {
		Texto = Texto.replace(Car, "" );
	}
}

return Texto;
}
