function correctPNG() {
    for (var i = 0; i < document.images.length; i++) {
        var img = document.images[i]
        var imgName = img.src.toUpperCase()
        if (imgName.substring(imgName.length - 3, imgName.length) == "PNG") {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
			+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
			+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
			+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
            img.outerHTML = strNewHTML
            i = i - 1
        }
    }
}
window.attachEvent("onload", correctPNG);

function NovaJanela(pagina, nome, w, h, scroll, toolbar) {
    var win = null;
    LeftPosition = (screen.width) ? (screen.width - w) / 2 : 0;
    TopPosition = (screen.height) ? (screen.height - h) / 2 : 0;
    settings = 'height=' + h + ',width=' + w + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=' + scroll + ',toolbar=' + toolbar + ',resizable=no'
    win = window.open(pagina, nome, settings);
}

var ie4 = (document.all) ? 1 : 0;
function HideLayer(Layer) {
    if (ie4) {
        document.all(Layer).style.visibility = "hidden";
    } else {
        document.getElementById(Layer).style.visibility = "hidden";
    }
}

function ShowLayer(Layer) {
    if (ie4) {
        document.all(Layer).style.visibility = "visible";
    } else {
        document.getElementById(Layer).style.visibility = "visible";
    }
}

function onUpdating() {
    FF_showPopWin('<span class=txt5>Aguarde...</span>', 300, 120, null, false, 'Aviso');
}

function onUpdated() {
    hidePopWin(false);
}

function MM_preloadImages() {
    var d = document; if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i, j = d.MM_p.length, a = MM_preloadImages.arguments; for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) { d.MM_p[j] = new Image; d.MM_p[j++].src = a[i]; } 
    }
}

function MM_swapImgRestore() {
    var i, x, a = document.MM_sr; for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}

function MM_findObj(n, d) {
    var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && document.getElementById) x = document.getElementById(n); return x;
}

function MM_swapImage() {
    var i, j = 0, x, a = MM_swapImage.arguments; document.MM_sr = new Array; for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) { document.MM_sr[j++] = x; if (!x.oSrc) x.oSrc = x.src; x.src = a[i + 2]; }
}

function Trim(obj) {
    while (obj.value.indexOf('  ') != -1) {
        obj.value = obj.value.substring(0, obj.value.indexOf('  ')) + obj.value.substring(obj.value.indexOf('  ') + 1, obj.value.length);
    }
    if (obj.value.indexOf(' ') == 0) {
        obj.value = obj.value.substring(1, obj.value.length);
    }
    if (obj.value.charAt(obj.value.length - 1) == ' ') {
        obj.value = obj.value.substring(0, obj.value.length - 1);
    }

    return (true);
}

function CheckCPF(obj) {
    if (obj.value != "") {

        if ((obj.value == "000.000.000-00") || (obj.value == "111.111.111-11") || (obj.value == "222.222.222-22") || (obj.value == "333.333.333-33") || (obj.value == "444.444.444-44") || (obj.value == "555.555.555-55") || (obj.value == "666.666.666-66") || (obj.value == "777.777.777-77") || (obj.value == "888.888.888-88") || (obj.value == "999.999.999-99")) {
            alert("Numero do CPF invalido");
            obj.value = "";
            obj.focus();
            return (false);
        }

        var checkOK = "0123456789.-";
        var checkStr = obj.value;
        var allValid = true;

        for (i = 0; i < checkStr.length; i++) {
            ch = checkStr.charAt(i);
            for (j = 0; j < checkOK.length; j++)
                if (ch == checkOK.charAt(j))
                    break;
            if (j == checkOK.length) {
                allValid = false;
                break;
            }
        }

        if (!allValid) {
            alert("O CPF possui caracteres invalidos\n\nFormato: 999.999.999-99");
            obj.value = "";
            obj.focus();
            return (false);
        }

        var cad = "";
        for (i = 0; i < checkStr.length; i++) {
            if ((checkStr.charAt(i) != ".") && (checkStr.charAt(i) != "-") && (checkStr.charAt(i) != "/"))
                cad += checkStr.charAt(i);
        }

        if (cad.length != 11) {
            alert("O numero do CPF precisa ter 11 digitos");
            obj.value = "";
            obj.focus();
            return (false);
        }

        if (FF_Valida_CPF(cad) == 0) {
            alert("Numero do CPF invalido");
            obj.value = "";
            obj.focus();
            return (false);
        }

        return (true);

    }
}

