 function valida(form) {
	var elementos = form.elements;
	//var elementos = document.getElementsByTagName("INPUT");
	var msgErro = document.getElementById("msgErro");
	var filtro=/^.+@.+\..{2,3}$/;
	
	erro = 0;
	
		for (var i=0; i< elementos.length; i++){
		
		if ((elementos[i].getAttribute("obrigatorio")=="s")  &&
			(elementos[i].value=="")) 
		{
			//alert("O preenchimento do campo '"+elementos[i].getAttribute("desc") + "' é obrigatorio.");
			msgErro.innerHTML = "<b>Atenção:</b> 0 campo "+elementos[i].getAttribute("desc") + " é obrigatorio.";
			elementos[i].focus();
			return false;
		}else{
		erro = 1;
		}
		
		
		//verifica lista
		if ((elementos[i].getAttribute("obrigatorio")=="e")  &&
			(elementos[i].value=="0")) 
		{
			//alert("O preenchimento do campo '"+elementos[i].getAttribute("desc") + "' é obrigatorio.");
			msgErro.innerHTML = "<b>Atenção:</b> 0 campo "+elementos[i].getAttribute("desc") + " é obrigatorio.";
			elementos[i].focus();
			return false;
		}else{
		erro = 1;
		}
		
		
		//verifica RADIO
		if (elementos[i].getAttribute("obrigatorio")=="c") 
		{
			radios_name = elementos[i].name;
			nome_form = form.name;		
			
			radios = document.forms[nome_form].elements[radios_name].length;
	
			preencheu = false;
			
			for (i2=0;i2<radios;i2++) {
				if (document.forms[nome_form].elements[radios_name][i2].checked == true) {
					
					valor_radio = document.forms[nome_form].elements[radios_name][i2].value;
					preencheu = true;
					break;
				}
			}
			
			
			if(preencheu==false){
			//alert("O preenchimento do campo '"+elementos[i].getAttribute("desc") + "' é obrigatorio.");
			msgErro.innerHTML = "<b>Atenção:</b> 0 campo "+elementos[i].getAttribute("desc") + " é obrigatorio.";
			elementos[i].focus();
			return false;
			}
		
			
			
		}
		
		
		
		
		//CHECK OPÇÔES OBRIGÁTORIA
		if (elementos[i].getAttribute("obrigatorio")=="ck") 
		{
		
		
		var qtd = elementos[i].getAttribute("qtd");
		var ck = i-qtd;
		var tem = 0;

			for (i2=1; i2<qtd; i2++) {
				//alert(elementos[ck+i2].value);
				var campo = ck+i2;
				
				if(elementos[campo].checked == true){
					//alert(elementos[ck+i2].value);
					
					tem =1
					
				}else{
					qualquer = 1;
				}
				
			}
		
		
			if(tem==0){
				//alert("É necessario escolher uma opção em '"+elementos[i].getAttribute("desc") + "'.");
				msgErro.innerHTML = "<b>Atenção:</b> 0 campo "+elementos[i].getAttribute("desc") + " é obrigatorio.";
				elementos[i].focus();
				return false;
			}else{
				erro = 1;
			}
		
		}
		
		
		
		
		//verifica se o e-mail é valído
		if ((elementos[i].getAttribute("obrigatorio")=="s")  &&
			(elementos[i].getAttribute("desc")=="e-mail")  &&
			(filtro.test(elementos[i].value)==false)) 
		{
			//alert("O e-mail digitado é inválido.");
			msgErro.innerHTML = "<b>Atenção:</b> O e-mail digitado é inválido.";
			elementos[i].focus();
			return false;
		}else{
		erro = 1;
		}
		
		//verifica a senha é igual
		var i2 = i-1;
		if ((elementos[i].getAttribute("senha")=="s")&&
			(elementos[i].value!=elementos[i2].value)) 
		{
			alert("Senha confirmada errada!");
			elementos[i].focus();
			return false;
		}else{
		erro = 1;
		}
		
		
		
		
		//verifica se o CPF é valído
		if ((elementos[i].getAttribute("obrigatorio")=="s")  &&
			(elementos[i].getAttribute("desc")=="CPF")) 
		{
			
			//Formata CFP, tira pontos(.) e trasso (-)
			var cpf_format = elementos[i].value.replace(".","").replace(".","").replace("-","");
			
      		var verdadeiro = verificaCPF(cpf_format);//chama função (função esta em baixo)
			
			if(verdadeiro==0){//verifica se o retorno do CPF válido 	
			
				//msgErro.innerHTML = "<b>Atenção:</b> O CPF inválído.";
				alert("CPF inválido, verifique os dados digitados");
				elementos[i].focus();
				return false;
				
			}
				
		}else{
		erro = 1;
		}
		
		
		
		
		
		//verifica arquivo
		if ((elementos[i].getAttribute("arquivo")=="s") && (elementos[i].value!="")) 
		{
			arquivo = elementos[i].value;
			arq = arquivo.split(".")
			
			arqn = arq.length-1	
			
			
			tipos = elementos[i].getAttribute("tipo").split(",")
			tipo_total = tipos.length;
			
			tp = 0;	
			for (i2=0; i2<=tipo_total-1; i2++){	
				if(arq[arqn].toLowerCase()==tipos[i2].replace(" ","")){	
					tp = 1+tp;				
				}
				
			}

			if(tp==1){			
					erro = 1;			
				}else{				
					alert("O arquivo tem que ser: "+elementos[i].getAttribute("tipo")+"!");
					elementos[i].focus();
					return false;
				}
			
				
		}
		
		
		
		//verifica se a data é valída
		if ((elementos[i].getAttribute("id")=="data") && (elementos[i].value!=""))
		{
			data2 = elementos[i].value;
			ver = data2.split("/")

				if(ver[0]<1 || ver[0]>31){
					alert("Data errada, o dia tem que ser de 01 até 31");	
					elementos[i].focus();
					return false;
				}
				
				if(ver[1]<1 || ver[1]>12){
					alert("Data errada, o mês tem que ser de 01 até 12");	
					elementos[i].focus();
					return false;
				}
							
				
		}else{
		erro = 1;
		}
		
	
	}
	//se não tiver errro envia o formulário
	if(erro == 1){		
		return true;		
	}
	
	
}




