/**
* @package evacms
* @copyleft (cc) 2004-2006 EVAcms. Alguns direitos reservados
* @license http://www.gnu.org/licenses/lgpl.html LGPL License
* @author Alessandro Nunes <alessandro@evacms.com.br>
* @author Daniel Neto <daniel@evacms.com.br>
* @link http://www.evacms.com.br Site oficial do projeto EVA
**/

/* Definindo a localização do HTMLArea e o idioma */
var _editor_url = "biblioteca/javascripts/tiny_mce/";
var _editor_lang = "pt_br";
var eva_enter = false;
var eva_id = 0;
var eva_menu_contexto;
var in_event;
var eva_carregando_atual;
var eva_carregando = '<div class="carregando"></div>';

/* Verificando o tipo de navegador*/
var eva_userAgent = navigator.userAgent.toLowerCase();

var eva_isOpera = eva_userAgent.indexOf('opera 7') != -1 ? 1 : 0;
var eva_isKonq = eva_userAgent.indexOf('konq') != -1 ? 1 : 0;
var eva_isIE = !eva_isKonq && !eva_isOpera && document.all ? 1 : 0;
var eva_isIE50 = eva_isIE && eva_userAgent.indexOf('msie 5.0') != -1;
var eva_isIE55 = eva_isIE && eva_userAgent.indexOf('msie 5.5') != -1;
var eva_isIE5 = eva_isIE50 || eva_isIE55;
var eva_isGecko = eva_userAgent.indexOf('gecko') != -1 ? 1 : 0;
var eva_mouseover = eva_isIE ? 'hand' : 'pointer';

/* Predefinindo objetos para HTMLArea*/
var area1 = "";
var area2 = "";
var area3 = "";
var area4 = "";
var area5 = "";

/* 
Função gerar um identificador unico
*/
function eva_id(){
	eva_id++;
	return eva_id;
};

// Executa comando e retorna a <resposta> na camada
function comando(url,subir){
	var resposta = true;
	var objeto = '';
	var metodo = 'GET';
	var variaveis = '';
	var funcao = '';
	if(subir) scroll(0,0);
	executar_comando(metodo, url, resposta, variaveis, objeto, funcao);
};

// Exibe a camada 'carregando'
function carregando(camada){
	eva_html(camada,eva_carregando);
};


// Executa comando e envia formulario via POST
function comando_formulario(url,formulario){
	var resposta = true;
	var objeto = '';
	var metodo = 'POST';
	var funcao = '';
	
	executar_comando(metodo, url, resposta, formulario, objeto, funcao);
}

// Atualizar pagina recriando blocos
function eva_atualizar(){
	var nova_url = document.location;
	if(/\&atualizar\=true/.test(nova_url) == false){
		if(/\?/.test(nova_url) == false){
			nova_url = nova_url+'?atualizar=true';
		}else{
			nova_url = nova_url+'&atualizar=true';
		};
	};
	document.location = nova_url;
};

/* Muda o estilo do botao 
o = objeto, c = classe
*/
function eva_botao(o,c){
	if(c == 1){
		o.className = 'botao_sobre';
	}else{
		o.className = 'botao';		
	};
};

/* 
Função para pegar um item dentro de um objeto DOM XML
o = objeto, t = tag, i = item,  e = elementos, r = resposta
*/
function eva_item(o,t){
	if(t == '') t = 'resposta';
	e = o.getElementsByTagName(t);
	rs = '';
	try{
		if(e.length > 0){
			for (i=0; i<(e.length); i++){
				rs = rs + e[i].childNodes[0].nodeValue;
			};
		}else{
			rs = o.childNodes[0].nodeValue;
		};
	}catch(b){
		// alert(b);
	}
	if(rs == null) rs = '';
	return rs;
};

/* Retorna o objeto de id i */
function eva_elem(i){
	return document.getElementById(i);	
}

/* Apaga um objeto da pagina */
function apagar(obj){
   obj.parentNode.removeChild(obj);
}

/* Retorna o valor do objeto de id i */
function eva_valor(i){
	if(!eva_elem(i)) return;
	return eva_elem(i).value;
}

/* Retorna o conteudo do objeto de id i */
function eva_conteudo(i){
	if(!eva_elem(i)) return;
	return eva_elem(i).innerHTML;	
}

/* Atribui um conteudo c ao objeto de id i */
function eva_html(i, c){
	if(!eva_elem(i)) return;
	eva_elem(i).innerHTML = c;
}

/* Limpa o conteudo do objeto de id i */
function eva_limpar(i){
	eva_html(i, '');
}

