﻿var isNav4, isNav, isIE;
if (parseInt(navigator.appVersion.charAt(0)) >= 4) {
    isNav = (navigator.appName == "Netscape") ? true : false;
    isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;
}

if (navigator.appName == "Netscape") {
    isNav4 = (parseInt(navigator.appVersion.charAt(0)) == 4);
}

function ConfirmaExclusao() {
    return confirm('Deseja realmente excluir este registro?');
}

// Aceita domente números no Edit
function SomenteNumero() {
    if (event.keyCode < 48 || event.keyCode > 57) {
        return false;
    }
}

/*
* Deixando apenas os números na variavel
*/
function retorna_somente_numero(numero) {
    var validos = "0123456789";
    var numero_ok = '';
    for (i = 0; i < numero.length; i++) {
        if (validos.indexOf(numero.substr(i, 1)) != -1) {
            numero_ok += numero.substr(i, 1);
        }
    }
    return numero_ok;
}

/*
* Deixando apenas letras em uma variavel 
*/
function retorna_somente_letras(letra) {
    var validos = "_abcdefghijklmnopkrstuvxzywçáéíóú ";
    var letra_ok = '';

    for (i = 0; i < letra.length; i++) {
        if (validos.indexOf(letra.substr(i, 1)) != -1) {
            letra_ok += letra.substr(i, 1);
        }
    }
    return letra_ok;
}

function soNumero(e) {
    var keyNumber = (isIE) ? event.keyCode : e.which;
    if (((keyNumber < 48) || (keyNumber > 57)) && (keyNumber != 13) && (keyNumber != "0") && (keyNumber != 8)) {
        if (isIE) {
            event.keyCode = 0
        }
        return false;
    }
    return true;
}

function tirarZerosEsquerda(STR) {
    var sAux = '';
    STR = new String(STR);
    var i = 0;
    while (i < STR.length) {
        if ((STR.charAt(i) != '.') && (STR.charAt(i) != ',')) {
            sAux += STR.charAt(i);
        }
        i++
    }
    STR = new String(sAux);
    sAux = '';
    i = 0;
    while (i < STR.length) {
        if (STR.charAt(i) != '0') {
            sAux = STR.substring(i, STR.length)
            i = STR.length;
        }
        i++;
    }
    return sAux;
}

function formatarValor(str) {
    var decimal, inteiro;
    var i, count;
    STR = new String(str);
    STR = tirarZerosEsquerda(STR);
    inteiro = '';
    if (STR.length == 1) {
        inteiro = '0';
        decimal = '0' + STR;
    }
    else {
        if (STR.length == 2) {
            inteiro = '0';
            decimal = STR;
        }
        else {
            decimal = STR.substring(STR.length - 2, STR.length);
            i = 3;
            count = 0;
            while (i <= STR.length) {
                if (count == 3) {
                    inteiro = '.' + inteiro;
                    count = 0;
                }
                inteiro = STR.charAt(STR.length - i) + inteiro;
                count++;
                i++;
            }
        }
    }
    if (inteiro == '') {
        inteiro = '0';
    }
    if (decimal == '') {
        decimal = '00';
    }
    return inteiro + ',' + decimal;
}

var codTeclaKeyDown;

function exibirValorFormatado(e) {
    var obj, tecla;
    //verificando se o que foi digitado é um número
    if (!soNumero(e)) {
        return false;
    }
    obj = (isNav) ? e.target : event.srcElement;
    codTecla = (isNav) ? e.which : event.keyCode;
    switch (codTeclaKeyDown) {
        case 8:
            obj.value = formatarValor(obj.value.substring(0, obj.value.length - 1));
            break;
        case 9:
            return true;
            break;
        case 46:
            obj.value = formatarValor(obj.value.substring(0, obj.value.length - 1));
            break;
        default:
            if ((codTecla > 47) && (codTecla < 58)) {
                if (obj.maxLength > obj.value.length) {
                    obj.value = formatarValor(obj.value + String.fromCharCode(codTecla));
                }
            }
    }
    return false;
}

function produtosdetalhes(ref) {
    if (ref.toString().indexOf("object") >= 0)
    { ref = ref.value; }

    var det = window.open("produtosdetalhes.aspx?id=" + ref, "", "width=522, height=522");

    return false;
}

