﻿// Mudança

function alerta(msg) {
    $.pnotify({
        pnotify_title: 'Erro',
        pnotify_text:  msg,
        pnotify_type: 'error',
        pnotify_error_icon: 'ui-icon ui-icon-signal-diag',
        pnotify_delay: 1000
    });
 }
  

function consume_alert() {
		window.alert = function(message) {
			$.pnotify({
				pnotify_title: 'Atenção',
				pnotify_text: message
			});
		};
	}

/**********************************************************************/
function Mascara(strField, sMask) { 
    var i, nCount, sValue, fldLen, mskLen, bolMask, sCod, nTecla;

    objForm = document.forms[0];
    if (document.all) { // Internet Explorer
        nTecla = event.keyCode;
    }
    else if (document.layers) { // Nestcape
        nTecla = event.which;
    }

    if (nTecla == 39) return false;

    sValue = objForm[strField].value;

    // Limpa todos os caracteres de formatação que
    // já estiverem no campo.
    sValue = sValue.toString().replace("-", "");
    sValue = sValue.toString().replace("-", "");
    sValue = sValue.toString().replace(".", "");
    sValue = sValue.toString().replace(".", "");
    sValue = sValue.toString().replace("/", "");
    sValue = sValue.toString().replace("/", "");
    sValue = sValue.toString().replace("(", "");
    sValue = sValue.toString().replace("(", "");
    sValue = sValue.toString().replace(")", "");
    sValue = sValue.toString().replace(")", "");
    sValue = sValue.toString().replace(" ", "");
    sValue = sValue.toString().replace(":", "");
    sValue = sValue.toString().replace(",", "");
    sValue = sValue.toString().replace("$", "");
    fldLen = sValue.length;
    mskLen = sMask.length;

    i = 0;
    nCount = 0;
    sCod = "";
    mskLen = fldLen;

    while (i <= mskLen) {
        bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"));
        bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "));
        bolMask = bolMask || ((sMask.charAt(i) == ":") || (sMask.charAt(i) == "$") || (sMask.charAt(i) == "R") || (sMask.charAt(i) == ","));

        if (bolMask) {
            sCod += sMask.charAt(i);
            mskLen++;
        }
        else {
            sCod += sValue.charAt(nCount);
            nCount++;
        }

        i++;
    }

    objForm[strField].value = sCod;

    if (nTecla != 8) { // backspace
        if (sMask.charAt(i - 1) == "9") { // apenas números...
            return ((nTecla > 47) && (nTecla < 58));
        }
        else if (sMask.charAt(i - 1) == "A") {
            return ((nTecla >= 65) && (nTecla <= 90));
        } // letras
        else { // qualquer caracter...
            return true;
        } 
    }
    else {
        return true;
    }

//************************************************************************//
    function validarData(campo) {// Não funciona //
        var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
        var msgErro = 'Formato inválido de data.';
        var data;

        objForm = document.forms[0];
        data = objForm[campo].value;
        
        if ((data.match(expReg)) && (data.value != '')) {
            var dia = data.value.substring(0, 2);
            var mes = data.value.substring(3, 5);
            var ano = data.value.substring(6, 10);
            if (mes == 4 || mes == 6 || mes == 9 || mes == 11 && dia > 30) {
                alert("Dia incorreto !!! O mês especificado contém no máximo 30 dias.");
                return false;
            } else {
                if (ano % 4 != 0 && mes == 2 && dia > 28) {
                    alert("Data incorreta!! O mês especificado contém no máximo 28 dias.");
                    return false;
                } else {
                    if (ano % 4 == 0 && mes == 2 && dia > 29) {
                        alert("Data incorreta!! O mês especificado contém no máximo 29 dias.");
                        return false;
                    } else {
                        alert("Data correta!");
                        return true;
                    } 
                } 
            } 
        } else {
            alert(msgErro);
            data.focus();
            return false;
        }
    }


       
    }

//**********************************************************************//

