//verifica se o usuário digitou o cpf e a senha
function Checar() {
	var cpf = document.login.cpf.value;
	var senha = document.login.senha.value;

	if (cpf == "" || senha == "") {
		alert("CPF ou Senha incorretos");
	}
	else {
		parent.document.location.href ="oportunidade_estrutura_logado.html";
	}
}



//Verifica se o texto digitado possui somente somente números

	//função que verifica se o CGC está correto
	function checaCGC (CGC) {
		mult1 = "543298765432";
	 	mult2 = "6543298765432";
		num1 = 0;
		num2 = 0;
		dig1 = 0;
		dig2 = 0;

		for (var x = 0; x <= 12; x++) {
			num1 = CGC.charAt(x);
			num2 = mult1.charAt(x);
			num1 *= num2;
			dig1 += num1;
		}
		for (var X = 0; X <=13; X++) {
			num1 = CGC.charAt(X);
			num2 = mult2.charAt(X);
			num1 *= num2;
			dig2 += num1;
		}
		dig1 *= 10; 
		dig1 %= 11;
		dig2 *= 10;
		dig2 %= 11;
		if (dig1 == 10) 
			dig1 = 0;
		if (dig2 == 10) 
			dig2 = 0;
		var ret = true;
		if (dig1 != CGC.charAt(12)) { 
			ret = false;
			}
		if (dig2 != CGC.charAt(13)) { 
			ret = false;
			}
		return ret;
	}
	
	//função que verifica se o CPF está correto
	function checaCPF (CPF) {
		if (CPF.length != 11 || CPF == "00000000000" || CPF == "11111111111" ||
			CPF == "22222222222" ||	CPF == "33333333333" || CPF == "44444444444" ||
			CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" ||
			CPF == "88888888888" || CPF == "99999999999")
			return false;
		soma = 0;
		for (i=0; i < 9; i ++)
			soma += parseInt(CPF.charAt(i)) * (10 - i);
		resto = 11 - (soma % 11);
		if (resto == 10 || resto == 11)
			resto = 0;
		if (resto != parseInt(CPF.charAt(9)))
			return false;
		soma = 0;
		for (i = 0; i < 10; i ++)
			soma += parseInt(CPF.charAt(i)) * (11 - i);
		resto = 11 - (soma % 11);
		if (resto == 10 || resto == 11)
			resto = 0;
		if (resto != parseInt(CPF.charAt(10)))
			return false;
		return true;
	}


function validaCurriculo(txt)	
{
	var fim = txt.length;
	if (fim > 0) {
		var inicio = txt.indexOf('.',fim-5) + 1;				
		if (inicio > 0) {
			var extensao = txt.substring(inicio,fim).toLowerCase();
			if (extensao=="doc" || 
				extensao=="dot" || 
				extensao=="eml" || 
				extensao=="txt" || 
				extensao=="html" || 
				extensao=="htm" || 
				extensao=="wbk" || 
				extensao=="xls" || 
				extensao=="ppt" ||
				extensao=="pps" ||					
				extensao=="xml" ||					
				extensao=="pdf" ||										
				extensao=="rtf")								
			{
				return true;
			}
		}
	}
	return false;
}	



function somenteNumeros(txt) {
	res=true
	tmp=String(txt).toUpperCase()
	for (i = 0; i < tmp.length && res; i++) {
		ch=tmp.charAt(i)
		if (!(ch>="0" && ch<="9")) {
			res=false
		}
	}
	return res
}

//Função que retorna se uma data está no formato dd/mm/yyyy e é válida
function validaData(data) {
	var temp = String(data);
	if (temp.length != 10) return false;		
	if (temp.charAt(2)!="/" || temp.charAt(5)!="/") return false
		
	//Pega o dia		
	var dia
	if (temp.substr(0, 2)=="08" || temp.substr(0, 2)=="09")
		dia = parseInt(temp.substr(1, 1));
	else
		dia = parseInt(temp.substr(0, 2));

	//pega o mes
	var mes
	if (temp.substr(3, 2)=="08" || temp.substr(3, 2)=="09")
		mes = parseInt(temp.substr(4, 1));
	else
		mes = parseInt(temp.substr(3, 2));
		
	//pega o ano
	var ano = parseInt(temp.substr(6, 4));

	if (ano < 1900) return false;
	if (mes < 1 || mes > 12) return false;
	if (dia < 1) return false;

	if (mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) {
		//meses com 31 dias
		return dia <= 31;
	} else {
		if (mes==4 || mes==6 || mes==9 || mes==11) {
			//meses com 30 dias
			return dia <= 30 && dia >=1;
		} else {
			//fevereiro				
			if (ano%4==0) {					
				//ano bissexto
				return dia <= 29 && dia >=1;
			} else {
				//ano normal
				return dia <= 28 && dia >=1;				
			}
		}
	}
}	



