documentall = document.all;
/*
* função para formatação de valores monetários retirada de
* http://jonasgalvez.com/br/blog/2003-08/egocentrismo
*/

function formatamoney(c) {
    var t = this; if(c == undefined) c = 2;		
    var p, d = (t=t.split("."))[1].substr(0, c);
    for(p = (t=t[0]).length; (p-=3) >= 1;) {
	        t = t.substr(0,p) + "." + t.substr(p);
    }
    return t+","+d+Array(c+1-d.length).join(0);
}

String.prototype.formatCurrency=formatamoney

function demaskvalue(valor, currency){
/*
* Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as 
* casas decimais
*/
var val2 = '';
var strCheck = '0123456789';
var len = valor.length;
	if (len== 0){
		return 0.00;
	}

	if (currency ==true){	
		/* Elimina os zeros à esquerda 
		* a variável  <i> passa a ser a localização do primeiro caractere após os zeros e 
		* val2 contém os caracteres (descontando os zeros à esquerda)
		*/
		
		for(var i = 0; i < len; i++)
			if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;
		
		for(; i < len; i++){
			if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);
		}

		if(val2.length==0) return "0.00";
		if (val2.length==1)return "0.0" + val2;
		if (val2.length==2)return "0." + val2;
		
		var parte1 = val2.substring(0,val2.length-2);
		var parte2 = val2.substring(val2.length-2);
		var returnvalue = parte1 + "." + parte2;
		return returnvalue;
		
	}
	else{
			/* currency é false: retornamos os valores COM os zeros à esquerda, 
			* sem considerar os últimos 2 algarismos como casas decimais 
			*/
			val3 ="";
			for(var k=0; k < len; k++){
				if (strCheck.indexOf(valor.charAt(k))!=-1) val3+= valor.charAt(k);
			}			
	return val3;
	}
}

function reais(obj,event){

var whichCode = (window.Event) ? event.which : event.keyCode;
/*
Executa a formatação após o backspace nos navegadores !document.all
*/
if (whichCode == 8 && !documentall) {	
/*
Previne a ação padrão nos navegadores
*/
	if (event.preventDefault){ //standart browsers
			event.preventDefault();
		}else{ // internet explorer
			event.returnValue = false;
	}
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	obj.value= demaskvalue(x,true).formatCurrency();
	//return false;
}
/*
Executa o Formata Reais e faz o format currency novamente após o backspace
*/
FormataReais(obj,'.',',',event);
} // end reais


function backspace(obj,event){
/*
Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
*/

var whichCode = (window.Event) ? event.which : event.keyCode;
if (whichCode == 8 && documentall) {	
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	var y = demaskvalue(x,true).formatCurrency();

	obj.value =""; //necessário para o opera
	obj.value += y;
	
	if (event.preventDefault){ //standart browsers
			event.preventDefault();
		}else{ // internet explorer
			event.returnValue = false;
	}
	return false;

	}// end if		
}// end backspace

function FormataReais(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;

//if (whichCode == 8 ) return true; //backspace - estamos tratando disso em outra função no keydown
/*if (whichCode == 0 ) return true;
if (whichCode == 9 ) return true; //tecla tab
if (whichCode == 13) return true; //tecla enter
if (whichCode == 16) return true; //shift internet explorer
if (whichCode == 17) return true; //control no internet explorer
if (whichCode == 27 ) return true; //tecla esc
if (whichCode == 34 ) return true; //tecla end
if (whichCode == 35 ) return true;//tecla end
if (whichCode == 36 ) return true; //tecla home*/

if (whichCode != 0 || whichCode != 9 || whichCode != 13 || whichCode != 16 || whichCode != 17 || whichCode != 27 || whichCode != 34 || whichCode != 35 || whichCode == 36 )
{

/*
O trecho abaixo previne a ação padrão nos navegadores. Não estamos inserindo o caractere normalmente, mas via script
*/

if (e.preventDefault){ //standart browsers
		e.preventDefault()
	}else{ // internet explorer
		e.returnValue = false
}

var key = String.fromCharCode(whichCode);  // Valor para o código da Chave
if (strCheck.indexOf(key) == -1) return false;  // Chave inválida

/*
Concatenamos ao value o keycode de key, se esse for um número
*/
fld.value += key;

var len = fld.value.length;
var bodeaux = demaskvalue(fld.value,true).formatCurrency();
fld.value=bodeaux;

/*
Essa parte da função tão somente move o cursor para o final no opera. Atualmente não existe como movê-lo no konqueror.
*/
  if (fld.createTextRange) {
    var range = fld.createTextRange();
    range.collapse(false);
    range.select();
  }
  else if (fld.setSelectionRange) {
    fld.focus();
    var length = fld.value.length;
    fld.setSelectionRange(length, length);
  }
  //return true;
}

}

