	function localizar_campos(){
                var Tags = ['input','textarea', 'select', 'checkbox', 'hidden', 'password', 'file', 'radio', 'button', 'img', 'form' ];
                var i = 0;
                parte = document;
                for(z=0;z<Tags.length;z++){
                        Inputs=parte.getElementsByTagName(Tags[z]);						
                        for(i=0;i<Inputs.length;i++)						
						   { obj = "#"+Inputs[i].id; if(obj == "#"){continue;}
						   try { if(Tags[z] == 'form'){ validacao_enviar_form(Inputs[i]); continue;}  } catch(err){ }
                           try { if($(obj).attr("enviar") != undefined){ validacao_enviar(Inputs[i]); } } catch(err){ }
                           try { if($(obj).attr("mascara")) { mascaras_aplicar(Inputs[i]); }} catch(err){ }
                           try { if($(obj).attr("buscarapida") == "sim"){ $(obj).combobox(); carregar(["buscarapida_select();"]);}} catch(err){ }						   
				          }}}
     function validacao_enviar_form(obj){ $("#"+obj.id).submit(function() {  return false;}); }						  
	 function validacao_aplicar(campo){
                var Tags = ['input','textarea', 'select', 'checkbox', 'hidden', 'password', 'file', 'radio' ];	
				form_a = $("#"+campo.id).attr('enviar');
				parte = document.getElementById(form_a);
                if (typeof parte == "undefined") parte = document;				
		        saida = "sim";
                for(z=0;z<Tags.length;z++){
                        Inputs=parte.getElementsByTagName(Tags[z]);
                        for(i=0;i<Inputs.length;i++)
						   {
                            if(('button,image,hidden,submit,reset').indexOf(Inputs[i].type.toLowerCase())==-1)
							  {	
  							   if($('#'+Inputs[i].id).attr('validar') == 'sim' && Inputs[i].type.toLowerCase() == 'text') {if(validar_input(Inputs[i]) == 'nao'){ saida = "nao";}}
  							   if($('#'+Inputs[i].id).attr('validar') == 'sim' && Inputs[i].type.toLowerCase() == 'hidden') {if(validar_input(Inputs[i]) == 'nao'){ saida = "nao";}}							 
  							   if($('#'+Inputs[i].id).attr('validar') == 'sim' && Inputs[i].type.toLowerCase() == 'password') {if(validar_input(Inputs[i]) == 'nao'){ saida = "nao";}}
  							   if($('#'+Inputs[i].id).attr('validar') == 'sim' && Inputs[i].type.toLowerCase() == 'file') {if(validar_input(Inputs[i]) == 'nao'){ saida = "nao";}}
  							   if($('#'+Inputs[i].id).attr('validar') == 'sim' && Inputs[i].type.toLowerCase() == 'textarea') {if(validar_input(Inputs[i]) == 'nao'){ saida = "nao";}}
  							   if($('#'+Inputs[i].id).attr('validar') == 'sim' && Inputs[i].type.toLowerCase() == 'select-one') {if(validar_select(Inputs[i]) == 'nao'){ saida = "nao";}}    
  							   if($('#'+Inputs[i].id).attr('validar') == 'sim' && Inputs[i].type.toLowerCase() == 'checkbox') {if(validar_checkbox(Inputs[i]) != 'sim'){ saida = "nao";}}    
  							   if($('#'+Inputs[i].id).attr('validar') == 'sim' && Inputs[i].type.toLowerCase() == 'radio') {if(validar_radio(Inputs[i]) != 'sim'){ saida = "nao";}}    
							   if(saida == 'nao'){break;}
						      }							  
				           }
			      if(saida == 'nao'){break;}
				}
  	       return saida;	
		 };
	 function validar_input(campo){	
	      campo = $("#"+campo.id); txt = campo.attr("txt_"); if(!txt){txt = 'O campo '+campo.attr("txt")+' está em branco';} if(!txt){txt = '';}
		  conf_value = campo.attr('conf_value'); conf_value_ = campo.attr('conf_value_'); obs = campo.attr('obs'); obs_txt = campo.attr('obs_txt');
		  n_min = campo.attr('n_min'); n_max = campo.attr('n_max'); n_txt = campo.attr('n_txt');
		  if(!conf_value){conf_value = '';}  if(!conf_value_){conf_value_ = '';} if(!obs){obs = '';}
		  if(!n_txt){n_txt = '';} if(!n_min){n_min = '';} if(!n_max){n_max = '';}
		  if(conf_value_ != ""){conf_value = $("#"+conf_value_).val(); }		  
		  if(n_txt == ''){n_txt_min = 'Você deve digitar no mínimo '+n_min+' caracteres no campo '+campo.attr("txt");
		  n_txt_max = 'Você deve digitar no máximo '+n_max+' caracteres no campo '+campo.attr("txt");} else {n_txt_min = n_txt; n_txt_max = n_txt;}		  
		  if(campo.val() != '' && n_min > 0){ valor = campo.val(); if(n_min > valor.length){alert(n_txt_min); campo.focus(); return 'nao';} }
		  if(campo.val() != '' && n_max > 0){ valor = campo.val(); if(n_max < valor.length){alert(n_txt_max); campo.focus(); return 'nao';} }
 		  if(obs == 'email'){ email = campo.val();
			 if(email == ''){ alert(txt); campo.focus(); return 'nao'; }
             if(email.indexOf('@')==-1 || email.indexOf('.')==-1){
                campo.attr('value', '');
				if(obs_txt != undefined){  alert(obs_txt);  } else { alert('Este e-mail está incorreto'); }  
		        campo.focus(); return 'nao';
			   }
		    }
 		  if(obs == 'comparacao'){			  
 		      if(campo.val() == ''){ alert(txt); campo.focus(); return 'nao';}
 		      if(campo.val() != conf_value){ alert(obs_txt); campo.focus(); return 'nao';}			  
		    }
		  if(campo.val() == conf_value && obs == ''){ alert(txt); campo.focus(); return 'nao';}
  	      return 'sim';
		 };
	 function validar_select(campo){
	      campo_select = $("#"+campo.id); txt = campo_select.attr("txt_"); if(!txt){txt = 'Você deve selecionar um item no campo ' + campo_select.attr("txt")+'';} if(!txt){txt = '';}
          texto = campo.options[campo.selectedIndex].value;
          if(texto == ''){ alert(txt); campo.focus(); return 'nao'; }		
		  return 'sim';	
        };
	 function validar_checkbox(campo){
	      campo_checkbox = $("#"+campo.id); txt = campo_checkbox.attr("txt_"); if(!txt){txt = 'Você deve selecionar o campo '+campo_checkbox.attr("txt")+'';} if(!txt){txt = '';}
          if(!campo.checked){ alert(txt); campo.focus(); return 'nao'; }		 
		  return 'sim';
        };
	 function validar_radio(campo){
	      campo_radio = $("#"+campo.id); txt = campo_radio.attr("txt_"); if(!txt){txt = 'Você deve selecionar o campo '+campo_radio.attr("txt")+'';} if(!txt){txt = '';}  		            
		  nome = campo_radio.attr('name');
		  valor = '';
          $("[name="+nome+"]").each(function(){ if ( $(this).is(':checked') ) { valor = $(this).val(); obj_selecionado = $(this); }});
          if(valor == ''){ alert(txt); return 'nao'; }
          return'sim';		  					  		 		  	
        };
	function validacao_enviar(campo){
  		  $("#"+campo.id).attr('onClick', '');
		  if($("#"+campo.id).attr('type') == 'password' || $("#"+campo.id).attr('type') == 'text')
		    {
              $("#"+campo.id).keyup(function(event){
				 if(event.keyCode==13){
			        retorno = validacao_aplicar(campo);
			        if(retorno != "nao") {form_a = $("#"+campo.id).attr('enviar'); document.getElementById(form_a).submit();}
				   }
			  });	 
			}
		  else
		   {
		    $("#"+campo.id).unbind('click').click(function(){
			 retorno = validacao_aplicar(campo);
			 if(retorno != "nao"){form_a = $("#"+campo.id).attr('enviar'); document.getElementById(form_a).submit();}
             });
		   }
		 };		 
