﻿var backspaceKey = 8;
var tabKey = 9;
var deleteKey = 46;
var pasteKey = 86;
var cutKey = 88; 

var k1 = 37;
var k2 = 38;
var k3 = 39;
var k4 = 40;

function isValidKey(keyCode)
{

    if (keyCode==backspaceKey || keyCode==deleteKey || keyCode==k1 || keyCode==k2 || keyCode==k3 || keyCode==k4 || keyCode==tabKey)
        return true;
    else
        return false;
}

function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){

var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789\37';
var aux = aux2 = '';

if (!e) e = window.event;
    var whichCode = e.which || e.keyCode;

if (isValidKey(whichCode)) return true;
    key = String.fromCharCode(whichCode); // Valor para o c¢digo da Chave

if (strCheck.indexOf(key) == -1) return false; // Chave inv lida
    len = objTextBox.value.length;

for(i = 0; i < len; i++)
    if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;

aux = '';

for(; i < len; i++)
    if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);

aux += key;
len = aux.length;

if (len == 0) objTextBox.value = '';

if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;

if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;

if (len > 2) {

    aux2 = '';

for (j = 0, i = len - 3; i >= 0; i--) {

    if (j == 3) {
        aux2 += SeparadorMilesimo;
        j = 0;
    }
    aux2 += aux.charAt(i);
    j++;
}

objTextBox.value = '';

len2 = aux2.length;

for (i = len2 - 1; i >= 0; i--)

objTextBox.value += aux2.charAt(i);

objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);

}

return false;

}