function FF_Valida_CPF(cad) {
    s = cad;
    if (isNaN(s)) {
        return 0;
    }
    var i;
    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) {
        return 0;
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1) {
        return 0;
    }
    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) {
        return 0;
    }
    return 1;
}

function QuantidadeCaracteres(Campo, Quantidade, Mascara) {
    if ((Campo.value.length > 0) && (Campo.value.length != Quantidade)) {
        if (Mascara != "") {
            alert("Formato: " + Mascara);
        }
        Campo.value = "";
        Campo.focus();
    }
}

function VerificarCaracteres(str1, str2) {
    var chvalidos = str2;
    var i = 0;
    var valid = true;
    while ((i < str1.length) && (valid)) {
        valid = false;
        for (j = 0; j < chvalidos.length; j++) {
            if (str1.charAt(i) == chvalidos.charAt(j)) { valid = true; }
        }
        i++;
    }
    if (!valid) {
        return false;
    }
    return true;
}

function ConsistirData(str) {
    if (str.length != 10 || str.charAt(2) != "/" || str.charAt(5) != "/")
        return false;

    if (VerificarCaracteres(str, "/0123456789") == false)
        return false;

    var d = str.substring(0, 2);
    var m = str.substring(3, 5);
    var y = str.substring(6, 10);

    if (d == 0 || m == 0 || y == 0)
        return false;

    if (m > 12)
        return false;

    if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
        var dmax = 31;
    else
        if (m == 4 || m == 6 || m == 9 || m == 11)
            dmax = 30;
        else
            if ((y % 400 == 0) || (y % 4 == 0 && y % 100 != 0))
                dmax = 29;
            else
                dmax = 28;

    if (d > dmax)
        return false;
    if (y < 1900)
        return false;
    return true;

}

function FF_FormatarData(Campo, teclapres) {
    var vr = new String(Campo.value);
    var keypress;

    if (document.all)
        keypress = teclapres.keyCode;
    else
        keypress = teclapres.which;

    if (VerificarCaracteres(vr, "/0123456789") == false) {
        Campo.value = "";
        Campo.focus();
    }

    if (keypress != 13 && keypress != 8 && keypress != 9 && keypress != 46) {
        separacao = '/';
        vr = vr.replace("/", "");

        if (document.all)
            event.returnValue = false;

        if (Campo.value.length == 2)
            Campo.value = Campo.value + separacao;
        if (Campo.value.length == 5)
            Campo.value = Campo.value + separacao;

        if (document.all)
            event.returnValue = true;
    }

    if (Campo.value.length == 10) {
        if (!ConsistirData(Campo.value)) {
            alert("Data invalida.");
            Campo.value = "";
            Campo.focus();
        }
    }

    if (Campo.value.length > 10)
        Campo.value = Campo.value.substring(0, 10);
}

function ConsistirHora(str) {
    if (str.length != 5 || str.charAt(2) != ":")
        return false;

    if (VerificarCaracteres(str, ":0123456789") == false)
        return false;

    var h = str.substring(0, 2);
    var m = str.substring(3, 5);

    if (h.length != 2)
        return false;

    if (m.length != 2)
        return false;

    if (h > 23)
        return false;

    if (m > 59)
        return false;

    return true;
}