function removeEspacos(valor) {
    var valorSemEspacos = "";

    var tamanho = valor.length;
    for (i = 0; i < 30; i++) {
        if (valor.substr(i, 1) == " ") {
        } else {
            valorSemEspacos = valorSemEspacos + valor.substr(i, 1);
        }
    }
    return valorSemEspacos;
}
//**********************************************************************//


function mascara_global(mascara, valor) {
    if (mascara == '###.###.###-##|##.###.###/####-##') {
        if (valor.length > 14) {
            return mascara_global('##.###.###/####-##', valor);
        } else {
            return mascara_global('###.###.###-##', valor);
        }
    }

    tvalor = "";
    ret = "";
    caracter = "#";
    separador = "|";
    mascara_utilizar = "";
    valor = removeEspacos(valor);
    if (valor == "") return valor;
    temp = mascara.split(separador);
    dif = 1000;

    valorm = valor;
    //tirando mascara do valor já existente
    for (i = 0; i < valor.length; i++) {
        if (!isNaN(valor.substr(i, 1))) {
            tvalor = tvalor + valor.substr(i, 1);
        }
    }

    valor = tvalor;

    //formatar mascara dinamica
    for (i = 0; i < temp.length; i++) {
        mult = "";
        validar = 0;
        for (j = 0; j < temp[i].length; j++) {
            if (temp[i].substr(j, 1) == "]") {
                temp[i] = temp[i].substr(j + 1);
                break;
            }
            if (validar == 1) mult = mult + temp[i].substr(j, 1);
            if (temp[i].substr(j, 1) == "[") validar = 1;
        }
        for (j = 0; j < valor.length; j++) {
            temp[i] = mult + temp[i];
        }
    }

    //verificar qual mascara utilizar
    if (temp.length == 1) {
        mascara_utilizar = temp[0];
        mascara_limpa = "";
        for (j = 0; j < mascara_utilizar.length; j++) {
            if (mascara_utilizar.substr(j, 1) == caracter) {
                mascara_limpa = mascara_limpa + caracter;
            }
        }
        tam = mascara_limpa.length;
    } else {
        //limpar caracteres diferente do caracter da máscara
        for (i = 0; i < temp.length; i++) {
            mascara_limpa = "";
            for (j = 0; j < temp[i].length; j++) {
                if (temp[i].substr(j, 1) == caracter) {
                    mascara_limpa = mascara_limpa + caracter;
                }
            }
            if (valor.length > mascara_limpa.length) {
                if (dif > (valor.length - mascara_limpa.length)) {
                    dif = valor.length - mascara_limpa.length;
                    mascara_utilizar = temp[i];
                    tam = mascara_limpa.length;
                }
            } else if (valor.length < mascara_limpa.length) {
                if (dif > (mascara_limpa.length - valor.length)) {
                    dif = mascara_limpa.length - valor.length;
                    mascara_utilizar = temp[i];
                    tam = mascara_limpa.length;
                }
            } else {
                mascara_utilizar = temp[i];
                tam = mascara_limpa.length;
                break;
            }
        }
    }

    //validar tamanho da mascara de acordo com o tamanho do valor
    if (valor.length > tam) {
        valor = valor.substr(0, tam);
    } else if (valor.length < tam) {
        masct = "";
        j = valor.length;
        for (i = mascara_utilizar.length - 1; i >= 0; i--) {
            if (j == 0) break;
            if (mascara_utilizar.substr(i, 1) == caracter) {
                j--;
            }
            masct = mascara_utilizar.substr(i, 1) + masct;
        }
        mascara_utilizar = masct;
    }

    //mascarar
    j = mascara_utilizar.length - 1;
    for (i = valor.length - 1; i >= 0; i--) {
        if (mascara_utilizar.substr(j, 1) != caracter) {
            ret = mascara_utilizar.substr(j, 1) + ret;
            j--;
        }
        ret = valor.substr(i, 1) + ret;
        j--;
    }
    return ret;
}
//*****************************************************************//

