﻿function SetAllCheckBoxes(FormName, FieldName, CheckValue) {
    if (!document.forms[FormName])
        return;
    var objCheckBoxes = document.forms[FormName].elements[FieldName];
    if (!objCheckBoxes)
        return;
    var countCheckBoxes = objCheckBoxes.length;
    if (!countCheckBoxes)
        objCheckBoxes.checked = CheckValue;
    else
    // set the check value for all check boxes
        for (var i = 0; i < countCheckBoxes; i++)
            objCheckBoxes[i].checked = CheckValue;
}

//==========================================
// Check All boxes
//==========================================
function CheckAll(fmobj) {
    for (var i = 0; i < fmobj.elements.length; i++) {
        var e = fmobj.elements[i];
        if ((e.name != 'allbox') && (e.type == 'checkbox') && (!e.disabled)) {
            e.checked = fmobj.allbox.checked;
        }
    }
}

//==========================================
// Check all or uncheck all?
//==========================================
function DesmarcarTodos(plike) {
    var fmobj = document.forms(0);

    var TotalBoxes = 0;
    var TotalOn = 0;
    var variavel;
    plike = plike + '';
    for (var i = 0; i < fmobj.elements.length; i++) {
        var e = fmobj.elements[i];
        if (e.type == 'checkbox') {
            if (plike == '') {
                e.checked = false;
            } else {
                variavel = e.name;
                if (variavel.indexOf(plike) >= 0) {
                    e.checked = false;
                }
            }
        }
    }
}
function MarcarTodos(plike) {
    var fmobj = document.forms(0);

    var TotalBoxes = 0;
    var TotalOn = 0;
    var variavel;
    plike = plike + '';

    for (var i = 0; i < fmobj.elements.length; i++) {
        var e = fmobj.elements[i];
        if (e.type == 'checkbox') {
            if (plike == '') {
                e.checked = true;
            } else {
                variavel = e.name;
                if (variavel.indexOf(plike) >= 0) {
                    e.checked = true;
                }
            }
        }
    }
}

//function keyRestrict(e, validchars) {
//	var key='', keychar='';
//	key = getKeyCode(e);
//	if (key == null) return true;
//	keychar = String.fromCharCode(key);
//	keychar = keychar.toLowerCase();
//	validchars = validchars.toLowerCase();
//	if (validchars.indexOf(keychar) != -1)
//		return true;
//	if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
//		return true;
//	return false;
//onKeyPress="return keyRestrict(event,'1234567890')"
//}

function AbrirJanela(pagina, nome, largura, altura) {

    //pega a resolução do visitante
    w = screen.width;
    h = screen.height;

    //divide a resolução por 2, obtendo o centro do monitor
    meio_w = w / 2;
    meio_h = h / 2;

    //diminui o valor da metade da resolução pelo tamanho da janela, fazendo com q ela fique centralizada
    altura2 = altura / 2;
    largura2 = largura / 2;
    meio1 = meio_h - altura2;
    meio2 = meio_w - largura2;

    //abre a nova janela, já com a sua devida posição
    window.open(pagina, nome, 'height=' + altura + ', width=' + largura + ', top=' + meio1 + ', left=' + meio2 + '');
}

function getKeyCode(e) {
    if (window.event)
        return window.event.keyCode;
    else if (e)
        return e.which;
    else
        return null;
}

