function SetStatusText(msg)
{
	window.status = msg;
	return true;
}

function ClearStatusText()
{
	return SetStatusText('');
}

function clock() 
{
	var myDate = new Date();
	var hours = myDate.getHours();
	var minutes = myDate.getMinutes();
	var seconds = myDate.getSeconds();
	var amOrPm = "AM";
	if (hours > 11) amOrPm = "PM";
	if (hours > 12) hours = hours - 12;
	if (hours == 0) hours = 12;
	if (minutes <= 9) minutes = "0" + minutes;
	if (seconds <= 9) seconds = "0" + seconds;
	dispTime = hours + ":" + minutes + ":" + seconds + " " + amOrPm;
	document.getElementById("cloc").innerHTML = dispTime;
	setTimeout("clock()", 1000);
}

function cent(amount)
{
	// ensure it is a number - otherwise return as is...
	var tmpAmount = new Number(amount);
	if (String(tmpAmount) == 'NaN')
		return amount;

	// returns the amount in the .99 format 
	amount -= 0;
	amount = (Math.round(amount*100))/100;
	return (amount == Math.floor(amount)) ? amount + '.00' : (  (amount*10 == Math.floor(amount*10)) ? amount + '0' : amount);
}

function ConvertDegrees(nVal, bCelsius /*nVal is in Celsius?*/)
{
	if (bCelsius) // Convert to fahrenheit
		return ((9 / 5) * nVal) + 32;
	else // Convert to celsius
		return (5 / 9) * (nVal - 32);
}

function GetDegreesForDisplay(nVal, bCelsius /*nVal is in Celsius?*/)
{
	// Our app internals have it in celsius. Convert if desired.
	nVal = ConvertDegrees(nVal, bCelsius);
	return cent(nVal) + '&nbsp;' + (bCelsius ? '&deg;C' : '&deg;F');
}

function getCurrentDate()
{
	var day="";
	var month="";
	var myweekday="";
	var year="";
	mydate = new Date();

	myday = mydate.getDay();
	mymonth = mydate.getMonth();
	myweekday= mydate.getDate();
	myyear= mydate.getYear();
	year = myyear;
	
	arday = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
	armonth = new Array("January ","February ","March ","April ","May ","June ","July ","August ","September ", "October ","November ","December ")
	ardate = new Array("0th","1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st");

	var time = (arday[myday] +" - " + armonth[mymonth] +" "+ardate[myweekday] + ", " + year);
	return time;
}

function GetURLParams(queryString)
{
	var nv = queryString.split('&');
	var url = new Object();
	for(i = 0; i < nv.length; i++)
	{
		eq = nv[i].indexOf('=');
		url[nv[i].substring(0,eq).toLowerCase()] = unescape(nv[i].substring(eq + 1));
	}
	return url;
}

function ReplaceChar(srcString, srcChar, replaceChar)
{
	// I added this function because I could not get the regular expression set up correctly
	// to replace a backslash with a forward slash.
	szNewString = "";
	for (var nCount = 0; nCount < srcString.length; ++nCount)
	{
		if (srcString.charAt(nCount) == srcChar)
			szNewString += replaceChar;
		else
			szNewString += srcString.charAt(nCount);
	}
	return szNewString;
}

function ReplaceString(strSrc, strRepOld, strRepNew)
{
	var nLoc = 0;
	var strTmp = "";
	while ((nLoc = strSrc.indexOf(strRepOld)) != -1)
	{
		strTmp += strSrc.substring(0, nLoc) + strRepNew;
		strSrc = strSrc.substring(nLoc + strRepOld.length, strSrc.length);
	}
	strTmp += strSrc.substring(0, strSrc.length);
	return strTmp;
}

function RemoveWhitespace(str)
{
	// Simply get all of the spaces out of the name...
	do
	{
		var nLoc = str.indexOf(' ');
		if (nLoc == -1)
			break;
		strTmp = str.substring(0, nLoc) + str.substring(nLoc + 1, str.length);
		str = strTmp;
	} while (nLoc >= 0);
	return str;
}

// Add a bookmark text to the document.
function AddFavoriteText(url, title)
{
//alert(url + " - " + title);
	// This code is for IE v4 or better
	if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion >= "4.0")
	{
		document.write("<FONT SIZE=\"1\"><U><SPAN STYLE=\"color:blue;cursor:hand;\" onClick=\"window.external.AddFavorite(url, title);\">Bookmark this page!</SPAN></U>/FONT>")
	}
	// This code posts text if not
	else
	{
		document.write("Press CTRL-D to bookmark this page")
	}
}

