﻿function AplicarMascaraTelefone(p_objEvento, p_objCtrl) {
    if (p_objEvento.shiftKey) return false;

    /* Ctrl + V */
    if (p_objEvento.ctrlKey && (p_objEvento.keyCode == 86 || p_objEvento.keyCode == 118)) {
        return true;
    }

    /*Bloqueia teclas invalidas*/
    if (p_objEvento.keyCode == 8 || p_objEvento.keyCode == 46 || p_objEvento.keyCode == 9) {
        return true;
    }

    if ((p_objEvento.keyCode < 95 || p_objEvento.keyCode > 105) && (p_objEvento.keyCode < 48 || p_objEvento.keyCode > 57)) {
        return false;
    }

    /*Remove Caracteres Especiais*/
    while (p_objCtrl.value.indexOf("(") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace("(", "");
    }

    while (p_objCtrl.value.indexOf(")") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace(")", "");
    }

    while (p_objCtrl.value.indexOf(" ") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace(" ", "");
    }

    while (p_objCtrl.value.indexOf("-") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace("-", "");
    }

    /*Aplica Mascara*/
    if (p_objCtrl.value.length >= 0) {
        p_objCtrl.value = "(" + p_objCtrl.value;
    }

    if (p_objCtrl.value.length >= 3) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 3) + ") " + p_objCtrl.value.substr(3);
    }

    if (p_objCtrl.value.length >= 9) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 9) + "-" + p_objCtrl.value.substr(9);
    }

    return true;
}

// ---------------
function changeSelectedTab(pobjTabContainer) {
    var strAttribute = null;
    var objControl = null;
    var objHiddenControl = pobjTabContainer.getElementsByTagName("INPUT")[0];
    var arrDIVS = null;

    if (objHiddenControl == null || objHiddenControl.nodeName.toUpperCase() != "INPUT" ||
        objHiddenControl.type.toUpperCase() != "HIDDEN") {
        return;
    }

    for (var i = 0; i < pobjTabContainer.childNodes.length; i++) {
        strAttribute = null;
        if (pobjTabContainer.childNodes[i].nodeName.toUpperCase() == "DIV") {
            strAttribute = pobjTabContainer.childNodes[i].firstChild.value;
        }
        if (strAttribute == null || strAttribute.length == 0) {
            continue;
        }
        objControl = document.getElementById(strAttribute);
        if (objControl == null) {
            continue;
        }

        arrDIVS = pobjTabContainer.childNodes[i].getElementsByTagName("DIV");

        if (strAttribute == objHiddenControl.value) {
            objControl.style.display = "inline";
            arrDIVS[0].className = arrDIVS[0].className.replace("_selected", "") + "_selected";
            arrDIVS[1].className = arrDIVS[1].className.replace("_selected", "") + "_selected";
            arrDIVS[2].className = arrDIVS[2].className.replace("_selected", "") + "_selected";
        } else {
            objControl.style.display = "none";
            arrDIVS[0].className = arrDIVS[0].className.replace("_selected", "");
            arrDIVS[1].className = arrDIVS[1].className.replace("_selected", "");
            arrDIVS[2].className = arrDIVS[2].className.replace("_selected", "");
        }
    }
}

function changeTab(pobjTabControl) {
    var objHiddenControl = pobjTabControl.parentNode.getElementsByTagName("INPUT")[0];

    if (objHiddenControl == null || objHiddenControl.nodeName.toUpperCase() != "INPUT" ||
        objHiddenControl.type.toUpperCase() != "HIDDEN") {
        return false;
    }

    if (objHiddenControl != null) {
        objHiddenControl.value = pobjTabControl.firstChild.value;
        changeSelectedTab(pobjTabControl.parentNode);
    }
    return false;
}

// ---------------

function verifySpecialKeys(pobjEvent) {
    if (pobjEvent.type == "keypress") {
        if (document.all) {
            return false;
        }
        return (pobjEvent.keyCode > 0);
    } else {
        return (pobjEvent.keyCode == 8 ||
            pobjEvent.keyCode == 9 ||
            pobjEvent.keyCode == 13 ||
            pobjEvent.keyCode == 33 ||
            pobjEvent.keyCode == 34 ||
            pobjEvent.keyCode == 35 ||
            pobjEvent.keyCode == 36 ||
            pobjEvent.keyCode == 37 ||
            pobjEvent.keyCode == 38 ||
            pobjEvent.keyCode == 39 ||
            pobjEvent.keyCode == 40 ||
            pobjEvent.keyCode == 46 ||
            pobjEvent.keyCode == 116);
    }
}