function verFotoGrande(fotoURL, fotogrande) {
    fotogrande.src = fotoURL.src.replace('mini/', '');
}

/*****************************************************************************************************
*****											   MÁSCARAS										 *****
*****************************************************************************************************/

//função para formatação de VALORES
function mascaraReal(campo) {
    ie = document.all ? true : false;

    if (ie)
        FormataValorIE(campo);
    else
        FormataValorNS(campo);
}

function FormataValorNS(campo) {
    campo.value = FiltraCampo(campo);

    vr = campo.value;

    if (vr.length == 0)
    { campo.value = "0,00"; }

    while (vr.substr(0, 1) == 0) {
        if (vr == "0,00")
            break;
        vr = vr.substr(1, campo.value.length - 1);
    }

    campo.value = vr;
    tam = vr.length;

    if (tam <= 2)
        campo.value = tam == 1 ? "0,0" + vr.substr(tam - 1, 1) : "0," + vr.substr(tam - 2, 2);
    if ((tam > 2) && (tam <= 5))
        campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
    if ((tam >= 6) && (tam <= 8))
        campo.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
    if ((tam >= 9) && (tam <= 11))
        campo.value = vr.substr(0, tam - 8) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
    if ((tam >= 12) && (tam <= 14))
        campo.value = vr.substr(0, tam - 11) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
    if ((tam >= 15) && (tam <= 17))
        campo.value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}

function FormataValorIE(campo) {
    var tecla = window.event.keyCode;

    if (tecla < 48 || tecla > 57 && tecla < 96 || tecla > 105)
        if (tecla != 8 && tecla != 46)
        return false;
    vr = campo.value;

    if (vr == "") {
        campo.value = "0,00";
        vr = campo.value;
    }

    while (vr.substr(0, 1) == 0) {
        if (vr == "0,00" || vr == "")
            break;

        vr = vr.substr(1, campo.value.length - 1);
    }

    campo.value = vr;
    vr = vr.replace("/", "");
    vr = vr.replace("/", "");
    vr = vr.replace(",", "");
    vr = vr.replace(".", "");
    vr = vr.replace(".", "");
    vr = vr.replace(".", "");
    vr = vr.replace(".", "");
    tam = vr.length;

    if (tam <= 2)
    { campo.value = tam == 1 ? "0,0" + vr.substr(tam - 1, 1) : "0," + vr.substr(tam - 2, 2); }
    if ((tam > 2) && (tam <= 5))
    { campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam); }
    if ((tam >= 6) && (tam <= 8))
    { campo.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); }
    if ((tam >= 9) && (tam <= 11))
    { campo.value = vr.substr(0, tam - 8) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); }
    if ((tam >= 12) && (tam <= 14))
    { campo.value = vr.substr(0, tam - 11) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); }
    if ((tam >= 15) && (tam <= 17))
    { campo.value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam); }
}

//Formatação de M
function mascaraKm(campo) {
    var tecla = window.event.keyCode;

    if (tecla < 48 || tecla > 57 && tecla < 96 || tecla > 105)
        if (tecla != 8 && tecla != 46)
        return false;
    vr = campo.value;

    campo.value = vr;
    vr = vr.replace("/", "");
    vr = vr.replace("/", "");
    vr = vr.replace(",", "");
    vr = vr.replace(".", "");
    vr = vr.replace(".", "");
    vr = vr.replace(".", "");
    vr = vr.replace(".", "");
    tam = vr.length;

    if ((tam > 3) && (tam <= 6))
    { campo.value = vr.substr(0, tam - 3) + '.' + vr.substr(tam - 3, tam); }
    if ((tam >= 7) && (tam <= 10))
    { campo.value = vr.substr(0, tam - 6) + '.' + vr.substr(tam - 6, 3) + '.' + vr.substr(tam - 3, tam); }
}

function mascaraData(t) {
    var tecla = window.event.keyCode;

    if (tecla < 48 || tecla > 57 && tecla < 96 || tecla > 105)
        return false;

    tam = t.value.length;

    if (tecla != 8 && tecla != 46) {
        if (tam == 2)
            t.value = t.value + '/';
        if (tam == 5)
            t.value = t.value + '/';
    }
}

