<%@page import="java.util.*,javax.sql.*,java.sql.*,javax.naming.*,java.text.*,
m05bClasses.m05bConexion, m05bClasses.m05bFirma.m05bFirmaInfoBean,
m05bClasses.m05bDokusi.m05bDokusiService, m05bClasses.m05bDokusi.models.T65BSignature,
m05bClasses.m05bDokusi.models.T65BDocument, java.io.BufferedOutputStream, java.io.OutputStream" %>

<%@include file="/mantenimientosJSP/includes/m05b.inc"%>
<!-- Para poder mostrar los caracteres especiales en los mensajes javascript -->
<%@page contentType="text/html; charset=UTF-8" %>

<!-- Fecha de creacion: (11/12/03) -->
<%	// _______________________________XLNETs______________________________________
	// Evaluar variable de session que indica si esta conectado a XLNets
	if (session.getAttribute("objetoSeguridad") == null)  {
		// Verificar que no ha transcurrido el tiempo de sesion (web.xml) %>
			<%@ include file="/m05bControlAcceso.inc"%>
<%	}
	String idAsignacion=(String)request.getParameter("IdAsignacion");
	String tipoFirma=(String)request.getParameter("TipoFirma");
	
	String strPersona = session.getAttribute("personaNombre").toString();
	String strDni = session.getAttribute("personaDni").toString();
%>
	<%@ include file="/m05bIdioma.inc"%>

<HTML>

<head>
	<title><%= res.getString("etTituloVisor")%></title>

	<link rel="stylesheet" href="<%=m05bConstantesPaginas.PATH_ESTILOS%>/m05bestilos.css" type="text/css">
	<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
	<META http-equiv="Pragma" content="no-cache">
	<META http-equiv="Control" content="no-cache">
	<META http-equiv="Expires" content="0">

	<script type="text/javascript">
		function descargarFirma() {
			var propiedades="left=50,top=100,width=100,height=100,scrollbars=yes";
		    var ventana ="m05bVisorDocumentoFirmaJsp.jsp"
						+ "?IdAsignacion=" + "<%=idAsignacion%>"
					  	+ "&TipoFirma=" + "<%=tipoFirma%>"
						+ "&DescargarFirma=" + "1";
		    window.open(ventana, "", propiedades);
		    return false;
		}

		function descargarPDF() {
			var propiedades="left=50,top=100,width=100,height=100,scrollbars=yes";
		    var ventana ="m05bVisorDocumentoFirmaJsp.jsp"
						+ "?IdAsignacion=" + "<%=idAsignacion%>"
					  	+ "&TipoFirma=" + "<%=tipoFirma%>"
						+ "&DescargarPDF=" + "1";
		    window.open(ventana, "", propiedades);
	   	    return false;
		}

		function abrirComprobarFirma() {
		    var ventana ="https://www6.euskadi.net/s06-15530x/es/r02fHorizontalSignatureSystemWar/R02FIndex.jsp";
		    window.open(ventana, "", "");
	   	    return false;
		}
	</script>
</head>

<BODY style="cursor: wait;" onLoad="javascript:document.body.style.cursor='default';return false;" onunload="document.body.style.cursor='wait';">

