<!--

// Bramidia Soluções Internet ::::::::::::::::::::::::::::::::::
// :::::::::::::::::::::::::::::::::::Utilize este arquivo para:
// ::  1 - Campos preenchidos                                 ::
// ::  2 - Campos numéricos                                   ::
// ::  3 - Montar datas de vários campos                      ::
// ::  4 - Validar duas senhas                                ::
// ::  5 - Checar Email                                       ::
// ::  6 - Limpar string para Cpf ou Cnpj                     ::
// ::  7 - Checar Cpf                                         ::
// ::  8 - Checar Cnpj                                        ::
// ::  9- Valida campos tipo SELECT                           ::
// ::  10 - Envio de Formulário                               ::
// ::  11- Carregar valores default p/ parametros de módulos  ::
// ::  12- Carregar valores default p/ em checkbox p/módulos  ::
// ::  13- Abrir barra de preload para componente ABC         ::
// :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::



// Para utilizar a função enviarForm deste arquivo
// copie para a página principal todos os arrays abaixo:
// Preencha com valores apenas os arrays que serão utilizados
//
//	camposTexto = new Array()
//	camposTextoD = new Array()
//	camposNumero = new Array()
//	camposNumeroD = new Array()
//	camposSenha = new Array()
//	camposSenhaD = new Array()
//	camposData = new Array()
//	camposDataD = new Array()
//	camposEmail = new Array()
//	camposEmailD = new Array()
//	camposCpf = new Array()
//	camposCpfD = new Array()
//	camposCnpj = new Array()
//	camposCnpjD = new Array()
//	camposSelect = new Array()
//	camposSelectD = new Array()




// 1
// Funçao para checar se os campos estão preenchidos
// funciona com o Array camposTexto e camposTextoD
// Necessita como parâmetro de um objeto de formulário
function textopreenchido(f1__){
	// Validando campos de texto (em branco)
	var valor__;
	var campo__;
	var campoD__;
	for(i__=0;i__<camposTexto.length;i__++){
		valor__ = "";
		campo__ = camposTexto[i__];
		campoD__ = camposTextoD[i__];
		valor__ = eval("f1__."+campo__+".value");
		if(valor__ == ""){
			alert("Por favor preencha o campo '" + campoD__ + "'!");
			eval("f1__."+campo__+".focus()");
			return false;
		}
	}
	return true;
}


// 2
// Funçao para checar se os campos contém números válidos
// funciona com o Array camposNumero e camposNumeroD
// Necessita como parâmetro de um objeto de formulário
function verificarNumero(f1__){
	// Validando numericos
	var valor__;
	var campo__;
	var campoD__;
	var valorChr__;
	for(i__=0;i__<camposNumero.length;i__++){
		valor__ = "";
		campo__ = camposNumero[i__];
		campoD__ = camposNumeroD[i__];
		valor__ = eval("f1__."+campo__+".value");
		for(j__=0;j__<valor__.length;j__++){
			valorChr__ = valor__.charAt(j__);
			if(valorChr__ != "." && valorChr__ != "," && valorChr__ != "-" && valorChr__ != "+"){
				if(valorChr__ > "9" || valorChr__ < "0"){
					alert("O conteúdo do campo '" + campoD__ + "' não é um número válido!");
					eval("f1__."+campo__+".focus()");
					return false;
				}
			}
		}
	}
	return true;
}



// 3
// Função para remontar uma data e checar sua validade
// Nota o valor validado é repassado para o campo de data principal
// que será enviado para o ASP.
// funciona com o Array camposData e camposDataD
// Necessita como parâmetro de um objeto de formulário
function montarData(f1__){
	var dia__;
	var mes__;
	var dia__;
	var campo__;
	var campoD__;
	var valorChr__;
	for(i__=0;i__<camposData.length;i__++){
		// Checando o valor dia
		campo__ = camposData[i__]+"1";
		campoD__ = camposData[i__]
		dia__ = eval("f1__."+campo__+".value");
		if(dia__ == ""){
			alert("O conteúdo do campo '" + campoD__ + "' não é uma data válida!");
			eval("f1__."+campo__+".focus()");
			return false;
		}
		for(j__=0;j__<dia__.length;j__++){
			valorChr__ = dia__.charAt(j__);
			if(valorChr__ > "9" || valorChr__ < "0"){
				alert("O conteúdo do campo '" + campoD__ + "' não é uma data válida!");
				eval("f1__."+campo__+".focus()");
				return false;
			}
		}
		if (dia__ > 31){
			alert("O conteúdo do campo '" + campoD__ + "' não é uma data válida!");
			eval("f1__."+campo__+".focus()");
			return false;
		}

		
		// Checando o valor Mês
			campo__ = camposData[i__]+"2";
			campoD__ = camposData[i__]
			mes__ = eval("f1__."+campo__+".value");
			if(mes__ == ""){
				alert("O conteúdo do campo '" + campoD__ + "' não é uma data válida!");
				eval("f1__."+campo__+".focus()");
				return false;
			}
			for(j__=0;j__<mes__.length;j__++){
				valorChr__ = mes__.charAt(j__);
				if(valorChr__ > "9" || valorChr__ < "0"){
					alert("O conteúdo do campo '" + campoD__ + "' não é uma data válida!");
					eval("f1__."+campo__+".focus()");
					return false;
				}
			}

			if(mes__ > 12){
				alert("O conteúdo do campo '" + campoD__ + "' não é uma data válida!");
				eval("f1__."+campo__+".focus()");
				return false;
			}

			// Checando o valor Ano
			campo__ = camposData[i__]+"3";
			campoD__ = camposData[i__]
			ano__ = eval("f1__."+campo__+".value");
			if(mes__ == ""){
				alert("O conteúdo do campo '" + campoD__ + "' não é uma data válida!");
				eval("f1__."+campo__+".focus()");
				return false;
			}
			if(ano__.length < 4){
				alert("Utilize quatro dígitos no campo '" + campoD__ + "'!");
				eval("f1__."+campo__+".focus()");
				return false;
			}
			for(j__=0;j__<ano__.length;j__++){
				valorChr__ = ano__.charAt(j__);
				if(valorChr__ > "9" || valorChr__ < "0"){
					alert("O conteúdo do campo '" + campoD__ + "' não é uma data válida!");
					eval("f1__."+campo__+".focus()");
					return false;
				}
			}

			// Montando a data
			eval("f1__."+camposData[i__]+".value = '"+ dia__ + "/" + mes__ + "/" + ano__ + "'");
		}
	return true
}


