/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */

function validaData(objeto)
{ var bRet   = false;
  var bProbl = true;

  var sData  = eval('document.' + objeto + '.value');

  var vDiasMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  if(sData != '')
    {
      var sValidChars = '0123456789/.-';
      var sValidDivs  = '/.-';
      var sNewData    = '';
      var nCountDiv   = 0;
      for(var i=0; i < sData.length; i++)
        {
          var sChar = sData.charAt(i);
          if(sValidChars.indexOf(sChar) == -1){ sChar = ''; }
          if(sValidDivs.indexOf(sChar) != -1)
            { sChar = '/'; 
              nCountDiv++;
            }
          sNewData = sNewData + sChar;
        }
      if(nCountDiv != 2)
        { alert('Formato da data inválido !!!\n Utilize o formato dd/mm/aaaa \n (d = Dia, m = Mês e a = Ano)');
          bProbl = false;
        }
      else
        {
          var nDivDay = sNewData.indexOf('/');
          if(nDivDay != 0)
            {
              var sDay         = sNewData.substring(0, nDivDay);
              while(sDay.charAt(0) == '0')
                { sDay = sDay.substring(1, sDay.length); }
              var sNewDataTemp = sNewData.substring(nDivDay+1, sNewData.length);

              nDivMonth = sNewDataTemp.indexOf('/');
              if(nDivMonth != 0)
                {
                  var sMonth = sNewDataTemp.substring(0, nDivMonth);
                  while(sMonth.charAt(0) == '0')
                    { sMonth = sMonth.substring(1, sMonth.length);
                    }

                  var sYear = parseInt(sNewDataTemp.substring(nDivMonth+1, sNewDataTemp.length));
                  sYear = parseInt(sYear);
                  if(isNaN(sYear)) sYear = 0;

                  if(sYear  < 10) {sYear = '200' + sYear;}
                  else if(sYear  < 50) {sYear = '20' + sYear;}
                  else if(sYear  < 100) {sYear = '19' + sYear;}
                  else if(sYear  < 1000) {sYear = '0' + sYear;}

                  if(((parseInt(sYear) % 4 == 0) && (parseInt(sYear) % 100 != 0)) || (parseInt(sYear) % 400 == 0))
                    { vDiasMes[1] = 29;
                    }

                  if((parseInt(sDay) > vDiasMes[parseInt(sMonth)-1])||(parseInt(sDay) < 1))
                    { alert('Formato da data inválido !!!\n Dia inválido \n Utilize numeros de 1 a ' + vDiasMes[parseInt(sMonth)-1]);
                      bProbl = false;
                    }
                  else
                    {
                      if((parseInt(sMonth) > 12)||(parseInt(sMonth) < 1)) {alert('Formato da data inválido !!!\n Mês inválido \n Utilize numeros de 1 a 12');}
                      else
                        {
                          sDay   = parseInt(sDay);
                          sMonth = parseInt(sMonth);
                          sYear  = parseInt(sYear);
                          if(sDay   < 10) {sDay = '0' + sDay;}
                          if(sMonth < 10) {sMonth = '0' + sMonth;}
                          eval('document.' + objeto + '.value = "' + sDay + '/' + sMonth + '/' + sYear + '";');
                          bRet = true;
                        }
                    }
                }
              else
               { alert('Formato da data inválido !!!\n Utilize o formato dd/mm/aaaa \n (d = Dia, m = Mês e a = Ano)');
                 bProbl = false;
               }
            }
          else
            { alert('Formato da data inválido !!!\n Utilize o formato dd/mm/aaaa \n (d = Dia, m = Mês e a = Ano)');
              bProbl = false;
            }
        }
    }
  if(!bProbl)
    { eval('document.' + objeto + '.focus()');
    }
  return bRet;
}

/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */

function validaPreco(objeto, limite)
{
  var valor = eval('document.' + objeto + '.value;');
  var sNewValor   = '';
  var bPoint      = true;
  var sValidChars = '1234567890.'
  for(var i=valor.length; i>-1; i--)
    {
      var sChar = valor.charAt(i);
      if((sChar == ',')||(sChar == '.'))
        { 
          if(bPoint){sChar = '.';}
          else{sChar = '';}
          bPoint = false;
        }
      if(sValidChars.indexOf(sChar) == -1){sChar = '';}
      sNewValor = sChar + sNewValor;
    }
  if(sNewValor.charAt(sNewValor.length - 1) == '.'){sNewValor = sNewValor.substring(0,sNewValor.length-1);}
  if(sNewValor == ''){sNewValor = '0';}
  if(sNewValor.charAt(sNewValor.length - 2) == '.'){sNewValor = sNewValor + '0';}
  if(sNewValor.indexOf('.') == -1){sNewValor = sNewValor + '.00';}
  eval('document.' + objeto + '.value = "' + sNewValor + '"');
  if(limite)
   { if(sNewValor >= limite)
       { alert('Atenção !!!\nValor muito alto.')
         eval('document.' + objeto + '.focus();');
       }
   }
}

/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */

