/*******************************************************************************************************
 * Parâmetros disponíveis:                                                                             *
 *   - fieldType = Definirá um tipo próprio para o campo ( data, email, numero, cpf, cnpj, cep)        * 
 *   - fieldName = Dará para o campo um "ALIAS" que será exibir em mensagens de erro ou outras.        * 
 *                                                                                                     * 
 * REGRAS:                                                                                             * 
 *   - Só serão criticados os campos que tiverem seu parâmetro inputName definido                      *
 *                                                                                                     *
 *   - Para um CPF ou outro campo que seja composto por mais de um TEXT, o inputName deve ser o        * 
 *   próprio NAME sem o sufixo identificador e só será indicado em apenas um.                          * 
 *   Ex.                                                                                               * 
 *    <input type=text name="CPF_01" fieldName="CPF" fieldType = "cpf">.                               *  
 *    <input type=text name="CPF_02" >.                                                                * 
 *    <input type=text name="CPF_03">/                                                                 * 
 *    <input type=text name="CPF_DV">                                                                  * 
 *                                                                                                     * 
 *******************************************************************************************************/ 

 /*******************************************
  * - Formata a data no padrão americano    * 
  *******************************************/   
  function formataDataUSA(data){
  
  
   var dia = data.substr(0,2), 
       mes = data.substr(3,2),
       ano = data.substr(6,4),
       hora ,
       min  ;
   
   if (data.length > 10){
      hora  = data.substr(12,2);
      min   = data.substr(14,2);
   }
   else {
      hora  = "00";
      min   = "00" ;
   }
  
    var dia = data.substr(0,2);
    var mes = data.substr(3,2);
    var ano = data.substr(6,4);
    
    return ano+"/" + mes + "/" + dia + " " + hora + ":" + min
  }

  


/*********************************************************
* - Substitui uma substring por outra, dentro de uma     *
*   string principal.                                    *
*     Ex. changeSubsrt("aaa bbb ccc", "a", "d")          *
*         -> "ddd bbb ccc"                               *
**********************************************************/
function changeSubstr(strValue, strFind, strSubstitute){
           var strTemp = strValue;
           
           if (strFind=="")
              return strSubstitute;
           
           while( strTemp.indexOf(strFind) != (-1) )
             {
               strTemp = strTemp.replace(strFind, strSubstitute);
             }
           
           return strTemp ;
             
}

/***********************************
 *  Verifica se é uma data válida  *
 ***********************************/
