//***********************************************************
//*   METRA SISTEMA METROPOLITANO DE TRANSPORTES            *  
//*   DEPARTAMENTO: Tecnologia da Informacao                *     
//***********************************************************
//*                                                         *
//*   Responsavel:		Manoel dos Santos Araujo            *
//*   Desenvolvedor:    Luis Vagner B. Costa     			*
//*   Desenvolvido em:  03/03/2009       				    *
//*   Alterado em:      04/04/2011                			*
//*                                                         *
//* *********************************************************
//*   Observacao: Arquivo de Funçoes Java Script			*
//***********************************************************


/*
* DESCRICAO: VALIDAÇÃO GENÉRICA DE CAMPOS DO FORM
* Obs: Para campos obrigatórios basta colocar o atributo
* obrigatorio="Nome do campo"
*/
function validate() { 
  var str = ""; 
  var elements = document.getElementsByTagName('*'); // "pega" todos os elementos da página 
  err_focus=0; // zera variavel que verifica o primeiro erro que ocorre 
    
 for(i=0; i<elements.length; i++) {     
 // Valida os elementos input, select e textarea 
   if(elements.item(i).tagName.toLowerCase()=='input' || elements.item(i).tagName.toLowerCase()=='select' || elements.item(i).tagName.toLowerCase()=='textarea'){ 
      if(elements.item(i).getAttribute('obrigatorio')){       
            if(elements.item(i).value.length == 0 || elements.item(i).value == "0" || elements.item(i).selectedIndex == 0) {   
                str += "É obrigatório preencher o campo: "+ elements.item(i).getAttribute('obrigatorio')+ "\n"; 
                elements.item(i).style.background = "#FFCC00"; 
                err_focus++; 
                if (err_focus==1){field_focus = i;} // serve para colocar o foco no primeiro erro que ocorrer 
           }else{       
               if(elements.item(i).type.toLowerCase()=='text' || elements.item(i).type.toLowerCase()=='select-one' || elements.item(i).type.toLowerCase()=='textarea'){     //->Este if serve para não deixar o submit branco 
                    elements.item(i).style.background = "white"; 
                }      
          } 
      } 
   }  
 } 

  if (str != "") { 
     // Não submete o form 
     alert("ALERTA DE ERRO!!\n\n" +str);  
     elements.item(field_focus).focus(); 
     return false; 
  }else{
        return true;
  }
   
}


/*
* DESCRICAO: VALIDA CAMPOS DE E-MAIL
*/
function checa_email(email) {
	var msg_email = "O e-mail informado parece não estar correto.";
	
	if (form.email.value == "") {
		alert("Informe seu e-mail.");
		form.email.focus();
		form.email.select();
		return false;
	} else {
		prim = form.email.value.indexOf("@")
		if(prim < 2) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("@",prim + 1) != -1) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf(".") < 1) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf(" ") != -1) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("hotmail.com.br") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf(".@") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("@.") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf(".com.br.") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("/") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("[") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("]") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("(") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf(")") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("..") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
	}
		return true;
}

/*
* DESCRICAO: VALIDACAO DE CPF
*/
function ValidarCPF(Objcpf){
	var cpf = Objcpf.value;
	exp = /\.|\-/g
	cpf = cpf.toString().replace( exp, "" ); 
	var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
	var soma1=0, soma2=0;
	var vlr =11;
	
	for(i=0;i<9;i++){
		soma1+=eval(cpf.charAt(i)*(vlr-1));
		soma2+=eval(cpf.charAt(i)*vlr);
		vlr--;
	}    
	soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
	soma2=(((soma2+(2*soma1))*10)%11);
	
	var digitoGerado=(soma1*10)+soma2;
	if(digitoGerado!=digitoDigitado){    
		alert('CPF Invalido!');	
		Objcpf.style.background = "#FFCC00"; 
		Objcpf.focus();
		Objcpf.select();		
		return false;
	}else{
		Objcpf.style.background = "white";
		return true;
	}
	
}

/*
* DESCRICAO: AUMENTA OU DIMINUI A LETRA
* Para usar coloque o comando: "javascript:mudaTamanho('tag_ou_id_alvo', -1);" para diminuir
* e o comando "javascript:mudaTamanho('tag_ou_id_alvo', +1);" para aumentar
*/
var tagAlvo = new Array('p'); //pega todas as tags p//
 
// Especificando os possíveis tamanhos de fontes, poderia ser: x-small, small...
var tamanhos = new Array( '8px','10px','12px','14px','16px','18px','20px' );
var tamanhoInicial = 3;
 
function mudaTamanho( idAlvo,acao ){
  if (!document.getElementById) return
  var selecionados = null,tamanho = tamanhoInicial,i,j,tagsAlvo;
  tamanho += acao;
  if ( tamanho < 0 ) tamanho = 0;
  if ( tamanho > 7 ) tamanho = 7;
  tamanhoInicial = tamanho;
  if ( !( selecionados = document.getElementById( idAlvo ) ) ) selecionados = document.getElementsByTagName( idAlvo )[ 0 ];
  
  selecionados.style.fontSize = tamanhos[ tamanho ];
  
  for ( i = 0; i < tagAlvo.length; i++ ){
	tagsAlvo = selecionados.getElementsByTagName( tagAlvo[ i ] );
	for ( j = 0; j < tagsAlvo.length; j++ ) tagsAlvo[ j ].style.fontSize = tamanhos[ tamanho ];
  }
} 
	
	
//MUDAR COR DE FUNDO DO COMPONENTE AO RECEBER E SAIR DO FOCO
/*Modo de usar onfocus="mudacor(this,'#FFCC00')" onblur="mudacor(this,'white')"
function mudacor(ref,cor){
ref.style.backgroundColor=cor;
}
*/

/* Jquery
		//Valida Data
		jQuery.validator.addMethod("data", function(value, element) {
		//contando chars
		if(value.length!=10) return false;
		// verificando data
		var data = value;
		var dia = data.substr(0,2);
		var barra1 = data.substr(2,1);
		var mes = data.substr(3,2);
		var barra2 = data.substr(5,1);
		var ano = data.substr(6,4);
		if(data.length!=10||barra1!="/"||barra2!="/"||isNaN(dia)||isNaN(mes)||isNaN(ano)||dia>31||mes>12)return false;
		if((mes==4||mes==6||mes==9||mes==11)&&dia==31)return false;
		if(mes==2 && (dia>29||(dia==29 && ano % 4 != 0 || ano % 100 == 0 && ano % 400 != 0)))return false;
		if(ano < 1900)return false;
		return true;
		}, "Informe uma data válida"); // Mensagem padrão

		//Valida CPF
		jQuery.validator.addMethod("verificaCPF", function(value, element) {
	    value = value.replace('.','');
	    value = value.replace('.','');
	    cpf = value.replace('-','');
	    while(cpf.length < 11) cpf = "0"+ cpf;
	    var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/;
	    var a = [];
	    var b = new Number;
	    var c = 11;
	    for (i=0; i<11; i++){
	        a[i] = cpf.charAt(i);
	        if (i < 9) b += (a[i] * --c);
	    }
	    if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
	    b = 0;
	    c = 11;
	    for (y=0; y<10; y++) b += (a[y] * c--);
	    if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
	    if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]) || cpf.match(expReg)) return false;
	    return true;
		}, "Informe um CPF válido."); // Mensagem padrão

*/
