// Validações

function validaCPF(p_cpf){
	cpf = document.getElementById(p_cpf).value;
	cpf = cpf.replace(".","");
	cpf = cpf.replace(".","");
	cpf = cpf.replace("-","");
	if(cpf.length == 11){
		switch(cpf){
			case '11111111111':
			case '22222222222':
			case '33333333333':
			case '44444444444':
			case '55555555555':
			case '77777777777':
			case '88888888888':
			case '99999999999':
			case '00000000000':
			     return false;
		    break;
			default:
			    digito_verificador = cpf.substr(9,2);
		        digito = Array();
		        soma = 0;
		        for(cont_cpf=0;cont_cpf<9;cont_cpf++){
			         soma += cpf.substr(cont_cpf,1) * (10 - cont_cpf);
		        }
		        resto_div = soma % 11;
		        (resto_div < 2 ? digito.push(0) : digito.push((11-resto_div)))
		        soma = 0;
		        for(cont_cpf=0;cont_cpf<10;cont_cpf++){
		            soma += cpf.substr(cont_cpf,1) * (11 - cont_cpf);	
	 	        }
		        resto_div = soma % 11;
		        (resto_div < 2 ? digito.push(0) : digito.push((11-resto_div)))
		        digito_verificador_aux = "";
		        for(cont_dig=0;cont_dig<digito.length;cont_dig++){
		   	        digito_verificador_aux += digito[cont_dig];
		        }
		        if(digito_verificador_aux != digito_verificador){
			         return false;
		        }
		        else{
		            return true;
		        }
			break;
		}
	}
	else{
		return false;
	}
}

function validaCNPJ(p_cnpj){
	cnpj = document.getElementById(p_cnpj).value;
	cnpj = cnpj.replace(".","");
	cnpj = cnpj.replace(".","");
	cnpj = cnpj.replace("/","");
	cnpj = cnpj.replace("-","");
    if(cnpj.length == 14){
		switch(cnpj){
			case '11111111111111':
			case '22222222222222':
			case '33333333333333':
			case '44444444444444':
			case '55555555555555':
			case '77777777777777':
			case '88888888888888':
			case '99999999999999':
			case '00000000000000':
			     return false;
		    break;
			default:
			     digito_verificador = cnpj.substr(12,2);
				 digito = Array();
				 soma = 0;
				 cont_posicao = 5;
				 for(cont_cnpj=0;cont_cnpj<12;cont_cnpj++){
					resultado = cont_posicao - cont_cnpj;
					soma += cnpj.substr(cont_cnpj,1) * (resultado);
					if(resultado == 2){
						cont_posicao = 13;
					}
				 }
				 resto_div = soma % 11;
				 (resto_div < 2 ? digito.push(0) : digito.push((11-resto_div)));
				 soma = 0
				 cont_posicao = 6;
				 for(cont_cnpj=0;cont_cnpj<13;cont_cnpj++){
					resultado = cont_posicao - cont_cnpj;
					soma += cnpj.substr(cont_cnpj,1) * (resultado);
					if(resultado == 2){
						cont_posicao = 14;
					}
				 }
				 resto_div = soma % 11;
				 (resto_div < 2 ? digito.push(0) : digito.push((11-resto_div)));
				 digito_verificador_aux = "";
				 for(cont_dig=0;cont_dig<digito.length;cont_dig++){
		   	        digito_verificador_aux += digito[cont_dig];
		         }
		         if(digito_verificador_aux != digito_verificador){
					 return false;
		         }
		         else{
		             return true;
		         }
			break;
		}	
	}
	else{
		return false;
	}
}

function mascaraCNPJ(campo,teclapress){
	if (window.event){
	   var tecla = teclapress.KeyCode;
	}
	else {
		var tecla = teclapress.which; 
	}
	
	var vlr = new String(campo.value);
	vlr = vlr.replace(".", "");
	vlr = vlr.replace(".", "");
	vlr = vlr.replace("/", "");
	vlr = vlr.replace("-", "");
	if(isNaN(vlr)){
		campo.value = ""; 
		return false;
	}
	tam = vlr.length + 1;
	if (tecla !=9 && tecla !=8){
		if(tam > 2 && tam < 6)
		   campo.value = vlr.substr(0, 2) + '.' + vlr.substr(2, tam);
        if(tam >= 6 && tam < 9)
		   campo.value = vlr.substr(0, 2) + '.' + vlr.substr(2, 3) + '.' + vlr.substr(5, tam-5);
		if(tam >= 9 && tam < 13)
		   campo.value = vlr.substr(0, 2) + '.' + vlr.substr(2, 3) + '.' + vlr.substr(5, 3) + '/' + vlr.substr(8, tam-8);
		if(tam >= 13 && tam <15)
		   campo.value = vlr.substr(0, 2) + '.' + vlr.substr(2, 3) + '.' + vlr.substr(5, 3) + '/' + vlr.substr(8, 4)+ '-' + vlr.substr(12, tam-12);
	    campo.maxLength = 18;
	}
}