function validaNumero(object)
{
 sNumero = eval('document.' + object + '.value'); 
 if(sNumero != '')
   {
     sCharValid = '0123456789';
     sNewNumero = '';
     for(i=0;i < sNumero.length;i++)
       {
         sChar = sNumero.charAt(i);
         if(sCharValid.indexOf(sChar) == -1){ sChar = ''; }
         sNewNumero = sNewNumero + sChar;
       }
     if(sNewNumero == ''){sNewNumero = '0';}
     eval('document.' + object + '.value = "' + sNewNumero + '";');
   }
}

/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */

function validaEmail(obj, required)
{ var sEmail = eval('document.' + obj + '.value');
  var sInvalidChars = ' ()/\|,;"\''
  var sValidChars = '@.'
  var isMail = true;

  if(!required)
    required = false;

  if(sEmail != '')
    { for(var i=0; i < sEmail.length; i++)
        { if(sInvalidChars.indexOf(sEmail.charAt(i)) != -1)
            { isMail = false;
              alert('Atenção !!!\nO caracter ' + sEmail.charAt(i) + ' é inválido.');
            }
        }
      for(var i=0; i < sValidChars.length; i++)
        { if(sEmail.indexOf(sValidChars.charAt(i)) == -1)
            { isMail = false;
              alert('Atenção !!!\nDefina o domínio do e-mail.\nEx : fulando@cicrano.com.br')
              break;
            }
        }
    }
  if(required)
    { if(sEmail == '')
       { alert('Atenção !!!\nÉ necessário que se digite um e-mail.')
         isMail = false;
       }
    }

  if(!isMail)
    eval('document.' + obj + '.focus();');
  return isMail;
}

function DefLimite(oObj, nSize)
{ var sTexto = eval('document.' + oObj + '.value;');
  if(sTexto.length > nSize)
    { alert('Atenção !!!\nO limite maximo é de ' + nSize + ' caracteres.')
      if(confirm("Deseja retirar o texto em excesso ??"))
        eval('document.' + oObj + '.value = document.' + oObj + '.value.substring(0, ' + (nSize - 1) + ');');
    }
  return true;
}


/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* validaHora(objeto)                                     */
/* DATA      = 10/08/1999                                 */
/* PROPOSITO = Fazer a validação e ajuste de string para  */
/*             ficar no formato hora (hh:mm)              */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */

function validaHora(object)
{
 var sHora = eval('document.' + object + '.value'); 
 if(sHora != '')
   {
     var sCharValid   = '0123456789:';
     var sChangeChars = ',.-+/\\';
     var sNewHora   = '';
     var nCountDiv = 0;
     for(i=0;i < sHora.length;i++)
       { var sChar = sHora.charAt(i);
         if(sCharValid.indexOf(sChar) == -1)
           { if(sChangeChars.indexOf(sChar) != -1)
              sChar = ':';
             else
              sChar = '';
           }
         if(sChar == ':'){nCountDiv++;}
         sNewHora = sNewHora + sChar;
       }
     if((nCountDiv == 0)&&(sNewHora.length < 3))
       {  sNewHora  = sNewHora + ':';
          nCountDiv = 1;
       }
     if((nCountDiv != 1)||(sNewHora.length == 1))
       { alert('Formato da hora inválido !!!\n    Utilize o formato hh:mm\n    (h = hora, m = minuto)');
         eval('document.' + object + '.focus();');
       }
     else
       { nPosDiv = sNewHora.indexOf(':');
         if(nPosDiv == 0)
           { alert('Formato da hora inválido !!!\n    Utilize o formato hh:mm\n    (h = hora, m = minuto)');
             eval('document.' + object + '.focus();');
           }
         else
           {
             if(nPosDiv == (sNewHora.length - 1)){ sNewHora = sNewHora + '0'; }
             var nHora   = sNewHora.substring(0, nPosDiv);
             while(nHora.charAt(0) == '0')
                nHora = nHora.substring(1, nHora.length);
             if(nHora == ''){nHora = '0'}

             var nMinuto = sNewHora.substring(nPosDiv + 1, sNewHora.length);
             while(nMinuto.charAt(0) == '0')
                nMinuto = nMinuto.substring(1, nMinuto.length);
             if(nMinuto == ''){nMinuto = '0'}

             if(nHora > 23)
               { alert('Hora inválida !!!\n Coloque um valor válido entre 0 e 23.');
                 eval('document.' + object + '.focus();');
               }
             else
               {
                 if(nMinuto > 59)
                   { alert('Minuto inválida !!!\n Coloque um valor válido entre 0 e 59.');
                     eval('document.' + object + '.focus();');
                   }
                 else
                   { if((parseInt(nHora)   < 10)&&(nHora.length   = 1)){ nHora   = '0' + parseInt(nHora); }
                     if((parseInt(nMinuto) < 10)&&(nMinuto.length = 1)){ nMinuto = '0' + parseInt(nMinuto); }
                     eval('document.' + object + '.value = "' + nHora + ':' + nMinuto + '";');
                   }
               }
           }
       }
   }
}

/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */

function DefLimite(oObj, nSize)
{ var sTexto = eval('document.' + oObj + '.value;');
  if(sTexto.length > nSize)
    { alert('Atenção !!!\nO limite maximo é de ' + nSize + ' caracteres.')
      if(confirm("Deseja retirar o texto em excesso ??"))
        eval('document.' + oObj + '.value = document.' + oObj + '.value.substring(0, ' + nSize + ');');
    }
  return true;
}