// ---------------

function applyUpperCase(pobjEvent, pobjCtrl) {
    if (verifySpecialKeys(pobjEvent)) {
        return true;
    }
    //pobjCtrl.value = pobjCtrl.value.toUpperCase();
    return true;
}

// ---------------

function verifyAllowedValues(pobjEvent) {
   
    var intKeyCode = document.all ? pobjEvent.keyCode : pobjEvent.which;
    var chrDigit = String.fromCharCode(intKeyCode)

    if (intKeyCode == 194 || intKeyCode == 110)
        return false;
    
    if (("0123456789ABCDEFGHIJKLMNOPQRSTUVXWYZ_ abcdefghijklmnopqrstuvxwyz").indexOf(chrDigit) >= 0) {
        if (document.all) {
            pobjEvent.keyCode = chrDigit.charCodeAt(0);
        }
        else {
            var newEvent = document.createEvent("KeyEvents");
            newEvent.initKeyEvent("keypress", true, true, document.defaultView,
                     pobjEvent.ctrlKey, pobjEvent.altKey, pobjEvent.shiftKey,
                     pobjEvent.metaKey, 0, chrDigit.charCodeAt(0));
            pobjEvent.preventDefault();
            pobjEvent.target.dispatchEvent(newEvent);
        }
        return true;
    }
    return false;
}

function validateAllowedValues(pobjCtrl) {
    //pobjCtrl.value = pobjCtrl.value.toUpperCase();
    for (var i = 0; i < pobjCtrl.value.length; i++) {
        if (("0123456789ABCDEFGHIJKLMNOPQRSTUVXWYZ_ abcdefghijklmnopqrstuvxwyz").indexOf(pobjCtrl.value.substr(i, 1)) < 0) {
            alert(_strMessageInvalidChar);
            pobjCtrl.focus();
            return false;
        }
    }
    return true;
}

// ---------------

function verifyOnlyEmailChars(pobjEvent) {
    if (verifySpecialKeys(pobjEvent)) {
        return true;
    }
    var intKeyCode = document.all ? pobjEvent.keyCode : pobjEvent.which;
    var chrDigit = String.fromCharCode(intKeyCode).toLowerCase();
    if (("abcdefghijklmnopqrstuvxwyz@0123456789-_.").indexOf(chrDigit) >= 0) {
        if (document.all) {
            pobjEvent.keyCode = chrDigit.charCodeAt(0);
        }
        else {
            var newEvent = document.createEvent("KeyEvents");
            newEvent.initKeyEvent("keypress", true, true, document.defaultView,
                     pobjEvent.ctrlKey, pobjEvent.altKey, pobjEvent.shiftKey,
                     pobjEvent.metaKey, 0, chrDigit.charCodeAt(0));
            pobjEvent.preventDefault();
            pobjEvent.target.dispatchEvent(newEvent);
        }
        return true;
    }
    return false;
}

function validateOnlyEmailChars(pobjCtrl) {
    if (pobjCtrl.value.length == 0) {
        return true;
    }

    if (pobjCtrl.value.indexOf("@") < 0 ||
        pobjCtrl.value.substr(pobjCtrl.value.length - 1, 1) == "@") {
        alert(_strMessageInvalidEmail);
        pobjCtrl.focus();
        return false;
    }

    var blnAt = false;

    for (var i = 0; i < pobjCtrl.value.length; i++) {
        if (pobjCtrl.value.substr(i, 1) == "@") {
            if (blnAt) {
                alert(_strMessageInvalidEmail);
                pobjCtrl.focus();
                return false;
            }
            blnAt = true;
        }
        if (("abcdefghijklmnopqrstuvxwyz@0123456789-_.").indexOf(pobjCtrl.value.substr(i, 1)) < 0) {
            alert(_strMessageInvalidEmail);
            pobjCtrl.focus();
            return false;
        }
    }
    return true;
}

// ---------------

