function f_sonumeros(field){
	var valid = "0123456789";
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
	temp = "" + field.value.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {
	return false;
	}
	return true;
}

function f_login(field){
	//colocar em minusculas
	var valid = "abcdefghijlmnopqrstuvxzwyk0123456789";
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp.toLowerCase()) == "-1") ok = "no";
	}
	if (ok == "no") {
		return false;
	}
	return true;
}

function f_sodata(field){
	data = field.value;
	if (data.substring(1,2) == '/' && data.length < 10){
		field.value = '0' + data.substring(0,data.length);
	}
	data = field.value;
	if (data.substring(4,5) == '/' && data.length < 10){
		field.value = data.substring(0,3) + '0' + data.substring(3,data.length);
	}
	data = field.value;
	if (data == ''){ 
		return true;
	}
	var dia = parseInt(data.substring(0,2),10);
	var mes = parseInt(data.substring(3,5),10);
	var ano = parseInt(data.substring(6,10),10);
	var retorno = "";

	if (dia <= 31 && mes <=12 && ano >= 1000){
		//Verificando barras
		if (data.substring(2,3) != '/' || data.substring(5,6) != '/'){
			return false;
		}
		
		//Verificando validade do ano
		if (data.substring(6,7)== '0' || data.substring(6,7)=='' && data.substring(7,8)!='0'){
			return false;
		}
		
		//Verificando quantidade de dias para meses de 30
		if ((mes == 4)||(mes == 6)||(mes == 9)||(mes == 11)){
			if (dia > 30){
			return false;
			}
		}
		
		//Verificando quantidade de dias para mês 2
		if ((mes == 2)){
			if ((ano % 4) != 0){
				if (dia > 28){
					return false;
				}
			}else{
				if (dia > 29){
					return false;
				}
			}
		}

	}else{
			return false;
	}
	return true;
}

function f_sojpg(field){
	var txt = field.value;
	txt = txt.substring(txt.length - 4, txt.length);
	if (txt.toUpperCase() != '.JPG'){
		return false;
	}
}


function f_soswf(field){
	var txt = field.value;
	txt = txt.substring(txt.length - 4, txt.length);
	if (txt.toUpperCase() != '.SWF'){
		return false;
	}else{
		return true;	
	}
}

function f_moeda(field){
	var valid = "0123456789,";
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
	temp = "" + field.value.substring(i, i+1);
	if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {
		return false;
	}
	return true;
}

function f_email(field){
	emailad = field.value;
	if (emailad != ""){
		var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
		var check=/@[\w\-]+\./;
		var checkend=/\.[a-zA-Z]{2,3}$/;
		if (((emailad.search(exclude) != -1)||(emailad.search(check)) == -1)||(emailad.search(checkend) == -1)){
			return false;
		}
		else {
			return true;
		}	
	}
}

function f_cpf (field){
	StrCPF = field.value;
	x = 0;
	soma = 0;
	dig1 = 0;
	dig2 = 0;
	var texto = '';
	var StrCPF1 = '';
	len = StrCPF.length;
	x = len -1;

	for (var i=0; i <= len - 3; i++){
		y = StrCPF.substring(i,i+1);
		soma = soma + ( y * x);
		x = x - 1;
		texto = texto + y;
	}

	dig1 = 11 - (soma % 11);
	if (dig1 == 10) dig1=0 ;
	if (dig1 == 11) dig1=0 ;
	StrCPF1 = StrCPF.substring(0,len - 2) + dig1 ;
	x = 11; soma=0;
	
	for (var i=0; i <= len - 2; i++){
		soma = soma + (StrCPF1.substring(i,i+1) * x);
		x = x - 1;
	}

	dig2= 11 - (soma % 11);
	if (dig2 == 10) dig2=0;
	if (dig2 == 11) dig2=0;
	if ((dig1 + "" + dig2) == StrCPF.substring(len,len-2)){
		// alert ("Número do CPF Válido !");
		return true;
	}

	return false;
}