//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 >= 3 && 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 formataTelefoneDDD3(campo, evt)
{
 //(000) 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 < 7)
  campo.value = '(' + vr.substr(0, 3) + ') ' + vr.substr(3);
 else if (tam >= 7)
  campo.value = '(' + vr.substr(0, 3) + ') ' + vr.substr(3, 4) + '-' + vr.substr(7);

 //(
 //    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 Limpar(valor, validos) 
{
    // retira caracteres invalidos da string
    var result = "";
    var aux;
    for (var i=0; i < valor.length; i++) {
        aux = validos.indexOf(valor.substring(i, i+1));
        if (aux>=0) {
            result += aux;
        }
    }
    return result;
}

//Formata número tipo moeda usando o evento onKeyPress
function Formata(campo,tammax,teclapres,decimal) 
{
    var tecla = teclapres.keyCode;
    strCheck = "0123456789";
    vr = Limpar(campo.value,"0123456789");
    tam = vr.length;
    dec=decimal;
    
    if (vr == "000")
        vr = "";

    if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

    if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
    {

		/* Elimina os zeros à esquerda 
		* a variável  <i> passa a ser a localização do primeiro caractere após os zeros e 
		* val2 contém os caracteres (descontando os zeros à esquerda)
		*/
		
        var val2 = '';

		for(var i = 0; i < tam; i++)
			if ((vr.charAt(i) != '0') && (vr.charAt(i) != ',')) break;
		
		for(; i < tam; i++){
			if (strCheck.indexOf(vr.charAt(i))!=-1) val2+= vr.charAt(i);
		}

        if (tam == 1 && tecla != 8)
        {
            if ( tam <= dec )
            { campo.value = vr ; }
        }
        else
        {
            
		    vr = LPad(val2, dec, "0");

    //		if (val2.length==0) vr = LPad("", dec, "0");
    //		if (val2.length==1) vr = LPad(val2, dec - val2.length, "0");
    //		if (val2.length>=2) vr = val2;
    		
            tam = vr.length;

            if (tam < tammax && tecla != 8){ tam = vr.length + 1; }
            
            if (tecla == 8 )
            {
                tam = val2.length - 1 ; 
        		
    		    vr = LPad(val2, dec + 2, "0");
    		    
		        tam = vr.length - 1 ;
            }

            if ( tam <= dec )
            { campo.value = vr ; }

            milhar = 3;
            
            if ( (tam > dec) && (tam <= (milhar + dec)) ){
                campo.value = vr.substr( 0, tam - dec ) + (dec == 0 ? "" : ",") + vr.substr( tam - dec, tam ) ; }

            if ( (tam >= (milhar + dec + 1)) && (tam <= (milhar * 2 + dec)) ){
                //campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + (dec == 0 ? "" : ",") + vr.substr( tam - dec, tam ) ; 
                campo.value = vr.substr( 0, tam - (milhar + dec) ) + "." + vr.substr( tam - (milhar + dec ), milhar ) + (dec == 0 ? "" : ",") + vr.substr( tam - dec, tam ) }

            if ( (tam >= (milhar * 2 + dec + 1)) && (tam <= (milhar * 3 + dec)) ){
                campo.value = vr.substr( 0, tam - (milhar * 2 + dec) ) + "." + vr.substr( tam - (milhar * 2 + dec), milhar ) + "." + vr.substr( tam - (milhar + dec), milhar ) + (dec == 0 ? "" : ",") + vr.substr( tam - dec, tam ) ; }

            if ( (tam >= (milhar * 3 + dec + 1)) && (tam <= (milhar * 4 + dec)) ){
                campo.value = vr.substr( 0, tam - (milhar * 3 + dec) ) + "." + vr.substr( tam - (milhar * 3 + dec), milhar ) + "." + vr.substr( tam - (milhar * 2 + dec), milhar ) + "." + vr.substr( tam - (milhar + dec), milhar ) + (dec == 0 ? "" : ",") + vr.substr( tam - dec, tam ) ; }

            if ( (tam >= (milhar * 4 + dec + 1)) && (tam <= (milhar * 5 + dec)) ){
                campo.value = vr.substr( 0, tam - (milhar * 4 + dec) ) + "." + vr.substr( tam - (milhar * 4 + dec), milhar ) + "." + vr.substr( tam - (milhar * 3 + dec), milhar ) + "." + vr.substr( tam - (milhar * 2 + dec), milhar ) + "." + vr.substr( tam - (milhar + dec), milhar ) + (dec == 0 ? "" : ",") + vr.substr( tam - dec, tam ) ;}
        }
        
    }
    
}

function PermitirNumeros() 
{
    if ((event.keyCode < 48 || event.keyCode > 57))
        event.keyCode = 0;
}

function LPad(ContentToSize,PadLength,PadChar)
{
    var PaddedString=ContentToSize.toString();
    for(i=ContentToSize.length+1;i<=PadLength;i++)
    {
        PaddedString=PadChar+PaddedString;
    }
    return PaddedString;
}

function TeclaDigitada(codeTecla)
{
    var codigosNum = ["48","49","50","51","52","53","54","55","56","57"];
    var codigosNumPad = ["96","97","98","99","100","101","102","103","104","105"];
    var numDigitado = ["0","1","2","3","4","5","6","7","8","9"];
    
    var num = 0
    if (codeTecla >= 48 && codeTecla <= 57)
    {
		for(; num < 10; num++)
		{
		    if (codigoNum[num] == codeTecla)
		        break;
		}
	}
    
    if (codeTecla >= 96 && codeTecla <= 105)
    {
		for(; num < 10; num++)
		{
		    if (codigosNumPad[num] == codeTecla)
		        break;
		}
	}
    
    return numDigitado[num];
}