function validaData(objDia, objMes, objAno, objHora, objMinuto){
   var strDia = objDia.value ;
   var strMes = objMes.value ;
   var strAno = objAno.value ;
   
   if (objHora!="" && objMinuto!=""){
      var strHora   = objHora.value ;
      var strMinuto = objMinuto.value ;
   }
      
   if(isNaN(strDia) || changeSubstr(strDia," ","")=="") {
      alert("- O campo dia foi preenchido incorretamente!\n") ;
      objDia.focus();
      return false;
   }
   if(isNaN(strMes) || changeSubstr(strMes," ","")==""){
      alert("- O campo mês foi preenchido incorretamente!\n") ;
      objMes.focus();
      return false;
   }         
   if(isNaN(strAno) || changeSubstr(strAno," ","")==""){
      alert("- O campo ano foi preenchido incorretamente!\n") ;
      objAno.focus();
      return false;
   }   

   if (objHora!="" && objMinuto!=""){
      if(isNaN(strHora) || changeSubstr(strHora," ","")==""){
         alert("- O campo Horas foi preenchido incorretamente!\n") ;
         objHora.focus();
         return false;
      }   
      if(isNaN(strMinuto) || changeSubstr(strMinuto," ","")==""){
         alert("- O campo Minutos foi preenchido incorretamente!\n") ;
         objMinuto.focus();
         return false;
      }   
   }
   
   //Tratando anos de 2 digitos
   if (strAno.length==2){
      if (Number(strAno)>50){
          strAno = "19" + strAno;
          objAno.value  = strAno;
      }    
      else{
          strAno = "20" + strAno;
          objAno.value  = strAno;
      }    
   }   
   
   if (strAno<1900 || strAno>2100){
      alert("- O ano deve estar entre 1900 e 2100!\n") ;
      objAno.focus();
      return false;
   }
   if (strMes<1 || strMes>12){
      alert( "- O mês deve estar entre 1 e 12!\n") ;
      objMes.focus();
      return false;
   }   
   
   //Meses com 30 dias
   if (strMes == 4 || strMes == 6 || strMes == 9 || strMes == 11) {
      if (strDia<1 || strDia>30){
         alert("- No mês escolhido, selecione um dia entre 1 e 30!\n") ;
         objDia.focus();
         return false;
      }
    }
    
   //Fevereiro
   else if (strMes == 2) {
      //Ano bissexto
      if (strAno%4==0 && (!strAno%100==0 || strAno%400==0)){
         if (strDia<1 || strDia>29){
            alert("- No mês escolhido, selecione um dia entre 1 e 29!\n") ;
            objDia.focus();
            return false;
         }   
      }
      else{
         if (strDia<1 || strDia>28){
            alert("- No mês escolhido, selecione um dia entre 1 e 28!\n") ;
            objDia.focus();
            return false;
         }   
      }
   }
   //Meses com 31 dias
   else if (strDia<1 || strDia>31){
           alert ("- No mês escolhido, selecione um dia entre 1 e 31!\n") ;
           objDia.focus();
           return false;
   }
   
   
   if (objHora!="" && objMinuto!=""){
       if (strHora<0 || strHora>23){
          alert ("- Selecione uma hora entre 1 e 23!\n") ;
          objHora.focus();
          return false;
       }
          
       if (strMinuto<0 || strMinuto>59){
          alert ("- Selecione um minuto entre 0 e 59!\n") ;
          objMinuto.focus();
          return false;
       }
   }    
   return true;
}

// Funcao para abrir um pop-up
function abre_pop(url,titulo,pop_size_w,pop_size_h, scrollbars)
{

   if (scrollbars==null){
    scrollbars = "no"
   } 

   var posicaoX = screen.width - pop_size_w;
   var posicaoY = screen.height - pop_size_h;
   if(posicaoX != 0)
   {
      posicaoX = Math.round(posicaoX / 2);
      posicaoY = Math.round(posicaoY / 2);
   }
   pop = window.open(url,titulo,"toolbar=no,location=no,address=no,directories=no,status=no,menubar=no,scrollbars="+ scrollbars +",resizable=no,copyhistory=yes,maximized=yes,width="+pop_size_w+",height="+pop_size_h+",left="+posicaoX+",top="+posicaoY);
   pop.focus();
}

function gotoPage(pgNum){
      frmPaginacao.pagAtual.value = pgNum;
      frmPaginacao.submit();
}

// ***************************
//	Nome: ValidaEmail()
//	Descrição: Valida o endereço de e-mail digitado pelo usuário
// ***************************
function ValidaEmail(Email)
{
//  var Email = document.Contato.email.value;
  var suportado = 0;

  //Testa se o browser suporta expressões regulares

  if (window.RegExp) 
  {
    var tempReg = /a/;
    if (tempReg.test("a"))
    {
      suportado = 1;
    }
  }

  /* Se o browser não suporta expressões regulares, verifica apenas a posição do ponto e da arroba */
  if (!suportado)
  {
    if(((Email.indexOf(".") > 0) && (Email.indexOf("@") > 0)) &&
    ((Email.lastIndexOf(".") < (Email.length - 1)) &&
    (Email.lastIndexOf("@") < (Email.length -1))))
    {
      return true;
    }
    else
    {
      return false;
    }
  }
  else
  {
    /* Se o browser suporta expressões regulares, faz a verificação completa */
    var tmp1 = /(@.*@)|(\.\.)|(@\.)|(^\.)/;
    var tmp2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;

    if(!tmp1.test(Email) && tmp2.test(Email))
    {
      return true;
    }
    else
    {
      return false;
    }
  }
}