// mascara
        var IsIE = navigator.appName.toLowerCase().indexOf('microsoft')!=-1;
        var AZ = /[A-Z]/i;
        var Acentos = /[À-ÿ]/i;
        var Num = /[0-9]/;
        function mascaras_aplicar(campo){
                tipo = campo.getAttribute('tipo');
                readonly = campo.getAttribute('readonly');
                orientacao = campo.getAttribute('orientacao');				
                mascara = campo.getAttribute('mascara');
                if(!tipo){ tipo = 'personalizado'; mascara = mascara.replace('#', '*');}					
                if (!tipo) return;
                if (readonly) return;
                if (tipo.toLowerCase() == "personalizado"){ mascara = mascara.replace('#', '*'); $("#"+campo.id).mask(mascara); return; }												
                if (tipo.toLowerCase() == "decimal"){
                        orientacao = "esquerda";
                        casasdecimais = campo.getAttribute('casasdecimais');
                        tamanho = campo.getAttribute('maxLength');
                        if (!tamanho || tamanho > 50)
                                tamanho = 10;
                        if (!casasdecimais)
                                casasdecimais = 2;
                        campo.setAttribute("mascara", mascaras_geraMascaraDecimal(tamanho, casasdecimais));
                        campo.setAttribute("tipo", "num");
                        campo.setAttribute("orientacao", orientacao);
                }
                if (orientacao && orientacao.toLowerCase() == "esquerda") campo.style.textAlign = "right";
                if (mascara) campo.setAttribute("maxLength", mascara.length);
                if (tipo){ campo.onkeypress = function(e){ return mascaras_onkeypress(e?e:event); }; campo.onkeyup = function(e){ mascaras_onkeyup(e?e:event, campo) };}
                campo.setAttribute("snegativo", ((campo.value).substr(0,1) == "-" ? "s" : "n"));
        };
        function mascaras_onkeypress(e){
                KeyCode = IsIE ? event.keyCode : e.which;
                campo =  IsIE ? event.srcElement : e.target;
                maxlength = campo.getAttribute('maxlength');
                selecao = mascaras_selecao(campo);
                if (selecao.length > 0 && KeyCode != 0){
                        campo.value = ""; return true;
                }
                if (KeyCode == 0) return true;
                Char = String.fromCharCode(KeyCode);
                valor = campo.value;
                mascara = campo.getAttribute('mascara');
                if (KeyCode != 8){
                        tipo = campo.getAttribute('tipo').toLowerCase();
                        negativo = campo.getAttribute('negativo');
                        if(negativo && KeyCode == 45){
                                snegativo = campo.getAttribute('snegativo');
                                snegativo = (snegativo == "s" ? "n" : "s");
                                campo.setAttribute("snegativo", snegativo);
                        }else{
                                valor += Char;
                                if (tipo == "num" && Char.search(this.Num) == -1) return false;
                                if (KeyCode != 32 && tipo == "caracter" && Char.search(this.AZ) == -1 && Char.search(this.Acentos) == -1) return false;
                        }
                }
                if (mascara){
                        mascaras_aplicarMascara(campo, valor);
                        return false;
                }
                return true;
        };
        function mascaras_onkeyup(e, campo){
                KeyCode = IsIE ? event.keyCode : e.which;
                if (KeyCode != 9 && KeyCode != 16 && KeyCode != 109){valor = campo.value;
                        if (KeyCode == 8 && !IsIE) valor = valor.substr(0,valor.length-1);
                        mascaras_aplicarMascara(campo, valor);
                }
        };
        function mascaras_aplicarMascara(campo, valor){
                mascara = campo.getAttribute('mascara');
                if (!mascara) return;
                negativo = campo.getAttribute('negativo');
                snegativo = campo.getAttribute('snegativo');
                if (negativo && valor.substr(0,1) == "-")
                        valor = valor.substr(1,valor.length-1);
                orientacao = campo.getAttribute('orientacao');
                var i = 0;
                for(i=0;i<mascara.length;i++){
                        caracter = mascara.substr(i,1);
                        if (caracter != "#") valor = valor.replace(caracter, "");
                }
                retorno = "";
                if (orientacao != "esquerda"){
                        contador = 0;
                        for(i=0;i<mascara.length;i++){
                                caracter = mascara.substr(i,1);
                                if (caracter == "#"){
                                        retorno += valor.substr(contador,1);
                                        contador++;
                                }else
                                        retorno += caracter;
                                if(contador >= valor.length) break;
                        }
                }else{
                        contador = valor.length-1;
                        for(i=mascara.length-1;i>=0;i--){
                                if(contador < 0) break;
                                caracter = mascara.substr(i,1);
                                if (caracter == "#"){
                                        retorno = valor.substr(contador,1) + retorno;
                                        contador--;
                                }else
                                        retorno = caracter + retorno;
                        }
                }
                if (negativo && snegativo == "s")
                        retorno = "-" + retorno;
                campo.value = retorno;
        };
        function mascaras_geraMascaraDecimal(tam, decimais){
                var retorno = ""; var contador = 0; var i = 0;
                decimais = parseInt(decimais);
                for (i=0;i<(tam-(decimais+1));i++){
                        retorno = "#" + retorno;
                        contador++;
                        if (contador == 3){
                                retorno = "." + retorno;
                                contador=0;
                        }
                }
                retorno = retorno + ",";
                for (i=0;i<decimais;i++) retorno += "#";
                return retorno;
        };
        function mascaras_selecao(campo){
                if (this.IsIE)
                        return document.selection.createRange().text;
                else
                        return (campo.value).substr(campo.selectionStart, (campo.selectionEnd - campo.selectionStart));
        };
