Index: prototipo/static/js/functions/DraggableSortable.js
===================================================================
--- prototipo/static/js/functions/DraggableSortable.js	(revision 0500480bf9d3ee826bcc58cebd95f0cf8a2ba024)
+++ prototipo/static/js/functions/DraggableSortable.js	(revision 327fd70136b3c8788c1162cbc241aff5115f23a9)
@@ -28,9 +28,9 @@
         if (num == 1){
           $("#firma_visible #Formato_Visible .text").hide();
-          $('#dataX').val(0);
-          $('#dataY').val(0);
+          VALOR_X = 0;
+          VALOR_Y = 0;
         }else{
-          $('#dataX').val(ui.position['left']);
-          $('#dataY').val(ui.position['top']);
+          VALOR_X = parseInt(ui.position['left']);
+          VALOR_Y = parseInt(ui.position['top']);
         }
         
Index: prototipo/static/js/functions/firmarDocumentoPdf.js
===================================================================
--- prototipo/static/js/functions/firmarDocumentoPdf.js	(revision 8d3737919347062d9f5f586dcb1a406e20ff35af)
+++ prototipo/static/js/functions/firmarDocumentoPdf.js	(revision 327fd70136b3c8788c1162cbc241aff5115f23a9)
@@ -1,13 +1,7 @@
-
-$("#form").on('submit', function() {
-
+$("#Form-Format-Visible").on('submit', function() {
 	//var formData = new FormData(document.getElementById("form"));
 	var formData = new FormData();
-   
-    
-    formData.append("upload", $("#file-to-upload2")[0].files[0] );
-
-    console.log(formData);
-    console.log($(this));
+  
+    formData.append("upload", $("#file-sign-ft_Vble")[0].files[0]);
 
     $.ajax({
@@ -22,134 +16,120 @@
 		headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
 		success: function(response) {
-				//alert(JSON.stringify(response));
-				var html = manejoJsonPDF(JSON.stringify(response));
-				//alert(html);
-				//alert("ver respuesta")
-				document.getElementById("respuesta").innerHTML = html;
+			//alert(JSON.stringify(response));
+			var html = manejoJsonPDF(JSON.stringify(response));
+			document.getElementById("respuesta").innerHTML = html;
+			
+			// identificador del archivo en el servidor
+			var fileId = response.fileId.toString();
+			var cert;
+
+			window.hwcrypto.getCertificate({lang: "en"}).then(function(response) {
+		  		var cert = response;
 				
-				// identificador del archivo en el servidor
-				var fileId = response.fileId.toString();
+				var parameters = JSON.stringify({
+					"fileId":fileId,
+					"certificate":cert.hex,
+					"reason":"Certificado",
+					"location":"CENDITEL",
+					"contact":"582746574336",
+					"signatureVisible":"true",
+					"page": VALOR_PAGE,
+					"coord_x": VALOR_X,
+					"coord_y": VALOR_Y
+					});
+				
+				// ahora llamar al ajax de obtener la resena del pdf
+				$.ajax({
+					type: 'POST',
+					contentType: 'application/json',				
+					//url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs",
+					url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs",
+					dataType: "json",
+					data: parameters,		
+					headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
+					success: function(data, textStatus, jqXHR){
+						var json_x = data;
+						var hash = json_x['hash']; 
+						//alert("hash recibido del servidor "+hash);
+						
+						var hashtype = "SHA-256";
+						var lang = "eng";
+						
+						window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(signature) {
+										        		
+			        		$.ajax({
+								type: 'POST',
+								contentType: 'application/json',
+								//url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs/resenas",
+								url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs/resenas",
+								dataType: 'json',
+								data: JSON.stringify({"signature":signature.hex}),
+								headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
+								success: function(data, textStatus, jqXHR){
 
+									alert('Archivo firmado correctamente: ' + data['signedFileId']);
+									
+									var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
+									//alert(linkToDownload);
+									document.getElementById("respuesta").innerHTML = linkToDownload;  														
+									
+								},
+								error: function(jqXHR, textStatus, errorThrown){
+									alert('error en pdfs/resenas: ' + textStatus);
+									$("#respuesta").html("error en pdfs/resenas: " + textStatus);
+								}
+							});
+			        					        		
+			      			}, function(err) {
+				        		log_text("sign() failed: " + err);
 
-				var cert;
-				window.hwcrypto.getCertificate({lang: "en"}).then(function(response) {
-			  		var cert = response;
+								var error;
+                                log_text("sign() failed: " + err);
+                                if(err == "Error: user_cancel") {
+                                    alert("sign() failed: El usuario cancelo la operación");
+                                    error = "El usuario cancelo la operación"; 
+                                 }      
+                                 else if(err == "Error: no_certificates") {
+                                     alert("sign() failed: No hay certificado disponible");
+                                     error = "No hay certificado disponible";
+                                 }
+                                 else if(err == "Error: no_implementation") {
+                                     alert("sign() failed: No hay soporte para el manejo del certificado");
+                                     error = "No hay soporte para el manejo del certificado";
+                                 }
 
+				        		//alert("sign() failed: " + err);
+				        		$("#respuesta").html("sign() failed: " + error);
+			    	  	});
+						
+					},								
+					error: function(jqXHR, textStatus, errorThrown){
+						//alert('error: ' + textStatus);
+						//var responseText = jQuery.parseJSON(jqXHR.responseText);
+						alert('ajax error function: ' + jqXHR.responseText);
+						$("#respuesta").html("error function: " + jqXHR.responseText);
+					}
+					
+				});
+				
+			}, function(err) {
+	      			log_text("getCertificate() failed: " + err);
+                    var error;
+                    if(err == "Error: user_cancel") {
+                        alert("getCertificate() failed: El usuario cancelo la operación"    );
+                        error = "El usuario cancelo la operación"; 
+                     }      
+                     else if(err == "Error: no_certificates") {
+                         alert("getCertificate() failed: No hay certificado disponible")    ;
+                         error = "No hay certificado disponible";
+                     }
+                     else if(err == "Error: no_implementation") {
+                         alert("getCertificate() failed: No hay soporte para el manejo del certificado");
+                         error = "No hay soporte para el manejo del certificado";
+					}
+	      			//alert("getCertificate() failed: " + err);
+	      			$("#respuesta").html("getCertificate() failed: " + error);
+	    		});
 
-					
-					var parameters = JSON.stringify({
-						"fileId":fileId,
-						"certificate":cert.hex,
-						"reason":"Certificado",
-						"location":"CENDITEL",
-						"contact":"582746574336",
-						"signatureVisible":"true"
-						// agregar aqui los parametros x,y,pagina
-						});
-					
-					// ahora llamar al ajax de obtener la resena del pdf
-					$.ajax({
-						type: 'POST',
-						contentType: 'application/json',				
-						//url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs",
-						url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs",
-						dataType: "json",
-						data: parameters,		
-						headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
-						success: function(data, textStatus, jqXHR){
-							var json_x = data;
-							var hash = json_x['hash']; 
-							//alert("hash recibido del servidor "+hash);
-							
-							var hashtype = "SHA-256";
-							var lang = "eng";
-							
-							window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(signature) {
-								
-
-
-				        		
-				        		$.ajax({
-									type: 'POST',
-									contentType: 'application/json',
-									//url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs/resenas",
-									url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs/resenas",
-									dataType: 'json',
-									data: JSON.stringify({"signature":signature.hex}),
-									headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
-									success: function(data, textStatus, jqXHR){
-
-										alert('Archivo firmado correctamente: ' + data['signedFileId']);
-										
-										
-										var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
-										//alert(linkToDownload);
-										document.getElementById("respuesta").innerHTML = linkToDownload;  
-										
-
-																						
-										
-									},
-									error: function(jqXHR, textStatus, errorThrown){
-										alert('error en pdfs/resenas: ' + textStatus);
-										$("#respuesta").html("error en pdfs/resenas: " + textStatus);
-									}
-								});
-				        					        		
-				      			}, function(err) {
-					        		log_text("sign() failed: " + err);
-
-									var error;
-                                    log_text("sign() failed: " + err);
-                                    if(err == "Error: user_cancel") {
-                                        alert("sign() failed: El usuario cancelo la operación");
-                                        error = "El usuario cancelo la operación"; 
-                                     }      
-                                     else if(err == "Error: no_certificates") {
-                                         alert("sign() failed: No hay certificado disponible");
-                                         error = "No hay certificado disponible";
-                                     }
-                                     else if(err == "Error: no_implementation") {
-                                         alert("sign() failed: No hay soporte para el manejo del certificado");
-                                         error = "No hay soporte para el manejo del certificado";
-                                     }
-
-					        		//alert("sign() failed: " + err);
-					        		$("#respuesta").html("sign() failed: " + error);
-				    	  	});
-							
-						},								
-						error: function(jqXHR, textStatus, errorThrown){
-							//alert('error: ' + textStatus);
-							//var responseText = jQuery.parseJSON(jqXHR.responseText);
-							alert('ajax error function: ' + jqXHR.responseText);
-							$("#respuesta").html("error function: " + jqXHR.responseText);
-						}
-						
-				
-					});
-					
-					
-					
-				}, function(err) {
-		      			log_text("getCertificate() failed: " + err);
-                        var error;
-                        if(err == "Error: user_cancel") {
-                            alert("getCertificate() failed: El usuario cancelo la operación"    );
-                            error = "El usuario cancelo la operación"; 
-                         }      
-                         else if(err == "Error: no_certificates") {
-                             alert("getCertificate() failed: No hay certificado disponible")    ;
-                             error = "No hay certificado disponible";
-                         }
-                         else if(err == "Error: no_implementation") {
-                             alert("getCertificate() failed: No hay soporte para el manejo del certificado");
-                             error = "No hay soporte para el manejo del certificado";
-						}
-		      			//alert("getCertificate() failed: " + err);
-		      			$("#respuesta").html("getCertificate() failed: " + error);
-		    		});
-				
-				
     	    },
      		error: function(response) {
@@ -159,9 +139,4 @@
 			}
     });
-	
-
-
-
-
 
 });
