SchoolTools Maintenance Guide
Generally speaking, there’s not much to do to maintain SchoolTools as it is, updating the major software (especially AVG Anti-Virus), and adding new and interesting software as you find it.

Web links to the software’s home pages are now provided for every software tool that still has a home page.
Often-updated Software
Here’s a list of software that is rapidly updated.  An important note is this: if a software changes its name when it is updated (ex. Firefox0.9.2 vs firefox1.0), remember to search through index.html and change all the references to the file, and make sure if you cut-and-paste the filename, that you don’t lose (or get extra) “.exe” extensions.

Also, the FreeExtractor program (under tools) allows you to change any Zip to a self-extracting archive.

•	AVG Anti-Virus
o	You have to re-sign up every time you download.  You might consider just copying the UPDATE folder from an up-to-date AVG installation?
•	FireFox
o	This should stabilize once it passes the 1.0 marker.  For major FF updates, make sure that the extensions in the Internet/moz-extensions folder still work
•	SpyBot and Ad-aware
o	Their spyware definition files are also often updated, but not always included in the downloadable version.
•	OpenOffice
o	Worth keeping an eye on for newer editions
•	TuxType/Paint/Math
o	Also occasional updates.  Make sure that the Jamaica add-ons work with the edition you have installed.  For TuxType, there are two Jamaica plugins, one (linked) for the version on the current ST CD, one unlinked for previous versions of TuxType

Web Interface Notes, Tabs
There are just two actual files to the web interfaces, index.html and reference/reference.html.  As they both have imbedded stylesheets, if you make stylistic changes to one, you should duplicate the same changes to the other.

The tab code is not insanely weird, thankfully.  The script for it is as follows (also in both web pages)
<SCRIPT language="JavaScript">
<!-- Hide

var hidden = "hidden";
var visible = "visible";

function checkin(id) { 
if (document.getElementById) // NN6, IE5, Opera 5
  {return document.getElementById([id]).style;}
else if (document.all) // IE4
  {return document.all[id].style;}
else if (document.layers) // NN4
  {return document.layers[id];} 
}

function loadvisible(id) {
      oldObj = checkin(id);
      oldObj.visibility = visible;
      tabid = id + "tab";
      oldtabObj = checkin(tabid);
      oldtabObj.backgroundImage = 'url(../tab_on.gif)';
}

function tabload(id,setVisible) {
      oldObj.visibility = hidden;
      oldtabObj.backgroundImage = 'url(../tab_off.gif)';
      daObj = checkin(id);
      tabid = id + "tab";
      tabObj = checkin(tabid);

      if (setVisible == hidden) {
        daObj.visibility = hidden;
	tabObj.backgroundImage = 'url(../tab_off.gif)';
     }

  if (setVisible == visible) {
  tabObj.backgroundImage = 'url(../tab_on.gif)';
        daObj.visibility = visible;
	oldObj = daObj;
	oldtabObj = tabObj;
       }
}
// -->
</SCRIPT>

It does two things – it hides and un-hides the content tabs (OldObj), and it changes the background color of the corresponding tab (tabObj).

Functions:
Checkin is a Wired WebMonkey hack to improve browser/version compatibility.  IT lets you use modern document object models, and lets older/crappier browsers ‘check in’ their objects and act like modern DOM-based browsers.  Notice that every time another function plays with an object, it must first get it checked in.
Loadvisible is the script that runs when the page is first loaded, and instructs it as to what tab should be the default, it is called in the <body> tag as an onload=, you can change the variable to load a different tab by default. Fun!

Tabload is the worker-man.  It toggles the tabs and visible  contents when you click on the tab links, or, really, any link with the right javascript tag:
<a href="#" id=tab onclick="tabload('contents',visible)">Contents</a>
(where contents is the id of the page to load)

I made this before my <div> enlightenment, so I used tables.  It’s not as ideal as a <div>-based system, but it works as well.  
Each ‘page’ of content is in a table that starts out as such:
<table width="100%" id="ict" class=tabcontent>

The id is VERY important, as it governs the visibility of the tab, and has to be the same as in the link code.  This being said, you can create any number of ‘pages’ to hide/unhide simply by creating the table for them using the above template, and making a link somewhere with the tabload code demonstrated above that.  There’s no declaration of what’s in the page, it’s all mutable (which is another word for flying by the seat of its pants).  An important note is that the initial style of the table must be set visbility: hidden; to keep things from mashing up.  This is currently managed by the class=tabcontent style.