
function maskIt(Sender,Evento,strMask,r,a)
{
 // Cancela se o evento for Backspace
 if (!Evento) 
  var Evento = window.event;
  
 if (Evento.keyCode)
  code = Evento.keyCode;
 else
 if (Evento.which)
  code = Evento.which;
 // Variáveis da função
 
 var txt  = (!r) ? Sender.value.replace(/[^\d]+/gi,'') : Sender.value.replace(/[^\d]+/gi,'').reverse();
 var mask = (!r) ? strMask : strMask.reverse();
 var pre  = (a ) ? a.pre : "";
 var pos  = (a ) ? a.pos : "";
 var ret  = "";
 
 // Loop na máscara para aplicar os caracteres
 for(var x = 0, y = 0, z = mask.length; x < z && y < txt.length;){
 if(mask.charAt(x)!='#'){
 ret += mask.charAt(x); x++; }
 else {
 ret += txt.charAt(y); y++; x++; } }
 // Retorno da função
 ret = (!r) ? ret : ret.reverse()    
 Sender.value = pre+ret+pos; }
 // Novo método para o objeto 'String'
 String.prototype.reverse = function(){
 return this.split('').reverse().join(''); 
}

function number_format( number, decimals, dec_point, thousands_sep ) 
{
 var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
 var d = dec_point == undefined ? "," : dec_point;
 var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
 var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
 return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

function calcula(operacion)
{
 var operando1 = parseFloat( document.calc.operando1.value.replace(/\./g, "").replace(",", ".") );
 var operando2 = parseFloat( document.calc.operando2.value.replace(/\./g, "").replace(",", ".") );
 var result = eval(operando1 + operacion + operando2);
 document.calc.resultado.value = number_format(result,2, ',', '.');
}
