/*################  include.js  ########################*/
/*                                                      */
/*    This writes standard stuff on any page!           */
/*                                                      */
/*  This file creates a standard on every page          */
/*  It makes things 'standard' on the website :)        */ 
/*                                                      */
/*##################################################### */

/* Google adverts */
google_ad_client = "pub-4909228093941053";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "aaaaaa";
google_color_bg = "FFFFFF";
google_color_link = "000000";
google_color_url = "666666";
google_color_text = "333333";
FigureNumber = 0; /* Counter for images on a page. */
noRightClick();
document.write('<script type="text/javascript" src="/html/prototype.js"></script>');
document.write('<script type="text/javascript" src="/html/scriptaculous.js?load=effects"></script>');
document.write('<script type="text/javascript" src="/html/lightbox.js"></script>');
document.write('<script type="text/javascript" src="/html/lightbox.js"></script>');
/* Table of Contents ON/OFF */
var stateTOC = 'ON';
buildTOC;

/*var CarArrayLength = 13;
var RndCarImage = new Array();
for (i=0;i<CarArrayLength;i++) {
	RndCarImage[i] = '../images/rnd/' + i + '.jpg';
}
var whichImage = Math.round(Math.random()*(RndCarImage.length-1));
*/

var CarArrayLength = 231;
var whichImage = '../images/IndexTable/HOcar_' + Math.round(Math.random()*(CarArrayLength))+ '.jpg';

if(!window.JSFX) {
	JSFX=new Object();
}
JSFX.FadeElemMinOpacity = 50;
JSFX.FadeElemAutoUp = 20;
JSFX.FadeElemAutoDown = 5;
JSFX.FadeElemSavedOver = null;
JSFX.FadeElemSavedOut = null;
JSFX.FadeElemIdIndex = 0;
document.write('<STYLE TYPE="text/css">.elemFader{ position:relative; filter:alpha(opacity='+JSFX.FadeElemMinOpacity+'); -moz-opacity:'+JSFX.FadeElemMinOpacity/101+'}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader1{ position:relative; filter:alpha(opacity=10); -moz-opacity:0.1}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader2{ position:relative; filter:alpha(opacity=20); -moz-opacity:0.2}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader3{ position:relative; filter:alpha(opacity=30); -moz-opacity:0.3}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader4{ position:relative; filter:alpha(opacity=40); -moz-opacity:0.4}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader5{ position:relative; filter:alpha(opacity=50); -moz-opacity:0.5}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader6{ position:relative; filter:alpha(opacity=60); -moz-opacity:0.6}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader7{ position:relative; filter:alpha(opacity=70); -moz-opacity:0.7}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader8{ position:relative; filter:alpha(opacity=80); -moz-opacity:0.8}</STYLE>');
document.write('<STYLE TYPE="text/css">.elemFader9{ position:relative; filter:alpha(opacity=90); -moz-opacity:0.9}</STYLE>');

/* Random Car Image */
function showImage(){
	/*document.write('<div class="imgRight"><img align="mid" src="'+RndCarImage[whichImage]+'"></div>');*/
	document.write('<div class="imgRight"><img align="mid" width="300" height="208" src="' + whichImage + '"></div>');
}

/* Flip Images */
function F(img,ref) { 
	document.images[img].src = ref;
}

/* Menu System */
function menu() {
	/*menu_item('History', 'history.html');*/
	menu_item('Tools', 'tools.html');
	menu_item('Design', 'designs.html');
	/*menu_item('Tips', 'tips.html');*/
	/*menu_item('Table', 'table.html');*/
	menu_item('Construction', 'construction.html');
	menu_item('Electronics', 'electronics.html');
	menu_item('Cars', 'cars.html');
	menu_item('Racing', 'racing.html');
	menu_item('Other Tracks', 'other.html');
	menu_item('Comment', 'comment.html');
	menu_item('Rally', 'scx.html');
	menu_item('Links', 'links.html');
  document.write('<a href="#" class="MasterIndex" onClick="window.print();" onMouseOver="F(\'print\', \'menu_print.gif\');" onMouseOut="F(\'print\', \'menu_print-bw.gif\');"><img align="left" name="print" src="images/menu_print-bw.gif" border="0">&nbsp;&nbsp;&nbsp;Print</a>');
  document.write('<a target="_blank" href="http://neophytte.mine.nu/forum/" class="MasterIndex" onMouseOver="F(\'forum\', \'menu_forum.gif\');" onMouseOut="F(\'forum\', \'menu_forum-bw.gif\');"><img align="left" name="forum" src="images/menu_forum-bw.gif" border="0">&nbsp;&nbsp;&nbsp;Forum</a>');
	menu_item('Home', 'index.html');
	/* Float the menu */
  FloatMenu();
	/* JSFX.fadeElemAuto(); */
}

