function getLayerAttrib(strLayerID, strAttrib)
{
	var strFramePart = setFramePart(getLayerAttrib.arguments[2]);

	if (document.getElementById)
	{
		var strValue = eval(strFramePart+'document.getElementById("'+strLayerID+'").style.'+strAttrib);
	}
	else if (document.all)
	{
		var strValue = eval(strFramePart+'document.all.'+strLayerID+'.style.'+strAttrib);
	}
	else if (document.layers)
	{
		var strValue = eval(strFramePart+'document.ids.'+strLayerID+'.'+strAttrib);
	}

   return strValue;
}


function setLayerAttrib(strLayerID, strAttrib, strValue)
{
     var strFramePart = setFramePart(setLayerAttrib.arguments[3]);

	if (document.getElementById)
	{
		eval(strFramePart+'document.getElementById("'+strLayerID+'").style.'+strAttrib+' = "'+strValue+'"');
	}
	else if (document.all)
	{
		eval(strFramePart+'document.all.'+strLayerID+'.style.'+strAttrib+' = "'+strValue+'"');
	}
	else if (document.layers)
	{
		eval(strFramePart+'document.'+strLayerID+'.'+strAttrib+' = "'+strValue+'"');
	}
}


function showLayer(strLayerID)
{
	if ( showLayer.arguments[1] == null )
	{
		setLayerAttrib(strLayerID, "visibility" , "visible");
	}
	else
	{
		setLayerAttrib(strLayerID, "visibility" , "visible", showLayer.arguments[1]);
	}
}


function hideLayer(strLayerID)
{
	if ( hideLayer.arguments[1] == null )
	{
		setLayerAttrib(strLayerID, "visibility" , "hidden");
	}
	else
	{
		setLayerAttrib(strLayerID, "visibility" , "hidden", hideLayer.arguments[1]);
	}
}


// ========================= Recurse ALL childnodes and in case there's multiple IMG children match on "name" attrib ======
// ========================= Grab my div, get the nodliest of its child nodes and then use getElementsByTagName for imgs - quicker =====

function getSpecificNode(objNodeList, strType)
{
	for (nCounter = 0; nCounter < objNodeList.length; nCounter++)
	{
		if ( objNodeList[nCounter].nodeName == strType)
		{
			return objNodeList[nCounter]
		}
	}
	return;
}


function setImageSrc(strLayerID, strImageName, strImageSource)
{
	if (strImageSource != "null.gif")
	{
		var strFramePart = setFramePart(setImageSrc.arguments[3]);

		if (document.layers)
		{
			var obj2 = eval(strFramePart+'document.layers.'+strLayerID+'.document.images[0]');
		}
		else if (document.all)
		{
			var obj2 = eval(strFramePart+'document.images.'+strImageName);
		}
		else if ((document.getElementById) && (!document.all))
		{
			var objNodeList = eval(strFramePart+'document.getElementById("'+strLayerID+'").childNodes');
			var objIMGNode = getSpecificNode(objNodeList, "IMG")

			if (objIMGNode == null)
			{
				var objAnchorNode = getSpecificNode(objNodeList, "A");
				
				if (objAnchorNode == null)
				{
					alert("Failure - Could not find specified node!");
				}
				else
				{
					var objNodeList  = objAnchorNode.childNodes;
					var objIMGNode = getSpecificNode(objNodeList, "IMG");
				}
			}

			var obj2 = objIMGNode;
		}

		obj2.src = strImageSource;
	}
}


function getImageSrc(strLayerID, strImageName)
{
	var strImageSource;
	var strFramePart = setFramePart(getImageSrc.arguments[3]);

	if (document.layers)
	{
		var layer = eval('document.layers.'+strLayerID);
		
		if (layer != null)
		{
			strImageSource = (layer.document.images[strImageName] != null) ? layer.document.images[strImageName].src : "null.gif";
		}
	}
	else if (document.all)
	{
		strImageSource = (document.images[strImageName] != null) ? document.images[strImageName].src : "null.gif";
	}
	else if ((document.getElementById) && (!document.all))
	{
		var objNodeList = eval(strFramePart+'document.getElementById("'+strLayerID+'").childNodes');
		var objIMGNode = getSpecificNode(objNodeList, "IMG");

		if (objIMGNode == null)
		{
			var objAnchorNode = getSpecificNode(objNodeList, "A");
			
			if (objAnchorNode == null)
			{
				alert("Failure - Could not find specified node!");
			}
			else
			{
				var objNodeList  = objAnchorNode.childNodes;
				var objIMGNode = getSpecificNode(objNodeList, "IMG");
			}
		}

		var strImageSource = objIMGNode.src;
	}
	
	return strImageSource;
}