/* Limpa o conteudo do camada eva_carregando_atual */
function eva_limpar_carregando(){
	if(eva_carregando_atual != '') eva_limpar(eva_carregando_atual);
}

/* Oculta/exibe o objeto de id i */
function eva_ocultar(i){
	if(!eva_elem(i)) return;
	try{
		eva_elem(i).style.display = "none";
		eva_elem(i).style.visibility = "hidden";
	}catch(e){};
}
function eva_exibir(i){
	if(!eva_elem(i)) return;
	try{
		eva_elem(i).style.display = "block";
		eva_elem(i).style.visibility = "visible";
	}catch(e){};
}
function eva_exibir_ocultar(i){
	if(!eva_elem(i)) return;
	try{
		if (eva_elem(i).style.visibility == "hidden"){
			eva_exibir(i);
		}else{
			eva_ocultar(i);
		}
	}catch(e){};		
}

/* Verifica se a tecla digitada foi Enter */
function enter(e){
	if (window.event){
		x = window.event.keyCode;
	}else if(e){
		x = e.which;
	}else{
		x = null;
	};
	if(x == 13){
		return true;
	};
	return false;
};

function Get_Cookie(name) {
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len,end));
};

function Set_Cookie(name,value,expires,path,domain,secure) {
    document.cookie = name + "=" +escape(value) +
        ( (expires) ? ";expires=" + expires.toGMTString() : "") +
        ( (path) ? ";path=" + path : "") + 
        ( (domain) ? ";domain=" + domain : "") +
        ( (secure) ? ";secure" : "");
};

function Delete_Cookie(name,path,domain) {
    if (Get_Cookie(name)) document.cookie = name + "=" +
        ( (path) ? ";path=" + path : "") +
        ( (domain) ? ";domain=" + domain : "") +
        ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
};

var blocos_visiveis = new Array();
if (blocos_visiveis_srting = Get_Cookie("blocos_visiveis")){
	blocos_visiveis = blocos_visiveis_srting.split(",");
};

function mostrar_apagar_bloco(num, imagem){	
	bloco = document.getElementById("bloco"+num);
	if (bloco.style.visibility == "hidden"){
		bloco.style.display = "block";
		bloco.style.visibility = "visible";
		blocos_visiveis[num]="visible";
		imagem.className = "botao_minimizar";
	}else{
		bloco.style.display = "none";
		bloco.style.visibility = "hidden";
		blocos_visiveis[num]="hidden";
		imagem.className = "botao_maximizar";
	};
	document.cookie = "blocos_visiveis="+blocos_visiveis;
};


/* Funçao para efeito da cor do BG  que substituirá a funcao acima*/
var classe_antiga = "linha1";
var classe_destaque = "linha_destaque";
function destacar(x){
	if(x.className !=  classe_destaque){
		classe_antiga = x.className;
		x.className = classe_destaque;
	}else{
		x.className = classe_antiga;
	};
};

function confirma(mensagem){
	if (confirm(unescape(mensagem)))
	{
		return true;
	};
	return false;
};


