function maskCRC(objeto, evt) { 
	maiuscula(objeto, evt);
	return mask(objeto, evt, 'ZZ-999999/Z');
}

function maiuscula(objeto, evt) { 
	evt = (evt) ? evt : (window.event) ? window.event : "";
	var ntecla = (evt.which) ? evt.which : evt.keyCode;
	if (ntecla != 37 && ntecla != 39 && ntecla != 46)
		objeto.value = objeto.value.toUpperCase();
	return true;;
}

function mask(objeto, evt, mask) {
	var LetrasU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var LetrasL = 'abcdefghijklmnopqrstuvwxyz';
	var Letras  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	var LetrasNumeros  = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	var Numeros = '0123456789';
	var Fixos  = '().-:/ '; 
	var Charset = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/`abcdefghijklmnopqrstuvwxyz{|}~";

	evt = (evt) ? evt : (window.event) ? window.event : "";
	var value = objeto.value;
	if (evt) {
		var ntecla = (evt.which) ? evt.which : evt.keyCode;
		tecla = Charset.substr(ntecla - 32, 1);
		if (ntecla == 37 || ntecla == 39 || ntecla == 46) {
			return true;
		}
		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 '9' : 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 'X' : if (LetrasNumeros.indexOf(tecla) == -1) return false; break;
			case '*' : objeto.value = value; return true; break;
			default : return false; break;
		}
	}
	objeto.value = value; 
	return true;
}