function getLayerPosX(strLayerID)
{
	if ( getLayerPosX.arguments[1] == null )
	{
		var intXPos = getLayerAttrib(strLayerID, "left");
	}
	else
	{
		var intXPos = 	getLayerAttrib(strLayerID, "left", getLayerPosX.arguments[1]);
	}

	if (intXPos.indexOf("px") != -1 )
	{
		intXPos = intXPos.substring (0, intXPos.length-2);
    }
    
    intXPos = parseInt(intXPos);
    return intXPos;
}


function getLayerPosY(strLayerID)
{
	if ( getLayerPosY.arguments[1] == null )
	{
		var intYPos = getLayerAttrib(strLayerID, "top");
	}
	else
	{
		var intYPos = 	getLayerAttrib(strLayerID, "top", getLayerPosY.arguments[1]);
	}

	if (intYPos.indexOf("px") != -1 )
	{
		intYPos = intYPos.substring (0, intYPos.length-2);
	}
	
    intYPos = parseInt(intYPos);
    return intYPos;
}



function setLayerPos(strLayerID, intXPos, intYPos)
{
	if ( setLayerPos.arguments[3] == null )
	{
		setLayerAttrib(strLayerID, "left", intXPos);
		setLayerAttrib(strLayerID, "top", intYPos);
	}
	else
	{
		setLayerAttrib(strLayerID, "left", intXPos, setLayerPos.arguments[3]);
		setLayerAttrib(strLayerID, "top", intYPos, setLayerPos.arguments[3]);
	}
}


function getFormValue()
{
	var strFormValue;

	if (document.all)
	{
		strFormValue = document.form1.chooseWord.value;
	}
  	else
  	{
  		strFormValue = document.blank1.document.form1.chooseWord.options[document.blank1.document.form1.chooseWord.selectedIndex].value
  	}
  	
  	return strFormValue;
}


function setFormValue(strValueToSet)
{
	if (document.all)
	{
		document.form1.chooseWord.value = strValueToSet;
	}
  	else
  	{
		document.blank1.document.form1.chooseWord.options[strValueToSet].selected=true;
  	}
}


function writeCode(strCode, strLayerID)
{
	var strFramePart = setFramePart(writeCode.arguments[2]);

	if (document.all)
	{
		var obj1 = eval(strFramePart+'document.all.'+strLayerID);
		obj1.innerHTML = strCode;
	}
	else if (document.layers)
	{
		var obj1 = eval(strFramePart+'document.'+strLayerID);
		obj1.document.open();
		obj1.document.write(strCode);
		obj1.document.close();
	}
	else if (document.getElementById)
	{
		var node1 = eval(strFramePart+'document.getElementById("'+strLayerID+'")');
		
     	while (node1.hasChildNodes())
     	{
     		node1.removeChild(node1.lastChild);
     	}
     	
     	var range = document.createRange();
     	range.setStartBefore(node1);
    	var nodeHTMLFragment = range.createContextualFragment( strCode );
    	node1.appendChild(nodeHTMLFragment);
    }
}


function setLayerClassName( strLayerID, strValue )
{
	var strFramePart = "";

	if (document.getElementById)
	{
		eval(strFramePart+'document.getElementById("'+strLayerID+'").className = "'+strValue+'"');
	}
	else if (document.all)
	{
		eval(strFramePart+'document.all.'+strLayerID+'.className = "'+strValue+'"');
	}
	else if (document.layers)
	{
		eval(strFramePart+'document.'+strLayerID+'.className = "'+strValue+'"');
	}
}


//  ================================= Not Directly Dom but FORKED FUNCTIONS =====================================================

function setCode(strText, strLayerID)
{
	var strClassCode = (setCode.arguments[2] != "null") ? 'class="'+setCode.arguments[2]+'"'  : '';
	var strLayerWidthCode = (setCode.arguments[3] != "null") ? 'width="'+setCode.arguments[3]+'"' : '';

	if (document.layers)
    {
		var strCode = '<layer '+strLayerWidthCode+'><span '+strClassCode+'>' +strText+ '</span></layer>';
    }
    else
    {
		var strCode = '<span '+strClassCode+'>'+strText+'</span>';
	}

	if ( setCode.arguments[4] == null)
	{
		writeCode(strCode, strLayerID);
	}
	else
	{
		writeCode(strCode, strLayerID, setCode.arguments[4]);
	}
}


function setFramePart(arg)
{
	var framePart = (arg != null)?  'top.'+arg+"." : framePart = "";
	return framePart;
}