function retiraCaracteresSeparacao(Str) {
    var s = "";
    var espaco = "X X";
    var i;

    //Str = trim(Str);
    for (i = 0; i < Str.length; i++) {
        if (Str.charAt(i) != "/" && Str.charAt(i) != "-" && Str.charAt(i) != "." && Str.charAt(i) != "," &&
        Str.charAt(i) != ";" && Str.charAt(i) != "|" && Str.charAt(i) != espaco.charAt(1) && Str.charAt(i) != "\\" &&
        Str.charAt(i) != ":" && Str.charAt(i) != "(" && Str.charAt(i) != ")") {
            s = s + Str.charAt(i);
        }
    }
    return s;
}
/***********************************************************************************/
function eDataValida(Str) {
    vlraux = Str;  //trim(Str);
    if ((vlraux == "") || (vlraux.length != 10) ||
       (vlraux.charAt(2) != "/") || (vlraux.charAt(5) != "/")) {
        return false;
    }

    dia = parseInt(vlraux.substring(0, 2), 10);
    mes = parseInt(vlraux.substring(3, 5), 10);
    ano = parseInt(vlraux.substring(6, 10), 10);

    if (ano < 1840)
        return false;

    if (isNaN(dia) || isNaN(mes) || isNaN(ano) || (mes < 1) || (mes > 12) || (dia < 1)) {
        return false;
    }

    tabmes = "312831303130313130313031";

    if ((dia == 29) && (mes == 2)) {
        if ((ano == 0) || ((ano % 4) != 0)) {
            return false;
        }
        else { return true; }
    }

    k = (mes * 2 - 2);

    if (dia > tabmes.substring(k, k + 2)) {
        return false;
    }
    else { return true; }

    return false;
}

/***********************************************************************************/
function formataData(Campo) {
    var sValue, nTecla;

    objForm = document.forms[0];
    if (document.all) { // Internet Explorer
        nTecla = event.keyCode;
    }
    else if (document.layers) { // Nestcape
        nTecla = event.which;
    }

    if (nTecla == 39) return false;


    sValue = objForm[Campo].value;


    if (sValue != "") {
        sValue = retiraCaracteresSeparacao(sValue);
        vr = sValue;
        tam = vr.length;

        if (tam > 2 && tam < 5)
            sValue = vr.substr(0, tam - 2) + "/" + vr.substr(tam - 2, tam);
        if (tam >= 5 && tam <= 10)
            sValue = vr.substr(0, 2) + "/" + vr.substr(2, 2) + "/" + vr.substr(4, 4);

        if (!eDataValida(sValue)) {
            alerta(sValue + " não é uma data válida.");
            objForm[Campo].value = "";
            objForm[Campo].focus();
        }
        else
            objForm[Campo].value = sValue;
    }
}

/**************************************************************************
Função para simular um Tab quando for pressionado a tecla Enter
Exemplo: onKeyDown="TABEnter()"
Funciona em TEXT BOX,RADIO BUTTON, CHECK BOX e menu DROP-DOWN
**************************************************************************/
function TABEnter(oEvent) {
    var oEvent = (oEvent) ? oEvent : event;
    var oTarget = (oEvent.target) ? oEvent.target : oEvent.srcElement;
    if (oEvent.keyCode == 13)
        oEvent.keyCode = 9;
    if (oTarget.type == "text" && oEvent.keyCode == 13)
    //return false;
        oEvent.keyCode = 9;
    if (oTarget.type == "radio" && oEvent.keyCode == 13)
        oEvent.keyCode = 9;
}
/************************************************************************
Outra função, basta usar no document.onkeydown = tecla_enter;
************************************************************************/


function tecla_enter() {
    var e = event.srcElement.tagName;
    if (event.keyCode == 13 && e != "TEXTAREA") {
        event.keyCode = 9;
        //event.returnValue=false;
    }
    else {
        if (event.keyCode == 8 && e != "INPUT" && e != "TEXTAREA") {
            event.cancelBubble = true;
            event.returnValue = false;
        }
    }
}
/************************************************************************


************************************************************************/


