

function jqger_ChecaElementosForm(p_req,p_diverro,p_debug) 
{
   p_lingua = (((arguments[3])&&(arguments[3].length>0))?arguments[3]:'pt-br');	
	  
   var vl_tabindex   = 9999999;
   var vl_erro       = false;
   var vl_req        = '';
   var vl_requeridos = '';
   var vl_virg       = '';

   for (var i=0; i<p_req.length; i++) 
    {  
      vl_req   = vl_req + vl_virg + p_req[i];
      vl_virg  = ','; 
    }

   if (p_debug) { alert(vl_req); }

   //
   // Percorre campos que tenham o prefixo passado por 'p_req' que indica serem requeridos 
   //
   J(vl_req).each(
      function(i) {
  	      //
  	      // Ignora checagem em campos desabilitados
  	      // 
          if (!J(this).attr('disabled')) 
          {
          	 if (p_debug) { alert('aqui ' + i + ' -> ' + J(this).attr('name') + ' TABINDEX -> ' + J(this).attr('tabindex')); }
          	
             if (J(this).val().length < 1)
             {
                vl_erro = true;

                //Checa qual é o numero do tabindex do campo em questao, e guarda o campo
                //com o tabindex menor, para assim que apresentar o erro, ja setar o foco no 
                //primeiro campo              
                if ( J(this).attr('tabindex') ) 
                   {
                     if ( J(this).attr('tabindex') < vl_tabindex )
                        {
                          vl_tabindex  = J(this).attr('tabindex');
                          vl_campofoco = J(this).attr('name');
                        } 
                   }

                //Se elemento tem o atributo "alt", guarda-o para apresentar a mensagem de
                //advertencia, apresentando o "alt" e nao o nome do campo
                //alert('O NOME É ->  ' + J(this).attr('id'));
                //alert('O TITLE É -> ' + J(this).attr('title'));
                var vl_alt     = ( (J(this).attr('alt') != undefined) ? J(this).attr('alt') : J(this).attr('title') );
                vl_requeridos += ( (vl_alt!="") ? '\n'+vl_alt : '\n'+J(this).attr('name') );
                if (p_debug) { alert('campo-> [' + J(this).attr('name') + '] alt[' + J(this).attr('alt') + ']'); }

             } //nao tem conteudo  

          } //nao he disabled

      } //function

   ); //each 



   //Se há campos requeridos nao informados, entao apresenta a mensagem de erro
   //e retorna TRUE - houve erro, caso contrario retorna FALSE - nao houve erro
   if ( vl_requeridos.length>0 )
   {
       if (p_diverro) 
          { 
            if (p_lingua=='us') {
            	$(p_diverro).innerHTML = '<span style="color:red;">Without success, to inform required fields.</span>';
                alert('Required Fields\n' +
                      '------------------------------------------------------------------' + 
                      vl_requeridos + 
                      '\n------------------------------------------------------------------' +
                      '\nPlease, it informs the fields correctly above');

            } else {
                $(p_diverro).innerHTML = '<span style="color:red;">Efetivação sem sucesso, informar campos requeridos.</span>';	
                alert('Campos REQUERIDOS\n' +
                      '------------------------------------------------------------------' + 
                      vl_requeridos + 
                      '\n------------------------------------------------------------------' +
                      '\nPor favor, informe corretamente os campos acima.');
            }
          }
       if ($(vl_campofoco)) { $(vl_campofoco).focus(); }      
       return true;
   }
   else
   {
       return false;
   }  


}




/*                                                                                                */ 
/* marca/desmarca todos elementos encontrados que sejam checkbox e que tenham o prefixo informado */
/*                                                                                                */
/* 
 **/
function VER_jsger_marcaGridCheckbox(idForm, on, p_name)
{

    var vl_elements = document.getElementById(idForm).elements;

    for( vl_i=1;vl_i < vl_elements.length; vl_i++ )
       {
          //alert('debug [' + vl_i + '] de [' + vl_elements.length + '][' + p_name + '][' + vl_elements[vl_i].name + ']');
          if (p_name != vl_elements[vl_i].name) { continue; }
          
          vl_elements[vl_i].checked = on;
       }   
}



/*                                                                                                              */ 
/* marca/desmarca todos elementos encontrados em um "document" que sejam checkbox capturados                    */ 
/* pela TagName("input"). Pode se passar tambem o nome dos elementos a considerar.                              */
/*                                                                                                              */
/*  ex.: jsger_marcaGridCheckbox_porTagName(parent.document,true,'frm_ck_marcado[]','frm_ck_prdref_checked_');  */
/*                                                                                                              */
/*  parametros:                                                                                                 */
/*  1o - document que podera ser o do proprio chamador ou de um parent                                          */
/*  2o - true para marcar e false para desmarcar                                                                */
/*  3o - nome dos campos checkbox (array)                                                                       */
/*  4o - prefixo de campo extra do tipo input que devera ser setado como true / false (caso seja passado)       */
/*       exemplo: se passado 'frm_ck_prdref_checked_',                                                          */
/*                os campos 'frm_ck_prdref_checked_'+1, 'frm_ck_prdref_checked_'+55, etc ...                    */
/*                cfe conteudo dos campos checados serao sinalizados, neste exemplo 1 e 55                      */
/**/
function VER_jsger_marcaGridCheckbox_porTagName(p_document, on, p_name, p_inputextra)
{

  var vl_chk = p_document.getElementsByTagName("input");
  
  for(vl_i1=0; vl_i1<vl_chk.length; vl_i1++) {
  
    if (vl_chk[vl_i1].type != "checkbox") { continue; }
    
    if (p_name!='')
       {
       	 if (vl_chk[vl_i1].name!=p_name) { continue; }
       }
    
    // alert(vl_i1 + ' -> ' +vl_chk[vl_i1].name);
    
    vl_chk[vl_i1].checked = on;

    // Se tiver campo input extra, setado conforme o checkbox esteja marcado    
    if ($(p_inputextra+vl_chk[vl_i1].value)) { $(p_inputextra+vl_chk[vl_i1].value).value = on; }
    
  }
  

}



/* ======================================================================================= */
/* Função para limpar os campos de um formulario, pelo prefixo                             */
/* ======================================================================================= */
/** 
   exemplo: jsger_limpaCampos('FPost','_f_ope_pes');
*/
function VER_jsger_limpaCampos(p_form,p_prefixo) 
{
  vl_qtdCampos = (document.getElementById(p_form).elements.length-1);
  
  for (vl_x=0;vl_x<=vl_qtdCampos;vl_x++)
  {
     if (document.getElementById(p_form).elements[vl_x].name == undefined  ) { continue; }
     
     if (document.getElementById(p_form).elements[vl_x].name.substring(0,p_prefixo.length) == p_prefixo)
       {
         document.getElementById(p_form).elements[vl_x].value="";
       }
  }
}