/* Write out the standard menu items */
function menu_item(name, url) {
	var loc = location.href.split("/");
  var current = loc[loc.length-1];
	if (current != url) {
	  document.write('<a href="html/' + url + '" class="MasterIndex" onMouseOut="window.status=\'\';F(\'' + name + '\', \'images/menu_' + name + '-bw.gif\');" onMouseOver="window.status=\'' + name + '\';F(\'' + name + '\', \'images/menu_' + name + '.gif\');return true;" ><img onClick="document.reload;" align="left" id="' + name + '" name="' + name + '" src="images/menu_' + name + '-bw.gif" border="0">&nbsp;&nbsp;&nbsp;' + name + '</a>'); 
	} else {
	  document.title = "HO Routed Track Build - " + name + "";
	  document.write('<span class="MasterOn"><img align="right" onClick="BeSilly();" src="images/menu_' + name + '.gif" border="0"> ' + name +'</span>');
	}
}

/* Pop Up Pix */
function PopupPic(sPicURL) { 
 window.open( "popup.html?"+sPicURL, "", "resizable=1,HEIGHT=2,WIDTH=2"); 
} 

/* Take 3 inputs
 - Image Name
 - document title/alt tag
 - alignment (defaults to center)
*/
function shadow(img, title, align) {
	FigureNumber += 1;
	if (img == '') { img = "not_found.jpg"; }
	if (title == '') {
		var temp = img.split(".");
		for (num = 0; num < (temp.length)-1; num++) {
			title = title.concat(temp[num]) + " ";
		}
	}
	var loc = location.href.split("/");
        var pagename = loc[loc.length-1];
	title = title.replace(/\'/g,"&acute;");
	title = title.replace(/\"/g,"&quot;");
	if (align) {
		document.write('<table border="0" cellspacing="0" cellpadding="0" align="' + align + '">');
	} else {
		document.write('<table border="0" cellspacing="0" cellpadding="0" align="center">');
	}
	document.write('<tr>');
	document.write('<td class="shadow-topleft"></td>');
	document.write('<td class="shadow-top"></td>');
	document.write('<td class="shadow-topright"></td>');
	document.write('</tr>');
	document.write('<tr>');
	document.write('<td class="shadow-left"></td>');
	document.write('<td class="shadow-center">');
	/*document.write('<a onMouseOver="window.status=\'See '+ title +' in a larger window\';return true;" onMouseOut="javascript:window.status=\'\';return true" href="javascript:PopupPic(\'images/' + img +'\')"><img border="0" class="anImg" src="images/' + img + '" alt="Click to see closer view of ' + title + '" title="Click to see closer view of ' + title + '"></a>');*/
	document.write('<a onMouseOver="window.status=\'See '+ title +' in a larger window\';return true;" onMouseOut="javascript:window.status=\'\';return true" href="images/' + img +'" rel="lightbox[' + pagename + ']" title="&laquo; ' + title + ' &raquo;"><img border="0" class="anImg" src="images/' + img + '" alt="Click to see closer view of ' + title + '" title="Click to see closer view of ' + title + '"></a>');
	document.write('</td>');
	document.write('<td class="shadow-right"></td>');
	document.write('</tr>');
	document.write('<tr>');
	document.write('<td class="shadow-bottomleft"></td>');
	document.write('<td class="shadow-bottom"></td>');
	document.write('<td class="shadow-bottomright"></td>');
	document.write('</tr>');
	document.write('<tr>');
	document.write('<td colspan="3" class="image-title">&laquo; Fig '+ FigureNumber + ': ' + title + ' &raquo;</td>');
	document.write('</tr>');
	document.write('</table>');
}

/* Insert forum link */
function forum() {
	document.write('<a target="_blank" href="http://neophytte.mine.nu/forum/" class="WebLink">Perth HO Forum</a>');
}

/* Show or Hide Div
eg
<a href="javascript:ShowHide('DivX');">Click to Show/Hide</a><br><br>
<div id="DivX"> 1 2 3</div>
*/
function ShowHide(id) {
	if (document.getElementById) {
		var style2 = document.getElementById(id).style;
		style2.display = style2.display? "":"block";
	} else if (document.all) {
		var style2 = document.all[id].style;
		style2.display = style2.display? "":"block";
	} else if (document.layers) {
		var style2 = document.layers[id].style;
		style2.display = style2.display? "":"block";
	}
}

function whatBrowser() {
	isMac =   (navigator.appVersion.indexOf('Mac')!=-1) ? true : false;
	NS4 =     (document.layers) ? true : false;
	IEmac =   ((document.all)&&(isMac)) ? true : false;
	IE4plus = (document.all) ? true : false;
	IE4 =     ((document.all)&&(navigator.appVersion.indexOf('MSIE 4.')!=-1)) ? true : false;
	IE5 =     ((document.all)&&(navigator.appVersion.indexOf('MSIE 5.')!=-1)) ? true : false;
	IE6 =     ((document.all)&&(navigator.appVersion.indexOf('MSIE 6.')!=-1)) ? true : false;
	IE7 =     ((document.all)&&(navigator.appVersion.indexOf('MSIE 7.')!=-1)) ? true : false;
	ver4 =    (NS4 || IE4plus) ? true : false;
	NS6 =     (!document.layers) && (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;
}

/* Space Creation */
function space(spacing) {
	IE6 = ((document.all)&&(navigator.appVersion.indexOf('MSIE 6.')!=-1)) ? true : false;
	//IE7 = ((document.all) && (navigator.appVersion.indexOf('MSIE 7.')!=-1)) ? true : false;
	/* see http://gmatter.wordpress.com/2006/11/21/another-way-to-detect-ie7-in-javascript/ */
	if (IE6 == 'true') {
		document.write('<p style="height: ' + spacing + 'px;">&nbsp;</p>');
	} else {
		document.write('<p style="height: ' + (spacing * 1.4) + 'px;">&nbsp;</p>');
	}
}

/* Date Display */
function date_mod() {
	var days = new Array(8);days[1] = "Sunday";days[2] = "Monday";days[3] = "Tuesday";days[4] = "Wednesday";days[5] = "Thursday";days[6] = "Friday";days[7] = "Saturday";
	var months = new Array(13);months[1] = "January";months[2] = "February";months[3] = "March";months[4] = "April";months[5] = "May";months[6] = "June";months[7] = "July";months[8] = "August";months[9] = "September";months[10] = "October";months[11] = "November";months[12] = "December";
	var dateObj = new Date(document.lastModified);
	var wday = days[dateObj.getDay() + 1];
	var lmonth = months[dateObj.getMonth() + 1];
	var time = document.lastModified.substring(22, (document.lastModified.length - 8));
	var date = dateObj.getDate();
	if (navigator.appName == 'Microsoft Internet Explorer') {
		var fyear = dateObj.getYear();
	} else {
		var fyear = dateObj.getYear() + 1900;
	}
	var size = Math.round((document.fileSize / 1024)*Math.pow(10,2))/Math.pow(10,2);
	var y = document.images;
	var imglength = 0;
	for (i=0;i<y.length;i++) {
		imglength += (y[i].fileSize)*1;
	}
	var images = Math.round((imglength / 1024)*Math.pow(10,2))/Math.pow(10,2);
	var average = Math.round((images / y.length)*Math.pow(10,2))/Math.pow(10,2);
	document.write('<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="60%" align="left"><img src="images/flag.gif" alt="Finish Line" title="End of Page" border="0" /><br /><a href="http://validator.w3.org/check?uri=referer"><img border="0" src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a></td><td align="right">');
	document.write('<table width="100%" border="0" cellspacing="0" cellpadding="1"><tr bgcolor="black"><td>');
	document.write('<table width="100%" border="0" cellspacing="0" cellpadding="2">');
	document.write('<tr><td class="copyL">Name:</td><td class="copy"> ' + location.href + '</td></tr>');	
	if (navigator.appName == 'Microsoft Internet Explorer') {
		document.write('<tr><td class="copyL">Size:</td><td class="copy"> ' + size + ' kb</td></tr>');
		document.write('<tr><td class="copyL">' + y.length +'&nbsp;images:</td><td class="copy"> ' + images + ' kb (Avg: ' + average + ' kb)</td></tr>');
	}		
	document.write('<tr><td class="copyL">Modified:</td><td class="copy"> ' + wday + ', ' + lmonth + ' ' + date + ', ' + fyear + ' [' + time + ']</td></tr>');
	document.write('<tr><td class="copyL">Author:</td><td class="copy"> &copy; J. Richard Mortimer</td></tr>');
	document.write('</table>');
	document.write('</td></tr></table>');
	document.write('</td></tr></table>');
	document.write('<center></center>');
	document.write('</div>');
}

/* Right Click Disable */
function noRightClick() {
	function right(e) {
		if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2)) {
			return false;
		} else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3)) {
			//alert("Sorry, you do not have permission to right click.");
			whine();
			return false;
		} 
		return true;
	}
	document.oncontextmenu=new Function("whine();return false")
	document.onmousedown=right;
	document.onmouseup=right;
	if (document.layers) window.captureEvents(Event.MOUSEDOWN);
	if (document.layers) window.captureEvents(Event.MOUSEUP);
	window.onmousedown=right;
	window.onmouseup=right;
}