var padrao_menu_botoes = /^menu_botoes/;
function menu_botoes_mouseover(td,alt,alt_id,tipo,event){
	td.style.cursor = eva_mouseover;
	if(alt != "" && tipo != "camada"){
		espaco = " ";
		document.getElementById(alt_id).innerHTML = espaco+alt+espaco;
	};
	return true;
};
function menu_botoes_mousedown(td){
	if(padrao_menu_botoes.test(td.className)){
		td.className="menu_botoes_mousedown";
	}
};
function enviar_form(menu,id,i){
	eval("var menu_botoes = botoes_menu_"+id);
	// 0 = action
	// 1 = url
	// 2 = form id
	// 3 = target
	// 3 = confirma
	menu_botoes_mouseup(menu, menu_botoes[i][4], menu_botoes[i][0], menu_botoes[i][1], menu_botoes[i][2], menu_botoes[i][3]);
};
function menu_botoes_mouseup(td, confirma, action, url, form_id, target){
	if(confirma=="" || confirm(unescape(confirma))){
		if (action != ""){
			if(typeof tinyMCE != 'undefined'){
				tinyMCE.triggerSave();
			};
			
			form = document.getElementById(form_id);
			eva_carregando_atual = form_id+'_carregando';
			carregando(eva_carregando_atual);
			
			eval("var campo_ok = typeof "+form_id+"_campo");			
			
			if(campo_ok != 'undefined'){
				eval("campo_id = "+form_id+"_id");
				eval("campo = "+form_id+"_campo");
				eval("alerta = "+form_id+"_alerta");
				eval("tipo = "+form_id+"_tipo");
				if(campo.length > 0){
					for (var x = 0; x < campo.length; x++){
						try{
							eval("campo_form = form."+campo[x]);
							var padrao = new RegExp(tipo[x]);
							if(/_cm_/.test(campo_id[x]) == false){
								if(campo_form.type == "select-one"){
									var index = campo_form.selectedIndex;
									if (campo_form.options[index].value == "" || campo_form.options[index].value == "0"){
										alert(alerta[x]);
										campo_classe = campo_form.className;
										campo_form.className = "alerta_campo";
										campo_form.focus();
										campo_form.onkeydown = function(ef){
											campo_form.className = campo_classe;
										};
										eva_limpar_carregando();
										return false;
									};
								}else if(typeof(campo_form[0]) == 'object'){
									// verificando radio botton
									var verificar_botoes = false;
									for(var i=0; i < campo_form.length; i++){
										    if (campo_form[i].checked){
												verificar_botoes = true;
											};										
									};
									if(!verificar_botoes){
										alert(alerta[x]);
										eva_limpar_carregando();
										return false;
									};						
								};
							};
							if (padrao.test(eva_elem(campo_id[x]).value) == false) {
								alert(alerta[x]);
								if(eva_elem(campo_id[x]).className != 'mceEditor'){
									campo_classe = eva_elem(campo_id[x]).className;
									eva_elem(campo_id[x]).className = "alerta_campo";
									eva_elem(campo_id[x]).focus();
									eva_elem(campo_id[x]).onkeydown = function(ef){
										eva_elem(campo_id[x]).className = campo_classe;
									};
								};
								eva_limpar_carregando();
								return false;
							};
						}catch(e){};
					};					
				};
			};
			if(target != ""){
				form.target=target;
			};
			action_temp = action.split(":");
			if(action_temp[0] == "comando"){
				comando_formulario(action_temp[1],form_id);
				return false;
			};
			form.action = action;
			form.submit();
		}else if(target != ""){
			window.open(url,target);
		}else if(url != ""){
			document.location = url;
		};
	};
	return false;
};

/* Função para tratar a visibilidade de camadas sobre outros objetos*/
function ocultar_objetos(camada){
	/* Baseado no código do JSCookMenu*/
	if (document.all)	/*it is IE*/ 
	{
		if (!camada.cmOverlap)
			camada.cmOverlap = new Array ();
		/*@cc_on @*/
		/*@if (@_jscript_version >= 5.5)
		@else @*/
		cmHideControl ("IFRAME", camada);
		/*@end @*/
		cmHideControl ("SELECT", camada);
		cmHideControl ("OBJECT", camada);
	};
};

/* Supressão de erros na pagina */
function silentHandler() {
	return true
};

/* Função para montar menu de contexto */
function montar_menu_contexto(){
	var menu_contexto_itens;	
	menu_contexto_itens = eva_conteudo('eva_menu_contexto');
	eva_html('menu_contexto',menu_contexto_itens);
}

/* 
Função que gera um checkbox que seleciona todos os itens de um formulário via java script
i = id base, o = objeto, t = total 
*/

function selecionar_todos(i,t,n){
	for (j=n;j<(t+n);j++){
		eva_elem(i+''+j).checked = eva_elem('selecionar_'+i).checked;
	}
};

String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g,"");
};

/*
Pega todos os elementos de um form e retorna na estrutura de get nome=valor&nome2=valor2&nome3=valor3
*/
function pegar_elementos_form(form_nome){
	if(!(f = eva_elem(form_nome))) return '';
	variaveis = '';
	for(i=0;i<f.length;i++){	
		if(f.elements[i].name&&f.elements[i].value){
			variaveis+=f.elements[i].name+"="+f.elements[i].value+"&";
		}
	};
	return variaveis;	
};