// fim mascara
carregar(['localizar_campos();']);

function selecionar_carregar(){
   var Tags = ['select'];
   var i = 0;
   parte = document;
   for(z=0;z<Tags.length;z++){
   Inputs=parte.getElementsByTagName(Tags[z]);
   if(Tags[z] == "select")
     {
      for(i=0;i<Inputs.length;i++)
         {
          campo = Inputs[i];
          valor = campo.getAttribute('seleciona_valor');
          if(valor){obj2 = campo;
             for(j = 0; j<obj2.length; j++){
                 if(obj2.options[j].value == valor){obj2.options[j].selected = true;}
                }
            }
         }
     }
   }
 }
carregar(['selecionar_carregar();']);

function selecionar_radio_carregar(){
   var Tags = ['input'];
   var i = 0;
   parte = document;
   for(z=0;z<Tags.length;z++){
   Inputs=parte.getElementsByTagName(Tags[z]);
   if(Tags[z] == "input"){
	  campo_selecionado = '';
      for(i=0;i<Inputs.length;i++){
          campo = Inputs[i];
		  tipo = campo.getAttribute('type');
		  if(tipo != "radio"){continue;}
          valor = campo.getAttribute('seleciona_valor');
          nome = campo.getAttribute('name');
          id_campo = campo.getAttribute('id'); $('#'+id_campo).attr('checked', '')		  		  
          if(valor){ campo_selecionado = '#'+nome+'_'+valor;}			
         }
	  $(campo_selecionado).attr('checked', 'checked');	 
     }
   }
 }