// 4
// Funçao para checar senha de confirmação
// funciona com o Array camposSenha e camposSenhaD
// Necessita como parâmetro de um objeto de formulário
function verificarSenha(f1__){
	var valor__;
	var valorC__;
	var campo__;
	var campoD__;
	for(i__=0;i__<camposSenha.length;i__++){
		campo__ = camposSenha[i__];
		campoD__ = camposSenhaD[i__];
		valor__ = eval("f1__."+campo__+".value");
		valorC__ = eval("f1__."+campo__+"C.value");
		if(valor__ == ""){
			alert("Senha inválida!");
			eval("f1__."+campo__+".focus()");
			return false;
		}
		if(valor__ != valorC__){
			alert("As senhas não conferem!");
			eval("f1__."+campo__+".focus()");
			return false;
		}
	}
	return true;
}



// 5
// Funçao para checar a validade do email
// funciona com o Array camposEmail e camposEmailD
// Necessita como parâmetro de um objeto de formulário
function verificarEmail(f1__){
	var valor__;
	var valorC__;
	var campo__;
	var campoD__;
	for(i__=0;i__<camposEmail.length;i__++){
		campo__ = camposEmail[i__];
		campoD__ = camposEmailD[i__];
		valor__ = eval("f1__."+campo__+".value");
		naopode__ = "/^\([\]?\)*\([\!#%&(){}[]´~']?\)*(\\)$/";
        if (valor__ == ""){
				alert("O conteúdo do campo '" + campoD__ + "' não é um email válido!");
				eval("f1__."+campo__+".focus()");
				return false
        }
        for(i=0;i<naopode__.length;i++){
                letraruim__ = naopode__.charAt(i)
                if (valor__.indexOf(letraruim__,0)>-1){
				alert("O conteúdo do campo '" + campoD__ + "' não é um email válido!");
				eval("f1__."+campo__+".focus()");
						return false
                }
        }
        if (valor__.indexOf("@",1)<1){
				alert("O conteúdo do campo '" + campoD__ + "' não é um email válido!");
				eval("f1__."+campo__+".focus()");
				return false
        }
	}
	return true;
}


// 6
function limpa_string(SLimpa__){
	// Deixa so' os digitos no numero
	var DigitosLimpa__ = "0123456789";
	var tempLimpa__ = "";
	var digitoLimpa__ = "";

	for (var iLimpa__=0; iLimpa__<SLimpa__.length; iLimpa__++)	{
		digitoLimpa__ = SLimpa__.charAt(iLimpa__);
		if (DigitosLimpa__.indexOf(digitoLimpa__)>=0)	{
			tempLimpa__=tempLimpa__+digitoLimpa__	}
	} //for

	return tempLimpa__
}



// 7
function verificarCpf(f1__)	{
	var campo__;
	var campoD__;
	for(i__=0;i__<camposCpf.length;i__++){
		campo__ = camposCpf[i__];
		campoD__ = camposCpfD[i__];
		var i__;
		s__ = eval("f1__."+campo__+".value");
		s__ = limpa_string(s__);
		var c__ = s__.substr(0,9);
		var dv__ = s__.substr(9,2);
		var d1__ = 0;
		for (ij__ = 0; ij__ < 9; ij__++){
			d1__ += c__.charAt(ij__)*(10-ij__);
		}
		if (d1__ == 0){
			alert(campoD__ + " inválido!");
			eval("f1__."+campo__+".focus()");
			return false;
		}
		d1__ = 11 - (d1__ % 11);
		if (d1__ > 9) d1__ = 0;
		if (dv__.charAt(0) != d1__){
			alert(campoD__ + " inválido!");
			eval("f1__."+campo__+".focus()");
			return false;
		}

		d1__ *= 2;
		for (ij__ = 0; ij__ < 9; ij__++){
			d1__ += c__.charAt(ij__)*(11-ij__);
		}
		d1__ = 11 - (d1__ % 11);
		if (d1__ > 9) d1__ = 0;
		if (dv__.charAt(1) != d1__){
			alert(campoD__ + " inválido!");
			eval("f1__."+campo__+".focus()");
			return false;
		}
		return true;
	}
}


