var mask_source = '';
var mask_mask = '';
function js_mask(src, mask, saida){
  mask_source = src;
  mask_mask = mask;
  var i = src.value.length;
  var saida =  "#";
  // mask.substring(0,1);
  var texto = mask.substring(i)
  while (texto.substring(0,1) != 'A' && texto.substring(0,1) != '#' && texto.substring(0,1) != '9' && texto.substring(0,1) != '!' && texto.substring(0,1) != "")
  {
    src.value += texto.substring(0,1);
    i++;
    texto = mask.substring(i);
  }
  setTimeout('js_mask_check()', 10);
}
function js_mask_check(){
  var v = '';
  var i = 0;
  var texto = '';
  var mask = '';
  var val = '';
  v = mask_source.value;
  i = v.length-1;
  texto = v.substring(i);
  mask = mask_mask.substring(i);
  t = texto.substring(0,1);
  m = mask.substring(0,1);
  if (m=="#"){
     val = '-0123456789';
     if (val.indexOf(t)<0){
        mask_source.value = v.substr(0,i);
     }
  } else if (m=="9"){
     val = '0123456789';
     if (val.indexOf(t)<0){
        mask_source.value = v.substr(0,i);
     }
  } else if (m=="!"){
     mask_source.value = v.substr(0,i) + t.toUpperCase();
  } else if (m=="A"){
     val = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

     t = t.toUpperCase();
     if (val.indexOf(t)<0){
        mask_source.value = v.substr(0,i);
     } else {
        mask_source.value = v.substr(0,i) + t.toUpperCase();
     }
  }
}