/* 
Executar Comandos
*/
function eva_xmlhttp(){
	eva_ajax['valor'] *= 1;
	if(eva_ajax['resposta']){
		clearTimeout(eva_ajax['resposta']);
	};
	if(eva_ajax['limpar']){
		clearTimeout(eva_ajax['limpar']);
	};
	
	if(eva_ajax['valor']<eva_ajax['total']){
		try{
			eval('eva_ajax_recarrega=eva_ajax_'+eva_ajax['valor']);
			if(eva_ajax['func'][eva_ajax['valor']]){
				executar_comando('GET', eva_ajax['src'][eva_ajax['valor']], true, '', eva_ajax_recarrega, eva_ajax['func'][eva_ajax['valor']++]);
			}else{		
				executar_comando('GET', eva_ajax['src'][eva_ajax['valor']++], true, '', eva_ajax_recarrega, 'eva_xmlhttp');
			};
		}catch(e){
			eva_ajax['valor']++
		};							
	}else{
		eva_ajax['valor']=0;
	}
	eva_ajax['limpar'] = setTimeout('eva_xmlhttp();', eva_ajax['repetir']);
}
function criar_objeto_xmlhttp(){
	var a=null;
	try{
		a=new ActiveXObject("Msxml2.XMLHTTP");
	}catch(c){
		try{
			a=new ActiveXObject("Microsoft.XMLHTTP");
		}catch(b){
			a=null;
		};
	};
	if(!a&&typeof XMLHttpRequest!="undefined"){
		a=new XMLHttpRequest();
	};
	return a;
};

eva_ajax_obj = criar_objeto_xmlhttp();
var eva_ajax_resposta;

// Executa requisicao Ajax
function executar_comando(metodo, url, resposta, variavel_post, objeto, funcao){
	objeto = (typeof(objeto)=="string")? eva_ajax_obj : objeto;
	metodo = (metodo == '')? 'GET' : metodo;
	
	if(objeto){
		try{
			objeto.open(metodo,url,resposta);
			if(variavel_post){
				objeto.setRequestHeader('Content-Type','application/x-www-form-urlencoded;' );
				objeto.setRequestHeader("Method", "POST "+url+" HTTP/1.1");
				variavel_post2 = pegar_elementos_form(variavel_post);
				variavel_post = (variavel_post2)? variavel_post2 : variavel_post;
			};
			objeto.send(variavel_post);
			/* pegar resposta do xmlhttprequest */
			objeto.onreadystatechange=function() {
				/* quando o obj estiver pronto */
				if (objeto.readyState==4) {
					if (objeto.status==200){
						if(obj_xml=objeto.responseXML){
							/* pega o no de alerta */
							alerta=obj_xml.getElementsByTagName("alerta");
							texto_alerta="";				
							for(i=0;i<alerta.length;i++){
								img=alerta[i].getElementsByTagName("img");
								texto=alerta[i].getElementsByTagName("texto");
								img=img[0].childNodes[0].nodeValue==""?"":tag_imagem.replace("imagens/eva_imagem.png",img[0].childNodes[0].nodeValue);
								texto=texto[0].childNodes[0].nodeValue==""?"<br>":texto[0].childNodes[0].nodeValue+"<br>";
								texto_alerta=texto_alerta+img+texto;
							};
							if(texto_alerta!=""){
								stm(["", eva_alerta_modelo1+texto_alerta+eva_alerta_modelo3],["","","","","","","","","","","","float","","","","",2,2,(window_size("w")-(+5)),10,"","","","",""], this, false, 0);
							};
							/* pega os menus botoes */
							botoes2=obj_xml.getElementsByTagName("botoes2");
							if(botoes2.length){			
								for(i=0;i<botoes2.length;i++){
									menubotao[i]=new Array(botoes2[i].getAttribute("id"),botoes2[i].getAttribute("sentido"),botoes2[i].getAttribute("cells"));
								};
								setTimeout("criar_botoes()", 500);
							}
							resposta=obj_xml.getElementsByTagName("resposta");
							/*Se definida a tag camada, substitui pelo valor de resposta*/
							var camada = obj_xml.getElementsByTagName("camada");
							if(camada.length){
								camada_id = camada[0].childNodes[0].nodeValue;
								var conteudo = '';
								var i = 0;
								while(resposta[i]){
									conteudo = conteudo+''+eva_item(resposta[i],'resposta');
									i++;
								}
								if(camada[0].getAttribute("substituir") == 'false'){
									conteudo = eva_conteudo(camada_id) + '' + conteudo;
								}
								eva_html(camada_id, conteudo);
							};
							/*Se definida a tag script, executa script*/
							var script = obj_xml.getElementsByTagName("script");
							if(script.length){
								try{
									eval(script[0].childNodes[0].nodeValue);
								}catch(e){};
							};
							/*Executando funcao de retorno*/
							if(!funcao){
								var funcao_xml = obj_xml.getElementsByTagName("funcao");
								if(funcao_xml.length){
									funcao = funcao_xml[0].childNodes[0].nodeValue;
								};
							};
							if(funcao){
								if(resposta.length > 1){
									eval(funcao+'(resposta)');
								}else if(resposta.length){
									eval(funcao+'(resposta[0])');
								}else{
									eval(funcao+'(resposta[0])');
								};
							};
						};
					};
				};
			};		
		}catch(e){};
	};
};

