${ "" /* just stop 'file' from believing this is HTML */
}<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Friends Manager - Example Application for WebSPL</title>
</head><body bgcolor="#9999ff" text="#000000" link="#000000" vlink="#000000" alink="#000000">

<script language="JavaScript">
<!--

var MouseX = 0;
var MouseY = 0;

var MouseMoveManager = 0;

var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = getMouseXY;

function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    MouseX = event.clientX + document.body.scrollLeft;
    MouseY = event.clientY + document.body.scrollTop;
  } else {  // grab the x-y pos.s if browser is NS
    MouseX = e.pageX;
    MouseY = e.pageY;
  }  
  if (MouseX < 0) MouseX = 0;
  if (MouseY < 0) MouseY = 0;
  if (MouseMoveManager) MouseMoveManager();
}

//-->
</script>

<table width="100%" height="100%" cellpadding=20>
<tr><td width="100" valign="top" bgcolor="#ffffff">
${ menu_html() }
</td><td align=center>

<H1>Friends Manager - A WebSPL Example Application</H1>

<p><b>Warning: A browser with JavaScript and DOM support is required for using this application!</b></p>

<p>&nbsp;</p>

<table width="400"><tr><td>

<p>
This is a little demonstration in using WebSPL for writing web applications.
This (well-structured) program has less then 300 lines of SPL code and less
then 200 lines of HTML templates. This is including the DOM-based windowing
system used in this program, which is not a feature of WebSPL but implemented
in this application.
</p>

<p>
This application does not use any database backends. So the data entered here
is volatile and will be removed when you end your session.
</p>

<p>
This application is like a small address-book program. But in addition to the
persons contact data it also stores their relationships to other persons. Click
on the names in the menu on the left side to browse and edit the data. Click on
"Add New Entry" to create additional entries and click on "Link All Open" to
tell the system that all currently open windows represent a group of people
which know each other.
</p>

<p>
Have fun! &nbsp; &nbsp; &nbsp; -- Clifford Wolf
</p>

</td></tr></table>

</tr></table>

${ windows_html() }

</body></html>