<%
	String estatico = "/parquemovil";
	String oid_dokusi = "";
	String version_dokusi = "";

	m05bFileLog miLog = new m05bFileLog();

	java.sql.Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
	try {
		m05bConexion miConex = new m05bConexion();
		conn = miConex.getConnection();

        String sSentencia = " SELECT OID_DOKUSI_103, VERSION_DOKUSI_103" + " FROM m05103t00 " +
                            " WHERE COD_ASIGNACION_103 = " + idAsignacion +
                    		" AND TIPO_FIRMA_103 = '" + tipoFirma + "'";
        miLog.addTraza(m05bConstantes.LOG_NO_USER , m05bConstantes.LOG_NO_SRC , "sSentencia: " + sSentencia, m05bConstantes.LOG_NIVEL_BAJO);
        pstmt = conn.prepareStatement(sSentencia);
		rs = pstmt.executeQuery();
        if (rs.next()) {
        	oid_dokusi = rs.getString("OID_DOKUSI_103");
        	version_dokusi = rs.getString("VERSION_DOKUSI_103");
		}
	} catch (Exception SQLException) {
		miLog.addTraza(SQLException);
	} finally {
         if (rs != null)
          rs.close();
         if (pstmt != null)
          pstmt.close();
         if (conn != null)
          conn.close();
	}

	m05bDokusiService dokusiWS = m05bDokusiService.getm05bDokusiService();
	T65BSignature[] firmas = null;
	T65BDocument documento = null;

	if (oid_dokusi != null && oid_dokusi != "") {
		//Obtenemos el documento y la firma de dokusi

		//Mostrar o descargar el PDF
		String mostrarPDF = request.getParameter("MostrarPDF");
		String descargarPDF = request.getParameter("DescargarPDF");
		if ((mostrarPDF != null && mostrarPDF.equals("1"))
		    || (descargarPDF != null && descargarPDF.equals("1"))) {
			documento = dokusiWS.recuperarDocumento(oid_dokusi, version_dokusi, strDni, strPersona);
			if (documento != null) {
				response.reset();
				OutputStream oOut=response.getOutputStream();
				BufferedOutputStream bOut=new BufferedOutputStream(oOut);

				response.setContentLength(documento.getContent().getContent().length);
				response.setContentType("application/pdf");
				if (descargarPDF != null && descargarPDF.equals("1")) {
					response.addHeader("Content-Disposition", "attachment; filename=documento.pdf");
				}

				bOut.write(documento.getContent().getContent());
				bOut.flush();
				bOut.close();
				response.flushBuffer();
			}
		} else {
			firmas = dokusiWS.recuperarFirmas(oid_dokusi, version_dokusi, strDni, strPersona);
	
			String descargarFirma = request.getParameter("DescargarFirma");
			if (descargarFirma != null && descargarFirma.equals("1")) {
				response.reset();
				OutputStream oOut=response.getOutputStream();
				BufferedOutputStream bOut=new BufferedOutputStream(oOut);
		
				response.setContentLength(firmas[0].getSignature().getBytes().length);
				response.setContentType("application/octet-stream");
				response.addHeader("Content-Disposition", "attachment; filename=firma.xml");
	
				bOut.write(firmas[0].getSignature().getBytes());
				bOut.flush();
				bOut.close();
				response.flushBuffer();
			}
		}
	}

	//Modif para validar docum definitivo
%>

	<%if (firmas != null && firmas.length > 0 &&
		  firmas[0].getSignature() != null && firmas[0].getSignature().length() > 0) { %>

		<div class="searchTitle2">
			<label>Si desea comprobar la firma del documento, puede descargarse los ficheros de la firma y el documento,</label>
			<a href="#" onclick="descargarFirma();">descargar firma</a><label>, </label>
			<a href="#" onclick="descargarPDF();">descargar PDF</a>
			<label>y hacer la comprobación en la siguiente url: </label>
			<br>
			<a href="#" onclick="abrirComprobarFirma();">https://www6.euskadi.net/s06-15530x/es/r02fHorizontalSignatureSystemWar/R02FIndex.jsp</a>
		</div>

		<br>

		<TABLE style="width: 100%">
			<tr>
				<td colspan="6" width="70%" valign="top" class="searchTitle"><%= res.getString("etDatosDeLaFirma")%></td>
			</tr>
			<tr>
				<td class="inputFieldTitle"><%= res.getString("etDNI")%></td>
			    <td class="inputFieldTitle"><%= res.getString("etNombre")%></td>
			    <td class="inputFieldTitle"><%= res.getString("etFechaFirma")%></td>
			</tr>
			<tr>
			    <td align="left"><INPUT class="inputFieldOblig" TYPE="TEXT" NAME="FechaSolicitud" readonly="readonly" VALUE="<%=firmas[0].getSignatureInfoList()[0].getSignerID()%>" size="12"/></td>
			    <td align="left"><INPUT class="inputFieldOblig" TYPE="TEXT" NAME="FechaSolicitud" readonly="readonly" VALUE="<%=firmas[0].getSignatureInfoList()[0].getSignerName()%>" size="40"/></td>
			    <td align="left"><INPUT class="inputFieldOblig" TYPE="TEXT" NAME="FechaSolicitud" readonly="readonly" VALUE="<%=firmas[0].getDate()%>" size="20"/></td>
			</tr>
		</TABLE>
	<%} %>

	<br>

	<TABLE style="width: 100%">
		<tr>
			<td width="70%" valign="top" class="searchTitle"><%= res.getString("etDocumento")%></td>
		</tr>
	    <tr>
	    	<td>
		    	<div id="visorDocumento" class="r01gClsVisorDocumento" style="height: 460px;">
					<iframe class="r01gClsDocumento"
						src="m05bVisorDocumentoFirmaJsp.jsp?IdAsignacion=<%=idAsignacion%>&TipoFirma=<%=tipoFirma%>&MostrarPDF=1"
						type="application/pdf"
						width="100%"
						height="100%">
					</iframe>
				</div>
			</td>
		</tr>
	</TABLE>

</BODY>
</HTML>