﻿//mascara generica em javascript  
function mascaraTexto(evento, mascara) {

    var campo, valor, i, tam, caracter;

    if (document.all) // Internet Explorer  
        campo = evento.srcElement;
    else // Nestcape, Mozzila  
        campo = evento.target;
        
    valor = campo.value;
    tam = valor.length;

    for (i = 0; i < mascara.length; i++) {
        caracter = mascara.charAt(i);
        if (caracter != "9")
            if (i < tam & caracter != valor.charAt(i))
            campo.value = valor.substring(0, i) + caracter + valor.substring(i, tam);
    }
}


function mascara(o, f) {
    v_obj = o
    v_fun = f
    setTimeout("execmascara()", 1)
}

function execmascara() {
    v_obj.value = v_fun(v_obj.value)
}

function leech(v) {
    v = v.replace(/o/gi, "0")
    v = v.replace(/i/gi, "1")
    v = v.replace(/z/gi, "2")
    v = v.replace(/e/gi, "3")
    v = v.replace(/a/gi, "4")
    v = v.replace(/s/gi, "5")
    v = v.replace(/t/gi, "7")
    return v
}

function soNumeros(v) {
    return v.replace(/\D/g, "")
}

function data(v) {
    v = v.replace(/\D/g, "")                           //Remove tudo o que não é dígito
    v = v.replace(/(\d{2})(\d)/, "$1/$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v = v.replace(/(\d{2})(\d)/, "$1/$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    return v
}

function telefone(v) {
    v = v.replace(/\D/g, "")                 //Remove tudo o que não é dígito
    v = v.replace(/^(\d\d)(\d)/g, "($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
    v = v.replace(/(\d{4})(\d)/, "$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
    return v
}

function cpf(v) {
    v = v.replace(/\D/g, "")                    //Remove tudo o que não é dígito
    v = v.replace(/(\d{3})(\d)/, "$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v = v.replace(/(\d{3})(\d)/, "$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    //de novo (para o segundo bloco de números)
    v = v.replace(/(\d{3})(\d{1,2})$/, "$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
    return v
}

function cep(v) {
    v = v.replace(/D/g, "")                //Remove tudo o que não é dígito
    v = v.replace(/^(\d{5})(\d)/, "$1-$2") //Esse é tão fácil que não merece explicações
    return v
}

function cnpj(v) {
    v = v.replace(/\D/g, "")                           //Remove tudo o que não é dígito
    v = v.replace(/^(\d{2})(\d)/, "$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos
    v = v.replace(/^(\d{2})\.(\d{3})(\d)/, "$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
    v = v.replace(/\.(\d{3})(\d)/, ".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos
    v = v.replace(/(\d{4})(\d)/, "$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos
    return v
}

function romanos(v) {
    v = v.toUpperCase()             //Maiúsculas
    v = v.replace(/[^IVXLCDM]/g, "") //Remove tudo o que não for I, V, X, L, C, D ou M
    //Essa é complicada! Copiei daqui: http://www.diveintopython.org/refactoring/refactoring.html
    while (v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/, "") != "")
        v = v.replace(/.$/, "")
    return v
}

function site(v) {
    //Esse sem comentarios para que você entenda sozinho ;-)
    v = v.replace(/^http:\/\/?/, "")
    dominio = v
    caminho = ""
    if (v.indexOf("/") > -1)
        dominio = v.split("/")[0]
    caminho = v.replace(/[^\/]*/, "")
    dominio = dominio.replace(/[^\w\.\+-:@]/g, "")
    caminho = caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g, "")
    caminho = caminho.replace(/([\?&])=/, "$1")
    if (caminho != "") dominio = dominio.replace(/\.+$/, "")
    v = "http://" + dominio + caminho
    return v
}




/* JavaScript Document
//adiciona mascara de cnpj
function MascaraCNPJ(cnpj) {
if (mascaraInteiro(cnpj) == false) {
event.returnValue = false;
}
return formataCampo(cnpj, '00.000.000/0000-00', event);
}

/*Função que padroniza CNPJ
function Cnpj(v) {
v = v.replace(/\D/g, "")
v = v.replace(/^(\d{2})(\d)/, "$1.$2")
v = v.replace(/^(\d{2})\.(\d{3})(\d)/, "$1.$2.$3")
v = v.replace(/\.(\d{3})(\d)/, ".$1/$2")
v = v.replace(/(\d{4})(\d)/, "$1-$2")
return v
}

function mascara_cpf() {
if (document.form.cpf.value.length == 3) {
document.form.cpf.value += '.';
}
if (document.form.cpf.value.length == 7) {
document.form.cpf.value += '.';
}
if (document.form.cpf.value.length == 11) {
document.form.cpf.value += '-';
}
}

//adiciona mascara de cep
function MascaraCep(cep) {
if (mascaraInteiro(cep) == false) {
event.returnValue = false;
}
return formataCampo(cep, '00000-000', event);
}

//adiciona mascara de data
function MascaraData(data) {
if (mascaraInteiro(data) == false) {
event.returnValue = false;
}
return formataCampo(data, '00/00/0000', event);
}

//adiciona mascara ao telefone
function MascaraTelefone(tel) {
if (mascaraInteiro(tel) == false) {
event.returnValue = false;
}
return formataCampo(tel, '(00)0000-0000', event);
}

//adiciona mascara ao CPF
function MascaraCPF(cpf) {
if (mascaraInteiro(cpf) == false) {
event.returnValue = false;
}
return formataCampo(cpf, '000.000.000-00', event);
}

//valida telefone
function ValidaTelefone(tel) {
exp = /\(\d{2}\)\d{4}\-\d{4}/
if (!exp.test(tel.value))
alert('Numero de Telefone Invalido!');
}

//valida CEP
function ValidaCep(cep) {
exp = /\d{2}\.\d{3}\-\d{3}/
if (!exp.test(cep.value))
alert('Numero de Cep Invalido!');
}

//valida data
function ValidaData(data) {
exp = /\d{2}\/\d{2}\/\d{4}/
if (!exp.test(data.value))
alert('Data Invalida!');
}

//valida o CPF digitado
function ValidarCPF(Objcpf) {
var cpf = Objcpf.value;
exp = /\.|\-/g
cpf = cpf.toString().replace(exp, "");
var digitoDigitado = eval(cpf.charAt(9) + cpf.charAt(10));
var soma1 = 0, soma2 = 0;
var vlr = 11;

for (i = 0; i < 9; i++) {
soma1 += eval(cpf.charAt(i) * (vlr - 1));
soma2 += eval(cpf.charAt(i) * vlr);
vlr--;
}
soma1 = (((soma1 * 10) % 11) == 10 ? 0 : ((soma1 * 10) % 11));
soma2 = (((soma2 + (2 * soma1)) * 10) % 11);

var digitoGerado = (soma1 * 10) + soma2;
if (digitoGerado != digitoDigitado)
alert('CPF Invalido!');
}

//valida numero inteiro com mascara
function mascaraInteiro() {
if (event.keyCode < 48 || event.keyCode > 57) {
event.returnValue = false;
return false;
}
return true;
}

//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj) {
var cnpj = ObjCnpj.value;
var valida = new Array(6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2);
var dig1 = new Number;
var dig2 = new Number;

exp = /\.|\-|\//g
cnpj = cnpj.toString().replace(exp, "");
var digito = new Number(eval(cnpj.charAt(12) + cnpj.charAt(13)));

for (i = 0; i < valida.length; i++) {
dig1 += (i > 0 ? (cnpj.charAt(i - 1) * valida[i]) : 0);
dig2 += cnpj.charAt(i) * valida[i];
}
dig1 = (((dig1 % 11) < 2) ? 0 : (11 - (dig1 % 11)));
dig2 = (((dig2 % 11) < 2) ? 0 : (11 - (dig2 % 11)));

if (((dig1 * 10) + dig2) != digito)
alert('CNPJ Invalido!');

}

//formata de forma generica os campos
function formataCampo(campo, Mascara, evento) {
var boleanoMascara;

var Digitato = evento.keyCode;
exp = /\-|\.|\/|\(|\)| /g
campoSoNumeros = campo.value.toString().replace(exp, "");

var posicaoCampo = 0;
var NovoValorCampo = "";
var TamanhoMascara = campoSoNumeros.length; ;

if (Digitato != 8) { // backspace 
for (i = 0; i <= TamanhoMascara; i++) {
boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
|| (Mascara.charAt(i) == "/"))
boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(")
|| (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))
if (boleanoMascara) {
NovoValorCampo += Mascara.charAt(i);
TamanhoMascara++;
} else {
NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
posicaoCampo++;
}
}
campo.value = NovoValorCampo;
return true;
} else {
return true;
}
}




/*function formataMascara(campo, evt, formato) {
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;


var result = "";
var maskIdx = formato.length - 1;
var error = false;
var valor = campo.value;
var posFinal = false;
if (campo.setSelectionRange) {
if (campo.selectionStart == valor.length)
posFinal = true;
}

valor = valor.replace(/[^0123456789Xx]/g, '');
for (var valIdx = valor.length - 1; valIdx >= 0 && maskIdx >= 0; --maskIdx) {
var chr = valor.charAt(valIdx);
var chrMask = formato.charAt(maskIdx);
switch (chrMask) {
case '#':
if (!(/\d/.test(chr)))
error = true;
result = chr + result;
--valIdx;
break;
case '@':
result = chr + result;
--valIdx;
break;
default:
result = chrMask + result;
}
}

campo.value = result;
campo.style.color = error ? 'red' : '';
if (posFinal) {
campo.selectionStart = result.length;
campo.selectionEnd = result.length;
}
return result;
}

// Formata o campo valor monetário
function formataValor(campo, evt) {
//1.000.000,00
var xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;

vr = campo.value = filtraNumeros(filtraCampo(campo));
if (vr.length > 0) {
vr = parseFloat(vr.toString()).toString();
tam = vr.length;

if (tam == 1)
campo.value = "0,0" + vr;
if (tam == 2)
campo.value = "0," + vr;
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 <= 18)) {
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);
}
}
MovimentaCursor(campo, xPos);
}

// Formata data no padrão DD/MM/YYYY
function formataData(campo, evt) {
var xPos = PosicaoCursor(campo);
//dd/MM/yyyy
evt = getEvent(evt);

var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;
vr = campo.value = filtraNumeros(filtraCampo(campo));
tam = vr.length;

if (tam >= 2 && tam < 4)
campo.value = vr.substr(0, 2) + '/' + vr.substr(2);
if (tam == 4)
campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/';
if (tam > 4)
campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4);

MovimentaCursor(campo, xPos);
}

//descobre qual a posição do cursor no campo
function PosicaoCursor(textarea) {
var pos = 0;
if (typeof (document.selection) != 'undefined') {
//IE
var range = document.selection.createRange();
var i = 0;
for (i = textarea.value.length; i > 0; i--) {
if (range.moveStart('character', 1) == 0)
break;
}
pos = i;
}
if (typeof (textarea.selectionStart) != 'undefined') {
//FireFox
pos = textarea.selectionStart;
}

if (pos == textarea.value.length)
return 0; //retorna 0 quando não precisa posicionar o elemento
else
return pos; //posição do cursor
}

// move o cursor para a posição pos
function MovimentaCursor(textarea, pos) {
if (pos <= 0)
return; //se a posição for 0 não reposiciona

if (typeof (document.selection) != 'undefined') {
//IE
var oRange = textarea.createTextRange();
var LENGTH = 1;
var STARTINDEX = pos;

oRange.moveStart("character", -textarea.value.length);
oRange.moveEnd("character", -textarea.value.length);
oRange.moveStart("character", pos);
//oRange.moveEnd("character", pos);
oRange.select();
textarea.focus();
}
if (typeof (textarea.selectionStart) != 'undefined') {
//FireFox
textarea.selectionStart = pos;
textarea.selectionEnd = pos;
}
}

//Formata data e hora no padrão DD/MM/YYYY HH:MM
function formataDataeHora(campo, evt) {
xPos = PosicaoCursor(campo);
//dd/MM/yyyy
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;
vr = campo.value = filtraNumeros(filtraCampo(campo));
tam = vr.length;

if (tam >= 2 && tam < 4)
campo.value = vr.substr(0, 2) + '/' + vr.substr(2);
if (tam == 4)
campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/';
if (tam > 4)
campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4);
if (tam > 8 && tam < 11)
campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 4) + ' ' + vr.substr(8, 2);
if (tam >= 11)
campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 4) + ' ' + vr.substr(8, 2) + ':' + vr.substr(10);

campo.value = campo.value.substr(0, 16);
//    if(xPos == 2 || xPos == 5)
//        xPos = xPos +1;
//    if(xPos == 11 || xPos == 14)
//        xPos = xPos +2;
MovimentaCursor(campo, xPos);
}

// Formata só números
function formataInteiro(campo, evt) {
//1234567890
xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;

campo.value = filtraNumeros(filtraCampo(campo));
MovimentaCursor(campo, xPos);
}

// Formata hora no padrao HH:MM
function formataHora(campo, evt) {
//HH:mm
xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;

vr = campo.value = filtraNumeros(filtraCampo(campo));

if (tam == 2)
campo.value = vr.substr(0, 2) + ':';
if (tam > 2 && tam < 5)
campo.value = vr.substr(0, 2) + ':' + vr.substr(2);
//    if(xPos == 2)
//        xPos = xPos + 1;
MovimentaCursor(campo, xPos);
}

// limpa todos os caracteres especiais do campo solicitado
function filtraCampo(campo) {
var s = "";
var cp = "";
vr = campo.value;
tam = vr.length;
for (i = 0; i < tam; i++) {
if (vr.substring(i, i + 1) != "/"
&& vr.substring(i, i + 1) != "-"
&& vr.substring(i, i + 1) != "."
&& vr.substring(i, i + 1) != "("
&& vr.substring(i, i + 1) != ")"
&& vr.substring(i, i + 1) != ":"
&& vr.substring(i, i + 1) != ",") {
s = s + vr.substring(i, i + 1);
}
}
return s;
//return campo.value.replace("/", "").replace("-", "").replace(".", "").replace(",", "")
}

// limpa todos caracteres que não são números
function filtraNumeros(campo) {
var s = "";
var cp = "";
vr = campo;
tam = vr.length;
for (i = 0; i < tam; i++) {
if (vr.substring(i, i + 1) == "0" ||
vr.substring(i, i + 1) == "1" ||
vr.substring(i, i + 1) == "2" ||
vr.substring(i, i + 1) == "3" ||
vr.substring(i, i + 1) == "4" ||
vr.substring(i, i + 1) == "5" ||
vr.substring(i, i + 1) == "6" ||
vr.substring(i, i + 1) == "7" ||
vr.substring(i, i + 1) == "8" ||
vr.substring(i, i + 1) == "9") {
s = s + vr.substring(i, i + 1);
}
}
return s;
//return campo.value.replace("/", "").replace("-", "").replace(".", "").replace(",", "")
}

// limpa todos caracteres que não são letras
function filtraCaracteres(campo) {
vr = campo;
for (i = 0; i < tam; i++) {
//Caracter
if (vr.charCodeAt(i) != 32 && vr.charCodeAt(i) != 94 && (vr.charCodeAt(i) < 65 ||
(vr.charCodeAt(i) > 90 && vr.charCodeAt(i) < 96) ||
vr.charCodeAt(i) > 122) && vr.charCodeAt(i) < 192) {
vr = vr.replace(vr.substr(i, 1), "");
}
}
return vr;
}

// limpa todos caracteres que não são números, menos a vírgula
function filtraNumerosComVirgula(campo) {
var s = "";
var cp = "";
vr = campo;
tam = vr.length;
var complemento = 0; //flag paga contar o número de virgulas
for (i = 0; i < tam; i++) {
if ((vr.substring(i, i + 1) == "," && complemento == 0 && s != "") ||
vr.substring(i, i + 1) == "0" ||
vr.substring(i, i + 1) == "1" ||
vr.substring(i, i + 1) == "2" ||
vr.substring(i, i + 1) == "3" ||
vr.substring(i, i + 1) == "4" ||
vr.substring(i, i + 1) == "5" ||
vr.substring(i, i + 1) == "6" ||
vr.substring(i, i + 1) == "7" ||
vr.substring(i, i + 1) == "8" ||
vr.substring(i, i + 1) == "9") {
if (vr.substring(i, i + 1) == ",")
complemento = complemento + 1;
s = s + vr.substring(i, i + 1);
}
}
return s;
}

function formataMesAno(campo, evt) {
//MM/yyyy
var xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;

vr = campo.value = filtraNumeros(filtraCampo(campo));
tam = vr.length;

if (tam >= 2)
campo.value = vr.substr(0, 2) + '/' + vr.substr(2);
MovimentaCursor(campo, xPos);
}

function formataCNPJ(campo, evt) {
//99.999.999/9999-99
var xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;

vr = campo.value = filtraNumeros(filtraCampo(campo));
tam = vr.length;

if (tam >= 2 && tam < 5)
campo.value = vr.substr(0, 2) + '.' + vr.substr(2);
else if (tam >= 5 && tam < 8)
campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(5);
else if (tam >= 8 && tam < 12)
campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(5, 3) + '/' + vr.substr(8);
else if (tam >= 12)
campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(5, 3) + '/' + vr.substr(8, 4) + '-' + vr.substr(12);
MovimentaCursor(campo, xPos);
}

function formataCPF(campo, evt) {
//999.999.999-99
var xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;

vr = campo.value = filtraNumeros(filtraCampo(campo));
tam = vr.length;
if (tam >= 3 && tam < 6)
campo.value = vr.substr(0, 3) + '.' + vr.substr(3);
else if (tam >= 6 && tam < 9)
campo.value = vr.substr(0, 3) + '.' + vr.substr(3, 3) + '.' + vr.substr(6);
else if (tam >= 9)
campo.value = vr.substr(0, 3) + '.' + vr.substr(3, 3) + '.' + vr.substr(6, 3) + '-' + vr.substr(9);
MovimentaCursor(campo, xPos);
}

function formataDouble(campo, evt) {
//18,53012
var xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;

campo.value = filtraNumerosComVirgula(campo.value);
MovimentaCursor(campo, xPos);
}

function formataTelefone(campo, evt) {
//(00) 0000-0000
var xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;

vr = campo.value = filtraNumeros(filtraCampo(campo));
tam = vr.length;

if (tam == 1)
campo.value = '(' + vr;
else if (tam >= 2 && tam < 6)
campo.value = '(' + vr.substr(0, 2) + ') ' + vr.substr(2);
else if (tam >= 6)
campo.value = '(' + vr.substr(0, 2) + ') ' + vr.substr(2, 4) + '-' + vr.substr(6);

//(
//    if(xPos == 1 || xPos == 3 || xPos == 5 || xPos == 9)
//        xPos = xPos +1
MovimentaCursor(campo, xPos);
}

function formataTexto(campo, evt, sMascara) {
//Nome com Inicial Maiuscula.
evt = getEvent(evt);
xPos = PosicaoCursor(campo);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;
vr = campo.value = filtraCaracteres(filtraCampo(campo));
tam = vr.length;

if (sMascara == "Aa" || sMascara == "Xx") {
var valor = campo.value.toLowerCase();
var count = campo.value.split(" ").length - 1;
var i;
var pos = 0;
var valorIni;
var valorMei;
var valorFim;
valor = valor.substring(0, 1).toUpperCase() + valor.substring(1, valor.length);
for (i = 0; i < count; i++) {
pos = valor.indexOf(" ", pos + 1);
valorIni = valor.substring(0, valor.indexOf(" ", pos - 1)) + " ";
valorMei = valor.substring(valor.indexOf(" ", pos) + 1, valor.indexOf(" ", pos) + 2).toUpperCase();
valorFim = valor.substring(valor.indexOf(" ", pos) + 2, valor.length);
valor = valorIni + valorMei + valorFim;
}
campo.value = valor;
}
if (sMascara == "Aaa" || sMascara == "Xxx") {
var valor = campo.value.toLowerCase();
var count = campo.value.split(" ").length - 1;
var i;
var pos = 0;
var valorIni;
var valorMei;
var valorFim;
var ligacao = false;
var chrLigacao = Array("de", "da", "do", "para", "e")
valor = valor.substring(0, 1).toUpperCase() + valor.substring(1, valor.length);
for (i = 0; i < count; i++) {
ligacao = false;
pos = valor.indexOf(" ", pos + 1);
valorIni = valor.substring(0, valor.indexOf(" ", pos - 1)) + " ";
for (var a = 0; a < chrLigacao.length; a++) {
if (valor.substring(valorIni.length, valor.indexOf(" ", valorIni.length)).toLowerCase() == chrLigacao[a].toLowerCase()) {
ligacao = true;
break;
}
else if (ligacao == false && valor.indexOf(" ", valorIni.length) == -1) {
if (valor.substring(valorIni.length, valor.length).toLowerCase() == chrLigacao[a].toLowerCase()) {
ligacao = true;
break;
}
}
}
if (ligacao == true) {
valorMei = valor.substring(valor.indexOf(" ", pos) + 1, valor.indexOf(" ", pos) + 2).toLowerCase();
}
else {
valorMei = valor.substring(valor.indexOf(" ", pos) + 1, valor.indexOf(" ", pos) + 2).toUpperCase();
}
valorFim = valor.substring(valor.indexOf(" ", pos) + 2, valor.length);
valor = valorIni + valorMei + valorFim;
}

campo.value = valor;
}
MovimentaCursor(campo, xPos);
return true;
}

// Formata o campo CEP
function formataCEP(campo, evt) {
//312555-650
var xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;

vr = campo.value = filtraNumeros(filtraCampo(campo));
tam = vr.length;

if (tam < 5)
campo.value = vr;
else if (tam == 5)
campo.value = vr + '-';
else if (tam > 5)
campo.value = vr.substr(0, 5) + '-' + vr.substr(5);
MovimentaCursor(campo, xPos);
}

function formataCartaoCredito(campo, evt) {
//0000.0000.0000.0000
var xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;

var vr = campo.value = filtraNumeros(filtraCampo(campo));
var tammax = 16;
var tam = vr.length;

if (tam < tammax && tecla != 8)
{ tam = vr.length + 1; }

if (tam < 5)
{ campo.value = vr; }
if ((tam > 4) && (tam < 9))
{ campo.value = vr.substr(0, 4) + '.' + vr.substr(4, tam - 4); }
if ((tam > 8) && (tam < 13))
{ campo.value = vr.substr(0, 4) + '.' + vr.substr(4, 4) + '.' + vr.substr(8, tam - 4); }
if (tam > 12)
{ campo.value = vr.substr(0, 4) + '.' + vr.substr(4, 4) + '.' + vr.substr(8, 4) + '.' + vr.substr(12, tam - 4); }
MovimentaCursor(campo, xPos);
}


//recupera tecla

//evita criar mascara quando as teclas são pressionadas
function teclaValida(tecla) {
if (tecla == 8 //backspace
//Esta evitando o post, quando são pressionadas estas teclas.
//Foi comentado pois, se for utilizado o evento texchange, é necessario o post.
|| tecla == 9 //TAB
|| tecla == 27 //ESC
|| tecla == 16 //Shif TAB
|| tecla == 45 //insert
|| tecla == 46 //delete
|| tecla == 35 //home
|| tecla == 36 //end
|| tecla == 37 //esquerda
|| tecla == 38 //cima
|| tecla == 39 //direita
|| tecla == 40)//baixo
return false;
else
return true;
}

// recupera o evento do form
function getEvent(evt) {
if (!evt) evt = window.event; //IE
return evt;
}
//Recupera o código da tecla que foi pressionado
function getKeyCode(evt) {
var code;
if (typeof (evt.keyCode) == 'number')
code = evt.keyCode;
else if (typeof (evt.which) == 'number')
code = evt.which;
else if (typeof (evt.charCode) == 'number')
code = evt.charCode;
else
return 0;

return code;
}

function formatar(src, mask) {
var i = src.value.length;
var saida = mask.substring(0, 1);
var texto = mask.substring(i)
if (texto.substring(0, 1) != saida) {
src.value += texto.substring(0, 1);
} //fechando o if
} //fechando a função

/* JAVASCRIPT DOCUMENT
//ADICIONA MASCARA DE CNPJ
function MascaraCNPJ(cnpj) {
if (mascaraInteiro(cnpj) == false) {
event.returnValue = false;
}
return formataCampo(cnpj, '00.000.000/0000-00', event);
}

//ADICIONA MASCARA DE CEP
function MascaraCep(cep) {
if (mascaraInteiro(cep) == false) {
event.returnValue = false;
}
return formataCampo(cep, '00000-000', event);
}

//ADICIONA MASCARA DE DATA
function MascaraData(data) {
if (mascaraInteiro(data) == false) {
event.returnValue = false;
}
return formataCampo(data, '00/00/0000', event);
}

//ADICIONA MASCARA AO TELEFONE
function MascaraTelefone(tel) {
if (mascaraInteiro(tel) == false) {
event.returnValue = false;
}
return formataCampo(tel, '(00)0000-0000', event);
}

//ADICIONA MASCARA AO CPF
function MascaraCPF(cpf) {
if (mascaraInteiro(cpf) == false) {
event.returnValue = false;
}
return formataCampo(cpf, '000.000.000-00', event);
}

//VALIDA TELEFONE
function ValidaTelefone(tel) {
exp = /\(\d{2}\)\d{4}\-\d{4}/
if (!exp.test(tel.value))
alert('Numero de Telefone Invalido!');
}

//VALIDA CEP
function ValidaCep(cep) {
exp = /\d{2}\.\d{3}\-\d{3}/
if (!exp.test(cep.value))
alert('Numero de Cep Invalido!');
}

//VALIDA DATA
function ValidaData(data) {
exp = /\d{2}\/\d{2}\/\d{4}/
if (!exp.test(data.value))
alert('Data Invalida!');
}

//VALIDA O CPF DIGITADO
function ValidarCPF(Objcpf) {
var cpf = Objcpf.value;
exp = /\.|\-/g
cpf = cpf.toString().replace(exp, "");
var digitoDigitado = eval(cpf.charAt(9) + cpf.charAt(10));
var soma1 = 0, soma2 = 0;
var vlr = 11;

for (i = 0; i < 9; i++) {
soma1 += eval(cpf.charAt(i) * (vlr - 1));
soma2 += eval(cpf.charAt(i) * vlr);
vlr--;
}
soma1 = (((soma1 * 10) % 11) == 10 ? 0 : ((soma1 * 10) % 11));
soma2 = (((soma2 + (2 * soma1)) * 10) % 11);

var digitoGerado = (soma1 * 10) + soma2;
if (digitoGerado != digitoDigitado)
alert('CPF Invalido!');
}

//VALIDA NUMERO INTEIRO COM MASCARA
function mascaraInteiro() {
if (event.keyCode < 48 || event.keyCode > 57) {
event.returnValue = false;
return false;
}
return true;
}

//VALIDA O CNPJ DIGITADO
function ValidarCNPJ(ObjCnpj) {
var cnpj = ObjCnpj.value;
var valida = new Array(6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2);
var dig1 = new Number;
var dig2 = new Number;

exp = /\.|\-|\//g
cnpj = cnpj.toString().replace(exp, "");
var digito = new Number(eval(cnpj.charAt(12) + cnpj.charAt(13)));

for (i = 0; i < valida.length; i++) {
dig1 += (i > 0 ? (cnpj.charAt(i - 1) * valida[i]) : 0);
dig2 += cnpj.charAt(i) * valida[i];
}
dig1 = (((dig1 % 11) < 2) ? 0 : (11 - (dig1 % 11)));
dig2 = (((dig2 % 11) < 2) ? 0 : (11 - (dig2 % 11)));

if (((dig1 * 10) + dig2) != digito)
alert('CNPJ Invalido!');

}

//FORMATA DE FORMA GENERICA OS CAMPOS
function formataCampo(campo, Mascara, evento) {
var boleanoMascara;

var Digitato = evento.keyCode;
exp = /\-|\.|\/|\(|\)| /g
campoSoNumeros = campo.value.toString().replace(exp, "");

var posicaoCampo = 0;
var NovoValorCampo = "";
var TamanhoMascara = campoSoNumeros.length; ;

if (Digitato != 8) { // BACKSPACE 
for (i = 0; i <= TamanhoMascara; i++) {
boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
|| (Mascara.charAt(i) == "/"))
boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(")
|| (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))
if (boleanoMascara) {
NovoValorCampo += Mascara.charAt(i);
TamanhoMascara++;
} else {
NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
posicaoCampo++;
}
}
campo.value = NovoValorCampo;
return true;
} else {
return true;
}
}

*/