/* Just return true. */
function doh(){
	return true;
}

function whine(){
	var size = Math.round((document.fileSize / 1024)*Math.pow(10,2))/Math.pow(10,2);
	var y = document.images;
	var imglength = 0;
	for (i=0;i<y.length;i++) {
		imglength += (y[i].fileSize)*1;
	}
	var images = Math.round((imglength / 1024)*Math.pow(10,2))/Math.pow(10,2);
	var average = Math.round((images / y.length)*Math.pow(10,2))/Math.pow(10,2);
	if (navigator.appName == 'Microsoft Internet Explorer') {
		alert('File: ' + location.href + '\nFilesize: ' + size + ' kb\n' + y.length +' images: ' + images + ' kb (Avg: ' + average + ' kb)\n(c) J. R. Mortimer 2006 - 2008');
	} else {
		alert('File: ' + location.href + '\n' + y.length +' images\n(c) J. R. Mortimer 2006 - 2008');	
	}
}

/* Set Cookies */
function SetCookie (name, value) {
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
	//((path == null) ? "" : ("; path=/" + path)) +
	"; path=/" +
	((domain == null) ? "" : ("; domain=" + domain)) +
	((secure == true) ? "; secure" : "");
}

/* Set Cookies via a Form */
function setC(form) {
	var expdate = new Date ();
	expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 365 * 2)); // 2 years
	SetCookie (form.name, form.value, expdate);
}

