function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}


function mskCEP(v){
    v=v.replace(/\D/g,"") 
	v=v.replace(/(\d{5})(\d)/,"$1-$2")
	return v
}

function mskCPF(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não  dígito
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
                                             //de novo (para o segundo bloco de nímeros)
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
    return v
}

function ValidaCPF(prCPF)
{
	var Acumulador=0;
	var vCPF="";
	var PVerificador;
	var Ini =0;
	var Fim =8;
	var strCPF=prCPF.value.replace(/\D/g,"");

	if ((strCPF=='11111111111') || (strCPF=='22222222222') || (prCPF.strCPF=='33333333333') || (strCPF=='44444444444') || (strCPF=='55555555555') || (strCPF=='66666666666') || (strCPF=='77777777777') || (strCPF=='88888888888') || (strCPF=='99999999999') || (strCPF=='00000000000'))
	{
		alert("CPF inválido");
		prCPF.focus();
		boPodePostar=false;	
	}
	else
	{

	
		for (Ini;Ini<=Fim;Ini++)
		{
			Acumulador=Acumulador +(strCPF.charAt(Ini) * (10-Ini))
			vCPF=vCPF + strCPF.charAt(Ini);
		}
		PVerificador=Acumulador%11
		if (PVerificador<2) 
		{
			vCPF=vCPF + "0";
		}
		else
		{
			vCPF=vCPF + (11-PVerificador);	
		}

		Ini =0;
		Fim =9;
		Acumulador=0;
	
		for (Ini;Ini<=Fim;Ini++)
		{
			Acumulador=Acumulador +(vCPF.charAt(Ini) * (11-Ini))
		}
		PVerificador=Acumulador%11
		if (PVerificador<2) 
		{
			vCPF=vCPF + "0";
		}
		else
		{
			vCPF=vCPF + (11-PVerificador);	
		}
	
		if ((vCPF!=strCPF) && (strCPF!=""))
		{
			alert("CPF inválido");
			boPodePostar=false;	
			prCPF.focus();
		}
		else
		{
			boPodePostar=true;
		}
	}

}

function sonumeros(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
	return v
}

function FormataCep(e,src,mask) {
    if(window.event) { _TXT = e.keyCode; } 
    else if(e.which) { _TXT = e.which; }
    if(_TXT > 47 && _TXT < 58) { 
 var i = src.value.length; var saida = mask.substring(0,1); var texto = mask.substring(i)
 if (texto.substring(0,1) != saida) { src.value += texto.substring(0,1); } 
    return true; } else { if (_TXT != 8) { return false; } 
 else { return true; }
    }
}

//----------------------------------------

function FormataTelefone(objeto){ 
   if(objeto.value.length == 0)
     objeto.value = '(' + objeto.value;

   if(objeto.value.length == 3)
      objeto.value = objeto.value + ') ';

 if(objeto.value.length == 9)
     objeto.value = objeto.value + '-';
}

function mskdata(v){
    v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito númérico
	v=v.replace(/(\d{2})(\d)/,"$1/$2")       
    v=v.replace(/(\d{2})(\d)/,"$1/$2")       	
	return v
}

function VerificaData(v)
{
	if (v.value!=''){
	    var DataFormato = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	    var DataArray = v.value.match(DataFormato);
	    var Dia;
	    var Mes;
	    var Ano;
	    var vData = new Date();
	    var AnoAtual = vData.getYear();

	    if (v.value==null){
		    return true;
	    }
	    else{
		    if (DataArray == "") {
			    alert("Entre com uma data no formato dd/mm/yyyy.");
			    return false;
		    }

		    Dia = DataArray[1]; 
		    Mes = DataArray[3];
		    Ano = DataArray[5];
                
    		if (Ano > AnoAtual){
		        alert("O ano de Entrada/Saída não pode ser superior ao ano atual!")
    		    v.focus();
	    	    return false;
		    }
		
		    if (Mes < 1 || Mes > 12) { 
			    alert("Meses devem estar entre 01 e 12.");
    			v.focus();
	    		return false;
    		}

	    	if (Dia < 1 || Dia > 31) {
		    	alert("Dias devem estar entre 1 e 31.");
    			v.focus();
			    return false;
		    }

    		if ((Mes==4 || Mes==6 || Mes==9 || Mes==11) && Dia==31) {
	    		alert("O mês "+Mes+" não possui o dia 31!")
    			v.focus();
    			return false;
		    }
	
		    if (Mes == 2) {
    			var isleap = (Ano % 4 == 0 && (Ano % 100 != 0 || Ano % 400 == 0));
	    		if (Dia > 29 || (Dia==29 && !isleap)) {
		    		alert("Fevereiro de " + Ano + " não possui o dia " + Dia + "!");
    				v.focus();
	    			return false;
			    }
		    }
		
	    }
	    return true; 
	}
}