function mascaraCPF(campo,teclapress){
	if (window.event){
		var tecla = teclapress.KeyCode;
	}
	else {
		tecla = teclapress.which; 
	}
	var vlr = new String(campo.value);
	vlr = vlr.replace(".", "");
	vlr = vlr.replace(".", "");
	vlr = vlr.replace("-", "");

    if(isNaN(vlr)){ 
	    campo.value = ""; 
		return false;
	}
	
	tam = vlr.length + 1;
	if (tecla !=9 && tecla !=8){
	    if(tam > 3 && tam < 7)
		   campo.value = vlr.substr(0, 3) + '.' + vlr.substr(3, tam);
        if(tam >= 7 && tam < 10)
		   campo.value = vlr.substr(0, 3) + '.' + vlr.substr(3, 3) + '.' + vlr.substr(6, tam-6); 
		if(tam >= 10 && tam < 14)
		   campo.value = vlr.substr(0, 3) + '.' + vlr.substr(3, 3) + '.' + vlr.substr(6, 3) + '-' + vlr.substr(9, tam-9);
		campo.maxLength = 14;
	}
}

function mascaraTEL(campo, teclapress){
	if (window.event){
	   var tecla = teclapress.KeyCode;
	}
	else {
	   tecla = teclapress.which; 
	}
	var vlr = new String(campo.value);
	vlr = vlr.replace("(", "");
	vlr = vlr.replace(")", "");
	vlr = vlr.replace("-", "");
	
	if(isNaN(vlr)){ 
	    campo.value = ""; 
		return false;
	}
	
	tam = vlr.length + 1;
	
	if (tecla !=9 && tecla !=8){
		if(tam > 2 && tam < 7)
		    campo.value = vlr.substr(0, 0) +'(' + vlr.substr(0, 2) + ')' + vlr.substr(2, tam);
        if(tam >= 7 && tam < 10)
		    campo.value =  vlr.substr(0, 0) +'(' +  vlr.substr(0, 2) + ')' + vlr.substr(2, 4) + '-' + vlr.substr(6, tam-6); 
		campo.maxLength = 13;
	}
}

function mascaraCEP(campo, teclapress){
	if (window.event){
		var tecla = teclapress.KeyCode;
	}
	else {
		tecla = teclapress.which; 
	}
	var vlr = new String(campo.value);
	vlr = vlr.replace("(", "");
	vlr = vlr.replace(")", "");
	vlr = vlr.replace("-", "");
	
	if(isNaN(vlr)){ 
	    campo.value = ""; 
		return false;
	}
	
	tam = vlr.length + 1;
	
	if (tecla !=9 && tecla !=8){
		if(tam > 2 && tam < 6)
		    campo.value =  vlr.substr(0, 2) + '.' + vlr.substr(3, 3);
        if(tam >6 && tam < 9)
		    campo.value =  vlr.substr(0, 2) + '.' + vlr.substr(3, 3) + '-' + vlr.substr(6, tam-3); 
		campo.maxLength = 10;
	}
}

function mascaraMOEDA(cur,len){
   n='__0123456789';
   d=cur.value;
   l=d.length;
   r='';
   if (l > 0){
	   z=d.substr(0,l-1);
       s='';
       a=2;
       for (i=0; i < l; i++){
		   c=d.charAt(i);
           if(n.indexOf(c) > a){
			   a=1;
               s+=c;
           }
       }
       l=s.length;
       t=len-1;
       if (l > t){
		   l=t;
           s=s.substr(0,t);
       }
       if (l > 2){
		   r=s.substr(0,l-2)+','+s.substr(l-2,2);
       }else{
		   if (l == 2){
			   r='0,'+s;
           }else{
			   if (l == 1){
				   r='0,0'+s;
               }
           }
	   }
       if (r == ''){
		   r='0,00';
       }else{
		   l=r.length;
           if (l > 6){
			   j=l%3;
               w=r.substr(0,j);
               wa=r.substr(j,l-j-6);
               wb=r.substr(l-6,6);
               if (j > 0){
				   w+='.';
               }
               k=(l-j)/3-2;
               for (i=0; i < k; i++){
				   w+=wa.substr(i*3,3)+'.';
               }
               r=w+wb;
		   }
	   }
   }
   if (r.length <= len){
	   cur.value=r;
   }else{
       cur.value=z;
   }
}