carregar(['selecionar_radio_carregar();']);
function msg(txt, type){
	  if(type == 'alert'){alert(txt); return true; }
	  if(type == 'pergunta'){if(confirm(txt)){ return true; } else { return false; }}		
	}
function redireciona_url(url){
	parent.location.href=url;
	}
function janela(url, largura, altura){	
         var d = new Date(); 
         nome_janela = "hadialog"+d.getSeconds()+''+d.getMilliseconds();
         var janela_popup = window.open(url, nome_janela,
             "toolbar=no,menubar=yes,personalbar=no,width="+largura+",height="+altura+"," +
             "scrollbars=yes,resizable=yes");	
	}
//funções para selects
function select_remove_all(id){
     $("#"+id+" option").each(function(){ $(this).remove()});
	}
function select_add(id, nome, valor, selected){ $('#'+id).append("<option value='"+valor+"' "+selected+" >"+nome+"</option>");}	
function select_carrega_ajax(url_ajax, campo, valor) {
             select_add(campo, "Carregando...", "");
             $.ajax({
                 type: "GET",
                 url: url_ajax,
                 dataType: "html",
                 error: function(xhr, desc, exceptionobj) {
                      select_remove_all(campo);
                      select_add(campo, "Erro no carregamento", "");
					 },
                 success: function(xml) {
                     select_remove_all(campo);
                     $(xml).find('option').each(function(){
                         var value = $(this).attr('value')
                         var nome = $(this).attr('nome')
						 if(valor != '' && valor == value){ select_add(campo, nome, value, 'selected'); } else { select_add(campo, nome, value, ''); }
                     });					 
                 }
             });
          }		  
function select_carrega(url, campo, valor){ select_remove_all(campo); select_carrega_ajax(url, campo, valor); }
// SCRIPT para OBJ VOADOR	
function obj_voador(obj, obj2){
obj = $('#'+obj); obj2 = $('#'+obj2);
var isIE = navigator.appName.indexOf("Microsoft") != -1;
obj.mouseout(function(){ obj.onmousemove = null; obj2.css('display','none'); });
obj.mousemove(function(e){
    var difx = obj2.attr('altura');
    var dify = obj2.attr('largura');
    var evt = (isIE) ? event : e;
    var ix = e.pageX - difx;
    var iy = e.pageY - dify;
    obj2.css('left',ix+'px');
    obj2.css('top',iy+'px');
    obj2.css('display','block');
    $(this).mousemove(function(e){
        var evt = (isIE) ? event : e;
        var ax = e.pageX - difx; 
        var ay = e.pageY - dify; 
        obj2.css('left',ax+'px');
        obj2.css('top',ay+'px');
    });
});	
}
function carrega_obj_voador(){
$('[obj_voador]').each(function(){
 try {
  obj = $('#' + this.id).attr('obj_voador');
  obj_voador(this.id, obj);
 } catch(err){ }
}); 		
}
carregar(["carrega_obj_voador();"]);	
// FIM SCRIPT para OBJ VOADOR
function enviar_dados(url, dados){
             $.ajax({
                 type: "POST",
                 url: url,
                 dataType: "html",
                 data: dados,
                 error: function(xhr, desc, exceptionobj) {
					 },
                 success: function(xml) {
					 
                 }
             });	
	}