function Validacao() {

	//Determina se a validação é válida ou não.
	var blnValido = true;
		
	//Objeto de focus;
	var objFocus = null;
	
	//Controle de erro
	var strErro = '';
	var blnErro = false;
	
	this.tipoSaida = 'A'; //"A" ou "E"
	
	this.estiloSaida = 'Erro';
	
	this.valida = function (pObj, pTitulo, pNulo, pTipo, pTamanhoInferior, pTamanhoSuperior, pStrIgual, pStrDiferente, pStrContem, pStrNaoContem) {

		var objCampo;
		var strTitulo = '';
		var blnNulo;
		var strTipo = '';
		var intTamanhoInferior;
		var intTamanhoSuperior;
		var strIgual = '';
		var strDiferente = '';
		var strTipoValidacao = '';		
		var strContem = pStrContem;
		var strNaoContem = pStrNaoContem;
		
		objCampo = pObj;
		if(pTitulo!=null) {strTitulo = pTitulo.toUpperCase();}
		if(pTipo!=null) {strTipo = pTipo.toUpperCase();}
		blnNulo = pNulo
		intTamanhoInferior = pTamanhoInferior;
		intTamanhoSuperior = pTamanhoSuperior;
		strIgual = pStrIgual;				
		strDiferente = pStrDiferente;		
		
		//Não pode ser nulo
		if(!blnNulo) {
			if(objCampo.value=='') {
				strErro+= "O campo \'" + strTitulo + "\' é de preenchimento obrigatório.\n";
				blnErro = true;
				if(objFocus==null) {objFocus = objCampo};
				}
		}
		//if(blnNulo){
		//if (objCampo.value==''){return true}
			//	}
		//Tipo
		//if(!objCampo.value==''){
		switch(strTipo) {
			case 'INT':
				if(!somenteNumeros(objCampo.value)) {
					strErro+= "O campo \'" + strTitulo + "\' deve conter somente números.\n";
					blnErro = true;
					if(objFocus==null) {objFocus = objCampo};
				}
				break;
				
			case 'DATA':
				if(objCampo.value!="") {
					if(!validaData(objCampo.value)) {
						strErro+= "O campo \'" + strTitulo + "\' não é uma data válida.\n";
						blnErro = true;
						if(objFocus==null) {objFocus = objCampo};					
					}
				}
				break;	
		}
		//}
		//Tamanho - Abragencia
		//-limite inferior
		if((intTamanhoInferior != 0 ||  intTamanhoInferior != '')&& somenteNumeros(intTamanhoSuperior)) {
			switch(strTipo) {
				case 'INT':
					if(objCampo.value < intTamanhoInferior) {
						strErro+= "O campo \'" + strTitulo + "\' deve ter valor maior ou igual à  " + intTamanhoInferior +  ".\n";
						blnErro = true;					
						if(objFocus==null) {objFocus = objCampo};						
					}						
				break;
				case 'STR':
					if(objCampo.value.length < intTamanhoInferior) {
						strErro+= "O campo \'" + strTitulo + "\' deve ter, no mínimo, " + intTamanhoInferior +  " caracteres.\n";
						blnErro = true;					
						if(objFocus==null) {objFocus = objCampo};						
					}		
				break;				
			} 
		}


		//-limite superior
		if((intTamanhoSuperior != 0 || intTamanhoSuperior != '') && somenteNumeros(intTamanhoSuperior)) {
		
			switch(strTipo) {
				case 'INT':
					if(objCampo.value > intTamanhoSuperior) {
						strErro+= "O campo \'" + strTitulo + "\' deve ter valor menor ou igual à " + intTamanhoSuperior +  ".\n";
						blnErro = true;					
						if(objFocus==null) {objFocus = objCampo};						
					}				 
					break;
				case 'STR':
					if(objCampo.value.length > intTamanhoSuperior) {
						strErro+= "O campo \'" + strTitulo + "\' deve ter, no máximo, " + intTamanhoSuperior +  " caracteres.\n";
						blnErro = true;					
						if(objFocus==null) {objFocus = objCampo};						
					}				 				
				break;
			}
		}

		//Igual
		if(strIgual!='' && strIgual!=null) {
			if(objCampo.value != strIgual) {
				strErro+= "O campo \'" + strTitulo + "\' não possui um valor válido.\n";
				blnErro = true;									
				if(objFocus==null) {objFocus = objCampo};				
			}		
		}

		//Diferente
		if(strDiferente !='' && strDiferente!=null) {
			if(objCampo.value == strDiferente) {
				strErro+= "O campo \'" + strTitulo + "\' não possui um valor válido.\n";
				blnErro = true;									
				if(objFocus==null) {objFocus = objCampo};				
			}
		}		
		
		//Contem
		if(strContem!='' && strContem!=null) {
			if(objCampo.value.indexOf(strContem)<0) {
				strErro+= "O campo \'" + strTitulo + "\' não é válido, pois não possui o caracter '" + strContem + "'.\n";
				blnErro = true;									
				if(objFocus==null) {objFocus = objCampo};								
			}
		}

		//Não Contem
		if(strNaoContem!='' && strNaoContem!=null) {
			if(objCampo.value.indexOf(strNaoContem)>=0) {
				strErro+= "O campo \'" + strTitulo + "\' não é válido, pois possui o caracter '" + strNaoContem + "'.\n";
				blnErro = true;									
				if(objFocus==null) {objFocus = objCampo};								
			}
		}
		

	} 

	this.consolida = function() {
	
		if(!blnValido) {
			alert("Os parâmetros para construção da validação estão incorretos.")
			return;
		}	
	
		if(blnErro) {
			if(this.tipoSaida=='A')
				alert(strErro);
			else if (this.tipoSaida=='E'){
				objOut.innerHTML = strErro;
			}
			if(objFocus!=null) {objFocus.focus();}
			
			return false;
		}
		else {
			return true;
		}
	}
}

