/**
 * Mascara Dinâmica
 */
if (document.layers)
 window.captureEvents(Event.KEYDOWN | Event.KEYUP);

function mask(isNum, event, field, mask, maxLength, trueAutoTab) {

 var keyCode;
 if (event.srcElement)
 keyCode = event.keyCode;
 else if (event.target)
 keyCode = event.which;

 var maskStack = new Array();

 var isDynMask = false;
 if (mask.indexOf('[') != -1)
 isDynMask = true;

 var length = mask.length;

 for (var i = 0; i < length; i++)
 maskStack.push(mask.charAt(i));

 var value = field.value;
 var i = value.length;
 
 var isAutoTab = trueAutoTab;
 
 if (keyCode == 0 || keyCode == 8)
 return true;

 //código adaptado para aceitar X (maiúsculo) ou x (minúsculo), além de números
 if (isNum && (keyCode < 48 || keyCode > 57) && (keyCode != 88) && (keyCode != 120))
 return false;

 if (!isDynMask && i < length) {

 if (maskStack.toString().indexOf(String.fromCharCode(keyCode)) != -1 && keyCode != 8) {
 return false;
 } else {
 if (keyCode != 8) {
 if (maskStack[i] != '#') {
 var old = field.value;
 field.value = old + maskStack[i];
 }
 }

 if(isAutoTab=="sim"){
 if (autoTab(field, keyCode, length)) {
 if (!document.layers) {
 return true;
 } else if (keyCode != 8) {
 field.value += String.fromCharCode(keyCode);
 return false;
 } else {
 return true;
 }
 } else {
 return false;
 }
 }
 }

 } else if (isDynMask) {

 var maskChars = "";
 for (var j = 0; j < maskStack.length; j++)
 if (maskStack[j] != '#' && maskStack[j] != '[' && maskStack[j] != ']')
 maskChars += maskStack[j];

 var tempValue = "";
 for (var j = 0; j < value.length; j++) {
 if (maskChars.indexOf(value.charAt(j)) == -1)
 tempValue += value.charAt(j);
 }

 value = tempValue + String.fromCharCode(keyCode);

 if (maskChars.indexOf(String.fromCharCode(keyCode)) != -1) {
 return false;
 } else {

 var staticMask = mask.substring(mask.indexOf(']') + 1);
 var dynMask = mask.substring(mask.indexOf('[') + 1, mask.indexOf(']'));

 var realMask = new Array;

 if (mask.indexOf('[') == 0) {
 var countStaticMask = staticMask.length - 1;
 var countDynMask = dynMask.length - 1;
 for (var j = value.length - 1; j >= 0; j--) {
 if (countStaticMask >= 0) {
 realMask.push(staticMask.charAt(countStaticMask));
 countStaticMask--;
 }
 if (countStaticMask < 0) {
 if (countDynMask >= 0) {
 if (dynMask.charAt(countDynMask) != '#') {
 realMask.push(dynMask.charAt(countDynMask));
 countDynMask--;
 }
 }
 if (countDynMask == -1) {
 countDynMask = dynMask.length - 1;
 }
 realMask.push(dynMask.charAt(countDynMask));
 countDynMask--;
 }
 }
 }

 var result = "";

 var countValue = 0;
 while (realMask.length > 0) {
 var c = realMask.pop();
 if (c == '#') {
 result += value.charAt(countValue);
 countValue++;
 } else {
 result += c;
 }
 }

 field.value = result;

 if (maxLength != undefined && value.length == maxLength) {

 var form = field.form;
 for (var i = 0; i < form.elements.length; i++) {
 if (form.elements[i] == field) {
 field.blur();
 //if alterado para quando a máscara for utilizada no último campo, não dê mensagem de erro quando tentar colocar o foco no "Salvar"
 //if (form.elements[i + 1] != null)
 if ((form.elements[i + 1] != null) && (form.elements[i + 1].name != "METHOD"))
 form.elements[i + 1].focus();
 break;
 }
 }
 }

 return false;
 }
 } else {
 return false;
 }


 function autoTab(field, keyCode, length) {
 var i = field.value.length;

 if (i == length - 1) {

 field.value += String.fromCharCode(keyCode);

 var form = field.form;
 for (var i = 0; i < form.elements.length; i++) {
 if (form.elements[i] == field) {
 field.blur();
 //if alterado para quando a máscara for utilizada no último campo, não dê mensagem de erro quando tentar colocar o foco no "Salvar"
 //if (form.elements[i + 1] != null)
 if ((form.elements[i + 1] != null) && (form.elements[i + 1].name != "METHOD"))
 form.elements[i + 1].focus();
 break;
 }
 }

 return false;
 } else {
 return true;
 }
 }
}


