<!--   hide this script from non-javascript-enabled browsers

var newDateStr;
var lastModStr = document.lastModified;		// get string of last modified date
var lastModNum = Date.parse(lastModStr);	// convert string to number
var lastModDate = new Date(lastModNum); 	// convert to date object
if (lastModDate == 0)						// unknown date
	newDateStr = "Unknown";
else
	newDateStr = formatDateTimeStr(lastModDate, false);

// empty array for multiple select lists
var selectArrayData = new Array();

/*-----------------------------------------------------------------------
-- formatDateTimeStr
--
-- Takes a date object and returns a formatted date string.
--
-- inDate        - date to format (Javascript Date object)
-- incTime       - set to true to include time in the returned string
-----------------------------------------------------------------------*/
function formatDateTimeStr(inDate, incTime) {
	if (typeof(inDate) != 'object') return null;
	var m = inDate.getMonth() + 1;
	if (m < 10)
		m = "0" + m;
	var d = inDate.getDate();
	if (d < 10)
		d = "0" + d;
	var y = inDate.getYear();

	if (y < 1000)
		y += 1900;
	var dateTimeStr = m + "/" + d + "/" + y;
	if (incTime)
	{
		var hr = inDate.getHours();
		var min = inDate.getMinutes();
		var sec = inDate.getSeconds();
		if (hr != 0 || min != 0 || sec != 0)
		{
			dateTimeStr += " " + hr + ":";
			if (min < 10)
				dateTimeStr += "0" + min;
			else
				dateTimeStr += min;
			if (sec < 10)
				dateTimeStr += ":0" + sec;
			else
				dateTimeStr += ":" + sec;
		}
	}
	return dateTimeStr;
}


// function that displays status bar message
var showMsg = navigator.userAgent != "Mozilla/4.0 (compatible; MSIE 4.0; Mac_PowerPC)";
function dmim(msgStr) {
	document.returnValue = false;
	if (showMsg) { 
		window.status = msgStr;
		document.returnValue = true;
	}
}


function HighlightLink(lnk, msgStr) {
	// lnk.style.color = "red";
	dmim(msgStr)
	return;
}


// function that sets the visibility of an object
function setObjectVisibility(obj, blnVisible) {
	obj.visible = blnVisible
}


// function that sets the image source for an object
function setImageSource(img, src) {
	img.src = src
}


// function that sets text to upper case for an object
function setUpperCase(ctrl) {
	var fieldtext = ctrl.value;
	ctrl.value = fieldtext.toUpperCase();
}


// function that sets text to lower case for an object
function setLowerCase(ctrl) {
	var fieldtext = ctrl.value;
	ctrl.value = fieldtext.toLowerCase();
}


// function that handles client-side navigation		
function formNavHandler(){
	var URL = document.form.site.options[document.form.site.selectedIndex].value;
	window.location.href = URL;
}


// function that opens an independant browser window
function open_window(url, title) {
    mywin = window.open(url,title,'toolbar=1,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=750,height=570');
}


// function that closes an independant browser window
function close_window() {
    mywin = window.close();
}


// function to handle errors
//window.onerror = myOnError
function myOnError(msg, url, lno) {
   // do something here

   return true
}


// function to determine if a form object exists
function isFormObject(formname, objectname) {
	// check the name of each form object
	for (var i in formname.elements) {
		if (formname.elements[i].name == objectname) {
			return true;
		}
	}
	return false;
}


// function to fill a select array
function fillSelectArray(displayValue, itemValue, itemNo, isNewFirstItem, firstItemNo) {
	// displayValue = the text displayed for the select item
	// itemValue = the value returned by a selected select item
	// itemNo = the index value for the current sub item (0 - number of sub items for first item)
	// isNewFirstItem = indicator flag that specifies if the current item is a new sub item group
	// firstItemNo = the index value for the current first item (0 - number of first items)
	
	if (isNewFirstItem) {
		// create the next first item array value
		if (itemValue == "") {
			// this item does not have any sub items
			selectArrayData[firstItemNo] = null;
		} else {
			// create a new array item for the sub items
			selectArrayData[firstItemNo] = new Array();
		}
	}
	
	// create the sub items
	if (itemValue != "") {
		selectArrayData[firstItemNo][itemNo] = new Array(displayValue, itemValue);
	}
}


// function that fills a second select list based on an item choosen from the first select list
function fillSelectFromArray(selectCtrl, itemArray, defaultPrompt, defaultItem) {
        var i, j;

        // empty existing items
        for (i = selectCtrl.options.length; i >= 0; i--) {
                selectCtrl.options[i] = null; 
        }
		
		// determine if the first item is a prompt that is not selectable
        if ((itemArray != null) && (defaultPrompt != "")) {
				selectCtrl.options[0] = new Option(defaultPrompt);
				selectCtrl.options[0].value = "";
                j = 1;
        } else {                
                j = 0;
        }
		
		var defaultSelected = false;
		
        if (itemArray != null) {
                // add new items
                for (i = 0; i < itemArray.length; i++) {
                        selectCtrl.options[j] = new Option(itemArray[i][0]);
                        if (itemArray[i][1] != null) {
                            selectCtrl.options[j].value = itemArray[i][1];
							if (itemArray[i][1] == defaultItem) {
								// set the default value selection
								selectCtrl.options[j].selected = true;
								defaultSelected = true;
							}
                        }
                        j++;
                }
				if ((! defaultSelected) && (defaultPrompt != "")) {
					selectCtrl.options[0].selected = true;
				}
        }
}


var quakeID=0;
var deltaX=0;
var deltaY=0;

function tremor(dir) {
	with(Math) return ceil(random()*10)*2*(floor(random()*2)-.5);
}

function winQuake() {
	clearTimeout(quakeID);
	for (i=0;i<=((Math.random()*35)+5);i++) {
		xShift = tremor();
		yShift = tremor();
		window.moveBy(xShift,yShift);
		deltaX -= xShift;
		deltaY -= yShift;
	}
	winReset();
	quakeID = setTimeout("winQuake()",Math.ceil(Math.random()*3500)+250);
}

function winReset() {
	window.moveBy(deltaX,deltaY);
	deltaX = 0;
	deltaY = 0;
}

// stop hiding -->
