var num = 0; var titulo = ''; 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 Um_Certificado(valor) { if(valor.length < 2) { return; } //verifica se o browser tem suporte a ajax try { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); } catch(ex) { try { ajax = new XMLHttpRequest(); } catch(exc) { alert("Esse browser não tem recursos para uso do Ajax"); ajax = null; } } } //se tiver suporte ajax if(ajax) { titulo = valor; ajax.open("POST", "certs_xml.php", true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.onreadystatechange = function() { //enquanto estiver processando...emite a msg de carregando //if(ajax.readyState == 1) // { // //idOpcao.innerHTML = "Obtendo Certificados ...! "; // } //após ser processado - chama função processa_um_certificado que vai varrer os dados if(ajax.readyState == 4 ) { if(ajax.responseXML) { processa_um_certificado(ajax.responseXML); } else { //caso não seja um arquivo XML emite a mensagem abaixo msg = 'Não foi possível obter dados do certificado.' + '

'; parms = ",scrollbars=1"; msgWin(msg,450,200,parms) } } } //passa o código do certificado desejado... var params = "id="+valor; ajax.send(params); } } function processa_um_certificado(obj) { // Tab com tags que deve exibir sho o nome.... var TBtags = new Array( "EMISSOR_CAMINHO_COMPLETO", "SUBJECT" , "CRLDISTRIBUTIONPOINTS" , "KEYUSAGE" ); //pega a tag certificado var dataArray = obj.getElementsByTagName("certificado"); //total de elementos contidos na tag if(dataArray.length > 0) { var novo = "" + titulo + "

Dados do certificado

"; //percorre o arquivo XML para extrair os dados for(var i = 0 ; i < dataArray.length ; i++) { var item = dataArray[i]; var cc = item.getElementsByTagName("*"); len = 0; for(var j = 0 ; j < cc.length ; j++) { //contéudo dos campos no arquivo XML var tag = cc[j].nodeName if(tag == "CA") continue; // skipa tag CA .... var xflag = 0; for(var iz = 0;iz< TBtags.length;iz++) { if(TBtags[iz] == tag) xflag = 1; } // Testa se deve exibir o valor da tag.. if(xflag ==1 ) { var nome = "" +tag +": "; } else { // Testa o browser para usar a propriedade correta ... if (navigator.userAgent.match('MSIE')) { var conteudo = cc[j].text; } else { var conteudo = cc[j].textContent; } if(conteudo == "1") { conteudo = "Sim."; } if(conteudo == "") { conteudo = "Não."; } switch(tag) { case "INICIO_VALIDADE": { var aux = conteudo.substr(0,4) + "/" + conteudo.substr(4,2) + "/" + conteudo.substr(6,2) + " - " + conteudo.substr(8,2) + ":" + conteudo.substr(10,2) + ":" + conteudo.substr(12,2) + " GMT"; conteudo = aux; break; } case "FIM_VALIDADE": { var aux = conteudo.substr(0,4) + "/" + conteudo.substr(4,2) + "/" + conteudo.substr(6,2) + " - " + conteudo.substr(8,2) + ":" + conteudo.substr(10,2) + ":" + conteudo.substr(12,2) + " GMT"; conteudo = aux; break; } default: { break; } } var nome = "" + tag +": " + conteudo; } novo = novo + nome + '
'; len = len + 24; } } msg = novo + '

'; } else { //caso o XML volte vazio, printa a mensagem abaixo msg = 'Não foi possível obter dados do certificado.' + '

'; len =200; } parms = ",scrollbars=1"; num = num + 1; msgWin(msg,450,len,parms) }