//Bloco de c?digo para esconder e mostra form
var Ver4 = parseInt(navigator.appVersion) >= 4
var IE4 = ((navigator.userAgent.indexOf("MSIE") != -1) && Ver4)
var block = "formulario";
function esconde() { document.form.style.visibility = "hidden" }
function mostra() { document.form.style.visibility = "visible" }
//Bloco de c?digo para esconder e mostra form


// Código para o teclado
function tecladown (digito){
 if (digito == ''){
 document.form.senha.value = '';
 return;
 }
 var pass = document.form.senha.value;
 if (pass.length >= 8){
 return;
 }
 document.form.senha.value = document.form.senha.value + digito;
}
function teclaclick(tecla){
 return false;
}
function teclaup(tecla){
 tecladown(tecla);
}

function SetHelp(txt) {
 var oHelp = document.getElementById('help');
 if (oHelp) oHelp.innerHTML = txt ;
}

function main(campofoco) {
 if ( campofoco == '' || document.form.elements.length == 0 )
 return false;

 var num = parseInt(campofoco);

 if ( num || num == 0 )
 {
 if ( document.form[num] )
 document.form[num].focus();
 }
 else
 {
 if ( (campofoco == "senhaConta" || campofoco == "senhaAtual") && document.applets["tclJava"] )
 document.applets["tclJava"].setFocus();
 else if ( document.form[campofoco] )
 document.form[campofoco].focus();
 }
}

function FormataDado(campo,tammax,pos,teclapres){
 var keyCode;
 if (teclapres.srcElement)
 keyCode = teclapres.keyCode;
 else if (teclapres.target)
 keyCode = teclapres.which;

 if (keyCode == 0 || keyCode == 8)
 return true;

 if ((keyCode < 48 || keyCode > 57) && (keyCode != 88) && (keyCode != 120))
 return false;

 var tecla = keyCode;
 vr = document.formContaBrasil.numeroContratoOrigem.value;
 vr = vr.replace( "-", "" );
 vr = vr.replace( "/", "" );
 tam = vr.length ;

 if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

 if (tecla == 8 ){ tam = tam - 1 ; }
 if ( tecla == 8 || tecla == 88 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 120){
 if ( tam <= 2 ){
 document.formContaBrasil.numeroContratoOrigem.value = vr ;}
 if ( tam > pos && tam <= tammax ){
 document.formContaBrasil.numeroContratoOrigem.value = vr.substr( 0, tam - pos ) + '-' + vr.substr( tam - pos, tam );}
 }
}

 function autoTab(field, keyCode, length) {
 var i = field.value.length;

 if (i == length - 1) {

 field.value += String.fromCharCode(keyCode);

 var form = field.form;
 for (var i = 0; i < form.elements.length; i++) {
 if (form.elements[i] == field) {
 field.blur();
 //if alterado para quando a máscara for utilizada no último campo, não dê mensagem de erro quando tentar colocar o foco no "Salvar"
 //if (form.elements[i + 1] != null)
 if ((form.elements[i + 1] != null) && (form.elements[i + 1].name != "METHOD"))
 form.elements[i + 1].focus();
 break;
 }
 }

 return false;
 } else {
 return true;
 }
 }