function favoritos(){
    var url      = document.URL;
    var title    = document.title;
    if (window.sidebar) window.sidebar.addPanel(title, url,"");
    else if(window.opera && window.print){
        var mbm = document.createElement('a');
        mbm.setAttribute('rel','sidebar');
        mbm.setAttribute('href',url);
        mbm.setAttribute('title',title);
        mbm.click();
    }
    else {window.external.AddFavorite(url, title);}
};
//////////////// BASE64 ENCODE - DECODE //////////////////////////
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
 var output = "";
 var chr1, chr2, chr3;
 var enc1, enc2, enc3, enc4;
 var i = 0;
 do {
 chr1 = input.charCodeAt(i++);
 chr2 = input.charCodeAt(i++);
 chr3 = input.charCodeAt(i++);
 enc1 = chr1 >> 2;
 enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
 enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
 enc4 = chr3 & 63;
 if (isNaN(chr2)) {
 enc3 = enc4 = 64;
 } else if (isNaN(chr3)) {
 enc4 = 64;
 }

 output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) +
 keyStr.charAt(enc3) + keyStr.charAt(enc4);
 } while (i < input.length);

 return output;
}
function decode64(input) {
 var output = "";
 var chr1, chr2, chr3;
 var enc1, enc2, enc3, enc4;
 var i = 0;

 // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
 input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

 do {
 enc1 = keyStr.indexOf(input.charAt(i++));
 enc2 = keyStr.indexOf(input.charAt(i++));
 enc3 = keyStr.indexOf(input.charAt(i++));
 enc4 = keyStr.indexOf(input.charAt(i++));

 chr1 = (enc1 << 2) | (enc2 >> 4);
 chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
 chr3 = ((enc3 & 3) << 6) | enc4;

 output = output + String.fromCharCode(chr1);

 if (enc3 != 64) {
 output = output + String.fromCharCode(chr2);
 }
 if (enc4 != 64) {
 output = output + String.fromCharCode(chr3);
 }
 } while (i < input.length);

 return output;
}
function buscarapida_select(){
	$.widget("ui.combobox", {
			_create: function() {
				var self = this;
				var select = this.element.hide();
				select.show();				
				var hide = select.attr('hidebuscarapida');
                if(hide == 'sim'){ select.hide(); }
				select.attr('txt_', 'Campo '+select.attr('txt')+' em branco');
				select.attr('txt', '');				
				var input = $("<input>")
					.insertAfter(select)					
					.attr('id', select.attr('id')+'buscarapida')
					.attr('name', select.attr('id')+'buscarapida')
					.attr('class', 'extra2')
					.autocomplete({
						source: function(request, response) {
							var matcher = new RegExp(request.term, "i");
							response(select.children("option").map(function() {
								var text = $(this).text();
								if (this.value && (!request.term || matcher.test(text)))
									return {
										id: this.value,
										label: text.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + $.ui.autocomplete.escapeRegex(request.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>"),
										value: text
									};
							}));
						},
						delay: 0,
						change: function(event, ui) {
							if (!ui.item) {
								select.val('');
								$(this).val("");
								return false;
							}
							select.val(ui.item.id);
							self._trigger("selected", event, {
								item: select.find("[value='" + ui.item.id + "']")
							});							
						},
						minLength: 0
					})
					
			}			
		});
}

function criaCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function lerCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function navegacao_voltar(){
url_agora = document.URL;	
url_voltar = lerCookie("navegacao_voltar");
if(url_voltar == ""){ url_voltar="index.php";}
if(url_agora != url_voltar)
  {
   criaCookie("navegacao_voltar", document.URL);  	
  }
$('[navegacao=voltar]').attr('href', url_voltar);	
}
carregar(['navegacao_voltar();']);