/* Get Cookies */
function getCookieVal(offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1) endstr = document.cookie.length;
	return unescape (document.cookie.substring(offset, endstr));
}

/* Get Cookies */
function GetCookie(name) {
	var arg = name+"=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg) return getCookieVal(j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return '';
}

/* Load Cookies */
function LoadCookies() {
	var x = navigator
	document.commentpage.email.value = GetCookie("email");
	document.commentpage.name.value = GetCookie("name");
	document.commentpage.web.value = GetCookie("web");
	document.commentpage.appCodeName.value = x.appCodeName;	
	document.commentpage.appMinorVersion.value = x.appMinorVersion;	
	document.commentpage.appName.value = x.appName;	
	document.commentpage.appVersion.value = x.appVersion;	
	document.commentpage.cookieEnabled.value = x.cookieEnabled;	
	document.commentpage.cpuClass.value = x.cpuClass;	
	document.commentpage.userAgent.value = x.userAgent;	
	document.commentpage.browserLanguage.value = x.browserLanguage;	
	document.commentpage.systemLanguage.value = x.systemLanguage;	
	document.commentpage.userLanguage.value = x.userLanguage;	
}

/* Float the Menu */
function FloatMenu() {
  var startX = 10, startY = 140;
  var ns = (navigator.appName.indexOf("Netscape") != -1);
  var d = document;
  var px = document.layers ? "" : "px";
  function ml(id) {
    var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
    if(d.layers)el.style=el;
    el.sP=function(x,y){this.style.left=x+px;this.style.top=y+px;};
    el.x = startX; el.y = startY;
    return el;
  }
  window.Floater=function() {
    var pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
    var dY = (pY > startY) ? pY : startY;
    ftlObj.y += (dY - ftlObj.y)/8;
    ftlObj.sP(ftlObj.x, ftlObj.y);
    setTimeout("Floater()", 20);
  }
  ftlObj = ml("menu");
  Floater();
}

