var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf(" chrome/") >= 0 || ua.indexOf(" firefox/") >= 0 || ua.indexOf(' gecko/') >= 0) {
var StringMaker = function () {
this.str = "";
this.length = 0;
this.append = function (s) {
this.str += s;
this.length += s.length;
}
this.prepend = function (s) {
this.str = s + this.str;
this.length += s.length;
}
this.toString = function () {
return this.str;
}
}
} else {
var StringMaker = function () {
this.parts = [];
this.length = 0;
this.append = function (s) {
this.parts.push(s);
this.length += s.length;
}
this.prepend = function (s) {
this.parts.unshift(s);
this.length += s.length;
}
this.toString = function () {
return this.parts.join('');
}
}
}
var num = 0;
var titulo = '';
// 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+/=";
function encode64(input) {
var output = new StringMaker();
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
while (i < input.length) {
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.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
}
return output.toString();
}
function decode64(input) {
var output = new StringMaker();
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, "");
while (i < input.length) {
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.append(String.fromCharCode(chr1));
if (enc3 != 64) {
output.append(String.fromCharCode(chr2));
}
if (enc4 != 64) {
output.append(String.fromCharCode(chr3));
}
}
return output.toString();
}
function msgWin(msg,w,h,params)
{
var winl = (screen.width - w ) / 2;
var wint = (screen.height - h) / 2;
var parm = "width=" + w + ",height=" + h + ",top=" + wint + ",left=" + winl + params;
win3 = window.open("","12345" + num,parm);
num = num + 1;
win3.document.writeln(msg);
win3.focus();
}
function Remover(valor,valor2)
{
var resp = confirm("Remover certificado n. " + valor + " do arquivo " + valor2 + " ?");
if (resp){
document.getElementById('msgs').innerHTML = '';
Remover_Certificado(valor,valor2);
Lista_de_Certificados();
}
}
function Submete_Cas(id,msg)
{
if(document.getElementById('file').value != ''){
var resp = confirm(msg);
if (resp){
document.getElementById(id).submit();
}
else{
document.getElementById('file').value = '';
}
}
else{
alert('Selecione um arquivo valido( .pem, .der, .cer .pfx, .p7b');
}
}
function Salvar_arq(id,msg)
{
var resp = confirm(msg);
if (resp){
document.getElementById(id).submit();
}
}
function Remover_Certificado(valor,valor2)
{
//verifica se o browser tem suporte a ajax11
try
{
ajax1 = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
try
{
ajax1 = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex)
{
try
{
ajax1 = new XMLHttpRequest();
}
catch(exc)
{
alert("Esse browser não tem recursos para uso do ajax1");
ajax1 = null;
}
}
}
//se tiver suporte ajax1
if(ajax1)
{
ajax1.open("POST", "manut_certs.php", true);
ajax1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax1.onreadystatechange = function()
{
if(ajax1.readyState == 4 )
{
if(ajax1.responseXML)
{
var arqx = processa_remover_certificado(ajax1.responseXML);
}
else
{
//caso não seja um arquivo XML emite a mensagem abaixo
//alert('Nao foi possivel remover o certificado(M01).');
}
}
}
//passa o código do certificado desejado...
var params = "id=" + valor + '&arquivo=' + valor2;
ajax1.send(params);
}
}
function processa_remover_certificado(obj)
{
var dataArray = obj.getElementsByTagName("certificados");
//total de elementos contidos na tag
if(dataArray.length > 0)
{
if (navigator.userAgent.match('MSIE'))
{
var conteudo = dataArray[0].text;
}
else
{
var conteudo = dataArray[0].textContent;
}
if(conteudo.substr(0,2) == 'OK')
{
alert('Certificado removido de ' + conteudo.substr(2) + '.');
var path3 = conteudo.substr(2);
}
else
{
alert('Certificado nao removido de ' + conteudo.substr(0,4));
var path3 = conteudo.substr(2);
}
}
else
{
//caso o XML volte vazio, printa a mensagem abaixo
alert('Nao foi possivel remover o certificado(M02).');
var path3 = '';
}
return path3;
}
function Um_Certificado(valor,valor2)
{
if(valor.length < 2) {
return;
}
//verifica se o browser tem suporte a ajax3
try
{
ajax3 = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
try
{
ajax3 = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex)
{
try
{
ajax3 = new XMLHttpRequest();
}
catch(exc)
{
alert("Esse browser não tem recursos para uso do ajax3");
ajax3 = null;
}
}
}
//se tiver suporte ajax3
if(ajax3)
{
titulo = valor;
ajax3.open("POST", "certs_xml.php", true);
ajax3.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax3.onreadystatechange = function()
{
//após ser processado - chama função processa_um_certificado que vai varrer os dados
if(ajax3.readyState == 4 )
{
if(ajax3.responseXML)
{
processa_um_certificado(ajax3.responseXML);
}
else
{
//caso não seja um arquivo XML emite a mensagem abaixo
msg = 'Não foi possível obter os dados solicitados(1).' + '