		function elementById(id)
		{
			return document.getElementById(id);
		}
		
		function showElement(ElementName, bShow)
		{
			var elem = elementById(ElementName);
			
			if(elem)
			{
				elem.style.visibility = bShow? "visible" : "hidden";
			}
			else
			{
				alert(ElementName + " is not an object.");
			}
			
			return true;
		}
		
		function conditionalElements(ParentID, ChildIdArray, ShowForValue)
		{
			var parent = elementById(ParentID);
			
			if(ParentID == '' || !parent)
			{
				alert("conditionalElements: " + ParentID + " is not valid element.");
				return;
			}
		
			if(!parent.conditionals)
			{
				parent.conditionals = new Object();
			}
			
			for (child in ChildIdArray)
			{
				var childID = ChildIdArray[child];
				var childElem =  elementById(childID);
				if(!childElem)
				{
					alert("Child " + childID + " is not a valid element.");
					continue;
				}
				
				parent.conditionals[childID] = childElem;
				
				if(!childElem.condParent)
				{
					childElem.condParent = parent;
					childElem.ShowForValue = ShowForValue;
				}
			}
			
			showConditionals(ParentID);
		}
		
		function showConditionals(ParentId)
		{
			var parent = elementById(ParentId);
			
			if(!parent)
			{
				alert("showConditionals: '" + ParentId + "' is not valid element.");
				return;
			}
		
			if(!parent.conditionals)
			{
				return;
			}
			
			var secondPass = new Array();
			for (child in parent.conditionals)
			{
				var elem = parent.conditionals[child];
				
				elem.disabled = (elem.ShowForValue != parent.value) || parent.disabled;
				
				if(elem.conditionals)
				{
					secondPass[elem.id] = elem;
				}
			}
			
			for(gChild in secondPass)
			{
				var elem = secondPass[gChild];
				if(!elem.id)
					alert(elem + ": " + elem.name);
				else
					showConditionals(elem.id);
			}
		}
		
		function handleSubmit()
		{
			var degree1 = elementById("otherDegreeCompleted1");
			var degree2 = elementById("otherDegreeCompleted2");
			var hasDegree = elementById("hasDegree");
			
			if(degree1.value == "1" && !degree1.disabled || degree2.value == "1" && !degree2.disabled)
			{
				alert(hasDegree.value);
				hasDegree.value = 1;
			}
			else
			{
				hasDegree.value = 0;
				var creditElem1 = elementById("otherCreditEarned1");
				var creditElem2 = elementById("otherCreditEarned2");
				var credit1 = isNaN(Number(creditElem1.value))? 0 : Number(creditElem1.value);
				var credit2 = isNaN(Number(creditElem2.value))? 0 : Number(creditElem2.value);
				var creditTotal = elementById("creditsToDegree");
				creditTotal.value = credit1 + credit2;
				
				creditTotal.disabled = hasDegree.value == 1 || creditTotal.value == 0;
			}
			
			return true;
		}
		
		function doLoad()
		{
			var myForm = document.forms["input"];
			if(!myForm)
			{
				alert("'input' is not a valid form.");
			}
			
			for(elemIndex in myForm.elements)
			{
				var elem = myForm.elements[elemIndex];
				
				if(elem.id)
					showConditionals(elem.id);
			}
		}