JSFX.fadeElem_actionOnMouseOver = function(e) {
	srcElement=e ? e.target : event.srcElement;	
	if(srcElement.className && srcElement.className.indexOf("MasterIndex") != -1)
		JSFX.fadeUp(srcElement);
	if(JSFX.FadeElemSavedOver != null)
		JSFX.FadeElemSavedOver(e);
}

JSFX.fadeElem_actionOnMouseOut = function(e) {
	srcElement=e ? e.target : event.srcElement;
	if(srcElement.className && srcElement.className.indexOf("MasterIndex") != -1)
		JSFX.fadeDown(srcElement);
	if(JSFX.FadeElemSavedOut != null)
		JSFX.FadeElemSavedOut(e);
}

JSFX.fadeElemAuto = function(minOpacity, stepUp, stepDown) {
	if(minOpacity)
		JSFX.FadeElemMinOpacity = minOpacity;
	if(stepUp)
		JSFX.FadeElemAutoUp	= stepUp;
	if(stepDown)
		JSFX.FadeElemAutoDown	= stepDown;
	JSFX.FadeElemSavedOver = document.onmouseover;
	JSFX.FadeElemSavedOut  = document.onmouseout;
	document.onmouseover	= JSFX.fadeElem_actionOnMouseOver ;
	document.onmouseout	= JSFX.fadeElem_actionOnMouseOut ;
}

JSFX.fadeUpElem = function(elemName, step) {
	if(document.layers || window.opera)
		return;
	elem = document.getElementById(elemName);
	if(elem)
		JSFX.fadeUp(elem, step);
}

JSFX.fadeUp = function(elem, step) {
	if(elem) {
		if(!step) step=JSFX.FadeElemAutoUp;
		if(elem.fade == null) {
			elem.fade = new Object();
			elem.fade.state	 = "OFF";
			elem.fade.upStep	 = step;
			elem.fade.downStep  = step;
			elem.fade.minOpacity  = JSFX.FadeElemMinOpacity;
			elem.fade.index = elem.fade.minOpacity;
			elem.animate=JSFX.FadeElemAnimation;
			elem.fadeId="JSFX_FadeElem" + JSFX.FadeElemIdIndex++;
			window[elem.fadeId] = elem;
			if(elem.filters)
				elem.fade.minOpacity = elem.filters.alpha.opacity;
			else
				elem.fade.minOpacity = document.defaultView.getComputedStyle(elem,'').getPropertyValue('-moz-opacity') * 100;	
		}
		if(elem.fade.state == "OFF") {
			elem.fade.upStep  = step;
			elem.fade.state = "FADE_UP";
			elem.animate();
		}
		else if( elem.fade.state == "FADE_UP_DOWN" || elem.fade.state == "FADE_DOWN") {
			elem.fade.upStep  = step;
			elem.fade.state = "FADE_UP";
		}
	}
}

JSFX.fadeDownElem = function(elemName, step) {
	if(document.layers || window.opera)
		return;
	elem = document.getElementById(elemName);
	if(elem)
		JSFX.fadeDown(elem, step);
}

JSFX.fadeDown = function(elem, step) {
	if(elem) {
		if(!step) step=JSFX.FadeElemAutoDown;
		if(elem.fade.state=="ON") {
			elem.fade.downStep  = step;
			elem.fade.state="FADE_DOWN";
			elem.animate();
		} else if(elem.fade.state == "FADE_UP") {
			elem.fade.downStep  = step;
			elem.fade.state="FADE_UP_DOWN";
		}
	}
}

