var elem;
/*Função Pai de Mascaras*/
function Mascara(o, f) {
    v_obj = o
    v_fun = f
    elem = o.id
    setTimeout("execmascara()", 1)
}

/*Função que Executa os objetos*/
function execmascara() {
    v_obj.value = v_fun(v_obj.value)
     
}

/*Função que Determina as expressões regulares dos objetos*/
function leech(v) {
    v = v.replace(/o/gi, "0")
    v = v.replace(/i/gi, "1")
    v = v.replace(/z/gi, "2")
    v = v.replace(/e/gi, "3")
    v = v.replace(/a/gi, "4")
    v = v.replace(/s/gi, "5")
    v = v.replace(/t/gi, "7")
    return v
}

/*Função que permite apenas numeros*/
function Integer(v) {
    return v.replace(/\D/g, "")
}

/*Função que padroniza telefone (11) 4184-1241*/
function Telefone(v) {
    v = v.replace(/\D/g, "")
    v = v.replace(/^(\d\d)(\d)/g, "($1) $2")
    v = v.replace(/(\d{4})(\d)/, "$1-$2")
    return v
}

function DDD(v) {
    v = v.replace(/\D/g, "")
    v = v.replace(/(\d{2})/, "($1)")
    // if (v.length == 4 && elem == 'ctl00_ContentPrincipal_txtTelDDD1') document.getElementById('ctl00_ContentPrincipal_txtTel1').focus();
   // if (v.length == 4 && elem == 'ctl00_ContentPrincipal_txtTelDDD2') document.getElementById('ctl00_ContentPrincipal_txtTel2').focus();
    return v
}

function Tels(v) {
    v = v.replace(/\D/g, "")
    v = v.replace(/(\d{4})(\d)/, "$1-$2")
    return v
}

/*Função que padroniza telefone (11) 41841241*/
function TelefoneCall(v) {
    v = v.replace(/\D/g, "")
    v = v.replace(/^(\d\d)(\d)/g, "($1) $2")
    return v
}

/*Função que padroniza CPF*/
function Cpf(v) {
    v = v.replace(/\D/g, "")
    v = v.replace(/(\d{3})(\d)/, "$1.$2")
    v = v.replace(/(\d{3})(\d)/, "$1.$2")

    v = v.replace(/(\d{3})(\d{1,2})$/, "$1-$2")
    return v
}

/*Função que padroniza CEP*/
function Cep(v) {
    v = v.replace(/\D/g, "")
    v = v.replace(/^(\d{5})(\d)/, "$1-$2")
    return v
}

/*Função que padroniza CNPJ*/
function Cnpj(v) {
    v = v.replace(/\D/g, "")
    v = v.replace(/^(\d{2})(\d)/, "$1.$2")
    v = v.replace(/^(\d{2})\.(\d{3})(\d)/, "$1.$2.$3")
    v = v.replace(/\.(\d{3})(\d)/, ".$1/$2")
    v = v.replace(/(\d{4})(\d)/, "$1-$2")
    return v
}

/*Função que permite apenas numeros Romanos*/
function Romanos(v) {
    v = v.toUpperCase()
    v = v.replace(/[^IVXLCDM]/g, "")

    while (v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/, "") != "")
        v = v.replace(/.$/, "")
    return v
}

/*Função que padroniza o Site*/
function Site(v) {
    v = v.replace(/^http:\/\/?/, "")
    dominio = v
    caminho = ""
    if (v.indexOf("/") > -1)
        dominio = v.split("/")[0]
    caminho = v.replace(/[^\/]*/, "")
    dominio = dominio.replace(/[^\w\.\+-:@]/g, "")
    caminho = caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g, "")
    caminho = caminho.replace(/([\?&])=/, "$1")
    if (caminho != "") dominio = dominio.replace(/\.+$/, "")
    v = "http://" + dominio + caminho
    return v
}

/*Função que padroniza DATA*/
function Data(v) {
    v = v.replace(/\D/g, "")
    v = v.replace(/(\d{2})(\d)/, "$1/$2")
    v = v.replace(/(\d{2})(\d)/, "$1/$2")
    return v
}

/*Função que padroniza DATA*/
function Hora(v) {
    v = v.replace(/\D/g, "")
    v = v.replace(/(\d{2})(\d)/, "$1:$2")
    return v
}

/*Função que padroniza valor monétario*/
function Valor(v) {

    v = v.replace(/\D/g, "") //Remove tudo o que não é dígito

    //alert(v.length)

    v = v.replace(/^(\d{1})(\d{3})(\d{3})(\d{3})(\d{2}$)/, "$1.$2.$3.$4,$5")
    v = v.replace(/^(\d{1,3})(\d{3})(\d{3})(\d{2}$)/, "$1.$2.$3,$4")
    v = v.replace(/^(\d{1,3})(\d{3})(\d{2}$)/, "$1.$2,$3")
    v = v.replace(/(\d)(\d{2})$/, "$1,$2")

    return v
}