function Get_Cookie(name) {
    var start = document.cookie.indexOf(name + "=");
    var len = start + name.length + 1;
    if ((!start) && (name != document.cookie.substring(0, name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";", len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len, end));
}

function Set_Cookie(name, value, expires, path, domain, secure) {
    var cookieString = name + "=" + escape(value) +
       ((expires) ? ";expires=" + expires.toGMTString() : "") +
       ((path) ? ";path=" + path : "") +
       ((domain) ? ";domain=" + domain : "") +
       ((secure) ? ";secure" : "");
    document.cookie = cookieString;
}

function Delete_Cookie(name, path, domain) {
    if (Get_Cookie(name)) document.cookie = name + "=" +
      ((path) ? ";path=" + path : "") +
      ((domain) ? ";domain=" + domain : "") +
      ";expires=Thu, 01-Jan-70 00:00:01 GMT";
}

function carregando() {
    try {
        conteudo.document.write('<DIV>');
        conteudo.document.write('<table bgcolor="buttonface" style="BORDER: #000000 1px solid;" align=center height=70 width=50% cellpadding=0 cellspacing=0 border=0>');
        conteudo.document.write('	<tr>');
        conteudo.document.write('		<td width=100% align=center valign=middle>');
        conteudo.document.write('<b>Carregando pagina, aguarde....</b>');
        conteudo.document.write('		</td>');
        conteudo.document.write('	</tr>');
        conteudo.document.write('</table>');
        conteudo.document.write('</DIV>');
    } catch (e) { }
}
function troca(stexto, sprocura, stroca) {
    for (c = 0; c < stexto.length; c++) {
        stexto = stexto.replace(sprocura, stroca)
    }
    return stexto;
}
function valida_data(pdata) {
    //if (ltrim(pdata) != '')	{	
    if (pdata != '') {
        if (validate_date(pdata)) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}

//Função para formatação genérica de campos
function Formatar(fsValor, foForm, foNome, fsFormato) {

    var piLoop;
    var psPalavra = '';
    var psResposta = '';
    var piTamanho = 0;
    var pParte_i = '';
    var pParte_f = '';
    var intDecimais = 2;

    intDecimais = 2;



    if (window.event.keyCode != 9 && window.event.keyCode != 16) {
        if (fsFormato == "cgc") fsFormato = "cnpj";
        if (window.event.keyCode != 8 && window.event.keyCode != 37 && window.event.keyCode != 39 && window.event.keyCode != 46) {
            for (piLoop = 0; piLoop <= (fsValor.length - 1); piLoop++) {
                switch (fsFormato) {
                    case 'data':
                        if (fsValor.charAt(piLoop) != '/' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        break;
                    case 'hora':
                        if (fsValor.charAt(piLoop) != ':' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        break;
                    case 'hora2':
                        if (fsValor.charAt(piLoop) != ':' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        break;
                    case 'telefone':
                        if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        break;
                    case 'moeda':
                        if (fsValor.charAt(piLoop) != ',' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        break;
                    case 'cpf':
                        if (fsValor.charAt(piLoop) != '.' && fsValor.charAt(piLoop) != '-' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        break;
                    case 'cnpj':
                        if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        break;
                    case 'cnpj_filial':
                        if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        break;
                    case 'cep':
                        if (fsValor.charAt(piLoop) != '-' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        break;
                    case 'numero':
                        if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9') {
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        }

                        if (fsValor.charAt(piLoop) == '-' && psPalavra == '') {
                            psPalavra = psPalavra + fsValor.charAt(piLoop);
                        }

                        break;

                }
            }
            for (piLoop = 0; piLoop <= (psPalavra.length - 1); piLoop++) {
                switch (fsFormato) {
                    case 'data':
                        if (piLoop == 2) psResposta = psResposta + '/' + psPalavra.charAt(piLoop);
                        if (piLoop == 4) psResposta = psResposta + '/' + psPalavra.charAt(piLoop);
                        if (piLoop != 2 && piLoop != 4) psResposta = psResposta + psPalavra.charAt(piLoop);
                        piTamanho = 10;
                        break;
                    case 'hora':
                        if (piLoop == 2)
                            psResposta = psResposta + ':' + psPalavra.charAt(piLoop)
                        else
                            psResposta = psResposta + psPalavra.charAt(piLoop);
                        piTamanho = 5;
                        break;
                    case 'hora2':
                        if (piLoop == 3)
                            psResposta = psResposta + ':' + psPalavra.charAt(piLoop)
                        else
                            psResposta = psResposta + psPalavra.charAt(piLoop);
                        piTamanho = 6;
                        break;
                    case 'telefone':
                        psResposta = psResposta + psPalavra.charAt(piLoop);
                        piTamanho = 9;
                        break;
                    case 'moeda':
                        if (psPalavra.length < 14) {
                            psResposta = psResposta + psPalavra.charAt(piLoop);
                            piTamanho = 14;
                        } else {
                            psResposta = psPalavra;
                        }
                        break;
                    case 'cpf':
                        if (psPalavra.length < 14) {
                            psResposta = psResposta + psPalavra.charAt(piLoop);
                            piTamanho = 14;
                        } else {
                            psResposta = psPalavra;
                        }
                        break;
                    case 'cnpj':
                        psResposta = psResposta + psPalavra.charAt(piLoop);
                        piTamanho = 19;
                        break;
                    case 'cnpj_filial':
                        psResposta = psResposta + psPalavra.charAt(piLoop);
                        piTamanho = 7;
                        break;

                    case 'cep':
                        if (piLoop == 5) psResposta = psResposta + '-' + psPalavra.charAt(piLoop);
                        if (piLoop != 5) psResposta = psResposta + psPalavra.charAt(piLoop);
                        piTamanho = 9;
                        break;
                    case 'numero':
                        psResposta = psResposta + psPalavra.charAt(piLoop);
                        piTamanho = 50;
                        break;
                }
            }

            //--- Formata Moeda
            if (fsFormato == 'moeda' && psResposta.length > intDecimais) {
                for (piLoop = intDecimais; piLoop < (psResposta.length); piLoop++) {
                    pParte_i = psResposta.substring(0, psResposta.length - piLoop);
                    pParte_f = psResposta.substring(psResposta.length - piLoop, psResposta.length);
                    if (piLoop == intDecimais) {
                        psResposta = pParte_i + ',' + pParte_f;
                    }
                    else {
                        psResposta = pParte_i + '.' + pParte_f;
                    }
                    piLoop = piLoop + 3;
                }
            }
            //--- Fim Formata Moeda

            //--- Formata CNPJ
            if (fsFormato == 'cnpj' && psResposta.length > 6) {
                //psResposta = psResposta.substring(0, 19);
                pParte_i = psResposta.substring(0, psResposta.length - 2);
                pParte_f = psResposta.substring(psResposta.length - 2, psResposta.length);
                psResposta = pParte_i + '-' + pParte_f;
                pParte_i = psResposta.substring(0, psResposta.length - 7);
                pParte_f = psResposta.substring(psResposta.length - 7, psResposta.length);
                psResposta = pParte_i + '/' + pParte_f;
                for (piLoop = 11; piLoop < (psResposta.length); piLoop++) {
                    pParte_i = psResposta.substring(0, psResposta.length - piLoop);
                    pParte_f = psResposta.substring(psResposta.length - piLoop, psResposta.length);
                    psResposta = pParte_i + '.' + pParte_f;
                    piLoop = piLoop + 3;
                }
            }
            //--- Fim Formata CNPJ

            //--- Formata CNPJ_FILIAL
            if (fsFormato == 'cnpj_filial' && psResposta.length > 4) {
                psResposta = psResposta.substring(0, 7);
                pParte_i = psResposta.substring(0, psResposta.length - 2);
                pParte_f = psResposta.substring(psResposta.length - 2, psResposta.length);
                psResposta = pParte_i + '-' + pParte_f;
            }
            //--- Fim Formata CNPJ_FILIAL

            //--- Formata Telefone
            if (fsFormato == 'telefone' && psResposta.length > 4) {
                psResposta = psResposta.substring(0, 8);
                pParte_i = psResposta.substring(0, psResposta.length - 4);
                pParte_f = psResposta.substring(psResposta.length - 4, psResposta.length);
                psResposta = pParte_i + '-' + pParte_f;
            }
            //--- Fim Formata Telefone

            //--- Formata CPF
            if (fsFormato == 'cpf' && psResposta.length > 2) {
                psResposta = psResposta.substring(0, 11);
                pParte_i = psResposta.substring(0, psResposta.length - 2);
                pParte_f = psResposta.substring(psResposta.length - 2, psResposta.length);
                psResposta = pParte_i + '-' + pParte_f;

                for (piLoop = 6; piLoop < (psResposta.length); piLoop++) {
                    pParte_i = psResposta.substring(0, psResposta.length - piLoop);
                    pParte_f = psResposta.substring(psResposta.length - piLoop, psResposta.length);
                    psResposta = pParte_i + '.' + pParte_f;
                    piLoop = piLoop + 3;
                }
            }
            //--- Fim Formata CPF

            if (fsFormato == 'moeda') {
                document.forms[foForm].elements[foNome].value = psResposta.substring(0, psResposta.length);
            } else {
                document.forms[foForm].elements[foNome].value = psResposta.substring(0, piTamanho);
            }
        }
    }
}

function validate_date(sdata) {
    if (sdata == '') { return true; }

    day2 = sdata.substr(0, 2);
    month2 = sdata.substr(3, 2);
    year2 = sdata.substr(6, 4);

    if (year2 < 1900) {
        return false;
    }


    if ((sdata.substr(2, 1) != "/") || (sdata.substr(5, 1) != "/")) {
        day2 = "";
        month2 = "";
        year2 = "";
    }

    var DayArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    var MonthArray = new Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12");
    var inpDate = day2 + month2 + year2;
    var filter = /^[0-9]{2}[0-9]{2}[0-9]{4}$/;

    //Check ddmmyyyy date supplied
    if (!filter.test(inpDate)) {
        return false;
    }
    /* Check Valid Month */
    filter = /01|02|03|04|05|06|07|08|09|10|11|12/;
    if (!filter.test(month2)) {
        return false;
    }
    /* Check For Leap Year */
    var N = Number(year2);
    if ((N % 4 == 0 && N % 100 != 0) || (N % 400 == 0)) {
        DayArray[1] = 29;
    }
    /* Check for valid days for month */
    for (var ctr = 0; ctr <= 11; ctr++) {
        if (MonthArray[ctr] == month2) {
            if (day2 <= DayArray[ctr] && day2 > 0) {
                inpDate = day2 + '/' + month2 + '/' + year2;
                return true;
            }
            else {
                return false;
            }
        }
    }
}
function validaCNPJ(CNPJ) {

    if (CNPJ.length == 0) {
        return true;
    } else {
        erro = new String;
        if (CNPJ.length < 18) erro += "CNPJ irregular ! \n\n";
        if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")) {
            if (erro.length == 0) erro += "CNPJ inválido ! \n\n";
        }
        //substituir os caracteres que nao sao numeros
        if (document.layers && parseInt(navigator.appVersion) == 4) {
            x = CNPJ.substring(0, 2);
            x += CNPJ.substring(3, 6);
            x += CNPJ.substring(7, 10);
            x += CNPJ.substring(11, 15);
            x += CNPJ.substring(16, 18);
            CNPJ = x;
        } else {
            CNPJ = CNPJ.replace(".", "");
            CNPJ = CNPJ.replace(".", "");
            CNPJ = CNPJ.replace("-", "");
            CNPJ = CNPJ.replace("/", "");
        }
        var nonNumbers = /\D/;
        if (nonNumbers.test(CNPJ)) erro += "A verificacao de CNPJ suporta apenas numeros! \n\n";
        var a = [];
        var b = new Number;
        var c = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
        for (i = 0; i < 12; i++) {
            a[i] = CNPJ.charAt(i);
            b += a[i] * c[i + 1];
        }
        if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11 - x }
        b = 0;
        for (y = 0; y < 13; y++) {
            b += (a[y] * c[y]);
        }
        if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11 - x; }
        if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])) {
            erro += "Digito verificador com problema!";
        }
        if (erro.length > 0) {
            alert(erro);
            return false;
        } else {
            //alert("CNPJ valido!");
        }
        return true;
    }
}


function ajaxGet(url, elemento_retorno, exibe_carregando) {
    var ajax1 = pegaAjax();
    if (ajax1) {
        url = antiCacheRand(url)
        ajax1.onreadystatechange = ajaxOnReady
        ajax1.open("GET", url, true);
        ajax1.setRequestHeader("Cache-Control", "no-cache");
        ajax1.setRequestHeader("Pragma", "no-cache");
        if (exibe_carregando) { put("Carregando ...") }
        ajax1.send(null)
        return true;
    } else {
        return false;
    }
    function ajaxOnReady() {
        if (ajax1.readyState == 4) {
            if (ajax1.status == 200) {
                var texto = ajax1.responseText;
                if (texto.indexOf(" ") < 0) texto = texto.replace(/\+/g, " ");
                put(texto);
                extraiScript(texto);
            } else {
                if (exibe_carregando) { put("Falha no carregamento. " + httpStatus(ajax1.status)); }
            }
            ajax1 = null
        } else if (exibe_carregando) {
            put("Carregando ...")
        }
    }
    function put(valor) {
        if ((typeof (elemento_retorno)).toLowerCase() == "string") {
            if (valor != "Falha no carregamento") {
                eval(elemento_retorno + '= unescape("' + escape(valor) + '")')
            }
        } else if (elemento_retorno.tagName.toLowerCase() == "input") {
            valor = escape(valor).replace(/\%0D\%0A/g, "")
            elemento_retorno.value = unescape(valor);
        } else if (elemento_retorno.tagName.toLowerCase() == "select") {
            select_innerHTML(elemento_retorno, valor)
        } else if (elemento_retorno.tagName) {
            elemento_retorno.innerHTML = valor;
        }
    }
    function pegaAjax() {
        if (typeof (XMLHttpRequest) != 'undefined') { return new XMLHttpRequest(); }
        var axO = ['Microsoft.XMLHTTP', 'Msxml2.XMLHTTP', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0'];
        for (var i = 0; i < axO.length; i++) { try { return new ActiveXObject(axO[i]); } catch (e) { } }
        return null;
    }
    function httpStatus(stat) {
        switch (stat) {
            case 0: return "Erro desconhecido de javascript";
            case 400: return "400: Solicita&ccedil;&atilde;o incompreensível"; break;
            case 403: case 404: return "404: N&atilde;o foi encontrada a URL solicitada"; break;
            case 405: return "405: O servidor n&atilde;o suporta o m&eacute;todo solicitado"; break;
            case 500: return "500: Erro desconhecido de natureza do servidor"; break;
            case 503: return "503: Capacidade m&aacute;xima do servidor alcançada"; break;
            default: return "Erro " + stat + ". Mais informa&ccedil;&otilde;es em http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"; break;
        }
    }
    function antiCacheRand(aurl) {
        var dt = new Date();
        if (aurl.indexOf("?") >= 0) {
            return aurl + "&" + encodeURI(Math.random() + "_" + dt.getTime());
        } else { return aurl + "?" + encodeURI(Math.random() + "_" + dt.getTime()); }
    }
}
function select_innerHTML(objeto, innerHTML) {
    objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id = "micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display = "none"
    if (innerHTML.toLowerCase().indexOf("<option") < 0) {//se não é option eu converto
        innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.replace(/<option/g, "<span").replace(/<\/option/g, "</span")
    selTemp.innerHTML = innerHTML
    for (var i = 0; i < selTemp.childNodes.length; i++) {
        if (selTemp.childNodes[i].tagName) {
            opt = document.createElement("OPTION")
            for (var j = 0; j < selTemp.childNodes[i].attributes.length; j++) {
                opt.setAttributeNode(selTemp.childNodes[i].attributes[j].cloneNode(true))
            }
            opt.value = selTemp.childNodes[i].getAttribute("value")
            opt.text = selTemp.childNodes[i].innerHTML
            if (document.all) {
                objeto.add(opt)
            } else {
                objeto.appendChild(opt)
            }
        }
    }
    document.body.removeChild(selTemp)
    selTemp = null
}
// --- Ajax
// --- Exemplos de uso: 
// --- Em um elemento qualquer: ajaxGet("http://www.suapagina.com/seuarquivo.htm",document.getElementById("div1"),true)
// --- Em uma variÃ¡vel javascript: ajaxGet("http://localhost/lojavirtualfree/optionas.htm","document.getElementById('div2').innerHTML",false)
// --- Em um input text: ajaxGet("http://localhost/lojavirtualfree/optionas.htm",document.getElementById("input1"),false)
// --- Em um select (preenche com options): ajaxGet("http://localhost/lojavirtualfree/optionas.htm?viva",document.getElementById("select1"),true) 

function mascara(src, mask) {
    //DATA:
    //onkeypress="mascara(this, '00/00/0000')"

    //CEP:
    //onkeypress="mascara(this, '00000-000')"
    //TELEFONE:
    //onkeypress="mascara(this, '(00) 0000-0000')"



    var i = src.value.length;

    var saida = mask.substring(i, i + 1);

    var ascii = event.keyCode;

    if (saida == "B") //Não aceita número como entrada no teclado
    {

        if ((ascii < 48) && (ascii > 57)) {

            event.keyCode -= 32;

        }

        else {

            event.keyCode = 0;

        }

    } else

        if (saida == "A") //Aceita somente letras do alfabeto e maiúsculas como entrada no teclado
        {

            if ((ascii >= 97) && (ascii <= 122)) {

                event.keyCode -= 32;

            }

            else {

                event.keyCode = 0;

            }

        } else

            if (saida == "0") //Aceita somente números como entrada no teclado
            {

                if ((ascii >= 48) && (ascii <= 57)) {

                    return

                }

                else {

                    event.keyCode = 0

                }

            }

            else //Aceita qualquer entrada no teclado

                if (saida == "#") {

                    return;

                }

                else {

                    src.value += saida;

                    i += 1

                    saida = mask.substring(i, i + 1);

                    if (saida == "A") {

                        if ((ascii >= 97) && (ascii <= 122)) {

                            event.keyCode -= 32;

                        } else {

                            event.keyCode = 0;

                        }

                    } else

                        if (saida == "0") {

                            if ((ascii >= 48) && (ascii <= 57)) {

                                return

                            } else {

                                event.keyCode = 0

                            }

                        } else {

                            return;

                        }

                }

}

function limpa_cpf(cpf) {
    var sretorno;
    sretorno = cpf;
    sretorno = troca(sretorno, ".", "");
    sretorno = troca(sretorno, "-", "");
    sretorno = troca(sretorno, "/", "");
    sretorno = troca(sretorno, " ", "");
    return sretorno;
}

function moduloCPF(str) {
    soma = 0;
    ind = 2;
    for (pos = str.length - 1; pos > -1; pos = pos - 1) {
        soma = soma + (parseInt(str.charAt(pos)) * ind);
        ind++;
        if (str.length > 11) {
            if (ind > 9) ind = 2;
        }
    }
    resto = soma - (Math.floor(soma / 11) * 11);
    if (resto < 2) {
        return 0
    }
    else {
        return 11 - resto
    }
}

function VerificaCPF(valor) {
    valor = limpa_cpf(valor);

    primeiro = valor.substr(1, 1);
    falso = true;
    size = valor.length;
    if (size != 11) {
        return false;
    }
    size--;
    for (i = 2; i < size - 1; ++i) {
        proximo = (valor.substr(i, 1));
        if (primeiro != proximo) {
            falso = false
        }
    }
    if (falso) {
        return false;
    }
    if (moduloCPF(valor.substring(0, valor.length - 2)) + "" + moduloCPF(valor.substring(0, valor.length - 1)) != valor.substring(valor.length - 2, valor.length)) {
        return false;
    }
    return true
}

function maxLength(textAreaField, limit) {
    var ta = document.getElementById(textAreaField);

    if (ta.value.length >= limit) {
        ta.value = ta.value.substring(0, limit - 1);
    }
}
function Left(str, n) {
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else
        return String(str).substring(0, n);
}
function Right(str, n) {
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else {
        var iLen = String(str).length;
        return String(str).substring(iLen, iLen - n);
    }
}

function TrataLimite(textAreaField, limit) {
    var ta = document.getElementById(textAreaField);

    if (ta.value.length >= limit) {
        ta.value = ta.value.substring(0, limit - 1);
    }
}


function Verificacnpj(cnpj) {
    var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
    digitos_iguais = 1;
    if (cnpj.length < 14 && cnpj.length < 15)
        return false;
    for (i = 0; i < cnpj.length - 1; i++)
        if (cnpj.charAt(i) != cnpj.charAt(i + 1)) {
            digitos_iguais = 0;
            break;
        }
    if (!digitos_iguais) {
        tamanho = cnpj.length - 2
        numeros = cnpj.substring(0, tamanho);
        digitos = cnpj.substring(tamanho);
        soma = 0;
        pos = tamanho - 7;
        for (i = tamanho; i >= 1; i--) {
            soma += numeros.charAt(tamanho - i) * pos--;
            if (pos < 2)
                pos = 9;
        }
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        if (resultado != digitos.charAt(0))
            return false;
        tamanho = tamanho + 1;
        numeros = cnpj.substring(0, tamanho);
        soma = 0;
        pos = tamanho - 7;
        for (i = tamanho; i >= 1; i--) {
            soma += numeros.charAt(tamanho - i) * pos--;
            if (pos < 2)
                pos = 9;
        }
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        if (resultado != digitos.charAt(1))
            return false;
        return true;
    }
    else
        return false;
}

function validaCNPJ(CNPJ) {

    if (CNPJ.length == 0) {
        return true;
    } else {
        erro = new String;
        if (CNPJ.length < 18) erro += "CNPJ irregular ! \n\n";
        if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")) {
            if (erro.length == 0) erro += "CNPJ inválido ! \n\n";
        }
        //substituir os caracteres que nao sao numeros
        if (document.layers && parseInt(navigator.appVersion) == 4) {
            x = CNPJ.substring(0, 2);
            x += CNPJ.substring(3, 6);
            x += CNPJ.substring(7, 10);
            x += CNPJ.substring(11, 15);
            x += CNPJ.substring(16, 18);
            CNPJ = x;
        } else {
            CNPJ = CNPJ.replace(".", "");
            CNPJ = CNPJ.replace(".", "");
            CNPJ = CNPJ.replace("-", "");
            CNPJ = CNPJ.replace("/", "");
        }
        var nonNumbers = /\D/;
        if (nonNumbers.test(CNPJ)) erro += "A verificacao de CNPJ suporta apenas numeros! \n\n";
        var a = [];
        var b = new Number;
        var c = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
        for (i = 0; i < 12; i++) {
            a[i] = CNPJ.charAt(i);
            b += a[i] * c[i + 1];
        }
        if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11 - x }
        b = 0;
        for (y = 0; y < 13; y++) {
            b += (a[y] * c[y]);
        }
        if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11 - x; }
        if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])) {
            erro += "Digito verificador com problema!";
        }
        if (erro.length > 0) {
            alert(erro);
            return false;
        } else {
            //alert("CNPJ valido!");
        }
        return true;
    }
}