function verifyOnlyText(pobjEvent) {
    if (verifySpecialKeys(pobjEvent)) {
        return true;
    }
    var intKeyCode = document.all ? pobjEvent.keyCode : pobjEvent.which;
    var chrDigit = String.fromCharCode(intKeyCode);
    if (("ABCDEFGHIJKLMNOPQRSTUVXWYZÁÀÃÂÄÉÈÊËÍÌÏÎÓÒÔÕÖÚÙÛÜÇ abcdefghijklmnopqrstuvxwyz").indexOf(chrDigit) >= 0) {
        if (document.all) {
            pobjEvent.keyCode = chrDigit.charCodeAt(0);
        }
        else {
            var newEvent = document.createEvent("KeyEvents");
            newEvent.initKeyEvent("keypress", true, true, document.defaultView,
                     pobjEvent.ctrlKey, pobjEvent.altKey, pobjEvent.shiftKey,
                     pobjEvent.metaKey, 0, chrDigit.charCodeAt(0));
            pobjEvent.preventDefault();
            pobjEvent.target.dispatchEvent(newEvent);
        }
        return true;
    }
    return false;
}

function validateOnlyText(pobjCtrl) {
    //pobjCtrl.value = pobjCtrl.value.toUpperCase();
    for (var i = 0; i < pobjCtrl.value.length; i++) {
        if (("ABCDEFGHIJKLMNOPQRSTUVXWYZÁÀÃÂÄÉÈÊËÍÌÏÎÓÒÔÕÖÚÙÛÜÇ abcdefghijklmnopqrstuvxwyz").indexOf(pobjCtrl.value.substr(i, 1)) < 0) {
            alert(_strMessageInvalidDigit);
            pobjCtrl.focus();
            return false;
        }
    }
    return true;
}

// ---------------

function verifyOnlyNumbers(pobjEvent) {
    if (verifySpecialKeys(pobjEvent)) {
        return true;
    }
    var intKeyCode = document.all ? pobjEvent.keyCode : pobjEvent.which;
    var chrDigit = String.fromCharCode(intKeyCode);
    if (("0123456789").indexOf(chrDigit) >= 0) {
        return true;
    }
    return false;
}

function validateOnlyNumbers(pobjCtrl) {
    for (var i = 0; i < pobjCtrl.value.length; i++) {
        if (("0123456789").indexOf(pobjCtrl.value.substr(i, 1)) < 0) {
            alert(_strMessageInvalidNumber);
            pobjCtrl.focus();
            return false;
        }
    }
    return true;
}

// ---------------

function applyOnlyDecimalNumbers(pobjCtrl) {
    var strValor = pobjCtrl.value.replace(",", "");

    strValor = strValor.length > 0 ? parseFloat(strValor).toString() : "";

    strValor = strValor.replace(".", "");

    while (strValor.length < 3) {
        strValor = "0" + strValor;
    }

    pobjCtrl.value = strValor.substr(0, strValor.length - 2) + "," +
        strValor.substr(strValor.length - 2);

    return true;
}

//function verifyOnlyDecimalNumbers(pobjEvent, pobjCtrl) {
//    if (verifySpecialKeys(pobjEvent)) {
//        return true;
//    }

//    var intKeyCode = document.all ? pobjEvent.keyCode : pobjEvent.which;
//    var chrDigit = String.fromCharCode(intKeyCode);
//    
//    if (("0123456789").indexOf(chrDigit) < 0) {
//        return false;
//    }
//    
//    var strValor = pobjCtrl.value.replace(",", ".");
//    
//    strValor = strValor.length > 0 ? parseFloat(strValor).toString() : "";
//    
//    strValor = strValor.replace(".", "");
//    
//    while (strValor.length < 2) {
//        strValor = "0" + strValor;
//    }
//    
//    pobjCtrl.value = strValor.substr(0, strValor.length - 1) + "," +
//        strValor.substr(strValor.length - 1);
//    
//    return true;
//}

function validateOnlyDecimalNumbers(pobjCtrl) {
    var blnComma = false;
    if (pobjCtrl.value.substr(0, 1) == ",") {
        alert(_strMessageInvalidNumber);
        pobjCtrl.focus();
        return false;
    }
    for (var i = 0; i < pobjCtrl.value.length; i++) {
        if (pobjCtrl.value.substr(i, 1) == ",") {
            if (blnComma) {
                alert(_strMessageInvalidNumber);
                pobjCtrl.focus();
                return false;
            }
            blnComma = true;
            continue;
        }
        if (("0123456789").indexOf(pobjCtrl.value.substr(i, 1)) < 0) {
            alert(_strMessageInvalidNumber);
            pobjCtrl.focus();
            return false;
        }
    }
    return true;
}

