/**
 * Retorna o número máximo de caracteres que pode ser digitado no campo.
 */
function CT_getTamanhoMaximo(formato) {
    tamanhoMax = new Number(formato);
    if (isNaN(tamanhoMax) || tamanhoMax == 0) {
        return 999999;
    } else {
        return tamanhoMax;
    }
}
   
/** 
 * Retorna uma mensagem de erro caso o formato do campo não for válido.
 */
function CT_isFormatoValido(formato, textoDigitado) {
    tamanhoMax = CT_getTamanhoMaximo(formato);
    if (String(textoDigitado).length > tamanhoMax) {
        return "O campo não pode conter mais que \"" + tamanhoMax + "\" caracteres.";
    }
    return "";
}

/**
 * Verifica se o valor digitado no campo texto está correto
 */
function CT_verificaValor(ctrl) {
    msgformato = CT_isFormatoValido(ctrl.getAttribute("formato"), ctrl.value);
    //se não for válido, limpa o campo e mostra uma mensagem
    if (msgformato != "") {
        alert (msgformato + msgKey("label.js.valorDigitado","") + ctrl.value + "\".");
        //ctrl.focus();
        return false;
    }
    return true;
}    

/** 
 * Trata a digitação no campo para não permitir que o campo fique com 
 * valores inválidos.
 */
function CT_KPS(ctrl, event) {
    //Nas situações abaixo não deve fazer validação não faz nada
    if (C_NaoPodeProcessarOnKeyPress(ctrl, event)) {
        return;
    }
    //pega a tecla que foi digitada
    tecla = C_TeclaDigitada(event);
    //pega o texto que está sendo digitado
    textoDigitado = C_getTextoDigitado(ctrl, String.fromCharCode(tecla));
    //Adiciona o caracter está sendo digitado e verifica se o formato é válido
    if (CT_isFormatoValido(ctrl.getAttribute("formato"), textoDigitado) != "") {
        C_CancelaEvento(event);
        return;            
    }
}
    
/** Trata a saída do campo para não permitir que o campo fique com valores inválidos **/
function CT_BLR(ctrl) {
    //verifica se o texto existente no campo é válido
    CT_verificaValor(ctrl);
}

function CT_MOV(ctrl, e){
	if(ctrl.className.indexOf('erro')!= -1){
		C_mostraHint(e, msgKey('label.js.valorInvalido',ctrl.value));
	}
}

function CT_MMOV(ctrl, event){
	if(ctrl.className.indexOf('erro')!= -1){
		C_moveHint(event);
	}
}

function CT_MOUT(ctrl, event){
	if(ctrl.className.indexOf('erro')!= -1){
		C_escondeHint();
	}
}
