
//Função para validação de CPF
//Exemplo:CPF:<input type=text name=txtCpf size=11 maxlength=11 onblur="return validacpf(this);">

function validacpf(Obj){
var i;

s = Obj.value;

var c = s.substr(0,9);
var dv = s.substr(9,2);
var d1 = 0;

for (i = 0; i < 9; i++)
{
	d1 += c.charAt(i)*(10-i);
}
 
if (d1 == 0){
    alert("CPF Invalido")
    return false;
}
 
d1 = 11 - (d1 % 11);
 
if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1)
    {
     alert("CPF Invalido")
     return false;
}

d1 *= 2;

for (i = 0; i < 9; i++)
{
    d1 += c.charAt(i)*(11-i);
}

d1 = 11 - (d1 % 11);
 
if (d1 > 9) d1 = 0;
   if (dv.charAt(1) != d1)
      {
      alert("CPF Invalido")
      return false;
}
 
return true;
 
}


//Função para validação de CNPJ
//CNPJ:<input type="text" name="CNPJID" id="CNPJID" size="25" maxlength="18" onblur="return validaCNPJ(this);">

function validaCNPJ(Obj) {
CNPJ = Obj.value;
erro = new String;
if (CNPJ.length < 18) erro += "E' necessarios preencher corretamente o numero do CNPJ! \n\n";
if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
if (erro.length == 0) erro += "E' necessarios preencher corretamente o numero do CNPJ! \n\n";
}
//substituir os caracteres que nao sao numeros
if(document.layers && parseInt(navigator.appVersion) == 4){
x = CNPJ.substring(0,2);
x += CNPJ.substring(3,6);
x += CNPJ.substring(7,10);
x += CNPJ.substring(11,15);
x += CNPJ.substring(16,18);
CNPJ = x;
} else {
CNPJ = CNPJ.replace(".","");
CNPJ = CNPJ.replace(".","");
CNPJ = CNPJ.replace("-","");
CNPJ = CNPJ.replace("/","");
}
var nonNumbers = /\D/;
if (nonNumbers.test(CNPJ)) erro += "A verificacao de CNPJ suporta apenas numeros! \n\n";
var a = [];
var b = new Number;
var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
for (i=0; i<12; i++){
a[i] = CNPJ.charAt(i);
b += a[i] * c[i+1];
}
if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
b = 0;
for (y=0; y<13; y++) {
b += (a[y] * c[y]);
}
if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
erro +="Digito verificador com problema!";
}
if (erro.length > 0){
alert(erro);
return false;
} else {
alert("CNPJ valido!");
}
return true;
}

//Função para permitir somente numeros
//NUMERICOS:<input name="numero" type="text" id="numero" maxlength="20" onKeypress="return SoNumeros(event);">

function SoNumeros(evnt){
         if  (evnt.keyCode < 48 || evnt.keyCode > 57){
            return false
        }
}



//Função para Formatar o campo em valor durante a digitação 
//MOEDA:<input name="moeda" type="text" id="numero" maxlength="20" onKeyPress="return currencyFormat(this,event);">
function currencyFormat(fld, e) {
    var milSep = '.' 
    var decSep = ','
    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;
	var whichCode = e.keyCode;

    if (whichCode == 13) 
        return true; // Enter
        
    key = String.fromCharCode(whichCode); // Get key value from key code

    if (fld.value.length >=14 ) 
        return false;

    if (strCheck.indexOf(key) == -1) 
        return false; // Not a valid key

    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 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);  // Valor para o código da Chave
		if (strCheck.indexOf(key) == -1) return false;
  // Chave inválida
		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;
}
//Fim da Função FormataReais -->

//onKeyPress="return Mask(this, '##/##/####', event);
function Mask(e, m, cEvn){
    var nKey = ( !window.event ? cEvn.which : cEvn.keyCode );
    var ev = e.value + String.fromCharCode(nKey);
    var cIndx = -1;
    var Out = '';
    var cChar = '';
    var mChar = ''
    var nChar = '';
    var Hold = '';
    var rx;
    for(var i=0; i<m.length; i++){
        mChar = m.substr(i, 1)
        if(mChar=='#' || mChar=='@'){
            if(mChar=='#'){ rx = /\d/; } else if(mChar=='@'){rx = /[a-zA-Z]/; }
            cChar = ev.substr(++cIndx, 1);
            if(m.substr(i+1,1)!='*') cChar.toString();
            while(cIndx < ev.length && !rx.test(cChar)) cChar = ev.substr(++cIndx, 1);
            if (cIndx < ev.length && rx.test(cChar)){
                Out += Hold + ev.substr(cIndx,1);
                Hold = '';
                if(m.substr(i+1,1)=='*' || m.substr(i+1,1)=='+'){
                    nChar = ev.substr(cIndx+1, 1);
                    while(cIndx < ev.length && rx.test(nChar)){
                        Out += nChar;
                        nChar = ev.substr(++cIndx+1, 1);
                    }
                }
            } else if (cIndx < ev.length && m.substr(i+1,1)=='*'){
                --cIndx;
            }
        } else if(mChar!='*' && mChar!='+') {
            if(ev.substr(cIndx+1, 1).toLowerCase()==mChar.toLowerCase()){
                Out += mChar;
                cIndx++;
            } else {
                Hold += mChar;
            }
        }
    }
    e.value = Out;
    return false;
}

