

/**
 * Cria uma máscara no formato moeda.<br><br>
 * Caso o parâmetro moeda não seja preenchidos a respectiva moeda é Real:<br><br>
 * Real <b>0.000.000,00</b><br>
 *
 * @param obj Objeto de um campo texto que receberá formatação de moeda
 * @param event Evento do navegador
 * @param separadorMil Caracter que faz a divisão de milhar na moeda
 * @param separadorCentavos Caracter que faz a divisão de centavos na moeda
 * @return Boolean|String Retorna false em caso de caracteres não numéricos ou retorna String contendo o valor com a máscara
 */
function mascaraReal(obj, event, separadorMil, separadorCentavos) {

    if(!separadorMil)
        separadorMil = '.';

    if(!separadorCentavos)
        separadorCentavos = ',';

    i = j = len = len2 = 0;
    strCheck = '0123456789';
    aux = aux2 = '';
    
    if(navigator.appName.indexOf('Netscape') != -1) whichCode = event.which;
    else whichCode = event.keyCode;

    if(whichCode == 13){
        return true;
    }

    key = String.fromCharCode(whichCode);

    if (strCheck.indexOf(key) == -1) {
        return false;  // Not a valid key
    }

    len = obj.value.length;

    for(i = 0; i < len; i++) {
        if ((obj.value.charAt(i) != '0') && (obj.value.charAt(i) != separadorCentavos)){
            break;
        }
    }

    for(; i < len; i++) {
        if (strCheck.indexOf(obj.value.charAt(i))!=-1){
            aux += obj.value.charAt(i);
        }
    }

    aux += key;
    len = aux.length;

    if (len == 0) {
        obj.value = '';
    } else if (len == 1) {
        obj.value = '0'+ separadorCentavos + '0' + aux;
    } else if (len == 2) {
        obj.value = '0'+ separadorCentavos + aux;
    } else if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += separadorMil;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        obj.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--) {
            obj.value += aux2.charAt(i);
        }
        obj.value += separadorCentavos + aux.substr(len - 2, len);
    }
    return false;
}
