/**
 *	Programa :	[root]/includes/js/geral.js
 **/

   function fg_key_code(o_event)
   {
      return (window.Event) ? ((o_event.which) ? o_event.which : o_event.keyCode) : o_event.keyCode;
   }

   function fg_window_open(s_url)
   {
      window.open(s_url,'new_window','toolbar=yes,location=yes,directories=yes,status=yes,scrollbars=yes,menubar=yes,resizable=yes');
   }

   function fg_campo_vazio(o_campo)
   {
   	var b_retorno = false;
      
      if(o_campo)
      	if (o_campo.value == "")
      	{
      		o_campo.focus();
      		b_retorno = true;
      	}
   	return b_retorno;
   }

   function fg_campo_obrigatorio_label(o_campo)
   {
   	var s_retorno = "";
   	
   	if (fg_campo_vazio(o_campo))
   	{
      	var o_label = document.getElementById("lbl_"+o_campo.name);
      	if(o_label.textContent) // mozilla
      	{
      		s_retorno = "\t- "+o_label.textContent.replace(/:/g,"")+"\n";
      	}
      	else // IE
      	{
      		s_retorno = "\t- "+o_label.innerText.replace(/:/g,"")+"\n";
      	}
   	}
   	return s_retorno;
   }

   function fg_campo_obrigatorio(o_campo, s_mensagem)
   {
   	var s_retorno = "";
   	
   	if (fg_campo_vazio(o_campo))
   	{
   		s_retorno = "\t- "+s_mensagem +"\n";
   	}
   	return s_retorno;
   }

   function fg_hide_selects()
   {
      if (navigator.appVersion.match(/\bMSIE\b/))
      {
         $$('select').each(function(o_object) {
            o_object.hide();
         });
      }
   }

   function fg_show_selects()
   {
      if (navigator.appVersion.match(/\bMSIE\b/))
      {
         $$('select').each(function(o_object) {
            o_object.show();
         });
      }
   }

   var o_popup_window;
   function fg_open_popup(s_url, i_width, i_height) 
   {
      if (!(!o_popup_window || o_popup_window.closed))
      {
         o_popup_window.close();
      }
      o_popup_window = window.open(s_url,'windowName','scrollbars=1,status=1,minimize=no,left=200,top=200,width='+i_width+',height='+i_height+',resizable=1');
   }

   function fg_fields_changed(o_form)
   {
      var s_changed = "";
   	for (var i=0;i<o_form.elements.length;i++) 
      {
         if((o_form.elements[i].type!="button")&&(o_form.elements[i].type!="file"))
         {
            if(isChanged(o_form.elements[i]))
            {
               s_changed = s_changed + o_form.elements[i].name + ";";
            }
         }
         
         if(o_form.elements[i].type=="file")
         {
            if(o_form.elements[i].value != "")
            {
               s_changed = s_changed + ";";
            }
         }
         
      }
      return s_changed;
   }
   
   // DECODES AND UNESCAPES ALL TEXT.
   function fg_decrypt_text(s_texto)
   {
      var s_k = unescape(s_texto.substr(0,s_texto.length-1));
      var s_return = '';
      for(i=0;i<s_k.length;i++)
         s_return += String.fromCharCode(s_k.charCodeAt(i)-s_texto.substr(s_texto.length-1,1));
      return unescape(s_return);
   }

   // ENCODES, IN UNICODE FORMAT, ALL TEXT AND THEN ESCAPES THE OUTPUT
   function fg_crypt_text(s_texto)
   {
      s_texto = escape(s_texto);
      var a_texto = new Array();
      for(i=0; i<s_texto.length; i++)
         a_texto[i] = s_texto.charCodeAt(i)+3;
      return ""+escape(eval("String.fromCharCode("+a_texto+")"))+3;
   }
   
   function fg_php_time()
   {
      var d_time = new Date();
      return parseInt(d_time.getTime()/1000.0);
   }
   
   function fg_is_checked(o_object)
   {
      var b_checked = false;
      if (typeof(o_object) != 'undefined')
      {
         var i_length = ( typeof (o_object.length) != 'undefined') ? o_object.length : 0;
         if (i_length)
         {
            for (var i_cont = 0; i_cont < i_length; i_cont++)
            {
               if (o_object[i_cont].checked)
               {
                  b_checked = true;
               }
            }
         }
         else
         {
            b_checked = o_object.checked;
         }
      }
      return b_checked;
   }
   
   function fg_alert_remove()
   {
      if($('dv_alerta_erro'))
      {
         Element.remove('dv_alerta_erro');
      }
   }
   
   function fg_alert_add(o_form, s_msg_alert, s_div)
   {
      fg_alert_remove();

      if(s_div!='')
      {
      if(s_div == undefined)
      {
         s_div = 'dv_btn_opcoes';
      }
      fg_form_top(s_div);
      }
      new Insertion.Top(o_form, '<div id="dv_alerta_erro" style="display:none">'+s_msg_alert+'</div>');
      new Effect.Appear($('dv_alerta_erro'), {duration : 1 });
   }
   
   function fg_aplica(s_aplica)
   {
      var s_retorno = "";
   	s_aplica = (s_aplica == null) ? "" : s_aplica;
      if(s_aplica == "aplica")
      {
         s_retorno = "S";
      }
      
      return s_retorno;
   }
   
   function fg_confirma_exclusao(s_contexto, o_form)
   {
      if(s_contexto=="")
      {
         fg_alert_add(o_form, "Não há registro a excluir!");
         return false;
      }

   	if (!confirm("Confirma a exclusão do registro\n'"+s_contexto+"' ?"))
   	{
   		return false;
   	}
   	return true;
   }

   function fg_expand_object(s_object)
   {
      var o_obj;

   	o_obj = $(s_object);
     	if(o_obj)
   	{
         if(o_obj.className == 'tr_show')
         {
            o_obj.className = 'tr_hide';
         }
         else
         {
            o_obj.className = 'tr_show';
         }
      }
   }

   function fg_expand_objects(s_object)
   {
      var o_obj;
      var i_cont;

      i_cont = 0;
   	while(o_obj = $(s_object+'_'+i_cont))
   	{
         if(o_obj.className == 'tr_show')
         {
            o_obj.className = 'tr_hide';
         }
         else
         {
            o_obj.className = 'tr_show';
         }
         i_cont++;
      }
   }

   function fg_expand_tr(s_prefix, o_this)
   {
   	fg_expand_object(s_prefix+"_title");
   	fg_expand_object(s_prefix+"_select");
   	if(o_this.className == "spn_selected")
   	{
         o_this.className = "spn_not_selected";
      }
      else
      {
         o_this.className = "spn_selected";
      }
   }

   function fg_form_top(id_div)
   {
      window.scrollTo(0,$(id_div).offsetTop);
   }

   function fg_expand_span(s_lnk, s_span)
   {
      $$('a.a_blk_lnk').each(function(o_obj) {
         o_obj.removeClassName('a_blk_negrito');
        });
      $$('span.spn_blk_descricao').each(function(o_obj) {
         o_obj.hide();
        });
      $(s_lnk).addClassName('a_blk_negrito');
      $(s_span).show();
   }