// 8
function verificarCnpj(f1__){
	var campo__;
	var campoD__;
	for(i__=0;i__<camposCnpj.length;i__++){
		campo__ = camposCnpj[i__];
		campoD__ = camposCnpjD[i__];
		var ij__;
		s__ = eval("f1__."+campo__+".value");

		s__ = limpa_string(s__);

		var c__ = s__.substr(0,12);
		var dv__ = s__.substr(12,2);
		var d1__ = 0;
		for (ij__ = 0; ij__ < 12; ij__++){
			d1__ += c__.charAt(11-ij__)*(2+(ij__ % 8));
		}
		if (d1__ == 0){
			alert(campoD__ + " inválido!");
			eval("f1__."+campo__+".focus()");
			return false;
		}
		d1__ = 11 - (d1__ % 11);
		if (d1__ > 9) d1__ = 0;
		if (dv__.charAt(0) != d1__){
			alert(campoD__ + " inválido!");
			eval("f1__."+campo__+".focus()");
			return false;
		}
		d1__ *= 2;
		for (ij__ = 0; ij__ < 12; ij__++){
			d1__ += c__.charAt(11-ij__)*(2+((ij__+1) % 8));
		}
		d1__ = 11 - (d1__ % 11);
		if (d1__ > 9) d1__ = 0;
		if (dv__.charAt(1) != d1__){
			alert(campoD__ + " inválido!");
			eval("f1__."+campo__+".focus()");
			return false;
		}
		return true;
	}
}

// 9
// Funçao para checar a validade de campos SELECT
// A opção a ser considerada inválida deve ter seu valor vazio ou zero
//Ex.: <option value="">selecione aqui</option>
//Ex.: <option value="0">selecione aqui</option>
function verificarSelect(f1__){
	var valor__;
	var valorC__;
	var campo__;
	var campoD__;
	if(typeof camposSelect == "object"){
  	for(i__=0;i__<camposSelect.length;i__++){
  		campo__ = camposSelect[i__];
  		campoD__ = camposSelectD[i__];
  		valor__ = eval("f1__."+campo__+".value");
  		    if (valor__ == ""){
  				alert("A seleção do campo '" + campoD__ + "' não é valida!");
  				eval("f1__."+campo__+".focus()");
  				return false
          }    
  				if (valor__ == "0"){
  				alert("A seleção do campo '" + campoD__ + "' não é valida!");
  				eval("f1__."+campo__+".focus()");
  				return false
          } 
  	}
	}
	return true;
}

// 10
// Função para envio de formulários
// Necessita como parâmetro de um objeto de formulário
function enviarForm(f__){
	if(textopreenchido(f__) == false){
		return false;
	}
	if(verificarNumero(f__) == false){
		return false;
	}
	if(verificarSenha(f__) == false){
		return false;
	}
	if(verificarEmail(f__) == false){
		return false;
	}
	if(montarData(f__) == false){
		return false;
	}
	if(verificarCnpj(f__) == false){
		return false;
	}
	if(verificarCpf(f__) == false){
		return false;
	}
	if(verificarSelect(f__) == false){
		return false;
	}
	return true
}



// 11
// Função Retorno de valores default
// Necessita como parâmetro de um objeto de formulário
function valoresDefault(f__){
	for(i__=0;i__<camposDefault.length;i__++){
		eval("f__."+camposDefault[i__]+".value = '"+camposDefaultV[i__]+"'");
	}
	f__.submit()
}



// 12
// Função Retorno p/ em checkbox 
// O mesmo que a função valoresDefault() deste arquivo só que voltada para
// checkbox ou radio
// Necessita como parâmetro de um objeto de formulário
function valoresDefaultCh(f__){
	if(camposDefaultCh.length < 1) alert('Não existe configuação default para este tipo de usuário!')
	for(i__=0;i__<camposDefaultCh.length;i__++){
		eval("f__."+camposDefaultCh[i__]+".checked = "+camposDefaultChV[i__]);
	}
}


// 13
// Função para abrir barra de upload de arquivos específico para componente ABC
// Necessita como parâmetro de um objeto de formulário e o nome da página de destino
function abcUpload(f__,pagina__,parametros__){
	 theUniqueID = (new Date()).getTime() % 1000000000;
	 destino = pagina__+"?ID=" + theUniqueID;
	 theFeats =  "height=170,width=500,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no";
	 window.open("barra.asp?ID=" + theUniqueID, theUniqueID, theFeats);
	 f__.action = pagina__ + "?ID=" + theUniqueID + "&" + parametros__;
}


// -->
