function eReference(eName) {
	if (document.layers) {
		if (eReference.arguments.length == 1) {
			var cEl = eval("document.layers['" + eName + "']");
		
		//refer document in layer: document.layers[layername].document
		} else if (eReference.arguments[1] == 'DoC') {// use 'strange' spelling to minimise conflicts with existing objects
			var cEl = eval("document.layers['" + eName + "'].document");
		//refer an image: document.images[imageName]
		} else if (eReference.arguments[1] == 'iMageZ') {
			var cEl = eval("document.images['" + eName + "']");
		
		//nested objects
		} else if (eReference.arguments.length>1) {
			var cEl = "document.layers['" + eReference.arguments[1] + "']";//start the string
			for (var i=2;i<eReference.arguments.length;i++) {//leave the first argument, because that's the one you're after, the second because you used that one to start the string
				if ( (eReference.arguments[i] != 'DoC') && (eReference.arguments[i] != 'iMageZ') && (eReference.arguments[i] != 'ForMz') ) {
					//alert(eReference.arguments[i]);
					cEl = cEl + ".document.layers['" + eReference.arguments[i] + "']";//get the next layer
				}
			}
			if (eReference.arguments[eReference.arguments.length-1] == 'iMageZ')  {
				cEl = cEl + ".document.images['" + eName + "']";//in case you need the images in the layer rather than the layer or doc
			} else if (eReference.arguments[eReference.arguments.length-1] == 'ForMz')  {
				cEl = cEl + ".document.forms['" + eName + "']";//in case you need the form in the layer rather than the layer or doc
			} else {
				cEl = cEl + ".document.layers['" + eReference.arguments[0] + "']";//add first element (the one you're after)
				if (eReference.arguments[eReference.arguments.length-1] == 'DoC') {
				cEl = cEl + ".document";//in case you need the document in the layer rather than the layer itself
				}
			} 
			cEl = eval(cEl);//wrap up and make string into an object
		} else {
			var cEl = eval("document.layers['" + eReference.arguments[1] + "'].document." + eName);
		}
	
	//old IE browsers:
	} else if (document.all) {
		var cEl = eval('document.all.' + eName);
	
	//W3C standard:
	} else {
		var cEl = document.getElementById(eName);
	}
	return cEl;
}

function chgBG(cellName,layerName,ilayerName,bColor){
		if (document.layers){
			//document.layers[ilayerName].document.layers[layerName].bgColor = bColor;
			eReference(layerName,ilayerName).bgColor = bColor;
			tmpCellName = cellName;
			tmpIlayerName = ilayerName;		
			tmplayerName = layerName
			tmpBGColor = bColor;
			cellactive = 'yes';
		} else {
			//document.all[cellName].style.backgroundColor = bColor;
			eReference(cellName).style.backgroundColor = bColor;
			tmpCellName = cellName;
			tmpBGColor = bColor;	
			cellactive = 'yes';
	}
}

function restoreBG(){
	if (tmpCellName.length > 0){
		chgBG(tmpCellName,tmplayerName,tmpIlayerName,defaultBGColor)	
		// clean up variables	
		tmpCellName = "";
		tmpIlayerName = "";		
		tmplayerName = "";
		tmpBGColor = "";
	}
}

function get(id){
	return document.getElementById(id);
}

function tDisplay(id){
	var divs = document.getElementsByTagName("div");
	//alert(divs.length);
	for(var x=0;x<divs.length;x++){
		var d = divs[x];
		//alert(d.id+' = '+id+'?');
		if((d.id == id) && (get(id).style.display == 'none' || get(id).style.display == '')){
	   		get(id).style.display = 'block';
	    } else {
	    	// Don't ever hide the navigation.   	
	    	if (d.id == "mainnav") {
	    		get(d.id).style.display = 'block';
	    	} else {
	    		get(d.id).style.display = 'none';
	    	}
	    }
	}
}

var r = new Object();
function showRow (curTag, stopTag) {
	curTag = curTag.parentNode;
	if (curTag.tagName == stopTag) {
		if (curTag.id == ""){
			showRow (curTag, stopTag);
		} else {
			r = curTag;
		}
	} else {
		showRow (curTag, stopTag);
	}
}

