1var divSignatura; 2var divTSA; 3var MostraOnlyNom; 4 5function isChromeBrowser() { 6 //if ($.browser.webkit && !$.browser.opera && !$.browser.msie && !$.browser.mozilla ) { 7 var userAgent = navigator.userAgent.toLowerCase(); 8 if (userAgent.indexOf("chrome")!==-1) { 9 return true; 10 } 11 //} 12 13 return false; 14} 15 16function getChromeVersion () { 17 var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./); 18 19 return raw ? parseInt(raw[2], 10) : false; 20} 21 22function VerificaCarrega(divid) { 23 // Mostra el requadre d'espera 24 $('.VerificaTxt',divid).hide(); 25 $('.VerificaWait',divid).show(); 26 $('.VerificaResposta',divid).html(''); 27 $(divid).removeClass("signaErr"); 28 $(divid).removeClass("signaOk"); 29 $(divid).show("normal"); 30} 31 32function VerificaMostraResposta(divid, text, ok) { 33 $('.VerificaWait',divid).hide(); 34 $(divid).removeClass("signaErr"); 35 $(divid).removeClass("signaOk"); 36 37 if (ok) 38 $(divid).addClass("signaOk"); // Mostra les dades i canvia el color de la finestra a verd 39 else 40 $(divid).addClass("signaErr"); // Mostra un missateg d'error i canvia el color de la finestra a vermell 41 42 $('.VerificaResposta',divid).html(text); 43 $('.VerificaTxt',divid).show(); 44} 45 46/* Parametres: divSignatura_param -> Div que conté el retorn de la Signatura 47 divTSA_param -> Div que conté el retorn del TSA 48 MostraOnlyNom_param -> Si true en la resposta de la signatura només mostra el nom del signatari 49*/ 50function Verifica(divSignatura_param, divTSA_param, MostraOnlyNom_param) { 51 divSignatura = divSignatura_param; 52 divTSA = divTSA_param; 53 MostraOnlyNom = MostraOnlyNom_param; 54 55 // Validació de la Signatura Digital 56 var formSigna = window.document.forms["formSigna"]; 57 if (formSigna) { 58 // Comprova que el registre tingui Signatura 59 if (formSigna.Signatura) { 60 if (formSigna.Signatura.value!="") { 61 VerificaCarrega($("#" + divSignatura).get(0)); 62 var optionsValidaSignatura = { 63 success: ValidaSignatura_Retorn, 64 dataType: 'xml', 65 type: 'POST' 66 }; 67 $('#formSigna').ajaxSubmit(optionsValidaSignatura); 68 } 69 } 70 } 71 72 // Validació del TSA 73 var formTSA = window.document.forms["formTSA"]; 74 if (formTSA) { 75 // Comprova que el registre tingui Signatura 76 if (formTSA.Segell) { 77 if (formTSA.Segell.value!="") { 78 VerificaCarrega($("#" + divTSA).get(0)); 79 var optionsValidaTSA = { 80 success: ValidaTSA_Retorn, 81 dataType: 'xml', 82 type: 'POST' 83 }; 84 $('#formTSA').ajaxSubmit(optionsValidaTSA); 85 } 86 } 87 } 88 89 return false; 90} 91 92// Recupera el resultat de la validació de la signatura 93function ValidaSignatura_Retorn(responseXML) { 94 // Per Chrome evita el dss\\: 95 var tagSign = isChromeBrowser()?"SignerIdentity":"dss\\:SignerIdentity"; 96 97 // Obté les dades de la persona que ha signat el document 98 var Signador = $(responseXML).find(tagSign).get(0); 99 if (Signador) { 100 var Signatura = $(Signador).text().replace(/,/g, "<br/>"); 101 if (MostraOnlyNom) { 102 Signatura = Signatura.substring(Signatura.indexOf('CN=')+3 ,Signatura.indexOf('<br/>')); 103 } 104 VerificaMostraResposta($("#" + divSignatura).get(0), Signatura, true); 105 } else 106 VerificaMostraResposta($("#" + divSignatura).get(0), txt_msg_Err_Signatura, false); 107} 108 109// Obte la resposta de la validació 110function ValidaTSA_Retorn(responseXML) { 111 //alert(xml2Str(responseXML)); 112 113 // Obté les dades del temps del TSA 114 // Per Chrome evita el dss\\: 115 var tagTSA = isChromeBrowser()?"SigningTime":"dss\\:SigningTime"; 116 117 if(isChromeBrowser()){ 118 var cversion = getChromeVersion(); 119 if(cversion!==false && cversion>=60){ 120 tagTSA = "dss\\:SigningTime"; 121 // console.log(cversion); 122 } 123 } 124 125 // Obté les dades del temps del TSA 126 var TSA = $(tagTSA, responseXML).text(); 127 if (TSA!="") { 128 var data = DateFromISOString(TSA); // Funció de la llibreria ostynscormtime.js 129 130 //var data_txt = data.getUTCDate() + "/" + (data.getUTCMonth()+1) + "/" + data.getUTCFullYear() + " " + data.getUTCHours() + ':' + data.getUTCMinutes() + ' GMT' + (-(data.getTimezoneOffset()/60)>0?'+':'') + -(data.getTimezoneOffset()/60); 131 var data_txt = formatDate(data,"dd/MM/yyyy HH:mm:ss"); // formatDate de calendari.js 132 133 VerificaMostraResposta($("#" + divTSA).get(0), data_txt, true); 134 } else 135 VerificaMostraResposta($("#" + divTSA).get(0), txt_msg_Err_TSA, false); 136} 137 138/** 139 * Obtenció de certificats 140 */ 141// Si parametre embedded = true, reb el retorn dels alias de les claus del magatzem 142function onReturnCerts(value) { 143 $("#carregant-certificats").hide(); 144 $("#alies-certificats").show(); 145 $("#valida-certificat").show(); 146 147 148 // Omplim el combobox amb els alies retornats per l'applet 149 var select = document.getElementById('alies-certificats'); 150 if (value[0].length!=1) { 151 for (var i=0;i<value.length;i++) { 152 var elOptNew = document.createElement("option"); 153 elOptNew.text = value[i]; 154 elOptNew.value = value[i]; 155 try { 156 select.add(elOptNew); 157 } catch(Ex) { 158 select.appendChild(elOptNew); 159 } 160 } 161 } else { 162 var elOptNew = document.createElement('option'); 163 elOptNew.text = value; 164 elOptNew.value = value; 165 try { 166 select.add(elOptNew); 167 } catch(Ex) { 168 select.appendChild(elOptNew); 169 } 170 } 171} 172 173// Invoca la signatura de l'applet, passant com a parametre l'à lies seleccionat al combobox 174function sign() { 175 // recuperem lalies seleccionat 176 var alies = document.getElementById('alies-certificats').value; 177 178 if (alies=="" || alies==null) { 179 return false; 180 } 181 182 // Invoquem l'applet passant l'alies seleccionat 183 try { 184 document.appletcatcert.signFromJS(alies); 185 } catch (Exception) { 186 // chrome, safari i opera 187 document.appletcatcert[1].signFromJS(alies); 188 } 189} 190function onMultiSignOK(signature) { 191 //alert('Signatura generada per l\'event final:\n' + signature); 192} 193function onSignCancel() { 194 //alert('Procés cancel·lat per l\'usuari'); 195} 196function onSignError(msg) { 197 var fomcert = document.forms['certificat']; 198 var err_msg = fomcert.txt_error_obtenint_certificats.value; 199 $("#carregant-certificats").html(err_msg + ' ' + msg); 200} 201// En cas que hi hagi algun error durant la carrega 202function onLoadError(msg) { 203 var fomcert = document.forms['certificat']; 204 var err_msg = fomcert.txt_error_carrega_applet.value; 205 $("#carregant-certificats").html(err_msg + ' ' + msg); 206} 207 208 209// Envia el certificat a verificar 210function onSignOK(signature) { 211 //alert('Signatura generada per l\'event final:\n' + signature); 212 213 var xmlSignatura = $.parseXML(signature); 214 215 // Per Chrome evita el ds\\: 216 var tagCert = isChromeBrowser()?"X509Certificate":"ds\\:X509Certificate"; 217 218 // Obté les dades del temps del TSA 219 var certificat = $(tagCert, xmlSignatura).text(); 220 if (certificat!="") { 221 var fomcert = document.forms['certificat']; 222 fomcert.elements['certBase64'].value = certificat; 223 fomcert.submit(); 224 } 225 return false; 226} 227 228/** 229 * Crida per setejar de forma dinamica amb js els parametres de lapplet. 230**/ 231function setAppletParam(name,value) { 232 try{ 233 document.appletcatcert.set(name,value); 234 }catch(Exception){ 235 // chrome, safari i opera 236 document.appletcatcert[1].set(name,value); 237 } 238}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.