// ---------------

function verifyOnlyBoolean(pobjEvent) {
    if (verifySpecialKeys(pobjEvent)) {
        return true;
    }
    var intKeyCode = document.all ? pobjEvent.keyCode : pobjEvent.which;
    var chrDigit = String.fromCharCode(intKeyCode).toUpperCase();
    if (("SN").indexOf(chrDigit) >= 0) {
        if (document.all) {
            pobjEvent.keyCode = chrDigit.charCodeAt(0);
        }
        else {
            var newEvent = document.createEvent("KeyEvents");
            newEvent.initKeyEvent("keypress", true, true, document.defaultView,
                     pobjEvent.ctrlKey, pobjEvent.altKey, pobjEvent.shiftKey,
                     pobjEvent.metaKey, 0, chrDigit.charCodeAt(0));
            pobjEvent.preventDefault();
            pobjEvent.target.dispatchEvent(newEvent);
        }
        return true;
    }
    return false;
}

function validateOnlyBoolean(pobjCtrl) {
    for (var i = 0; i < pobjCtrl.value.length; i++) {
        if (("SN").indexOf(pobjCtrl.value.substr(i, 1)) < 0) {
            alert(_strMessageInvalidBoolean);
            pobjCtrl.focus();
            return false;
        }
    }
    return true;
}

// ---------------

function verifyBadChars(pobjEvent) {
    if (verifySpecialKeys(pobjEvent)) {
        return true;
    }
    var intKeyCode = document.all ? pobjEvent.keyCode : pobjEvent.which;
    var chrDigit = String.fromCharCode(intKeyCode);
    if (("'\"<>").indexOf(chrDigit) >= 0) {
        return false;
    }
    return true;
}

function validateBadChars(pobjCtrl) {
    var strBadChars = "'\"<>";
    for (var i = 0; i < strBadChars.length; i++) {
        while (pobjCtrl.value.indexOf(strBadChars.substr(i, 1)) >= 0) {
            pobjCtrl.value = pobjCtrl.value.replace(strBadChars.substr(i, 1), "");
        }
    }
    return true;
}

// ---------------

function verifyCalendarMask(pobjEvent, pobjCtrl) {
    if (verifySpecialKeys(pobjEvent)) {
        return true;
    }
    var intKeyCode = document.all ? pobjEvent.keyCode : pobjEvent.which;
    var chrDigit = String.fromCharCode(intKeyCode);
    if (("0123456789").indexOf(chrDigit) >= 0) {
        while (pobjCtrl.value.indexOf("/") >= 0) {
            pobjCtrl.value = pobjCtrl.value.replace("/", "");
        }
        if (pobjCtrl.value.length > 2) {
            pobjCtrl.value = pobjCtrl.value.substr(0, 2) + "/" + pobjCtrl.value.substr(2);
        }
        if (pobjCtrl.value.length > 5) {
            pobjCtrl.value = pobjCtrl.value.substr(0, 5) + "/" + pobjCtrl.value.substr(5);
        }
        return true;
    }
    return false;
}

function validateDate(pobjCtrl) {
    if (pobjCtrl.value == 0) {
        return true;
    }
    if (pobjCtrl.value.length != 10) {
        alert(_strMessageInvalidDate);
        pobjCtrl.focus();
        return false;
    }
    var arrSplit = pobjCtrl.value.split("/");
    if (arrSplit.length != 3) {
        alert(_strMessageInvalidDate);
        pobjCtrl.focus();
        return false;
    }
    var intDay = parseFloat(arrSplit[0]);
    var intMonth = parseFloat(arrSplit[1]);
    var intYear = parseFloat(arrSplit[2]);
    if (intDay < 1 || intDay > 31 ||
        intMonth < 1 || intMonth > 12 ||
        intYear < 1900 || intYear > 2100) {
        alert(_strMessageInvalidDate);
        pobjCtrl.focus();
        return false;
    }
    if ((intMonth == 2 || intMonth == 4 || intMonth == 6 ||
        intMonth == 9 || intMonth == 11) && intDay > 30) {
        alert(_strMessageInvalidDate);
        pobjCtrl.focus();
        return false;
    }
    if (intMonth == 2 && ((intYear % 4 == 0 && intDay > 29) ||
        (intYear % 4 != 0 && intDay > 28))) {
        alert(_strMessageInvalidDate);
        pobjCtrl.focus();
        return false;
    }
    return true;
}