function validaEMAIL(p_email){
	var er = /[a-zA-Z0-9_.-]@[a-zA-Z0-9_.-]+\.[a-zA-Z]{2,3}$/;
	email = document.getElementById(p_email);
	if(email.value.search(er) == -1){
		return false;
	}
	else{
		return true;
	}
}

function ValidaFormulario(formulario,campos,erro){
	if (erro==undefined)
	    erro = 'O(s) seguinte(s) campo(s) deve(m) ser preenchido(s):';
	var erros = "";
	// Verificando se campos é vazio, pois assim ele verifica todos os campos
	if (campos==undefined){
	    // Verificando todos os campos do formulário estão preenchidos
		for(i=0; i<formulario.elements.length; i++){
			var erro_tmp = 0;
			with (formulario.elements[i]){
				switch(type){
				    case "text":
					case "select-one":	
					case "select-multiple":
					case "hidden":
					case "password":
					case "file":
					    if (value=="")
						    erro_tmp = 1;
					    break;
					case "textarea":
					    if (value.length==0)
						    erro_tmp = 1;					
					    break;
					case "checkbox":
					    if (checked==false)
						    erro_tmp = 1;
					    break;
				}
				switch(value){
				    case      "00:00":
					case   "00:00:00":
					case "00/00/0000":
					    erro_tmp = 1;
					    break;
				}
				if (erro_tmp==1){
				   // Variável que vai guardar o nome do campo configurado
				   if (title!="")
					   tmp = title;
				   else{
				       tmp = id;
					   tmp = tmp.toUpperCase();
				   }
				   tmp = new String(id);
				   tmp = tmp.replace("_", " ");
				   tmp = tmp.replace("_", " ");
				   tmp = tmp.replace("_", " ");
				   tmp = tmp.replace("_", " ");
				   tmp = tmp.toUpperCase();
				   erros += "- "+tmp+"\n";
				}
			}
		}
		
		if (erros!=""){
		    alert(erro+"\n\n"+erros);
			return false;
		}
		else
		    return true;
	}    
	else{
	    for (i=0;i<campos.length;i++){
			var erro_tmp = 0;		 
			with (eval('formulario.'+campos[i])){
				switch(type){
					case "text":
					case "select-one":
					case "select-multiple":
					case "hidden":
					case "password":
					case "file":
					    if (value=="")
						    erro_tmp = 1;
					    break;
					case "textarea":
					    if (value.length==0){							
							erro_tmp = 1;	
						}
					    break;
					case "checkbox":
					    if (checked==false)
						    erro_tmp = 1;
					    break;
				}
				switch(value){
				    case      "00:00":
					case   "00:00:00":
					case "00/00/0000":
					    erro_tmp = 1;
					    break;
				}
				if (erro_tmp==1){
				   // Variável que vai guardar o nome do campo configurado
				   if (title!="")
					   tmp = title;
				   else{
				       tmp = id;
					   tmp = tmp.toUpperCase();
				   }
				   tmp = new String(tmp);
				   tmp = tmp.replace("_", " ");
				   tmp = tmp.replace("_", " ");
				   tmp = tmp.replace("_", " ");
				   tmp = tmp.replace("_", " ");
				   erros += "- "+tmp+"\n";
				}			
			}			
		}
		if (erros!=""){
		    alert(erro+"\n\n"+erros);
			return false;
		}
		else
		    return true;		
	}
}
function valida_horas(edit,teclapress){
	
	if (window.event){
	   var tecla = teclapress.KeyCode;
	}
	else {
	   tecla = teclapress.which; 
	}
      if(tecla<48 || tecla>57){
        teclapress.returnValue=false;
      }
      if(edit.value.length==2 || edit.value.length==5){
        edit.value+=":";}
}


/**
 * Metodo que imprime a quantidade de caracteres digitados em um campo e impede que ultrapasse a quantidade
 * passada como parametro
 */
function checkQtdeChar(id,qtde_max,event){

	if (window.event){
		var tecla = event.KeyCode;
	}else {
		var tecla = event.which;
	}

	var valor = $Peg(id).value;
	var tam = valor.length;

	if(tam >= qtde_max + 1){

		$Peg(id).value = valor.substring(0,tam - (tam - qtde_max - 1));
	}
}

//Funçaõ retira espaços da string
String.prototype.trim = function()
{ return this.replace(/^\s*/, "").replace(/\s*$/, ""); }