function FF_FormatarHora(Campo, teclapres) {
    var vr = new String(Campo.value);
    var keypress;

    if (document.all)
        keypress = teclapres.keyCode;
    else
        keypress = teclapres.which;

    if (VerificarCaracteres(vr, ":0123456789") == false) {
        Campo.value = "";
        Campo.focus();
    }

    if (keypress != 13 && keypress != 8 && keypress != 9 && keypress != 46) {
        separacao = ':';
        vr = vr.replace(":", "");

        if (document.all)
            event.returnValue = false;

        if (Campo.value.length == 2)
            Campo.value = Campo.value + separacao;

        if (document.all)
            event.returnValue = true;
    }

    if (Campo.value.length == 5) {
        if (!ConsistirHora(Campo.value)) {
            alert("Hora invalida.");
            Campo.value = "";
            Campo.focus();
        }
    }

    if (Campo.value.length > 5)
        Campo.value = Campo.value.substring(0, 5);
}

function VerificarSomenteNumero(Campo) {
    if (VerificarCaracteres(Campo.value, "0123456789") == false) {
        alert("Digite apenas numeros.");
        Campo.value = "";
        Campo.focus();
    }
}

function FF_FormatarCEP(Campo, teclapres) {
    var vr = new String(Campo.value);
    var keypress;

    if (document.all)
        keypress = teclapres.keyCode;
    else
        keypress = teclapres.which;

    if (VerificarCaracteres(vr, "-0123456789") == false) {
        Campo.value = "";
        Campo.focus();
    }
    if (keypress != 13 && keypress != 8 && keypress != 9 && keypress != 46) {
        separacao = '-';
        vr = vr.replace("-", "");

        if (document.all)
            event.returnValue = false;

        if (Campo.value.length == 5)
            Campo.value = Campo.value + separacao;

        if (document.all)
            event.returnValue = true;
    }
}

function FF_Email(obj) {
    if (obj.value != "") {
        while (obj.value.indexOf(' ') != -1) {
            obj.value = obj.value.substring(0, obj.value.indexOf(' ')) + obj.value.substring(obj.value.indexOf(' ') + 1, obj.value.length);
        }

        var checkOK = "\@.";
        obj.value = obj.value.toLowerCase();
        var checkStr = obj.value;
        var achar = true;
        var erro = false;
        i = 0;

        while ((i < checkOK.length) && (achar)) {
            ch = checkOK.charAt(i);
            t = 0;
            achar = false;
            while ((!achar) && (t < checkStr.length)) {
                if (ch == checkStr.charAt(t))
                    achar = true;
                t++;
            }
            i++;
        }

        if (achar) {
            cta = 0;
            ctpp = 0;
            for (i = 0; i < checkStr.length; i++)
                if (checkStr.charAt(i) == '\@') {
                    cta++;
                    if ((checkStr.charAt(i + 1) == '.') || (checkStr.charAt(i - 1) == '.'))
                        cta++;
                }
            for (i = 0; i < checkStr.length; i++)
                if (checkStr.charAt(i) == '.')
                    if (checkStr.charAt(i + 1) == '.') ctpp++;
            if ((cta > 1) || (ctpp != 0)) erro = true;
            if ((checkStr.charAt(0) == '\@') || (checkStr.charAt(0) == '.') || (checkStr.charAt(checkStr.length - 1) == '\@') || (checkStr.charAt(checkStr.length - 1) == '.'))
                erro = true;
            if ((checkStr.charAt(checkStr.length - 4) != '.') && (checkStr.charAt(checkStr.length - 3) != '.'))
                erro = true;
        }

        if ((erro) || (!achar)) {
            alert("Digite o e-mail no formato user\@dominio");
            obj.value = "";
            obj.focus();
            return (false);
        }

        var checkOK = "abcdefghijklmnopqrstuvwxyz0123456789\@%_-.";
        var allValid = true;

        for (i = 0; i < checkStr.length; i++) {
            ch = checkStr.charAt(i);
            for (j = 0; j < checkOK.length; j++)
                if (ch == checkOK.charAt(j))
                    break;

            if (j == checkOK.length) {
                allValid = false;
                break;
            }
        }
        if (!allValid) {
            alert("O e-mail possui caracteres invalidos.");
            obj.value = "";
            obj.focus();
            return (false);
        }
        else
            return (obj.value);
    }
}