function VerificarData(p_objCtrl) {
    for (var i = 0; i < p_objCtrl.value.length; i++) {
        if (i == 2 || i == 5) {
            if (p_objCtrl.value.substr(i, 1) != "/") {
                alert(_strInvalidDateTimeMessage);
                p_objCtrl.focus();
                return false;
            } else {
                continue;
            }
        }

        if (("0123456789").indexOf(p_objCtrl.value.substr(i, 1)) < 0) {
            alert(_strInvalidDateTimeMessage);
            p_objCtrl.focus();
            return false;
        }
    }

    if (p_objCtrl.value.length == 0) {
        return true;
    }

    if (p_objCtrl.value.length != 10) {
        alert(_strInvalidDateTimeMessage);
        p_objCtrl.focus();
        return false;
    }

    var dia = (p_objCtrl.value.substr(0, 2));
    var mes = (p_objCtrl.value.substr(3, 2));
    var ano = (p_objCtrl.value.substr(6, 4));

    // verifica o dia valido para cada mes 
    if ((dia < 1) || (dia < 1 || dia > 30) && (mes == 4 || mes == 6 || mes == 9 || mes == 11) || dia > 31) {
        alert(_strInvalidDateTimeMessage);
        p_objCtrl.focus();
        return false;
    }

    // verifica se o mes e valido 
    if (mes < 01 || mes > 12) {
        alert(_strInvalidDateTimeMessage);
        p_objCtrl.focus();
        return false;
    }

    // verifica se o ano é valido
    if (ano < 1900 || ano > 2100) {
        alert(_strInvalidDateTimeMessage);
        p_objCtrl.focus();
        return false;
    }

    // verifica se e ano bissexto 
    if (mes == 2 && (dia < 01 || dia > 29 || (dia > 28 && (parseInt(ano / 4) != 0)))) {
        alert(_strInvalidDateTimeMessage);
        p_objCtrl.focus();
        return false;
    }
    return true;
}

function AplicarMascaraData(p_objEvento, p_objCtrl) {
    if (p_objEvento.shiftKey) return false;

    if (p_objEvento.keyCode == 8 || p_objEvento.keyCode == 46 || p_objEvento.keyCode == 9) {
        return true;
    }
    if ((p_objEvento.keyCode < 95 || p_objEvento.keyCode > 105) && (p_objEvento.keyCode < 48 || p_objEvento.keyCode > 57)) {
        return false;
    }
    while (p_objCtrl.value.indexOf("/") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace("/", "");
    }
    if (p_objCtrl.value.length >= 2) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 2) + "/" + p_objCtrl.value.substr(2);
    }
    if (p_objCtrl.value.length >= 5) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 5) + "/" + p_objCtrl.value.substr(5);
    }
    return true;
}


//Mascara de CPF
function AplicarMascaraCPF(p_objEvento, p_objCtrl) {
    if (p_objEvento.shiftKey) return false;

    /* Ctrl + V */
    if (p_objEvento.ctrlKey && (p_objEvento.keyCode == 86 || p_objEvento.keyCode == 118)) {
        return true;
    }
    
    /*Bloqueia teclas invalidas*/
    if (p_objEvento.keyCode == 8 || p_objEvento.keyCode == 46 || p_objEvento.keyCode == 9) {
        return true;
    }
    
    if ((p_objEvento.keyCode < 95 || p_objEvento.keyCode > 105) && (p_objEvento.keyCode < 48 || p_objEvento.keyCode > 57)) {
        return false;
    }
    
    /*Remove Caracteres Especiais*/
    while (p_objCtrl.value.indexOf(".") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace(".", "");
    }

    while (p_objCtrl.value.indexOf("-") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace("-", "");
    }

    while (p_objCtrl.value.indexOf(" ") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace(" ", "");
    }  

    /*Aplica Mascara*/
    if (p_objCtrl.value.length >= 3) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 3) + "." + p_objCtrl.value.substr(3);
    }

    if (p_objCtrl.value.length >= 7) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 7) + "." + p_objCtrl.value.substr(7);
    }

    if (p_objCtrl.value.length >= 11) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 11) + "-" + p_objCtrl.value.substr(11);
    }

    return true;
}