function isDate(strData){

var dia, mes, ano;

//critica valor de um campo de data

if(strData.length < 10) return false;

mes = strData.substr(3,2);

if(mes > "12" || mes == "00")

return false;

dia = strData.substr(0,2);

if(dia=="00") return false;

ano = strData.substr(6,4);

if (ano < "0200") return false;

if (mes=="01"||mes=="03"||mes=="05"||mes=="07"||mes=="08"||mes=="10"||mes=="12"){

if (dia > "31")

return false;

}

if(mes=="04"||mes=="06"||mes=="09"||mes=="11"){

if (dia > "30")

return false;

}

if(mes=="02"){

if((parseInt(ano) % 4) ==0){

if (dia > "29")

return false;

}

else

if (dia > "28") return false;

}

return true;

}

function CriticaData(objeto){

if (objeto.value=="") return true;

var resultado=isDate(objeto.value);

if (resultado==false) {

alert("A data digitada não é válida, por favor corrija a digitação !");

objeto.focus();

return false;

}

return true;

}


function errValorImovel2()
{
    var str;
    str=document.form1.simulador_VlImovel.value;
   
    while(str.indexOf('.')>-1){str=str.replace('.','');}
    
    while(str.indexOf(',')>-1){str=str.replace(',','.');}
        
    
    if(document.form1.simulador_optResidencial.checked || document.form1.simulador_optComercial.checked || document.form1.simulador_optTerreno.checked){
         if(document.form1.simulador_optResidencial.checked || document.form1.simulador_optComercial.checked){
               if(parseFloat(str) > 3000000){
                 alert('O valor Máximo é de 3.000.000,00');
                 document.form1.simulador_VlImovel.focus();
                 return false
               }
         }
         else if(parseFloat(str) > 500000){
            if (document.form1.simulador_optTerreno.checked){
                alert('O valor Máximo é de 500.000,00');
                document.form1.simulador_VlImovel.focus();
                return false
            }
         }
         else 
         return true

     }   
}


function validaMeses(){
  
  var prz = document.form1.simulador_VlPrazo.value;
  if(document.form1.simulador_optResidencial.checked || document.form1.simulador_optTerreno.checked){
         if (prz > 300){
         alert("O Prazo Máximo é de 300 Meses"); 
         document.form1.simulador_VlPrazo.focus();
         return false
       }
       else
       {
       return true
       }     
  }
  
  if (document.form1.simulador_optComercial.checked){
        if (prz > 120){
           alert("O Prazo Máximo é de 120 Meses!");
           document.form1.simulador_VlPrazo.focus();
           return false
        } 
        else 
        {
           return true
        }
  }
}

function errVlFinanciamento()
{
    var intImovel, intFinan;
    
    if(document.form1.simulador_VlImovel.value!="")
    {
        intImovel=document.form1.simulador_VlImovel.value;
        intFinan=document.form1.simulador_VlFinan.value;

        while(intImovel.indexOf('.')>-1){intImovel=intImovel.replace('.','');}
        while(intImovel.indexOf(',')>-1){intImovel=intImovel.replace(',','.');}
        
        while(intFinan.indexOf('.')>-1){intFinan=intFinan.replace('.','');}
        while(intFinan.indexOf(',')>-1){intFinan=intFinan.replace(',','.');}
        
            
        if(intFinan > intImovel*0.8 &&  document.form1.simulador_optResidencial.checked )
        {
            alert("O valor do financiamento deve ser no máximo 80% do valor do imóvel"); 
            document.form1.simulador_VlFinan.focus();
            return false      
        }
        else if( intFinan > intImovel*0.6 && ( document.form1.simulador_optTerreno.checked || document.form1.simulador_optComercial.checked) )
        {
            alert("O valor do financiamento deve ser no máximo 60% do valor do imóvel"); 
            document.form1.simulador_VlFinan.focus();
            return false      
        }
        else
            return true     
   }
   else
        return true
}



//
function  Limpa(objeto){
if(objeto.value!="")
    {
        objeto.value='';
        objeto.focus();
    }
}

