/*******************************/
function mostra(varquivo,vtitulo) {
/*******************************/
//   window.open(varquivo,vtitulo,'toolbar=no,location=no,directories=no,status=no');
   window.open(varquivo,'','scrollbars=yes');
}

/*******************************/
function alert2(texto) {
/*******************************/
   alert(texto);
}

/***************************/
function escondeSubmit(which) {
/***************************/
//	which.disabled=true;
	which.Submit.disabled=true;
	return true;
}


/*************************/
function checacampos(which) {
/*************************/

//BJID - tipo Y:Arquivo Word - tipo Z: Arquivo Imagem - W-PDF

//formato: TSSN-nomecampo, onde:
//letra1=tipo (T)exto, (N)úmero, (S)elect, (R)adio, (D)ata, (C)heckbox, (H)ora, (F)loat
//letra2=required (S/N)
//letra3=(S/N),Checagem padrão pelo tipo do campo, texto, número, etc...
//letra4=(S/N),Checagem específica pelo nome do campo, caso email, cpf, etc...
//botão submit do form tem que ter nome='Submit'

//escondeSubmit(which);  //O SUBMIT DEVE CHAMAR "Submit"

var pass=true; 
mensagem="";
if(document.images) {

   var tamanho=which.length-1;
   var tempobj=which.elements[0]; 
   for(ind=0;ind<tamanho;ind++)  
	 { 
      var tempobj=which.elements[ind]; 
      var nomecampo=tempobj.name;			 			//usar cifrão ($) como separado rdo prefixo!!!
			if(nomecampo.substring(4,5)=="X")  {  //mudei!!! usar X maiúsculo!!!!   
         var valor=which.elements[ind].value;
         if(valor!=""&&valor.length>0)
            if(nomecampo.substring(0,1)=="T"&&(nomecampo.substring(2,3)=="S"||nomecampo.substring(3,4)=="S"))
               which.elements[ind].value=arrumaT(which.elements[ind].value);

         mensagem="";

         //CAMPO 2 - REQUIRED S ou N
               if(nomecampo.substring(1,2)=="S") 
							 {   
                 if((nomecampo.substring(0,1)=="T"&&tempobj.value=="")
                    ||(nomecampo.substring(0,1)=="W"&&tempobj.value=="")
                    ||(nomecampo.substring(0,1)=="Y"&&tempobj.value=="")
                    ||(nomecampo.substring(0,1)=="Z"&&tempobj.value=="")
                    ||(nomecampo.substring(0,1)=="N"&&tempobj.value=="")
                    ||(nomecampo.substring(0,1)=="F"&&tempobj.value=="")
                    ||(nomecampo.substring(0,1)=="H"&&tempobj.value=="")
                    ||(nomecampo.substring(0,1)=="H"&&tempobj.value=="00:00:00")
                    ||(nomecampo.substring(0,1)=="H"&&tempobj.value=="00:00")
                    ||(nomecampo.substring(0,1)=="D"&&tempobj.value=="")
                    ||(nomecampo.substring(0,1)=="D"&&tempobj.value=="00/00/0000")
                    ||(nomecampo.substring(0,1)=="S"&&tempobj.selectedIndex==0)
                    ||(nomecampo.substring(0,1)=="C"&&tempobj.checked==false)
                    ||(nomecampo.substring(0,1)=="R"&&tempobj.value=="")
                    ||(nomecampo.substring(0,1)=="R"&&tempobj.selectedIndex==0)) 
								 {
                      //document.write("falhou!");
                      pass=false; 
                      mensagem="Field cannot be blank.";
                      break; 
								 }
                 else if(nomecampo.substring(0,1)=="#R")
								 {
								    pass=false;
                    mensagem="Field cannot be blank.";
								 		for (i=0;i<tempobj.length;i++) 
										{
										    if (tempobj[i].checked) 
												{
												  pass=true;
                          mensagem="";
										    }
										}
								 }		
								 
               }//campo 2

          //CAMPO 3 - Checagem padrão pelo tipo de campo (T,N,D,H,S,R,H,F)
               if(nomecampo.substring(2,3)=="S") { 
                  if(nomecampo.substring(0,1)=="W")
                     mensagem=checaW(tempobj.value);
                  if(nomecampo.substring(0,1)=="Y")
                     mensagem=checaY(tempobj.value);
                  if(nomecampo.substring(0,1)=="Z")
                     mensagem=checaZ(tempobj.value);
                  if(nomecampo.substring(0,1)=="T")
                     mensagem=checaT(tempobj.value);
                  if(nomecampo.substring(0,1)=="N")
                     mensagem=checaN(tempobj.value);
                  if(nomecampo.substring(0,1)=="F")
                     mensagem=checaF(tempobj.value);
                  if(nomecampo.substring(0,1)=="R")
                     mensagem=checaR(tempobj.value);
                  if(nomecampo.substring(0,1)=="H")
                     mensagem=checaH(tempobj.value,0,0);
                  if(nomecampo.substring(0,1)=="D") {
                     if(nomecampo.toUpperCase().indexOf("NASC")!=-1)
                        mensagem=checaD(tempobj.value,1901,2020)
                     else
                        mensagem=checaD(tempobj.value,1901,2020);
                  }
                  if(mensagem!="")  {
                     pass=false;
                     break; }
               }//campo 3
		
          //CAMPO 4 - Checagem pelo nome de campo (nome,cep,email,etc)
              if(nomecampo.substring(3,4)=="S") { 
                 if(nomecampo.toUpperCase().indexOf("NOME")!=-1&&nomecampo.substring(0,1)=="T")  {
                    if(tempobj.value.indexOf(";")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (;)";
                       break; }
                    if(tempobj.value.indexOf("´")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (')";
                       break; }
                    if(tempobj.value.indexOf("'")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (')";
                       break; }
                    mensagem=checanome(tempobj.value);
                 }
              
                 if(nomecampo.toUpperCase().indexOf("MAIL")!=-1&&nomecampo.substring(0,1)=="T")  {
                    mensagem=checaemail(tempobj.value);
                    which.elements[ind].value=which.elements[ind].value.toLowerCase();  }
                 if(nomecampo.toUpperCase().indexOf("URL")!=-1&&nomecampo.substring(0,1)=="T")  {
                    mensagem=checaurl(tempobj.value);
                    which.elements[ind].value=which.elements[ind].value.toLowerCase();  }
                 if(nomecampo.toUpperCase().indexOf("CPF")!=-1&&nomecampo.substring(0,1)=="N")
                    mensagem=checacpf(tempobj.value);
                 if(nomecampo.toUpperCase().indexOf("CNPJ")!=-1&&nomecampo.substring(0,1)=="N")
                    mensagem=checacgc(tempobj.value);
                 if(nomecampo.toUpperCase().indexOf("ENDER")!=-1&&nomecampo.substring(0,1)=="T") {
                    if(tempobj.value.indexOf(";")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (;)";
                       break; }
                    if(tempobj.value.indexOf("´")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (')";
                       break; }
                    if(tempobj.value.indexOf("'")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (')";
                       break; }
                 }   
                 if(nomecampo.toUpperCase().indexOf("BAIRRO")!=-1&&nomecampo.substring(0,1)=="T") {
                    if(tempobj.value.indexOf(";")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (;)";
                       break; }
                    if(tempobj.value.indexOf("´")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (')";
                       break; }
                    if(tempobj.value.indexOf("'")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (')";
                       break; }
                 }   
                 if(nomecampo.toUpperCase().indexOf("CIDADE")!=-1&&nomecampo.substring(0,1)=="T") {
                    if(tempobj.value.indexOf(";")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (;)";
                       break; }
                    if(tempobj.value.indexOf("´")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (')";
                       break; }
                    if(tempobj.value.indexOf("'")!=-1)  {
                       pass=false;
                       mensagem="Character not allowed (')";
                       break; }
                 }   
                 if(nomecampo.toUpperCase().indexOf("IDENT")!=-1&&nomecampo.substring(0,1)=="N")
                    mensagem=checarg(tempobj.value);
                 if(nomecampo.toUpperCase().indexOf("CEP")!=-1&&nomecampo.substring(0,1)=="N")
                    mensagem=checacep(tempobj.value);
                 if(nomecampo.toUpperCase().indexOf("FONE")!=-1&&nomecampo.substring(0,1)=="N")
                    mensagem=checafone(tempobj.value);
                 if(nomecampo.toUpperCase().indexOf("CELULAR")!=-1&&nomecampo.substring(0,1)=="N")
                    mensagem=checafone(tempobj.value);
                 if(nomecampo.toUpperCase().indexOf("DDD")!=-1&&nomecampo.substring(0,1)=="N")
                    if(which.NNSS_FONE.value!=''&&tempobj.value=='')  {
                       pass=false;
                       mensagem="Se indicou no. de telefone, deve preencher este campo!";
                       break; }
                 if(nomecampo.toUpperCase().indexOf("CONDI")!=-1&&nomecampo.substring(0,1)=="T")  
                    if(which.SSNN_DEFIC.value.substring(0,1)!='N'&&tempobj.value=='')  {
                       pass=false;
                       mensagem="Se Indicou ser portador de necessidade, deve preencher este campo!";
                       break; }
                 if(nomecampo.toUpperCase().indexOf("OPC2")!=-1&&nomecampo.substring(0,1)=="S") 
                    mensagem=checaopc2(which.SSSN_OPC1.value,tempobj.value);
                 //fte tem tres opcoes
                 if(nomecampo.toUpperCase().indexOf("OPC3")!=-1&&nomecampo.substring(0,1)=="S") {
                    mensagem=checaopc2(which.SSSN_OPC1.value,tempobj.value);
                    if(mensagem==""&&tempobj.value!='999')
                       mensagem=checaopc2(which.SSSS_OPC2.value,tempobj.value);
                 }
                 if(nomecampo.toUpperCase().indexOf("QSC")!=-1&&nomecampo.substring(0,1)=="N")
                    mensagem=checaqsc(tempobj.value);
                 if(nomecampo.toUpperCase().indexOf("ENEM")!=-1) 
                    if(which.SSNS_ENEM.value=='S') {
                       if(which.NNSS_CODENEM.value==""||which.NNSS_ANOENEM.value=="") {
                          pass=false;
                          mensagem="Se indicou que quer utilizar o ENEM, estes dados devem ser informados!";
                          break; }
                       if(which.NNSS_CODENEM.value.length<12) {
                          pass=false;
                          mensagem="Número de inscrição no ENEM tem 12 dígitos!";
                          break; }
                       if(which.NNSS_ANOENEM.value<1998||which.NNSS_ANOENEM.value>2001) {
                          pass=false;
                          mensagem="Ano informado inválido!";
                          break; }
                    }
                    //mensagem=checaenem(tempobj.value);

                 if(mensagem!="")  {
                   pass=false;
                   break; }
              } //campo 4
    }
  }
 }

    if(!pass) {
       var shortfieldname=tempobj.name.substring(5,30).toUpperCase(); 
       alert(mensagem+" - Field: "+shortfieldname+"."); 
       //if(tempobj.name.substring(0,1)!="C"&&tempobj.name.substring(0,1)!="S")  //checkbox d  erro!
       which.elements[ind].focus();
			 //which.elements[ind].select();
//			 which.Submit.disabled=false;
       return false; } 
    else return true;
}


/**********************/
function arrumaT(Campo)  {
/**********************/
	//2espacos - acentos - upper
	//alert("entrou em ArrumaT");
	var Acentos= "áàãâÁÀÃÂéêÉÊíÍóõôÓÕÔúüÚÜçÇabcdefghijklmnopqrstuvwxyz";
	var Traducao="ÁÀÃÂÁÀÃÂÉÊÉÊÍÍÓÕÔÓÕÔÚÜÚÜÇÇABCDEFGHIJKLMNOPQRSTUVWXYZ";
	//DEIXEI ACENTOS!!!!!
	//AAAAAAAAEEEEIIOOOOOOUUUUCCABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var Posic, Carac;
	var Templog="";
	for(var ia=0;ia<Campo.length;ia++)  {
		Carac=Campo.charAt(ia);
		Posic=Acentos.indexOf(Carac);
		if(Posic>-1)
			Templog+=Traducao.charAt(Posic);
		else
			Templog+=Campo.charAt(ia);
	}
	return(Templog);
}


/*************************/
function checaY(ptxt)  {
/*************************/
	var s=ptxt.toUpperCase();

  if(s.length==0)
		return "";

	// { } ( ) < > [ ] | \ /
	// procura se existe apenas um @
	//if ( (s.indexOf("@") < 0) || (s.indexOf("@") != s.lastIndexOf("@")) )
	if ((s.indexOf(".DOC")<0))
		return "Non Ms-Word File";
	return "";
}

/*************************/
function checaW(ppdf)  {
/*************************/
	var s=ppdf.toUpperCase();

  if(s.length==0)
		return "";

	// { } ( ) < > [ ] | \ /
	// procura se existe apenas um @
	//if ( (s.indexOf("@") < 0) || (s.indexOf("@") != s.lastIndexOf("@")) )
	if ((s.indexOf(".PDF")<0))
		return "Non PDF File";
	return "";
}


/*************************/
function checaZ(ptxt)  {
/*************************/
	var s=ptxt.toUpperCase();

  if(s.length==0)
		return "";

	// { } ( ) < > [ ] | \ /
	if ((s.indexOf(".CDR")<0)&&(s.indexOf(".TIF")<0)&&(s.indexOf(".PSD")<0)&&(s.indexOf(".JPG")<0)&&(s.indexOf(".GIF")<0))
		return "Not supported image format.";
	return "";
}

/*******************/
function checaT(ptxt)  {
/*******************/
    var letra, ccletra=0, letra1=0, letra2=0, letra3=0;

   if(ptxt.length==0)
		return "";

	for(var ins=0;ins<ptxt.length;ins++) {
		letra=asc(ptxt.substring(ins,ins+1));  //letras, ponto ou hifen
		ccletra=ccletra+1;
		if(ccletra==1)
			letra1=letra;
		if(ccletra==2)
			letra2=letra;
		if(ccletra==3)
			letra3=letra;
		if(ccletra==4)  {
			letra1=letra;
			ccletra=1;   }
		if(ins==0)
			if((letra<65||letra>90)&&(letra<48||letra>57)) //primeiro caractere só letra ou numeros!
				return "Não começou com letras ou números.";
		if((letra<65||letra>90)&&letra!=46&&letra!=45&&letra!=39&&letra!=32)
	   
		//sim: !"'(),-./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
		//nao: #$%&*+:;<=>?@[\]^_{|}~

		if((letra>34&&letra<39)||(letra>57&&letra<65)||(letra>90&&letra<97)||letra>122||letra==42||letra==43||letra==39&&letra!=32)
			return "Caractere Estranho("+chr(letra)+").";
		if(letra1==letra2&&letra2==letra3)
			return "Caracteres repetidos("+chr(letra)+").";
		}
	return "";
}



/**********************************/
function checaD(pdata,anomin,anomax)  {
/**********************************/
	//data - anomax é o ano máximo permitido, 0 aceita tudo!idem anomin!
	var Date=new String(pdata);	

	//alert("entrou em checaD");
	var Day="";
	var Month="";
	var Year="";

   if(pdata.length==0||pdata=='00/00/0000')
		return "";

	if(pdata.length!=8&&pdata.length!=10)
  	return "Formato DD/MM/AAAA.";

	i=0;
	for(i=0;(i<Date.length)&&(Date.charAt(i)!='/');i++)
		Day=Day+Date.charAt(i);
	i++;
	for(;(i<Date.length)&&(Date.charAt(i)!='/');i++)
		Month=Month+Date.charAt(i);
	i++;
	for(;(i<Date.length);i++)
		Year=Year+Date.charAt(i);
	if(Day==""||Month==""||Year=="")
		return "Formato DD/MM/AAAA.";
	for(i=0;i<Date.length;i++) {
		NroAsc=asc(Date.substring(i,i+1));
//		alert("NroAsc->"+NroAsc);
		if(!((NroAsc>=48&&NroAsc<=57)||(NroAsc==47)))  //barra
			return "Formato DD/MM/AAAA.";
		}
	if(checaN(Month)!="")  
		return "Mês inválido";
        if((eval(Month)>12)||(eval(Month)<1))
		return "Mês inválido";
	if(checaN(Day)!="")
		return "Dia inválido";
        if((eval(Day)>31)||(eval(Day)<1))
		return "Dia inválido";
        if((eval(Day)==31)&&(eval(Month)==2||eval(Month)==4||eval(Month)==6||eval(Month)==9||eval(Month)==11))
		return "Dia inválido";
        if((eval(Day)==30)&&(eval(Month)==2))
                return "Dia inválido";
	if(checaN(Year)!="")
		return "Ano inválido";
	if(anomin!=0&&eval(Year)<anomin)
		return "Ano inválido";
	if(anomax!=0&&eval(Year)>anomax)
		return "Ano inválido";
	return "";
}
//178

/**********************************/
function checaH(pdata,anomin,anomax)  {
/**********************************/
	//data - anomax é o HORA máximo permitido, 0 aceita tudo!idem anomin!
	var Date=new String(pdata);	

	//alert("entrou em checaD");
	var Hora="";
	var Minuto="";
	var Segundo="";

   if(pdata.length==0||pdata=='00:00:00'||pdata=='00:00')
		return "";

	if(pdata.length!=5&&pdata.length!=8)
		return "Formato hh:mm:ss";

		
	i=0;
	for(i=0;(i<Date.length)&&(Date.charAt(i)!=':');i++)
		Hora=Hora+Date.charAt(i);
	i++;
	for(;(i<Date.length)&&(Date.charAt(i)!=':');i++)
		Minuto=Minuto+Date.charAt(i);
	i++;
	for(;(i<Date.length);i++)
		Segundo=Segundo+Date.charAt(i);
	if(Hora!=""&&Minuto!=""&&Segundo=="")
	  Segundo="00";
	if(Hora==""||Minuto==""||Segundo=="")
		return "Formato hh:mm:ss";
	for(i=0;i<Date.length;i++) {
		NroAsc=asc(Date.substring(i,i+1));
//		alert("NroAsc->"+NroAsc);
		if(!((NroAsc>=48&&NroAsc<=57)||(NroAsc==58)))  //dois pontos
			return "Formato hh:mm:ss";
		}
	if(checaN(Hora)!="")  
		return "Hora inválida";
  if((eval(Hora)>23)||(eval(Hora)<0))
		return "Hora inválida";
	if(anomin!=0&&eval(Hora)<anomin)
		return "Hora inválida";
	if(anomax!=0&&eval(Hora)>anomax)
		return "Hora inválida";
	if(checaN(Minuto)!="")  
		return "Minuto inválido";
  if((eval(Minuto)>59)||(eval(Minuto)<0))
		return "Minuto inválido";
	if(checaN(Segundo)!="")  
		return "Segundo inválido";
  if((eval(Segundo)>59)||(eval(Segundo)<0))
		return "Segundo inválido";
	return "";
}

/*******************/
function checaN(pnum)  {
/*******************/
	//<>0-9
	var k;

   if(pnum.length==0)
		return "";

	for(k=0;k<pnum.length;k++)  {
		var c=pnum.charAt(k);
		if(!(c>="0"&&c<="9")) 
			return "Este Campo só pode conter números";
	}
	return "";
}

/********************/
function checaF(pdata)  {
/********************/
	//data - anomax é o HORA máximo permitido, 0 aceita tudo!idem anomin!
	var Date=new String(pdata);	

	//alert("entrou em checaD");
	var Inteiro="";
	var Decimal="";

   if(pdata.length==0||pdata=='0.00')
		return "";

	i=0;
	for(i=0;(i<Date.length)&&(Date.charAt(i)!=',')&&(Date.charAt(i)!='.');i++)
		Inteiro=Inteiro+Date.charAt(i);
	i++;
	for(;(i<Date.length);i++)
		Decimal=Decimal+Date.charAt(i);

	if(Inteiro!=""&&Decimal=="")
	  Decimal="00";
	if(Inteiro==""||Decimal=="")
		return "Formato nn.nn";

	for(i=0;i<Date.length;i++) {
		NroAsc=asc(Date.substring(i,i+1));
  	if(!((NroAsc>=48&&NroAsc<=57)||(NroAsc==46))) //ponto 
			return "Formato nn.nn";
		}
	return "";
}


/***********************/
function checanome(vnome)  {
/***********************/
	//checa caracteres estranhos - SÓ DEIXAR LETRAS, PONTOS, APOSTROFO E HIFEN!
	var letra, ccletra=0, letra1=0, letra2=0, letra3=0, temespaco=false;

   if(vnome.length==0)
		return "";

	for(var inm=0;inm<vnome.length;inm++) {
		letra=asc(vnome.substring(inm,inm+1));  //letras, ponto ou hifen
		ccletra=ccletra+1;
		if(ccletra==1)
			letra1=letra;
		if(ccletra==2)
			letra2=letra;
		if(ccletra==3)
			letra3=letra;
		if(ccletra==4)  {
			letra1=letra;
			ccletra=1;   }
		if(letra==32)
			temespaco=true;

		if(inm==0)
			if((letra<65||letra>90)) //primeiro caractere só letra!
				return "Não começou com letras.";
		if((letra<65||letra>90)&&letra!=46&&letra!=45&&letra!=39&&letra!=32)
			return "Caractere Estranho("+chr(letra)+").";
		if(letra1==letra2&&letra2==letra3)
			return "Caracteres repetidos("+chr(letra)+").";
		}
	if(!temespaco)
		return "Não deixou espaço entre palavras.";
	return "";
}
//226

/*********************/
function checacpf(vcpf)  {
/*********************/
	var digv="", ini=2, fim=10, soma, dgt, ic, jc;

   if(vcpf.length==0)
		return "";

	if(vcpf.length!=11)
		return "Faltando Dígitos";
	for(jc=1;jc<=2;jc++) {
		soma=0;
		for(ic=ini;ic<=fim;ic++) 
			soma+=parseInt(vcpf.substring(ic-jc-1,ic-jc))*(fim+1+jc-ic);  
		if(jc==2) 
			soma+=2*dgt;
		dgt=(10*soma)%11;
		if(dgt==10)
			dgt=0;
		digv+=dgt;
		ini=3;
		fim=11;
	}
//	alert("dac: "+dac+" - vcpf: "+vcpf+" - sub: "+vcpf.substring(vcpf.length-2,vcpf.length));
	if(digv==vcpf.substring(vcpf.length-2,vcpf.length))  
		return "";
	return "Inválido.";
}
//252

/*********************/
function checacgc(vcgc) {
/*********************/
	var df, resto, digv="";

   if(vcgc.length==0)
		return "";

	cgc=trimnumeros(vcgc);

	if ((cgc.indexOf("-")!=-1)||(cgc.indexOf(".")!=-1)||(cgc.indexOf("/")!=-1))
		return "Inválido.";
	df=5*cgc.charAt(0)+4*cgc.charAt(1)+3*cgc.charAt(2)+2*cgc.charAt(3)+9*cgc.charAt(4)+8*cgc.charAt(5)+7*cgc.charAt(6)+6*cgc.charAt(7)+5*cgc.charAt(8)+4*cgc.charAt(9)+3*cgc.charAt(10)+2*cgc.charAt(11);
	resto=df%11;
	digv+=((resto<=1)?0:(11-resto));
	df=6*cgc.charAt(0)+5*cgc.charAt(1)+4*cgc.charAt(2)+3*cgc.charAt(3)+2*cgc.charAt(4)+9*cgc.charAt(5)+8*cgc.charAt(6)+7*cgc.charAt(7)+6*cgc.charAt(8)+5*cgc.charAt(9)+4*cgc.charAt(10)+3*cgc.charAt(11)+2*parseInt(digv);
	resto=df%11;
	digv+=((resto<=1)?0:(11-resto));

	if(!digv==cgc.substring(cgc.length-2,cgc.length))
		return "Inválido.";
	return "";
}


/********************/
function checarg(pnum)  {
/********************/
	//<>0-9
	var k;

   if(pnum.length==0)
		return "";

	for(k=0;k<pnum.length;k++)  {
		var c=pnum.charAt(k);
                //minas-MG ou M / SP - -X
                if(!((c>="0"&&c<="9")||(c=="M")||(c=="G")||(c=="X"))) 
                        return "Caracteres inválidos no No. de Identidade";
	}
	return "";
}


/*************************/
function checaemail(vemail)  {
/*************************/
	var s=new String(vemail);

   if(s.length==0)
		return "";

	// { } ( ) < > [ ] | \ /
	if ((s.indexOf("{")>=0) || (s.indexOf("}")>=0) || (s.indexOf("(")>=0) || (s.indexOf(")")>=0) || (s.indexOf("<")>=0) || (s.indexOf(">")>=0) || (s.indexOf("[")>=0) || (s.indexOf("]")>=0) || (s.indexOf("|")>=0) || (s.indexOf("\"")>=0) || (s.indexOf("/")>=0) )
		return "Inválido.";
	// & * $ % ? ! ^ ~ ` ' "
	if ((s.indexOf("&")>=0) || (s.indexOf("*")>=0) || (s.indexOf("$")>=0) || (s.indexOf("%")>=0) || (s.indexOf("?")>=0) || (s.indexOf("!")>=0) || (s.indexOf("^")>=0) || (s.indexOf("~")>=0) || (s.indexOf("`")>=0) || (s.indexOf("'")>=0) )
		return "Inválido.";
	// , ; : = #
	if ((s.indexOf(",")>=0) || (s.indexOf(";")>=0) || (s.indexOf(":")>=0) || (s.indexOf("=")>=0) || (s.indexOf("#")>=0) )
		return "Inválido.";
	// procura se existe apenas um @
	if ( (s.indexOf("@") < 0) || (s.indexOf("@") != s.lastIndexOf("@")) )
		return "Inválido.";
	// verifica se tem pelo menos um ponto após o @
	if (s.lastIndexOf(".") < s.indexOf("@"))
		return "Inválido.";
        // verifica se tem um ponto após o @
        if (s.indexOf(".") == (s.indexOf("@")+1))
		return "Inválido.";
        // verifica se tem um ponto antes do @
        if ((s.indexOf(".")+1) == s.indexOf("@"))
		return "Inválido.";
        // verifica come‡a por @
        if (s.indexOf("@")==0)
		return "Inválido.";
	return "";
}



/*************************/
function checaurl(vurl)  {
/*************************/
	var s=new String(vurl);

   if(s.length==0)
		return "";

	// { } ( ) < > [ ] | \ /
	if ((s.indexOf("{")>=0) || (s.indexOf("}")>=0) || (s.indexOf("(")>=0) || (s.indexOf(")")>=0) || (s.indexOf("<")>=0) || (s.indexOf(">")>=0) || (s.indexOf("[")>=0) || (s.indexOf("]")>=0) || (s.indexOf("|")>=0) )
		return "Inválido.";
	// & * $ % ? ! ^ ~ ` ' "
	if ((s.indexOf("*")>=0) || (s.indexOf("$")>=0) || (s.indexOf("%")>=0) || (s.indexOf("!")>=0) || (s.indexOf("^")>=0) || (s.indexOf("~")>=0) || (s.indexOf("`")>=0) )
		return "Inválido.";
	// , ; : = #
	if ((s.indexOf(",")>=0) || (s.indexOf(";")>=0) )
		return "Inválido.";
	// procura se existe http://
	if(vurl.toLowerCase().substring(0,7)!='http://')  
		return "Deve iniciar com http://";
	//tem que ter pelo menos dois pontos
	if ( (s.indexOf(".") < 0) || (s.indexOf(".") == s.lastIndexOf(".")) )
		return "Faltando pontos.";

	return "";
}


/*********************/
function checaender(vend)  {
/*********************/
   alert("entrou em checaender");
   if(vend.length==0)
		return "";

        // { } < > [ ] | 
        if ((vend.indexOf("{")>=0) || (vend.indexOf("}")>=0) || (vend.indexOf("<")>=0) || (vend.indexOf(">")>=0) || (vend.indexOf("[")>=0) || (vend.indexOf("]")>=0) || (vend.indexOf("|")>=0) )
		return "Inválido.";
	// & * $ % ? ! ^ ~ ` ' "
        if ((vend.indexOf("&")>=0) || (vend.indexOf("*")>=0) || (vend.indexOf("$")>=0) || (vend.indexOf("%")>=0) || (vend.indexOf("?")>=0) || (vend.indexOf("!")>=0) || (vend.indexOf("^")>=0) || (vend.indexOf("~")>=0) || (vend.indexOf("`")>=0) || (vend.indexOf("'")>=0) )
		return "Inválido.";
        // ; = #
        if ((vend.indexOf(";")>=0) || (vend.indexOf("=")>=0) || (vend.indexOf("#")>=0) )
		return "Inválido.";
	return "";
}


/*********************/
function checaend(vend)  {
/*********************/
   alert("entrou em checaend");
}


/*********************/
function checacep(vcep) {
/*********************/
	ncep=new String(vcep);

   if(ncep.length==0)
		return "";

        if((ncep.length!=8)&&(ncep.length!=5))
                return "Tamanho Inválido.";
	return "";
}

//305

/***********************/
function checafone(vfone) {
/***********************/
        nfone=new String(vfone);

   if(nfone.length==0)
		return "";

        if((nfone.length!=8)&&(nfone.length!=7))
                return "Tamanho Inválido.";
	return "";
}

/***********************/
function checaopc2(s1,s2)  {
/***********************/
	//NAO pode ser igual a primeira!
	if(s1==s2)
                return "Segunda Opção não pode ser igual à primeira, selecione outra ou escolha 'Sem segunda opção'";
	return "";
}
//314
/***********************/
function checaenem(venem)  {
/***********************/
// tem que chacar os tres de vez!
//	nenem=new String(venem);
//	if(nenem.length!=12)
//		return "Inválido.";
	return "";
}

/***********************/
function checaopcprova(s)  {
/***********************/
	return "";
}

/******************/
function checaqsc(s)  {
/******************/
        if(s.length!=2)
                return "Tamanho Inválido.";

//        if(eval(s)<00||eval(s)>99)
//                return "Item fora da faixa de valores.";
	return "";
}


/***************************/
function trimnumeros(vstr)  {
/***************************/
	//nstr=new String(vstr);
	nstr=vstr;
	sf="";
	for(k=0;k<nstr.length;k++)  {
		dg=nstr.charAt(k);
		if(asc(dg)>=48&&asc(dg)<=57)  //0-9
			sf=sf+dg; 
	}
	return sf;
}

//350
/************************/
function listacaracteres()  {
/************************/
	var lista
	lista=' !"#$%&\'()*+,-./0123456789:;<=>?@'  //\' é igual a ' !!!
	lista+= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'        //A=65
	lista+= '[\]^_`abcdefghijklmnopqrstuvwxyz'  //a=97
	lista+= '{|}~'
	return lista
}
//361
/****************/
function chr(vchr)  {
/****************/
	var ilista;
	var todos=listacaracteres();
	ilista=vchr-32;
	if(ilista>0)	
	  return todos.charAt(ilista);
	return "";
}

/****************/
function asc(vchr)  {
/****************/
	var ilista=32;
	var todos=listacaracteres();
	for(ii=0;ii<todos.length;ii++) {
		if(vchr==todos.substring(ii,ii+1)) {
			ilista=ilista+ii;
			return ilista;
		}
	}
	return -1;
}

/******************/
function asc2(vchar) {
/******************/
	vc=new String(vchar);
	alert(""+vc+"->"+escape(2));
	return parseInt(escape(vc));  //.substring(1,4));  //unescape() retorna chr() precedido de "%asc"
}
