%@ page isErrorPage="true" %>
<%@ page import="at.knowcenter.wag.egov.egiz.web.LocalRequestHelper" %>
<%@ page import="at.knowcenter.wag.egov.egiz.web.servlets.SignServlet" %>
<%@ page import="at.knowcenter.wag.egov.egiz.exceptions.*" %>
<%@ page import="at.gv.egiz.pdfas.web.SignSessionInformation" %>
<%@ page import="at.gv.egiz.pdfas.web.VerifySessionInformation" %>
<%@ page import="at.knowcenter.wag.egov.egiz.web.SessionAttributes" %>
<%@ page import="org.apache.commons.httpclient.util.EncodingUtil" %>
<%@ page import="org.apache.commons.httpclient.NameValuePair" %>
<%@ page import="at.gv.egiz.pdfas.web.helper.SignServletHelper" %>
<%@ page import="org.apache.commons.lang.StringEscapeUtils" %>
<%@ page import="java.io.*" %>
<%@ include file="language.jsp" %>
	
		
		
		
		
		
	
<%
  PresentableException pe;
  if (exception != null && exception instanceof PresentableException)
  {
    pe = (PresentableException)exception;
    SignServlet.prepareDispatchToErrorPage(pe, request);
  } else {
    pe = (PresentableException)request.getAttribute("PresentableException");
  }
  String error = request.getParameter("error");
  boolean paramInvok = false;
  if (error == null) {
	  error = (request.getAttribute("error") == null ? "" : request.getAttribute("error").toString());
  } else {
     paramInvok = true;
  }
  String cause = request.getParameter("cause");
  if (cause == null) {
	  cause = (request.getAttribute("cause") == null ? "" : request.getAttribute("cause").toString());
  } else {
     paramInvok = true;
  }
  boolean rb = Boolean.TRUE.equals((Boolean) request.getAttribute("resourcebundle"));
  Object sessionInfo = session.getAttribute(SessionAttributes.ATTRIBUTE_SESSION_INFORMATION);
  
  boolean isExternalInvocation = false;
  if (sessionInfo != null) {
     if (sessionInfo instanceof SignSessionInformation) {
        SignSessionInformation si = (SignSessionInformation) sessionInfo;
		  isExternalInvocation = (si != null && si.exappinf != null);
		  if (isExternalInvocation) {
				String urlParams = EncodingUtil.formUrlEncode(new NameValuePair[] { new NameValuePair("error", error), new NameValuePair("cause", cause) }, "ISO8859_1");
		     if (si.exappinf.invoke_error_url == null) {
				 // prevent circular redirect
				 si.exappinf = null;
		  	    String redirectUrl = response.encodeRedirectURL(request.getContextPath() + "/jsp/error.jsp" + "?" + urlParams);
				 session.setAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL, redirectUrl);
		     } else {
				String errorUrl = si.exappinf.invoke_error_url + "?" + urlParams;
			   session.setAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL, errorUrl);
		     }
		   String redirectHelper = response.encodeRedirectURL(request.getContextPath() + "/jsp/redirect_to_parent.jsp");
		   SignServletHelper.disableBrowserCacheForResponse(response);
		   response.sendRedirect(redirectHelper);
		  }
     }
  }
	
%>
	
		
		
		
			<% if (rb) { %>
				
			<% } else { out.write(StringEscapeUtils.escapeHtml(error)); } %>
		
		: 
			<% if (rb) { %>
				
			<% } else { out.write(StringEscapeUtils.escapeHtml(cause)); } %>
		
		<% if (!isExternalInvocation && !paramInvok) { %>
			
			
		<% } // end if %>
		
		<%
		  if (pe != null) {
		    StringWriter sw = new StringWriter();
		    PrintWriter pw = new PrintWriter(sw);
		    pe.printStackTrace(pw);
		    sw.close();
		    pw.close();
		    out.print(StringEscapeUtils.escapeHtml(sw.toString()));
		  }
		%>