//
' + msg + '';
} else {
alert(msg);
}
}
if(getElement(divErrorName))
exibeDisplay(divErrorName, fExibe);
return (fExibe == "none")? true : false;
} // exibeDivError - ok
/**
* Valida uma string no formato de e-mail.
* @param String pStr
* E-mail para ser validada.
* @param String pFmt
* Tipo de validação: 1 ou 2 ou 3
*
* 1.Livre: reEmail1 aceita nome-local com todos os caracteres permitidos na RFC 2822: [\w!#$%&'*+/=?^`{|}~-]; e o domínio
* tem definição bem livre, por nome basicamente fixando apenas que o TLD deve ter entre 2 e 6
* caracteres: [A-Za-z]{2,6}; ou por número IP entre colchetes: \[\d{1,3}(\.\d{1,3}){3}\].
* 2.Compacto: reEmail2 limita os caracteres permitidos no nome-local de forma mais compacta e restritiva, porém cobre os casos
* mais comuns. Aceita como nome-local uma ou mais palavras separadas por ponto ([\w-]+(\.[\w-]+)*), onde
* cada palavra é definida por [\w-]+ permitindo assim letra, dígito, sublinhado e hífen. Também limita o
* tamanho de nomes de domínio entre 2 e 63 caracteres apenas com letras, dígitos, sublinhado e hífen: [\w-]{2,63}.
* 3.Restrito: reEmail3 é uma variação da ReEmail2, mas força nomes de domínio entre 2 e 63 caracteres, deixa de usar a
* seqüência \w para não permitir o sublinhado e garante que não há hífen nem na primeira nem na última
* posição, conforme RFC 1034/1035. O resultado é o seguinte para representar um nome de
* domínio: [A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d].
*
* @return true se for uma data valida.
*/
function validateStrEmail(pStr, pFmt) {
var reEmail1 = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail = reEmail3;
eval("reEmail = reEmail" + pFmt);
if (reEmail.test(pStr)) {
return true;
} else if (pStr != null && pStr != "") {
return false;
}
return true;
} // validateStrEmail
/**
* Valida uma string no formato de data.
* @param String pStr
* Data para ser validada.
* @param String pFmt
* Tipo de validação: 1 ou 2 ou 3 ou 4 ou 5
*
* 1.Simples: reDate1 valida apenas o uso de dígitos, nas posições e quantidade certas: 1 a 2 dígitos para dia e para mês,
* 1 a 4 dígitos para ano.
* 2.Média: reDate2 testa os dígitos possíveis em cada posição: o primeiro dígito do dia, se houver, deve ser de
* 0 a 3 ([0-3]?\d); o primeiro dígito do mês, se houver, deve ser 0 ou 1 ([01]?\d); passamos a aceitar
* apenas 2 ou 4 dígitos para o ano.
* 3.Avançada: reDate3 garante as faixas de valores corretas para dias 1 a 31 ((0?[1-9]|[12]\d|3[01])) e meses
* 1 a 12 ((0?[1-9]|1[0-2])). E aqui optamos por forçar os 2 primeiros dígitos do ano (correspondentes
* ao século), quando fornecidos, a serem 19 ou 20 ((19|20)?\d{2}).
* 4.Completa: reDate4 valida os dias permitidos de acordo com o mês. Para este último, foram criados três grupos alternativos
* de pares dia/mês:
* * Os dias 1 a 29 ((0?[1-9]|[12]\d)) são aceitos em todos os meses (1 a 12): (0?[1-9]|1[0-2])
* * Dia 30 é válido em todos os meses, exceto fevereiro (02): (0?[13-9]|1[0-2])
* * Dia 31 é permitido em janeiro (01), março (03), maio (05), julho (07), agosto (08), outubro (10) e dezembro (12): (0?[13578]|1[02]).
* 5.Tradicional: reDate5 data no formato DD/MM/AAAA, basicamente é a data Completa, porém sem a opcionalidade do zero à esquerda
* no dia ou mês menor que 10 e sem a opcionalidade e verificação de século no ano, aceitando qualquer
* seqüência de 4 dígitos (\d{4}) como ano.
*
* @return true se for uma data valida.
*/
function validateStrDate(pStr, pFmt) {
var reDate1 = /^\d{1,2}\/\d{1,2}\/\d{1,4}$/;
var reDate2 = /^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/;
var reDate3 = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
var reDate4 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
var reDate5 = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
var reDate = reDate4;
eval("reDate = reDate" + pFmt);
if (!reDate.test(pStr) && (pStr != null && pStr != "")) {
return false;
}
return true;
} // validateStrDate
function validateStrDigits(pStr){
var reDigits = /^\d+$/;
if (reDigits.test(pStr)) {
return true;
} else if (pStr != null && pStr != "") {
return false;
}
return true;
} //validateStrDigits
/**
* Verifica se a segunda data é menor que a primeira.
* @param Object objDate2
* Primeira data.
* @param Object objDate1
* Segunda data
* @return true se a primeira data é menor que a segunda.
*/
function dateDifference(objDate1, objDate2){
var datDate1 = Date.parse(objDate1.value);
var datDate2 = Date.parse(objDate2.value);
if(isNaN(datDate1) && isNaN(datDate2)){
return true;
}
var nDateDiff = 0;
if(isNaN(datDate1) && !isNaN(datDate2)){
alert("Data de início precisa ser preenchida !");
objDate1.focus();
return false;
}
nDateDiff = ((datDate2 - datDate1) / (24*60*60*1000));
if (nDateDiff < 0){
alert("'" + objDate2.value + "' é menor que data de início !");
objDate2.value = "";
objDate2.focus();
return false;
}
return true;
} // dateDifference
/**
* Verifica se a data é até a data corrente.
* @param Object objDate
* Campo data sendo tratado (DD/MM/YYYY).
* @param Object dateType
* Formato da data:
* type 1 : 19970529 * type 2 : 970529 * type 3 : 29/05/1997 * type 4 : 29/05/97* @return
true se a data é menor ou igual que a corrente.
*/
function isitUntilTodayDate(objDate, dateType) {
datDate1 = Date.parse(objDate.value);
if(isNaN(datDate1)) {
return true;
}
if (objDate.value.length != 10) {
return false;
}
if(!validaData(objDate)){
return false;
}
var now = date_today; // variavel global definida no layout-principal.jsp
var today = new Date(now.getYear(),now.getMonth(),now.getDate());
if (dateType == 1) {
var testdate = new Date(objDate.value.substring(0,4), objDate.value.substring(4,6)-1, objDate.value.substring(6,8));
} else if (dateType == 2) {
var testdate = new Date(objDate.value.substring(0,2), objDate.value.substring(2,4)-1, objDate.value.substring(4,6));
} else if (dateType == 3) {
var testdate = new Date(objDate.value.substring(6,10),objDate.value.substring(3,5)-1,objDate.value.substring(0,2));
} else if (dateType == 4) {
var testdate = new Date(objDate.value.substring(6,8), objDate.value.substring(3,5)-1, objDate.value.substring(0,2));
}
if (testdate <= now) {
return true;
} else {
alert("'" + objDate.value + "' é maior que data atual !");
objDate.value = "";
objDate.focus();
return false;
}
} // isitUntilTodayDate
function fun_set_focus(form_element, str_form_to_set, event){
var form_to_set = getElement(str_form_to_set);
if(form_element.value.length >= form_element.maxLength){
if(!fun_verify_event(event)){
form_to_set.focus();
}
}
} //fun_set_focus
function fun_verify_event(event){
var obj_keycode = ((event.keyCode) ? event.keyCode : event.which);
return ((obj_keycode != 9 && obj_keycode != 16 && obj_keycode != 17 && obj_keycode != 18 && obj_keycode != 20 && obj_keycode != 35 && obj_keycode != 36 && obj_keycode != 37 && obj_keycode != 38 && obj_keycode != 39 && obj_keycode != 40 && obj_keycode != 45 && obj_keycode != 46) ? false : true);
} //fun_verify_event