function mascaraFone(t) {
    var tecla = window.event.keyCode;

    if (tecla < 48 || tecla > 57 && tecla < 96 || tecla > 105)
        return false;

    tam = t.value.length;

    if (tecla != 8 && tecla != 46) {
        if (tam == 1)
            t.value = '(' + t.value;
        if (tam == 3)
            t.value = t.value + ') ';
        if (tam == 9)
            t.value = t.value + '-';
    }
}

function mascaraCEP(t) {
    var tecla = window.event.keyCode;

    if (tecla < 48 || (tecla > 57 && tecla < 96) || tecla > 105)
        return false;

    if (tecla != 8 && tecla != 46) {
        if (t.value.length == 5)
            t.value = t.value + '-';
    }
}

function mascaraCPF(t) {
    var tecla = window.event.keyCode;

    if (tecla != 8 && tecla != 46) {
        if (t.value.length == 3)
            t.value = t.value + '.';
        else if (t.value.length == 7)
            t.value = t.value + '.';
        else if (t.value.length == 11)
            t.value = t.value + '-';
    }
}


/****************************************************************/
/*							VALIDAÇÕES							*/
/****************************************************************/
function checaCPF(source, arguments) {
    var elem = document.getElementById("txtcpf");

    if (validaCPF(elem.value))
    { arguments.IsValid = true; }
    else
    { arguments.IsValid = false; }
}

function validaCPF(CPF) {
    var charinvalidos = '-/,.() ';

    for (var i = 0; i <= 6; i++) {
        while ((cx = CPF.indexOf(charinvalidos.substring(i, i + 1))) != -1)
        { CPF = CPF.substring(0, cx) + CPF.substring(cx + 1); }
    }

    if (CPF.length != 11 || CPF == "00000000000" || CPF == "11111111111" ||
		CPF == "22222222222" || CPF == "33333333333" || CPF == "44444444444" ||
		CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" ||
		CPF == "88888888888" || CPF == "99999999999")
    { return false; }

    soma = 0;

    for (i = 0; i < 9; i++)
    { soma += parseInt(CPF.charAt(i)) * (10 - i); }

    resto = 11 - (soma % 11);

    if (resto == 10 || resto == 11)
    { resto = 0; }

    if (resto != parseInt(CPF.charAt(9)))
    { return false; }

    soma = 0;

    for (i = 0; i < 10; i++)
    { soma += parseInt(CPF.charAt(i)) * (11 - i); }

    resto = 11 - (soma % 11);

    if (resto == 10 || resto == 11)
    { resto = 0; }

    if (resto != parseInt(CPF.charAt(10)))
    { return false; }

    return true;

}

function valida_moeda(objCampo) {
    len = 20;
    cur = objCampo;
    n = '0123456789';
    d = objCampo.value;
    l = d.length;
    r = '';

    if (l > 0) {
        z = d.substr(0, l);
        s = '';
        a = 0;

        for (i = 0; i < l; i++) {
            c = d.charAt(i);
            if (n.indexOf(c) > a) {
                a = -1;
                s += c;
            };
        };
        l = s.length;
        t = len - 1;
        if (l > t) {
            l = t;
            s = s.substr(0, t);
        }
        if (l > 2) {
            r = s.substr(0, l - 2) + ',' + s.substr(l - 2, 2);
        } else {
            if (l == 2) {
                r = '0,' + s;
            } else {
                if (l == 1) {
                    r = '0,0' + s;
                }
            }
        }
        if (r == '') {
            r = '0,00';
        } else {
            l = r.length;
            if (l > 6) {
                j = l % 3;
                w = r.substr(0, j);
                wa = r.substr(j, l - j - 6);
                wb = r.substr(l - 6, 6);
                if (j > 0) {
                    w += '.';
                };
                k = (l - j) / 3 - 2;
                for (i = 0; i < k; i++) {
                    w += wa.substr(i * 3, 3) + '.';
                };
                r = w + wb;
            }
        }
    }
    if (cur.value.length == len || cur.value.length > len) {
        cur.value = cur.value.substring(0, len);
        return false;
    } else {
        if (r.length <= len) {
            cur.value = r;
        } else {
            cur.value = z;
        };
    }
}