// Funcao para pegar todos os campos de um formulario para enviar atraves do post
function get(obj){
	// come from: http://www.captain.at/howto-ajax-form-post-get.php
  var getstr = "";
  for (i=0; i<obj.childNodes.length; i++) {
	 if (obj.childNodes[i].tagName == "INPUT") {
  	alert(obj.childNodes[i].tagName+' '+obj.childNodes[i].type);
		if (obj.childNodes[i].type == "text") {
		   getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
		};
		if (obj.childNodes[i].type == "checkbox") {
		   if (obj.childNodes[i].checked){
			  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
		   }else{
			  getstr += obj.childNodes[i].name + "=&";
		   };
		};
		if (obj.childNodes[i].type == "radio") {
		   if (obj.childNodes[i].checked) {
			  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
		   };
		};
	 };  
	 if (obj.childNodes[i].tagName == "SELECT") {
		var sel = obj.childNodes[i];
		getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
	 }; 
  };
  return getstr;
};

/* Função para contar caracteres em um campo de formulário */
function contar_caracteres(objeto, valorMaximo, contador) {
	if(objeto.value.length>valorMaximo) {
		objeto.value = objeto.value.substring(0,valorMaximo);
	};
	x = document.getElementById(contador);
	x.innerHTML = objeto.value.length;
};

/* Retorna o tamanho da janela passa-se w para width e h para height */
function window_size(tipo) {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement &&
      ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    /*IE 6+ in 'standards compliant mode' */
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    /*IE 4 compatible*/
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  };
  if(tipo=='w'){
  	return myWidth;
  }else if(tipo=='h'){
  	return myHeight;
  };
};

// Exibir camada para impressao
function exibir_extra(c,ocultar,expandir,topo,fechar){
	var topo_html = (topo)? eva_topo+'<br /><br />' : '';
	var i = eva_elem('eva_extra');
	i.style.position = 'absolute';
	if(expandir){
		i.style.top = 0;
		i.style.left = 0;
		i.style.width = '98%'; 
	}else{
		i.style.top = '50px';
		i.style.left = (window.document.body.clientWidth/3)+'px';
		i.style.width = window.document.body.clientWidth/3; 
	}
	i.style.background = '#FFFFFF';
	extra_ocultar = (ocultar)? 'true' : 'false';
	fechar = (fechar)? '<div id=\"'+c+'_fechar\" onclick=\"ocultar_extra(\''+c+'\',\''+extra_ocultar+'\')\" class=\"alerta_fechar\" style=\"visibility:hidden; float: right\"></div>' : '';
	eva_html('eva_extra',fechar+topo_html+eva_conteudo(c));
	eva_exibir('eva_extra');
	eva_ocultar('botoes');
	if(eva_elem(c+'_botoes')) eva_ocultar(c+'_botoes');
	if(eva_elem(c+'_fechar')) eva_exibir(c+'_fechar');
	if(ocultar) eva_ocultar('eva');
	stickyhide();
};
function ocultar_extra(c,ocultar){
	i = eva_elem('eva_extra');
	eva_ocultar('eva_extra');
	if(eva_elem(c+'_botoes')) eva_exibir(c+'_botoes');
	if(eva_elem(c+'_fechar')) eva_ocultar(c+'_fechar');
	if(ocultar) eva_exibir('eva');
};

// Voltar para controle do ajax
var eva_voltar_historico = new Array();
var eva_voltar_camada = new Array();
var eva_voltar_atual = 0;
function eva_voltar(url,camada,subir){
	subir = (subir)? subir : false;
	if(url.length > 0){
		eva_voltar_atual++;
		eva_voltar_historico[eva_voltar_atual] = url+'&camada='+camada;
		eva_voltar_camada[eva_voltar_atual] = camada;
		carregando(camada);
		comando(eva_voltar_historico[eva_voltar_atual],subir);
	}else{
		if(eva_voltar_atual > 0){
			eva_voltar_atual = eva_voltar_atual - 1;
			url = eva_voltar_historico[eva_voltar_atual];
			camada = eva_voltar_camada[eva_voltar_atual];
			carregando(camada);
			comando(url,subir);
		}else{
			history.go(-1);
		}						
	}			
};

// This code was written by Tyler Akins and has been placed in the
// public domain.  It would be nice if you left this header intact.
// Base64 code from Tyler Akins -- http://rumkin.com

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

// Codificador base64
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;
}

// Decodificador base64
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;
}

/*Para liberar o Onload*/
var eva_javascript = true;