! This the manifest file for the Quixe in-browser interpreter, and gives
! the necessary details to Inform's release component (called cBlorb) so that
! the interpreter can be bundled into a released website, all set up ready
! to play the IF story file being released.

! Manifest files have a simple format. They are allowed to set the value of
! any cBlorb placeholders that they would like to, but the ones below are the
! only ones they will likely want to set. These two are needed for the footer
! of the play page:

[INTERPRETERVERSION]
Quixe for Inform 7 (v. 1.1.1)
[]

[INTERPRETERURL]
http://eblong.com/zarf/glulx/quixe/
[]

! Note that we don't set [INTERPRETER]: cBlorb has already set that to the
! name of the interpreter, in this case, to "Quixe".

! This declares whether the interpreter can handle blorbed Z-machine files
! ("z"), blorbed Glulx files ("g") or both ("zg" or "gz"). No other values
! are legal; note lower case.

[INTERPRETERVM]
g
[]

! [INTERPRETERHEAD] provides code to go into the <head> ... </head> of the
! web page playing the work. (Placeholder text starts on the line after the
! name, and continues until a line reads just []. Line breaks are included
! between lines, though not at the end of the final line; white space is
! stripped out at the left and right hand edges of each line.)

! In writing the head and body, note that the structure of the site being
! constructed is:
!     play.html  <-- page on which the interpreter runs
!     interpreter
!         ...the base64-encoded story file...
!         ...any files copied over according to the manifest below...
! The placeholder [ENCODEDSTORYFILE] expands to the leafname of the base64
! version of the story file, which might be (but should not be assumed
! to be) "story.zblorb.js".

[INTERPRETERHEAD]
<link rel="stylesheet" href="interpreter/glkote.css" type="text/css">
<link rel="stylesheet" href="interpreter/dialog.css" type="text/css">

<style type="text/css">

/* The gameport is the window area in which all the game windows (status
   and story) are laid out. We leave the left-hand column for the template
   text, which includes the cover art, links, and interpreter credit.

   The background color here shows up only as a flash during loading. If
   you increased the "spacing" game options below, the background color
   would fill the gap between windows.

   This template uses zero spacing between windows, because that looks good
   for the standard game layout of one grid window and one buffer window.
   If you wanted several buffer windows, you might prefer to increase
   "inspacing" and darken the gameport background color.
*/
#gameport {
  position: absolute;
  overflow: hidden;
  top: 0px;
  left: 15.4em;
  right: 0px;
  bottom: 0px;
  background: white;
  margin: 0px;
}

.interpretercredit {
  font-size: 80%;
  position: absolute;
  bottom: 1em;
}

</style>

<script src="interpreter/glkote.min.js" type="text/javascript"></script>
<script src="interpreter/quixe.min.js" type="text/javascript"></script>

<script type="text/javascript">
game_options = {
  use_query_story: false,
  set_page_title: false,
  inspacing: 0,     // gap between windows
  outspacing: 0     // gap between windows and edge of gameport
};
</script>

<script src="interpreter/[ENCODEDSTORYFILE]" type="text/javascript"></script>
[]

! [INTERPRETERBODY] provides the part of the page where the window
! or gadget actually appears.

[INTERPRETERBODY]
<div id="gameport">
<div id="windowport">
<noscript><hr>
<p>You'll need to turn on Javascript in your web browser to play this game.</p>
<hr></noscript>
</div>
<div id="loadingpane">
<img src="interpreter/waiting.gif" alt="LOADING"><br>
<em>&nbsp;&nbsp;&nbsp;Loading...</em>
</div>
<div id="errorpane" style="display:none;"><div id="errorcontent">...</div></div>
<div id="layouttestpane">
This should not be visible
<div id="layouttest_grid" class="WindowFrame GridWindow"><div id="layouttest_gridline" class="GridLine"><span id="layouttest_gridspan" class="Style_normal">12345678</span></div><div id="layouttest_gridline2" class="GridLine"><span class="Style_normal">12345678</span></div></div>
<div id="layouttest_buffer" class="WindowFrame BufferWindow"><div id="layouttest_bufferline" class="BufferLine"><span id="layouttest_bufferspan" class="Style_normal">12345678</span></div><div id="layouttest_bufferline2" class="BufferLine"><span class="Style_normal">12345678</span></div></div>
</div>
</div>

[]

! The following footnote is added to the small print about how to play IF
! on the game's main page:

[INBROWSERPLAY]
Or you can play without downloading anything by following the 'Play In-Browser'
link, using the [INTERPRETER] interpreter. You'll need to have Javascript enabled
on your web browser.
[]

! cBlorb encodes the story file into base64 so that it can be loaded in
! Javascript despite being binary data. The encoding is topped and tailed
! with the following, in order to make the result a valid Javascript function
! call with a string argument:

[BASESIXTYFOURTOP]
Event.observe(window, 'load', function() { 
  GiLoad.load_run(null, '
[]

[BASESIXTYFOURTAIL]
', 'base64');
});
[]

! Outside of the placeholder parts of the manifest, lines beginning '!', or
! lines which contain only white space, are thrown away; so this is a comment.

! Non-comment lines are the names of files which are copied across when the
! release is made. Anything not listed here won't be copied.

glkote.min.js
quixe.min.js
dialog.css
glkote.css
waiting.gif