function verificaCPF(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))){
 		cpf_verdadeiro = 0;// se for verdadeiro
		return cpf_verdadeiro;	
} 
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))){
	 	cpf_verdadeiro = 0;// se for verdadeiro
		return cpf_verdadeiro;		   
	}else{
	   
		cpf_verdadeiro = 1;// se for verdadeiro
		return cpf_verdadeiro;
	}
}





//FIM CPF


function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function leech(v){
    v=v.replace(/o/gi,"0")

    v=v.replace(/i/gi,"1")
    v=v.replace(/z/gi,"2")
    v=v.replace(/e/gi,"3")
    v=v.replace(/a/gi,"4")
    v=v.replace(/s/gi,"5")
    v=v.replace(/t/gi,"7")
    return v
}

function soNumeros(v){
    return v.replace(/\D/g,"")
}

function site(v){
    v=v.replace(/^http:\/\/?/,"")
    dominio=v
	dominio=dominio.replace(/[^\w\.\+-:@]/g,"")
	
	dominio=dominio.replace("http://","")
	
	if(v!=""){
		v="http://"+dominio
	}
    
	return v
}


//Apenas numero
function SomenteNumero(e){
	var tecla=(window.event)?event.keyCode:e.which;
	if((tecla > 47 && tecla < 58)) return true;
	else{
	if (tecla != 8) return false;
	else return true;
	}
}
 
//SOMENTE LETRAS
function SomenteLetras(e){
	var tecla=(window.event)?event.keyCode:e.which;
	if((tecla > 47 && tecla < 58)) return false;
	else{
	if (tecla != 8) return true;
	else return true;
	}
}

//Não digita
function NaoDigita(e){
	var tecla=(window.event)?event.keyCode:e.which;
	if((tecla > 47 && tecla < 58)) return false;
	
	else{
	if (tecla != 8) return false;
	else return false;
	}
}



//onkeypress='return SomenteNumero(event)'

//onkeyup="mascara(this,site)"
//onkeypress="mascara(this,soNumeros)"



