Index: tahel/Murachi-pre/pruebaFinalPre.html
===================================================================
--- tahel/Murachi-pre/pruebaFinalPre.html	(revision 12e6ddfee29d519fc7145296321f0c5a05d646aa)
+++ tahel/Murachi-pre/pruebaFinalPre.html	(revision 12e6ddfee29d519fc7145296321f0c5a05d646aa)
@@ -0,0 +1,981 @@
+<!DOCTYPE html>
+<!-- release v4.1.8, copyright 2014 - 2015 Kartik Visweswaran -->
+<html lang="es">
+    <head> <!--Inicio del head  -->
+        <meta charset="UTF-8"/>
+        <link rel="stylesheet" href="css/jquery.Jcrop.css" type="text/css" />
+
+        <script type="text/javascript" src="js/jquery.min.js"></script>
+        <script type="text/javascript" src="js/hwcrypto-legacy.js"></script>
+        <script type="text/javascript" src="js/hwcrypto.js"></script>
+        <script type="text/javascript" src="js/hex2base.js"></script>
+        <script type="text/javascript" src="js/forge.min.js"></script>
+        <script type="text/javascript" src="js/ajaxSetup.js"></script>
+        <script src="js/jquery.Jcrop.js"></script>
+        
+        
+        <script type="text/javascript" charset="utf-8">
+            if (location.protocol != 'https:'){
+                location.href = 'https:' + window.location.href.substring(window.location.protocol.length);
+            }else{
+                var urlActiva = "https://"+window.location.hostname;
+            }
+            var jcrop_api;
+            $(document).ready(function() {
+                $.ajaxSetup({
+                    error:function(x,e){
+                        if(x.status==0){
+                            alert('Está fuera de línea!!\n Por favor chequee su conexión.');
+                        }else if(x.status==404){
+                            alert('La URL solicitada no fue encontrada.');
+                        }else if(x.status==500){
+                            alert('Error interno de servidor.');
+                        }else if(e=='parsererror'){
+                            alert('Error.\nSolicitud de interpretación de cadena JSON inválida.');
+                        }else if(e=='timeout'){
+                            alert('Tiempo de espera alcanzado.');
+                        }else {
+                            alert('Error desconocido.\n'+x.responseText);
+                        }
+                    }
+                });
+                $("#botonEnvia").click(enviaFormulario);
+                $("#botonCertificadoTarjeta").click(obtieneCertificado);
+                $("#botonPK12").click(cargaP12);
+                $("#botonImagen").click(cargaImagen);
+                $("#botonEstadisticas").click(verificaEstadisticas);
+                $("#botonSubeVerifica").click(cargaVerifica);
+                $('#tablaImagen').css("display","none");
+                $("input[name=tipoPos]").click(cambioTipoPos)
+                descargarArchivo =  downQuery;
+            });
+            function showCoords(c){
+                var alto = parseInt($('#imagenPrevia').attr("height").replace("px",""));
+                $("#llx").val(c.x);
+                $("#lly").val(((alto-c.y)-c.h));
+                $("#urx").val(c.w);
+                $("#ury").val(c.h);
+            };
+
+            var descargarArchivo;
+            function ejecutaDescarga(){
+                var opciones = new Object();
+                opciones.onCompletado = solicitudCompletada;
+                opciones.onSend = antesEnvioSolicitud;
+                opciones.onExito = exitoSolicitud;
+                opciones.onProgreso = muestraProgreso;
+                opciones.tipoResultado="binary";
+                opciones.id="1";
+                descargarArchivo.dArchivo($(this).attr("linkDescarga"),opciones);
+            }
+            
+            function muestraProgreso(evt,xhr){
+                $("#progresoDescarga").html(evt.lengthComputable+"<br>");
+                if (evt.lengthComputable) {
+                    var percentComplete = evt.loaded / evt.total;
+                    $("#progresoDescarga").html(percentComplete.toFixed(2).replace(".",",")+" %");
+                }else{
+                    $("#progresoDescarga").html("Progreso solo<br>");
+                }
+            }
+            function errorSolicitud(xhr, ajaxOptions, errorArrojado) {
+                $("#progresoDescarga").append("Error");
+                $("#progresoDescarga").append("<br>");
+                $("#progresoDescarga").append(xhr.responseText);
+                $("#progresoDescarga").append("<br>");
+                $("#progresoDescarga").append(errorArrojado);
+                $("#progresoDescarga").append("<br>");
+
+            }
+            function antesEnvioSolicitud(evt,opciones) {
+                console.log("antesEnvioSolicitud")
+                console.log(opciones.id);
+                $("#progresoDescarga").html("Iniciando descarga");
+                //$("#progresoDescarga").html("antesEnvioSolicitud")
+            }
+            function solicitudCompletada(evt,state) {
+                console.log("solicitudCompletada");
+                console.log(evt.opciones.id)
+                $("#progresoDescarga").html("");
+                //$("#progresoDescarga").html("solicitudCompletada");
+            }
+            function exitoSolicitud(data, status, xhr) { 
+                if(data){
+                    //$("#progresoDescarga"+"B").append("Objetivo: " + xhr.opciones.url + "<br>");
+                    var nombreArchivo = descargarArchivo.obtieneNombre(xhr);
+                    //$("#progresoDescarga"+"B").append("Archivo: " + nombreArchivo + "<br>");
+                    var downloadUrl = URL.createObjectURL(data);
+                    if(xhr.opciones.id=="1"){
+                        var a = document.createElement("a");
+                        a.href = downloadUrl;
+                        a.download = nombreArchivo;
+                        document.body.appendChild(a);
+                        a.click();
+                    }/*else{
+                        var a = document.createElement("img");
+                        a.src = downloadUrl;
+                        document.body.appendChild(a);
+                    }*/
+                }
+                $("#progresoDescarga"+"B").append("exitoSolicitud 2<br>");
+            }
+            
+            var certificadoActivo;
+            var almacenDigitalActivo=false;
+            function obtieneCertificado(){
+                window.hwcrypto.getCertificate({lang: "en"}).then(function(response) {
+                    var cert = response;
+                    certificadoActivo = cert;
+                    console.log("Using certificate:\n" + hexToPem(response.hex));
+                    console.log("Using certificate(HEX):\n" + response.hex);
+                    if(totalArchivos.length>0){
+                        $("button[name^='botonFirma-'").attr("disabled",false);
+                    }
+                });
+            }
+            
+            var fileIdActivo;
+            function enviaFormulario(){
+                for(var n =0;n<$("#file-sign")[0].files.length;n++){
+                    var formData = new FormData();
+                    formData.append("upload", $("#file-sign")[0].files[n]);
+                    //alert(urlActiva+"/Murachi/0.4/archivos/");
+                    $.ajax({            
+                        url: urlActiva+"/Murachi/0.4/archivos/",
+                        type: "post",
+                        dataType: "json",
+                        data: formData,
+                        xhr: function() {
+                                var myXhr = $.ajaxSettings.xhr();
+                                if(myXhr.upload){
+                                    myXhr.upload.addEventListener('progress',progressUpload, false);
+                                }
+                                return myXhr;
+                        },
+                        cache: false,
+                        contentType: false,
+                        processData: false,
+                        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
+                        success: function(response) {
+                            $("#respuesta").html("");
+                            for(var key in response) {
+                                $("#respuesta").html($("#respuesta").html()+"<br>"+response[key])
+                                console.log(key);
+                            }
+                            $("input[name=tipoPos]").attr("checked",false);
+                            incluyeArchivo(response);
+                            console.log(response)
+                            if(jcrop_api != null){
+                                jcrop_api.destroy();
+                            }
+                            $('#tablaImagen').css("display","none");
+                        },								
+                            error: function(jqXHR, textStatus, errorThrown){
+                                console.log('error: ' + textStatus);
+                                //var responseText = jQuery.parseJSON(jqXHR.responseText);
+                                console.log('ajax error function: ' + jqXHR.responseText);
+                                $("#respuesta").html("error function: " + jqXHR.responseText);
+                            }
+                    })
+                }
+            }
+            function progressUpload(e){
+                if(e.lengthComputable){
+                    var max = e.total;
+                    var current = e.loaded;
+
+                    var Percentage = (current * 100)/max;
+                    console.log(Percentage);
+
+
+                    if(Percentage >= 100)
+                    {
+                       // process completed
+                        $("#progresoCarga").html("100 % (Carga completada)");
+                    }else{
+                        $("#progresoCarga").html((Percentage.toFixed(2).replace(".",","))+" %");
+                        
+                    }
+                }  
+            }
+            
+            function buscaPos(cod){
+                var obj = new Array();
+                var alto = parseInt($('#imagenPrevia').attr("height").replace("px",""));
+                var ancho = parseInt($('#imagenPrevia').attr("width").replace("px",""));
+                var anchoFirma = parseInt($('#urx').val());
+                var altoFirma = parseInt($('#ury').val());
+                obj["alto"] = altoFirma;
+                obj["ancho"] = anchoFirma;
+                if(cod==1){
+                    obj["x"] = 0;
+                    obj["y"] = (alto-altoFirma);
+                }else if(cod==2){
+                    obj["y"] = (alto-altoFirma);
+                    obj["x"] = ((ancho/2)-(anchoFirma/2));
+                }else if(cod==3){
+                    obj["y"] = (alto-altoFirma);
+                    obj["x"] = ((ancho)-anchoFirma);
+                }else if(cod==4){
+                    obj["x"] = 0;
+                    obj["y"] = ((alto/2)-(altoFirma/2));
+                }else if(cod==5){
+                    obj["y"] = ((alto/2)-(altoFirma/2));
+                    obj["x"] = ((ancho/2)-(anchoFirma/2));
+                }else if(cod==6){
+                    obj["y"] = ((alto/2)-(altoFirma/2));
+                    obj["x"] = (ancho-anchoFirma);
+                }else if(cod==7){
+                    obj["x"] = 0;
+                    obj["y"] = 0;
+                }else if(cod==8){
+                    obj["y"] = 0;
+                    obj["x"] = ((ancho/2)-(anchoFirma/2));
+                }else if(cod==9){
+                    obj["y"] = 0;
+                    obj["x"] = (ancho-anchoFirma);
+                }
+                
+                return obj;
+            }
+            
+            function cambioTipoPos(){
+                if(jcrop_api != null){
+                    jcrop_api.destroy();
+                }
+                if($(this).val()!=3){
+                    $('#tablaImagen').css("display","none");
+                    dimensionesActuales=null;
+                }else{
+                    var objArchivo = $("input[name=idArchivo]:checked");
+                    dimensionesActuales = new Array();
+                    dimensionesActuales["alto"] = objArchivo.attr("alto");
+                    dimensionesActuales["ancho"] = objArchivo.attr("ancho");
+                    dimensionesActuales["paginas"] = objArchivo.attr("paginas");
+                    
+                    $('#tablaImagen').css("display","block");
+                    $('#tablaImagen').attr("width",dimensionesActuales["ancho"]+"px");
+                    $('#tablaImagen').attr("style","border:1px solid #000000");
+                    $('#imagenPrevia').attr("width",dimensionesActuales["ancho"]+"px");
+                    $('#imagenPrevia').attr("height",dimensionesActuales["alto"]+"px");
+                    $('#imagenPrevia').Jcrop({
+                        onChange: showCoords,
+                        onSelect: showCoords,
+                        bgColor:     'black',
+                        bgOpacity:   .4
+                        },function(){
+                        jcrop_api = this;
+                      })
+                }
+            }
+            var dimensionesActuales;
+            function cambiaArchivo(){
+                if(jcrop_api != null){
+                    jcrop_api.destroy();
+                }
+                $('#tablaImagen').css("display","none");
+                
+            }
+            var hashtype = "SHA-256";
+            var lang = "eng";
+            
+            function procesaIndividual(){
+                    var cert = certificadoActivo;
+                    /*
+                    var fileId = fileIdActivo;
+                    var fileId = "7778827d-1e20-4e78-a49e-79f7862ec44d";
+                    */
+                    //console.log("Using certificate:\n" + hexToPem(response.hex));
+                    var continua = true;
+                    var mensajeContinua = "";
+                    var archivoEstimado = $(this).attr("id").replace("botonFirma-","");
+                    if($("input[name=fimaTarjeta]:checked").val()== undefined){
+                        if($("input[name=idArchivo]:checked").val()== archivoEstimado){
+                            if(!cert && !almacenDigitalActivo){
+                                alert("Debe seleccionar el certificado para firmar");
+                            //console.log("cert: "+ cert.hex);
+                            }else{
+                                var firmaVisible = false;
+                                if($("input[name=firmaVisible]:checked").val()==1){
+                                    firmaVisible = true;
+                                }
+                                if($("input[name=idArchivo]:checked").val()==undefined){
+                                    alert("Debe seleccionar primero un archivo");
+                                }else{
+                                    
+                                    if($("input[name=tipoPos]:checked").val()==undefined || $("input[name=tipoPos]:checked").val()==1){
+                                        var alto = parseInt($('#imagenPrevia').attr("height").replace("px",""));
+                                        var ancho = parseInt($('#imagenPrevia').attr("width").replace("px",""));
+                                        
+                                        $("#llx").val(0);
+                                        $("#lly").val(alto-50);
+                                        $("#urx").val(100);
+                                        $("#ury").val(50);
+                                        
+                                    }else if($("input[name=tipoPos]:checked").val()==2){
+                                        if($("input[name=tipoPos]:checked").val()==undefined){
+                                            continua = false;
+                                            mensajeContinua = "Debe seleccionar la posición de la firma";
+                                        }else{
+                                            var pos = buscaPos($("input[name=posFijo]:checked").val());
+                                            $("#llx").val(pos["x"]);
+                                            $("#lly").val(pos["y"]);
+                                            $("#urx").val(pos["ancho"]);
+                                            $("#ury").val(pos["alto"]);
+                                        }
+                                    }else if($("input[name=tipoPos]:checked").val()==3){
+                                        var api = jcrop_api;
+                                        //alert(api.tellSelect().x+"|"+api.tellSelect().y+"|"+($('#imagenPrevia').attr("width"))+"|"+($('#imagenPrevia').attr("height")-api.tellSelect().y)+"|"+api.tellSelect().w+"|"+api.tellSelect().h)
+                                        var alto = parseInt($('#imagenPrevia').attr("height").replace("px",""));
+                                        $("#llx").val(api.tellSelect().x);
+                                        $("#lly").val(((alto-api.tellSelect().y)-api.tellSelect().h));
+                                        $("#urx").val(api.tellSelect().w);
+                                        $("#ury").val(api.tellSelect().h);
+                                    }
+                                    if(!cert){
+                                        var certificado = "";
+                                    }else{
+                                        certificado = cert.hex;
+                                    }
+                                    var muestraImagen = false;
+                                    if($("input[name=muestraImagen]:checked").val()==1){
+                                        muestraImagen = true;
+                                    }
+                                    var muestraImagenSola = false;
+                                    if($("input[name=muestraImagenSola]:checked").val()==1){
+                                        muestraImagenSola = true;
+                                    }
+                                    var ancho = 100;
+                                    if(!isNaN(parseInt($("#urx").val()))){
+                                        ancho = parseInt($("#urx").val());
+                                    }
+                                    var alto = 100;
+                                    if(!isNaN(parseInt($("#ury").val()))){
+                                        alto = parseInt($("#ury").val());
+                                    }
+                                    var posX = 100;
+                                    if(!isNaN(parseInt($("#llx").val()))){
+                                        posX = parseInt($("#llx").val());
+                                    }
+                                    var posY = 100;
+                                    if(!isNaN(parseInt($("#lly").val()))){
+                                        posY = parseInt($("#lly").val());
+                                    }
+                                    var urlFirma = urlActiva+"/Murachi/0.4/archivos/pdfsTest";
+                                    var firmaPK12 = false;
+                                    var clavePCKS12 ="";
+                                    var imagenAdjunta = "";
+                                    if(imagenId!=null){
+                                        imagenAdjunta = imagenId;
+                                    }
+                                    if($("input[name=firmaTarjeta]:checked").val()==2){
+                                        if($("#clavePCKS12").val()!=""){
+                                            urlFirma = urlActiva+"/Murachi/0.4/archivos/pdfsPk";
+                                            firmaPK12 = true;
+                                            clavePCKS12 = $("#clavePCKS12").val();
+                                        }else{
+                                            continua = false;
+                                            mensajeContinua = "Debe ingresar la clave del almacén digital para poder continuar"
+                                        }
+                                    }
+                                    if(continua){
+                                        //alert(urlFirma)
+                                        var fileId = $("input[name=idArchivo]:checked").val();
+                                        var parameters = JSON.stringify({
+                                            "fileId":fileId,
+                                            "certificate":certificado,
+                                            "reason":$("#razon").val(),
+                                            "location":$("#lugar").val(),
+                                            "contact":$("#contacto").val(),
+                                            "pk12":firmaPK12,
+                                            "clavePCKS12":clavePCKS12,
+                                            "almacenPCKS12":almacenId,
+                                            "signatureVisible":firmaVisible,
+                                            "lly":posY,
+                                            "llx":posX,
+                                            "ury":posY+alto,
+                                            "urx":posX+ancho,
+                                            "muestraImagen":muestraImagen,
+                                            "muestraImagenSola":muestraImagenSola,
+                                            "imagen":imagenAdjunta
+                                            });
+
+                                        // ahora llamar al ajax de obtener la resena del pdf
+                                        $.ajax({
+                                            url: urlFirma,
+                                            type: "post",
+                                            dataType: "json",
+                                            data: parameters,
+                                            contentType: "application/json",
+                                            headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
+                                            success: function(data, textStatus, jqXHR){
+                                                for(var key in data) {
+                                                    $("#respuesta").html($("#respuesta").html()+"<br>"+data[key])
+                                                    console.log(key);
+                                                }
+                                                console.log(data)
+                                                $("#botonFirma-"+archivoEstimado).attr("disabled",true);
+                                                if(!almacenDigitalActivo){
+
+                                                }else{
+                                                    var linkDescarga = "<a href=\""+urlActiva+"/Murachi/0.4/archivos/descargas/" + data['fileId'] +"\">descargar archivo firmado</a>";
+                                                    $("#respuesta").html($("#respuesta").html()+"<br>"+linkDescarga);
+                                                    idFileDescargaActual = data['fileId'];
+                                                    console.log(data);
+                                                    $("#botonDescarga-"+archivoEstimado).attr("linkDescarga",urlActiva+"/Murachi/0.4/archivos/descargas/" + data['fileId']);
+                                                    $("#botonDescarga-"+archivoEstimado).attr("disabled",false);
+                                                }
+
+
+                                            }, function(err) {
+                                                var error;
+                                                if(err == "Error: user_cancel") {
+                                                    console.log("getCertificate() failed: El usuario cancelo la operación"    );
+                                                    error = "El usuario cancelo la operación"; 
+                                                 }      
+                                                 else if(err == "Error: no_certificates") {
+                                                     console.log("getCertificate() failed: No hay certificado disponible")    ;
+                                                     error = "No hay certificado disponible";
+                                                 }
+                                                 else if(err == "Error: no_implementation") {
+                                                     console.log("getCertificate() failed: No hay soporte para el manejo del certificado");
+                                                     error = "No hay soporte para el manejo del certificado";
+                                                }
+                                                $("#respuesta").html("getCertificate() failed: " + error);
+                                           }
+                                        });
+                                    }else{
+                                        alert(mensajeContinua);
+                                    }
+                                }
+                            }
+                        }else{
+                            alert("Debe seleccionar este archivo para poder firmarlo")
+                        }
+                    }else{
+                        alert("Debe seleccionar un método de firma")
+                    }
+            }
+            function reemplazaCadena(busca,cambia,texto){
+                while(texto.indexOf(busca)>-1){
+                    texto = texto.replace(busca,cambia);
+                }
+                return texto;
+            }
+            var totalArchivos = new Array();
+            function incluyeArchivo(response){
+                var idArchivo = response["fileId"];
+                totalArchivos.push(idArchivo);
+                var archivoNuevo = '<tr id="archivo-'+idArchivo+'">'+$("#archivoPrototipo").html()+'</tr>';
+                archivoNuevo = reemplazaCadena('/-idArchivo-/',idArchivo,archivoNuevo);
+                archivoNuevo = reemplazaCadena('/-ancho-/',response["ancho"],archivoNuevo);
+                archivoNuevo = reemplazaCadena('/-alto-/',response["alto"],archivoNuevo);
+                archivoNuevo = reemplazaCadena('/-paginas-/',response["paginas"],archivoNuevo);
+                archivoNuevo = reemplazaCadena('/-valorArchivo-/',idArchivo,archivoNuevo);
+                archivoNuevo = reemplazaCadena('/-valorRadioArchivo-/',idArchivo,archivoNuevo);
+                //archivoNuevo = reemplazaCadena('"montoUnitarioArticulo-"','"montoUnitarioArticulo-'+indice+'"',archivoNuevo);
+                //archivoNuevo = reemplazaCadena('"montoTotalArticulo-"','"montoTotalArticulo-'+indice+'"',archivoNuevo);
+                //archivoNuevo = reemplazaCadena('"cantidadArticulo-n-oferta"','"cantidadArticulo-'+indice+'-oferta"',archivoNuevo);
+                //archivoNuevo = reemplazaCadena('"montoUnitarioArticulo-n-oferta"','"montoUnitarioArticulo-'+indice+'-oferta"',archivoNuevo);
+                //archivoNuevo = reemplazaCadena('"montoTotalArticulo-n-oferta"','"montoTotalArticulo-'+indice+'-oferta"',archivoNuevo);
+                //archivoNuevo = reemplazaCadena('"botonEliminaArticulo-"','"botonEliminaArticulo-'+indice+'"',archivoNuevo);
+                //archivoNuevo = reemplazaCadena('"marcaArticulo-"','"marcaArticulo-'+indice+'"',archivoNuevo);
+                //archivoNuevo = reemplazaCadena('"exoneraArticulo-"','"exoneraArticulo-'+indice+'"',archivoNuevo);
+
+                //$("#tablaArticulos").append(archivoNuevo);
+                $(archivoNuevo).insertBefore("#totalArchivos");
+                $("input[name=idArchivo]").unbind('click');
+                $("input[name=idArchivo]").click(cambiaArchivo);
+                $("#botonFirma-"+idArchivo).click(procesaIndividual);
+                $("#botonDescarga-"+idArchivo).click(ejecutaDescarga);
+                var activo = false;
+                if(!certificadoActivo && !almacenDigitalActivo){
+                    activo = true;
+                }
+                $("#botonFirma-"+idArchivo).attr("disabled",activo);
+                $("#botonDescarga-"+idArchivo).attr("disabled",true);
+                $("#sinArchivos").css("display","none");
+                $("#archivo-"+idArchivo).css("display","block");
+                $("#cantArchivos").html(totalArchivos.length+" Archivos por firma")
+            }
+            var almacenId = "";
+            function cargaP12(){
+                if($("#p12")[0].files.length>0){
+                    var formData = new FormData();
+                    formData.append("upload", $("#p12")[0].files[0]);
+                    $.ajax({            
+                        url: urlActiva+"/Murachi/0.4/archivos/p12",
+                        type: "post",
+                        dataType: "json",
+                        data: formData,
+                        xhr: function() {
+                                var myXhr = $.ajaxSettings.xhr();
+                                if(myXhr.upload){
+                                    myXhr.upload.addEventListener('progress',progressUpload, false);
+                                }
+                                return myXhr;
+                        },
+                        cache: false,
+                        contentType: false,
+                        processData: false,
+                        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
+                        success: function(response) {
+                            $("#respuesta").html("");
+                            for(var key in response) {
+                                $("#respuesta").html($("#respuesta").html()+"<br>"+response[key])
+                                console.log(key);
+                            }
+                            almacenDigitalActivo = true;
+                            almacenId = response["fileId"];
+                            $("#mensajeP12").html("Archivo almacen digital PCKS12 cargado")
+                            if(totalArchivos.length>0){
+                                $("button[name^='botonFirma-'").attr("disabled",false);
+                            }
+                            console.log(response)
+
+                        },								
+                            error: function(jqXHR, textStatus, errorThrown){
+                                console.log('error: ' + textStatus);
+                                //var responseText = jQuery.parseJSON(jqXHR.responseText);
+                                console.log('ajax error function: ' + jqXHR.responseText);
+                                $("#respuesta").html("error function: " + jqXHR.responseText);
+                            }
+                    })
+                }else{
+                    alert("Debe seleccionar un almacén digital de firma primero")
+                }
+            }
+            var imagenActiva = false;
+            var imagenId = "";
+            function cargaImagen(){
+                if($("#imagen")[0].files.length>0){
+                    var formData = new FormData();
+                    formData.append("upload", $("#imagen")[0].files[0]);
+                    $.ajax({            
+                        url: urlActiva+"/Murachi/0.4/archivos/imagenAdjunta",
+                        type: "post",
+                        dataType: "json",
+                        data: formData,
+                        xhr: function() {
+                                var myXhr = $.ajaxSettings.xhr();
+                                if(myXhr.upload){
+                                    myXhr.upload.addEventListener('progress',progressUpload, false);
+                                }
+                                return myXhr;
+                        },
+                        cache: false,
+                        contentType: false,
+                        processData: false,
+                        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
+                        success: function(response) {
+                            $("#respuesta").html("");
+                            for(var key in response) {
+                                $("#respuesta").html($("#respuesta").html()+"<br>"+response[key])
+                                console.log(key);
+                            }
+                            imagenActiva = true;
+                            imagenId = response["fileId"];
+                            $("#mensajeImagen").html("Archivo imagen cargado")
+                            console.log(response)
+
+                        },								
+                            error: function(jqXHR, textStatus, errorThrown){
+                                console.log('error: ' + textStatus);
+                                //var responseText = jQuery.parseJSON(jqXHR.responseText);
+                                console.log('ajax error function: ' + jqXHR.responseText);
+                                $("#respuesta").html("error function: " + jqXHR.responseText);
+                            }
+                    })
+                }else{
+                    alert("Debe seleccionar un archivo digital primero")
+                }
+            }
+            
+            function cargaVerifica(){
+                if($("#archivoVerifica")[0].files.length>0){
+                    var formData = new FormData();
+                    formData.append("upload", $("#archivoVerifica")[0].files[0]);
+                    $.ajax({            
+                        url: urlActiva+"/Murachi/0.4/archivos/",
+                        type: "post",
+                        dataType: "json",
+                        data: formData,
+                        xhr: function() {
+                                var myXhr = $.ajaxSettings.xhr();
+                                if(myXhr.upload){
+                                    myXhr.upload.addEventListener('progress',progressVerifica, false);
+                                }
+                                return myXhr;
+                        },
+                        cache: false,
+                        contentType: false,
+                        processData: false,
+                        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
+                        success: function(response) {
+                            $("#mensajeVerifica").html("Archivo subido correctamente");
+                            for(var key in response) {
+                                $("#mensajeVerifica").html($("#mensajeVerifica").html()+"<br>"+response[key])
+                                console.log(key);
+                            }
+                            console.log(response)
+
+                        },								
+                            error: function(jqXHR, textStatus, errorThrown){
+                                console.log('error: ' + textStatus);
+                                //var responseText = jQuery.parseJSON(jqXHR.responseText);
+                                console.log('ajax error function: ' + jqXHR.responseText);
+                                $("#respuesta").html("error function: " + jqXHR.responseText);
+                            }
+                    })
+                }else{
+                    alert("Debe seleccionar un archivo para verificar primero")
+                }
+            }
+            
+            function progressVerifica(e){
+                if(e.lengthComputable){
+                    var max = e.total;
+                    var current = e.loaded;
+
+                    var Percentage = (current * 100)/max;
+                    console.log(Percentage);
+
+
+                    if(Percentage >= 100)
+                    {
+                       // process completed
+                        $("#progresoVerifica").html("100 % (Carga completada)");
+                    }else{
+                        $("#progresoVerifica").html((Percentage.toFixed(2).replace(".",","))+" %");
+                        
+                    }
+                }  
+            }
+            
+            function verificaEstadisticas(){
+                $.ajax({            
+                        url: urlActiva+"/Murachi/0.4/archivos/estadisticas",
+                        type: "get",
+                        dataType: "json",
+                        xhr: function() {
+                                var myXhr = $.ajaxSettings.xhr();
+                                if(myXhr.upload){
+                                    myXhr.upload.addEventListener('progress',progressUpload, false);
+                                }
+                                return myXhr;
+                        },
+                        cache: false,
+                        contentType: false,
+                        processData: false,
+                        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
+                        success: function(response) {
+                            $("#respuesta").html("");
+                            for(var key in response) {
+                                $("#respuesta").html($("#respuesta").html()+"<br>"+response[key])
+                                console.log(key);
+                            }
+                            console.log(response)
+
+                        },								
+                            error: function(jqXHR, textStatus, errorThrown){
+                                console.log('error: ' + textStatus);
+                                //var responseText = jQuery.parseJSON(jqXHR.responseText);
+                                console.log('ajax error function: ' + jqXHR.responseText);
+                                $("#respuesta").html("error function: " + jqXHR.responseText);
+                            }
+                    })
+            }
+        </script>
+
+	</head> 
+
+
+    <body>
+        <table width="1200" border="0" cellspacing="2" cellpadding="5" id="tablaArticulos" align="center">
+            <tr>
+                <td colspan="4" style="text-align:center;">SELECCIONE UN ARCHIVO PARA COLOCARLO</td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:left;"><input id="file-sign" type="file" data-min-file-count="1" name="upload" multiple ></td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:left;"><button type="button" class="button" name="botonEnvia" id="botonEnvia">Cargar archivos</button></td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:left;" id="progresoCarga">&nbsp;</td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:left;" id="progresoDescarga">&nbsp;</td>
+            </tr>
+            
+            <tr>
+                <td colspan="4" style="text-align:center;">ARCHIVOS INCLUIDOS PARA LA FIRMA</td>
+            </tr>
+            <td colspan="4" id="sinArchivos" align="center" valign="middle" height="40">
+                <strong>No se han ingresado items aún</strong>
+            </td>
+            <tr id="archivoPrototipo" style="display:none;">
+                <td style="text-align:left;" width="20"><input type="hidden" value="/-valorArchivo-/" id="/-idArchivo-/" name="/-idArchivo-/"/><input type="radio" id="idArchivo" name="idArchivo" value="/-valorRadioArchivo-/" ancho="/-ancho-/" alto="/-alto-/" paginas="/-paginas-/"/></td>
+                <td style="text-align:left;" width="480">/-valorArchivo-/</td>
+                <td style="text-align:left;" width="150"><button type="button" class="button" name="botonFirma-/-idArchivo-/" id="botonFirma-/-idArchivo-/" disabled>Firma Archivo</button></td>
+                <td style="text-align:left;" width="180"><button type="button" class="button" name="botonDescarga-/-idArchivo-/" id="botonDescarga-/-idArchivo-/" disabled>Descarga Archivo</button></td>
+            </tr>
+            <tr id="totalArchivos">
+                <td colspan="4" style="text-align:center;"  id="cantArchivos">&nbsp;</td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                                    <table width="1200" border="0" cellspacing="2" cellpadding="5"  align="center">
+                        <tr>
+                <td style="text-align:left;">Razon: <input type="text" value="" id="razon" name="razon"/></td>
+                <td style="text-align:left;">Lugar: <input type="text" value="" id="lugar" name="lugar"/></td>
+                <td style="text-align:left;">Contacto: <input type="text" value="" id="contacto" name="contacto"/></td>
+                                        </tr>
+                    </table>
+                </td>
+            </tr>
+            
+            <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="firmaTarjeta" name="firmaTarjeta" value="1"/>Se firmará con tarjeta Smartcard
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    FIRMA CON TARJETA
+                </td>
+            </tr>
+            
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    <button type="button" class="button" name="botonCertificadoTarjeta" id="botonCertificadoTarjeta">Obtiene Certificado desde Tarjeta</button>
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    FIRMA CON CERTIFICADO DIGITAL (.P12)
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="firmaTarjeta" name="firmaTarjeta" value="2" checked/>Se firmará con almacén digital
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:left;">
+                    <input id="p12" type="file" data-min-file-count="1" name="p12">
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;" id="mensajeP12">
+                    &nbsp;
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align:left;" colspan="2" width="500">
+                    CLAVE DEL ALMACEN: <input type="password" value="" id="clavePCKS12" name="clavePCKS12"/>
+                </td>
+                <td style="text-align:left;" width="150">&nbsp;</td>
+                <td style="text-align:left;" width="150">&nbsp;</td>
+                <td style="text-align:left;" width="150">&nbsp;</td>
+            </tr>
+            
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    <button type="button" class="button" name="botonPK12" id="botonPK12">Carga PKCS 12</button>
+                </td>
+            </tr>
+            
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    &nbsp;
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="firmaVisible" name="firmaVisible" value="1" checked/>Firma Visible
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                
+                                    <table width="1200" border="0" cellspacing="2" cellpadding="5"  align="center">
+                        <tr>
+                <td style="text-align:left;" colspan="300" width="500">Pos X<br><input type="text" value="0" id="llx" name="llx"/></td>
+                <td style="text-align:left;" width="300">Pos Y<br><input type="text" value="0" id="lly" name="lly"/></td>
+                <td style="text-align:left;" width="300">Ancho<br><input type="text" value="100" id="urx" name="urx"/></td>
+                <td style="text-align:left;" width="300">Alto<br><input type="text" value="50" id="ury" name="ury"/></td>
+                                        </tr>
+                </table>
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="firmaVisible" name="firmaVisible" value="2"/>Firma no Visible
+                </td>
+            </tr>
+            
+            
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    IMÁGEN ADJUNTA AL MENSAJE
+                </td>
+            </tr>
+            
+            <tr>
+                <td colspan="4" style="text-align:left;"><input id="imagen" name="imagen" type="file" data-min-file-count="1" name="min"></td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;" id="mensajeImagen">
+                    &nbsp;
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    <button type="button" class="button" name="botonImagen" id="botonImagen">Carga Imágen</button>
+                </td>
+            </tr>
+            
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    CARACTERÍSTICAS A MOSTRAR
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="muestraImagen" name="muestraImagen" value="1"/>Muestra Imágen
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="muestraImagen" name="muestraImagen" value="2" checked/>No muestra imágen
+                </td>
+            </tr>
+            
+            <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="muestraImagenSola" name="muestraImagenSola" value="1"/>Muestra imagen sola
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="muestraImagenSola" name="muestraImagenSola" value="2" checked/>No muestra imagen sola
+                </td>
+            </tr>
+           <tr>
+                <td colspan="4" style="text-align:center;">
+                    POSICIONAMIENTO
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="tipoPos" name="tipoPos" value="1" checked/>Por defecto
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="tipoPos" name="tipoPos" value="2"/>Predeterminado
+                </td>
+            </tr>
+            
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                   <table width="120" border="0" cellspacing="2" cellpadding="5" align="center">
+                     <tr>
+                        <td style="text-align:center;" width="40">
+                            <input type="radio" id="posFijo" name="posFijo" value="1"/>
+                        </td>
+                         <td style="text-align:center;" width="40">
+                            <input type="radio" id="posFijo" name="posFijo" value="2"/>
+                        </td>
+                         <td style="text-align:center;" width="40">
+                            <input type="radio" id="posFijo" name="posFijo" value="3"/>
+                        </td>
+                    </tr>  
+                    <tr>
+                        <td style="text-align:center;" width="40">
+                            <input type="radio" id="posFijo" name="posFijo" value="4"/>
+                        </td>
+                         <td style="text-align:center;" width="40">
+                            <input type="radio" id="posFijo" name="posFijo" value="5"/>
+                        </td>
+                         <td style="text-align:center;" width="40">
+                            <input type="radio" id="posFijo" name="posFijo" value="6"/>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td style="text-align:center;" width="40">
+                            <input type="radio" id="posFijo" name="posFijo" value="7"/>
+                        </td>
+                         <td style="text-align:center;" width="40">
+                            <input type="radio" id="posFijo" name="posFijo" value="8"/>
+                        </td>
+                         <td style="text-align:center;" width="40">
+                            <input type="radio" id="posFijo" name="posFijo" value="9"/>
+                        </td>
+                    </tr>
+                    </table>
+                </td>
+            </tr>
+                        <tr>
+                <td style="text-align:left;" width="20" colspan="4">
+                    <input type="radio" id="tipoPos" name="tipoPos" value="3"/>Personalizado
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    <table width="1200" border="0" cellspacing="2" cellpadding="5" id="tablaImagen" align="center">
+                        <tr>
+                            <td>
+                                <img src="img/pixelBlanco.jpg" width="0" height="0" style="border:0px solid #000000;" id="imagenPrevia"/>
+                            </td>
+                        </tr>
+                    </table>
+                </td>
+            </tr>
+            
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    &nbsp;
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    &nbsp;
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    VERIFICACIÓN DE FIRMAS
+                </td>
+            </tr>
+            
+            <tr>
+                <td colspan="4" style="text-align:left;"><input id="archivoVerifica" name="archivoVerifica" type="file" data-min-file-count="1" name="min"></td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;" id="progresoVerifica">
+                    &nbsp;
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;" id="mensajeVerifica">
+                    &nbsp;
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    <button type="button" class="button" name="botonSubeVerifica" id="botonSubeVerifica">Carga Archivo a Verificar</button>
+                </td>
+            </tr>
+            
+            <tr>
+                <td colspan="4" style="text-align:center;">
+                    <button type="button" class="button" name="botonEstadisticas" id="botonEstadisticas">Obtiene estadisticas</button>
+                </td>
+            </tr>
+            
+        </table>
+        
+	</body>
+</html>