function minhamoeda(objCampo) {
    cur = objCampo;
    d = cur.value;
    l = d.length;
    c = '';
    s = '';
    r = '';
    a = 0;
    
    n = '0123456789';
    for (i = 0; i < l; i++) {
        c = d.charAt(i);
        if (n.indexOf(c) > a) {
            a = -1;
            s += c;
        };
    };

    l = s.length;
    for (i = i; i > 1; i--) {
        c = d.charAt(i);
            r += c;
    };
    
    cur.value = r;
}

function valida_moeda_3c(objCampo) {
    len = 20;
    cd = 3;
    cur = objCampo;
    n = '0123456789';
    d = objCampo.value;
    l = d.length;
    r = '';

    if (l > 0) {
        z = d.substr(0, l);
        s = '';
        a = 0;

        for (i = 0; i < l; i++) {
            c = d.charAt(i);
            if (n.indexOf(c) > a) {
                a = -1;
                s += c;
            };
        };
        l = s.length;
        t = len - 1;
        if (l > t) {
            l = t;
            s = s.substr(0, t);
        }
        if (l > cd) {
            r = s.substr(0, l - cd) + ',' + s.substr(l - cd, cd);
        } else {
            if (l == cd) {
                r = '0,' + s;
            } else {
                if (l == 1) {
                    r = '0,0' + s;
                }
            }
        }
        if (r == '') {
            r = '0,000';
        } else {
            l = r.length;
            if (l > 6) {
                j = l % 3;
                w = r.substr(0, j);
                wa = r.substr(j, l - j - 6);
                wb = r.substr(l - 6, 6);
                if (j > 0) {
                    w += '.';
                };
                k = (l - j) / 3 - 3;
                for (i = 0; i < k; i++) {
                    w += wa.substr(i * 3, 3) + '.';
                };
                r = w + wb;
            }
        }
    }
    if (cur.value.length == len || cur.value.length > len) {
        cur.value = cur.value.substring(0, len);
        return false;
    } else {
        if (r.length <= len) {
            cur.value = r;
        } else {
            cur.value = z;
        };
    }
}