Index: prototipo/static/js/functions/manejoJsonPDF.js
===================================================================
--- prototipo/static/js/functions/manejoJsonPDF.js	(revision 327fd70136b3c8788c1162cbc241aff5115f23a9)
+++ prototipo/static/js/functions/manejoJsonPDF.js	(revision 327fd70136b3c8788c1162cbc241aff5115f23a9)
@@ -0,0 +1,92 @@
+function manejoJsonPDF(json) {
+	
+	var fielJsonEs = {fileId: "Identificador único del archivo en el servidor", fileExist:"El archivo se cargó exitosamente en el servidor", mimeType:"Tipo MIME del archivo verificado", error:"Extension not supported. En caso de que el archivo sea diferente de PDF y BDOC", numberOfSignatures:"Número de firmas existentes en el archivo", signatures:"Lista de firmas", signatureType:"Tipo de firma de archivo PDF", signedOn:"Fecha en que se realiza la firma", integrityCheck:"Chequea la integridad de la firma", timeStamp:"Estampilla de tiempo", reason:"Razón de la firma", location:"Ubicación donde se realiza la firma", alternativeNameOfTheSigner:"Nombre alternativo del firmante", signerCertificateValidFrom:"Fecha de inicio de validez del certificado", signerCertificateStillValid:"El certificado todavía está válido", signerCertificateHasExpired:"El certificado expiró", signatureCoversWholeDocument:"La firma abarca todo el documento PDF", filterSubtype:"Tipo de subfiltro: /adbe.pkcs7.sha1, /adbe.pkcs7.detached", signerCertificateSubject:"Sujeto firmante", signerCertificateValidAtTimeOfSigning:"El certificado es válido en el momento de la firma", encryptionAlgorithm:"Algoritmo de cifrado", timeStampService:"Servicio de estampillado de tiempo", digestAlgorithm:"Algoritmo hash (reseña)", certificatesVerifiedAgainstTheKeyStore:"Certificado verificado contra el repositorio de certificados confiables", documentRevision:"Número de revisión del documento PDF", nameOfTheSigner:"Nombre del firmante", totalDocumentRevisions:"Número total de revisiones del documento PDF", contactInfo:"Información de contacto del firmante", timeStampVerified:"Estampilla de tiempo verificada", signerCertificateIssuer:"Emisor del certificado firmante", signerCertificateValidTo:"Fecha de fin de validez del certificado", signerCertificateSerial:"BDOC: Serial del certificado del firmante", signatureProfile:"BDOC: Perfil de la firma", signatureMethod:"BDOC: Algoritmo de firma utilizado", signatureId:"BDOC: identificador de la firma", signatureSigningTime:"Fecha en que se realiza la firma", signerCertificateIsValid:"El certificado todavía está válido", signatureValidationException:"BDOC: Exepciones de la validación de la firma", isValid:"BDOC: Firma electrónica válida", signerCertificateSubjectName:"Nombre del firmante", containerValidation:"BDOC: Especifica si el contenedor posee una estructura válida", numberOfDataFiles:"BDOC: Cantidad de archivos incluidos en el contenedor BDOC", dataFiles:"BDOC: Lista de archivos incluidos en el contenedor", name:"BDOC: Nombre del archivo incluido en el contenedor", dataFileSize:"BDOC: Tamaño del archivo incluido en el contenedor", filename:"BDOC: Nombre del archivo incluido en el contenedor", mediaType:"BDOC: Tipo MIME del archivo incluido en el contenedor"};
+	var objVarVerifique = JSON.parse(json);
+	var signatures = ''; //variable que maneja las firmas
+	var fields = ''; //variable que maneja los campos de la firma
+	var title = '<h2> Información de la firma electronica </h2> \n ';
+	var head = '<div class=\'container\'> \n <table id=\' \' class=\'display table table-striped table-bordered\' cellspacing=\'0\' width=\'100%\' > \n <thead> \n <tr>\n <th>#</th>\n <th>Campo</th>\n <th>Descripción</th> \n </tr>\n </thead>\n <tbody> \n';
+	var footer = '</tbody> \n </table> \n </div> \n </div>';
+	var html = title;
+	var numsign = 0; 
+    var htmltemp = '';
+    var objxEsp = '';
+
+	$.each(objVarVerifique, function(idx, obj) {
+		
+		if(idx == "error") {
+			html = '<h4> Extensión no soportada, verifique el archivo </h4>';       
+            return(html);
+        }
+            
+		if(idx == "numberOfSignatures"){
+			numsign = obj;
+			html += '<h4>' + fielJsonEs[idx] + ': ' + obj +' </h4>\n <br><br>';
+		}
+			
+		if(idx == "signatures") { 
+			signatures = obj; //se almacena la(s) cabecera(s) de las firmas
+		}
+	});
+				
+	var contsing = 1; // variable que indica la firma donde esta posicionado 
+				
+	<!-- recorre las firmas signatures -->
+
+	$.each(signatures, function(idx, obj) {	
+		html += '<h4> Información de la firma: '+contsing+'<h4> \n';
+		html += head;
+		var contfiels = 8; // variable que indica el campo de la firma -- arranca en el campo 6 porque necesitamos que muestre de primero las 5 campos requeridos
+		fields = obj; // variable que almacena los campos de la firma
+		$.each(fields, function(id, objx) {
+
+			<!-- Recorreo los campos de la firma -->
+	        //alert('entro firma: ' + fielJsonEs[id]);
+	        if(fielJsonEs[id]=='Nombre del firmante') {
+	            //alert('entro campos de firma');
+				html += '<tr>\n<td>'+'1'+'</td>\n<td>' + fielJsonEs[id] + '</td>\n<td>' + objx +' </td>\n</tr>\n';
+				//contfiels++;
+			}
+            else if(fielJsonEs[id]=='Fecha en que se realiza la firma') {
+                //alert('entro campos de firma');
+                html += '<tr>\n<td>'+'2'+'</td>\n<td>' + fielJsonEs[id] + '</td>\n<td>' + objx +'     </td>\n</tr>\n';
+                //contfiels++;
+            }
+			else if(fielJsonEs[id]=='Chequea la integridad de la firma') {
+			    //alert('entro campos de firma');
+			    if(objx == 'true') { objxEsp = 'verdadero';}                                                                                                  else {objxEsp='falso';}
+			    html += '<tr>\n<td>'+'3'+'</td>\n<td>' + fielJsonEs[id] + '</td>\n<td>' + objxEsp +'         </td>\n</tr>\n';
+				//contfiels++;
+			}
+			else if(fielJsonEs[id]=='El certificado todavía está válido') {
+			     if(objx == 'true') { objxEsp = 'verdadero';}                                                                                                  else {objxEsp='falso';}
+			     html += '<tr>\n<td>'+'4'+'</td>\n<td>' + fielJsonEs[id] + '</td>\n<td>' + objxEsp +'             </td>\n</tr>\n';
+			     //contfiels++;
+			}  
+			else if(fielJsonEs[id]=='Fecha de inicio de validez del certificado') {
+			     html += '<tr>\n<td>'+'5'+'</td>\n<td>' + fielJsonEs[id] + '</td>\n<td>' + objx +'             </td>\n</tr>\n';
+			     //contfiels++;
+			}  	
+			else if(fielJsonEs[id]=='Fecha de fin de validez del certificado') {
+			     html += '<tr>\n<td>'+'6'+'</td>\n<td>' + fielJsonEs[id] + '</td>\n<td>' + objx +'             </td>\n</tr>\n';
+			     //contfiels++;
+			} 
+			else if(fielJsonEs[id]=='El certificado es válido en el momento de la firma') {
+			     if(objx == 'true') { objxEsp = 'verdadero';}                                                                                                  else {objxEsp='falso';}
+			     html += '<tr>\n<td>'+'7'+'</td>\n<td>' + fielJsonEs[id] + '</td>\n<td>' + objxEsp +'             </td>\n</tr>\n';
+			     //contfiels++;
+			}  
+	        else { if(objx == 'true' ) { htmltemp += '<tr>\n<td>'+contfiels+'</td>\n<td>' + fielJsonEs[id] + '</td>\n<td    >' + 'verdadero' +' </td>\n</tr>\n';}
+	        	else if(objx == 'false')  { htmltemp += '<tr>\n<td>'+contfiels+'</td>\n<td>' + fielJsonEs[id    ] + '</td>\n<td    >' + 'falso' +' </td>\n</tr>\n';}
+	        	else { htmltemp += '<tr>\n<td>'+contfiels+'</td>\n<td>' + fielJsonEs[id] + '</td>\n<td>' + objx +' </td>\n</tr>\n'; }
+				contfiels++;
+			}     
+		});
+		contsing++;	
+        html += htmltemp;
+        htmltemp = '';              
+		html += footer;
+	});
+	
+	return(html);
+}
