/*FUNÇÕES P/ VALIDAÇÃO DE CAMPO NUMERICO*/
function ValidaNumerico()
{
  k = event.keyCode ;
  if (( k > 34 && k < 40 ) || ( k == 45 || k == 46) || ( k == 8 || k == 9) )
  { event.keyCode = k ; event.returnValue = true ; return ; }
  if (( k < 48 || k > 57 ) && (k < 96 || k > 105))
  {
     if ( k == 13 )
     {
        return ;
     }
     else
     { event.keyCode = 0 ; event.returnValue = false ; }
  }
}

/*FUNÇÕES P/ VALIDAÇÃO DA DATA*/
function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {
var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla; 

if(document.all) { // Internet Explorer
nTecla = evtKeyPress.keyCode; }
else if(document.layers) { // Nestcape
nTecla = evtKeyPress.which;
}
else { //Firefox
nTecla = evtKeyPress.which;
}

sValue = objForm[strField].value;

// Limpa todos os caracteres de formatação que
// já estiverem no campo.
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( " ", "" );
sValue = sValue.toString().replace( " ", "" );
fldLen = sValue.length;
mskLen = sMask.length;

i = 0;
nCount = 0;
sCod = "";
mskLen = fldLen;

while (i <= mskLen) {
bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

if (bolMask) {
sCod += sMask.charAt(i);
mskLen++; }
else {
sCod += sValue.charAt(nCount);
nCount++;
}

i++;
}

objForm[strField].value = sCod;

if (nTecla != 8) { // backspace
if (sMask.charAt(i-1) == "9") { // apenas números...
return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
else { // qualquer caracter...
return true;
} }
else {
return true;
}
}

var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode; 
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}
function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}
return true;
}

function check_date(field)
{
var checkstr = "0123456789"; 
var DateField = field;
var Datevalue = ""; 
var DateTemp = ""; 
var seperator = "/"; 
var day; 
var month; 
var year; 
var leap = 0; 
var err = 0; 
var i; 
err = 0; 
DateValue = DateField.value; 
/* Deletando todos os caracteres exceto o 0..9 */ 
for (i = 0; i < DateValue.length; i++) 
{ 
if (checkstr.indexOf(DateValue.substr(i,1)) >= 0)
{ 
DateTemp = DateTemp + DateValue.substr(i,1); 
} 
} 
DateValue = DateTemp; 
/* Exectutando a data para 8 digitos - string*/ 
/* if entrada do ano com 2-digitos / exemplo 20xx */ 
if (DateValue.length == 6) 
{ 
DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); 
} 
if (DateValue.length != 8) 
{ 
err = 19; 
} 
/* Se o ano for errado = 0000 */ 
year = DateValue.substr(4,4); 
if (year == 0) 
{ 
err = 20; 
} 
/* Validando o mês*/ 
month = DateValue.substr(2,2); 
if ((month < 1) || (month > 12)) 
{ 
err = 21; 
} 
/* Validando o dia*/ 
day = DateValue.substr(0,2); 
if (day < 1) 
{ 
err = 22; 
} 
/* Validando ano Bissexto / fevereiro / dia */ 
if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) 
{ 
leap = 1; 
} 
if ((month == 2) && (leap == 1) && (day > 29)) 
{ 
err = 23; 
} 
if ((month == 2) && (leap != 1) && (day > 28)) 
{ 
err = 24; 
} 
/* Validando o mês */ 
if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) 
{ 
err = 25; 
} 
if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) 
{ 
err = 26; 
} 
/* if 00 houvendo entrada, sem erros */
if ((day == 0) && (month == 0) && (year == 00)) 
{ 
err = 0; day = ""; month = ""; year = ""; seperator = ""; 
} 
/* if sem erros, escrevo a data completa no Input-Field (e.x. 13/12/2001) */ 
if (err == 0) 
{ 
DateField.value = day + seperator + month + seperator + year; 
} 
/* Mensagem de erro if err != 0 */ 
else 
{ 
alert("Atenção, a data está incorreta!"); 
DateField.select(); 
DateField.focus(); 
} 
}

function doDateCheck() {
if (document.form.DtInicial.value != "" && document.form.DtFinal.value == "") {
alert("Preencha o campo DATA FINAL.");
document.form.DtFinal.focus();
return false;
}
if (document.form.DtInicial.value == "" && document.form.DtFinal.value != "") {
alert("Preencha o campo DATA INICIAL.");
document.form.DtInicial.focus();
return false;
}
if (document.form.DtInicial.value > document.form.DtFinal.value) {
alert("As datas foram preenchidas de forma incorreta.");
document.form.DtInicial.focus();
document.form.DtInicial.select();
return false;
}
}