function coloca_mascara(objCampo, mascara) {
    switch (mascara) {
        //000.000.000-00  
        case 'cpf':
            objCampo.value = retorna_somente_numero(objCampo.value);
            pri = objCampo.value.substring(0, 3);
            seg = objCampo.value.substring(3, 6);
            ter = objCampo.value.substring(6, 9);
            qua = objCampo.value.substring(9, 11);

            objCampo.value = pri +
				((seg != '') ? '.' + seg : '') +
				((ter != '') ? '.' + ter : '') +
				((qua != '') ? '-' + qua : '');
            break;

        //00.000.000/0000-00  
        //0123456789  
        //00 000 000 0000 00  
        //0-2 2-5 5-8 8-12 12-14
        case 'cnpj':
            var _valor = retorna_somente_numero(objCampo.value);
            pri = _valor.substring(0, 2);
            seg = _valor.substring(2, 5);
            ter = _valor.substring(5, 8);
            qua = _valor.substring(8, 12);
            qui = _valor.substring(12, 14);
            objCampo.value = pri +
				((seg != '') ? '.' + seg : '') +
				((ter != '') ? '.' + ter : '') +
				((qua != '') ? '/' + qua : '') +
				((qui != '') ? '-' + qui : '');
            break;

        //(00) 0000-0000  
        case 'telefone':
            objCampo.value = retorna_somente_numero(objCampo.value);

            pri = objCampo.value.substring(0, 2);
            seg = objCampo.value.substring(2, 6);
            ter = objCampo.value.substring(6, 10);

            objCampo.value = ((pri != '') ? '(' + pri + ') ' : '') +
				((seg != '') ? seg : '') +
				((ter != '') ? '-' + ter : '');
            break;

        //00000-000  
        case 'cep':
            objCampo.value = retorna_somente_numero(objCampo.value);

            pri = objCampo.value.substring(0, 5);
            seg = objCampo.value.substring(5, 8);

            objCampo.value = pri +
				((seg != '') ? '-' + seg : '');
            break;

        //00/00/0000  
        case 'data':
            objCampo.value = retorna_somente_numero(objCampo.value);

            pri = objCampo.value.substring(0, 2);
            seg = objCampo.value.substring(2, 4);
            ter = objCampo.value.substring(4, 8);

            objCampo.value = pri +
				((seg != '') ? '/' + seg : '') +
				((ter != '') ? '/' + ter : '')
            break;

        //00/0000  
        case 'venc_cartao':
            objCampo.value = retorna_somente_numero(objCampo.value);

            pri = objCampo.value.substring(0, 2);
            seg = objCampo.value.substring(2, 6);

            objCampo.value = pri +
				((seg != '') ? '/' + seg : '')
            break;

        //0000 0000 0000 0000  
        case 'cartao':
            objCampo.value = retorna_somente_numero(objCampo.value);

            pri = objCampo.value.substring(0, 4);
            seg = objCampo.value.substring(4, 8);
            ter = objCampo.value.substring(8, 12);
            qua = objCampo.value.substring(12, 16);

            objCampo.value = pri +
				((seg != '') ? '-' + seg : '') +
				((ter != '') ? '-' + ter : '') +
				((qua != '') ? '-' + qua : '');
            break;

        //			4	Numero Formato 000.000  
        case 'banco4':
            objCampo.value = retorna_somente_numero(objCampo.value);
            pri = objCampo.value.substring(0, 3);
            seg = objCampo.value.substring(3, 6);
            objCampo.value = pri +
				((seg != '') ? '.' + seg : '');
            break;

        /*
        5	Numero Formato 0.000.000.000
        6	Numero Formato 0000 000000000 000000
        */ 
        case 'banco5':
            objCampo.value = retorna_somente_numero(objCampo.value);

            pri = objCampo.value.substring(0, 1);
            seg = objCampo.value.substring(1, 4);
            ter = objCampo.value.substring(4, 7);
            qua = objCampo.value.substring(7, 10);

            objCampo.value = pri +
				((seg != '') ? '.' + seg : '') +
				((ter != '') ? '.' + ter : '') +
				((qua != '') ? '.' + qua : '');
            break;

        case 'banco6':
            objCampo.value = retorna_somente_numero(objCampo.value);

            pri = objCampo.value.substring(0, 4);
            seg = objCampo.value.substring(4, 13);
            ter = objCampo.value.substring(13, 19);

            objCampo.value = pri +
				((seg != '') ? ' ' + seg : '') +
				((ter != '') ? ' ' + ter : '');
            break;

        case 'numero':
            objCampo.value = retorna_somente_numero(objCampo.value);
            break;

        case 'letra':
            objCampo.value = retorna_somente_letras(objCampo.value);
            break;

        //1.000.000.000.000,00  
        case 'moeda':
            len = 20
            cur = objCampo
            n = '0123456789';
            d = objCampo.value;
            l = d.length;
            r = '';

            if (l > 0) {
                z = d.substr(0, l);
                s = '';
                a = 0;

                for (i = 0; i < l; i++) {
                    c = d.charAt(i);
                    if (n.indexOf(c) > a) {
                        a = -1;
                        s += c;
                    };
                };
                l = s.length;
                t = len - 1;
                if (l > t) {
                    l = t;
                    s = s.substr(0, t);
                }
                if (l > 2) {
                    r = s.substr(0, l - 2) + ',' + s.substr(l - 2, 2);
                } else {
                    if (l == 2) {
                        r = '0,' + s;
                    } else {
                        if (l == 1) {
                            r = '0,0' + s;
                        }
                    }
                }
                if (r == '') {
                    r = '0,00';
                } else {
                    l = r.length;
                    if (l > 6) {
                        j = l % 3;
                        w = r.substr(0, j);
                        wa = r.substr(j, l - j - 6);
                        wb = r.substr(l - 6, 6);
                        if (j > 0) {
                            w += '.';
                        };
                        k = (l - j) / 3 - 2;
                        for (i = 0; i < k; i++) {
                            w += wa.substr(i * 3, 3) + '.';
                        };
                        r = w + wb;
                    }
                }
            }
            if (cur.value.length == len || cur.value.length > len) {
                cur.value = cur.value.substring(0, len);
                return false;
            } else {
                if (r.length <= len) {
                    cur.value = r;
                } else {
                    cur.value = z;
                };
            }
            break;
    }
}