// Add a bookmark to the favorites list.
function AddFavorite(url,title)
{
//alert(url + " - " + title);
	// This code is for IE v4 or better
	if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion >= "4.0")
	{
		window.external.AddFavorite(url, title);
	}
	// This code alerts with text if not
	else
	{
//		alert("Press CTRL-D to bookmark this page")
		alert("Unable to automatically bookmark this page. Browser version too old.")
	}
}


function FixStringForJS(srcString)
{
	szNewString = "";
	for (nCount = 0; nCount < srcString.length; ++nCount)
	{
		if (srcString.charAt(nCount) == '\\')
			szNewString += "\\\\";
		else if (srcString.charAt(nCount) == '\"')
			szNewString += "\\\"";
		else
			szNewString += srcString.charAt(nCount);
	}
	return szNewString;
}

function FixStringForVB(srcString)
{
	szNewString = "";
	for (nCount = 0; nCount < srcString.length; ++nCount)
	{
		if (srcString.charAt(nCount) == '\'')
			szNewString += "''";
		else
			szNewString += srcString.charAt(nCount);
	}
	return szNewString;
}

function ForceArrowCursor(img)
{
	if (!isNav())
		img.style.cursor="default";
}

function RandomizeArray(array)
{
	var len = array.length;
	var rand,temp,i;
	for (i = 0; i < len; i++)
	{
		rand = Math.floor(Math.random()*len);
		temp = array[i];
		array[i] = array[rand];
		array[rand] = temp;
	}
	return array;
}

// Debug: ----------------------------------------------------------------------------------------------

function DisplayObjectElements(obj, bRecurse, bWriteToHTML)
{
	var strOutput = DoDisplayObjectElements(obj, bRecurse, bWriteToHTML ? '<br>' : ', ');
	if (bWriteToHTML)
		document.write(strOutput);
	else
		alert(strOutput);
}
	
function DoDisplayObjectElements(obj, bRecurse, strNext)
{
	var strOutput = '';
	strOutput += strNext;
	for(element in obj)
	{
		strOutput += String(element) + '=' + String(obj[element] ? obj[element] : 'null') + strNext;
		if (bRecurse && (typeof(obj[element]) == 'object'))
			strOutput += DoDisplayObjectElements(obj[element], bRecurse, strNext);
	}
	return strOutput;
}

<!-- ------------------------------------------------------- -->
<!-- Original:  Christopher Nielsen (chris@bluegalaxy.net) -->
<!-- Web Site:  http://www.bluegalaxy.net -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Begin

binary_numbers = new Array("0000", "0001", "0010", "0011", "0100", "0101",
"0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111");

function toBinary(High, Low)
{
	var hiHex = "ABCDEF";
	if (Low < 10 )
	{
		LowNib = Low;
	}
	else
	{
		LowNib = 10 + hiHex.indexOf(Low);
	}
	if (High  < 10 )
	{
		HighNib = High;
	}
	else
	{
		HighNib = 10 + hiHex.indexOf(High);
	}
	eight_bits = binary_numbers[HighNib] + " " + binary_numbers[LowNib];
	return eight_bits;
}

function Dec2Hex(Decimal)
{
	var hexChars = "0123456789ABCDEF";
	var a = Decimal % 16;
	var b = (Decimal - a)/16;
	hex = "" + hexChars.charAt(b) + hexChars.charAt(a);
	L = hexChars.charAt(a);
	H = hexChars.charAt(b);
	return hex;
}

var symbols = " !\"#$%&'()*+'-./0123456789:;<=>?@";
function toAscii()
{
	var loAZ = "abcdefghijklmnopqrstuvwxyz";
	symbols += loAZ.toUpperCase();
	symbols += "[\\]^_`";
	symbols += loAZ;
	symbols += "{|}~";
	var loc;
	loc = symbols.indexOf(document.asciiform.Input.value);
	if (loc >-1)
	{
		Ascii_Decimal = 32 + loc;
		return (32 + loc);
  }
	return(0);  // If not in range 32-126 return ZERO
}
function getAscii(some_value)
{
	document.asciiform.toDec.value = toAscii();
	document.asciiform.toHex.value = Dec2Hex(toAscii());
	document.asciiform.binary.value = toBinary(H, L);
}
//  End -->

<!-- ------------------------------------------------------- -->
