<?xml version="1.0" encoding="UTF-8"?>

<%@ page import="com.siderean.clientapi.*, java.util.*, java.text.*, java.io.*" contentType="text/xml; charset=utf-8" errorPage="error.jsp" %>
<%@ include file="seamarkHelper.jsp" %><%@ include file="render.jsp" %><%! 

// JSP Example of Seamark API.
//
// This is an example of using the Seamark API from an JSP page.
//
// The flow of the page is as follows:
// - The MetadataInterface object is instantiated and initialized to point
//   to the Seamark SOAP server.
// - A MetadataQuery object is constructed and initialized from the 
//   HTTP arguments passed to the JSP page.
// - The MetadataQuery object is issued to the Seamark SOAP server, 
//   and a MetadataResponse object is returned.
// - The Information in the Metadataresponse object is rendered on the page.
//
// This template is intended to be very generic and does not contain
// any application specific information. It is entirely driven off of the
// the hints on the Query object. A specific application can be considerably
// simpler.
//

String serverurl = "http://squidward.siderean.com:9333/axis/services/RDFQS";
String model = "Facetious";

static String xrbrfile = "Facetious-query5.xrbr";

%><%

  String initialQuery;
  initialQuery = getStringFromResource(getServletContext(), xrbrfile);
	request.setCharacterEncoding("UTF-8");
    QueryState queryState = getQueryFromArgs(request.getRequestURI(), initialQuery, serverurl, model, request, response);
	MetadataQuery query = queryState.getQuery();

	long before = System.currentTimeMillis();
    MetadataResponse mdresponse = queryState.getResponse();
	long after = System.currentTimeMillis();

	// If there are no results, execute a query against the start page
	boolean noresults = mdresponse.resultSetSize() == 0;
	String noResultsBlock = null;
	if (noresults) {
		noResultsBlock = renderNoResultsPanel(queryState);
		queryState = new QueryState(request.getRequestURI(), initialQuery, serverurl, model, request, response);
		query = queryState.getQuery();
		mdresponse = queryState.getResponse();
	}

	if (!queryState.getRSSMode()) {
		
		// JSP page
		response.setContentType("text/html");

		String rsslink = "";
		if (queryState.getRenderRSSButton()) {
			rsslink = "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"" + htmlescape(null, queryState.getRSSLink()) + "\"/>\n";
		}
		
		String pagetitle = query.getHint("pagetitle");
		if (pagetitle == null) {
			pagetitle = "";
		}
%>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>
	Search <%= queryState.getItemsDescription() %>
    </title>
	<%= rsslink %>
    <link rel="stylesheet" href="empty.css" type="text/css" media="screen"/>
    <style type="text/css">@import "<%= getStylesheetURL(query) %>";</style>
    <script type="text/javascript" src="js/seamarkMain.js"></script>
  </head>
  <body class="C4">
<!-- Screen Main Table //-->
<table cellpadding="0" cellspacing="0" class="main_panel" border="0"> 
	<tr>
		<td class="screenHeader_cell" colspan="2">
		<!-- Screen Header //-->
		<table cellpadding="0" cellspacing="0" class="screenHeader_panel" border="0">
			<tr>
				<td class="screenHeader_panel_cell1" rowspan="2"><%= renderPageHeaderLogo(queryState) %></td>
				
				<td class="screenHeader_panel_cell3 screenHeader_panel_globalSearch">
					<% int searchcount = getDimensionsWithBooleanHintYes(query, "textsearch", false).size() + getMultiDimTextSearchCount(query);
	   				if (searchcount > 0) {%>
	   				<%= renderSearchBox(queryState, mdresponse) %>
	   				<% } %>
				</td>
			</tr>
			<tr>
				<td class="screenHeader_panel_cell2 screenHeader_title" colspan="2"> <%
					if (pagetitle != null && pagetitle.length() > 0) { %>
					<span class="screenHeader_title_span" onClick="document.location='<%= queryState.getScriptname() %>'"><%= pagetitle %></span>
					<% } %>
				</td>
			</tr>
		</table>
		<!-- End Screen Header //-->
		</td>
	</tr>
	
	<!-- Limbo Bar //-->
	<tr>
		<td class="main_panel_limboBar C1" colspan="2">Powered by: <b>seamark</b></td>
	</tr>
	<!-- End Limbo Bar //-->
	<% if (noresults) {
	%>	<tr>
		  <td colspan="2" valign="top">
		    <%= noResultsBlock %>
		  </td>
		</tr>
	<% } else { %>
	<tr>
		<td class="text_header1" colspan="2">
		<table cellpadding="0" cellspacing="0" border="0">
		  <tr>
		  	<td class="itemsMatching_cell">
		<!-- Renders number of items matching //-->
		<%= renderItemsMatchingString(queryState) %>
		<!-- End Renders number of items matching //-->
		  <%= maybeRenderRSSButton(queryState) %>
		</td>
		  </tr>
		</table>
		</td>
	</tr>
	<tr>
		<td class="mainPage_leftColumn">
			<!-- Breadcrumb Panel //-->
			<%= renderBreadCrumbTrail("", queryState,  mdresponse)%>
			<!-- End Breadcrumb Panel //-->
			
			<!-- Facet Panel Group //-->
			<table class="suggestionsPanel" cellpadding="0" cellspacing="0" border="0">
			<tr>
			<td valign="top">
				<%= renderSuggestionsPanel("", queryState, mdresponse) %>
			</td> 
			</tr>
			<tr>
				<td><img src="images/clear.gif" width="195" height="1" alt=""/></td>
			</tr>
			</table>
			<!-- End Facet Panel Group //-->
		</td>
		<td class="RP_page_cell">
			<!-- Main Results Panel //-->
			<% if (!queryState.getStartPageMode()) { %>
					<%
				    ArrayList results = mdresponse.getResults();
				    // NEW CODE
				    StringBuffer res = new StringBuffer("");
				    for (int i=0; i<results.size(); i++) {
				      ResponseResultItem resultitem = (ResponseResultItem)results.get(i);
				      res.append(renderResult(queryState, mdresponse, resultitem));
			  		} %>
		      <%= renderResultsPanel(queryState, res.toString()) %>
					<% } %>
			<!-- End Main Results //-->
		</td>
	</tr>
	<% } /* if (noresults) else  */ %>
	<tr>
		<td valign="top" align="right" colspan="2">&nbsp;</td>
	</tr>
</table>
<!-- End Screen Main Table //-->
</body>
</html>
<%} else { %>
<%-- RSS feed --%>
<%@ include file="renderrss.jsp" %>
<%} %>