function f_cnpj(field){
	StrCGC = field.value;
	if (StrCGC == ''){
		return '';
	}
	var varFirstChr = StrCGC.charAt(0);
	var vlMult,vlControle,s1, s2 = "";
	var i,j,vlDgito,vlSoma = 0;
	for ( var i=0; i<=13; i++ ) {
		var c = StrCGC.charAt(i);
		if( ! (c>="0")&&(c<="9") ){
			return false;
		}
		if( c!=varFirstChr ){
			vaCharCGC = true;
		}
	}
	if( ! vaCharCGC ) {
			return false;
	}

	s1 = StrCGC.substring(0,12);
	s2 = StrCGC.substring(12,15);
	vlMult = "543298765432";
	vlControle = "";
	
	for ( j=1; j<3; j++ ) {
		vlSoma = 0;
		for ( i=0; i<12; i++ ){
			vlSoma += eval( s1.charAt(i) )* eval( vlMult.charAt(i) );
		}
		if( j == 2 ){
			vlSoma += (2 * vlDgito);
		}
		vlDgito = ((vlSoma*10) % 11);
		if( vlDgito == 10 ){
			vlDgito = 0;
		}
		vlControle = vlControle + vlDgito;
		vlMult = "654329876543";
	}
	
	if( vlControle != s2 ) {
			return false;
	}else{
		// alert("Número do CGC Válido !");
		return true;
	}
}
	

function f_menu(x){
	if (x.value=="") {
		return false;
	}
	return true;
}

function findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}


//EXEMPLO:
//return requiridos('txt_nome','',true,'txt_email','eml',true,'txt_ddd','num',true,'txt_tel','num',true,'txt_uf','',true,'txt_cidade','',true,'txt_endereco','',true,'txt_numero','',true,'txt_bairro','',true,'txt_cep','',true,'txt_rg','num',true,'dta_nascimento','dta',true);

function requiridos(){
  var i,num,args=requiridos.arguments;
  for (i=0; i<(args.length); i=i+3) {
	  val=findObj(args[i]);
	  val.className = "";
  }
  
  var erroFormato = false;
  var erroRequiri = false;
  
  for (i=0; i<(args.length); i=i+3) {
		val=findObj(args[i]);
		tipo=args[i+1];
		req=args[i+2];
		var msg = true;
		switch (tipo){
			case "eml":
				msg = f_email(val);
			break;
			
			case "cpf":
				msg = f_cpf(val);
			break;
			
			case "lgn":
				msg = f_login(val);
			break;
			
			case "dta":
				msg = f_sodata(val);
			break;
			
			case "num":
				msg = f_sonumeros(val);
			break;
			
			case "jpg":
				msg = f_sojpg(val);
			break;
			
			case "swf":
				msg = f_soswf(val);
			break;
			
			case "csh":
				msg = f_moeda(val);
			break;
			
			//case "mnu":
			//	msg = f_menu(val);
			//break;
			
			case "cpj":
				msg = f_cnpj(val);
			break;
		}
		
		if (!msg){
			val.className = "cmp_erro";
			erroFormato = true;
		}

		if (req && val.value=="") {
			//PARA IDENTIFICAR QUAL O CAMPO ELE ESTÁ VALIDANDO NO MOMENTO
			//alert(val.name);
			erroRequiri = true;
		}
  }
  
  msg = "O preenchimento do formulário está incorreto! \n";
  
  if (erroFormato){
	  msg = msg + "- Os campos em vermelho indicam que a informação foi digitada incorretamente.\n";
  }
  
  if (erroRequiri){
	  msg = msg + "- Todos os campos com * (asterísco) são de preenchimento obrigatório."
  }
  
  if (erroFormato || erroRequiri){
	  alert(msg);
	  return false;
  }
  
  return true;
}

function requiridos_mnu(){
  var i,num,args=requiridos_mnu.arguments;
  for (i=0; i<(args.length); i++) {
		val=findObj(args[i]);
		if (val.value=="") {
			alert('Selecione uma das opções!');
			val.focus();
			return false;
		}
  }
  return '';
}

function VerImagem(campo) { 
	document.form1.imagem.src = campo.value;
}