function FF_FormatarTelefone(Campo, teclapres) {
    var vr = new String(Campo.value);
    var keypress;

    if (document.all)
        keypress = teclapres.keyCode;
    else
        keypress = teclapres.which;

    if (VerificarCaracteres(vr, "()0123456789") == false) {
        Campo.value = "";
        Campo.focus();
    }
    if (keypress != 13 && keypress != 8 && keypress != 9 && keypress != 46) {
        if (document.all)
            event.returnValue = false;

        if (Campo.value.length == 1)
            Campo.value = '(' + Campo.value;

        if (Campo.value.length == 3)
            Campo.value = Campo.value + ')';

        if (document.all)
            event.returnValue = true;
    }
}

function FF_MascaraCPF(obj) {
    if (obj.value.length == 3)
        obj.value = obj.value + '.';
    if (obj.value.length == 7)
        obj.value = obj.value + '.';
    if (obj.value.length == 11)
        obj.value = obj.value + '-';
}

function FF_MascaraMoeda(cur, len) {
    n = '__0123456789';
    d = cur.value;
    l = d.length;
    r = '';
    if (l > 0) {
        z = d.substr(0, l - 1);
        s = '';
        a = 2;
        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 (r.length <= len) {
        cur.value = r;
    }
    else {
        cur.value = z;
    };
    return 'ok';
}

function FF_MascaraCNPJ(obj) {
    if (obj.value.length == 2)
        obj.value = obj.value + '.';
    if (obj.value.length == 6)
        obj.value = obj.value + '.';
    if (obj.value.length == 10)
        obj.value = obj.value + '/';
    if (obj.value.length == 15)
        obj.value = obj.value + '-';
}

//FF_CNPJ - Comeco
function CheckCNPJ(obj) {

    if (obj.value != "") {
        var checkOK = "0123456789.-/";
        var checkStr = obj.value;
        var allValid = true;

        // Verifica a existencia de caracteres invalidos
        for (i = 0; i < checkStr.length; i++) {
            ch = checkStr.charAt(i);
            for (j = 0; j < checkOK.length; j++)
                if (ch == checkOK.charAt(j))
                    break;
            if (j == checkOK.length) {
                allValid = false;
                break;
            }
        }

        if (!allValid) {
            alert("O CNPJ possui caracteres invalidos\n\nFormato: 99.999.999/9999-99");
            obj.value = "";
            obj.focus();
            return (false);
        }

        // Elimina todos os caracteres nao numericos

        var cad = "";
        for (i = 0; i < checkStr.length; i++) {
            if ((checkStr.charAt(i) != ".") && (checkStr.charAt(i) != "-") && (checkStr.charAt(i) != "/"))
                cad += checkStr.charAt(i);
        }

        // Inicio do teste com CNPJ

        if (cad.length != 14) {
            alert("O numero do CNPJ precisa ter 14 digitos");
            obj.value = "";
            obj.focus();
            return (false);
        }

        // Testa digito verificador
        if (FF_Valida_CNPJ(cad) == 0) {
            alert("Numero do CNPJ invalido");
            obj.value = "";
            obj.focus();
            return (false);
        }

    }
    return (true);
}

function FF_Valida_CNPJ(cad) {
    s = cad;
    if (isNaN(s)) {
        return 0;
    }
    var i;
    var c = s.substr(0, 12);
    var dv = s.substr(12, 2);
    var d1 = 0;
    for (i = 0; i < 12; i++) {
        d1 += c.charAt(11 - i) * (2 + (i % 8));
    }
    if (d1 == 0)
        return 0;
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1) {
        return 0;
    }
    d1 *= 2;
    for (i = 0; i < 12; i++) {
        d1 += c.charAt(11 - i) * (2 + ((i + 1) % 8));
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9)
        d1 = 0;
    if (dv.charAt(1) != d1) {
        return 0;
    }
    return 1;
}

//FF_CNPJ - Fim
