
<%@ page import="java.io.*,
                java.util.*,
                n38i.exe.N38Excepcion,
                n38i.exe.N38ConversionAInputStream,
                n38c.exe.N38API,
                org.apache.xpath.*,
                org.w3c.dom.*,
                javax.xml.parsers.DocumentBuilderFactory,
                javax.xml.parsers.DocumentBuilder"%>

<%

      if (request.getProtocol().equals ("HTTP/1.0"))
          response.setHeader ("Pragma", "no-cache");
          else
              if (request.getProtocol().equals ("HTTP/1.1"))
                response.setHeader ("Cache-Control", "no-cache");
      response.setDateHeader ("Expires", 0);

      String fusionUser = null;
      N38API n38APIObject= null;
      Document persona = null;
      String login = null;
      String filtroNombre = null;
      String nombre = null;
      String apellido = null; 
      boolean error = false;
      boolean rellamada = false;
      String n38Idioma = null;      
      
      
     String reqIdioma = null;
     String existeSesion = null;
     
     reqIdioma = request.getParameter ("n38Idioma");
     n38Idioma = (String)session.getAttribute ("n38Idioma");

     System.out.println ("Va a tratar idioma");
     if (((reqIdioma != null) && ("2".equals (reqIdioma))) && ((n38Idioma == null) || ("Cast".equals (n38Idioma))))
       {
        session.setAttribute ("n38Idioma","Eusk");
        existeSesion = "<b>Identifikaziorik gabeko saioa</b>";
        System.out.println ("Ha puesto idioma a Euskera");
       }
        else
            if (((reqIdioma != null) && ("1".equals (reqIdioma))) && ((n38Idioma == null) || ("Eusk".equals (n38Idioma))))
            {
             session.setAttribute ("n38Idioma","Cast");
             existeSesion = "<b>Sesión Anónima</b>";
             System.out.println ("Ha puesto idioma a Castellano");
            }

     if (existeSesion == null)
       {
        n38Idioma = (String)session.getAttribute ("n38Idioma");
        if (n38Idioma != null)
          {
           if (n38Idioma.equals ("Eusk"))
             existeSesion = "<b>Identifikaziorik gabeko saioa</b>";
             else
                 existeSesion = "<b>Sesión Anónima</b>";
          }
          else
              existeSesion = "<b>Identifikaziorik gabeko saioa</b>";
       }     
      
%>
<html>
<head>
   <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
   <link rel='stylesheet' href='/xlnets/includes/fusion/estilosFusion.css' type='text/css'/>
<%
      try 
          {
          
           //System.out.println ("parametro candado = " + request.getParameter ("candado"));          
          
           fusionUser = (String)session.getAttribute ("usuario");
           
           if (fusionUser == null)
             {
              System.out.println ("fusionUser == null");

              if (request.getParameter ("candado") != null)
                {
                 if (request.getParameter ("candado").equals ("true"))
                   {
                    DocumentBuilder dB = null;
                    DocumentBuilderFactory dBF = null;
                    dBF = DocumentBuilderFactory.newInstance ();
                    dB = dBF.newDocumentBuilder ();
                    //System.out.println ("va a parsear el string como document -> "/* + request.getParameter ("sesion")*/);
                    Document docSesion = dB.parse ((new N38ConversionAInputStream (request.getParameter ("sesion"))).getInputStream ());
                    //System.out.println("ha transformado el string en document");

                    n38APIObject = new N38API (docSesion);
                    docSesion = null;
                    login = n38APIObject.n38ItemSesion ("n38login")[0];
                    if (login != null)
                      {
                       session.setAttribute ("n38API", n38APIObject);
                       persona = n38APIObject.n38ItemObtenerPersonas ("uid=" + login);
                       filtroNombre = "/n38/elementos/elemento/parametro[@id=\"cn\"]/valor/text()";
                       apellido = XPathAPI.selectNodeList (persona, filtroNombre).item (0).getNodeValue ();                   
                       if (apellido != null)
                         {
                          StringTokenizer strtok = new StringTokenizer (apellido, ",", false);
                          apellido = strtok.nextToken ();
                          fusionUser = strtok.nextToken () + " " + apellido;
                          session.setAttribute ("usuario", fusionUser);
                         }
                         else
                              error = true;                   
                      }
                      else
                          error = true;
                   }
                   else
                       error = true;
                }
                else     
                    {
                     //System.out.println ("va a intentar script");
                    %>

<SCRIPT LANGUAGE="JavaScript"> 

function llamar ()
{
 var resultado = candado ();
 
 window.document.Usuario.sesion.value = resultado;

 if (resultado.indexOf ("</motivo>") > 0)
   {
    //alert ("resultado error -> " + resultado);
    window.document.Usuario.candado.value = "false";
   }
   else
       {
        //alert ("resultado -> " + resultado);
        window.document.Usuario.candado.value = "true";
       }

 window.document.Usuario.submit ();
 
 return;
}
</SCRIPT>
<SCRIPT LANGUAGE="VBScript">
    Function candado ()
	dim api
   	dim docsesion

	set api = Nothing
        set docsesion = Nothing
	on error resume next
        set api = CreateObject ("N38d.N38API")
        set docsesion = api.n38ItemSesion ("n38xmlsesion")
        //alert (docsesion.xml)
        	if err Then
	          //alert ("no se pudo crear el objeto")
                  candado = ""
	        End if 
        candado = docsesion.xml
    End Function
</SCRIPT>
                         
                  <%
                     rellamada = true;
                    }
             }       
             
          }
             
          catch (N38Excepcion n38ex)
            {
             System.out.println ("N38EXCEPCION AL CREAR EL OBJETO N38API");
             System.out.println ("N38EXCEPCION -> " + n38ex.toString ());               
             System.out.println ("N38EXCEPCION -> " + n38ex.getCodigo ());
             error = true;
            }

          catch (Exception ex)
            {
             //System.out.println ("EXCEPCION AL CREAR EL OBJETO N38API");
             //System.out.println ("EXCEPCION -> " + ex.toString ());
             //System.out.println ("EXCEPCION -> " + ex.getMessage ());
             System.out.println ("No se ha podido crear Objeto N38API");
             error = true;
            }


		
	%>       
</head>
<body leftmargin="0" topmargin="0" <%if (rellamada) {%>LANGUAGE="JavaScript" onLoad="llamar()"<%}%>>
  <font class='destacados'>
<%if (rellamada)
    {%><form name="Usuario" action="N38UserFusion.jsp" method="post">
         <table>
           <tr>
             <td>
               <input name="candado" type="Hidden" value="true">
             </td>
             <td>
               <input name="sesion" type="Hidden" value="vacio">
             </td>
           </tr>
         </table>
       </form>
  <%}
    else
        {
         if (error)
           fusionUser = existeSesion;%>
         <table cellpadding="0" cellspacing="0" width='100%'>  
           <tr>  
             <td class="destacados" valign="top" height="100%" width="96%">
                   <%=fusionUser%>                          
             </td>  
           </tr>  
         </table>
      <%}%>
</font>
</body>
</html>
	             