/*
COMO USAR

1) chame este js 
<script  type="text/javascript" src="js/validar.js"></script> 

2) chame a função validaForm no onsubmit do form
onSubmit="return validaForm(this)"

3) se o input for de preenchimento obrigatório coloque o seguinte atributo
wmsg="Escreva aqui a Mensagem de erro"

**campos especiais**

- se for email coloque
	email='sim'  emsg="Escreva aqui a Mensagem de erro"

- checkboxs
	wmsg="Escreva aqui a Mensagem de erro"


- campos de senha
	no 1° campo de senha:
	senha='1' wmsg="Preencha o campo Senha"
	
	no 2° campo de senha:
	senha='2' emsg="As senhas digitadas não são iguais"
	
- tamanho minimo do campo
	tam="X" emsg="Escreva aqui a Mensagem de erro"
		*onde x= numero inteiro minimo
		*não por no campo de repitir senha
		
- dropdown (select)
	dropdown="sim" wmsg="Escreva aqui a Mensagem de erro"
		* valida se o valor é 0 (zero) se for da msm de erro

*/


function validaForm (formulario){

var senha="";
// aqui já é a estrutura de repetição responsável pela varredura de todos os objetos
// a varredura passa por todos os objetos do formulário não importando qual seu
// tipo como, por exemplo, “submits”, password, textarea e etc. 
// note que acessamos os objetos com a variável passada por parâmetro
// usando como um array desse jeito: formulario[i] isso é a mesma coisa
// de chamar o objeto pelo nome, então nós temos acesso a todas as
// propriedades desse objeto uso então a propriedade type que retorma
// o tipo do objeto em uso.
 for(i=0;i<=formulario.length;i++){


// verifica se é um checkbox e se é obrigatório
if (formulario[i].type=="checkbox"){
	if ((formulario[i].getAttribute('wmsg')!="")&&(formulario[i].getAttribute('wmsg')!=undefined)){
	// verifica se não esta marcado
	 	if (formulario[i].checked==false){
 		 alert(formulario[i].getAttribute('wmsg'));
		return false
		}	
	}
}
	

// verifica se é um dropdown (select) e se é obrigatório
if (formulario[i].getAttribute('dropdown')=="sim"){
	if ((formulario[i].getAttribute('wmsg')!="")&&(formulario[i].getAttribute('wmsg')!=undefined)){
	// verifica se não esta marcado
	 	if (formulario[i].value==0){
 		 alert(formulario[i].getAttribute('wmsg'));
		return false
		}	
	}
}


if ((formulario[i].type=="textarea")||(formulario[i].type=="file")          ||(formulario[i].type=="hidden")||(formulario[i].type=="text")||     (formulario[i].type=="password")){

// Agora começa a interação com o formulário, mais a frente você vai entender
// melhor esse “if”, ele serve para ver se a propriedade “wmsg” ou “emsg” é diferente
// de vazio porque se for é porque você disse que esse campo é obrigatório,
// sendo que é nessa propriedade aonde é guardado a mensagem que vai
// aparecer caso o campo esteja vazio.

if ((formulario[i].getAttribute('wmsg')!="")&&(formulario[i].getAttribute('wmsg')!=undefined) || (formulario[i].getAttribute('emsg')!="")&&(formulario[i].getAttribute('emsg')!=undefined)){


// verifica se o campo está vazio
if ((formulario[i].getAttribute('wmsg')!="")&&(formulario[i].getAttribute('wmsg')!=undefined)){
 if(formulario[i].value==""){
  alert(formulario[i].getAttribute('wmsg'));
   try{
    formulario[i].focus();
     }catch(e){          }
return false
}
}


/*
//verifica o input de corntrole para validar os radioboxs
if (formulario[i].getAttribute('radiobox')=="sim"){

radio =formulario[i].value;
var marcado=0;

for (j=0;j<radio.length;j++)
   if (radio[j].checked == true)
      marcado=1;

if (marcado==0){
	alert(formulario[i].getAttribute('emsg'));
	return false;
	}

}
*/



//se for o campo da primeira senha ele armazena para comparar posteriormente com o repita a senha
if (formulario[i].getAttribute('senha')=="1")	
	senha=formulario[i].value;
	
//se for o campo repitir senha ele compara com a senha previamente armazenada
if (formulario[i].getAttribute('senha')=="2")	
	if (formulario[i].value != senha){
				alert(formulario[i].getAttribute('emsg'));
				formulario[i].value="";
				 try{
    				formulario[i].focus();
     			 }catch(e){}                                 
 				 return false
				}
		
		

// Outra propriedade que você vai usar é a “email” nela você fala se no objeto
// além de ser obrigatório ainda tem que ter uma validação para um campo do
// tipo email essa validação é uma validação básica procurando” @" e ” .” no
// email. E o “try catch” serve para não aparecer mensagem de erro pois não
// é possível dar um” focus” no campo do tipo “hidden”
// o return false diz q ocorreu um erro e os dados não devem ser enviados ainda
if (formulario[i].getAttribute('email')=="sim"){
 if((formulario[i].value=="")||(formulario[i].value.indexOf('@')==-1)  
  ||(formulario[i].value.indexOf('.')==-1)){
 alert(formulario[i].getAttribute('emsg'));
  try{
    formulario[i].focus();
      }catch(e){}                                 
  return false
 }        
}


}}


//verifica se o atributo tam esta setado para verificar o tamanho
if (formulario[i].getAttribute('tam')!=undefined){
	if (formulario[i].value.length < formulario[i].getAttribute('tam')){
		 alert(formulario[i].getAttribute('emsg'));
  	try{
    formulario[i].focus();
      }catch(e){}  
	 return false;
	}

}


}}