/*Função que padroniza Area*/
function Area(v) {
    v = v.replace(/\D/g, "")
    v = v.replace(/(\d)(\d{2})$/, "$1.$2")
    return v

}


function Verifica_Data(data1, obrigatorio) {
    //Se o parâmetro obrigatório for igual a zero, significa que ele pode estar vazio, caso contrário, não  
    var data = document.getElementById(data1);
    var strdata = data.value;
    if ((obrigatorio == 1) || (obrigatorio == 0 && strdata != "")) {
        //Verifica a quantidade de digitos informada esta correta.  
        if (strdata.length != 10) {
            alert("Formato da data não é válido. Formato correto: - dd/mm/aaaa.");
            data.focus();
            return false
        }
        //Verifica máscara da data  
        if ("/" != strdata.substr(2, 1) || "/" != strdata.substr(5, 1)) {
            alert("Formato da data não é válido. Formato correto: - dd/mm/aaaa.");
            data.focus();
            return false
        }
        dia = strdata.substr(0, 2)
        mes = strdata.substr(3, 2);
        ano = strdata.substr(6, 4);
        //Verifica o dia  
        if (isNaN(dia) || dia > 31 || dia < 1) {
            alert("Formato do dia não é válido.");
            data.focus();
            return false
        }
        if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
            if (dia == "31") {
                alert("O mês informado não possui 31 dias.");
                data.focus();
                return false
            }
        }
        if (mes == "02") {
            bissexto = ano % 4;
            if (bissexto == 0) {
                if (dia > 29) {
                    alert("O mês informado possui somente 29 dias.");
                    data.focus();
                    return false
                }
            } else {
                if (dia > 28) {
                    alert("O mês informado possui somente 28 dias.");
                    data.focus();
                    return false
                }
            }
        }
        //Verifica o mês  
        if (isNaN(mes) || mes > 12 || mes < 1) {
            alert("Formato do mês não é válido.");
            data.focus();
            return false
        }
        //Verifica o ano  
        if (isNaN(ano)) {
            alert("Formato do ano não é válido.");
            data.focus();
            return false
        }
    }
}

 function Compara_Datas(data_inicial1, data_final1){  
     //Verifica se a data inicial é maior que a data final  
     var data_inicial = document.getElementById(data_inicial1);  
     var data_final   = document.getElementById(data_final1);  
     str_data_inicial = data_inicial.value;  
     str_data_final   = data_final.value;  
     dia_inicial      = data_inicial.value.substr(0,2);  
     dia_final        = data_final.value.substr(0,2);  
     mes_inicial      = data_inicial.value.substr(3,2);  
     mes_final        = data_final.value.substr(3,2);  
     ano_inicial      = data_inicial.value.substr(6,4);  
     ano_final        = data_final.value.substr(6,4);  
     if(ano_inicial > ano_final){  
         alert("A data inicial deve ser menor que a data final.");   
         data_inicial.focus();  
         return false  
     }else{  
     if(ano_inicial == ano_final){  
     if(mes_inicial > mes_final){  
     alert("A data inicial deve ser menor que a data final.");  
                 data_final.focus();  
                 return false  
             }else{  
                 if(mes_inicial == mes_final){  
                     if(dia_inicial > dia_final){  
                         alert("A data inicial deve ser menor que a data final.");  
                         data_final.focus();  
                         return false  
                     }  
                 }  
             }  
         }  
     }  
 }

function Verifica_Cep(cep1, obrigatorio) {
    //Se o parâmetro obrigatório for igual a zero, significa que ele pode estar vazio, caso contrário, não  
    var cep = document.getElementById(cep1);
    var strcep = cep.value;
    if (strcep == 0) {
        alert("Digite um CEP.");
        cep.focus();
        return false;
    }
    if ((obrigatorio == 1) || (obrigatorio == 0 && strcep != "")) {
        if (strcep.length != 9) {
            alert("CEP informado inválido.");
            cep.focus();
            return false;
        } else {
            if (strcep.indexOf("-") != 5) {
                alert("Formato de CEP informado inválido.");
                cep.focus();
                return false
            } else {
                if (isNaN(strcep.replace("-", "0"))) {
                    alert("CEP informado inválido.");
                    cep.focus();
                    return false
                }
            }
        }
    }
}

//valida telefone
function ValidaTelefone(tel) {
    exp = /\(\d{2}\)\ \d{4}\-\d{4}/
    if (!exp.test(tel.value))
        return false;
}

function Valida_Busca() {
  
    if (Verifica_Data("txtChegada", 1) == false) {
        document.getElementById("txtChegada").focus();
        return false;
    }

    if (Verifica_Data("txtSaida", 1) == false) {
        document.getElementById("txtSaida").focus();
        return false;
    }
    if (Compara_Datas("txtChegada", "txtSaida") == false)
        return false;

}