JSFX.FadeImageAnimation = function() {
	JSFX.FadeElemRunning = false;
	for(i=0 ; i<document.elems.length ; i++) {
		var elem = document.elems[i];
		if(elem.fade) {
			if(elem.fade.state == "FADE_UP") {
				elem.fade.index+=elem.fade.upStep;
				if(elem.fade.index > 100)
					elem.fade.index = 100;
				if(elem.filters)
					elem.filters.alpha.opacity = elem.fade.index;
				else
					elem.style.MozOpacity = elem.fade.index/101;
				if(elem.fade.index == 100)
					elem.fade.state="ON";
				else
					JSFX.FadeElemRunning = true;
			} else if(elem.fade.state == "FADE_UP_DOWN") {
				elem.fade.index+=elem.fade.upStep;
				if(elem.fade.index > 100)
					elem.fade.index = 100;
				if(elem.filters)
					elem.filters.alpha.opacity = elem.fade.index;
				else
					elem.style.MozOpacity = elem.fade.index/101;
				if(elem.fade.index == 100)
					elem.fade.state="FADE_DOWN";
				JSFX.FadeElemRunning = true;
			} else if(elem.fade.state == "FADE_DOWN") {
				elem.fade.index-=elem.fade.downStep;
				if(elem.fade.index < elem.fade.minOpacity)
					elem.fade.index = elem.fade.minOpacity;
				if(elem.filters)
					elem.filters.alpha.opacity = elem.fade.index;
				else
					elem.style.MozOpacity = elem.fade.index/101;
				if(elem.fade.index == elem.fade.minOpacity)
					elem.fade.state="OFF";
				else
					JSFX.FadeElemRunning = true;
			}
		}
	}
	if(JSFX.FadeElemRunning)
		setTimeout("JSFX.FadeElemAnimation()", 40);
}

JSFX.FadeElemAnimation = function() {
	var fadeElemRunning = false;
	var elem = this;
	if(elem.fade) {
		if(elem.fade.state == "FADE_UP") {
			elem.fade.index+=elem.fade.upStep;
			if(elem.fade.index > 100)
				elem.fade.index = 100;
			if(elem.filters)
				elem.filters.alpha.opacity = elem.fade.index;
			else
				elem.style.MozOpacity = elem.fade.index/101;
			if(elem.fade.index == 100)
				elem.fade.state="ON";
			else
				fadeElemRunning = true;
		}	else if(elem.fade.state == "FADE_UP_DOWN") {
			elem.fade.index+=elem.fade.upStep;
			if(elem.fade.index > 100)
				elem.fade.index = 100;
			if(elem.filters)
				elem.filters.alpha.opacity = elem.fade.index;
			else
				elem.style.MozOpacity = elem.fade.index/101;
			if(elem.fade.index == 100)
				elem.fade.state="FADE_DOWN";
			fadeElemRunning = true;
		} else if(elem.fade.state == "FADE_DOWN") {
			elem.fade.index-=elem.fade.downStep;
			if(elem.fade.index < elem.fade.minOpacity)
				elem.fade.index = elem.fade.minOpacity;
			if(elem.filters)
				elem.filters.alpha.opacity = elem.fade.index;
			else
				elem.style.MozOpacity = elem.fade.index/101;
			if(elem.fade.index == elem.fade.minOpacity)
				elem.fade.state="OFF";
			else
				fadeElemRunning = true;
		}
	}
	if(fadeElemRunning)
		setTimeout("window['"+elem.fadeId+"'].animate()", 40);
}

function toggleTOC() {
  if (stateTOC == 'ON') {
    stateTOC = 'OFF'
    document.getElementById('TOC').style.display = "none";
  }
  else {
    stateTOC = 'ON'
    document.getElementById('TOC').style.display = "inline";
  }
}

