//TXT - Campo texto obrigatório (tanto para text como pata textarea como para password) //CG1 - Campo CGC/CPF obrigatório e válido //CG2 - Campo CGC/CPF não obrigatório e válido //E@1 - Campo Email obrigatório e válido //E@2 - Campo Email não obrigatório e válido //DT1 - Campo Data obrigatório e válido **** funciona somente no formato **** //DT2 - Campo Data não obrigatório e válido **** dia / mes / ano (separados) **** //POR - Campo porcentagem não obrigatório e válido //SEL - Campo Select obrigatório //HM1 = Campo hora / minuto obrigatório e válido **** funciona somente no formato **** //HM2 = Campo hora / minuto não obrigatório e válido **** hora : minuto (separados) **** //LN1 = Campo link obrigatório e válido //LN2 = Campo link não obrigatório e válido //CP1 = Campo CEP obrigatório e válido *** funciona tanto com hífen (-) como sem *** //CP2 = Campo CEP não obrigatório e válido *** funciona tanto com hífen (-) como sem *** // FUNÇÕES ADICIONAIS // LimitaNumero(e,nome) event, nome do campo // ---permite somente a digitação de números e virgulas no campo // LimitaSoNumero(e,nome) event, nome do campo // ---permite somente a digitação de números no campo // LimitaText(e,nome,tam) event, nome do campo, tamanho a ser limitado // ---limita o número e caracteres do textarea function verifica(form){ var envia = true; for (var i = 0; i <= form.elements.length - 1; i++){ if (form.elements[i].alt != ""){ switch(form.elements[i].type){ case "text": if (form.elements[i].alt.slice(0,3) == "TXT"){ if (form.elements[i].value == ""){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)) form.elements[i].focus(); return false; } } if (form.elements[i].alt.slice(0,3) == "CG1"){ if (form.elements[i].value == ""){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } if (form.elements[i].value.length == 14){ if (! isCGC(form.elements[i].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); return false; } } else{ if (! isCpf(form.elements[i].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); return false; } } } if (form.elements[i].alt.slice(0,3) == "CG2"){ if (form.elements[i].value != ""){ if (form.elements[i].value.length == 14){ if (! isCGC(form.elements[i].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); return false; } } else{ if (! isCpf(form.elements[i].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); return false; } } } } if (form.elements[i].alt.slice(0,3) == "E@1"){ if (form.elements[i].value == ""){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } if (! isEmail(form.elements[i].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } if (form.elements[i].alt.slice(0,3) == "E@2"){ if (form.elements[i].value != ""){ if (! isEmail(form.elements[i].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } } if (form.elements[i].alt.slice(0,3) == "DT1"){ if (form.elements[i].value == "" || form.elements[i + 1].value == "" || form.elements[i + 2].value == ""){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } if (! isDate(form.elements[i].value, form.elements[i + 1].value, form.elements[i + 2].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } if (form.elements[i].alt.slice(0,3) == "DT2"){ if (form.elements[i].value != "" || form.elements[i + 1].value != "" || form.elements[i + 2].value != ""){ if (! isDate(form.elements[i].value, form.elements[i + 1].value, form.elements[i + 2].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } } if (form.elements[i].alt.slice(0,3) == "POR"){ if (form.elements[i].value != ""){ if (form.elements[i].value.replace(",",".") > 100 || form.elements[i].value.replace(",",".") < 0){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } } if (form.elements[i].alt.slice(0,3) == "HM1"){ if (form.elements[i].value != "" && form.elements[i + 1].value != ""){ if (form.elements[i].value < 0 || form.elements[i].value > 23 || form.elements[i + 1].value < 0 || form.elements[i + 1].value > 59){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } else { alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } if (form.elements[i].alt.slice(0,3) == "HM2"){ if (form.elements[i].value != "" || form.elements[i + 1].value != ""){ if (form.elements[i].value < 0 || form.elements[i].value > 23 || form.elements[i + 1].value < 0 || form.elements[i + 1].value > 59){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } } if (form.elements[i].alt.slice(0,3) == "LN1"){ if (form.elements[i].value == ""){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } var Exp1 = new RegExp("^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$"); if (! Exp1.test(form.Link.value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } if (form.elements[i].alt.slice(0,3) == "LN1"){ if (form.elements[i].value == ""){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } var Exp1 = new RegExp("^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$"); if (! Exp1.test(form.elements[i].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } if (form.elements[i].alt.slice(0,3) == "LN2"){ if (! form.elements[i].value == ""){ var Exp1 = new RegExp("^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$"); if (! Exp1.test(form.elements[i].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } } if (form.elements[i].alt.slice(0,3) == "CP1"){ if (form.elements[i].value == ""){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } var Exp1 = new RegExp("(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})"); if (! Exp1.test(form.elements[i].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } if (form.elements[i].alt.slice(0,3) == "CP2"){ if (! form.elements[i].value == ""){ var Exp1 = new RegExp("(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})"); if (! Exp1.test(form.elements[i].value)){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)); form.elements[i].focus(); return false; } } } break; case "textarea": if (form.elements[i].alt.slice(0,3) == "TXT"){ if (form.elements[i].value == ""){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)) form.elements[i].focus(); return false; } } break; case "password": if (form.elements[i].alt.slice(0,3) == "TXT"){ if (form.elements[i].value == ""){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)) form.elements[i].focus(); return false; } } case "select-one": if (form.elements[i].alt.slice(0,3) == "SEL"){ if (form.elements[i].selectedIndex == 0){ alert(form.elements[i].alt.slice(3,form.elements[i].alt.length)) form.elements[i].focus(); return false; } } break; } } } return true; } function isCpf (StrCPF) { x = 0; soma = 0; dig1 = 0; dig2 = 0; texto = ""; 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)) { return true; } return false; } function isCGC(x) { strNum="" if (x=="") return (false); l = x.length; for (i = 0; i < l; i++) { caracter = x.substring(i,i+1) if ((caracter >= '0') && (caracter <= '9')) strNum = strNum + caracter; } strMul = "6543298765432" iValido = 1 if(strNum.length != 14) { return(false) } iSoma = 0 strNum_base = strNum.substring(0,12) iLenNum_base = strNum_base.length - 1 iLenMul = strMul.length - 1 for(i=0;i<12;i++) { iSoma = iSoma + parseInt(strNum_base.substring((iLenNum_base-i),(iLenNum_base-i)+1),10) * parseInt(strMul.substring((iLenMul-i),(iLenMul-i)+1),10) } iSoma = 11 - (iSoma - Math.floor(iSoma/11) * 11) if(iSoma == 11 || iSoma == 10) { iSoma = 0 } strNum_base = strNum_base + iSoma iSoma = 0 iLenNum_base = strNum_base.length - 1 for(i=0;i<13;i++) { iSoma = iSoma + parseInt(strNum_base.substring((iLenNum_base-i),(iLenNum_base-i)+1),10) * parseInt(strMul.substring((iLenMul-i),(iLenMul-i)+1),10) } iSoma = 11 - (iSoma - Math.floor(iSoma/11) * 11) if(iSoma == 11 || iSoma == 10) { iSoma = 0 } strNum_base = strNum_base + iSoma if(strNum != strNum_base) { return(false) } return(true) } function isEmail(e){ //TESTE EMAIL var email = e; var suportado = 0; //Testa se o browser suporta expressões regulares if (window.RegExp) { var tempReg = /a/; if (tempReg.test("a")){ suportado = 1; } } //Se o browser não suporta expressões regulares, //verifica apenas a posição do ponto e da arroba var emailaux = email.substr(0,4); if(emailaux.toLowerCase() == "www."){ return false; } if (!suportado){ if(((email.indexOf(".") <= 0) || (email.indexOf("@") <= 0)) || ((email.lastIndexOf(".") == (email.length - 1)) || (email.lastIndexOf("@") == (email.length -1)))){ return false; } //Se o browser suporta expressões regulares, //faz a verificação completa }else{ var tmp1 = /(@.*@)|(\.\.)|(@\.)|(^\.)/; var tmp2 = /^.+@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; if(tmp1.test(email) || !tmp2.test(email)){ return false; } } return true; } function isDate(d,m,a){ var dia = d; var mes = m; var ano = a; var arraymes = new Array(12); arraymes[0]=0; // arraymes[1]=31; //Janeiro arraymes[2]=28; //Fevereiro arraymes[3]=31; //Marco arraymes[4]=30; //Abril arraymes[5]=31; //Maio arraymes[6]=30; //Junho arraymes[7]=31; //Julho arraymes[8]=31; //Agosto arraymes[9]=30; //Setembro arraymes[10]=31; //Outrubro arraymes[11]=30; //Novembro arraymes[12]=31; //Dezembro mes = parseFloat(mes); //verifica se o ano eh bissesto if(ano!=2000){ if((ano % 4)==0) arraymes[2]=29; } //verifica se a Data esta Ok if (isNaN(dia) || dia==0 || dia=='' || dia > arraymes[mes] || dia >31){ return false; } else { // verifica se o mes esta Ok if (isNaN(mes) || mes==0 || mes=='' || mes > 12){ return false;} else { //verifica se o ano esta Ok if (isNaN(ano) || ano==0 || ano=='' || ano.length < 4 || ano < 1900){ return false; } } } return true; } function LimitaText(e,nome,tam) //EX: event, this, 500 { if (document.all) // Internet Explorer var tecla = event.keyCode; else if(document.layers) // Nestcape var tecla = e.which; var a = new String(nome.value); if (a.length < eval(tam) - 2) return true; else { if (tecla != 8) // backspace { event.keyCode = 0; return false; } else return true; } } function LimitaNumero(e,nome) { if (document.all) // Internet Explorer var tecla = event.keyCode; else if(document.layers) // Nestcape var tecla = e.which; if (tecla > 47 && tecla < 58 || tecla == 44) // numeros de 0 a 9 e , if (nome.value.indexOf(",") > 0 && tecla == 44) return false; else return true; else if (tecla == 46) { event.keyCode = 44; return true; } else { if (tecla != 8) // backspace event.keyCode = 0; //return false; else return true; } } function LimitaSoNumero(e,nome) { if (document.all) // Internet Explorer var tecla = event.keyCode; else if(document.layers) // Nestcape var tecla = e.which; if (tecla > 47 && tecla < 58) // numeros de 0 a 9 return true; else { if (tecla != 8) // backspace event.keyCode = 0; //return false; else return true; } }