function Mascara(field, evt, mask) {
    
	
	var LetrasU = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var LetrasL = "abcdefghijklmnopqrstuvwxyz";
    var Letras = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    var Numeros = "0123456789";
    var Fixos = "().-:/ ";
    var Charset = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_/`abcdefghijklmnopqrstuvwxyz{|}~";
    evt = evt ? evt : window.event ? window.event : "";
    var value = field.value;
    if (evt) {
        var ntecla = evt.which ? evt.which : evt.keyCode;
        tecla = Charset.substr(ntecla - 32, 1);
        if (ntecla < 32) {
            return true;
        }
        var tamanho = value.length;
        if (tamanho >= mask.length) {
            return false;
        }
        var pos = mask.substr(tamanho, 1);
        while (Fixos.indexOf(pos) != -1) {
            value += pos;
            tamanho = value.length;
            if (tamanho >= mask.length) {
                return false;
            }
            pos = mask.substr(tamanho, 1);
        }
        switch (pos) {
          case "#":
            if (Numeros.indexOf(tecla) == -1) {
                return false;
            }
            break;
          case "A":
            if (LetrasU.indexOf(tecla) == -1) {
                return false;
            }
            break;
          case "a":
            if (LetrasL.indexOf(tecla) == -1) {
                return false;
            }
            break;
          case "Z":
            if (Letras.indexOf(tecla) == -1) {
                return false;
            }
            break;
          case "*":
            field.value = value;
            return true;
            break;
          default:
            return false;
            break;
        }
    }
    field.value = value;
    return true;
}


	function maskDate( field, evt ) {
    	return Mascara(field, evt, "##-##-####");
	}
	
	function maskCPF( field, evt ) {
    	return Mascara(field, evt, "###.###.###-##");
	}	
	
	function maskPhone( field, evt ) {
    	return Mascara(field, evt, "(##)####-####");
	}
	
	function maskCurrency(cur) {
	    n = "__0123456789";
	    d = cur.value;
	    l = d.length;
	    len=15;
	    r = "";
		if (l > 0) {
			z = d.substr(0, l - 1);
			s = "";
			a = 2;
			for (i = 0; i < l; i++) {
			    c = d.charAt(i);
			    if (n.indexOf(c) > a) {
        			a = 1;
        			s += c;
    			}
			}
		    l = s.length;
		    t = len - 1;
		    if (l > t) {
		        l = t;
		        s = s.substr(0, t);
		    }
		    if (l > 2) {
		        r = s.substr(0, l - 2) + "," + s.substr(l - 2, 2);
		    } 
			else {
            	if (l == 2) { r = "0," + s; } 
				else {
                	if (l == 1) { r = "0,0" + s; }
            	}
        	}
        	if (r == "") { r = "0,00"; } 
			else {
            	l = r.length;
            	if (l > 6) {
	                j = l % 3;
	                w = r.substr(0, j);
	                wa = r.substr(j, l - j - 6);
	                wb = r.substr(l - 6, 6);
                	if (j > 0) { w += "."; }
                	k = (l - j) / 3 - 2;
                	for (i = 0; i < k; i++) { w += wa.substr(i * 3, 3) + "."; }
                	r = w + wb;
            	}
        	}
    	}
    	if (r.length <= len) { cur.value = r; } 
		else { cur.value = z; }
    	return "ok";
	}