 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 SomenteNumero(e){
    var tecla=(window.event)?event.keyCode:e.which;
    if((tecla > 47 && tecla < 58) || (tecla == 40) || (tecla == 41)|| (tecla == 45)) return true;
    else{
    if (tecla != 8) return false;
    else return true;
    }
}


//primeiro uso prototypo para criar meus próprios métodos da classe String, esse método em especifico limpa a string deixando apenas caracteres alpha numéricos, ela é usada dentro do metódo da máscara monetária. 

String.prototype.normalize = function() 
   { 
      try{return    this.match(/[a-zA-Z0-9]/g).join('');} 
      catch(err){return this} 
   } 


   function monetaryMask(e) 
   { 
      if(e.keyCode == 9 || e.keyCode == 116) return true; // TAB 
      var ISIE = /MSIE/.test(navigator.userAgent); 
       
      switch(String.fromCharCode(e.keyCode)) // IE LIXO 
      { 
         case 'a':case '1': key = 1; break; 
         case 'b':case '2': key = 2; break; 
         case 'c':case '3': key = 3; break; 
         case 'd':case '4': key = 4; break; 
         case 'e':case '5': key = 5; break; 
         case 'f':case '6': key = 6; break; 
         case 'g':case '7': key = 7; break; 
         case 'h':case '8': key = 8; break; 
         case 'i':case '9': key = 9; break; 
         case '`':case '0': key = 0; break; 
         default : String.fromCharCode(e.keyCode); 
      } 
       
      t = (!ISIE) ? e.currentTarget : e.srcElement; 

      if(!parseInt(t.value.normalize())) // adiciona só no lenght 0, não há necessidade de repetição 
      { 
         t.onclick = function() 
         {    
            if(!ISIE) 
            { 
               t.selectionStart = t.value.length; 
               t.selectionEnd  = t.value.length; 
            } 
            else 
            { 
               var range = t.createTextRange(); 
               range.moveStart("character", t.value.length); 
               range.moveEnd("character", 1); 
               range.select(); 
            }    
         } 
         t.onselect = t.onfocus; 
      } 

      if((e.keyCode > 105 || e.keyCode < 48 || (e.keyCode > 57 && e.keyCode < 96)) && e.keyCode != 8) 
         try{e.preventDefault();}catch(err){e.returnValue = false} 
      else 
      { 
         str = (e.keyCode == 8) ? t.value.substr(0,t.value.length-1) : t.value+key.toString(); 
         var x = parseFloat(str.normalize()).toString(); 
          
         //document.title = str;
		 
		 if(parseFloat(str.normalize()) == 0) 
            t.value = ""; 
		 else if(parseFloat(str.normalize()) < 10) 
            t.value = "0,0"+x; 
         else if(parseFloat(str.normalize()) >= 10 && parseFloat(str.normalize()) < 100) 
            t.value = '0,'+x; 
         else if(parseFloat(str.normalize()) >= 100 && parseFloat(str.normalize()) < 1000) 
            t.value = x.charAt(0)+','+x.substr(1,x.length); 
         else if(parseFloat(str.normalize()) >= 1000 && parseFloat(str.normalize()) < 10000) 
            t.value = x.substr(0,2)+','+x.substr(2,2); 
         else if(parseFloat(str.normalize()) >= 10000 && parseFloat(str.normalize()) < 100000) 
            t.value = x.substr(0,3)+','+x.substr(3,2); 
         else if(parseFloat(str.normalize()) >= 100000 && parseFloat(str.normalize()) < 1000000) 
            t.value = x.charAt(0)+'.'+x.substr(1,3)+','+x.substr(4,2); 
         else if(parseFloat(str.normalize()) >= 1000000 && parseFloat(str.normalize()) < 10000000) 
            t.value = x.substr(0,2)+'.'+x.substr(2,3)+','+x.substr(5,2); 
         else if(parseFloat(str.normalize()) >= 10000000 && parseFloat(str.normalize()) < 100000000) 
            t.value = x.substr(0,3)+'.'+x.substr(3,3)+','+x.substr(6,2); 
         else if(parseFloat(str.normalize()) >= 100000000 && parseFloat(str.normalize()) < 1000000000) 
            t.value = x.charAt(0)+'.'+x.substr(1,3)+'.'+x.substr(4,3)+','+x.substr(7,2); 
         else if(parseFloat(str.normalize()) >= 1000000000 && parseFloat(str.normalize()) < 10000000000) 
            t.value = x.substr(0,2)+'.'+x.substr(2,3)+'.'+x.substr(5,3)+','+x.substr(8,2); 
		else if(parseFloat(str.normalize()) >=  10000000000 && parseFloat(str.normalize()) < 100000000000) 
            t.value = x.substr(0,3)+'.'+x.substr(3,3)+'.'+x.substr(6,3)+','+x.substr(9,2);
         try{e.preventDefault();}catch(err){e.returnValue = false} 
      } 
   } 
