! 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.0.3)
[]

[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">
<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="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>
[]

! 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