function displayMe(tag){
	showRow(tag,'TR');
	var TRs = document.getElementsByTagName('TR');
	for (var i = 0; i < TRs.length; i++){
		var disp = (TRs[i] == r)?"block":"none";
		var stuff =(TRs[i].id == "")?new Array():TRs[i].getElementsByTagName('DIV');
		//alert(TRs[i].id + " has " + stuff.length + " DIVS that will be set to " + disp);
		for (var k = 0; k < stuff.length ; k++){
			stuff[k].style.display = disp;
		}
	}
}

function hideMe(tag){
	var TRs = document.getElementsByTagName('TR');
	for (var i = 0; i < TRs.length; i++){
		var stuff =(TRs[i].id == "")?new Array():TRs[i].getElementsByTagName('DIV');
		for (var k = 0; k < stuff.length ; k++){
			stuff[k].style.display = 'none';
		}
	}
}




function teDisplay(id){
	var divs = document.getElementsByTagName("div");
	var tbl = get("theTable");
	var theRow = (tbl.firstChild,"row1");

for(var x=0;x<divs.length;x++){
	var d = divs[x];
	if ((theRow == 'row1') && (get(d.id).style.display != 'none' || get(d.id).style.display != '')){
		get(id).style.display = 'block';
	} else {
		get(d.id).style.display = 'none';
	}
      }
}



function myOnloadHandler() {
  	displayLayers();		
}
	function restore(){
		if(winW != window.innerWidth || winH != window.innerHeight){
		location.reload(true)
		}

	}
	
	function displayLayers(){	
	var msg = "Length: " + document.layers.length + " Divs: "
	for (i=0; i <= (document.layers.length-5); i++){
		//set layer to visible
		document.layers[i].visibility = 'visible';		
		//check layer name		
		j = document.layers[i].name
		j = j.toString();
		//if it's an answer layer (name includes 'A' in it) Then set layer display='none' else display display='block'.
			if (j.indexOf('A') > -1){
				document.layers[i].display = 'none';
			} else {
				document.layers[i].display = 'block';				
			}	
		msg += " Name: " + j + ", "		
	}
	//window.status = msg
}

/* Added by AO 2010-02-07 */


//  Scriptlets code written by Jeremy Edmiston
//  The functions have been adapted from various sources
//  and re-written to provide maximum flexibility
//  and compatability with various browsers.

//Global Declarations
var ie = (document.all) ? true: false;

function toggleClass(objClass) {
    //  This function will toggle obj visibility of an Element
    //  based on Element's Class
    //  Works with IE and Mozilla based browsers
    if (getElementByClass(objClass).style.display == "none") {
        showClass(objClass)
    } else {
        hideClass(objClass)
    }
}

function hideClass(objClass) {
    //  This function will hide Elements by object Class
    //  Works with IE and Mozilla based browsers
    var elements = (ie) ? document.all: document.getElementsByTagName('*');
    for (i = 0; i < elements.length; i++) {
        if (elements[i].className == objClass) {
            elements[i].style.display = "none"
        }
    }
}

function showClass(objClass) {
    //  This function will show Elements by object Class
    //  Works with IE and Mozilla based browsers
    var elements = (ie) ? document.all: document.getElementsByTagName('*');
    for (i = 0; i < elements.length; i++) {
        if (elements[i].className == objClass) {
            elements[i].style.display = "block"
        }
    }
}

function toggleID(objID) {
    //  This function will toggle obj visibility of an Element
    //  based on Element's ID
    //  Works with IE and Mozilla based browsers
    var element = (ie) ? document.all(objID) : document.getElementById(objID);
    if (element.style.display == "none") {
        showID(objID)
    } else {
        hideID(objID)
    }
}

function hideID(objID) {
    //  This function will hide Elements by object ID
    //  Works with IE and Mozilla based browsers
    var element = (ie) ? document.all(objID) : document.getElementById(objID);
    element.style.display = "none"
}

function showID(objID) {
    //  This function will show Elements by object ID
    //  Works with IE and Mozilla based browsers
    var element = (ie) ? document.all(objID) : document.getElementById(objID);
    element.style.display = "block"
}

function getElementByClass(objClass) {
    //  This function is similar to 'getElementByID' since there
    //  is no inherent function to get an element by it's class
    //  Works with IE and Mozilla based browsers
    var elements = (ie) ? document.all: document.getElementsByTagName('*');
    for (i = 0; i < elements.length; i++) {
        //alert(elements[i].className)
        //alert(objClass)
        if (elements[i].className == objClass) {
            return elements[i]
        }
    }
}