function AplicarMascaraCEP(p_objEvento, p_objCtrl) {
    if (p_objEvento.shiftKey) return false;

    /* Ctrl + V */
    if (p_objEvento.ctrlKey && (p_objEvento.keyCode == 86 || p_objEvento.keyCode == 118)) {
        return true;
    }

    /*Bloqueia teclas invalidas*/
    if (p_objEvento.keyCode == 8 || p_objEvento.keyCode == 46 || p_objEvento.keyCode == 9) {
        return true;
    }

    if ((p_objEvento.keyCode < 95 || p_objEvento.keyCode > 105) && (p_objEvento.keyCode < 48 || p_objEvento.keyCode > 57)) {
        return false;
    }
    
    /*Remove Caracteres Especiais*/
    while (p_objCtrl.value.indexOf("-") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace("-", "");
    }

    /*Aplica Mascara*/
    if (p_objCtrl.value.length >= 5) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 5) + "-" + p_objCtrl.value.substr(5);
    }
    
    return true;
}

function AplicarMascaraRG(p_objEvento, p_objCtrl) { return;
    if (p_objEvento.shiftKey) return false;

    /* Ctrl + V */
    if (p_objEvento.ctrlKey && (p_objEvento.keyCode == 86 || p_objEvento.keyCode == 118)) {
        return true;
    }

    /*Bloqueia teclas invalidas*/
    if (p_objEvento.keyCode == 8 || p_objEvento.keyCode == 46 || p_objEvento.keyCode == 9) {
        return true;
    }

    if ((p_objEvento.keyCode < 95 || p_objEvento.keyCode > 105) && (p_objEvento.keyCode < 48 || p_objEvento.keyCode > 57)) {
        return false;
    }

    /*Remove Caracteres Especiais*/
    while (p_objCtrl.value.indexOf("-") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace("-", "");
    }

    while (p_objCtrl.value.indexOf(".") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace(".", "");
    }

    /*Aplica Mascara*/
    if (p_objCtrl.value.length >= 2) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 2) + "." + p_objCtrl.value.substr(2);
    }

    if (p_objCtrl.value.length >= 6) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 6) + "." + p_objCtrl.value.substr(6);
    }

    if (p_objCtrl.value.length >= 10) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 10) + "-" + p_objCtrl.value.substr(10);
    }

    return true;
}

function AplicarMascaraCNPJ(p_objEvento, p_objCtrl) {
    if (p_objEvento.shiftKey) return false;

    /* Ctrl + V */
    if (p_objEvento.ctrlKey && (p_objEvento.keyCode == 86 || p_objEvento.keyCode == 118)) {
        return true;
    }
    
    /*Bloqueia teclas invalidas*/
    if (p_objEvento.keyCode == 8 || p_objEvento.keyCode == 46 || p_objEvento.keyCode == 9) {
        return true;
    }

    if ((p_objEvento.keyCode < 95 || p_objEvento.keyCode > 105) && (p_objEvento.keyCode < 48 || p_objEvento.keyCode > 57)) {
        return false;
    }

    /*Remove Caracteres Especiais*/
    while (p_objCtrl.value.indexOf("-") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace("-", "");
    }

    while (p_objCtrl.value.indexOf(".") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace(".", "");
    }

    while (p_objCtrl.value.indexOf("/") >= 0) {
        p_objCtrl.value = p_objCtrl.value.replace("/", "");
    }
    /*Aplica Mascara*/
    if (p_objCtrl.value.length >= 2) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 2) + "." + p_objCtrl.value.substr(2);
    }

    if (p_objCtrl.value.length >= 6) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 6) + "." + p_objCtrl.value.substr(6);
    }

    if (p_objCtrl.value.length >= 10) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 10) + "/" + p_objCtrl.value.substr(10);
    }

    if (p_objCtrl.value.length >= 15) {
        p_objCtrl.value = p_objCtrl.value.substr(0, 15) + "-" + p_objCtrl.value.substr(15);
    }

    return true;
}