function VerificaDataNasc(v)
{
	if (v.value!=''){
	    var DataFormato = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	    var DataArray = v.value.match(DataFormato);
	    var Dia;
	    var Mes;
	    var Ano;
	    var vData = new Date();
	    var AnoAtual = vData.getYear();

	    if (v.value==null){
		    return true;
	    }
	    else{
		    if (DataArray == "") {
			    alert("Entre com uma data no formato dd/mm/yyyy.");
			    return false;
		    }

		    Dia = DataArray[1]; 
		    Mes = DataArray[3];
		    Ano = DataArray[5];

    		if (Ano > AnoAtual){
		        alert("O ano de nascimento não pode ser superior ao ano atual!")
    		    v.focus();
	    	    return false;
		    }
		
		    if (Mes < 1 || Mes > 12) { 
			    alert("Meses devem estar entre 01 e 12.");
    			v.focus();
	    		return false;
    		}

	    	if (Dia < 1 || Dia > 31) {
		    	alert("Dias devem estar entre 1 e 31.");
    			v.focus();
			    return false;
		    }

    		if ((Mes==4 || Mes==6 || Mes==9 || Mes==11) && Dia==31) {
	    		alert("O mês "+Mes+" não possui o dia 31!")
    			v.focus();
    			return false;
		    }
	
		    if (Mes == 2) {
    			var isleap = (Ano % 4 == 0 && (Ano % 100 != 0 || Ano % 400 == 0));
	    		if (Dia > 29 || (Dia==29 && !isleap)) {
		    		alert("Fevereiro de " + Ano + " não possui o dia " + Dia + "!");
    				v.focus();
	    			return false;
			    }
		    }
		
	    }
	    return true; 
	}
}

function ValidaEmail(prMail){
    // executa a exp. regular
	var retorno=/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/i.test(prMail.value);
	if (prMail.value!=''){
	    if (retorno==false) {
		    // se retorna falso o email é invalido
		    alert("E-mail inválido!");
		    prMail.select();
	    }
	    return retorno;
	}
}

function FormataReais(fld, milSep, decSep, e) {
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13) return true; 
    key = String.fromCharCode(whichCode);
    if (strCheck.indexOf(key) == -1) return false;
    len = fld.value.length;
    for(i = 0; i < len; i++)
    if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
    aux = '';
    for(; i < len; i++)
    if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) fld.value = '';
    if (len == 1) fld.value = '0'+ decSep + '0' + aux;
    if (len == 2) fld.value = '0'+ decSep + aux;
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += milSep;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        fld.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
        fld.value += aux2.charAt(i);
        fld.value += decSep + aux.substr(len - 2, len);
    }
    return false;
}



function Mask(objeto, evt, mask) {
 
var LetrasU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var LetrasL = 'abcdefghijklmnopqrstuvwxyz';
var Letras  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ';
var Numeros = '0123456789';
var Fixos  = '().-:/ '; 
var Charset = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/`abcdefghijklmnopqrstuvwxyz{|}~";

evt = (evt) ? evt : (window.event) ? window.event : "";
var value = objeto.value;
if (evt) {
 var ntecla = (evt.which) ? evt.which : evt.keyCode;
 tecla = Charset.substr(ntecla - 32, 1);
 if (ntecla < 32) return true;

 var tamanho = value.length;
 if (tamanho >= mask.length) return false;

 var pos = mask.substr(tamanho,1); 
 while (Fixos.indexOf(pos) != -1) {
  value += pos;
  tamanho = value.length;
  if (tamanho >= mask.length) return false;
  pos = mask.substr(tamanho,1);
 }

 switch (pos) {
   case '#' : if (Numeros.indexOf(tecla) == -1) return false; break;
   case 'A' : if (LetrasU.indexOf(tecla) == -1) return false; break;
   case 'a' : if (LetrasL.indexOf(tecla) == -1) return false; break;
   case 'Z' : if (Letras.indexOf(tecla) == -1) return false; break;
   case '*' : objeto.value = value; return true; break;
   default : return false; break;
 }
}
objeto.value = value; 
return true;
}

function MaskTelefone(objeto, evt) { 
return Mask(objeto, evt, '(##) ####-####');
}

function MaskTexto(objeto, evt) { 
return Mask(objeto, evt, 'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ');
}

function MaskBairro(objeto, evt) { 
return Mask(objeto, evt, 'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ');
}
function MaskCidade(objeto, evt) { 
return Mask(objeto, evt, 'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ');
}





function validaForm (formulario){
for(i=0;i<=formulario.length-1;i++){
if ((formulario[i].type=="textarea")||(formulario[i].type=="hidden")||(formulario[i].type=="text")||(formulario[i].type=="password")){
	if ((formulario[i].wmsg!="")&&(formulario[i].wmsg!=undefined)){
		if(formulario[i].value==""){
			alert(formulario[i].wmsg);
			try{
			formulario[i].focus();
			}catch(e){          }
		return false}
	}}
//fim do if para textarea, hidden, text, password
}
}