function buildTOC() {
  validTagList = '. H1 H2 .';
  if (document.body.childNodes) {
    allTags = getObjects();
  }
  else if (document.all) {
    allTags = document.all;
  }
  else if (document.layers) {
    alert('Netscape layers? What to do, what to do ....');
  } else {
  	alert("Table of Contents failed on this system.");
  }
  var tagDetail = new Array(1);
  j = 0;
  aNum = 0;
  for(i = 0; i < allTags.length; i++) {
    if (validTagList.indexOf(' '+allTags[i].tagName+' ') > 0) {
      aNum = aNum + 1;
      var aNode = document.createElement("A");
      aNode.id = 'Item'+aNum;
      allTags[i].appendChild(aNode);
      tagDetail[j] = allTags[i].tagName + "|";
      tagDetail[j] = tagDetail[j]+aNum + "|";
        if (allTags[i].childNodes.length > 0) {
          tagDetail[j] = tagDetail[j]+allTags[i].childNodes[0].nodeValue
      };
      j = j + 1;
    }
  }
  var ulNode = document.createElement("UL");
  tocId = document.getElementById('TOC');
  tocId.appendChild(ulNode);
  for(i = 0; i < tagDetail.length; i++) {
    thisDetail = tagDetail[i].split("|");
    var liNode = document.createElement("LI");
    liNode.className = thisDetail[0];
    ulNode.appendChild(liNode);
    var aNode = document.createElement("A");
    aNode.className = thisDetail[0];
    aNode.href = '#Item'+thisDetail[1];
    liNode.appendChild(aNode);
    aNode.innerHTML = thisDetail[2];
  }
}

function getObjects() {
  var obj = new Array(1);
  j = 0;
  obj[j] = document.documentElement;
  traverse( document.documentElement );
  function traverse(node) {
    obj[j] = node;
    j = j + 1;
    if (node.childNodes != null) {
      for (var i=0; i < node.childNodes.length; i++) {
        traverse(node.childNodes.item(i));
      }
    }
  }
  return obj;
}

function BeSilly(){
	if (confirm("Be Silly?")) { 
		R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; times=400;
		colours = new Array(); colours[0] = '00'; colours[1] = '11'; colours[2] = '22'; colours[3] = '33'; colours[4] = '44'; colours[5] = '55'; colours[6] = '66'; colours[7] = '77'; colours[8] = '88'; colours[9] = '99'; colours[10] = 'aa'; colours[11] = 'bb'; colours[12] = 'cc'; colours[13] = 'dd'; colours[14] = 'ee'; colours[15] = 'ff';
		DD=document.getElementsByTagName("div");
		DI=document.getElementsByTagName("img");
		DIL=DI.length;
		DDL=DD.length;
		document.title = "Silly!!";
		setInterval('MoveIMG()',5);
	}
}

function MoveIMG() {
  for(i=0; i-DIL; i++) {
    DIS=DI[i].style;
    DIS.position='absolute';
    DIS.left=(Math.tan(R*x1+i*x2+x3)*x4+x5)+"px";
    DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+"px";
    DIS.zIndex = i;
  }
  for(i=0; i-DDL; i++) {
    DDS=DD[i].style;
    DDS.position='absolute';
    DDS.left=(Math.sin(R*x1+i*y2+x3)*x4+y5)+"px";
    DDS.top=(Math.cos(R*x1+i*y2+x3)*y4+y5)+"px";
    DDS.zIndex = i-DDL;
  }
	document.body.style.backgroundColor = "#" + colours[Math.round(Math.random()*(colours.length-1))] + colours[Math.round(Math.random()*(colours.length-1))] + colours[Math.round(Math.random()*(colours.length-1))];
	R++;
	if (R > times) {
		alert("Please don't be silly again.");
		window.location.reload(true);
	}
}

function unused() {
	colours = new Array(); colours[0] = '00'; colours[1] = '11'; colours[2] = '22'; colours[3] = '33'; colours[4] = '44'; colours[5] = '55'; colours[6] = '66'; colours[7] = '77'; colours[8] = '88'; colours[9] = '99'; colours[10] = 'aa'; colours[11] = 'bb'; colours[12] = 'cc'; colours[13] = 'dd'; colours[14] = 'ee'; colours[15] = 'ff';
	document.body.style.backgroundColor = "#" + colours[Math.round(Math.random()*(colours.length-1))] + colours[Math.round(Math.random()*(colours.length-1))] + colours[Math.round(Math.random()*(colours.length-1))];
}